/* =========================================================
   WEDDINGS & BEYOND — Shared Stylesheet
   Palette: bordeaux wine · antique champagne gold · ivory · blush
   Type:    Cormorant Garamond (display) · Jost (body/labels)
   ========================================================= */

:root{
  /* ---- Colour ---- */
  --wine:        #4A1526;   /* deep bordeaux, romantic dark */
  --wine-deep:   #2E0E18;   /* deepest wine, footer/nav overlay */
  --plum-ink:    #1B0D12;   /* richest near-black w/ plum warmth */
  --gold:        #C9A24B;   /* antique / champagne gold accent */
  --gold-soft:   #E4CE93;   /* light gold highlight */
  --champagne:   #F7F0E4;   /* ivory / champagne light bg */
  --champagne-2: #EFE4D2;   /* deeper cream, alt sections */
  --blush:       #E6C7BE;   /* soft rose, delicate accent */
  --mocha:       #8B7367;   /* muted taupe — body text on light */
  --line-light:  #E4D7BF;   /* hairline on light */
  --line-dark:   rgba(247,240,228,.14);

  --ink:         #2A171C;   /* deep plum-brown text on light */
  --ivory-70:    rgba(247,240,228,.72);
  --ivory-45:    rgba(247,240,228,.45);

  /* ---- Type ---- */
  --display: "Cormorant Garamond", Georgia, serif;
  --body:    "Jost", -apple-system, BlinkMacSystemFont, sans-serif;

  /* ---- Motion ---- */
  --ease: cubic-bezier(.22,.61,.24,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --maxw: 1240px;
  --pad: clamp(1.25rem, 5vw, 4rem);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--body);
  font-weight:300;
  color:var(--ink);
  background:var(--champagne);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
::selection{ background:var(--gold); color:var(--plum-ink); }

/* scrollbar */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--champagne-2); }
::-webkit-scrollbar-thumb{ background:var(--line-light); border-radius:6px; }
::-webkit-scrollbar-thumb:hover{ background:var(--gold); }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(4.5rem,11vw,9rem); }
.bg-dark{ background:var(--plum-ink); color:var(--champagne); }
.bg-wine{ background:var(--wine-deep); color:var(--champagne); }
.bg-cream{ background:var(--champagne-2); }

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-family:var(--body);
  font-weight:400;
  font-size:.72rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-block;
}
.display{ font-family:var(--display); font-weight:500; line-height:1.04; letter-spacing:-.01em; }
.italic{ font-style:italic; }
h1,h2,h3{ font-family:var(--display); font-weight:500; line-height:1.06; }

.h-hero{ font-family:var(--display); font-weight:500; font-size:clamp(3.2rem,10vw,8.5rem); line-height:.98; letter-spacing:-.015em; }
.h-sec{ font-family:var(--display); font-weight:500; font-size:clamp(2.2rem,5.2vw,4rem); line-height:1.05; }
.h-3{ font-family:var(--display); font-weight:500; font-size:clamp(1.5rem,2.6vw,2rem); }
.lead{ font-size:clamp(1rem,1.15vw,1.12rem); color:var(--mocha); max-width:46ch; }
.bg-dark .lead,.bg-wine .lead{ color:var(--ivory-70); }

/* gold draw-rule under headings/eyebrows */
.rule{ position:relative; }
.rule::after{
  content:""; position:absolute; left:0; bottom:-16px; height:1px; width:0;
  background:var(--gold); transition:width 1.1s var(--ease) .2s;
}
.rule.center::after{ left:50%; transform:translateX(-50%); }
.rule.in-view::after{ width:66px; }

/* ---------- Buttons ---------- */
.btn{
  --pt:.95rem; --px:2.1rem;
  display:inline-flex; align-items:center; gap:.85rem;
  font-family:var(--body); font-weight:400;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  padding:var(--pt) var(--px);
  position:relative; overflow:hidden;
  transition:color .5s var(--ease), border-color .5s var(--ease);
}
.btn .arw{ transition:transform .5s var(--ease); }
.btn:hover .arw{ transform:translateX(6px); }

.btn-gold{ background:var(--gold); color:var(--plum-ink); }
.btn-gold::before{
  content:""; position:absolute; inset:0; background:var(--gold-soft);
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--ease); z-index:0;
}
.btn-gold:hover::before{ transform:scaleX(1); }
.btn-gold > *{ position:relative; z-index:1; }

