:root{
  --rosa:#b57478;
  --rosa-scuro:#9a5c60;
  --crema:#fff6ef;
  --cipria:#f6e6df;
  --inchiostro:#5b4446;
  --bianco:#fffdfb;
  --script:"Pinyon Script","Great Vibes",cursive;
  --serif:"Cormorant Garamond","Cormorant",Georgia,serif;
  --sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(16px,5vw,64px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--crema);color:var(--inchiostro);font:300 16px/1.75 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--rosa-scuro)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--rosa);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--gutter)}
.script{font-family:var(--script);font-weight:400;color:var(--rosa);line-height:1}
.eyebrow{font:500 .72rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--rosa)}
h2{font:300 clamp(2rem,4vw,2.9rem)/1.1 var(--serif);color:var(--rosa);margin:0;text-wrap:balance}
p{margin:0;max-width:62ch}

/* Marchio (logo testuale + monogramma da Instagram) */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.brand img{width:40px;height:40px;flex:none;object-fit:contain;border-radius:50%}
.brand-nome{font:400 1.1rem/1.15 var(--serif);color:var(--inchiostro)}
.brand-script{font-family:var(--script);font-size:1.6em;color:var(--rosa);margin-right:.12em}
.brand-nome small{display:block;font:500 .6rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;margin-top:4px;opacity:.8}
.contatti .brand{flex-direction:column;align-items:flex-start;gap:14px;margin:40px 0 28px}
.contatti .brand img{width:72px;height:72px}
.contatti .brand-nome{font-size:1.5rem;color:var(--crema)}
.contatti .brand-script{color:var(--crema)}
.contatti .brand-nome small{opacity:.85}

/* Header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:rgba(255,246,239,.94);backdrop-filter:blur(6px);border-bottom:1px solid rgba(181,116,120,.18)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
.top img{height:46px;width:auto}
.menu{display:flex;gap:clamp(14px,2.4vw,32px);list-style:none;margin:0;padding:0}
.menu a{font:500 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--inchiostro);padding-block:6px;border-bottom:1px solid transparent}
.menu a:hover{color:var(--rosa);border-color:var(--rosa)}
.burger{display:none;background:none;border:1px solid var(--rosa);color:var(--rosa);font:500 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:8px 12px;cursor:pointer}
@media (max-width:980px){
  .burger{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--crema);padding:12px var(--gutter) 20px;border-bottom:1px solid rgba(181,116,120,.25)}
  .menu.open{display:flex}
  .menu a{display:block;padding-block:10px}
}

/* Hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:min(86vh,760px)}
.hero-foto{position:relative;overflow:hidden;background:var(--cipria)}
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero-testo{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:clamp(32px,6vw,88px) var(--gutter)}
.hero-testo .script{font-size:clamp(4rem,9vw,7.2rem);margin-bottom:-.12em}
.hero-testo .sono{font:300 clamp(2.2rem,4.4vw,3.4rem)/1 var(--serif);color:var(--rosa);margin:0}
.hero-testo p{font-size:.98rem}
.btn{display:inline-block;align-self:flex-start;background:var(--rosa);color:var(--crema);text-decoration:none;font:500 .74rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:17px 28px;border:1px solid var(--rosa);transition:background .25s,color .25s;cursor:pointer}
.btn:hover{background:transparent;color:var(--rosa)}
@media (max-width:820px){.hero{grid-template-columns:1fr;min-height:0}.hero-foto{aspect-ratio:4/4.4;max-height:72vh}}

/* Chi sono */
.chi{padding-block:clamp(72px,10vw,130px);background:var(--bianco)}
.chi .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,90px);align-items:center}
.coppia-foto{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.coppia-foto img{aspect-ratio:2/3;object-fit:cover;width:100%}
.coppia-foto img:last-child{margin-top:64px}
.chi-testo{display:grid;gap:20px}
.chi-testo h3{font:400 1.5rem/1.2 var(--serif);font-style:italic;color:var(--rosa);margin:12px 0 0}
.forza{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:6px}
.forza div{border-top:1px solid var(--rosa);padding-top:14px}
.forza strong{display:block;font:400 2.3rem/1 var(--script);color:var(--rosa);margin-bottom:8px}
.forza span{font-size:.92rem}
@media (max-width:820px){.chi .wrap{grid-template-columns:1fr}.forza{grid-template-columns:1fr}}

/* Servizi */
.servizi{padding-block:clamp(72px,10vw,130px)}
.servizi-intro{display:grid;gap:14px;margin-bottom:clamp(40px,6vw,64px)}
.percorso{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:passo;border-top:1px solid rgba(181,116,120,.35)}
.percorso li{counter-increment:passo;padding:30px 28px 34px 0;border-bottom:1px solid rgba(181,116,120,.35);display:grid;gap:10px;align-content:start}
.percorso li:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid rgba(181,116,120,.35)}
.percorso li::before{content:counter(passo);font:400 2.6rem/1 var(--script);color:var(--rosa)}
.percorso h3{font:400 1.45rem/1.2 var(--serif);color:var(--inchiostro);margin:0}
.percorso p{font-size:.92rem}
@media (max-width:900px){.percorso{grid-template-columns:1fr 1fr}.percorso li:not(:nth-child(3n+1)){padding-left:0;border-left:0}.percorso li:nth-child(2n){padding-left:24px;border-left:1px solid rgba(181,116,120,.35)}}
@media (max-width:560px){.percorso{grid-template-columns:1fr}.percorso li:nth-child(2n){padding-left:0;border-left:0}}

