/* ==========================================================================
   ES Medical Group — 05-sections.css
   Servizi, turismo/mappa, percorso, uffici, valori, FAQ, contatti, footer.
   ========================================================================== */

/* ============ VALUE BAR ============ */
.valuebar{background:var(--ink-2);padding-block:clamp(18px,2.6vw,26px);border-top:1px solid rgba(255,255,255,.05);}
.valuebar ul{display:grid;grid-template-columns:repeat(5,1fr);gap:14px 24px;}
.valuebar li{display:flex;align-items:center;justify-content:center;gap:9px;color:rgba(255,255,255,.72);font-size:.8rem;font-weight:500;}
.valuebar svg{width:17px;height:17px;color:var(--gold);flex:none;}

/* ============ SERVIZI ============ */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);}
.svc{
  position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(28px,3vw,40px);display:flex;flex-direction:column;overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.svc::after{
  content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.svc:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);border-color:transparent;}
.svc:hover::after{transform:scaleX(1);}
.svc-no{
  position:absolute;top:clamp(22px,2.4vw,30px);right:clamp(24px,2.6vw,32px);
  font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--line);
}
.svc-ico{
  width:60px;height:60px;border-radius:16px;background:var(--gold-wash);
  display:grid;place-items:center;margin-bottom:24px;flex:none;
}
.svc-ico svg{width:30px;height:30px;color:var(--gold-3);}
.svc h3{margin-bottom:10px;}
.svc>p{color:var(--graphite);font-size:.9rem;margin-bottom:22px;}
.svc ul{margin-bottom:28px;flex:1;}
.svc ul li{
  display:flex;align-items:center;gap:10px;font-size:.84rem;color:var(--ink);
  padding-block:9px;border-top:1px solid var(--line);
}
.svc ul li:first-child{border-top:none;}
.svc ul svg{width:14px;height:14px;color:var(--gold-3);flex:none;}
.svc .btn{align-self:flex-start;}

/* ============ TURISMO ============ */
.tour{background:var(--ink);color:var(--white);}
.tour-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(36px,5vw,76px);align-items:center;}
.tour-lead{color:rgba(255,255,255,.62);font-size:clamp(.95rem,1.4vw,1.05rem);margin-bottom:32px;}
.tour-pts{display:grid;gap:20px;margin-bottom:36px;}
.tour-pt{display:flex;gap:15px;}
.tour-pt-i{width:36px;height:36px;border-radius:50%;background:var(--gold-wash);display:grid;place-items:center;flex:none;}
.tour-pt-i svg{width:17px;height:17px;color:var(--gold);}
.tour-pt b{display:block;font-size:.92rem;font-weight:600;color:var(--white);margin-bottom:2px;}
.tour-pt span{font-size:.82rem;color:rgba(255,255,255,.52);line-height:1.55;}
.route{
  background:linear-gradient(158deg,#17171A,#0B0B0C);border:1px solid var(--line-dark);
  border-radius:var(--r-lg);padding:clamp(26px,3vw,38px);
}
.route svg{width:100%;height:auto;}
.route .geo{display:block;overflow:visible;}
.geo .arc{stroke-dasharray:5 6;stroke-dashoffset:0;animation:flow 2.4s linear infinite;opacity:0;transition:opacity .8s var(--ease);}
.route.lit .geo .arc{opacity:1;}
.route.lit .geo .arc:nth-child(2){animation-delay:.25s;}
.route.lit .geo .arc:nth-child(3){animation-delay:.5s;}
.route.lit .geo .arc:nth-child(4){animation-delay:.75s;}
@keyframes flow{to{stroke-dashoffset:-22;}}
.geo .ping{transform-origin:544px 296px;animation:ping 2.6s ease-out infinite;}
@keyframes ping{0%{transform:scale(.7);opacity:.9;}70%{transform:scale(1.9);opacity:0;}100%{opacity:0;}}
.geo .pins text{paint-order:stroke;stroke:rgba(11,11,12,.6);stroke-width:3.5px;stroke-linejoin:round;}
@media (max-width:900px){
  .geo .pins text{font-size:17px;}
  .geo .pins circle:first-child{r:6;}
}
@media (prefers-reduced-motion:reduce){
  .geo .arc,.geo .ping{animation:none;}
}
.route-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line-dark);text-align:center;}
.route-foot b{display:block;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:700;color:var(--gold);line-height:1.2;}
.route-foot span{font-size:.68rem;color:rgba(255,255,255,.45);letter-spacing:.04em;}

