/* =========================================================
   Villa d'Agliè — Sito v.02 — Design system
   Heritage elegante · matrimoni-first
   ========================================================= */

:root {
  --cream:#F7F2E9; --cream-2:#EFE7D7; --ink:#2B2A26; --ink-soft:#54514a;
  --green:#2E3D34; --green-deep:#1E2A23; --gold:#A9863F; --gold-light:#C2A35E;
  --line:rgba(43,42,38,.14);
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:1240px; --gutter:clamp(20px,5vw,80px);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--sans); color:var(--ink); background:var(--cream); font-weight:300; line-height:1.7; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }

h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:.005em; }
h1 { font-size:clamp(2.6rem,6vw,5.2rem); }
h2 { font-size:clamp(2rem,4.2vw,3.4rem); }
h3 { font-size:clamp(1.4rem,2.4vw,1.9rem); }

.eyebrow { font-family:var(--sans); font-weight:400; font-size:.74rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); display:inline-block; margin-bottom:1.1rem; }
.eyebrow.light { color:var(--gold-light); }
p.lead { font-size:1.18rem; color:var(--ink-soft); }
.container { max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
strong, .bold-text { font-weight:500; color:var(--ink); }

/* Buttons */
.btn { display:inline-block; font-family:var(--sans); font-weight:400; font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; padding:1.05em 2.4em; border:1px solid var(--gold); color:var(--gold); background:transparent; cursor:pointer; transition:all .35s ease; }
.btn:hover { background:var(--gold); color:#fff; }
.btn.solid { background:var(--gold); color:#fff; }
.btn.solid:hover { background:var(--green-deep); border-color:var(--green-deep); }
.btn.small { padding:.7em 1.4em; font-size:.74rem; }
.btn.on-dark { color:#fff; border-color:rgba(255,255,255,.6); }
.btn.on-dark:hover { background:#fff; color:var(--green-deep); border-color:#fff; }

/* Header / Nav */
.site-header { position:fixed; top:0; left:0; width:100%; z-index:1000; display:flex; align-items:center; justify-content:space-between; padding:18px var(--gutter); transition:background .4s ease, padding .4s ease, box-shadow .4s ease; }
.site-header.scrolled { background:var(--green-deep); padding:12px var(--gutter); box-shadow:0 6px 24px rgba(0,0,0,.16); }
.site-header .logo img { height:52px; width:auto; transition:height .4s ease; }
.site-header.scrolled .logo img { height:42px; }
.main-nav { display:flex; align-items:center; gap:30px; }
.main-nav a { font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; font-weight:400; position:relative; padding:4px 0; }
.main-nav a::after { content:''; position:absolute; left:0; bottom:-2px; height:1px; width:0; background:var(--gold-light); transition:width .3s ease; }
.main-nav a:hover::after, .main-nav a.current::after { width:100%; }
.nav-right { display:flex; align-items:center; gap:20px; }
.lang { display:flex; gap:8px; font-size:.76rem; letter-spacing:.1em; color:rgba(255,255,255,.7); }
.lang a.active { color:var(--gold-light); }
.nav-cta { font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.5); padding:.7em 1.3em; transition:all .3s ease; }
.nav-cta:hover { background:var(--gold); border-color:var(--gold); }
.hamburger { display:none; background:none; border:0; cursor:pointer; z-index:1200; }
.hamburger span { display:block; width:26px; height:2px; background:#fff; margin:5px 0; transition:.3s; }
.hamburger.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu { position:fixed; inset:0; background:var(--green-deep); z-index:1100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; transform:translateY(-100%); transition:transform .45s ease; }
.mobile-menu.open { transform:none; }
.mobile-menu a { color:#fff; font-family:var(--serif); font-size:2rem; }
.mobile-lang { display:flex; gap:18px; margin-top:20px; font-family:var(--sans); font-size:.9rem; letter-spacing:.1em; }
.mobile-lang a { font-size:.9rem; color:rgba(255,255,255,.6); }
.mobile-lang a.active { color:var(--gold-light); }

/* Hero (video) */
.hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; justify-content:center; text-align:center; color:#fff; overflow:hidden; }
.hero video, .hero .hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(20,28,23,.45) 0%, rgba(20,28,23,.2) 40%, rgba(20,28,23,.6) 100%); }
.hero-inner { max-width:900px; padding-inline:20px; animation:fadeUp 1.4s ease both; }
.hero h1 { color:#fff; font-weight:400; font-size:clamp(2rem, 5.2vw, 4rem); }
.hero .since { font-family:var(--sans); font-weight:300; letter-spacing:.42em; text-transform:uppercase; font-size:.82rem; margin-top:1.2rem; color:rgba(255,255,255,.85); }
.hero .hero-sub { font-size:1.15rem; margin:1.6rem auto 2.2rem; max-width:540px; color:rgba(255,255,255,.9); }
.scroll-cue { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); width:1px; height:46px; background:rgba(255,255,255,.5); z-index:1; }
.scroll-cue::after { content:''; position:absolute; bottom:0; left:-3px; width:7px; height:7px; border-right:1px solid rgba(255,255,255,.7); border-bottom:1px solid rgba(255,255,255,.7); transform:rotate(45deg); }
@keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:none;} }

/* Page hero (no video) */
.page-hero { position:relative; height:72vh; min-height:480px; display:flex; align-items:center; text-align:center; color:#fff; background-size:cover; background-position:center; }
.page-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,28,23,.4), rgba(20,28,23,.65)); }
.page-hero .container { position:relative; z-index:1; width:100%; }
.page-hero h1 { color:#fff; }
.page-hero p { max-width:560px; margin:1.4rem auto 0; color:rgba(255,255,255,.9); font-size:1.15rem; }

/* Facts */
.facts { background:var(--green-deep); color:var(--cream); }
.facts .container { display:grid; grid-template-columns:repeat(4,1fr); text-align:center; padding-block:46px; }
.fact { padding:6px 14px; position:relative; }
.fact + .fact::before { content:''; position:absolute; left:0; top:14%; height:72%; width:1px; background:rgba(255,255,255,.16); }
.fact .num { font-family:var(--serif); font-size:2.5rem; color:var(--gold-light); line-height:1; }
.fact .lbl { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-top:.6rem; color:rgba(247,242,233,.8); }

/* Section base */
section { position:relative; }
.section { padding-block:clamp(70px,10vw,130px); }
.section.tight { padding-block:clamp(50px,7vw,90px); }
.center { text-align:center; }
.measure { max-width:620px; margin-inline:auto; }

/* Split */
.split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(30px,5vw,80px); }
.split.reverse .split-media { order:2; }
.split-media img { width:100%; height:100%; max-height:620px; object-fit:cover; }
.split-text { max-width:520px; }
.split-text p { margin-top:1.2rem; color:var(--ink-soft); }
.split-text .btn { margin-top:2rem; }