.btn-outline{ border:1px solid var(--gold); color:var(--gold); }
.btn-outline::before{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:scaleY(0); transform-origin:bottom; transition:transform .5s var(--ease); z-index:0;
}
.btn-outline:hover{ color:var(--plum-ink); }
.btn-outline:hover::before{ transform:scaleY(1); }
.btn-outline > *{ position:relative; z-index:1; }

/* text link w/ animated underline */
.link-u{
  position:relative; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  padding-bottom:5px; display:inline-block;
}
.link-u::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; opacity:.45; transform:scaleX(.35); transform-origin:left;
  transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.link-u:hover{ color:var(--gold); }
.link-u:hover::after{ transform:scaleX(1); opacity:1; background:var(--gold); }

/* ---------- Navigation ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .6s var(--ease), box-shadow .6s var(--ease), backdrop-filter .6s var(--ease);
}
.nav-inner{
  max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad);
  height:clamp(68px,8vh,88px); display:flex; align-items:center; justify-content:space-between;
}
.nav.scrolled{ background:rgba(27,13,18,.92); backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line-dark); }
.brand{
  font-family:var(--display); font-weight:500; font-size:clamp(1.15rem,1.6vw,1.4rem);
  letter-spacing:.02em; color:var(--champagne); line-height:1;
}
.brand .amp{ color:var(--gold); font-style:italic; }
.brand small{ display:block; font-family:var(--body); font-weight:300; font-size:.52rem; letter-spacing:.42em; text-transform:uppercase; color:var(--ivory-45); margin-top:5px; }

.nav-links{ display:flex; align-items:center; gap:clamp(1.4rem,2.6vw,2.6rem); }
.nav-links a{
  font-family:var(--body); font-weight:300; font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ivory-70); position:relative; padding-block:.4rem;
  transition:color .4s var(--ease);
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:100%; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.nav-links a:hover,.nav-links a.current{ color:var(--champagne); }
.nav-links a:hover::after,.nav-links a.current::after{ transform:scaleX(1); }
.nav-links .nav-cta{
  border:1px solid rgba(201,162,75,.6); color:var(--gold); padding:.7rem 1.5rem;
}
.nav-links .nav-cta::after{ display:none; }
.nav-links .nav-cta:hover{ background:var(--gold); color:var(--plum-ink); }

.burger{ display:none; width:30px; height:22px; position:relative; z-index:120; }
.burger span{ position:absolute; left:0; height:1.5px; width:100%; background:var(--champagne); transition:transform .45s var(--ease), opacity .3s var(--ease), top .45s var(--ease); }
.burger span:nth-child(1){ top:2px; }
.burger span:nth-child(2){ top:10px; }
.burger span:nth-child(3){ top:18px; }
body.menu-open .burger span:nth-child(1){ top:10px; transform:rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ top:10px; transform:rotate(-45deg); }

/* mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:110; background:var(--wine-deep);
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1.6rem;
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease);
  pointer-events:none;
}
body.menu-open .drawer{ clip-path:inset(0 0 0 0); pointer-events:auto; }
.drawer a{
  font-family:var(--display); font-style:italic; font-size:clamp(1.9rem,7vw,2.6rem);
  color:var(--champagne); opacity:0; transform:translateY(18px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;
}
.drawer a:hover{ color:var(--gold); }
body.menu-open .drawer a{ opacity:1; transform:translateY(0); }
body.menu-open .drawer a:nth-child(1){ transition-delay:.18s; }
body.menu-open .drawer a:nth-child(2){ transition-delay:.26s; }
body.menu-open .drawer a:nth-child(3){ transition-delay:.34s; }
body.menu-open .drawer a:nth-child(4){ transition-delay:.42s; }
body.menu-open .drawer a:nth-child(5){ transition-delay:.5s; }
.drawer .drawer-foot{ position:absolute; bottom:2.5rem; text-align:center; opacity:0; transition:opacity .5s .6s var(--ease); }
body.menu-open .drawer .drawer-foot{ opacity:1; }
.drawer .drawer-foot p{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory-45); }
.drawer .drawer-foot .mail{ color:var(--gold); margin-top:.4rem; letter-spacing:.12em; }

/* ---------- HERO ---------- */
.hero{ position:relative; height:100svh; min-height:600px; display:flex; align-items:flex-end; overflow:hidden; background:var(--plum-ink); }
.hero-media{ position:absolute; inset:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 28%; transform:scale(1.12); }
.hero.ready .hero-media img{ animation:kenburns 16s ease-out forwards; }
@keyframes kenburns{ to{ transform:scale(1); } }
.hero-veil{ position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(27,13,18,.92) 0%, rgba(46,14,24,.35) 42%, rgba(27,13,18,.28) 100%),
    linear-gradient(to right, rgba(27,13,18,.55), rgba(27,13,18,0) 55%);
}
.hero-inner{ position:relative; z-index:3; width:100%; padding-bottom:clamp(3rem,9vh,6rem); }
.hero-inner .eyebrow{ color:var(--gold-soft); }
.hero h1{ color:var(--champagne); max-width:16ch; margin-top:1.3rem; }
.hero p.sub{ color:var(--ivory-70); max-width:40ch; margin-top:1.6rem; font-size:clamp(1rem,1.2vw,1.15rem); }
.hero-actions{ margin-top:2.3rem; display:flex; flex-wrap:wrap; align-items:center; gap:1.4rem 2rem; }

