/* ============================================================
   NOIR HOUSE — V2 Design System
   ============================================================ */
:root{
  --noir-950:#0D0B09;
  --noir-900:#161210;
  --noir-850:#1E1712;
  --noir-800:#291F18;
  --hairline: rgba(243,236,224,.09);
  --hairline-strong: rgba(243,236,224,.20);
  --ivory:#F5EEE2;
  --ivory-dim:#BDAF9A;
  --ivory-faint:#87796A;
  --bronze:#BC8B54;
  --bronze-light:#E4C393;
  --wine:#5E2430;
  --wine-light:#A34D57;
  --morning:#D3A268;
  --midday:#BE6C2F;
  --night:#41151F;

  --serif: "Fraunces", "Iowan Old Style", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container: 1280px;
  --gutter: clamp(20px, 5vw, 70px);
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-soft: cubic-bezier(.16,.84,.44,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--noir-950);
  color:var(--ivory);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}

/* grain texture — pure CSS/SVG, no external asset */
body::before{
  content:"";
  position:fixed; inset:0; z-index:2000;
  pointer-events:none;
  opacity:.045;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }

.wrap{ max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }

.eyebrow{
  font-size:11.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--bronze-light); font-weight:600;
  display:inline-flex; align-items:center; gap:11px;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--bronze); display:inline-block; }

h1,h2,h3{ font-family:var(--serif); font-weight:500; color:var(--ivory); margin:0; letter-spacing:-.01em; }
em{ font-style:italic; color:var(--bronze-light); font-weight:400; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:16px 32px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  border:1px solid transparent; transition:all .4s var(--ease); white-space:nowrap; position:relative; overflow:hidden;
}
.btn-primary{ background:var(--bronze); color:var(--noir-950); border-color:var(--bronze); }
.btn-primary:hover{ background:var(--bronze-light); border-color:var(--bronze-light); transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(228,195,147,.45); }
.btn-ghost{ background:transparent; color:var(--ivory); border-color:var(--hairline-strong); }
.btn-ghost:hover{ border-color:var(--ivory); background:rgba(245,238,226,.06); }
.btn-line{ padding:0; border:none; text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:600; color:var(--ivory); position:relative; }
.btn-line::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--bronze-light); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.btn-line:hover::after{ transform:scaleX(1); }

.reveal{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease-soft), transform 1s var(--ease-soft); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-d1{ transition-delay:.09s; } .reveal-d2{ transition-delay:.18s; } .reveal-d3{ transition-delay:.27s; } .reveal-d4{ transition-delay:.36s; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:26px 0; transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(13,11,9,.82); backdrop-filter:blur(16px) saturate(150%); -webkit-backdrop-filter:blur(16px) saturate(150%);
  padding:15px 0; border-color:var(--hairline);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ font-family:var(--serif); font-size:20px; letter-spacing:.18em; font-weight:500; color:var(--ivory); display:flex; align-items:center; gap:10px; }
.brand .mark{ width:7px; height:7px; border-radius:50%; background:var(--bronze-light); box-shadow:0 0 12px 2px rgba(228,195,147,.5); }

.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ivory-dim); position:relative; padding:4px 0; transition:color .3s var(--ease); }
.main-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--bronze-light); transition:right .4s var(--ease); }
.main-nav a:hover{ color:var(--ivory); }
.main-nav a:hover::after{ right:0; }

.header-cta{ display:flex; align-items:center; gap:24px; }
.header-cta .btn{ padding:13px 26px; }

.menu-toggle{ display:none; width:40px; height:40px; border:1px solid var(--hairline-strong); border-radius:50%; position:relative; }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{ content:""; position:absolute; left:12px; width:16px; height:1px; background:var(--ivory); transition:transform .3s var(--ease), opacity .3s var(--ease); }
.menu-toggle span{ top:19px; } .menu-toggle span::before{ top:-5px; } .menu-toggle span::after{ top:5px; }
.menu-toggle.is-open span{ background:transparent; }
.menu-toggle.is-open span::before{ transform:translateY(5px) rotate(45deg); }
.menu-toggle.is-open span::after{ transform:translateY(-5px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0; z-index:99; background:var(--noir-950);
  display:flex; flex-direction:column; justify-content:center; padding:0 var(--gutter);
  transform:translateY(-100%); transition:transform .55s var(--ease);
}
.mobile-nav.is-open{ transform:translateY(0); }
.mobile-nav a{ font-family:var(--serif); font-size:32px; padding:14px 0; border-bottom:1px solid var(--hairline); color:var(--ivory); }
.mobile-nav .btn{ margin-top:30px; align-self:flex-start; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 38%; transform:scale(1.1); animation:heroZoom 26s ease-in-out infinite alternate; }
@keyframes heroZoom{ from{ transform:scale(1.1);} to{ transform:scale(1.0);} }
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(13,11,9,.68) 0%, rgba(13,11,9,.26) 28%, rgba(13,11,9,.62) 66%, rgba(13,11,9,.98) 100%),
    linear-gradient(90deg, rgba(13,11,9,.68) 0%, rgba(13,11,9,.08) 44%, rgba(13,11,9,.08) 60%, rgba(13,11,9,.6) 100%);
}

