/* FONT — serviti dalla cartella fonts/, nessuna chiamata a Google */
@font-face{font-family:"Cormorant Garamond"; font-style:normal; font-weight:300; font-display:swap; src:url("fonts/cormorant-garamond-latin-300-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond"; font-style:italic; font-weight:300; font-display:swap; src:url("fonts/cormorant-garamond-latin-300-italic.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond"; font-style:normal; font-weight:500; font-display:swap; src:url("fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond"; font-style:italic; font-weight:500; font-display:swap; src:url("fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2");}
@font-face{font-family:"DM Sans"; font-style:normal; font-weight:400; font-display:swap; src:url("fonts/dm-sans-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"DM Sans"; font-style:normal; font-weight:500; font-display:swap; src:url("fonts/dm-sans-latin-500-normal.woff2") format("woff2");}

:root{
  --seaweed:#21564A;
  --gold:#B59540;
  --carbone:#1C1C1A;
  --avorio:#E8E0D5;
  --avorio-2:#DCD2C2;
  --ink: var(--carbone);
  --page-bg: var(--avorio);
  --serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --sans: "DM Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --page-bg: var(--carbone); }
}
:root[data-theme="dark"]{ --page-bg: var(--carbone); }

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--page-bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
h1,h2,h3{font-family:var(--serif); font-weight:500; margin:0; letter-spacing:0.01em;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
::selection{background:var(--gold); color:var(--carbone);}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

/* --- HEADER: logo e pulsante sovrapposti al video --- */
header.top{
  position:absolute; top:0; left:0; right:0; z-index:5;
  display:flex; align-items:center; justify-content:space-between;
  padding:24px 32px; flex-wrap:wrap; gap:12px;
}
.brand{display:inline-flex; align-items:center;}
.logo-img{height:64px; width:auto; display:block;} /* <- dimensione del logo */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-size:0.85rem; font-weight:500;
  padding:11px 20px; border-radius:2px; text-decoration:none;
  border:1px solid currentColor; transition:background 0.2s ease, color 0.2s ease;
  white-space:nowrap; flex-shrink:0;
}
.btn-ghost{color:var(--avorio);}
.btn-ghost:hover{background:var(--avorio); color:var(--carbone);}
.btn-solid{background:var(--gold); color:var(--carbone); border-color:var(--gold);}
.btn-solid:hover{background:transparent; color:var(--gold);}

/* --- HERO: video a tutto sfondo --- */
.hero{
  position:relative; min-height:78vh; overflow:hidden;
  background:linear-gradient(155deg, var(--seaweed) 0%, var(--carbone) 72%);
}
.hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.hero-overlay{
  position:absolute; inset:0;
  background:rgba(0,0,0,0.38); /* <- filtro scurente: 0 = trasparente, 1 = nero pieno */
}

/* --- INTRO --- */
.intro{background:var(--avorio); padding:96px 0 84px;}
.intro .grid{display:flex; gap:56px; align-items:center; flex-wrap:wrap;}
.intro .text{flex:1 1 420px;}
.intro .visual{flex:0 1 500px; display:flex; justify-content:center;}
.whip-wrap{width:100%; max-width:500px;}
.whip-hint{margin:6px 0 0; padding-left:31%; font-size:0.72rem; letter-spacing:0.05em; color:#8a8577; cursor:pointer; user-select:none;}
.whip-hint:hover{color:var(--gold);}
.whip-hint .touch{display:none;}
@media (hover:none){ .whip-hint .desk{display:none;} .whip-hint .touch{display:inline;} }
@media (prefers-reduced-motion: reduce){ .whip-hint{display:none;} }
.whip-line{width:100%; height:auto; display:block; overflow:visible; cursor:pointer; -webkit-tap-highlight-color:transparent;}
.intro h1{font-size:clamp(1.9rem, 3.4vw, 2.6rem); line-height:1.25;}
.intro h1 em{font-style:italic; color:var(--seaweed);}
.intro .lede{font-size:1.05rem; margin-top:22px; max-width:46ch; color:#3a3a38;}
.rule{width:56px; height:1px; background:var(--gold); border:0; margin:32px 0;}
.intro blockquote{
  font-family:var(--serif); font-style:italic; font-size:1.15rem;
  color:var(--seaweed); line-height:1.6; margin:0; max-width:36em;
}

/* --- UNA SESSIONE --- */
.session{background:var(--carbone); color:var(--avorio); padding:88px 0;}
.session .eyebrow{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.3rem; margin-bottom:44px;}
.session .cols{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
.session h3{color:var(--gold); font-size:1.25rem; margin-bottom:14px;}
.session p{font-size:0.92rem; color:rgba(232,224,213,0.82); margin:0;}
.session .divider{width:32px; height:1px; background:var(--gold); opacity:0.5; margin:18px 0;}
.session .meta{margin-top:56px; font-size:0.82rem; color:rgba(232,224,213,0.55);}
/* invito dopo i tre passi */
.session .session-cta{display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:26px;}
.session .session-link{color:var(--avorio); font-size:0.85rem; text-underline-offset:3px; opacity:0.85;}
.session .session-link:hover{color:var(--gold); opacity:1;}

/* --- IL PROCESSO (gallery) --- */
.process{background:var(--avorio); padding:96px 0;}
.process h2{font-size:1.6rem; font-style:italic; margin-bottom:40px; max-width:46ch;}
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.tile{position:relative; aspect-ratio:1/1; border-radius:2px; overflow:hidden; display:block; text-decoration:none;}
.tile-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.tile.ph1{background:linear-gradient(140deg,#2c6b5b,#1C1C1A 85%);}
.tile.ph2{background:linear-gradient(140deg,#3f7d6b,#21564A 70%);}
.tile.ph3{background:linear-gradient(140deg,#c8b077,#B59540 75%);}
.tile.ph4{background:linear-gradient(140deg,#dcd2c2,#a99a7e 80%);}
.tile.ph5{background:linear-gradient(140deg,#3a3a38,#1C1C1A 80%);}
.tile.quote{background:var(--seaweed); display:flex; align-items:center; padding:22px;}
.tile.quote p{font-family:var(--serif); font-style:italic; color:var(--avorio); font-size:1rem; line-height:1.5; margin:0;}
.tile .play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38px; height:38px; border-radius:50%; background:rgba(232,224,213,0.9);
  display:flex; align-items:center; justify-content:center;
}
.tile .play svg{width:12px; height:12px; fill:var(--carbone); margin-left:2px;}
.process-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.btn-outline-dark{border-color:var(--carbone); color:var(--carbone);}
.btn-outline-dark:hover{background:var(--carbone); color:var(--avorio);}

/* --- RECENSIONI --- */
.reviews{background:var(--avorio-2); padding:96px 0;}
.reviews h2{font-size:1.6rem; font-style:italic; margin-bottom:44px;}
.reviews-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:40px;}
.review{margin:0; padding-top:24px; border-top:1px solid var(--gold);}
.review blockquote{margin:0; font-family:var(--serif); font-style:italic; font-size:1.15rem; line-height:1.55; color:var(--carbone);}
.review blockquote::before{content:"\201C"; display:block; font-size:2.8rem; line-height:0.7; color:var(--gold); margin-bottom:12px;}
.review figcaption{margin-top:18px; font-size:0.8rem; letter-spacing:0.04em; color:var(--seaweed);}

/* --- CHIAMATA FINALE --- */
.cta{position:relative; background:var(--seaweed); color:var(--avorio); padding:100px 0; overflow:hidden;}
.cta svg.bg{position:absolute; right:-60px; top:50%; transform:translateY(-50%); width:520px; height:520px; opacity:0.08;}
.cta .inner{position:relative; max-width:560px;}
.cta h2{font-size:1.9rem; font-style:italic; margin-bottom:16px;}
.cta p{font-size:0.95rem; color:rgba(232,224,213,0.85); margin:0 0 30px;}
.cta .meta{font-size:0.82rem; color:rgba(232,224,213,0.6); margin-bottom:26px;}
.cta .alt-contact{margin:22px 0 0; font-size:0.85rem; color:rgba(232,224,213,0.7);}
.cta .alt-contact a{color:var(--avorio); text-underline-offset:3px; white-space:nowrap;}
.cta .alt-contact a:hover{color:var(--gold);}

/* --- FOOTER --- */
footer{background:var(--carbone); color:rgba(232,224,213,0.6); padding:26px 0;}
footer .row{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.78rem;}
footer a{text-decoration:none; opacity:0.85;}
footer a:hover{opacity:1; color:var(--gold);}
footer .links{display:flex; gap:20px; align-items:center;}
footer .lang-toggle a{text-decoration:underline;}

/* --- VIDEO IN SOVRIMPRESSIONE (reel della gallery) --- */
.lightbox{padding:0; border:0; background:#000; width:min(92vw, 440px); max-height:90vh; overflow:hidden; border-radius:2px;}
.lightbox::backdrop{background:rgba(28,28,26,0.9);}
.lightbox video{display:block; width:100%; max-height:90vh; background:#000;}
.lightbox-close{position:absolute; top:10px; right:10px; z-index:2; width:36px; height:36px; border-radius:50%; border:0;
  background:rgba(28,28,26,0.65); color:var(--avorio); font-size:1.3rem; line-height:1; cursor:pointer;}

/* --- PAGINE INFORMATIVA PRIVACY: stessa grafica del sito --- */
.lang-top{color:rgba(232,224,213,0.7); font-size:0.85rem;}
.lang-top a{color:var(--avorio); text-underline-offset:3px;}
.legal-hero{position:relative; overflow:hidden; color:var(--avorio); padding:180px 0 84px;
  background:linear-gradient(155deg, var(--seaweed) 0%, var(--carbone) 72%);}
.legal-hero .wrap{position:relative;}
.legal-hero h1{font-size:clamp(2.3rem, 5vw, 3.6rem); font-style:italic; color:var(--avorio); line-height:1.15;}
.legal-hero .updated{margin:16px 0 0; font-size:0.82rem; letter-spacing:0.03em; color:rgba(232,224,213,0.6);}
.legal-arc{position:absolute; right:-30px; bottom:-50px; width:min(540px, 70vw); height:auto; opacity:0.5; pointer-events:none;}
.legal-arc path{stroke-dasharray:1; stroke-dashoffset:1; animation:arc-draw 2.6s cubic-bezier(.65,0,.35,1) .3s forwards;}
@keyframes arc-draw{to{stroke-dashoffset:0;}}
.legal{background:var(--avorio); padding:88px 0 100px;}
.legal-body{max-width:720px;}
.legal .intro-text{font-family:var(--serif); font-style:italic; font-size:1.3rem; line-height:1.55; color:var(--seaweed); margin:0;}
.legal .intro-text::after{content:""; display:block; width:56px; height:1px; background:var(--gold); margin:36px 0 4px;}
.legal h2{font-size:1.5rem; color:var(--carbone); margin:52px 0 14px;}
.legal h2 .num{font-style:italic; color:var(--gold); margin-right:10px;}
.legal h2::after{content:""; display:block; width:32px; height:1px; background:var(--gold); opacity:0.6; margin-top:14px;}
.legal p, .legal li{font-size:0.97rem; line-height:1.7; color:#3a3a38;}
.legal ul{list-style:none; padding:0; margin:0 0 16px;}
.legal li{position:relative; padding-left:22px; margin-bottom:6px;}
.legal li::before{content:""; position:absolute; left:0; top:0.85em; width:12px; height:1px; background:var(--gold);}
.legal a{color:var(--seaweed); text-underline-offset:3px;}
.legal a:hover{color:var(--gold);}

/* --- ANIMAZIONE ALL'APPARIZIONE: i blocchi con classe "reveal" compaiono scorrendo --- */
.js .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.9s ease, transform 0.9s ease;}
.js .reveal.is-visible{opacity:1; transform:none;}
.session .cols > .reveal:nth-child(2), .reviews-grid > .reveal:nth-child(2){transition-delay:0.12s;}
.session .cols > .reveal:nth-child(3), .reviews-grid > .reveal:nth-child(3){transition-delay:0.24s;}
.gallery > .reveal:nth-child(3n+2){transition-delay:0.1s;}
.gallery > .reveal:nth-child(3n){transition-delay:0.2s;}
@media (prefers-reduced-motion: reduce){ .js .reveal{opacity:1; transform:none;} }

/* --- MOBILE --- */
@media (max-width:760px){
  .wrap{padding:0 22px;}
  header.top{padding:18px 22px;}
  .logo-img{height:50px;}
  .session .cols{grid-template-columns:1fr; gap:36px;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .intro{padding-top:64px;}
  .intro .grid{gap:28px;}
  .intro .visual{order:-1; flex-basis:100%;}
  .whip-wrap{max-width:360px;}
  .cta svg.bg{display:none;}
  .legal-hero{padding:130px 0 56px;}
  .legal-arc{width:78vw; right:-18vw; opacity:0.35;}
  .legal{padding:56px 0 72px;}
  .legal .intro-text{font-size:1.15rem;}
}