/* Galleria */
.galleria{padding-block:clamp(56px,8vw,100px);background:var(--cipria)}
.galleria .intestazione{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:32px}
.mosaico{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(120px,17vw,220px);gap:10px}
.mosaico figure{margin:0;overflow:hidden;position:relative}
.mosaico img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.mosaico figure:hover img{transform:scale(1.04)}
.mosaico figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 10px;font:500 .66rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,rgba(60,35,37,.55));opacity:0;transition:opacity .3s}
.mosaico figure:hover figcaption,.mosaico figure:focus-within figcaption{opacity:1}
.g1{grid-column:span 2;grid-row:span 2}
.g2{grid-row:span 2}
.g5{grid-column:span 2}
.g6{grid-column:span 2}
@media (max-width:700px){.mosaico{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.g1{grid-column:span 2}.g5,.g6{grid-column:span 2}.mosaico figcaption{opacity:1}}

/* Citazione */
.citazione{padding-block:clamp(72px,10vw,120px);text-align:center}
.citazione blockquote{margin:0 auto;max-width:30ch;font:400 clamp(1.9rem,3.8vw,2.8rem)/1.45 var(--script);color:var(--rosa);text-wrap:balance}

/* Contatti */
.contatti{background:var(--rosa);color:var(--crema);padding-block:clamp(72px,10vw,120px)}
.contatti .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:start}
.contatti .script{color:var(--crema);font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.25}
.contatti .logo{width:210px;margin:40px 0 28px}
.recapiti{display:grid;gap:14px;font-size:.95rem}
.recapiti a{color:var(--crema);text-decoration:none;border-bottom:1px solid rgba(255,246,239,.45)}
.recapiti a:hover{border-color:var(--crema)}
.recapiti .etichetta{display:block;font:500 .66rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;opacity:.75;margin-bottom:4px}
form{display:grid;gap:16px;background:var(--crema);color:var(--inchiostro);padding:clamp(24px,4vw,40px)}
form h3{font:300 1.8rem/1.1 var(--serif);color:var(--rosa);margin:0 0 4px}
.riga{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:grid;gap:6px;font:500 .66rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--rosa-scuro)}
input,textarea,select{font:300 1rem/1.4 var(--sans);color:var(--inchiostro);background:var(--bianco);border:1px solid rgba(181,116,120,.4);border-radius:0;padding:12px;width:100%}
textarea{min-height:120px;resize:vertical}
.nota{font-size:.8rem;color:var(--inchiostro)}
.esito{font-size:.9rem;color:var(--rosa-scuro)}
.esito:empty{display:none}
.trappola{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consenso{display:flex;align-items:flex-start;gap:10px;font:300 .85rem/1.5 var(--sans);letter-spacing:0;text-transform:none;color:var(--inchiostro)}
.consenso input{width:18px;height:18px;margin:2px 0 0;padding:0;flex:none;accent-color:var(--rosa)}
.btn[disabled]{opacity:.6;cursor:wait}
@media (max-width:820px){.contatti .wrap{grid-template-columns:1fr}.riga{grid-template-columns:1fr}}

footer{background:var(--rosa-scuro);color:var(--crema);font-size:.75rem;letter-spacing:.08em}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-block:18px}
footer a{color:var(--crema);text-decoration:none;border-bottom:1px solid rgba(255,246,239,.45)}