/* line-clip reveal for hero headline */
.line-mask{ overflow:hidden; display:block; }
.line-mask > span{ display:block; transform:translateY(115%); }

/* scroll cue */
.scroll-cue{ position:absolute; right:var(--pad); bottom:2rem; z-index:3; display:flex; flex-direction:column; align-items:center; gap:.8rem; color:var(--ivory-45); }
.scroll-cue span{ font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; writing-mode:vertical-rl; }
.scroll-cue i{ width:1px; height:52px; background:linear-gradient(var(--gold),transparent); position:relative; overflow:hidden; }
.scroll-cue i::after{ content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--gold); animation:cue 2.2s var(--ease) infinite; }
@keyframes cue{ 0%{ top:-50%; } 60%,100%{ top:100%; } }

/* corner monogram */
.hero-mono{ position:absolute; top:calc(clamp(68px,8vh,88px) + 1.4rem); right:var(--pad); z-index:3; color:var(--ivory-45); font-family:var(--display); font-style:italic; font-size:1rem; letter-spacing:.1em; }

/* ---------- Load curtain / page transition ---------- */
.curtain{
  position:fixed; inset:0; z-index:9999; background:var(--wine-deep);
  display:flex; align-items:center; justify-content:center;
  transition:clip-path 1s var(--ease);
}
.curtain.up{ clip-path:inset(0 0 100% 0); }
.curtain .mono{ font-family:var(--display); font-style:italic; color:var(--gold); font-size:clamp(1.6rem,4vw,2.4rem); letter-spacing:.04em; opacity:0; animation:monoIn .9s var(--ease) .1s forwards; }
@keyframes monoIn{ 0%{ opacity:0; letter-spacing:.3em; } 60%{ opacity:1; } 100%{ opacity:1; letter-spacing:.04em; } }
/* transition overlay used when navigating between pages */
.page-wipe{ position:fixed; inset:0; z-index:9998; background:var(--wine-deep); clip-path:inset(0 0 100% 0); pointer-events:none; }
.page-wipe.cover{ clip-path:inset(0 0 0 0); transition:clip-path .7s var(--ease); }