.hero-body{ position:relative; z-index:2; flex:1; display:flex; align-items:center; padding-top:120px; }
.hero-body .wrap{ width:100%; }
.hero-grid{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,6vw,80px); align-items:end; }

.hero-kicker{ writing-mode:vertical-rl; transform:rotate(180deg); display:flex; align-items:center; gap:16px; padding-bottom:8px; }
.hero-kicker span{ font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--ivory-faint); }
.hero-kicker::after{ content:""; width:1px; height:90px; background:linear-gradient(var(--bronze-light), transparent); }

.hero-copy{ max-width:880px; }
.hero-eyebrow{ font-size:12.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--bronze-light); font-weight:600; display:flex; align-items:center; gap:13px; margin-bottom:26px; }
.hero-eyebrow .dot{ width:4px; height:4px; border-radius:50%; background:var(--bronze-light); }

.hero h1{
  font-size:clamp(46px, 8vw, 108px); line-height:.98; font-weight:400; letter-spacing:-.02em;
}
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 .line span{ display:block; }

.hero-sub{ font-size:clamp(16px,1.7vw,19.5px); color:var(--ivory-dim); max-width:46ch; line-height:1.7; margin-top:28px; font-weight:400; }
.hero-actions{ display:flex; gap:18px; flex-wrap:wrap; margin-top:38px; }

/* marquee strip beneath hero */
.marquee{
  position:relative; z-index:2;
  border-top:1px solid var(--hairline);
  background:rgba(13,11,9,.6);
  backdrop-filter:blur(6px);
  overflow:hidden;
  padding:16px 0;
}
.marquee-track{ display:flex; gap:56px; white-space:nowrap; width:max-content; animation:marquee 34s linear infinite; }
.marquee-track span{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--ivory-faint); letter-spacing:.02em; display:flex; align-items:center; gap:56px; }
.marquee-track span em{ color:var(--bronze-light); font-style:italic; }
.marquee-track .sep{ color:var(--bronze); font-style:normal; opacity:.6; }
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ============================================================
   MANIFESTO — full-bleed statement break
   ============================================================ */
.manifesto{ position:relative; padding:clamp(96px,13vw,176px) 0; overflow:hidden; }
.manifesto-bg{ position:absolute; inset:0; z-index:0; }
.manifesto-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 40%; opacity:.26; filter:grayscale(.3) contrast(1.05); }
.manifesto-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, var(--noir-950), rgba(13,11,9,.75) 40%, var(--noir-950)); }
.manifesto .wrap{ position:relative; z-index:1; text-align:center; }
.manifesto blockquote{
  margin:0 auto; max-width:16ch;
  font-family:var(--serif); font-weight:400; font-style:italic;
  font-size:clamp(30px, 5.4vw, 62px); line-height:1.24; color:var(--ivory);
}
.manifesto blockquote em{ color:var(--bronze-light); }
.manifesto-cite{ margin-top:30px; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory-faint); }

/* ============================================================
   SECTION BASE
   ============================================================ */
section{ position:relative; }
.section-pad{ padding:clamp(90px, 11vw, 160px) 0; }
.section-head{ max-width:660px; margin-bottom:clamp(48px, 6vw, 84px); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(32px, 4.2vw, 52px); line-height:1.1; margin-top:20px; font-weight:400; }
.section-head p{ color:var(--ivory-dim); font-size:16.5px; margin-top:18px; line-height:1.75; max-width:54ch; }
.section-head.center p{ margin-left:auto; margin-right:auto; }

.hr{ height:1px; width:100%; background:var(--hairline); border:0; }

/* ============================================================
   ABOUT
   ============================================================ */
