:root{
--ivory:#FBF8F2; --warm:#FFFDF8; --beige:#EFE5D4; --beige2:#E4D7BF; --gold:#B8914A; --gold-l:#D8B977;
--ink:#1E1E1C; --ink-2:#3A3732; --mute:#6B6257; --line:#E0D4BD; --black:#0E0E0D; --wa:#25D366;
--maxw:1240px; --r:14px; --sh:0 18px 48px rgba(30,30,28,.10);
--f-d:'Cormorant Garamond',Georgia,serif; --f-t:'Jost','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(78px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--f-t);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:min(100% - 40px,var(--maxw));margin-inline:auto}
.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}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:999;background:#fff;padding:10px 16px;border-radius:8px}
h1,h2,h3{font-family:var(--f-d);font-weight:600;line-height:1.1;margin:0 0 .4em}
h1{font-size:clamp(34px,5.2vw,64px);letter-spacing:.01em}
h2{font-size:clamp(28px,3.6vw,44px)}
h3{font-size:clamp(21px,2.2vw,27px)}
p{margin:0 0 1em;max-width:68ch}
.eyebrow{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--ink-2)}
.muted{color:var(--mute)}

/* header */
.hdr{position:sticky;top:0;z-index:70;background:rgba(251,248,242,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.hdr-in{display:flex;align-items:center;gap:22px;height:78px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto}
.logo img{height:40px;width:auto}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a,.nav button{font:inherit;font-size:15px;color:var(--ink-2);background:none;border:0;padding:10px 13px;border-radius:9px;cursor:pointer;text-decoration:none;white-space:nowrap}
.nav a:hover,.nav button:hover{background:var(--beige);color:var(--ink)}
.lang{display:flex;gap:2px;border:1px solid var(--line);border-radius:9px;padding:3px}
.lang button{padding:5px 9px;font-size:13px;letter-spacing:.08em;border-radius:6px}
.lang button[aria-current="true"]{background:var(--ink);color:var(--warm)}
.burger{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 26px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:var(--warm);font:inherit;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:.2s}
.btn:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-g{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-g:hover{background:var(--ink);border-color:var(--ink)}
.btn-o{background:transparent;color:var(--ink)}
.btn-o:hover{background:var(--ink);color:var(--warm)}
.btn-wa{background:var(--wa);border-color:var(--wa);color:#07301a}
.btn-wa:hover{background:#1eb455;border-color:#1eb455;color:#07301a}
.btn-sm{padding:10px 18px;font-size:14px}

/* mega menu */
.mega{position:fixed;left:0;right:0;top:calc(78px + env(safe-area-inset-top,0px));background:var(--warm);border-bottom:1px solid var(--line);box-shadow:var(--sh);z-index:69;display:none}
.mega.open{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mega-in{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:34px 0 40px}
.mega h4{font-family:var(--f-t);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.mega ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mega a{font-size:15px;color:var(--ink-2);text-decoration:none;padding:4px 0;display:block}
.mega a:hover{color:var(--gold)}

/* drawer */
.drawer{position:fixed;inset:0;background:var(--warm);z-index:90;transform:translateX(100%);transition:transform .28s ease;overflow:auto;padding:calc(20px + env(safe-area-inset-top,0px)) 20px 40px;display:none}
.drawer.open{transform:none;display:block}
.drawer .d-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.drawer details{border-bottom:1px solid var(--line);padding:6px 0}
.drawer summary{font-family:var(--f-d);font-size:24px;padding:12px 0;cursor:pointer;list-style:none}
.drawer summary::-webkit-details-marker{display:none}
.drawer details a{display:block;padding:9px 0 9px 14px;text-decoration:none;color:var(--ink-2);font-size:16px}

/* hero */
.hero{position:relative;min-height:min(84vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.62}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,13,.26) 0%,rgba(14,14,13,.10) 38%,rgba(14,14,13,.86) 100%)}
.hero-in{position:relative;z-index:2;padding:72px 0 64px;color:#fff}
.hero-in h1{color:#fff;max-width:17ch}
.hero-in .lead{color:rgba(255,255,255,.88);max-width:52ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-cta .btn{background:var(--warm);color:var(--ink);border-color:var(--warm)}
.hero-cta .btn:hover{background:var(--gold);border-color:var(--gold);color:#fff}

/* search */
.search{background:var(--warm);border-block:1px solid var(--line);padding:56px 0}
.search-box{display:flex;gap:10px;flex-wrap:wrap;max-width:760px;margin-top:22px}
.search-box input{flex:1 1 320px;padding:17px 20px;border:1px solid var(--line);border-radius:999px;font:inherit;background:var(--ivory)}
.search-box input:focus{outline:2px solid var(--gold-l);outline-offset:1px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{font-size:13px;padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:var(--ivory);cursor:pointer;font-family:inherit;color:var(--ink-2)}
.chip:hover{border-color:var(--gold);color:var(--gold)}
.res{margin-top:24px;display:grid;gap:10px;max-width:760px}
.res a{display:flex;justify-content:space-between;gap:16px;align-items:center;background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:16px 20px;text-decoration:none}
.res a:hover{border-color:var(--gold);background:#fff}
.res b{font-family:var(--f-d);font-size:21px;font-weight:600}
.res span{font-size:14px;color:var(--mute);display:block;margin-top:2px}

/* sections */
section{padding:84px 0}
.sec-head{max-width:70ch;margin-bottom:40px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.card{position:relative;border-radius:var(--r);overflow:hidden;background:var(--warm);border:1px solid var(--line);text-decoration:none;display:flex;flex-direction:column;min-height:300px;transition:.25s}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--beige2)}
.card .ph{aspect-ratio:16/10;background:var(--beige);overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:.5s}
.card:hover .ph img{transform:scale(1.04)}
.card .ph.empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--beige) 0%,var(--beige2) 100%)}
.card .ph.empty span{font-family:var(--f-d);font-size:19px;color:var(--mute);padding:0 20px;text-align:center}
.card .cbody{padding:24px 24px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.card h3{margin:0}
.card p{font-size:15px;color:var(--mute);margin:0}
.card .more{margin-top:auto;padding-top:14px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}
.alt{background:var(--warm);border-block:1px solid var(--line)}
.dark{background:var(--ink);color:var(--warm)}
.dark h2,.dark h3{color:#fff}
.dark p{color:rgba(255,253,248,.78)}
.dark .eyebrow{color:var(--gold-l)}

/* liste */
.ul-g{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px 28px}
.ul-g li{padding:9px 0 9px 26px;position:relative;border-bottom:1px solid var(--line);font-size:16px}
.ul-g li::before{content:"";position:absolute;left:4px;top:18px;width:9px;height:1px;background:var(--gold)}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}
.steps li{counter-increment:s;padding-left:54px;position:relative;min-height:38px}
.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:36px;height:36px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:15px}
.note{border-left:3px solid var(--gold);background:var(--warm);padding:18px 22px;border-radius:0 10px 10px 0;font-size:15.5px;color:var(--ink-2);margin:26px 0}
.badge{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#fff;background:var(--gold);padding:7px 14px;border-radius:999px}
.panel{background:var(--warm);border:1px solid var(--line);border-radius:var(--r);padding:30px}
.grid2{display:grid;grid-template-columns:1.25fr .75fr;gap:46px;align-items:start}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{padding:16px 0;cursor:pointer;font-size:18px;font-family:var(--f-d);font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--gold)}
.faq details[open] summary::after{content:"–"}
.faq p{padding-bottom:12px;font-size:16px;color:var(--ink-2)}
.crumbs{font-size:13px;color:var(--mute);padding:22px 0 0}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--gold)}

/* righe editoriali */
.erow{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:30px 0}
.erow.rev .epic{order:2}
.epic{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--beige)}
.epic img{width:100%;height:100%;object-fit:cover}
.epic.empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--beige),var(--beige2));text-align:center;padding:24px;font-family:var(--f-d);color:var(--mute);font-size:19px}

/* punti / registrazione */
.points{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.pcard{background:linear-gradient(135deg,#17171600,#171716 70%),var(--gold);border-radius:20px;padding:34px;color:#fff;box-shadow:var(--sh)}
.pbar{height:9px;border-radius:999px;background:rgba(255,255,255,.22);overflow:hidden;margin:18px 0 10px}
.pbar i{display:block;height:100%;width:64%;background:var(--gold-l)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .full{grid-column:1/-1}
.form label{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);display:block;margin-bottom:6px}
.form input{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--ivory)}
.check{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);margin-top:4px}
.check input{width:19px;height:19px;margin-top:2px;flex:0 0 auto}

/* mappa */
.map-wrap{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--beige);min-height:420px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}

/* dialog */
dialog{border:0;border-radius:18px;padding:0;max-width:520px;width:calc(100% - 32px);box-shadow:var(--sh);background:var(--warm)}
dialog::backdrop{background:rgba(14,14,13,.55);backdrop-filter:blur(3px)}
.dlg{padding:32px}
.dlg h3{margin-bottom:6px}
.dlg-actions{display:grid;gap:10px;margin-top:22px}

/* footer */
.ft{background:var(--ink);color:rgba(255,253,248,.76);padding:72px 0 calc(34px + env(safe-area-inset-bottom,0px));font-size:15px}
.ft a{color:rgba(255,253,248,.76);text-decoration:none}
.ft a:hover{color:var(--gold-l)}
.ft-g{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.ft h4{font-family:var(--f-t);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-l);margin:0 0 14px}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ft img{height:44px;margin-bottom:16px}
.ft .disc{margin-top:46px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,253,248,.56);max-width:none}
.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:58px;height:58px;border-radius:50%;background:var(--wa);border:0;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.22);cursor:pointer}
.wa-float svg{width:30px;height:30px;fill:#07301a}

.reveal{opacity:0;transform:translateY(16px)}
.reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

@media(max-width:900px){
.nav .nav-link,.nav .mega-btn{display:none}
.burger{display:inline-flex}
.mega{display:none!important}
.grid2,.erow,.points{grid-template-columns:1fr;gap:28px}
.erow.rev .epic{order:0}
.mega-in{grid-template-columns:1fr 1fr}
.ft-g{grid-template-columns:1fr 1fr}
.form{grid-template-columns:1fr}
section{padding:60px 0}
}
@media(max-width:560px){.ft-g{grid-template-columns:1fr}.hero{min-height:74vh}}

.logo img{height:58px;width:auto;object-fit:contain;border-radius:6px}
.ft .f-logo-box{display:inline-block;background:var(--ivory);border-radius:10px;padding:10px 14px;margin-bottom:16px}
.ft .f-logo-box img{height:46px;width:auto;object-fit:contain;margin:0}
.ft-legal{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 20px}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,13,.10) 0%,rgba(14,14,13,.04) 40%,rgba(30,25,18,.62) 100%)}
.hero-in h1{text-shadow:0 2px 24px rgba(10,8,4,.55)}
.hero-in .lead{text-shadow:0 2px 14px rgba(10,8,4,.6)}
body{background:var(--ivory)}
.alt{background:linear-gradient(180deg,var(--warm) 0%,#F4EADA 100%)}
@media(max-width:900px){.logo img{height:46px}}
.hdr-in{height:92px}
.mega{top:calc(92px + env(safe-area-inset-top,0px))}
html{scroll-padding-top:calc(92px + env(safe-area-inset-top,0px))}
@media(max-width:900px){.hdr-in{height:76px}}
.map-preview{display:block;width:100%;position:relative;cursor:pointer;border:1px solid var(--line);border-radius:var(--r);
 overflow:hidden;min-height:420px;padding:0;background:linear-gradient(135deg,#F3E9D6 0%,#E8DCC4 55%,#DCCDB0 100%);text-align:left}
.map-preview:hover{border-color:var(--gold)}
.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(184,145,74,.22) 1px,transparent 1px),
 linear-gradient(90deg,rgba(184,145,74,.22) 1px,transparent 1px),
 linear-gradient(115deg,transparent 46%,rgba(255,255,255,.75) 46%,rgba(255,255,255,.75) 54%,transparent 54%),
 linear-gradient(22deg,transparent 60%,rgba(255,255,255,.6) 60%,rgba(255,255,255,.6) 64%,transparent 64%);
 background-size:54px 54px,54px 54px,100% 100%,100% 100%}
.map-pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-size:46px;color:var(--gold);
 text-shadow:0 6px 18px rgba(0,0,0,.18)}
.map-card{position:absolute;left:24px;right:24px;bottom:24px;background:rgba(251,248,242,.95);border-radius:12px;
 padding:18px 22px;display:grid;gap:4px;box-shadow:var(--sh)}
.map-card strong{font-family:var(--f-d);font-size:24px}
.map-card span{font-size:15px;color:var(--mute)}
.map-go{color:var(--gold)!important;font-weight:600;font-size:14px!important;letter-spacing:.12em;text-transform:uppercase}
#map-wrap:not([hidden]){display:block;min-height:420px}
.hook{background:linear-gradient(135deg,#F6EEDD 0%,#EFE2C9 60%,#F7F1E4 100%);text-align:center;padding:70px 0}
.hook h2{max-width:22ch;margin-inline:auto;font-size:clamp(28px,4.2vw,50px)}
.hook-t .nowrapline{display:inline-block}
.hook .lead{max-width:62ch;margin-inline:auto}
.map-inner{position:relative;display:grid;justify-items:center;gap:10px;padding:46px 26px;text-align:center}
.map-logo{height:52px;width:auto;object-fit:contain;margin-bottom:6px}
.map-inner strong{font-family:var(--f-d);font-size:clamp(22px,2.6vw,30px)}
.map-addr{font-size:16px;color:var(--mute)}
.map-go{margin-top:10px;pointer-events:none}
.map-note{font-size:13.5px;color:var(--mute)}
.map-preview .map-pin{position:static;transform:none;font-size:26px}
.map-preview{min-height:0}
#punti .points{align-items:start}
#punti{padding:52px 0}
#punti .steps{gap:8px}
#punti .steps li{min-height:32px}
#punti h2{font-size:clamp(26px,3vw,38px)}
.pcard{padding:26px}
.cta-punti{margin:26px 0 6px}
.btn-punti{font-size:17px;padding:17px 34px;letter-spacing:.02em;box-shadow:0 10px 26px rgba(184,145,74,.28)}
.btn-punti:hover{box-shadow:0 12px 30px rgba(30,30,28,.22)}
.cta-punti-sub{font-size:14px;margin:0}
@media(max-width:560px){.btn-punti{width:100%}}
/* contrasto: stesse tonalità della palette, solo gradazioni leggibili */
.eyebrow{color:#86632A}
.dark .eyebrow,.hero .eyebrow{color:#D8B977}
.btn-g,#zoho-form-slot .zcwf_button,#zoho-form-slot input[type=submit]{background:#8C6A3A!important;border-color:#8C6A3A!important;color:#fff!important}
.btn-g:hover,#zoho-form-slot .zcwf_button:hover,#zoho-form-slot input[type=submit]:hover{background:var(--ink)!important;border-color:var(--ink)!important}
.btn:hover{background:#8C6A3A;border-color:#8C6A3A;color:#fff}
.card .more{color:#86632A}
.map-go{background:#8C6A3A!important;border-color:#8C6A3A!important}
.badge{background:#8C6A3A}

#zoho-form-slot{margin-top:26px}
#zoho-form-slot table,#zoho-form-slot tbody,#zoho-form-slot tr,#zoho-form-slot td{display:block;width:100%!important;border:0!important;padding:0!important;margin:0!important}
#zoho-form-slot .zcwf_title,#zoho-form-slot .zcwf_lblLeft .zcwf_title{display:none}
#zoho-form-slot .zcwf_row{display:grid;gap:6px;margin-bottom:16px}
#zoho-form-slot label,#zoho-form-slot .zcwf_col_lab label{font-family:var(--f-t);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);width:auto!important;float:none!important;margin:0!important}
#zoho-form-slot input[type=text],#zoho-form-slot input[type=email],#zoho-form-slot input[type=tel],#zoho-form-slot input[type=number],#zoho-form-slot select,#zoho-form-slot textarea{
 width:100%!important;max-width:100%!important;box-sizing:border-box;padding:13px 16px!important;border:1px solid var(--line)!important;border-radius:10px!important;
 font:inherit!important;font-size:16px!important;background:var(--ivory)!important;color:var(--ink)!important;resize:vertical}
#zoho-form-slot textarea{min-height:130px}
#zoho-form-slot input:focus,#zoho-form-slot select:focus,#zoho-form-slot textarea:focus{outline:2px solid var(--gold-l);outline-offset:1px;border-color:var(--gold)!important}
#zoho-form-slot .zcwf_col_fld_slt,#zoho-form-slot .zcwf_col_fld{width:100%!important;float:none!important}
#zoho-form-slot input[type=checkbox]{width:19px!important;height:19px;accent-color:var(--gold);margin-right:9px}
#zoho-form-slot .zcwf_privacy,#zoho-form-slot .zcwf_privacy_txt{font-size:14.5px!important;color:var(--ink-2)!important;line-height:1.5!important}
#zoho-form-slot .zcwf_privacy a,#zoho-form-slot a{color:var(--gold);text-decoration:underline}
#zoho-form-slot .zcwf_button,#zoho-form-slot input[type=submit],#zoho-form-slot button[type=submit]{
 display:inline-flex;align-items:center;justify-content:center;padding:15px 30px!important;border-radius:999px!important;border:1px solid var(--gold)!important;
 background:var(--gold)!important;color:#fff!important;font:inherit!important;font-size:16px!important;font-weight:500;cursor:pointer;transition:.2s;width:auto!important;min-width:220px}
#zoho-form-slot .zcwf_button:hover,#zoho-form-slot input[type=submit]:hover{background:var(--ink)!important;border-color:var(--ink)!important}
#zoho-form-slot input[type=reset],#zoho-form-slot .zcwf_button[value="Ripristina"],#zoho-form-slot .zcwf_button[value="Reset"]{display:none!important}
#zoho-form-slot .wfrm_fld_dpNn{display:none}
@media(max-width:560px){#zoho-form-slot .zcwf_button,#zoho-form-slot input[type=submit]{width:100%!important}}