/* Link Instagram in galleria */
.link-ig{display:inline-flex;align-items:center;gap:10px;font:500 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--rosa-scuro);padding-block:6px;border-bottom:1px solid var(--rosa)}
.link-ig:hover{color:var(--rosa)}
.link-ig svg{width:18px;height:18px;flex:none}

/* WhatsApp */
.whatsapp{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:10px;background:var(--rosa);color:var(--crema);text-decoration:none;font:500 .7rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:14px;border-radius:999px;box-shadow:0 6px 20px rgba(91,68,70,.25);transition:background .25s,transform .25s}
.whatsapp:hover{background:var(--rosa-scuro);transform:translateY(-2px)}
.whatsapp svg{width:26px;height:26px;flex:none}
.whatsapp span{padding-right:6px}
@media (max-width:760px){.whatsapp span{display:none}}

/* Spunte */
.spunte{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.spunte li{position:relative;padding-left:26px;font-size:.95rem}
.spunte li::before{content:"✓";position:absolute;left:0;color:var(--rosa);font-weight:500}
.spunte.due-colonne{grid-template-columns:1fr 1fr;column-gap:24px}
@media (max-width:560px){.spunte.due-colonne{grid-template-columns:1fr}}

/* Servizi: a preparativi avviati */
.tardi{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:center;margin-top:clamp(56px,8vw,90px);background:var(--bianco);padding:clamp(20px,3vw,36px)}
.tardi img{aspect-ratio:1;object-fit:cover;width:100%}
.tardi>div{display:grid;gap:16px}
.tardi h3{font:300 clamp(1.6rem,3vw,2.1rem)/1.15 var(--serif);color:var(--rosa);margin:0}
@media (max-width:820px){.tardi{grid-template-columns:1fr}}

/* Storie */
.storie{padding-block:clamp(72px,10vw,130px);background:var(--bianco)}
.schede{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.scheda{display:grid;gap:12px;align-content:start}
.scheda img{aspect-ratio:3/4;object-fit:cover;width:100%;margin-bottom:6px}
.scheda h3{font:400 1.45rem/1.2 var(--serif);color:var(--rosa);margin:0}
.scheda p{font-size:.92rem}
small{font-size:.72rem;letter-spacing:.06em;opacity:.75}
@media (max-width:1000px){.schede{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.schede{grid-template-columns:1fr}}

/* Eventi */
.eventi{padding-block:clamp(72px,10vw,130px)}
.evento{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:center;margin-bottom:clamp(56px,8vw,96px)}
.evento:nth-of-type(odd) .evento-testo{order:2}
.evento-testo{display:grid;gap:16px}
.evento-testo .script{font-size:clamp(2.6rem,5vw,3.6rem)}
.evento-foto{display:grid;gap:10px}
.evento-foto img{width:100%;height:auto;object-fit:cover}
.evento-foto.tre{grid-template-columns:repeat(3,1fr)}
.evento-foto.tre img{aspect-ratio:3/4}
.evento-foto.quattro-pari{grid-template-columns:repeat(4,1fr)}
.evento-foto.quattro-pari img{aspect-ratio:3/4}
.evento-foto.quattro{grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto}
.evento-foto.quattro img:nth-child(1){grid-column:span 2;aspect-ratio:4/3}
.evento-foto.quattro img:nth-child(2){grid-column:span 2;aspect-ratio:4/3}
.evento-foto.quattro img:nth-child(n+3){grid-column:span 2;aspect-ratio:4/5}
.evento-foto.cinque{grid-template-columns:repeat(6,1fr);grid-template-rows:auto auto}
.evento-foto.cinque img:nth-child(1){grid-column:span 3;aspect-ratio:4/3}
.evento-foto.cinque img:nth-child(2){grid-column:span 3;aspect-ratio:4/3}
.evento-foto.cinque img:nth-child(n+3){grid-column:span 2;aspect-ratio:4/5}
@media (max-width:700px){.evento-foto.quattro-pari,.evento-foto.cinque{grid-template-columns:repeat(2,1fr)}.evento-foto.cinque img:nth-child(1),.evento-foto.cinque img:nth-child(2){grid-column:span 1}}
@media (max-width:820px){.evento{grid-template-columns:1fr}.evento:nth-of-type(odd) .evento-testo{order:0}}
.proposta{background:var(--rosa);color:var(--crema);text-align:center;padding:clamp(40px,6vw,72px) var(--gutter);display:grid;gap:18px;justify-items:center}
.proposta .script{color:var(--crema);font-size:clamp(2.4rem,5vw,3.4rem)}
.proposta p{max-width:58ch}
.btn.chiaro{align-self:center;background:var(--crema);color:var(--rosa-scuro);border-color:var(--crema)}
.btn.chiaro:hover{background:transparent;color:var(--crema)}

/* Galleria: formati aggiuntivi */
.mosaico .alto{grid-row:span 2}
.mosaico .largo{grid-column:span 2}
.mosaico img,.scheda img,.evento-foto img,.tardi img,.consiglio img{cursor:zoom-in}

/* Consiglio */
.consiglio{padding-block:clamp(72px,10vw,120px);background:var(--bianco)}
.consiglio .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.consiglio .wrap>div{display:grid;gap:16px}
.consiglio img{aspect-ratio:3/2;object-fit:cover;width:100%}
@media (max-width:820px){.consiglio .wrap{grid-template-columns:1fr}}
.firma{font:italic 300 1.3rem/1.3 var(--serif);margin-top:12px}

/* Lightbox */
.lightbox{border:0;padding:0;margin:auto;max-width:100vw;max-height:100vh;width:100vw;height:100vh;background:rgba(40,26,28,.94);color:#fff}
.lightbox::backdrop{background:rgba(40,26,28,.94)}
.lightbox[open]{display:flex;align-items:center;justify-content:center}
.lightbox figure{margin:0;display:grid;gap:10px;justify-items:center;padding:56px 16px}
.lightbox img{max-width:min(92vw,1400px);max-height:78vh;width:auto;height:auto;object-fit:contain;cursor:default}
.lightbox figcaption{font:500 .7rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-align:center;max-width:60ch}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font:300 2.4rem/1 var(--serif);padding:14px 18px;cursor:pointer;opacity:.8}
.lightbox button:hover{opacity:1}
.lb-chiudi{top:8px;right:8px}
.lb-prec{left:4px;top:50%;transform:translateY(-50%)}
.lb-succ{right:4px;top:50%;transform:translateY(-50%)}

/* Animazioni leggere allo scroll */
.anima{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.anima.visibile{opacity:1;transform:none}
.hero-foto img{transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.js-anima .hero-foto img{transform:scale(1.06)}
.js-anima.caricata .hero-foto img{transform:none}