.about{ background:var(--noir-950); }
.about-grid{ display:grid; grid-template-columns: 1fr 1.15fr; gap:clamp(40px, 6vw, 100px); align-items:center; }
.about-copy p{ color:var(--ivory-dim); font-size:17px; line-height:1.9; margin:0 0 22px; max-width:50ch; }
.about-copy p:first-of-type::first-letter{ font-family:var(--serif); font-size:3.6em; float:left; line-height:.8; padding-right:11px; padding-top:5px; color:var(--bronze-light); font-weight:500; }
.about-stats{ display:flex; gap:clamp(24px, 4vw, 52px); margin-top:36px; padding-top:32px; border-top:1px solid var(--hairline); }
.about-stats div strong{ display:block; font-family:var(--serif); font-size:28px; color:var(--ivory); font-weight:500; }
.about-stats div span{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ivory-faint); }

.about-media{ position:relative; display:grid; grid-template-columns:1fr .62fr; gap:16px; }
.about-media .frame{ position:relative; overflow:hidden; }
.about-media .frame.tall{ aspect-ratio:3/4.6; align-self:end; }
.about-media .frame.short{ aspect-ratio:3/3.4; margin-top:60px; }
.about-media img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; transition:transform 1.2s var(--ease-soft); }
.about-media .frame:hover img{ transform:scale(1.06); }
.about-media .frame::after{ content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 1px var(--hairline-strong); pointer-events:none; }
.about-media .tag{
  position:absolute; left:-8%; bottom:-26px; z-index:2;
  background:var(--noir-900); border:1px solid var(--hairline-strong); padding:20px 26px; max-width:230px;
  font-family:var(--serif); font-style:italic; color:var(--bronze-light); font-size:15px; line-height:1.55;
}

@media (max-width:920px){
  .about-grid{ grid-template-columns:1fr; }
  .about-media{ order:-1; }
  .about-media .tag{ left:14px; bottom:14px; }
}

/* ============================================================
   MENU — editorial, image-paired
   ============================================================ */
.menu{ background:var(--noir-900); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }

.menu-tabs{ display:none; gap:10px; margin-bottom:36px; }
.menu-tabs button{
  flex:1; padding:12px 8px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  color:var(--ivory-faint); border:1px solid var(--hairline-strong); transition:all .3s var(--ease);
}
.menu-tabs button.is-active{ color:var(--noir-950); background:var(--bronze-light); border-color:var(--bronze-light); }

.menu-course{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,6vw,90px); align-items:center;
  padding:clamp(50px,6vw,76px) 0; border-top:1px solid var(--hairline);
}
.menu-course:first-of-type{ border-top:none; padding-top:0; }
.menu-course:nth-of-type(even) .menu-course-media{ order:2; }

.menu-course-media{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.menu-course-media img{ width:100%; height:100%; object-fit:cover; object-position:center 35%; transition:transform 1.1s var(--ease-soft); }
.menu-course-media:hover img{ transform:scale(1.05); }
.menu-course-media .badge{
  position:absolute; top:18px; left:18px; z-index:1;
  background:rgba(13,11,9,.72); backdrop-filter:blur(6px);
  border:1px solid var(--hairline-strong);
  padding:8px 14px; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--bronze-light);
}

.menu-course-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:8px; }
.menu-course-time{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory-faint); font-weight:600; }
.menu-course-title{ font-family:var(--serif); font-size:clamp(30px,3.4vw,42px); font-weight:400; color:var(--ivory); margin-bottom:26px; }

.menu-item{ display:flex; align-items:baseline; gap:14px; padding:15px 0; border-top:1px solid var(--hairline); }
.menu-item:first-of-type{ border-top:none; }
.menu-item-name{ font-size:16px; font-weight:500; color:var(--ivory); white-space:nowrap; }
.menu-item-leader{ flex:1; border-bottom:1px dotted var(--hairline-strong); transform:translateY(-4px); min-width:20px; }
.menu-item-desc{ font-size:13px; color:var(--ivory-faint); text-align:right; max-width:34ch; line-height:1.6; }

.menu-note{ margin-top:44px; font-size:13px; color:var(--ivory-faint); font-style:italic; font-family:var(--serif); text-align:center; }

@media (max-width:920px){
  .menu-tabs{ display:flex; }
  .menu-course{ grid-template-columns:1fr; display:none; border-top:none; padding-top:0; }
  .menu-course.is-active{ display:grid; }
  .menu-course:nth-of-type(even) .menu-course-media{ order:0; }
  .menu-course-media{ aspect-ratio:16/10; }
  .menu-item{ flex-wrap:wrap; }
  .menu-item-desc{ text-align:left; max-width:100%; flex-basis:100%; }
  .menu-item-leader{ display:none; }
}

/* ============================================================
   EXPERIENCE — signature day-to-night
   ============================================================ */