/* ---------- Marquee ---------- */
.marquee{ background:var(--plum-ink); overflow:hidden; border-block:1px solid var(--line-dark); padding-block:1.1rem; }
.marquee-track{ display:flex; width:max-content; animation:marquee 38s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track .set{ display:flex; align-items:center; }
.marquee-track .set span{ font-family:var(--display); font-style:italic; font-size:1.15rem; color:var(--gold-soft); margin-inline:1.6rem; white-space:nowrap; }
.marquee-track .set b{ color:var(--ivory-45); font-weight:400; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.reveal.in-view{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.12s; } .reveal.d2{ transition-delay:.24s; }
.reveal.d3{ transition-delay:.36s; } .reveal.d4{ transition-delay:.48s; }

/* heading mask reveal */
.mask{ }
.mask .m-line{ overflow:hidden; }
.mask .m-line > span{ display:block; transform:translateY(105%); transition:transform 1.05s var(--ease-out); }
.mask.in-view .m-line > span{ transform:none; }
.mask.in-view .m-line:nth-child(2) > span{ transition-delay:.1s; }
.mask.in-view .m-line:nth-child(3) > span{ transition-delay:.2s; }

/* ---------- About / editorial split ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5.5rem); align-items:center; }
.split .media{ position:relative; }
.stat-badge{
  position:absolute; bottom:-28px; right:-24px; background:var(--wine-deep); color:var(--champagne);
  padding:1.6rem 1.9rem; max-width:210px; box-shadow:0 30px 60px -30px rgba(27,13,18,.6);
}
.stat-badge .num{ font-family:var(--display); font-style:italic; font-size:2.6rem; color:var(--gold); line-height:1; }
.stat-badge p{ font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ivory-70); margin-top:.6rem; }
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding-top:2rem; margin-top:2.4rem; border-top:1px solid var(--line-light); }
.stats .num{ font-family:var(--display); font-size:2.3rem; color:var(--ink); line-height:1; }
.stats .num em{ color:var(--gold); font-style:normal; }
.stats p{ font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--mocha); margin-top:.7rem; }

/* ---------- Frame / viewfinder image ---------- */
.frame{ position:relative; overflow:hidden; }
.frame img{ width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease), filter .7s var(--ease); }
.frame:hover img{ transform:scale(1.07); }
.frame .veil{ position:absolute; inset:0; background:linear-gradient(to top, rgba(27,13,18,.82), rgba(27,13,18,.05) 55%, transparent); opacity:0; transition:opacity .55s var(--ease); }
.frame:hover .veil{ opacity:1; }
.frame .cap{ position:absolute; left:1.4rem; bottom:1.3rem; color:var(--champagne); opacity:0; transform:translateY(12px); transition:opacity .55s var(--ease) .05s, transform .55s var(--ease) .05s; z-index:2; }
.frame:hover .cap{ opacity:1; transform:none; }
.frame .cap h4{ font-family:var(--display); font-style:italic; font-size:1.3rem; }
.frame .cap p{ font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-soft); margin-top:.3rem; }
.corner{ position:absolute; width:22px; height:22px; border-color:var(--gold); opacity:0; transition:opacity .5s var(--ease), transform .5s var(--ease); z-index:2; }
.frame:hover .corner{ opacity:1; }
.c-tl{ top:14px; left:14px; border-top:1.5px solid; border-left:1.5px solid; transform:translate(7px,7px); }
.c-tr{ top:14px; right:14px; border-top:1.5px solid; border-right:1.5px solid; transform:translate(-7px,7px); }
.c-bl{ bottom:14px; left:14px; border-bottom:1.5px solid; border-left:1.5px solid; transform:translate(7px,-7px); }
.c-br{ bottom:14px; right:14px; border-bottom:1.5px solid; border-right:1.5px solid; transform:translate(-7px,-7px); }
.frame:hover .corner{ transform:translate(0,0); }

/* ---------- Featured gallery (home) ---------- */
.feature-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(.8rem,1.3vw,1.1rem); }
.feature-grid .frame{ cursor:pointer; }
.fg-a{ grid-column:span 7; aspect-ratio:4/5; }
.fg-b{ grid-column:span 5; aspect-ratio:4/5; }
.fg-c{ grid-column:span 4; aspect-ratio:3/4; }
.fg-d{ grid-column:span 4; aspect-ratio:3/4; }
.fg-e{ grid-column:span 4; aspect-ratio:3/4; }

/* ---------- Masonry (portfolio) ---------- */
.masonry{ columns:1; column-gap:clamp(.8rem,1.3vw,1.1rem); }
.masonry .item{ break-inside:avoid; margin-bottom:clamp(.8rem,1.3vw,1.1rem); }
.masonry .frame{ cursor:pointer; }
.filters{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem 2.4rem; }
.filter{
  font-family:var(--body); font-weight:300; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ivory-45); position:relative; padding-bottom:6px; transition:color .4s var(--ease);
}
.filter::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.filter:hover,.filter.active{ color:var(--champagne); }
.filter.active::after{ transform:scaleX(1); }
.item.hide{ display:none; }
.item.fade-swap{ animation:fadeSwap .5s var(--ease); }
@keyframes fadeSwap{ from{ opacity:0; transform:scale(.98); } to{ opacity:1; transform:none; } }

