@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/montserrat-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/playfair-display-latin-600-normal.woff2) format("woff2")}
/* Cascina Palazzo — foglio di stile del sito
   Base: crema + verde campagna + oro del logo + mattone della cascina */
:root{
  --ink:#3A2E24;          /* bruno del logo */
  --ink-2:#4E3F31;
  --paper:#F8F4EC;        /* crema */
  --paper-2:#EFE7D8;
  --gold:#A8874F;         /* oro del logo */
  --gold-soft:#D9C49B;
  --brick:#5A4636;        /* bruno chiaro del logo */
  --text:#2B2721;
  --muted:#6C655A;
  --line:rgba(58,46,36,.16);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --wrap:1240px;
  --gut:clamp(20px,4.5vw,64px);
  --sez:clamp(72px,10vw,140px);
  --ease:cubic-bezier(.22,1,.36,1);
  /* libreria effetti */
  --fx-ink:#3A2E24;--fx-paper:#F8F4EC;--fx-accent:#A8874F;--fx-accent-2:#5A4636;
  --fx-raggio:4px;--fx-larghezza:1240px;--fx-bordo:rgba(58,46,36,.16);
  --fx-accent-chiaro:#D9C49B;--fx-accent-2-chiaro:#D9C49B;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:1.0625rem;line-height:1.7;
  font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.04;margin:0;letter-spacing:-.005em;color:inherit}