/* ============ PERCORSO ============ */
.path{background:var(--paper-2);}
.path-rail{position:relative;}
.path-line{
  position:absolute;top:27px;left:7%;right:7%;height:2px;
  background:repeating-linear-gradient(90deg,rgba(11,11,12,.16) 0 7px,transparent 7px 14px);
}
.path-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--gold);transition:width 1.6s var(--ease);}
.path-plane{position:absolute;top:13px;left:7%;width:28px;height:28px;color:var(--gold);translate:-50% 0;transition:left 1.6s var(--ease);z-index:2;}
.path-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,32px);}
.step{display:flex;flex-direction:column;}
.step-dot{
  width:56px;height:56px;border-radius:50%;background:var(--white);border:2px solid var(--line);
  display:grid;place-items:center;font-weight:700;font-size:.95rem;color:var(--slate);
  margin-bottom:22px;flex:none;transition:all .45s var(--ease);
}
.step.on .step-dot{background:var(--gold);border-color:var(--gold);color:var(--ink);transform:scale(1.06);}
.step h3{font-size:1rem;margin-bottom:9px;}
.step p{font-size:.83rem;color:var(--graphite);}

/* ============ UFFICI ============ */
.off{background:var(--white);}
.off-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:clamp(14px,1.6vw,20px);}
.off-c{
  border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,2.6vw,32px);
  display:flex;flex-direction:column;min-height:280px;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.off-c:hover{transform:translateY(-5px);box-shadow:var(--shadow-2);}
.off-c.hq{background:var(--ink);border-color:transparent;color:var(--white);}
.off-c.hq h3{color:var(--white);}
.off-tag{
  align-self:flex-start;padding:5px 12px;border-radius:999px;
  font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px;
  background:var(--gold-wash);color:var(--gold-3);
}
.off-c.hq .off-tag{background:var(--gold);color:var(--ink);}
.off-pin{width:24px;height:24px;color:var(--gold);margin-bottom:14px;}
.off-c h3{font-size:clamp(1.15rem,1.7vw,1.4rem);margin-bottom:8px;}
.off-c p{font-size:.83rem;color:var(--graphite);margin-bottom:24px;flex:1;}
.off-c.hq p{color:rgba(255,255,255,.58);}

/* ============ IMPEGNO ============ */
.vals{background:var(--paper);}
.vals-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.4vw,18px);}
.val{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(24px,2.4vw,30px) clamp(16px,1.8vw,22px);text-align:center;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.val:hover{transform:translateY(-4px);border-color:var(--gold);}
.val svg{width:30px;height:30px;color:var(--gold-3);margin:0 auto 16px;}
.val h3{font-size:.92rem;margin-bottom:7px;}
.val p{font-size:.76rem;color:var(--graphite);line-height:1.55;}

/* ============ FAQ ============ */
.faq{background:var(--paper-2);}
.faq-list{max-width:840px;margin-inline:auto;}
.faq-i{border-bottom:1px solid var(--line);}
.faq-i:first-child{border-top:1px solid var(--line);}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 2px;text-align:left;font-size:clamp(.92rem,1.35vw,1.02rem);font-weight:500;
  transition:color .3s;
}
.faq-q:hover{color:var(--gold-3);}
.faq-q i{
  width:26px;height:26px;flex:none;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;transition:.35s var(--ease);
}
.faq-q i::before,.faq-q i::after{content:"";position:absolute;background:var(--gold-3);border-radius:2px;transition:.35s var(--ease);}
.faq-q i::before{width:10px;height:1.7px;}
.faq-q i::after{width:1.7px;height:10px;}
.faq-i.open .faq-q i{background:var(--gold);border-color:var(--gold);rotate:135deg;}
.faq-i.open .faq-q i::after{opacity:0;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);}
.faq-a p{padding:0 2px 24px;font-size:.88rem;color:var(--graphite);max-width:700px;}