/* ---------- Services ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); }
.svc{ background:var(--champagne); padding:clamp(2rem,3vw,2.8rem); display:flex; flex-direction:column; transition:background .5s var(--ease); }
.svc .tag{ font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--mocha); margin-bottom:1.2rem; }
.svc h3{ margin-bottom:1rem; }
.svc .desc{ font-size:.92rem; color:var(--mocha); flex-grow:1; margin-bottom:1.8rem; }
.svc ul{ list-style:none; display:flex; flex-direction:column; gap:.75rem; margin-bottom:2rem; }
.svc li{ font-size:.9rem; display:flex; gap:.7rem; color:var(--ink); }
.svc li::before{ content:"—"; color:var(--gold); }
.svc.dark{ background:var(--wine-deep); color:var(--champagne); position:relative; }
.svc.dark .tag{ color:var(--gold-soft); }
.svc.dark .desc{ color:var(--ivory-70); }
.svc.dark li{ color:var(--champagne); }
.svc.dark .ribbon{ position:absolute; top:1.4rem; right:1.4rem; font-size:.56rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(201,162,75,.5); padding:.35rem .7rem; }

/* ---------- Testimonials ---------- */
.tst{ position:relative; max-width:820px; margin-inline:auto; text-align:center; }
.tst-view{ overflow:hidden; }
.tst-track{ display:flex; transition:transform .8s var(--ease); }
.tst-slide{ min-width:100%; padding-inline:1rem; }
.tst-slide .quo{ font-family:var(--display); font-style:italic; color:var(--gold); font-size:4rem; line-height:.6; }
.tst-slide blockquote{ font-family:var(--display); font-style:italic; font-size:clamp(1.4rem,2.6vw,2.1rem); line-height:1.4; color:var(--champagne); margin-block:1.5rem 2rem; }
.tst-slide .who{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--champagne); }
.tst-slide .where{ font-size:.8rem; color:var(--ivory-45); margin-top:.4rem; }
.tst-nav{ display:flex; align-items:center; justify-content:center; gap:2rem; margin-top:3rem; }
.tst-nav .arw{ font-size:1.5rem; color:var(--ivory-45); transition:color .4s; }
.tst-nav .arw:hover{ color:var(--gold); }
.dots{ display:flex; gap:.6rem; }
.dot{ width:8px; height:8px; border-radius:50%; background:var(--ivory-45); transition:background .4s, transform .4s; }
.dot.active{ background:var(--gold); transform:scale(1.25); }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; overflow:hidden; text-align:center; }
.cta-band .container{ position:relative; z-index:2; }
.cta-band .h-sec{ color:var(--champagne); }

/* ---------- Page hero (inner pages) ---------- */
.page-hero{ position:relative; padding-top:clamp(9rem,16vh,12rem); padding-bottom:clamp(3.5rem,7vw,5.5rem); background:var(--plum-ink); color:var(--champagne); overflow:hidden; }
.page-hero::before{ content:""; position:absolute; inset:0; background:radial-gradient(120% 90% at 80% -10%, rgba(74,21,38,.9), transparent 60%); }
.page-hero .container{ position:relative; z-index:2; }
.page-hero .h-sec{ color:var(--champagne); max-width:16ch; }
.page-hero .crumb{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ivory-45); margin-bottom:1.4rem; }
.page-hero .crumb a:hover{ color:var(--gold); }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(2.5rem,6vw,5rem); }
.info-block{ margin-bottom:1.9rem; }
.info-block .k{ font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--mocha); margin-bottom:.4rem; }
.info-block .v{ font-size:1.02rem; color:var(--ink); }
.bg-dark .info-block .v{ color:var(--champagne); }
.bg-dark .info-block .k{ color:var(--gold-soft); }
a.mail-link:hover{ color:var(--gold); }

.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:2rem; }
.field label{ font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--mocha); }
.bg-dark .field label{ color:var(--gold-soft); }
.field input,.field select,.field textarea{
  width:100%; margin-top:.7rem; padding:.7rem 0; background:transparent;
  border:none; border-bottom:1px solid var(--line-light); color:var(--ink);
  font-family:var(--body); font-weight:300; font-size:1rem; transition:border-color .4s var(--ease);
}
.bg-dark .field input,.bg-dark .field select,.bg-dark .field textarea{ color:var(--champagne); border-bottom-color:var(--line-dark); }
.field textarea{ resize:none; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-bottom-color:var(--gold); }
.field select option{ color:var(--ink); }
.field ::placeholder{ color:var(--mocha); opacity:.7; }
.form-note{ font-size:.8rem; color:var(--mocha); margin-top:1.4rem; }
.bg-dark .form-note{ color:var(--ivory-45); }
.form-msg{ font-size:.85rem; color:var(--gold); margin-top:1rem; min-height:1.2em; }