/* Event cards */
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:56px; }
.card { position:relative; overflow:hidden; aspect-ratio:3/4; display:block; }
.card img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s ease; }
.card:hover img { transform:scale(1.07); }
.card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(20,28,23,.78) 100%); }
.card-label { position:absolute; left:28px; bottom:26px; right:28px; z-index:2; color:#fff; }
.card-label h3 { color:#fff; font-weight:500; }
.card-label span { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); }

/* Band / quote */
.band { position:relative; color:#fff; text-align:center; padding-block:clamp(90px,14vw,180px); background-size:cover; background-position:center; background-attachment:fixed; }
.band::after { content:''; position:absolute; inset:0; background:rgba(20,28,23,.55); }
.band .container { position:relative; z-index:1; }
.band blockquote { font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.9rem); font-weight:400; line-height:1.3; max-width:880px; margin-inline:auto; }
.band cite { display:block; margin-top:1.6rem; font-family:var(--sans); font-style:normal; font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-light); }

/* Gallery — masonry a colonne (allineamento sempre pulito) */
.gallery { column-count:3; column-gap:14px; }
.gallery figure { break-inside:avoid; margin:0 0 14px; overflow:hidden; cursor:pointer; }
.gallery img { width:100%; height:auto; display:block; transition:transform 1s ease; }
.gallery figure:hover img { transform:scale(1.05); }
/* classi layout legacy: nessun effetto in masonry */
.g-tall, .g-wide, .g-sq, .g-half {}

/* Hero: parola rotante (stessa dimensione del titolo, riga singola) */
.rot-word { color:var(--gold-light); font-style:italic; display:block; white-space:nowrap; transition:opacity .35s ease; font-size:1em; line-height:1.15; margin-top:.1em; }

