
:root{--navy:#073b4c;--navy2:#0a5267;--teal:#18a999;--teal-dark:#0c887d;--mint:#effcf9;--cyan:#dff8f5;--blue:#edf6ff;--white:#fff;--ink:#102a33;--muted:#5e747d;--line:#dce9ed;--danger:#a63b32;--danger-soft:#fff1f0;--warning:#fff7df;--warning-border:#f1d68a;--success:#eafaf6;--shadow-sm:0 10px 30px rgba(7,59,76,.08);--shadow-lg:0 28px 70px rgba(7,59,76,.16);--radius:22px;--container:1180px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 0 0,rgba(24,169,153,.11),transparent 32rem),linear-gradient(180deg,#fbffff 0%,#fff 40%,#f7fbfc 100%);line-height:1.6;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:var(--ink)}img,svg{display:block;max-width:100%}.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}.skip-link{position:fixed;left:16px;top:-80px;z-index:2000;background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px}.skip-link:focus{top:16px}.topbar{background:var(--navy);color:rgba(255,255,255,.92);font-size:.86rem;letter-spacing:.01em}.topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar strong{color:#fff}.topbar-emergency{display:flex;align-items:center;gap:8px}.topbar-dot{width:8px;height:8px;border-radius:999px;background:#00ff00;box-shadow:0 0 0 4px rgba(255,207,90,.12);flex:0 0 auto}.header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,233,237,.85)}.header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:28px}.logo{display:inline-flex;align-items:center;gap:12px;font-weight:850;font-size:1.18rem;color:var(--navy);letter-spacing:-.025em;white-space:nowrap}.logo-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--teal));box-shadow:0 10px 24px rgba(24,169,153,.26)}.logo-mark svg{width:24px}.logo-domain{color:var(--teal-dark)}.nav{display:flex;align-items:center;gap:25px}.nav-links{display:flex;align-items:center;gap:23px;list-style:none}.nav-links a{color:#31545f;font-size:.94rem;font-weight:700}.nav-links a:hover{color:var(--teal-dark)}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);cursor:pointer;place-items:center}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:14px;padding:0 20px;font-weight:800;font-size:.94rem;cursor:pointer;transition:.2s}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:linear-gradient(135deg,var(--teal),var(--teal-dark));box-shadow:0 12px 24px rgba(24,169,153,.23)}.button-secondary{color:var(--navy);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.button-dark{color:#fff;background:var(--navy)}.breadcrumb{padding-top:28px;color:var(--muted);font-size:.86rem}.breadcrumb ol{display:flex;align-items:center;flex-wrap:wrap;gap:8px;list-style:none}.breadcrumb a{color:var(--teal-dark);font-weight:750}.hero{position:relative;padding:52px 0 74px;overflow:hidden}.hero:after{content:"";position:absolute;width:370px;height:370px;right:-130px;top:30px;border-radius:50%;background:rgba(24,169,153,.08);z-index:-1}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:65px}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--teal-dark);background:var(--mint);border:1px solid #ccefe8;padding:8px 12px;border-radius:99px;font-size:.82rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(24,169,153,.13)}h1{max-width:790px;margin-top:20px;color:var(--navy);font-size:clamp(2.5rem,5vw,4.7rem);line-height:1;letter-spacing:-.056em;font-weight:900}.hero-copy{max-width:670px;margin-top:24px;color:var(--muted);font-size:clamp(1.04rem,1.7vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.hero-note{display:flex;gap:11px;max-width:670px;margin-top:22px;color:#4a6670;font-size:.92rem}.hero-note svg{width:23px;flex:0 0 auto;color:var(--teal-dark)}.summary-card{padding:28px;border:1px solid rgba(210,228,233,.95);border-radius:30px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-lg)}.summary-head{display:flex;align-items:center;gap:16px}.summary-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--teal))}.summary-icon svg{width:29px}.summary-head strong{display:block;color:var(--navy);font-size:1.2rem}.summary-head span{color:var(--muted);font-size:.86rem}.summary-list{display:grid;gap:12px;margin-top:24px;list-style:none}.summary-list li{display:flex;gap:11px;color:#385a64;font-weight:650}.summary-list svg{width:20px;flex:0 0 auto;color:var(--teal-dark);margin-top:2px}.section{padding:88px 0}.section-soft{background:linear-gradient(180deg,rgba(239,252,249,.72),rgba(237,246,255,.52));border-block:1px solid rgba(220,233,237,.8)}.section-heading{max-width:760px;margin-bottom:42px}.kicker{color:var(--teal-dark);font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.section-heading h2{margin-top:10px;color:var(--navy);font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;letter-spacing:-.045em}.section-heading p{margin-top:16px;color:var(--muted);font-size:1.05rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.info-card,.step-card{padding:27px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}.info-card h3,.step-card h3{margin-top:17px;color:var(--navy);font-size:1.13rem}.info-card p,.step-card p{margin-top:8px;color:var(--muted)}.card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--mint);color:var(--teal-dark)}.card-icon svg{width:24px}.step-number{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--navy);color:#fff;font-weight:850}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px}.booking-card{border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow-lg);overflow:hidden}.progress-wrap{padding:24px 28px 0}.progress-meta{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.85rem;font-weight:750}.progress-track{height:8px;margin-top:13px;background:#edf3f5;border-radius:99px;overflow:hidden}.progress-bar{height:100%;width:20%;border-radius:99px;background:linear-gradient(90deg,var(--teal),var(--teal-dark));transition:width .25s}.form-step{display:none;padding:31px 28px 28px}.form-step.active{display:block}.form-step h3{color:var(--navy);font-size:1.6rem;line-height:1.2}.form-intro{margin-top:8px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;margin-top:26px}.field{display:grid;align-content:start;gap:8px}.field-full{grid-column:1/-1}.field label,.fieldset-label{color:#254954;font-weight:780;font-size:.91rem}.required:after{content:" *";color:var(--danger)}input,textarea,select{width:100%;border:1px solid #cfe0e5;border-radius:13px;background:#fff;padding:13px 14px;outline:none;transition:.2s}textarea{min-height:118px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(24,169,153,.11)}[aria-invalid=true]{border-color:#d57068!important;box-shadow:0 0 0 4px rgba(166,59,50,.09)!important}.field-help{color:var(--muted);font-size:.81rem}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.choice input{position:absolute;opacity:0;pointer-events:none}.choice label{display:flex;align-items:flex-start;gap:12px;height:100%;padding:15px;border:1px solid #cfe0e5;border-radius:15px;cursor:pointer;background:#fff}.choice input:checked+label{border-color:var(--teal);background:var(--mint);box-shadow:0 0 0 3px rgba(24,169,153,.1)}.choice-dot{width:18px;height:18px;border:2px solid #9db8c0;border-radius:50%;margin-top:2px;flex:0 0 auto}.choice input:checked+label .choice-dot{border:5px solid var(--teal)}.choice strong{display:block;color:var(--navy)}.choice label span span{display:block;color:var(--muted);font-size:.82rem;font-weight:500;margin-top:2px}.upload-box{padding:20px;border:1.5px dashed #a9cbd1;border-radius:16px;background:#f9fdfd}.upload-box input{margin-top:13px;padding:10px;background:#fff}.slot-panel{grid-column:1/-1;padding:20px;border:1px solid var(--line);border-radius:18px;background:#f9fcfd}.slot-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.slot-head strong{color:var(--navy)}.h24{padding:5px 9px;border-radius:99px;background:var(--mint);color:var(--teal-dark);font-size:.76rem;font-weight:850}.time-slots{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:15px}.time-slot{min-height:40px;border:1px solid #cfe0e5;border-radius:10px;background:#fff;font-weight:750;cursor:pointer}.time-slot:hover,.time-slot.selected{border-color:var(--teal);background:var(--teal);color:#fff}.no-slots{margin-top:12px;color:var(--danger);font-size:.88rem}.form-actions{display:flex;justify-content:space-between;gap:14px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}.review-box{display:grid;gap:10px;margin-top:24px}.review-row{display:grid;grid-template-columns:185px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.review-row span{color:var(--muted);font-size:.87rem}.review-row strong{white-space:pre-wrap;overflow-wrap:anywhere}.consents{display:grid;gap:13px;margin-top:25px}.check-line{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd;color:#365760;font-size:.88rem}.check-line input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.form-status{display:none;margin-top:17px;padding:13px 15px;border-radius:13px}.form-status.visible{display:block}.form-status.sending{background:var(--blue);color:#235479}.form-status.error{background:var(--danger-soft);color:var(--danger);border:1px solid #f1c0bc}.success-message{display:none;padding:34px 28px}.success-message.visible{display:block}.success-icon{width:62px;height:62px;display:grid;place-items:center;margin-inline:auto;border-radius:20px;background:var(--success);color:var(--teal-dark)}.success-icon svg{width:34px}.success-message h3{margin-top:20px;color:var(--navy);font-size:1.65rem}.success-message>p{margin-top:10px;color:var(--muted)}.delivery-promise{margin-top:18px;padding:16px;border:1px solid #ccefe8;border-radius:15px;background:var(--mint);color:#285f5b;font-weight:700}.booking-side{position:sticky;top:110px;padding:24px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}.booking-side h3{color:var(--navy)}.side-service{display:flex;gap:12px;margin-top:17px;padding:15px;border-radius:15px;background:var(--mint)}.side-service-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#fff;color:var(--teal-dark);flex:0 0 auto}.side-service-icon svg{width:23px}.side-service strong{display:block;color:var(--navy);line-height:1.25}.side-service span span{color:var(--muted);font-size:.8rem}.side-summary{display:grid;gap:0;margin-top:18px}.side-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.87rem}.side-row span{color:var(--muted)}.side-row strong{text-align:right;max-width:190px;overflow-wrap:anywhere}.privacy-note{display:flex;gap:10px;margin-top:18px;color:var(--muted);font-size:.79rem}.privacy-note svg{width:20px;color:var(--teal-dark);flex:0 0 auto}.faq-list{display:grid;gap:12px;max-width:860px}.faq-item{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.faq-question{width:100%;display:flex;justify-content:space-between;gap:18px;padding:18px 20px;border:0;background:#fff;text-align:left;color:var(--navy);font-weight:800;cursor:pointer}.faq-answer{max-height:0;overflow:hidden;transition:max-height .25s}.faq-answer p{padding:0 20px 19px;color:var(--muted)}.faq-item.open .faq-answer{max-height:260px}.footer{padding:58px 0 25px;background:var(--navy);color:rgba(255,255,255,.82)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px}.footer h3{color:#fff;margin-bottom:12px}.footer ul{list-style:none;display:grid;gap:8px}.footer a:hover{color:#8fe1d7}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:42px;padding-top:21px;border-top:1px solid rgba(255,255,255,.14);font-size:.82rem}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal{opacity:0;transform:translateY(18px);transition:.55s}.reveal.visible{opacity:1;transform:none}@media(max-width:960px){.nav-links{display:none}.menu-toggle{display:grid}.nav.open{position:absolute;top:80px;left:20px;right:20px;display:grid;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-lg)}.nav.open .nav-links{display:grid}.nav.open>.button{width:100%}.hero-grid,.booking-layout{grid-template-columns:1fr}.booking-side{position:static}.cards{grid-template-columns:1fr 1fr}.time-slots{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){.container{width:min(calc(100% - 28px),var(--container))}.topbar-inner{justify-content:center;text-align:center}.topbar-inner>span:last-child{display:none}.header-inner{min-height:70px}.logo{font-size:1rem}.logo-mark{width:38px;height:38px}.hero{padding:38px 0 56px}.hero-grid{gap:35px}h1{font-size:clamp(2.3rem,13vw,3.6rem)}.section{padding:65px 0}.cards,.form-grid,.choice-grid,.footer-grid{grid-template-columns:1fr}.form-step,.success-message{padding:25px 19px}.progress-wrap{padding:21px 19px 0}.review-row{grid-template-columns:1fr;gap:4px}.time-slots{grid-template-columns:repeat(3,1fr)}.payment-grid{grid-template-columns:1fr}.payment-field-full{grid-column:auto}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}.footer-bottom{display:grid;grid-template-columns:1fr;justify-content:stretch}}


/* Modulo di pagamento: ripristino del layout e dell'animazione originali. */
.payment-waiting{width:fit-content;display:flex;align-items:center;justify-content:center;gap:10px;margin:18px auto 0;padding:10px 14px;border:1px solid var(--warning-border);border-radius:999px;color:var(--navy);background:var(--warning);font-size:.86rem;font-weight:800;text-align:center}
.payment-waiting-spinner{width:18px;height:18px;flex:0 0 auto;border:2px solid rgba(7,59,76,.2);border-top-color:var(--teal-dark);border-radius:50%;animation:payment-waiting-spin .9s linear infinite}
@keyframes payment-waiting-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.payment-waiting-spinner{animation:none}}
.payment-card{max-width:680px;margin:28px auto 0;overflow:hidden;text-align:left;border:1px solid #cce8e3;border-radius:22px;background:radial-gradient(circle at 100% 0,rgba(24,169,153,.13),transparent 15rem),linear-gradient(145deg,#f5fffd,#f8fbff);box-shadow:0 18px 45px rgba(7,59,76,.1)}
.payment-card-head{display:flex;align-items:center;gap:15px;padding:21px 22px;border-bottom:1px solid #d8ece8}
.payment-card-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--teal));box-shadow:0 10px 22px rgba(24,169,153,.22)}
.payment-card-icon svg{width:24px;height:24px}
.payment-card-title{min-width:0;flex:1}
.payment-card-title span{display:block;color:var(--teal-dark);font-size:.72rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.payment-card-title h4{margin-top:2px;color:var(--navy);font-size:1.08rem;line-height:1.25}
.payment-amount{flex:0 0 auto;text-align:right}
.payment-amount span{display:block;color:var(--muted);font-size:.72rem;font-weight:750}
.payment-amount strong{display:block;color:var(--navy);font-size:1.42rem;line-height:1.15;letter-spacing:-.025em}
.payment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:20px 22px;background:transparent}
.payment-field{min-width:0;padding:13px 14px;border:1px solid #dbeae8;border-radius:14px;background:rgba(255,255,255,.82)}
.payment-field-full{grid-column:1/-1}
.payment-label{display:block;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.payment-value{display:block;margin-top:4px;color:#234b57;font-size:.9rem;line-height:1.4;overflow-wrap:anywhere}
.payment-value-iban{color:var(--navy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.94rem;letter-spacing:.025em}
.payment-note{margin:0 22px 22px;padding:13px 15px;border-radius:14px;color:#31545f;background:#fff7df;border:1px solid #f1d68a;font-size:.83rem;line-height:1.5}
.payment-note strong{color:var(--navy)}
@media(max-width:520px){.payment-card-head{align-items:flex-start;flex-wrap:wrap}.payment-amount{width:100%;text-align:left;padding-left:63px}.payment-grid{grid-template-columns:1fr}}

/* Stato finale della richiesta: il riepilogo di pagamento resta sempre visibile. */
.booking-card.completed .progress-wrap,
.booking-card.completed .form-step{display:none!important}
.booking-card.completed .success-message{display:block!important}
.success-message[hidden]{display:none}
.booking-card.completed .success-message[hidden]{display:block!important}

/* Centratura esplicita del comando finale: .button è inline-flex, quindi i soli margini automatici non bastano. */
.success-message #restart-form{
  display:flex;
  width:fit-content;
  max-width:100%;
  margin:20px auto 0!important;
  justify-content:center;
  text-align:center;
}

/* Pagine informative e legali */
.legal-hero{padding:58px 0 34px}.legal-hero h1{font-size:clamp(2.4rem,5vw,4.2rem)}.legal-hero .hero-copy{max-width:780px}.legal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:32px;padding:30px 0 88px}.legal-nav{position:sticky;top:110px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm)}.legal-nav strong{display:block;color:var(--navy);margin-bottom:10px}.legal-nav ul{list-style:none;display:grid;gap:8px}.legal-nav a{display:block;padding:8px 10px;border-radius:10px;color:#31545f;font-weight:700}.legal-nav a:hover{background:var(--mint);color:var(--teal-dark)}.legal-content{padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow-sm)}.legal-content h2{margin-top:34px;color:var(--navy);font-size:1.55rem;line-height:1.25}.legal-content h2:first-child{margin-top:0}.legal-content h3{margin-top:24px;color:var(--navy);font-size:1.15rem}.legal-content p,.legal-content li{color:#45636c}.legal-content p{margin-top:10px}.legal-content ul,.legal-content ol{display:grid;gap:8px;margin:12px 0 0 22px}.legal-content a{color:var(--teal-dark);font-weight:750;text-decoration:underline}.legal-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.legal-chip{padding:7px 11px;border-radius:999px;background:var(--mint);border:1px solid #ccefe8;color:var(--teal-dark);font-size:.82rem;font-weight:800}.legal-callout{margin-top:20px;padding:18px;border-radius:16px;background:var(--blue);border:1px solid #d3e5f7;color:#28526c}.legal-contact{margin-top:18px;padding:18px;border-radius:16px;background:var(--mint);border:1px solid #ccefe8}.legal-contact strong{color:var(--navy)}@media(max-width:850px){.legal-layout{grid-template-columns:1fr}.legal-nav{position:static}.legal-content{padding:25px 20px}}


/* Identità societaria e trasparenza */
.company-disclosure{margin-top:30px;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.72);font-size:.8rem;line-height:1.75}
.company-disclosure strong{color:#fff}.company-disclosure a{color:#9fe8df;text-decoration:underline;text-underline-offset:2px}.company-disclosure a:hover{color:#fff}
/* Correzione mirata: impedisce esclusivamente l’overflow orizzontale su mobile. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}}
@media(max-width:850px){.legal-layout{grid-template-columns:minmax(0,1fr)}.legal-nav,.legal-content{min-width:0;overflow-wrap:anywhere}}
@media(max-width:650px){.header-inner,.header .logo,.header .nav{min-width:0}.header .nav>.button{display:none}.header .menu-toggle{flex:0 0 46px}.choice{position:relative;min-width:0}}