/* FAQ */
.faq-item{ border-bottom:1px solid var(--line-light); }
.faq-q{ width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem 0; font-family:var(--display); font-size:clamp(1.1rem,1.8vw,1.4rem); color:var(--ink); }
.faq-q .pm{ color:var(--gold); font-family:var(--body); font-weight:300; transition:transform .4s var(--ease); flex-shrink:0; }
.faq-item.open .faq-q .pm{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-a p{ padding-bottom:1.4rem; color:var(--mocha); max-width:60ch; }

/* ---------- Lightbox ---------- */
.lightbox{ position:fixed; inset:0; z-index:9000; background:rgba(20,9,13,.94); display:flex; align-items:center; justify-content:center; padding:5vw;
  opacity:0; pointer-events:none; transition:opacity .5s var(--ease); }
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox img{ max-width:100%; max-height:86vh; object-fit:contain; box-shadow:0 40px 90px -30px rgba(0,0,0,.8); transform:scale(.96); transition:transform .5s var(--ease); }
.lightbox.open img{ transform:scale(1); }
.lb-close{ position:absolute; top:clamp(1rem,4vw,2.2rem); right:clamp(1rem,4vw,2.2rem); color:var(--champagne); font-size:1.8rem; line-height:1; }
.lb-close:hover{ color:var(--gold); }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); color:var(--ivory-70); font-size:2.4rem; padding:1rem; transition:color .3s; }
.lb-nav:hover{ color:var(--gold); }
.lb-prev{ left:clamp(.5rem,3vw,2rem); } .lb-next{ right:clamp(.5rem,3vw,2rem); }
.lb-cap{ position:absolute; bottom:clamp(1.2rem,4vw,2.4rem); left:0; right:0; text-align:center; color:var(--ivory-70); font-family:var(--display); font-style:italic; font-size:1.1rem; }

/* ---------- Footer ---------- */
.footer{ background:var(--plum-ink); color:var(--ivory-45); padding-block:clamp(3rem,6vw,4.5rem); border-top:1px solid var(--line-dark); }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid var(--line-dark); }
.footer .brand{ font-size:1.6rem; }
.footer-top p.tag{ margin-top:1rem; max-width:34ch; color:var(--ivory-45); font-size:.92rem; line-height:1.7; }
.footer h5{ font-family:var(--body); font-weight:400; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:1.2rem; }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:.75rem; }
.footer ul a{ font-size:.9rem; color:var(--ivory-70); transition:color .3s; }
.footer ul a:hover{ color:var(--gold); }
.footer-bot{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; padding-top:2rem; }
.footer-bot p{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-45); }
.footer-bot .socials{ display:flex; gap:1.6rem; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .nav-links{ display:none; }
  .burger{ display:block; }
  .split{ grid-template-columns:1fr; gap:3.5rem; }
  .stat-badge{ right:auto; left:1.2rem; bottom:-24px; }
  .svc-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .feature-grid{ grid-template-columns:repeat(6,1fr); }
  .fg-a,.fg-b{ grid-column:span 6; }
  .fg-c,.fg-d,.fg-e{ grid-column:span 3; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .footer-top .fcol-brand{ grid-column:1 / -1; }
}
@media (min-width:640px){ .masonry{ columns:2; } }
@media (min-width:1024px){ .masonry{ columns:3; } }

@media (max-width:560px){
  .form-row{ grid-template-columns:1fr; gap:2rem; }
  .stats{ gap:1rem; }
  .stats .num{ font-size:1.9rem; }
  .fg-c,.fg-d,.fg-e{ grid-column:span 6; aspect-ratio:4/5; }
  .footer-top{ grid-template-columns:1fr; }
  .hero-actions .btn{ --px:1.6rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .hero-media img{ transform:none; }
  .reveal,.mask .m-line > span,.line-mask > span{ opacity:1 !important; transform:none !important; }
  .curtain{ display:none; }
}
