/* AMR Group - one-page a 3 slide.
   Caricato DOPO style.css: ne riusa font, variabili e banner cookie,
   ridefinisce body/header/footer con classi proprie (.hdr, .slide, ...). */

:root{
  --navy:#0B1F3A;
  --navy-2:#102B50;
  --blue:#193F71;
  --green:#41B649;
  --teal:#0F7A94;
  --paper:#F4F7FA;
  --line:#DCE3EA;
  --hdr-h:72px;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:0;
}
@media (min-width:900px) and (min-height:640px){
  html{scroll-snap-type:y mandatory;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
}

body.onepage{
  display:block;
  min-height:0;
  background:var(--navy);
  background-image:none;
  color:var(--ink);
}

/* ---------- HEADER ---------- */
.hdr{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  height:var(--hdr-h);
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(11,31,58,.08);
}
.hdr-inner{
  max-width:1200px;
  height:100%;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.hdr .brand img{height:38px;}
.hdr-nav{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
.hdr-nav a{
  position:relative;
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  padding:8px 0;
  transition:color .2s ease;
}
.hdr-nav a::after{
  content:"";
  position:absolute;left:0;right:0;bottom:2px;
  height:2px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.hdr-nav a:hover,
.hdr-nav a.active{color:var(--navy);}
.hdr-nav a:hover::after,
.hdr-nav a.active::after{transform:scaleX(1);}

/* ---------- SLIDE BASE ---------- */
.slide{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  padding:calc(var(--hdr-h) + 40px) 28px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  scroll-snap-align:start;
  overflow:hidden;
}
.wrap{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1200px;
  margin:0 auto;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin:0 0 20px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:36px;height:2px;
  background:currentColor;
}
h1,h2{margin:0;font-weight:300;letter-spacing:-.01em;line-height:1.08;}
h1 strong,h2 strong{font-weight:700;}

/* reveal */
.js .reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--d,0s);
}
.js .slide.in .reveal{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- SLIDE 1 - HERO (scuro) ---------- */
.hero{
  background:
    radial-gradient(900px 520px at 85% 8%, rgba(65,182,73,.16), transparent 60%),
    radial-gradient(900px 600px at 0% 100%, rgba(25,63,113,.55), transparent 65%),
    linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
}
#tech-bg{
  position:absolute;
  top:0;left:0;
  z-index:1;
  pointer-events:none;
}
.hero .eyebrow{color:var(--green);}
.hero h1{
  font-size:clamp(34px,5.4vw,76px);
}
@media (min-width:900px){
  .hero h1{white-space:nowrap;}
}
.hero h1 strong{
  background:linear-gradient(95deg,#fff 0%,#9FE3A4 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero-lead{
  max-width:60ch;
  margin:26px 0 0;
  font-size:clamp(17px,1.5vw,20px);
  line-height:1.6;
  color:rgba(255,255,255,.78);
}

.companies{
  margin-top:clamp(32px,6vh,64px);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.company{
  position:relative;
  display:flex;
  flex-direction:column;
  background:#fff;
  color:var(--ink);
  border-radius:6px;
  padding:26px 26px 22px;
  border-top:3px solid var(--c,var(--green));
  box-shadow:0 24px 50px -28px rgba(0,0,0,.7);
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease;
}
.company:hover{
  transform:translateY(-8px);
  box-shadow:0 34px 60px -26px rgba(0,0,0,.85);
}
.company-logo{
  height:84px;
  display:flex;
  align-items:center;
  margin-bottom:18px;
}
.company-logo img{
  max-height:100%;
  max-width:78%;
  width:auto;
  height:auto;
  display:block;
}
.company p{
  margin:0 0 20px;
  font-size:15px;
  line-height:1.6;
  color:var(--muted);
  flex:1;
}
.company-link{
  align-self:flex-start;
  font-size:13px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal);
  padding-bottom:3px;
  border-bottom:2px solid currentColor;
  transition:letter-spacing .25s ease;
}
.company:hover .company-link{letter-spacing:.16em;}
.company.nano{--c:#41B649;}
.company.medical{--c:#2A87D0;}
.company.alkeo{--c:#0F7A94;}

.scroll-cue{
  position:absolute;
  z-index:2;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.scroll-cue::after{
  content:"";
  width:1px;height:28px;
  background:linear-gradient(var(--green),transparent);
  animation:cue 1.8s ease-in-out infinite;
}
@keyframes cue{
  0%{transform:scaleY(0);transform-origin:top;}
  50%{transform:scaleY(1);transform-origin:top;}
  51%{transform:scaleY(1);transform-origin:bottom;}
  100%{transform:scaleY(0);transform-origin:bottom;}
}
@media (prefers-reduced-motion:reduce){.scroll-cue::after{animation:none;}}

/* ---------- SLIDE 2 - CONTATTI (chiaro) ---------- */
.contacts{background:var(--paper);}
.light .eyebrow{color:var(--teal);}
.light h2{
  font-size:clamp(34px,4.6vw,60px);
  color:var(--navy);
}
.lead{
  margin:20px 0 0;
  max-width:52ch;
  font-size:17px;
  line-height:1.65;
  color:var(--muted);
}
.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(28px,5vw,72px);
  align-items:center;
}
.c-list{margin:34px 0 0;display:grid;gap:0;border-top:1px solid var(--line);}
.c-row{
  display:flex;
  align-items:center;
  gap:18px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-size:17px;
  color:var(--ink);
}
.c-row .ico{
  flex:none;
  width:42px;height:42px;
  border-radius:50%;
  background:#fff;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  color:var(--teal);
}
.c-row .ico svg{width:19px;height:19px;}
.c-row a{font-weight:700;}
.c-row a:hover{color:var(--teal);}
.c-row .email-link{text-decoration:none;color:var(--teal);}

.hours{
  margin-top:26px;
  background:var(--navy);
  color:#fff;
  border-radius:6px;
  padding:22px 26px;
}
.hours h3{
  margin:0 0 12px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--green);
}
.hours table{width:100%;border-collapse:collapse;font-size:15px;}
.hours th{text-align:left;font-weight:700;padding:7px 16px 7px 0;white-space:nowrap;}
.hours td{padding:7px 0;color:rgba(255,255,255,.78);}
.hours tr+tr th,.hours tr+tr td{border-top:1px solid rgba(255,255,255,.12);}

.map-card{
  position:relative;
  display:block;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 30px 60px -34px rgba(11,31,58,.55);
  background:#fff;
}
.map-card img{display:block;width:100%;height:auto;transition:transform .8s cubic-bezier(.22,1,.36,1);}
.map-card:hover img{transform:scale(1.04);}
.map-cta{
  position:absolute;
  left:18px;bottom:18px;
  background:var(--navy);
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:12px 18px;
  border-radius:3px;
}
.map-card:hover .map-cta{background:var(--teal);}

/* ---------- SLIDE 3 - POR FESR (chiaro) ---------- */
.fesr{
  background:#fff;
  padding-bottom:0;
}
.fesr::before{
  content:"";
  position:absolute;
  top:0;right:0;
  width:46%;height:100%;
  background:linear-gradient(180deg,var(--paper),#fff);
  clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);
  z-index:0;
}
.fesr-main{flex:1;display:flex;align-items:center;padding-bottom:40px;}
.fesr-grid{
  display:grid;
  grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(28px,5vw,72px);
  align-items:center;
}
.fesr-body{margin-top:24px;max-width:58ch;font-size:17px;line-height:1.7;color:var(--muted);}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.btn-solid,.btn-line{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:15px 26px;
  border-radius:3px;
  border:2px solid var(--navy);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn-solid{background:var(--navy);color:#fff;}
.btn-solid:hover{background:var(--teal);border-color:var(--teal);}
.btn-line{color:var(--navy);}
.btn-line:hover{background:var(--navy);color:#fff;}

.doc-card{
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--green);
  border-radius:6px;
  padding:30px 30px 26px;
  box-shadow:0 30px 60px -38px rgba(11,31,58,.5);
}
.doc-card .doc-ico{width:44px;height:44px;color:var(--teal);margin-bottom:16px;}
.doc-card h3{margin:0 0 6px;font-size:22px;font-weight:700;color:var(--navy);}
.doc-card p{margin:0;font-size:15px;line-height:1.6;color:var(--muted);}
.doc-meta{
  margin-top:20px;padding-top:16px;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:12px;
  font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
}

.ftr{
  position:relative;
  z-index:2;
  margin:0 -28px;
  padding:22px 28px;
  background:var(--navy);
  color:rgba(255,255,255,.65);
  text-align:center;
  font-size:13px;
  line-height:1.7;
}
.ftr a{color:rgba(255,255,255,.65);text-decoration:underline;text-underline-offset:2px;}
.ftr a:hover{color:#fff;}

/* ---------- DOT NAV ---------- */
.dots{
  position:fixed;
  right:22px;
  top:50%;
  transform:translateY(-50%);
  z-index:90;
  display:flex;
  flex-direction:column;
  gap:16px;
  list-style:none;
  margin:0;padding:0;
}
.dots a{
  position:relative;
  display:block;
  width:12px;height:12px;
  border-radius:50%;
  border:2px solid var(--dot,#fff);
  transition:background .25s ease, transform .25s ease;
}
.dots a.active{background:var(--dot,#fff);transform:scale(1.25);}
.dots a span{
  position:absolute;
  right:24px;top:50%;
  transform:translateY(-50%);
  white-space:nowrap;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dot,#fff);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
}
.dots a:hover span{opacity:1;}
body.on-light .dots{--dot:var(--navy);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .dots{display:none;}
  .companies{gap:14px;}
  .company{padding:20px 18px 18px;}
  .company-logo{height:70px;}
  .company p{font-size:14px;}
  .contact-layout,.fesr-grid{grid-template-columns:1fr;}
  .fesr::before{display:none;}
  .hero h1{max-width:none;}
}
@media (max-width:720px){
  :root{--hdr-h:60px;}
  .hdr-inner{padding:0 16px;}
  .hdr .brand img{height:30px;}
  .hdr-inner{gap:10px;}
  .hdr-nav{gap:14px;}
  .hdr-nav a{font-size:10.5px;letter-spacing:.05em;white-space:nowrap;}
  .company{padding:20px 20px 18px;}
  .company-logo{height:64px;margin-bottom:12px;}
  .company p{font-size:14px;margin-bottom:14px;}
  .hero-lead,.lead,.fesr-body{font-size:16px;}
  .c-row{font-size:15px;gap:14px;}
  .btn-solid,.btn-line{width:100%;justify-content:center;}
  .slide{padding:calc(var(--hdr-h) + 28px) 16px 48px;}
  .ftr{margin:0 -16px;padding:20px 16px;}
  .dots{display:none;}
  .scroll-cue{display:none;}
  .companies{grid-template-columns:1fr;max-width:520px;}
  .map-cta{left:10px;bottom:10px;padding:9px 12px;}
}

/* ---------- POP-UP PRIVACY ---------- */
html.modal-open{overflow:hidden;}
.pm{
  width:min(92vw,880px);
  height:min(86vh,860px);
  max-width:none;max-height:none;
  padding:0;
  border:0;
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  overflow:hidden;
}
.pm[open]{display:flex;flex-direction:column;}
.pm::backdrop{background:rgba(11,31,58,.62);}
.pm-head{
  flex:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.pm-head h2{font-size:20px;font-weight:700;letter-spacing:0;color:var(--navy);line-height:1.2;}
.pm-close{
  flex:none;
  width:40px;height:40px;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--navy);
  font-family:inherit;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}
.pm-close:hover{background:var(--navy);color:#fff;border-color:var(--navy);}
.pm-body{
  flex:1;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:24px 28px 32px;
  background:#fff;
  font-size:14px;
  line-height:1.75;
  color:var(--muted);
  text-align:justify;
}
.pm-body p{margin:0 0 20px;}
.pm-body strong{color:var(--ink);}
.pm-body a{color:var(--teal);text-decoration:underline;text-underline-offset:2px;word-break:break-word;}
@media (max-width:720px){
  .pm{width:100vw;height:100svh;border-radius:0;}
  .pm-head{padding:14px 16px;}
  .pm-body{padding:18px 16px 28px;text-align:left;}
}