h1{font-size:clamp(2.9rem,7.4vw,6.4rem)}
h2{font-size:clamp(2.2rem,4.6vw,3.9rem)}
h3{font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1.1}
h1 em,h2 em,h3 em{font-style:italic;color:var(--gold)}
p{margin:0 0 1.1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.eyebrow{display:inline-block;font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.4em}
.lead{font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.65;color:var(--text)}
.muted{color:var(--muted)}
.sez{padding:var(--sez) 0}
.sez--crema{background:var(--paper-2)}
.sez--scura{background:var(--ink);color:#EDE7DB}
.sez--scura .lead{color:#EDE7DB}
.sez--mattone{background:var(--brick);color:#FBF3EA}
.sez--mattone h2 em{color:#F1DFC2}
.sez--mattone .modulo input::placeholder{color:rgba(251,243,234,.6)}
.skip{position:absolute;left:-9999px;top:0;background:var(--paper);padding:10px 16px;z-index:100}
.skip:focus{left:10px;top:10px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;gap:.7em;font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;text-decoration:none;padding:1.15em 1.9em;border:1px solid currentColor;transition:background .35s,color .35s,border-color .35s}
.btn svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--pieno{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn--pieno:hover{background:var(--gold-soft);border-color:var(--gold-soft)}
.btn--oro{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn--oro:hover{background:var(--ink);border-color:var(--ink)}
.btn--linea{border:0;border-bottom:1px solid currentColor;padding:.5em 0}
.btn--scuro{color:var(--ink)}
.btn--scuro:hover{background:var(--ink);color:var(--paper)}

/* ---------- testata ---------- */
.testata{position:fixed;inset:0 0 auto;z-index:50;color:#fff;transition:background .45s,box-shadow .45s,color .45s,padding .45s}
.testata__in{display:flex;align-items:center;gap:28px;max-width:1440px;margin:0 auto;padding:18px var(--gut)}
.testata__logo{display:block;flex:0 0 auto;filter:drop-shadow(0 0 1px rgba(248,244,236,.95)) drop-shadow(0 0 10px rgba(248,244,236,.55));transition:filter .45s}
.testata__logo img{width:156px;height:auto;transition:width .45s}
.testata nav{margin-left:auto}
.menu{display:flex;gap:clamp(14px,1.8vw,28px);list-style:none;margin:0;padding:0}
.menu a{font-size:.76rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;text-decoration:none;padding:6px 0;
  background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .4s var(--ease)}
.menu a:hover,.menu a[aria-current="page"]{background-size:100% 1px}
.testata__cta{flex:0 0 auto;font-size:.72rem;padding:1em 1.4em}
.testata.is-piena{background:var(--ink);box-shadow:0 10px 30px -18px rgba(0,0,0,.6)}
.testata.is-piena .testata__in{padding-top:10px;padding-bottom:10px}
.testata.is-piena .testata__logo img{width:104px}
.testata--chiara{color:var(--ink)}
.testata--chiara.is-piena{color:#fff}
.burger{display:none;margin-left:auto;background:none;border:0;color:inherit;cursor:pointer;width:46px;height:46px;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
@media (max-width:1080px){
  .burger{display:block}
  .testata__cta{display:none}
  .testata nav{position:fixed;inset:0;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s;z-index:-1}
  .menu{flex-direction:column;align-items:center;gap:22px}
  .menu a{font-family:var(--serif);font-size:2rem;letter-spacing:0;text-transform:none}
  .menu-aperto nav{opacity:1;visibility:visible}
  .menu-aperto{color:#fff}
  .menu-aperto .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .menu-aperto .burger span:nth-child(2){opacity:0}
  .menu-aperto .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .testata__logo img{width:96px}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--ink)}
.hero--media{min-height:86svh}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.hero__slide.is-on{opacity:1}
.hero__slide:first-child{opacity:1}
.js .hero__slide:first-child:not(.is-on){opacity:0}
.hero__slide img,.hero__img img{width:100%;height:100%;object-fit:cover;transform-origin:60% 50%}
.hero__slide.is-on img{animation:kenburns 9s ease-out forwards}
.hero__img{position:absolute;inset:0}
.hero__img img{animation:kenburns 14s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(30,22,16,.55) 0%,rgba(30,22,16,0) 26%),
  linear-gradient(0deg,rgba(30,22,16,.78) 0%,rgba(30,22,16,.25) 48%,rgba(30,22,16,0) 70%),
  linear-gradient(90deg,rgba(30,22,16,.55) 0%,rgba(30,22,16,.15) 45%,rgba(30,22,16,0) 65%)}
.hero__testo{position:relative;z-index:2;width:100%;max-width:var(--wrap);margin:0 auto;padding:clamp(150px,20vh,200px) var(--gut) clamp(56px,9vh,110px)}
.hero h1{max-width:15ch;font-size:clamp(2.8rem,6vw,5.4rem);text-shadow:0 2px 30px rgba(0,0,0,.25)}
.hero h1 em{color:var(--gold-soft)}
.hero .eyebrow{color:var(--gold-soft)}
.hero__sotto{max-width:46ch;margin:1.6em 0 2.2em;font-size:clamp(1.05rem,1.4vw,1.2rem);color:rgba(255,255,255,.88)}
.hero__azioni{display:flex;flex-wrap:wrap;gap:22px 30px;align-items:center}
.hero__punti{position:absolute;right:var(--gut);bottom:clamp(56px,9vh,110px);z-index:2;display:flex;gap:10px}
.hero__punti button{width:34px;height:2px;border:0;padding:0;background:rgba(255,255,255,.35);cursor:pointer;position:relative;overflow:hidden}
.hero__punti button.is-on::after{content:"";position:absolute;inset:0;background:#fff;transform-origin:left;animation:barra 6.5s linear forwards}
@keyframes barra{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.giu{position:absolute;left:50%;bottom:22px;z-index:2;width:1px;height:46px;background:rgba(255,255,255,.35);overflow:hidden}
.giu::after{content:"";position:absolute;left:0;top:-46px;width:1px;height:46px;background:#fff;animation:giu 2.4s var(--ease) infinite}
@keyframes giu{to{top:46px}}
.hero--media h1{font-size:clamp(2.6rem,5vw,4.6rem);max-width:17ch}
@media (max-width:760px){.hero__punti{display:none}.hero h1{font-size:clamp(2.6rem,11vw,3.6rem)}}
@media (prefers-reduced-motion:reduce){.hero__slide img,.hero__img img{animation:none!important}.giu::after{animation:none}}

/* ---------- briciole ---------- */
.briciole{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.6em;color:rgba(255,255,255,.75)}
.briciole ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.briciole li+li::before{content:"/";margin-right:8px;opacity:.5}
.briciole a{text-decoration:none}

/* ---------- introduzione a due colonne ---------- */
.intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(36px,6vw,110px);align-items:start}
.intro h2{max-width:12ch}
.intro__testo{padding-top:.6em}
@media (max-width:860px){.intro{grid-template-columns:1fr}}

/* in breve */
.inbreve{border-left:2px solid var(--gold);padding:.4em 0 .4em 1.4em;margin:2em 0 0;font-size:1rem;color:var(--muted)}
.inbreve strong{display:block;font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.7rem;color:var(--gold);margin-bottom:.4em}

/* ---------- triangolo del logo, divisore ---------- */
.firma{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--gold);margin:0 auto clamp(26px,3vw,40px)}
.firma::before,.firma::after{content:"";width:min(120px,18vw);height:1px;background:currentColor;opacity:.6}
.firma svg{width:22px;height:20px}

/* ---------- quattro sezioni (pannelli) ---------- */
.quattro{--fx-pannelli-altezza:min(78svh,700px);--fx-larghezza:1440px}
.quattro .fx-pannelli{gap:6px}
.quattro .fx-pannello{border-radius:2px}
.quattro .fx-pannello img{transition:transform 1.4s var(--ease)}
.quattro .fx-pannello.fx-on img{transform:scale(1.06)}
.quattro .fx-pannello::after{content:"";position:absolute;inset:0;background:var(--tinta);mix-blend-mode:multiply;opacity:.55;
  transition:opacity .7s var(--ease)}
.quattro .fx-pannello.fx-on::after{opacity:.0}
.quattro .fx-pannello::before{z-index:1;background:linear-gradient(to top,rgba(30,22,16,.82),rgba(30,22,16,.1) 55%,transparent 75%)}
.quattro .fx-pannello:not(.fx-on){filter:none}
.quattro .fx-pannello-verticale,.quattro .fx-pannello-info,.quattro .num{z-index:2}
.quattro .fx-pannello-verticale{font-family:var(--serif);font-size:1.5rem;font-weight:500;letter-spacing:.02em}
.quattro .num{position:absolute;top:22px;left:24px;font-size:.74rem;letter-spacing:.22em;opacity:.85}
.quattro .fx-pannello-info{padding-bottom:clamp(26px,3vw,40px)}
.quattro .fx-pannello-info .eti{display:block;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 .7em;opacity:1}
.quattro .fx-pannello-info b{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,3.4vw,3.2rem);white-space:normal;line-height:1}
.quattro .fx-pannello-info > span:not(.fx-pannello-cta):not(.eti){font-size:1rem;max-width:40ch;margin-top:.9em}
.quattro .fx-pannello-cta{background:transparent!important;border-radius:0!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.6)!important;
  padding:.4em 0!important;letter-spacing:.2em;text-transform:uppercase;font-weight:500!important;font-size:.72rem!important;margin-top:1.4em!important}
.quattro .fx-pannello .linea{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--tinta-viva);z-index:3;transform:scaleX(0);
  transform-origin:left;transition:transform .8s var(--ease)}
.quattro .fx-pannello.fx-on .linea{transform:scaleX(1)}
@media (max-width:860px){.quattro{--fx-pannelli-altezza-mobile:auto}
  .quattro .fx-pannelli{height:auto;padding:0}
  .quattro .fx-pannello{min-height:56svh;flex:none}
  .quattro .fx-pannello:not(.fx-on){min-height:20svh}
  .quattro .fx-pannello-verticale{font-size:1.7rem}}

/* ---------- immagine + testo alternati ---------- */
.blocco{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,100px);align-items:center;margin-top:clamp(70px,9vw,130px)}
.blocco:first-of-type{margin-top:0}
.blocco--giro .blocco__img{order:2}
.blocco__img{position:relative}
.blocco__img img{width:100%;aspect-ratio:4/5;object-fit:cover}
.blocco__img--larga img{aspect-ratio:4/3}
.blocco__img figcaption{font-size:.78rem;color:var(--muted);margin-top:.8em;letter-spacing:.04em}
.blocco h3{margin-bottom:.55em}
.blocco .eyebrow{margin-bottom:1em}
@media (max-width:860px){.blocco{grid-template-columns:1fr}.blocco--giro .blocco__img{order:0}}

/* foto con cornice d'oro sfalsata */
.cornice{position:relative}
.cornice::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--gold);z-index:0;opacity:.7}
.cornice img{position:relative;z-index:1}

/* ---------- rivelo delle foto (maschera) ---------- */
.js .rivela{clip-path:inset(12% 12% 12% 12%);opacity:.001;transition:clip-path 1.4s var(--ease),opacity .9s}
.js .rivela img{transform:scale(1.18);transition:transform 1.8s var(--ease)}
.js .rivela.is-vista{clip-path:inset(0 0 0 0);opacity:1}
.js .rivela.is-vista img{transform:scale(1)}
.js .sale{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .sale.is-vista{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rivela,.js .rivela img,.js .sale{clip-path:none;opacity:1;transform:none;transition:none}}

/* ---------- striscia di foto che scorre ---------- */
.striscia{overflow:hidden;padding:clamp(30px,4vw,50px) 0}
.striscia__binario{display:flex;gap:14px;width:max-content;animation:scorri 70s linear infinite}
.striscia:hover .striscia__binario{animation-play-state:paused}
.striscia figure{margin:0;flex:0 0 auto;width:clamp(220px,24vw,360px);aspect-ratio:3/4;overflow:hidden}
.striscia figure:nth-child(even){aspect-ratio:4/3;width:clamp(280px,30vw,460px);align-self:center}
.striscia img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.striscia figure:hover img{transform:scale(1.06)}
@keyframes scorri{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.striscia__binario{animation:none;overflow-x:auto;width:auto}}

/* ---------- citazione ---------- */
.citazione{text-align:center;max-width:22ch;margin:0 auto;font-family:var(--serif);font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.12;font-weight:500}
.citazione em{color:var(--gold)}

/* ---------- schede (tre colonne) ---------- */
.schede{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,34px);margin-top:clamp(40px,5vw,64px)}
.schede--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.scheda{border-top:1px solid var(--line);padding-top:1.4em}
.sez--scura .scheda{border-color:rgba(255,255,255,.18)}
.scheda h3{font-size:clamp(1.45rem,2vw,1.8rem);margin-bottom:.5em}
.scheda .n{font-size:.72rem;letter-spacing:.22em;color:var(--gold);display:block;margin-bottom:1em}
.scheda p{font-size:.98rem;color:var(--muted);margin:0}
.sez--scura .scheda p{color:rgba(237,231,219,.75)}
@media (max-width:980px){.schede,.schede--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.schede,.schede--4{grid-template-columns:1fr}}

/* ---------- menu del mese ---------- */
.menu-mese{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px)}
.carta{background:#FFFCF6;border:1px solid var(--line);padding:clamp(28px,4vw,56px);position:relative}
.carta::before{content:"";position:absolute;inset:10px;border:1px solid rgba(168,135,79,.35);pointer-events:none}
.carta h2{font-size:clamp(2rem,3.2vw,2.8rem);text-align:center}
.carta .mese{display:block;text-align:center;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.8em}
.carta h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);text-align:center;margin:2em 0 .8em;font-weight:500}
.carta ul{list-style:none;margin:0;padding:0;text-align:center;font-family:var(--serif);font-size:1.3rem;line-height:1.5}
.carta .prezzo{text-align:center;margin-top:2em;font-family:var(--serif);font-size:2rem}
.carta .prezzo small{display:block;font-family:var(--sans);font-size:.8rem;color:var(--muted)}
@media (max-width:860px){.menu-mese{grid-template-columns:1fr}}
.punti{list-style:none;padding:0;margin:1.6em 0 0;display:grid;gap:.7em}
.punti li{padding-left:1.8em;position:relative}
.punti li::before{content:"";position:absolute;left:0;top:.62em;width:.9em;height:1px;background:var(--gold)}

/* ---------- percorso (giornata di nozze) ---------- */
.sez--scura .fx-percorso{--fx-accent:#D9C49B}
.fx-tappa b{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2vw,1.9rem)}

/* ---------- galleria orizzontale con foto ---------- */
.galleria-nozze{--fx-scheda-larghezza:clamp(230px,22vw,330px);--fx-scheda-proporzione:3/4}
.galleria-nozze .fx-galleria-binario{margin-top:clamp(60px,9vh,90px)}
.galleria-nozze .fx-galleria-testa h2{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,4vw,3.6rem)}
.galleria-nozze .fx-scheda{border-radius:2px;box-shadow:none}
.galleria-nozze .fx-scheda:nth-child(3n+2){--fx-scheda-proporzione:4/3;align-self:center;width:clamp(300px,30vw,440px)}
.galleria-nozze .fx-scheda-titolo{font-family:var(--serif);font-weight:500}
.galleria-nozze .fx-galleria-binario{align-items:center}
.galleria-nozze .fx-scheda img{transition:transform 1.2s var(--ease)}
.galleria-nozze .fx-scheda:hover img{transform:scale(1.05)}

/* ---------- testo che si accende ---------- */
.fx-parole-testo{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4.6vw,4rem)!important;line-height:1.12!important;text-align:center}

