:root{--navy:#002b54;--deep:#001b3c;--orange:#ff9916;--blue:#071b79;--ink:#091d45}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#f6f8fc}a{color:inherit}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(20px,5vw,72px);background:white}.brand{text-decoration:none;font-size:clamp(22px,3vw,36px);font-weight:950;letter-spacing:-2px;color:var(--deep);display:inline-block;position:relative}.brand span{display:block;background:var(--orange);height:4px;width:48px;margin-top:3px}.brand.light{color:#fff}.topbar nav{display:flex;gap:25px;font-size:14px}.topbar nav a{text-decoration:none}.hero{min-height:calc(100vh - 155px);display:grid;grid-template-columns:1.15fr 1fr;gap:40px;padding:30px clamp(24px,6vw,100px) 50px;background:linear-gradient(100deg,rgba(255,255,255,.95) 5%,rgba(255,255,255,.82) 53%,rgba(241,232,219,.32)),url('/assets/img/reference-home.png') center/cover}.hero-copy h1{font-size:clamp(38px,5.7vw,76px);letter-spacing:-4px;margin:0;font-weight:950;color:var(--deep)}.small-rule{height:4px;background:var(--orange);width:52px}.subtitle{font-size:clamp(20px,2.6vw,34px);margin:8px 0 0;letter-spacing:1px}.price{border:4px solid #ef9a20;border-radius:50%;transform:rotate(-4deg);width:max-content;padding:0 30px;margin:8px 0 30px 20px;font-weight:900;color:var(--deep)}.price strong{font-size:clamp(54px,7vw,90px);font-style:italic}.price span{font-size:clamp(23px,3vw,38px);font-style:italic}.benefits{display:grid;gap:25px}.benefits article{display:flex;gap:16px;align-items:center}.benefits h2{font-size:16px;margin:0 0 5px}.benefits p{font-size:14px;max-width:330px;margin:0}.benefit-icon{border:2px solid var(--orange);border-radius:50%;height:55px;width:55px;display:grid;place-items:center;color:var(--orange);font-size:30px;flex-shrink:0}.sign-area{display:flex;flex-direction:column;gap:12px;justify-content:center;align-items:center}.sign{background:#d6a17e;border:0;clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%);font-size:clamp(19px,2.1vw,29px);font-weight:900;color:var(--deep);padding:16px 55px 16px 30px;min-width:250px;cursor:pointer;box-shadow:0 3px 5px #555}.sign.dark{background:var(--navy);color:white}.sign:hover{filter:brightness(1.1)}.footer{background:var(--navy);color:#fff;padding:12px 28px}.footer-inner{max-width:1250px;margin:auto;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}.footer-title{font-size:20px;letter-spacing:5px;border-left:4px solid var(--orange);padding-left:20px}.footer-links{display:flex;gap:18px;font-size:11px}.btn{border:0;border-radius:30px;background:var(--orange);padding:13px 35px;font-weight:800;color:white;text-decoration:none;cursor:pointer;display:inline-block}.btn:hover{filter:brightness(.94)}.info-dialog{max-width:520px;border:0;border-radius:12px;padding:30px;box-shadow:0 18px 60px #0005;line-height:1.5}.info-dialog::backdrop{background:#001a38a6}.info-dialog h2{color:var(--deep)}.info-dialog h3{margin-bottom:0}.close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:30px;cursor:pointer}.badge{color:var(--orange);font-size:36px}.wizard-page{display:grid;grid-template-columns:270px minmax(0,800px);gap:25px;justify-content:center;background:linear-gradient(145deg,#004777,#001e42);min-height:calc(100vh - 150px);padding:25px}.wizard-side{padding:12px}.steps{display:flex;justify-content:space-between;margin-top:25px;gap:8px}.steps span{border:1px solid white;border-radius:50%;color:white;width:32px;height:32px;display:grid;place-items:center;position:relative;font-weight:bold}.steps span.active{background:#ffc300;color:var(--deep);border-color:#ffc300}.steps small{position:absolute;top:40px;font-size:10px;color:white}.wizard-card{background:white;padding:clamp(20px,3vw,42px);border-radius:10px;box-shadow:0 15px 35px #0002}.wizard-card h1{font-size:32px;color:var(--blue);margin:8px 0 25px}.wizard-card h2{font-size:19px;color:var(--blue)}label:not(.check){display:block;font-size:13px;color:var(--blue);font-weight:600;margin-bottom:14px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid #b9c9e5;border-radius:5px;padding:11px;font:inherit;background:white;margin-top:6px;color:var(--ink)}fieldset{border:1px solid #d7e2f3;border-radius:8px;margin:15px 0;padding:18px}legend{color:var(--blue);font-weight:bold}.debt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.debt-item{padding:12px;border:1px solid #d5e0f2;border-radius:6px;background:#f8faff}.debt-details{margin-top:10px}.check{display:flex;align-items:flex-start;gap:9px;margin:13px 0;font-size:13px;color:var(--blue)}.check input{accent-color:var(--blue);margin-top:1px}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px}.outline{background:white;color:var(--blue);border:1px solid var(--blue)}.error{color:#ad1423;font-weight:bold}.notice{padding:12px;border-left:4px solid var(--orange);background:#fff5e7;font-size:13px;margin-bottom:22px}.success{background:#eaf9f0;border-radius:10px;text-align:center;color:#22a54d;padding:20px;font-size:34px}.success h2{margin:0}.total{background:#f0f6ff;border-radius:8px;padding:18px;margin:15px 0}.total strong{display:block;font-size:32px;color:var(--blue)}.total small{display:block}.legal-page{max-width:900px;margin:30px auto;padding:32px;background:white;border-radius:10px;line-height:1.6}.legal-page p{margin:0 0 13px}.legal-page h1{color:var(--blue)}.content-page{max-width:850px;margin:50px auto;padding:35px;background:white;border-radius:10px;min-height:50vh;line-height:1.7}@media(max-width:800px){.hero{grid-template-columns:1fr;background:#faf9f6}.sign-area{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sign{min-width:0;width:100%;font-size:15px;padding:15px 25px 15px 12px}.wizard-page{grid-template-columns:1fr}.wizard-side{padding:5px 0 35px}.steps{max-width:300px}.footer-inner{justify-content:center}.debt-grid{grid-template-columns:1fr}}@media(max-width:480px){.hero-copy h1{letter-spacing:-2px}.sign-area{grid-template-columns:1fr}.topbar{height:auto;gap:10px;flex-wrap:wrap}.topbar nav{font-size:12px}.wizard-page{padding:12px}.footer-links{flex-wrap:wrap;justify-content:center}}

/* Homepage: layout aligned to the supplied Sdebitiamoci reference. */
.topbar{height:106px;padding:16px clamp(24px,5vw,96px);border-top:2px solid #343434}
.brand{font-size:clamp(30px,3.6vw,50px);letter-spacing:-3px}
.brand span{height:5px;width:66px;margin-top:8px}
.topbar nav{gap:34px;font-size:clamp(15px,1.3vw,21px);font-weight:600}
.hero{position:relative;min-height:calc(100vh - 178px);grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:28px;padding:50px clamp(28px,6vw,120px) 88px;background-color:#fff;background-image:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 42%,rgba(255,255,255,.25) 69%,rgba(255,255,255,0) 100%),url('/assets/img/reference-home.png');background-repeat:no-repeat;background-position:center,right center;background-size:cover,auto 100%}
.hero-copy h1{font-size:clamp(52px,6.5vw,98px);letter-spacing:-6px;line-height:.95}
.small-rule{height:5px;width:70px;margin-top:16px}
.subtitle{font-size:clamp(25px,3.1vw,48px);letter-spacing:0;margin:10px 0 4px}
.price{border-width:5px;padding:0 28px 0 42px;margin:5px 0 34px 28px}
.price strong{font-size:clamp(70px,8vw,118px)}
.price span{font-size:clamp(27px,3.8vw,52px)}
.benefits{gap:25px}
.benefits article{gap:20px;align-items:flex-start}
.benefit-icon{width:72px;height:72px;font-size:35px;border-width:3px}
.benefits h2{font-size:clamp(16px,1.35vw,22px);margin:7px 0 6px}
.benefits p{font-size:clamp(14px,1.2vw,19px);line-height:1.25;max-width:470px}
.sign-area{gap:15px;align-items:flex-start;justify-content:center;padding:80px 0 0 10%}
.sign{font-size:clamp(20px,2.2vw,35px);min-width:min(390px,100%);padding:18px 72px 18px 42px;box-shadow:0 4px 7px #5d463888}
.footer{padding:15px clamp(22px,6vw,100px);min-height:72px}
.footer-inner{max-width:none}
.footer-title{font-size:clamp(15px,1.6vw,25px);letter-spacing:5px}
.footer-links{font-size:clamp(10px,1vw,14px)}
.footer .btn{font-size:clamp(13px,1.25vw,18px);padding:15px 42px}
@media(max-width:800px){
  .topbar{height:auto;min-height:82px;padding:14px 22px}
  .topbar nav{gap:16px;font-size:13px}
  .hero{min-height:0;grid-template-columns:1fr;gap:24px;padding:32px 24px 38px;background-image:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.88) 60%,rgba(255,255,255,.45) 100%),url('/assets/img/reference-home.png');background-position:center;background-size:cover}
  .hero-copy h1{font-size:clamp(48px,14vw,78px);letter-spacing:-4px}
  .subtitle{font-size:clamp(24px,7vw,38px)}
  .price{margin-left:12px;margin-bottom:24px}
  .benefits{gap:18px}
  .benefit-icon{width:58px;height:58px;font-size:28px}
  .benefits h2{font-size:16px}
  .benefits p{font-size:13px}
  .sign-area{padding:10px 0 0;align-items:stretch}
  .sign{min-width:0;font-size:18px;padding:15px 40px 15px 20px}
  .footer{position:static;padding:14px 18px}
  .footer-title{letter-spacing:3px}
}

/* Clean single-pass homepage layout. */
@media (min-width:801px){
  body:has(>.hero){height:100vh;height:100dvh;overflow:hidden;background:#fff}
  body:has(>.hero)>.topbar{height:clamp(72px,11vh,106px);padding:10px clamp(28px,5vw,100px)}
  body:has(>.hero)>.hero{height:calc(100vh - clamp(72px,11vh,106px) - 76px);height:calc(100dvh - clamp(72px,11vh,106px) - 76px);min-height:0;overflow:hidden;padding:clamp(22px,4vh,52px) clamp(34px,6vw,120px) clamp(20px,3vh,42px);grid-template-columns:minmax(0,1fr) minmax(380px,.85fr);gap:clamp(20px,4vw,70px);background-color:#fbf8f4;background-image:radial-gradient(ellipse at 84% 44%,rgba(223,173,132,.36),transparent 33%),linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 47%,rgba(255,255,255,.25) 100%);}
  body:has(>.hero)>.hero::after{content:"";position:absolute;z-index:0;right:25%;top:5%;bottom:4%;width:24px;border-radius:12px;background:linear-gradient(90deg,#794726,#c18b5c 42%,#88532f);box-shadow:5px 0 15px #53321c30;}
  .hero-copy,.sign-area{position:relative;z-index:1}
  .hero-copy h1{font-size:clamp(48px,5.2vw,84px);letter-spacing:-.065em}
  .small-rule{margin-top:clamp(8px,1.4vh,16px)}
  .subtitle{font-size:clamp(24px,2.6vw,42px);white-space:nowrap}
  .price{margin:4px 0 clamp(12px,2.5vh,30px) 16px;padding:0 24px 0 34px;border-width:4px}
  .price strong{font-size:clamp(60px,6.4vw,100px)}
  .price span{font-size:clamp(24px,3vw,42px)}
  .benefits{gap:clamp(10px,2vh,22px)}
  .benefit-icon{height:clamp(48px,6.3vh,68px);width:clamp(48px,6.3vh,68px);font-size:27px}
  .benefits h2{font-size:clamp(14px,1.25vw,20px);margin:3px 0 4px}
  .benefits p{font-size:clamp(12px,1.05vw,17px);max-width:450px}
  .sign-area{padding:0;align-items:center;justify-content:center;gap:clamp(9px,1.7vh,17px)}
  .sign{width:min(100%,390px);min-width:0;padding:clamp(12px,1.7vh,18px) 54px clamp(12px,1.7vh,18px) 28px;font-size:clamp(18px,2vw,30px);text-align:center;clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%);}
  .sign span{margin-left:8px}
  body:has(>.hero)>.footer{height:76px;min-height:0;padding:8px clamp(24px,6vw,100px)}
  body:has(>.hero) .footer-inner{height:100%;gap:12px}
}
@media (min-width:801px) and (max-height:760px){
  body:has(>.hero)>.hero{padding-top:15px;padding-bottom:12px}
  .hero-copy h1{font-size:clamp(44px,4.7vw,68px)}
  .small-rule{margin-top:7px}
  .subtitle{font-size:clamp(22px,2.2vw,32px);margin-top:5px}
  .price{margin-bottom:10px}
  .benefits{gap:8px}
  .benefit-icon{height:46px;width:46px;font-size:22px}
  .sign-area{gap:8px}
  .sign{padding-top:10px;padding-bottom:10px}
}
@media(max-width:800px){
  .hero{background-image:radial-gradient(ellipse at 82% 68%,rgba(223,173,132,.42),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.91))}
  .sign-area{position:relative}
  .sign{min-height:52px;text-align:center}
}
@media (min-width:801px){
  body:has(>.hero)>.hero::after{display:none}
  body:has(>.hero) .sign-area{height:100%;width:auto;aspect-ratio:2/3;padding:0;position:relative;display:block;justify-self:center;}
  .signpost-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
  .sign-label{position:absolute;left:14%;top:12%;width:72%;height:13%;padding:0 10% 0 4%;border:0;background:transparent;color:var(--deep);font-size:clamp(15px,1.6vw,25px);font-weight:900;cursor:pointer;z-index:1;white-space:nowrap;}
  .sign-label:nth-of-type(2){top:27.5%}
  .sign-label:nth-of-type(3){top:43%}
  .sign-label:nth-of-type(4){top:58.5%;color:#fff}
  .sign-label:hover{filter:brightness(.86)}
}
@media(max-width:800px){
  .sign-area{height:390px;max-width:340px;width:100%;margin:0 auto;display:block;position:relative;padding:0!important;}
  .signpost-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
  .sign-label{position:absolute;left:14%;top:12%;width:72%;height:13%;padding:0 10% 0 4%;border:0;background:transparent;color:var(--deep);font-size:clamp(12px,4vw,16px);font-weight:900;cursor:pointer;z-index:1;white-space:nowrap;}
  .sign-label:nth-of-type(2){top:27.5%}
  .sign-label:nth-of-type(3){top:43%}
  .sign-label:nth-of-type(4){top:58.5%;color:#fff}
}

/* Questionnaire styling follows the client's navy, orange and white screens. */
body:has(#wizard){background:#062b52}
body:has(#wizard)>.topbar{display:none}
.wizard-page{min-height:calc(100dvh - 76px);height:calc(100dvh - 76px);grid-template-columns:minmax(220px,300px) minmax(0,940px);gap:clamp(22px,4vw,64px);align-items:center;padding:clamp(22px,4vh,48px) clamp(22px,6vw,100px);background:radial-gradient(ellipse at 72% 16%,#135080 0,transparent 43%),linear-gradient(140deg,#062b52,#001b3d 75%);overflow:hidden}
.wizard-side{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:12px 0}
.wizard-side .brand{font-size:clamp(30px,3vw,44px);letter-spacing:-2px}
.wizard-side .brand span{width:60px}
.steps{position:relative;gap:0;max-width:none;margin-top:45px}
.steps::before{content:"";position:absolute;z-index:0;left:14px;right:14px;top:15px;height:2px;background:#ffffff60}
.steps span{z-index:1;width:32px;height:32px;background:#07345d;border:1px solid #d9e6f2;color:#fff}
.steps span.active{background:#ffb000;border-color:#ffb000;color:#062b52}
.steps span.done{background:#ffb000;border-color:#ffb000;color:#062b52}
.steps small{top:42px;font-size:10px;letter-spacing:.05em;color:#d8e6f3}
.wizard-card{width:100%;max-height:calc(100dvh - 112px);overflow:auto;padding:clamp(24px,3vw,44px);border:1px solid #e5edf8;border-radius:14px;box-shadow:0 24px 70px #00101f55}
.form-step[hidden]{display:none!important}
.wizard-card .notice{border:0;border-left:4px solid var(--orange);border-radius:7px;background:#fff5e7;color:#65451f;line-height:1.45}
.wizard-card h1{font-size:clamp(27px,3vw,38px);letter-spacing:-.035em;color:#062b70;margin:5px 0 22px}
.step-heading{grid-column:1/-1;margin-bottom:5px}
.step-heading>span{display:block;color:#ed8b00;font-size:10px;letter-spacing:.12em;font-weight:800;margin-bottom:5px}
.step-heading h1{margin:0 0 5px}
.step-heading p{color:#66758c;font-size:13px;margin:0 0 12px}
.wizard-card h2{color:#082d67}
.wizard-card label:not(.check){font-size:12px;color:#173b82;margin-bottom:12px}
.wizard-card input:not([type=checkbox]):not([type=radio]),.wizard-card select,.wizard-card textarea{border:1px solid #cbd8ed;border-radius:7px;background:#fff;padding:11px 12px;margin-top:6px;font-size:14px;box-shadow:0 1px 2px #001b3c0d}
.wizard-card input:focus,.wizard-card select:focus,.wizard-card textarea:focus{outline:3px solid #ffb00035;border-color:#ff9a00}
.wizard-card fieldset{border:0;border-radius:10px;background:#f5f8fd;margin:6px 0 14px;padding:16px}
.wizard-card legend{padding:0;color:#082d67;font-size:16px}
.wizard-card fieldset>p{color:#5e6f88;font-size:12px;margin:6px 0 12px}
.debt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.debt-item{padding:10px 12px;border-color:#e0e8f4;border-radius:8px;background:#fff}
.debt-item .check{margin:0;font-size:12px;line-height:1.35}
.debt-details{border-top:1px solid #e5edf8;padding-top:8px}
.debt-details label:not(.check){font-size:11px}
.conditional{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:12px;background:#f5f8fd;border-radius:8px;margin:-4px 0 12px}
.conditional[hidden]{display:none}
.check{font-size:13px;line-height:1.45;color:#263d6f}
.check a{color:#092e76}
.actions{position:sticky;bottom:-1px;background:#fff;padding:14px 0 0;margin-top:14px;border-top:1px solid #edf1f7}
.actions .btn{min-width:140px;text-align:center}
.actions .outline{background:#fff;color:#082d67;border-color:#7188ba}
.wizard-card .success{display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:10px;background:#ecf9f0;color:#26a34a;text-align:left;font-size:28px}
.wizard-card .success h2{font-size:16px;margin:0;color:#12623a}
.wizard-card .total{background:#f1f6ff;border-radius:10px;padding:18px}
.wizard-card .total strong{font-size:30px;color:#092e76}
.wizard-card .total small{font-size:11px;color:#71809b}
#form-error{margin:8px 0;font-size:13px}
@media(min-width:801px){
  .form-step[data-step="0"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-content:start}
  .form-step[data-step="0"] .step-heading{grid-column:1/-1}
  .form-step[data-step="1"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-content:start}
  .form-step[data-step="1"] .step-heading,.form-step[data-step="1"] fieldset,.form-step[data-step="1"] .wide-field,.form-step[data-step="1"] .conditional{grid-column:1/-1}
  .form-step[data-step="2"]{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;align-content:start}
  .form-step[data-step="2"] .step-heading,.form-step[data-step="2"]>h2,.form-step[data-step="2"]>.notice{grid-column:1/-1}
  .form-step[data-step="2"] .total{grid-column:2;grid-row:2}
  .form-step[data-step="2"] .success{grid-column:1;grid-row:2}
  .form-step[data-step="2"] .check{align-self:center}
  .consent-box,.payment-box{align-self:start}
  .consent-box{padding:12px;border:1px solid #e5edf8;border-radius:9px}
  .payment-box{padding:12px;border:1px solid #e5edf8;border-radius:9px}
  .payment-box h2{margin:0 0 8px}
  .payment-option{padding:10px;border:1px solid #dce6f4;border-radius:7px;background:#fff}
  .payment-option span{margin-left:auto;color:#687b99;font-size:11px}
}
.benefit-icon svg{display:block;width:68%;height:68%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sign-label:focus-visible,.btn:focus-visible{outline:3px solid #ffb000;outline-offset:3px}
.topbar nav a:hover,.footer-links a:hover{text-decoration:underline}
/* Homepage reference recreation: CSS artwork replaces the heavy photo cutout. */
@media(min-width:801px){
  body:has(>.hero)>.hero{background-color:#fff;background-image:radial-gradient(ellipse at 82% 58%,#f5e6d7 0,rgba(248,239,230,.55) 23%,transparent 47%),linear-gradient(90deg,#fff 0%,#fff 48%,#fbf6f0 100%)}
  body:has(>.hero) .sign-area{height:100%;width:100%;aspect-ratio:auto;position:relative;display:block;padding:0;justify-self:stretch;}
  body:has(>.hero) .sign-area::before{content:"";position:absolute;left:51%;top:8%;bottom:8%;width:clamp(18px,2vw,30px);transform:translateX(-50%);border-radius:12px;background:linear-gradient(90deg,#754528,#bb8050 45%,#80502f);box-shadow:5px 3px 12px #482c1b30}
  body:has(>.hero) .sign-area::after{content:"";position:absolute;left:51%;bottom:5%;width:clamp(68px,8vw,118px);height:clamp(44px,7vh,74px);transform:translateX(-50%);border-radius:9px;background:linear-gradient(90deg,#754528,#bb8050 45%,#80502f);box-shadow:0 8px 18px #482c1b30}
  .sign-label{position:absolute;z-index:1;left:3%;top:13%;width:94%;height:14%;padding:0 14% 0 5%;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:5px 0 0 5px;clip-path:polygon(0 0,83% 0,100% 50%,83% 100%,0 100%);background:linear-gradient(105deg,#e8bb91,#d69c70);color:#082b50;font-size:clamp(16px,1.8vw,28px);font-weight:900;cursor:pointer;filter:drop-shadow(0 5px 4px #482c1b3b);transition:transform .16s,filter .16s}
  .sign-label:nth-of-type(2){top:30%}
  .sign-label:nth-of-type(3){top:47%}
  .sign-label:nth-of-type(4){top:64%;background:linear-gradient(105deg,#07345e,#00264c);color:#fff}
  .sign-label:hover{transform:translateX(5px);filter:brightness(1.06) drop-shadow(0 6px 5px #482c1b44)}
}
.wizard-kicker,.wizard-aside-note{color:#e6effa}
.wizard-kicker{margin:18px 0 0;font-size:12px;letter-spacing:.12em;font-weight:700}
.wizard-aside-note{max-width:300px;margin:55px 0 0;font-size:14px;line-height:1.6}
@media(max-width:800px){
  body:has(>.hero)>.hero{background-color:#fff;background-image:radial-gradient(ellipse at 82% 58%,#f5e6d7 0,rgba(248,239,230,.55) 23%,transparent 47%),linear-gradient(180deg,#fff,#fbf6f0)}
  .sign-area{height:430px;max-width:390px;width:100%;aspect-ratio:auto;position:relative;display:block;padding:0!important;margin:12px auto 0}
  .sign-area::before{content:"";position:absolute;left:51%;top:5%;bottom:7%;width:20px;transform:translateX(-50%);border-radius:12px;background:linear-gradient(90deg,#754528,#bb8050 45%,#80502f)}
  .sign-area::after{content:"";position:absolute;left:51%;bottom:2%;width:88px;height:42px;transform:translateX(-50%);border-radius:8px;background:linear-gradient(90deg,#754528,#bb8050 45%,#80502f)}
  .sign-label{position:absolute;z-index:1;left:3%;top:10%;width:94%;height:16%;padding:0 14% 0 5%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:4px 0 0 4px;clip-path:polygon(0 0,83% 0,100% 50%,83% 100%,0 100%);background:linear-gradient(105deg,#e8bb91,#d69c70);color:#082b50;font-size:clamp(15px,4.5vw,21px);font-weight:900;}
  .sign-label:nth-of-type(2){top:28%}.sign-label:nth-of-type(3){top:46%}.sign-label:nth-of-type(4){top:64%;background:linear-gradient(105deg,#07345e,#00264c);color:#fff}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:801px){body:has(>.hero)>.hero{padding-top:clamp(12px,1.8vh,24px)}body:has(>.hero) .hero-copy .subtitle{margin-top:0}}
@media(max-width:800px){body:has(>.hero)>.hero{padding-top:18px}.hero-copy .subtitle{margin-top:0}}
@media(min-width:801px){
  #wizard{display:flex;flex-direction:column}
  #form-error{min-height:18px}
}
@media(max-width:800px){
  .wizard-page{height:auto;min-height:calc(100dvh - 76px);overflow:visible;grid-template-columns:1fr;gap:18px;padding:22px 14px 30px}
  .wizard-side{align-self:auto;padding:4px 8px 24px}
  .wizard-side .brand{font-size:30px}
  .steps{max-width:360px;margin-top:28px}
  .steps small{top:38px}
  .wizard-card{max-height:none;overflow:visible;padding:20px 16px;border-radius:12px}
  .form-step[data-step="0"],.form-step[data-step="1"],.form-step[data-step="2"]{display:block}
  .wizard-card .conditional{grid-template-columns:1fr}
  .debt-grid{grid-template-columns:1fr}
  .actions{position:sticky;bottom:0;padding:12px 0 0}
}

/* Footer stays at viewport bottom on short pages, follows content on long pages. */
/* One lightweight photograph across header and hero, with contrast under the copy. */
body:has(>.hero){
  background-color:#f6ecdf;
  background-image:linear-gradient(90deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.65) 43%,rgba(255,255,255,.06) 72%),url('/assets/img/home-office.webp');
  background-size:cover;
  background-position:center bottom;
  background-repeat:no-repeat;
}
body:has(>.hero)>.topbar{background:rgba(255,255,255,.22)}
body:has(>.hero)>.hero{background:transparent}
@media(max-width:800px){
  body:has(>.hero){
    background-image:linear-gradient(180deg,rgba(255,255,255,.8) 0%,rgba(255,255,255,.72) 44%,rgba(255,255,255,.12) 80%),url('/assets/img/home-office.webp');
    background-position:65% bottom;
  }
}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>.topbar,body>.footer{flex:0 0 auto}
body>main{flex:1 0 auto}
body>.footer{margin-top:auto}
body:has(#wizard){height:100dvh;min-height:100dvh;overflow:hidden}
@media(max-width:800px){
  body:has(#wizard){height:auto;min-height:100dvh;overflow:visible}
}

/* Photo signpost: image and hit targets share a fixed 2:3 coordinate space. */
body:has(>.hero) .sign-area{
  display:grid;grid-template-columns:1fr;place-items:center;position:relative;
  width:100%;height:100%;min-height:0;max-width:none;
  padding:0;margin:0;aspect-ratio:auto;
}
body:has(>.hero) .sign-area::before,
body:has(>.hero) .sign-area::after{display:none}
.signpost-figure{
  position:relative;width:min(100%,calc(66.6667dvh - 140px),430px);
  aspect-ratio:2/3;container-type:inline-size;
  transition:transform .25s ease;
}
.signpost-figure>img{display:block;width:100%;height:auto;pointer-events:none}
.signpost-link{
  position:absolute;left:16%;top:21.6%;width:76%;height:10.5%;
  display:flex;align-items:center;justify-content:center;gap:.3em;
  padding:0 10% 0 0;border:0;border-radius:4px;background:transparent;
  color:#05264a;font-family:inherit;font-size:18px;font-size:5.5cqw;
  font-weight:800;letter-spacing:-.025em;white-space:nowrap;
  cursor:pointer;transform:translateY(-50%) rotate(-1.3deg);
  text-shadow:0 1px 1px #ffffff38;
}
.signpost-link[data-modal="procedure"]{top:36.5%;transform:translateY(-50%) rotate(-.7deg)}
.signpost-link[data-modal="analisi"]{top:51.3%;transform:translateY(-50%) rotate(.4deg)}
.signpost-link[data-modal="prezzo"]{top:65.7%;color:#fff;transform:translateY(-50%) rotate(1.3deg);text-shadow:0 1px 2px #001b3c80}
.signpost-link:hover{background:#ffffff14}
.signpost-link:focus-visible{outline:3px solid var(--orange);outline-offset:2px;background:#ffffff24}
#info-dialog{
  width:min(360px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);
  padding:22px 20px;border:1px solid #ced5df;border-radius:10px;
  background:#fff;color:#203959;box-shadow:0 14px 42px #001b3c30;
  font-size:14px;line-height:1.5;overflow:auto;
}
#info-dialog::backdrop{background:#001b3c24}
#info-dialog .close{right:9px;top:4px;width:32px;height:32px;line-height:1;font-size:26px;color:var(--deep)}
.info-dialog-heading{display:flex;align-items:center;gap:12px;padding-right:16px;margin-bottom:14px}
#info-dialog .badge{display:grid;place-items:center;flex:0 0 44px;height:44px;padding:8px;border-radius:50%;background:var(--orange);color:#fff}
#info-dialog .badge svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#info-dialog .badge .price-icon{display:none}
#info-dialog[data-topic="prezzo"] .badge .info-icon{display:none}
#info-dialog[data-topic="prezzo"] .badge .price-icon{display:block}
#info-dialog h2{margin:0;font-size:18px;line-height:1.2;letter-spacing:-.025em}
#info-dialog h2::after{content:"";display:block;width:34px;height:3px;margin-top:8px;background:var(--orange)}
#dialog-body p{margin:0 0 14px}
#dialog-body p:last-child{margin-bottom:0}
#dialog-body ul{padding-left:20px}
#info-dialog[data-topic="prezzo"] #dialog-body>p:first-child{padding:10px 12px;border-radius:7px;background:#fff0dc;color:var(--deep)}
@media(min-width:1200px){
  #info-dialog{position:fixed;inset:50% clamp(24px,4vw,80px) auto auto;margin:0;transform:translateY(-50%)}
  body:has(#info-dialog[open]) .signpost-figure{transform:translateX(-120px) scale(.8)}
}
@media(max-width:800px){
  body:has(>.hero) .sign-area{height:auto;margin:8px auto 0}
  .signpost-figure{width:min(100%,320px)}
}
@media(prefers-reduced-motion:reduce){.signpost-figure{transition:none}}

/* Questionnaire: shared alignment for all steps, without a page footer. */
body:has(#wizard-result){min-height:100dvh;background:#062b52}
body:has(#wizard-result)>.topbar{display:none}
body:has(#wizard-result)>.wizard-page{height:auto;min-height:100dvh}
.wizard-card #wizard[hidden]{display:none}
.wizard-card .field-error{display:block;margin:6px 0 0;font-size:12px;font-weight:500;line-height:1.4;color:#a11628}
.wizard-card .check>.field-error{grid-column:2}
.wizard-card .field-hint{display:block;margin-top:6px;font-size:11px;font-weight:400;line-height:1.4;color:#52637a}
.wizard-card [aria-invalid="true"]{border-color:#b52132!important;outline:2px solid #b5213226}
.wizard-card .check:has([aria-invalid="true"]){color:#a11628}
.wizard-card .btn:disabled{opacity:.65;cursor:wait}
body:has(#wizard)>.wizard-page{
  flex:1 1 auto;height:100dvh;min-height:0;
  grid-template-columns:minmax(250px,300px) minmax(0,940px);
  padding:clamp(20px,4vh,40px) clamp(24px,4vw,64px);
  gap:clamp(24px,3vw,48px);
}
.wizard-side{min-width:0}
.wizard-side .brand{font-size:clamp(26px,2.5vw,36px);letter-spacing:-1.8px}
.wizard-side .steps{padding:0 26px;margin-bottom:28px}
.wizard-side .steps::before{left:42px;right:42px}
.wizard-aside-note{margin-top:30px}
.wizard-card{--card-padding:clamp(22px,2.6vw,38px);min-width:0;min-height:0;max-height:100%;scrollbar-gutter:stable;padding:var(--card-padding)}
.wizard-card #wizard{display:flex;flex-direction:column;gap:0}
.wizard-card .form-step{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-content:start;align-items:stretch}
.wizard-card .form-step>*{min-width:0}
.wizard-card .step-heading{grid-column:1/-1;margin:0}
.wizard-card .step-heading p{margin:6px 0 0;line-height:1.5}
.wizard-card label:not(.check){display:flex;flex-direction:column;justify-content:flex-start;margin:0;font-size:13px;line-height:1.5}
.wizard-card input:not([type=checkbox]):not([type=radio]),
.wizard-card select{height:46px;min-width:0;flex-shrink:0;font-size:16px}
.wizard-card textarea{min-height:108px;resize:vertical;font-size:16px}
.wizard-card fieldset{grid-column:1/-1;min-width:0;margin:0;padding:18px;border:1px solid #e0e8f4}
.wizard-card legend{font-size:15px;padding:0 6px}
.wizard-card .question-group,.wizard-card .wide-field{grid-column:1/-1}
.wizard-card .question-group{padding:18px;border:1px solid #e0e8f4;background:#f8faff;border-radius:10px}
.wizard-card .conditional{margin:16px 0 0;padding:16px 0 0;gap:16px;border-top:1px solid #dce6f4;border-radius:0;background:transparent}
.wizard-card .check{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;line-height:1.5;margin:0}
.wizard-card .check input{width:18px;height:18px;margin:2px 0 0;flex-shrink:0}
.wizard-card .check>span{min-width:0;overflow-wrap:anywhere}
.wizard-card .debt-grid{gap:12px;align-items:start}
.wizard-card .debt-item{padding:14px;min-width:0}
.wizard-card .debt-item>.check{min-height:38px;align-content:start}
.wizard-card .debt-details{display:grid;gap:12px;margin-top:12px;padding-top:12px}
.wizard-card [hidden]{display:none!important}
.wizard-card .total,.wizard-card .success{margin:0;padding:20px;min-width:0}
.wizard-card .success h2{line-height:1.4}
.wizard-card .total small{line-height:1.5}
.wizard-card .consent-box,.wizard-card .payment-box{align-self:stretch;min-width:0;padding:18px;border:1px solid #dce6f4;border-radius:10px}
.wizard-card .consent-box h2,.wizard-card .payment-box h2{margin:0 0 16px;font-size:17px;line-height:1.35}
.wizard-card .consent-box .check+.check{margin-top:18px}
.wizard-card .payment-option{padding:12px;border:1px solid #dce6f4;border-radius:8px;margin-bottom:10px;min-height:50px;align-items:center}
.wizard-card .payment-option>span{margin:0;color:#263d6f;font-size:13px}
.wizard-card .payment-option small{display:block;margin-top:3px;font-size:11px;color:#5e6f88}
.wizard-card .payment-option:has(:checked){border-color:#ed8b00;background:#fff8ee}
.wizard-card .payment-box .notice{margin:14px 0 0;font-size:12px}
.wizard-card #form-error{min-height:0;margin:16px 0 0;line-height:1.5}
.wizard-card #form-error:empty{display:none}
.wizard-card .actions{z-index:2;bottom:calc(-1 * var(--card-padding));margin:24px 0 calc(-1 * var(--card-padding));padding:16px 0 var(--card-padding);box-shadow:0 -8px 12px #fff;align-items:center}
.wizard-card .actions .btn{min-height:46px;line-height:1.3}
@media(max-width:1050px){
  body:has(#wizard){height:auto;overflow:visible}
  body:has(#wizard)>.wizard-page{height:auto;min-height:100dvh;grid-template-columns:minmax(0,760px);gap:24px;padding:24px;overflow:visible}
  .wizard-side{align-items:center;padding:0 0 4px}
  .wizard-side .brand{font-size:32px}
  .wizard-side .steps{width:100%;max-width:380px;margin-top:24px;margin-bottom:28px}
  .wizard-kicker{margin-top:12px;font-size:11px}
  .wizard-aside-note{display:none}
  .wizard-card{max-height:none;overflow:visible;scrollbar-gutter:auto}
}
@media(max-width:640px){
  body:has(#wizard)>.wizard-page{padding:20px 12px;gap:20px}
  .wizard-card{--card-padding:22px;padding:var(--card-padding) 16px}
  .wizard-card .form-step{grid-template-columns:minmax(0,1fr);gap:18px}
  .wizard-card .form-step .total,.wizard-card .form-step .success{grid-column:auto;grid-row:auto}
  .wizard-card .debt-grid,.wizard-card .conditional{grid-template-columns:minmax(0,1fr)}
  .wizard-card .question-group,.wizard-card fieldset{padding:14px}
  .wizard-card .actions{gap:10px}
  .wizard-card .actions .btn{min-width:0;padding:12px 14px;font-size:12px}
}