.experience{ background:var(--noir-950); position:relative; overflow:hidden; }
.experience::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(120% 90% at 15% 0%, var(--exp-glow, rgba(188,139,84,.18)), transparent 60%);
  transition:background .1s linear; pointer-events:none;
}
.time-track{ position:relative; height:2px; background:var(--hairline-strong); margin-top:14px; margin-bottom:clamp(54px,7vw,90px); overflow:hidden; }
.time-track-fill{ position:absolute; top:0; left:0; bottom:0; width:var(--progress, 0%); background:linear-gradient(90deg, var(--morning), var(--midday), var(--night)); transition:width .08s linear; }
.time-labels{ display:flex; justify-content:space-between; margin-top:14px; }
.time-labels span{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ivory-faint); transition:color .3s var(--ease); }
.time-labels span.is-active{ color:var(--bronze-light); }

.hour-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,36px); }
.hour-card{ border:1px solid var(--hairline); padding:clamp(28px,3vw,38px); background:var(--noir-900); transition:transform .6s var(--ease-soft), border-color .5s var(--ease); }
.hour-card:nth-child(2){ transform:translateY(30px); }
.hour-card:nth-child(3){ transform:translateY(60px); }
.hour-card:hover{ border-color:var(--hairline-strong); }
.hour-card .clock{ font-family:var(--serif); font-size:36px; color:var(--bronze-light); font-weight:400; margin-bottom:6px; }
.hour-card .label{ font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ivory-faint); margin-bottom:20px; }
.hour-card p{ color:var(--ivory-dim); font-size:15px; line-height:1.7; margin:0; }
.hour-card .frame{ margin-top:24px; aspect-ratio:4/3; overflow:hidden; }
.hour-card img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease-soft); }
.hour-card:hover img{ transform:scale(1.08); }

@media (max-width:920px){
  .hour-cards{ grid-template-columns:1fr; }
  .hour-card:nth-child(2), .hour-card:nth-child(3){ transform:none; }
}

/* ============================================================
   GALLERY
   ============================================================ */
.gallery{ background:var(--noir-900); border-top:1px solid var(--hairline); }
.gallery-grid{ display:grid; grid-template-columns:repeat(6, 1fr); grid-auto-rows:130px; gap:12px; }
.gallery-grid figure{ position:relative; overflow:hidden; margin:0; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.5) contrast(1.03); transform:scale(1.02); transition:filter .7s var(--ease-soft), transform 1s var(--ease-soft); }
.gallery-grid figure:hover img{ filter:grayscale(0); transform:scale(1.1); }
.gallery-grid figure::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px var(--hairline); pointer-events:none; }
.gallery-cap{
  position:absolute; left:16px; bottom:16px; z-index:1;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory);
  opacity:0; transform:translateY(8px); transition:opacity .4s var(--ease), transform .4s var(--ease);
  display:flex; align-items:center; gap:8px;
}
.gallery-cap::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--bronze-light); }
.gallery-grid figure:hover .gallery-cap{ opacity:1; transform:none; }
.gallery-grid figure::before{
  content:""; position:absolute; inset:auto 0 0 0; height:56%;
  background:linear-gradient(180deg, transparent, rgba(13,11,9,.75));
  pointer-events:none; z-index:0;
}
@media (hover:none){
  .gallery-cap{ opacity:1; transform:none; }
  .gallery-grid img{ filter:grayscale(0); }
}
.g1{ grid-column:span 2; grid-row:span 3; } .g2{ grid-column:span 2; grid-row:span 2; }
.g3{ grid-column:span 2; grid-row:span 2; } .g4{ grid-column:span 2; grid-row:span 2; }
.g5{ grid-column:span 2; grid-row:span 3; } .g6{ grid-column:span 2; grid-row:span 3; }

@media (max-width:920px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; }
  .g1,.g2,.g3,.g4,.g5,.g6{ grid-column:span 1; grid-row:span 2; }
}

/* ============================================================
   PRIVATE EVENTS
   ============================================================ */
.events{ background:var(--noir-950); }
.events-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,84px); align-items:center; }
.events-media{ position:relative; aspect-ratio:5/4; overflow:hidden; }
.events-media img{ width:100%; height:100%; object-fit:cover; object-position:center 32%; }
.events-copy p{ color:var(--ivory-dim); font-size:17px; line-height:1.85; margin:18px 0 32px; max-width:48ch; }
.events-list{ display:flex; flex-direction:column; gap:15px; margin-bottom:34px; }
.events-list li{ display:flex; gap:12px; align-items:baseline; color:var(--ivory-dim); font-size:14.5px; }
.events-list li::before{ content:"—"; color:var(--bronze-light); }

@media (max-width:920px){ .events-grid{ grid-template-columns:1fr; } .events-media{ order:-1; } }