/* ---------- domande ---------- */
.fx-fisarmonica details{border-radius:2px;background:#FFFCF6}
.fx-fisarmonica .fx-t{font-family:var(--serif);font-weight:500;font-size:clamp(1.3rem,1.8vw,1.6rem)}
.fx-fisarmonica .fx-corpo{color:var(--muted)}

/* ---------- galleria a griglia (pagine) ---------- */
.mosaico{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-top:clamp(36px,5vw,60px)}
.mosaico figure{margin:0;overflow:hidden;grid-column:span 4;aspect-ratio:4/5}
.mosaico figure.l{grid-column:span 8;aspect-ratio:auto}
.mosaico figure.m{grid-column:span 6;aspect-ratio:4/3}
.mosaico img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.mosaico figure:hover img{transform:scale(1.05)}
@media (max-width:760px){.mosaico figure,.mosaico figure.l,.mosaico figure.m{grid-column:span 12;aspect-ratio:4/3}}

/* ---------- invito finale ---------- */
.invito{text-align:center}
.invito h2{max-width:16ch;margin:0 auto .5em}
.invito p{max-width:56ch;margin:0 auto 1.6em}
.telefoni{display:flex;flex-wrap:wrap;gap:16px 34px;justify-content:center;margin-top:2em}
.telefoni a{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}

/* ---------- modulo ---------- */
.modulo{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:2.2em;text-align:left}
.modulo .pieno{grid-column:1/-1}
.modulo label{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.5em;opacity:.85}
.modulo input,.modulo select,.modulo textarea{width:100%;font:inherit;font-size:1rem;color:inherit;background:transparent;border:0;
  border-bottom:1px solid currentColor;padding:.7em 0;border-radius:0}
.modulo select option{color:#222}
.modulo textarea{min-height:120px;resize:vertical}
.modulo .consenso{display:flex;gap:.8em;align-items:flex-start;font-size:.88rem;text-transform:none;letter-spacing:0}
.modulo .consenso input{width:auto;margin-top:.35em}
.modulo .trappola{position:absolute;left:-9999px}
.modulo button{justify-self:start;cursor:pointer;font-family:var(--sans)}
@media (max-width:640px){.modulo{grid-template-columns:1fr}}

/* ---------- dove siamo ---------- */
.dove{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);align-items:center}
.dove dl{margin:0;display:grid;gap:1.2em}
.dove dt{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.dove dd{margin:.2em 0 0;font-family:var(--serif);font-size:1.5rem;line-height:1.3}
.dove dd a{text-decoration:none;border-bottom:1px solid var(--line)}
.mappa{position:relative;aspect-ratio:4/3;background:var(--paper-2);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.mappa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.mappa a{position:relative;z-index:2}
.mappa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:860px){.dove{grid-template-columns:1fr}}

/* ---------- piede ---------- */
.piede{background:#EFE7D8;color:var(--text);padding:clamp(60px,8vw,100px) 0 30px;font-size:.95rem}
.piede__griglia{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:clamp(28px,4vw,60px)}
.piede__logo img{width:180px}
.piede h2{font-family:var(--sans);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.3em}
.piede ul{list-style:none;margin:0;padding:0;display:grid;gap:.55em}
.piede a{text-decoration:none}
.piede a:hover{color:var(--brick)}
.piede address{font-style:normal;line-height:1.8}
.piede__fondo{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:clamp(40px,5vw,70px);padding-top:24px;font-size:.8rem;color:var(--muted)}
@media (max-width:860px){.piede__griglia{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.piede__griglia{grid-template-columns:1fr}}

/* whatsapp */
.wa{position:fixed;right:18px;bottom:18px;z-index:40;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;
  box-shadow:0 10px 26px -10px rgba(0,0,0,.5);transition:transform .3s}
.wa:hover{transform:scale(1.07)}
.wa svg{width:28px;height:28px}

/* testo legale */
.legale{max-width:780px}
.legale h2{font-size:clamp(1.6rem,2.4vw,2rem);margin:1.6em 0 .6em}
.centro{text-align:center}
.mt{margin-top:2.2em}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.galleria-nozze figure.fx-scheda{margin:0}
.galleria-nozze .fx-galleria-testa{top:clamp(100px,15vh,140px)}

/* ===== versione 2: regole di stile Marco (Montserrat, misure minime, niente numerazioni) ===== */
body{font-size:17px;line-height:1.7}
@media (max-width:760px){body{font-size:16px}}
h1,h2,h3,h4{font-weight:500;letter-spacing:-.01em}
h1{font-size:clamp(2.5rem,6vw,5.2rem)}
h2{font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.12}
h3{font-size:clamp(1.45rem,2vw,1.9rem);line-height:1.2}
.hero h1{font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.08}
.hero--media h1{font-size:clamp(2.3rem,4.4vw,4rem)}
.eyebrow{font-size:.875rem;letter-spacing:.16em;font-weight:600}
.menu a{font-size:.875rem;letter-spacing:.08em;font-weight:600}
.btn{font-size:.875rem;letter-spacing:.1em;font-weight:600;min-height:48px;padding:.9em 1.7em}
.btn--linea{min-height:44px;padding:.6em 0}
.testata__cta{font-size:.875rem}
.briciole{font-size:.875rem;letter-spacing:.08em}
.lead{font-size:clamp(1.12rem,1.4vw,1.25rem)}
.hero__sotto{font-size:clamp(1.05rem,1.3vw,1.18rem)}
.inbreve{font-size:1rem}.inbreve strong{font-size:.875rem;letter-spacing:.12em;font-weight:700}
.scheda p{font-size:.9375rem}.scheda .n{display:none}
.blocco__img figcaption{font-size:.9375rem}
.carta h3{font-size:.875rem;letter-spacing:.14em;font-weight:600}.carta .mese{font-size:.875rem;letter-spacing:.14em}
.carta ul{font-family:var(--sans);font-size:1.05rem;line-height:1.75}
.carta .prezzo{font-size:1.8rem}.carta .prezzo small{font-size:.9375rem}
.modulo label{font-size:.875rem;letter-spacing:.08em;font-weight:600}.modulo .consenso{font-size:.9375rem}
.modulo input,.modulo select,.modulo textarea{min-height:44px;font-size:1rem}
.dove dt{font-size:.875rem;letter-spacing:.12em;font-weight:600}.dove dd{font-size:1.3rem}
.piede{font-size:1rem}.piede h2{font-size:.875rem;letter-spacing:.14em;font-weight:700}.piede__fondo{font-size:.9375rem}
.piede ul a{display:inline-block;min-height:32px;padding:4px 0}
.telefoni a{font-size:.875rem;letter-spacing:.1em;font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.citazione{font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.25}
.quattro .num{display:none}
.quattro .fx-pannello-verticale{font-size:1.35rem}
.quattro .fx-pannello-info .eti{font-size:.875rem;letter-spacing:.14em;font-weight:600}
.quattro .fx-pannello-info b{font-size:clamp(1.9rem,3vw,2.8rem)}
.quattro .fx-pannello-cta{font-size:.875rem!important;letter-spacing:.1em!important;font-weight:600!important}
.fx-galleria-testa small{font-size:.875rem!important}
.fx-scheda-eti{font-size:.875rem!important;letter-spacing:.12em!important}
.fx-tappa p{font-size:.9375rem!important;opacity:.85!important}
.fx-tappa .fx-n{font-size:.875rem!important}
.fx-fisarmonica summary{grid-template-columns:1fr 28px!important}
.fx-fisarmonica .fx-n{display:none!important}
.fx-fisarmonica .fx-t{font-size:clamp(1.1rem,1.5vw,1.3rem)!important}
.fx-fisarmonica .fx-corpo{padding-left:clamp(16px,2vw,24px)!important;font-size:1rem}
.sez--mattone h2 em{color:#E7D3AE}
.hero h1 em{color:#E7D3AE}

/* ===== versione 3 ===== */
/* piede: testo 2 px più piccolo del testo di pagina */
.piede{font-size:.875rem}.piede h2{font-size:.875rem}.piede__fondo{font-size:.875rem}.piede address{line-height:1.75}
/* trame sulle fasce chiare: foto della cascina quasi trasparente che si muove piano + grana leggera */
.sez:not(.sez--scura):not(.sez--mattone){position:relative;isolation:isolate;overflow:clip}
.sez:not(.sez--scura):not(.sez--mattone)::before{content:"";position:absolute;inset:-6%;z-index:-2;pointer-events:none;
  background:var(--trama,url(trame/trama-campi.webp)) center/cover no-repeat;opacity:var(--trama-op,.09);mix-blend-mode:multiply;
  animation:trama 48s ease-in-out infinite alternate}
.sez:not(.sez--scura):not(.sez--mattone)::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.35;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .18 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
main > .sez:nth-of-type(3n+1){--trama:url(trame/trama-campi.webp)}
main > .sez:nth-of-type(3n+2){--trama:url(trame/trama-salice.webp);--trama-op:.08}
main > .sez:nth-of-type(3n){--trama:url(trame/trama-viale.webp)}
.sez--crema{--trama-op:.09}
@keyframes trama{from{transform:scale(1.04) translate3d(-1.5%,-1%,0)}to{transform:scale(1.1) translate3d(1.5%,1%,0)}}
@media (prefers-reduced-motion:reduce){.sez::before{animation:none!important}}
.carta,.fx-fisarmonica details{background:rgba(255,252,246,.92)}

/* ===== versione 4: galleria a griglia + lightbox ===== */
@media (max-width:860px){.solo-computer{display:none!important}}
.griglia-foto{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,1vw,14px);margin-top:clamp(30px,4vw,50px)}
.griglia-foto__voce{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--paper-2);cursor:zoom-in}
.griglia-foto__voce img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .5s}
.griglia-foto__voce:hover img{transform:scale(1.06);filter:brightness(1.05)}
.mosaico a{display:block;width:100%;height:100%;cursor:zoom-in}
.lb{border:0;padding:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:rgba(24,18,13,.96);color:#fff}
.lb::backdrop{background:rgba(24,18,13,.9)}
.lb[open]{display:flex;align-items:center;justify-content:center}
.lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:92vw}
.lb img{max-width:92vw;max-height:80dvh;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 60px -20px rgba(0,0,0,.7)}
.lb figcaption{font-size:.9375rem;opacity:.85;text-align:center;max-width:70ch}
.lb button{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;width:52px;height:52px;border-radius:50%;
  cursor:pointer;display:grid;place-items:center;font-size:1.6rem;line-height:1;transition:background .3s}
.lb button:hover{background:rgba(255,255,255,.2)}
.lb .lb-chiudi{top:18px;right:18px}.lb .lb-prec{left:18px;top:50%;transform:translateY(-50%)}.lb .lb-succ{right:18px;top:50%;transform:translateY(-50%)}
.lb .lb-conta{position:absolute;top:30px;left:24px;font-size:.875rem;letter-spacing:.12em;opacity:.8}
@media (max-width:760px){.lb .lb-prec,.lb .lb-succ{top:auto;bottom:18px;transform:none}.lb img{max-height:72dvh}}
.carta .periodo{text-align:center;font-size:.9375rem;color:var(--muted);margin:-.3em 0 0}

/* ---------- sottomenu "Menu" ---------- */
.ha-sotto{position:relative}
.menu a.is-attivo{background-size:100% 1px}
.sotto{list-style:none;margin:0;padding:18px 0 0;position:absolute;top:100%;left:50%;transform:translate(-50%,6px);min-width:230px;
  opacity:0;visibility:hidden;transition:opacity .3s,transform .3s var(--ease),visibility .3s}
.sotto::before{content:"";position:absolute;inset:12px 0 0;background:var(--ink);box-shadow:0 18px 40px -20px rgba(0,0,0,.6)}
.sotto li{position:relative}
.sotto a{display:block;color:#fff;padding:12px 22px;white-space:nowrap;background-image:none}
.sotto a:hover,.sotto a[aria-current="page"]{color:var(--gold-soft)}
.ha-sotto:hover .sotto,.ha-sotto:focus-within .sotto{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media (max-width:1080px){
  .ha-sotto{display:flex;flex-direction:column;align-items:center}
  .sotto{position:static;transform:none;opacity:1;visibility:visible;padding:6px 0 0;min-width:0;text-align:center}
  .sotto::before{display:none}
  .sotto a{font-family:var(--sans)!important;font-size:.875rem!important;letter-spacing:.14em!important;text-transform:uppercase!important;
    color:var(--gold-soft);padding:7px 10px}
  .menu{gap:16px}
}

/* ---------- pagine chiare senza foto ---------- */
.testa-chiara{padding-top:clamp(150px,17vw,210px);padding-bottom:clamp(20px,3vw,40px)}
.testa-chiara h1{font-size:clamp(2.4rem,5vw,4.2rem);margin:.3em auto .4em;max-width:16em}
.testa-chiara .lead{max-width:44em;margin:0 auto}

/* ---------- serate ---------- */
.sez--serate{padding-top:clamp(20px,3vw,40px)}
.serate{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,36px);align-items:start}
.serata{margin:0}
.serata a{display:block;box-shadow:0 22px 44px -26px rgba(58,46,36,.55);transition:transform .45s var(--ease),box-shadow .45s}
.serata a:hover{transform:translateY(-4px);box-shadow:0 30px 54px -26px rgba(58,46,36,.6)}
.serata img{display:block;width:100%;height:auto}
.serata figcaption{text-align:center;margin-top:1em;font-family:var(--serif);font-size:1.35rem;color:var(--ink)}
.serata figcaption span{display:block;font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.3em}
.serate__prenota{margin-top:clamp(40px,6vw,80px)}
.serate__azioni{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:1.4em}
@media (max-width:760px){.serate{grid-template-columns:1fr;gap:44px}}
@media (prefers-reduced-motion:reduce){.serata a,.serata a:hover{transition:none;transform:none}}

/* ---------- pranzo di Natale ---------- */
.natale{padding-top:clamp(120px,14vw,170px);background:linear-gradient(#FBF8F2,var(--paper))}
.natale__carta{position:relative;max-width:820px;margin:0 auto;background:#fff;text-align:center;overflow:hidden;
  padding:0 clamp(22px,6vw,80px);border:1px solid rgba(168,135,79,.35);box-shadow:0 30px 70px -40px rgba(58,46,36,.45)}
.natale__carta::before{content:"";position:absolute;inset:10px;border:1px solid rgba(168,135,79,.28);pointer-events:none}
.natale__luci{display:block;width:calc(100% + 2 * clamp(22px,6vw,80px));max-width:none;margin:0 calc(-1 * clamp(22px,6vw,80px));height:auto}
.natale__scritta{display:block;width:min(86%,560px);height:auto;margin:clamp(34px,5vw,56px) auto 0}
.natale__carta .eyebrow{color:var(--gold);margin-top:.6em}
.natale__carta h1{font-size:clamp(2.1rem,4.4vw,3.4rem);margin:.25em 0 .2em;color:var(--ink)}
.natale__menu{margin-top:1.2em}
.natale__menu h3{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:1.8em 0 .7em}
.natale__menu ul{list-style:none;margin:0;padding:0;font-family:var(--serif);font-size:clamp(1.12rem,1.7vw,1.32rem);line-height:1.5;color:var(--ink)}
.natale__menu li+li{margin-top:.35em}
.natale__stella{color:var(--gold);font-size:.9rem;margin:1.6em 0 0;letter-spacing:.6em}
.natale__prezzo{margin:2.6em auto 0;padding:1.6em 0 0;border-top:1px solid rgba(168,135,79,.35);max-width:520px;color:var(--muted)}
.natale__euro{font-family:var(--serif);font-size:clamp(2.2rem,4vw,2.8rem);color:var(--ink);margin:0 0 .2em}
.natale__euro small{font-family:var(--sans);font-size:.9rem;color:var(--muted)}
.natale__bimbi{font-weight:600;color:var(--ink-2);margin-top:.4em}
.natale__azione{margin:1.8em 0 0}
.natale__decori{display:block;width:calc(100% + 2 * clamp(22px,6vw,80px));max-width:none;margin:1.4em calc(-1 * clamp(22px,6vw,80px)) 0;height:auto}
.natale__condizioni{max-width:720px;margin:clamp(40px,6vw,70px) auto 0;color:var(--muted);font-size:.875rem;line-height:1.65}
.natale__condizioni h2{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);text-align:center;margin:0 0 1.2em}
.natale__condizioni ul{list-style:none;margin:0;padding:0;display:grid;gap:.7em}
.natale__condizioni li{padding-left:1.4em;position:relative}
.natale__condizioni li::before{content:"✦";position:absolute;left:0;color:var(--gold-soft);font-size:.75em;top:.2em}
.natale__condizioni a{color:var(--ink-2)}