/* Lightbox */
.lightbox { position:fixed; inset:0; background:rgba(15,20,16,.94); z-index:2000; display:none; align-items:center; justify-content:center; }
.lightbox.open { display:flex; }
.lightbox img { max-width:90vw; max-height:86vh; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox .lb-close, .lightbox .lb-prev, .lightbox .lb-next { position:absolute; color:#fff; font-size:2rem; cursor:pointer; user-select:none; opacity:.8; transition:opacity .2s; background:none; border:0; }
.lightbox .lb-close { top:24px; right:30px; }
.lightbox .lb-prev { left:24px; top:50%; transform:translateY(-50%); }
.lightbox .lb-next { right:24px; top:50%; transform:translateY(-50%); }
.lightbox button:hover { opacity:1; }

/* Partner */
.partner { background:var(--cream-2); }
.partner .split-text p { font-size:1.06rem; }
.partner .pill, .pill { display:inline-block; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); border:1px solid var(--gold); padding:.4em 1em; margin-bottom:1.3rem; }

/* History / editorial */
.history-block { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center; margin-bottom:clamp(50px,8vw,100px); }
.history-block:last-child { margin-bottom:0; }
.history-block.reverse .hb-media { order:2; }
.history-block .hb-text p { margin-bottom:1.1rem; color:var(--ink-soft); }
.history-block figure { margin:0; }
.history-block figure img { width:100%; object-fit:cover; }
.history-block figcaption { font-size:.82rem; color:var(--ink-soft); font-style:italic; margin-top:.7rem; }
.historical-quote { font-family:var(--serif); font-style:italic; font-size:1.3rem; line-height:1.4; color:var(--green); border-left:2px solid var(--gold); padding:.4em 0 .4em 1.4em; margin:1.4em 0; }
.portrait { max-width:360px; margin-inline:auto; }

/* Form */
.request { background:var(--green); color:var(--cream); }
.request h2 { color:#fff; }
.request .lead { color:rgba(247,242,233,.85); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; margin-top:48px; }
.field { display:flex; flex-direction:column; }
.field.full { grid-column:1/-1; }
.field label { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light); margin-bottom:.55rem; }
.field input, .field select, .field textarea { font-family:var(--sans); font-size:1rem; font-weight:300; color:#fff; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.3); padding:.65em 0; transition:border-color .3s; }
.field input::placeholder, .field textarea::placeholder { color:rgba(255,255,255,.4); }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--gold-light); }
.field select { color:#fff; }
.field select option { color:var(--ink); }
.form-actions { grid-column:1/-1; margin-top:14px; }
.form-note { font-size:.84rem; color:rgba(247,242,233,.6); margin-top:14px; }
.form-success { grid-column:1/-1; background:rgba(255,255,255,.08); border:1px solid var(--gold-light); padding:22px 26px; color:#fff; }

/* Contact */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:start; }
.contact-info .ci-row { padding:18px 0; border-bottom:1px solid var(--line); }
.contact-info .ci-row h4 { font-family:var(--sans); font-weight:400; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem; }
.contact-info .ci-row p { font-size:1.1rem; }
.map-embed { width:100%; aspect-ratio:4/3; border:0; filter:grayscale(.2); }

/* Footer */
.site-footer { background:var(--green-deep); color:rgba(247,242,233,.75); padding-block:70px 34px; }
.footer-top { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.12); }
.footer-top img { height:56px; margin-bottom:18px; }
.footer-col h4 { font-family:var(--sans); font-weight:400; font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); margin-bottom:16px; }
.footer-col a { display:block; padding:5px 0; font-size:.92rem; }
.footer-col a:hover { color:#fff; }
.footer-col address { padding:5px 0; font-size:.92rem; }
.footer-social { display:flex; gap:16px; margin-top:10px; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:24px; font-size:.76rem; letter-spacing:.04em; color:rgba(247,242,233,.5); }
.footer-bottom a:hover { color:#fff; }

/* Cookie bar */
.cookie-bar { position:fixed; bottom:0; left:0; width:100%; background:var(--green-deep); color:rgba(247,242,233,.85); display:flex; align-items:center; justify-content:center; gap:20px; padding:14px 20px; z-index:1500; font-size:.86rem; flex-wrap:wrap; }
.cookie-bar a { color:var(--gold-light); text-decoration:underline; }

/* Reveal */
.reveal { opacity:0; transform:translateY(34px); transition:opacity 1s ease, transform 1s ease; }
.reveal.in { opacity:1; transform:none; }

/* Prose (privacy etc.) */
.prose { max-width:760px; margin-inline:auto; }
.prose h2 { margin:2rem 0 .8rem; }
.prose p { margin-bottom:1.1rem; color:var(--ink-soft); }
.prose a { color:var(--gold); text-decoration:underline; }

/* Responsive */
@media (max-width:900px) {
  .main-nav, .nav-right .lang { display:none; }
  .hamburger { display:block; }
  .nav-cta { font-size:.6rem; letter-spacing:.1em; padding:.55em .8em; white-space:nowrap; }
  .nav-right { gap:14px; }
  .facts .container { grid-template-columns:repeat(2,1fr); gap:30px 0; }
  .fact:nth-child(3)::before { display:none; }
  .split, .partner .split, .history-block, .contact-grid { grid-template-columns:1fr; }
  .split.reverse .split-media, .history-block.reverse .hb-media { order:0; }
  .split-media img { max-height:60vh; }
  .cards { grid-template-columns:1fr; max-width:420px; margin-inline:auto; }
  .form-grid { grid-template-columns:1fr; }
  .gallery { column-count:2; }
  .footer-top { grid-template-columns:1fr; gap:28px; }
  .footer-bottom { flex-direction:column; gap:10px; text-align:center; }
  .band { background-attachment:scroll; }
  .portrait { max-width:280px; }
}

@media (max-width:430px) {
  .nav-cta { font-size:.52rem; padding:.5em .65em; letter-spacing:.06em; }
  .site-header .logo img, .site-header.scrolled .logo img { height:38px; }
}