/* ============================================================
   CONTACT
   ============================================================ */
.contact{ background:var(--noir-900); border-top:1px solid var(--hairline); }
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(40px,6vw,96px); }
.contact-block{ margin-bottom:32px; }
.contact-block h3{ font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ivory-faint); font-family:var(--sans); font-weight:600; margin-bottom:13px; }
.contact-block p, .contact-block a{ font-size:18px; color:var(--ivory); line-height:1.7; font-family:var(--serif); }
.contact-hours{ display:flex; flex-direction:column; gap:2px; }
.contact-hours div{ display:flex; justify-content:space-between; max-width:320px; font-size:14.5px; color:var(--ivory-dim); font-family:var(--sans); padding:8px 0; border-bottom:1px solid var(--hairline); }
.contact-hours div span:last-child{ color:var(--ivory); }
.social-row{ display:flex; gap:18px; margin-top:6px; }
.social-row a{ width:42px; height:42px; border:1px solid var(--hairline-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:border-color .3s var(--ease), background .3s var(--ease); }
.social-row a:hover{ border-color:var(--bronze-light); background:rgba(188,139,84,.09); }
.social-row svg{ width:16px; height:16px; }

.contact-form{ background:var(--noir-950); border:1px solid var(--hairline); padding:clamp(30px,4vw,48px); }
.contact-form h3{ font-family:var(--serif); font-size:23px; font-weight:500; margin-bottom:7px; }
.contact-form p{ color:var(--ivory-faint); font-size:14px; margin-bottom:28px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.field{ display:flex; flex-direction:column; gap:9px; }
.field label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ivory-faint); }
.field input, .field select, .field textarea{ background:transparent; border:none; border-bottom:1px solid var(--hairline-strong); color:var(--ivory); font-family:var(--sans); font-size:14.5px; padding:11px 2px; transition:border-color .3s var(--ease); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--bronze-light); }
.field select option{ background:var(--noir-950); }
.contact-form .btn{ width:100%; margin-top:22px; }

@media (max-width:920px){ .contact-grid{ grid-template-columns:1fr; } .form-row{ grid-template-columns:1fr; } }

/* ============================================================
   FOOTER — big wordmark moment
   ============================================================ */
.site-footer{ background:var(--noir-950); padding-top:70px; overflow:hidden; }
.footer-word{
  font-family:var(--serif); font-weight:400; letter-spacing:-.01em; color:transparent;
  -webkit-text-stroke:1px var(--hairline-strong);
  font-size:clamp(70px, 14vw, 220px); line-height:.86; text-align:center; margin:0 0 10px;
  user-select:none;
}
.footer-cta-row{ text-align:center; margin-bottom:60px; }
.footer-cta-row p{ color:var(--ivory-dim); font-size:16px; margin:0 0 22px; }

.footer-bottom-wrap{ border-top:1px solid var(--hairline); padding:30px 0; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--ivory-faint); flex-wrap:wrap; gap:14px; }
.footer-nav{ display:flex; gap:26px; flex-wrap:wrap; }
.footer-nav a{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ivory-dim); }
.footer-nav a:hover{ color:var(--ivory); }

/* ============================================================
   STICKY MOBILE CTA
   ============================================================ */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:rgba(13,11,9,.94); backdrop-filter:blur(12px); border-top:1px solid var(--hairline);
  padding:14px var(--gutter); display:none; transform:translateY(100%); transition:transform .45s var(--ease);
}
.sticky-cta.is-visible{ transform:translateY(0); }
.sticky-cta .btn{ width:100%; }

@media (max-width:920px){
  .main-nav, .header-cta .btn-ghost{ display:none; }
  .menu-toggle{ display:block; }
  .sticky-cta{ display:block; }
  .hero-kicker{ display:none; }
  .hero-grid{ grid-template-columns:1fr; }
  body{ padding-bottom:74px; } /* reserve space so the fixed sticky CTA never overlaps footer content */
}

@media (max-width:480px){
  .hero-body{ padding-top:104px; }
  .hero h1{ font-size:clamp(38px, 11vw, 52px); line-height:1.05; letter-spacing:-.015em; }
  .hero-sub{ font-size:16px; line-height:1.65; }
  .hero-actions .btn{ flex:1; padding:15px 18px; }
  .eyebrow{ font-size:11px; }
  .section-head h2{ font-size:clamp(27px, 8vw, 34px); }
  .about-copy p:first-of-type::first-letter{ font-size:2.9em; }
  .btn{ padding:15px 24px; }
  .footer-word{ letter-spacing:-.02em; }
}
