:root{--navy:#1b2742;--navy2:#26365c;--gold:#b38f55;--gold2:#c9a96e;--cream:#f7f4ee;--ink:#1d2433;--mute:#5d6678;--line:#e3ddd0;--ok:#2f7d4f;--warn:#b4531f;--radius:14px;--shadow:0 8px 30px rgba(27,39,66,.10);--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.6;font-size:17px;-webkit-text-size-adjust:100%}
img,svg{max-width:100%}a{color:var(--navy2)}a:hover{color:var(--gold)}
h1,h2,h3{font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.55rem,3.4vw,2.3rem)}h3{font-size:1.25rem}
p{margin:0 0 1em}.container{width:min(1140px,100% - 2rem);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:100}
/* header */
.topbar{background:var(--navy);color:#e9e4d6;font-size:.88rem}.topbar .container{display:flex;gap:1.2rem;justify-content:space-between;align-items:center;padding:.45rem 0;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;font-weight:600}.topbar a:hover{color:var(--gold2)}
header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
header.site .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}.brand img{height:62px;width:auto;display:block}
nav.main{display:flex;gap:.2rem;align-items:center}
nav.main a{padding:.55rem .8rem;text-decoration:none;color:var(--navy);font-weight:600;font-size:.95rem;border-radius:8px}
nav.main a:hover,nav.main a[aria-current=page]{color:var(--gold);background:var(--cream)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font-size:1.1rem;color:var(--navy)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:10px;border:2px solid var(--gold);background:var(--gold);color:#fff;font-weight:700;text-decoration:none;cursor:pointer;font-size:1rem;font-family:inherit;transition:.15s}
.btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.alt{background:transparent;color:var(--navy);border-color:var(--navy)}.btn.alt:hover{background:var(--navy);color:#fff}
.btn.light{background:#fff;color:var(--navy);border-color:#fff}.btn.light:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.btn.wa{background:#1fa855;border-color:#1fa855}.btn.wa:hover{background:#168a45;border-color:#168a45}
.btn.sm{padding:.5rem .9rem;font-size:.9rem}.btn:disabled{opacity:.5;cursor:not-allowed}
/* hero */
.hero{background:linear-gradient(135deg,#142038 0%,var(--navy2) 60%,#34487a 100%);color:#fff;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 72px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 72px)}
.hero .container{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;padding:4.5rem 0}
.hero h1{color:#fff}.hero h1 em{color:var(--gold2);font-style:normal}.hero p.lead{font-size:1.2rem;color:#e6e9f2;max-width:34rem}
.eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold2);margin-bottom:.8rem}
.hero .cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem}
.hero-card{background:#fff;color:var(--ink);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow)}
.hero-card h2{font-size:1.4rem}.hero-card ul{margin:0 0 1rem;padding-left:1.1rem}.hero-card li{margin:.3rem 0}
.hero-stats{display:flex;gap:2rem;margin-top:2rem;flex-wrap:wrap}.hero-stats b{display:block;font-family:var(--serif);font-size:2.2rem;color:var(--gold2);line-height:1}.hero-stats span{font-size:.9rem;color:#cdd3e4}
/* sezioni */
section.s{padding:4rem 0}.s.alt{background:var(--cream)}.s.dark{background:var(--navy);color:#e6e9f2}.s.dark h2,.s.dark h3{color:#fff}
.s-head{max-width:46rem;margin-bottom:2rem}.s-head p{color:var(--mute);font-size:1.08rem}.s.dark .s-head p{color:#cdd3e4}
.grid{display:grid;gap:1.3rem}.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:0 2px 0 rgba(27,39,66,.03);transition:.2s;display:block;text-decoration:none;color:inherit}
a.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--gold)}
.card h3{margin-bottom:.4rem}.card p{color:var(--mute);margin:0}
.ico{width:50px;height:50px;border-radius:12px;background:var(--cream);display:grid;place-items:center;margin-bottom:1rem;color:var(--gold);border:1px solid var(--line)}
.ico svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.steps{counter-reset:s;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.step{position:relative;padding:1.4rem 1.2rem 1.2rem;background:#fff;border-radius:var(--radius);border:1px solid var(--line)}
.step:before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:1rem;width:34px;height:34px;border-radius:50%;background:var(--gold);color:#fff;font-weight:800;display:grid;place-items:center;font-family:var(--serif)}
.s.dark .step{background:var(--navy2);border-color:#3a4c78}.s.dark .step p{color:#cdd3e4}
.cta-band{background:linear-gradient(120deg,var(--gold),#9b7a43);color:#fff;border-radius:var(--radius);padding:2.2rem;display:flex;gap:1.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 .3rem}.cta-band p{margin:0;color:#fff8ec}
.check{list-style:none;padding:0;margin:0}.check li{padding-left:1.8rem;position:relative;margin:.55rem 0}.check li:before{content:"";position:absolute;left:0;top:.45em;width:1.05rem;height:.6rem;border-left:3px solid var(--gold);border-bottom:3px solid var(--gold);transform:rotate(-45deg) scale(.8)}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem;margin-bottom:.8rem}.faq summary{font-weight:700;cursor:pointer;color:var(--navy)}.faq details[open] summary{margin-bottom:.5rem}
.crumbs{font-size:.88rem;color:var(--mute);padding:1rem 0}.crumbs a{color:var(--mute)}
.page-hero{background:var(--navy);color:#fff;padding:3rem 0}.page-hero h1{color:#fff;margin-bottom:.4rem}.page-hero p{color:#cdd3e4;max-width:44rem;font-size:1.1rem;margin:0}
.prose{max-width:50rem}.prose h2{margin-top:2rem}.prose ul{padding-left:1.2rem}
.pill{display:inline-block;background:var(--cream);border:1px solid var(--line);border-radius:99px;padding:.25rem .8rem;font-size:.85rem;margin:.15rem;color:var(--navy)}
/* footer */
footer.site{background:#111a2e;color:#b9c0d4;padding:3rem 0 5rem;font-size:.95rem}footer.site h3{color:#fff;font-size:1.05rem}footer.site a{color:#d8dcea;text-decoration:none}footer.site a:hover{color:var(--gold2)}
footer.site .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}footer.site ul{list-style:none;padding:0;margin:0}footer.site li{margin:.35rem 0}
.legal{border-top:1px solid #2a3552;margin-top:2rem;padding-top:1.2rem;font-size:.85rem}
.fab{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;gap:.6rem}.fab a{display:flex;align-items:center;gap:.5rem;padding:.8rem 1.1rem;border-radius:99px;color:#fff;text-decoration:none;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.28);font-size:.95rem}
.fab .wa{background:#1fa855}.fab .tel{background:var(--navy)}
/* ===== configuratore ===== */
.cfg{background:var(--cream);padding:2rem 0 4rem}
.stepper{display:flex;gap:.4rem;overflow-x:auto;padding:.3rem 0 1rem;margin:0 0 1rem;list-style:none}
.stepper li{flex:1 0 auto}.stepper button{width:100%;white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;font:600 .9rem var(--sans);color:var(--mute);cursor:pointer}
.stepper button b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--cream);margin-right:.4rem;color:var(--navy);font-size:.8rem}
.stepper button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.stepper button.on b{background:var(--gold);color:#fff}.stepper button.done b{background:var(--ok);color:#fff}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:0 2px 0 rgba(27,39,66,.03)}
.panel h2{font-size:1.5rem}.row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:1rem}
label.f{display:block;font-weight:600;font-size:.9rem;color:var(--navy)}label.f span.h{font-weight:400;color:var(--mute);font-size:.8rem}
input[type=text],input[type=tel],input[type=email],input[type=number],select,textarea{width:100%;margin-top:.25rem;padding:.65rem .75rem;border:1px solid #cfc8b8;border-radius:9px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}textarea{min-height:90px}
.nav-btns{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}
.hint{background:#fbf7ee;border-left:4px solid var(--gold);padding:.7rem 1rem;border-radius:0 8px 8px 0;font-size:.92rem;color:#5a4b2d;margin:0 0 1rem}
.warn{background:#fff4ec;border-left:4px solid var(--warn);padding:.7rem 1rem;border-radius:0 8px 8px 0;font-size:.92rem;color:#7a3511;margin:0 0 1rem}
.plan-wrap{display:grid;grid-template-columns:1fr 330px;gap:1rem;align-items:start}
.plan-tools{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}
.plan-tools button{padding:.45rem .8rem;border:1px solid var(--line);background:#fff;border-radius:8px;font:600 .88rem var(--sans);cursor:pointer;color:var(--navy)}
.plan-tools button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
#plan{width:100%;height:auto;aspect-ratio:4/3;background:#fff;border:2px solid var(--navy);border-radius:10px;touch-action:none;cursor:crosshair;display:block}
.rooms-list{display:grid;gap:.6rem;max-height:520px;overflow:auto}
.room{border:1px solid var(--line);border-radius:10px;padding:.7rem;background:#fff}.room.sel{border-color:var(--gold);box-shadow:0 0 0 2px rgba(179,143,85,.3)}
.room header{display:flex;justify-content:space-between;gap:.5rem;font-weight:700;color:var(--navy)}.room small{color:var(--mute)}
.room .mini{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.5rem}.room .mini label{font-size:.75rem;color:var(--mute);font-weight:600}.room .mini input,.room .mini select{padding:.35rem .5rem;font-size:.9rem;margin-top:.1rem}
.x{background:none;border:none;color:var(--warn);cursor:pointer;font-size:1.1rem}
.cat-box{border:1px solid var(--line);border-radius:12px;margin-bottom:.8rem;overflow:hidden}
.cat-box>summary{padding:.8rem 1rem;background:var(--cream);font-weight:700;color:var(--navy);cursor:pointer;display:flex;justify-content:space-between;gap:1rem}
.cat-box>summary small{font-weight:600;color:var(--gold)}
.lav{display:grid;grid-template-columns:auto 1fr 90px 34px 96px;gap:.6rem;align-items:center;padding:.55rem 1rem;border-top:1px solid #efe9db;font-size:.93rem}
.lav:nth-child(odd){background:#fdfcf9}.lav input[type=number]{margin:0;padding:.35rem .4rem;text-align:right}
.lav .src{font-size:.72rem;color:var(--mute);display:block}.lav .u{color:var(--mute);font-size:.82rem}.lav .tot{text-align:right;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1rem}.tabs button{padding:.5rem .9rem;border:1px solid var(--line);background:#fff;border-radius:99px;font:600 .9rem var(--sans);cursor:pointer;color:var(--navy)}.tabs button.on{background:var(--gold);border-color:var(--gold);color:#fff}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;margin-top:.6rem}.photos .ph{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--line);aspect-ratio:1}.photos img{width:100%;height:100%;object-fit:cover;display:block}.photos .x{position:absolute;top:2px;right:2px;background:#fff;border-radius:50%;width:24px;height:24px;line-height:1;padding:0}
.result{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:var(--radius);padding:1.6rem}
.result .big{font-family:var(--serif);font-size:clamp(1.8rem,5vw,3rem);color:var(--gold2);line-height:1.1}
.result small{color:#cdd3e4}.result .rg{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}table.t th{text-align:left;background:var(--cream);padding:.5rem;border-bottom:2px solid var(--line);color:var(--navy)}table.t td{padding:.45rem .5rem;border-bottom:1px solid #eee7d8;vertical-align:top}table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tblwrap{overflow-x:auto}.tbl-search{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.tbl-search input,.tbl-search select{max-width:340px}
.badge{display:inline-block;font-size:.7rem;font-weight:700;border-radius:6px;padding:.1rem .45rem;margin-left:.3rem;vertical-align:middle}.badge.p{background:#e3ecfb;color:#1e4c97}.badge.l{background:#f8ead3;color:#8a5a10}
.err{color:var(--warn);font-size:.85rem;margin-top:.2rem}
@media(max-width:860px){.hero .container{grid-template-columns:1fr;padding:3rem 0}.menu-btn{display:block}nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:.5rem 1rem}nav.main.open{display:flex}.plan-wrap{grid-template-columns:1fr}.lav{grid-template-columns:auto 1fr 78px 28px;grid-template-areas:"c n q u" "t t t t"}.lav .tot{grid-column:1/-1;text-align:left}.topbar .hide-s{display:none}}
@media print{.topbar,header.site,footer.site,.fab,.nav-btns,.stepper,.no-print{display:none!important}}

.searchbox{display:flex;gap:1rem;flex-wrap:wrap;margin:0 0 1rem;padding:1rem;background:#fff;border:2px solid var(--gold);border-radius:12px}
.searchbox input[type=search]{width:100%;margin-top:.25rem;padding:.7rem .8rem;border:1px solid #cfc8b8;border-radius:9px;font:inherit;background:#fff}
.searchres{margin-bottom:1rem}
.custom-box{margin-top:1.5rem;padding:1.2rem;background:#fbf7ee;border:1px dashed var(--gold);border-radius:12px}
.custom-box h3{margin-bottom:.3rem}
.clist{list-style:none;margin:1rem 0 0;padding:0}.clist li{display:flex;justify-content:space-between;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;margin:.4rem 0}

/* ===== animazioni ===== */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes drawLine{0%{stroke-dashoffset:var(--len,900)}55%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:var(--len,900)}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(31,168,85,.55)}70%{box-shadow:0 0 0 14px rgba(31,168,85,0)}100%{box-shadow:0 0 0 0 rgba(31,168,85,0)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes shine{from{background-position:-200% 0}to{background-position:200% 0}}
@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:.9}}
@keyframes popIn{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.panel.enter{animation:fadeUp .45s ease}
.hero-art{position:absolute;right:2%;bottom:0;width:min(34%,420px);opacity:.30;pointer-events:none;z-index:0}
.hero-art *{fill:none;stroke:#c9a96e;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--len,900);animation:drawLine 9s ease-in-out infinite;animation-delay:var(--dl,0s)}
.hero-art .dim{stroke:#e6e9f2;stroke-width:1.4;stroke-dasharray:4 5;animation:none;opacity:.7}
.hero-art text{font:600 13px system-ui;fill:#e6e9f2;stroke:none;animation:none}
.hero .container{z-index:1}
.hero h1 em{background:linear-gradient(90deg,var(--gold2),#fff,var(--gold2));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 5s linear infinite}
.fab .wa{animation:pulseRing 2.6s infinite}
.btn{transition:transform .15s,box-shadow .15s,background .15s,border-color .15s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(27,39,66,.2)}
.card .ico{transition:transform .35s}.card:hover .ico{transform:rotate(-8deg) scale(1.12)}
.step:before{transition:transform .4s}.step:hover:before{transform:scale(1.2) rotate(8deg)}
.hero-stats b{font-variant-numeric:tabular-nums}
header.site.scrolled{box-shadow:0 6px 24px rgba(27,39,66,.12)}
.stepper button.on{animation:popIn .35s ease}
.tools-sep{width:1px;background:var(--line);margin:0 .2rem}
.plan-tools button.danger{color:var(--warn);border-color:#e6c7b4}.plan-tools button.danger:hover:not(:disabled){background:var(--warn);color:#fff}
.plan-tools button:disabled{opacity:.4;cursor:not-allowed}
.confetti{position:fixed;inset:0;z-index:200;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:fall 2.2s ease-in forwards}
.result .big{display:inline-block}
/* quiz */
.quiz{max-width:720px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow)}
.quiz .bar{height:8px;background:var(--cream);border-radius:99px;overflow:hidden;margin-bottom:1.2rem}.quiz .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));width:0;transition:width .5s ease}
.quiz h3{font-size:1.35rem}.quiz .opts{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1rem}
.quiz .opt{padding:1rem;border:2px solid var(--line);background:#fff;border-radius:12px;font:600 1rem var(--sans);color:var(--navy);cursor:pointer;text-align:left;transition:.2s}
.quiz .opt:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 8px 18px rgba(27,39,66,.1)}
.quiz .res{animation:popIn .5s ease}.quiz .res .emoji{font-size:2.4rem;display:block;animation:floaty 2.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}.hero-art *{stroke-dasharray:none}}

.feedback{margin-top:1.6rem;padding:1.2rem;background:#fbf7ee;border:1px solid var(--line);border-radius:12px}
.stars{display:flex;gap:.2rem;margin:.4rem 0 .8rem}.star{background:none;border:none;font-size:2rem;line-height:1;color:#d8d0bf;cursor:pointer;transition:transform .15s,color .15s}.star:hover{transform:scale(1.2)}.star.on{color:var(--gold)}

.fabcall{position:relative}
.fabcall summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.8rem 1.1rem;border-radius:99px;background:var(--navy);color:#fff;font-weight:700;font-size:.95rem;box-shadow:0 6px 20px rgba(0,0,0,.28)}
.fabcall summary::-webkit-details-marker{display:none}
.fabcall[open] summary{background:var(--gold)}
.fabcall a{position:absolute;right:0;white-space:nowrap;display:block;background:#fff;color:var(--navy);padding:.7rem 1rem;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.25);text-decoration:none;font-weight:600;animation:popIn .25s ease}
.fabcall a:nth-of-type(1){bottom:calc(100% + .5rem)}.fabcall a:nth-of-type(2){bottom:calc(100% + 3.6rem)}
nav.main a{white-space:nowrap}
@media(max-width:1060px) and (min-width:861px){.menu-btn{display:block}nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:.5rem 1rem}nav.main.open{display:flex}}