/* ============ CONTATTI ============ */
.ct{background:var(--ink);color:var(--white);}
.ct-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,72px);align-items:start;}
.ct-lead{color:rgba(255,255,255,.6);font-size:.98rem;margin-bottom:36px;}
.ct-info{display:grid;gap:20px;}
.ct-i{display:flex;gap:14px;}
.ct-i svg{width:19px;height:19px;color:var(--gold);flex:none;margin-top:3px;}
.ct-i b{display:block;font-size:.88rem;font-weight:600;color:var(--white);margin-bottom:2px;}
.ct-i span,.ct-i a{font-size:.82rem;color:rgba(255,255,255,.55);}
.ct-i a:hover{color:var(--gold);}
.form{
  background:var(--ink-3);border:1px solid var(--line-dark);border-radius:var(--r-lg);
  padding:clamp(26px,3.2vw,42px);
}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fld{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.fld label{font-size:.72rem;font-weight:500;color:rgba(255,255,255,.5);letter-spacing:.02em;}
.fld input,.fld select,.fld textarea{
  background:rgba(255,255,255,.045);border:1px solid var(--line-dark);border-radius:var(--r-sm);
  padding:13px 14px;font-size:.88rem;color:var(--white);
  transition:border-color .3s, background .3s;
  -webkit-appearance:none;appearance:none;
}
.fld select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A8A90' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:16px;padding-right:40px;
}
.fld select option{background:var(--ink-3);color:var(--white);}
.fld input::placeholder,.fld textarea::placeholder{color:rgba(255,255,255,.28);}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.07);}
.fld textarea{resize:vertical;min-height:96px;}
.chk{display:flex;align-items:flex-start;gap:10px;margin-bottom:22px;}
.chk input{width:16px;height:16px;margin-top:3px;accent-color:var(--gold);flex:none;}
.chk label{font-size:.72rem;color:rgba(255,255,255,.48);line-height:1.55;}
.form .btn{width:100%;}
.sent{display:none;text-align:center;padding-block:34px;}
.sent svg{width:46px;height:46px;color:var(--gold);margin:0 auto 16px;}
.sent h3{color:var(--white);margin-bottom:8px;}
.sent p{font-size:.86rem;color:rgba(255,255,255,.55);}

/* ============ FOOTER ============ */
footer{background:#08080A;color:rgba(255,255,255,.5);padding-block:clamp(52px,6vw,76px) 28px;}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(28px,4vw,44px);margin-bottom:clamp(40px,5vw,58px);}
.f-brand p{font-size:.8rem;color:rgba(255,255,255,.4);margin:18px 0 22px;max-width:290px;}
.f-soc{display:flex;gap:10px;}
.f-soc a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;transition:.3s var(--ease);}
.f-soc a:hover{background:var(--gold);border-color:var(--gold);}
.f-soc a:hover svg{color:var(--ink);}
.f-soc svg{width:15px;height:15px;color:rgba(255,255,255,.66);transition:color .3s;}
.f-col h4{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--white);margin-bottom:18px;font-weight:600;}
.f-col li{margin-bottom:11px;}
.f-col a{font-size:.83rem;transition:color .3s;}
.f-col a:hover{color:var(--gold);}
.f-bot{
  border-top:1px solid rgba(255,255,255,.07);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:.73rem;color:rgba(255,255,255,.32);
}

/* ============ FLOAT ============ */
.float{
  position:fixed;right:clamp(16px,3vw,26px);bottom:clamp(16px,3vw,26px);z-index:800;
  width:56px;height:56px;border-radius:50%;background:var(--gold);display:grid;place-items:center;
  box-shadow:0 14px 30px -8px rgba(255,193,7,.6);
  transition:transform .35s var(--ease), opacity .35s var(--ease);
  opacity:0;pointer-events:none;
}
.float.show{opacity:1;pointer-events:auto;}
.float:hover{transform:scale(1.09);}
.float svg{width:25px;height:25px;color:var(--ink);}

/* ============ REVEAL ============ */
.rv{opacity:0;transform:translateY(22px);transition:opacity .85s var(--ease), transform .85s var(--ease);}
.rv.in{opacity:1;transform:none;}

/* Honeypot anti-spam: invisibile agli utenti, visibile ai bot. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* Errore invio modulo */
.form-error{
  margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);
  background:rgba(255,80,80,.1);border:1px solid rgba(255,120,120,.35);
  color:#FFB4B4;font-size:.8rem;
}
