/* ============================================================
   LUMIÈRE AESTHETICS — flagship concept
   Palette drawn from her existing brand: blush, cream,
   rose-gold script, ink. Editorial serif + airy sans.
   ============================================================ */

:root{
  --cream:#FAF7F3;
  --blush:#F6E8E2;
  --blush-deep:#F0DCD3;
  --ink:#22201D;
  --ink-soft:#57514B;
  --gold:#B98A62;          /* rose-gold from her logo */
  --gold-soft:#D9B48F;
  --navy:#33415E;          /* her "Radiance in Harmony" script navy */
  --hairline:rgba(34,32,29,.14);
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Jost', 'Helvetica Neue', sans-serif;
  --script:'Sacramento', cursive;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:auto;}
html.lenis{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body[data-loading]{overflow:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;background:none;border:0;cursor:pointer;color:inherit;}
::selection{background:var(--gold-soft);color:var(--ink);}

.wrap-w{width:min(1500px,92vw);margin:0 auto;}
.wrap-n{width:min(900px,88vw);margin:0 auto;}

/* ---------- type utilities ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-size:11px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold);font-weight:400;margin-bottom:26px;
}
.eyebrow::before{content:"";width:44px;height:1px;background:var(--gold);}
.display-xl{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.6rem,5.2vw,4.6rem);
  line-height:1.04;letter-spacing:-.01em;
}
.display-xl em{font-style:italic;color:var(--gold);}
.script-sm{font-family:var(--script);font-size:1.5rem;color:var(--gold);line-height:1.2;}
.script-md{font-family:var(--script);font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--gold);line-height:1.3;}

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{
  position:fixed;inset:0;z-index:1000;
  background:var(--blush);
  display:flex;align-items:center;justify-content:center;
}
.preloader__inner{text-align:center;position:relative;z-index:2;}
.preloader__script{
  font-family:var(--script);
  font-size:clamp(2.6rem,6vw,4.6rem);
  color:var(--gold);display:block;
  opacity:0;transform:translateY(24px);
  animation:preIn .45s var(--ease) forwards;
}
.preloader__tag{
  display:block;font-size:10px;letter-spacing:.5em;color:var(--ink-soft);
  margin-top:10px;opacity:0;animation:preIn .4s var(--ease) .1s forwards;
}
.preloader__count{
  position:fixed;right:5vw;bottom:4vh;
  font-family:var(--serif);font-size:clamp(3rem,7vw,5.5rem);
  color:var(--ink);opacity:.9;font-style:italic;
}
.preloader__veil{position:absolute;inset:0;background:var(--cream);transform:scaleY(0);transform-origin:top;}
@keyframes preIn{to{opacity:1;transform:none;}}

/* ============================================================
   CURSOR / PROGRESS
   ============================================================ */
.cursor{
  position:fixed;left:0;top:0;z-index:999;pointer-events:none;
  width:12px;height:12px;border-radius:50%;
  background:var(--gold);
  transform:translate(-50%,-50%);
  transition:width .35s var(--ease),height .35s var(--ease),background .35s;
  display:flex;align-items:center;justify-content:center;
  mix-blend-mode:multiply;
}
.cursor.is-big{width:76px;height:76px;background:var(--blush-deep);mix-blend-mode:normal;border:1px solid var(--gold);}
.cursor__label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity .3s;}
.cursor.is-big .cursor__label{opacity:1;}
@media (hover:none){.cursor{display:none;}}

.progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:998;background:transparent;}
.progress span{display:block;height:100%;width:0;background:var(--gold);}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{
  position:fixed;top:0;left:0;width:100%;z-index:900;
  transition:background .5s,box-shadow .5s,transform .6s var(--ease);
}
.hdr.is-scrolled{background:rgba(250,247,243,.88);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--hairline);}
.hdr.is-hidden{transform:translateY(-110%);}
.hdr__inner{
  width:min(1560px,94vw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 0;gap:20px;
}
.hdr__brand img{height:52px;width:auto;transition:height .4s var(--ease);}
.hdr.is-scrolled .hdr__brand img{height:40px;}
.hdr__nav{display:flex;gap:30px;}
.hdr__nav a{
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;position:relative;padding:4px 0;
}
.hdr__nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--ease);
}
.hdr__nav a:hover::after{transform:scaleX(1);transform-origin:left;}
.hdr__right{display:flex;align-items:center;gap:22px;}
.hdr__tel{font-size:13px;letter-spacing:.08em;color:var(--ink-soft);}
.btn-pill{
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--ink);padding:11px 22px;border-radius:100px;
  transition:background .4s,color .4s,border-color .4s;display:inline-block;
}
.btn-pill:hover{background:var(--ink);color:var(--cream);}
.burger{display:none;flex-direction:column;gap:6px;padding:8px;}
.burger span{width:26px;height:1.5px;background:var(--ink);transition:transform .4s var(--ease),opacity .3s;}
.burger.is-open span:nth-child(1){transform:translateY(4px) rotate(45deg);}
.burger.is-open span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg);}

.mmenu{
  position:fixed;inset:0;z-index:890;background:var(--blush);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:40px;
  clip-path:circle(0 at calc(100% - 48px) 42px);
  transition:clip-path .8s var(--ease);
}
.mmenu.is-open{clip-path:circle(150% at calc(100% - 48px) 42px);}
.mmenu nav{display:flex;flex-direction:column;gap:8px;text-align:center;}
.mmenu nav a{font-family:var(--serif);font-size:2.2rem;font-style:italic;}
.mmenu__foot{display:flex;flex-direction:column;gap:6px;text-align:center;font-size:13px;letter-spacing:.06em;color:var(--ink-soft);}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;min-height:100vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;background:var(--blush);
}
.hero__silk{position:absolute;inset:0;width:100%;height:100%;}
.hero__grain{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.055'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__stage{
  position:relative;z-index:2;
  width:min(1500px,92vw);margin:0 auto;
  display:grid;grid-template-columns:1.15fr .85fr;gap:4vw;
  align-items:center;flex:1;padding-top:120px;
}
.hero__script{
  font-family:var(--script);font-size:clamp(2rem,3.4vw,3.2rem);
  color:var(--navy);display:block;margin-bottom:1.2vw;
}
.hero__title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(3.4rem,7.6vw,7.4rem);
  line-height:.98;letter-spacing:-.015em;
}
.hero__title em{font-style:italic;color:var(--gold);}
.hero__title .line{display:block;overflow:hidden;}
.hero__title .line>span{display:inline-block;}
.hero__sub{
  max-width:440px;margin-top:2vw;font-size:15.5px;color:var(--ink-soft);letter-spacing:.02em;
}
.hero__cta{display:flex;align-items:center;gap:26px;margin-top:2.4vw;flex-wrap:wrap;}

.btn-major{
  position:relative;display:inline-block;overflow:hidden;
  background:var(--ink);color:var(--cream);
  padding:19px 42px;border-radius:100px;
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  transition:transform .4s var(--ease);
}
.btn-major span{position:relative;z-index:2;}
.btn-major::before{
  content:"";position:absolute;inset:0;background:var(--gold);
  transform:translateY(101%);transition:transform .5s var(--ease);border-radius:inherit;
}
.btn-major:hover::before{transform:translateY(0);}
.btn-major--full{width:100%;text-align:center;}
.btn-line{
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  padding-bottom:6px;border-bottom:1px solid var(--ink);
  transition:color .35s,border-color .35s;display:inline-block;
}
.btn-line:hover{color:var(--gold);border-color:var(--gold);}

.hero__portrait{position:relative;justify-self:end;width:min(37vw,560px);}
.hero__arch{
  border-radius:300px 300px 4px 4px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(120,80,50,.35);
}
.hero__arch img{width:100%;height:118%;object-fit:cover;transform:scale(1.12);}
.hero__portrait figcaption{
  margin-top:16px;display:flex;flex-direction:column;gap:2px;
}
.fig-name{font-family:var(--serif);font-size:1.25rem;font-style:italic;}
.fig-role{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft);}

.hero__marquee{
  position:relative;z-index:2;margin-top:4vh;
  background:var(--ink);
  border-top:1px solid rgba(217,180,143,.25);
  border-bottom:1px solid rgba(217,180,143,.25);
}
.marquee{overflow:hidden;white-space:nowrap;padding:26px 0;}
.marquee__track{
  display:inline-flex;align-items:center;gap:64px;will-change:transform;
  backface-visibility:hidden;
  animation:marqueeScroll 28s linear infinite;
}
@keyframes marqueeScroll{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}
html.no-motion .marquee__track{animation:none;}
@media (prefers-reduced-motion:reduce){
  .marquee__track{animation:none;}
}
.marquee__track span{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.05rem,1.8vw,1.55rem);
  letter-spacing:.02em;text-transform:none;
  color:var(--cream);
}
.marquee__track i{color:var(--gold-soft);font-style:normal;font-size:1.1rem;}

.hero__scrollhint{
  position:absolute;right:4vw;bottom:9vh;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--ink-soft);
  writing-mode:vertical-rl;
}
.hero__scrollhint span{width:1px;height:56px;background:var(--ink-soft);position:relative;overflow:hidden;}
.hero__scrollhint span::after{
  content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;
  background:var(--gold);animation:scrollLine 2.2s var(--ease) infinite;
}
@keyframes scrollLine{0%{top:-100%}55%{top:0}100%{top:100%}}

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{padding:22vh 0 18vh;text-align:center;background:var(--cream);}
.manifesto__text{
  font-family:var(--serif);
  font-size:clamp(1.9rem,3.6vw,3.3rem);
  line-height:1.35;font-weight:400;letter-spacing:.002em;
}
.manifesto__text .w{opacity:.12;transition:opacity .4s linear;}
.manifesto__text .w.on{opacity:1;}
.manifesto__script{display:block;margin-top:5vh;font-family:var(--script);font-size:1.9rem;color:var(--gold);}

/* ============================================================
   NUMBERS
   ============================================================ */
.numbers{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:var(--cream);}
.numbers__grid{display:grid;grid-template-columns:repeat(4,1fr);}
.num{padding:56px 34px;border-left:1px solid var(--hairline);}
.num:first-child{border-left:0;}
.num__big{font-family:var(--serif);font-size:clamp(2.4rem,3.6vw,3.4rem);font-style:italic;color:var(--ink);display:block;line-height:1;}
.num__lbl{display:block;margin-top:14px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);line-height:1.7;}

/* ============================================================
   INJECTOR
   ============================================================ */
.injector{background:var(--blush);position:relative;}
.injector__pin{padding:16vh 0;}
.injector__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;align-items:start;}
.injector__media{position:relative;border-radius:20px;overflow:visible;}
.injector__media img{border-radius:20px;box-shadow:0 50px 100px -40px rgba(120,80,50,.4);}
.injector__floatcard{
  position:absolute;right:-28px;bottom:36px;
  background:var(--cream);padding:22px 28px;border-radius:20px;
  display:flex;flex-direction:column;gap:4px;
  box-shadow:0 30px 60px -20px rgba(34,32,29,.25);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);
}
.injector__creds{margin-top:6vh;display:flex;flex-direction:column;}
.cred{
  display:grid;grid-template-columns:70px 1fr;gap:26px;
  padding:34px 0;border-top:1px solid var(--hairline);
}
.cred:last-child{border-bottom:1px solid var(--hairline);}
.cred__n{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--gold);}
.cred h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin-bottom:8px;}
.cred p{font-size:14.5px;color:var(--ink-soft);max-width:560px;}
.injector__quote{margin-top:7vh;}
.injector__quote cite{display:block;margin-top:10px;font-style:normal;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);}

/* ============================================================
   SERVICES — horizontal scroll
   ============================================================ */
.svc{background:var(--ink);color:var(--cream);position:relative;}
.svc__pin{overflow:hidden;padding:10vh 0 12vh;}
.svc__head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:7vh;}
.svc__head .display-xl em{color:var(--gold-soft);}
.svc__head .eyebrow{color:var(--gold-soft);}
.svc__head .eyebrow::before{background:var(--gold-soft);}
.svc__hint{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:rgba(250,247,243,.5);padding-bottom:12px;}
.svc__track{
  display:flex;gap:4vw;padding-left:max(4vw,calc((100vw - 1500px)/2));
  will-change:transform;width:max-content;
}
.svc__panel{
  width:min(74vw,600px);flex-shrink:0;position:relative;
  display:flex;flex-direction:column;gap:26px;
}
.svc__index{
  display:flex;align-items:center;gap:22px;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.6rem,2.4vw,2.2rem);color:var(--gold-soft);
  line-height:1;
}
.svc__index::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(to right,rgba(217,180,143,.55),rgba(217,180,143,.08));
}
.svc__panel figure{overflow:hidden;border-radius:20px;height:min(46vh,420px);}
.svc__panel figure img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.2s var(--ease);}
.svc__panel:hover figure img{transform:scale(1);}
.svc__body h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.1;}
.svc__body h3 em{font-style:italic;color:var(--gold-soft);}
.svc__body p{margin-top:12px;font-size:14.5px;color:rgba(250,247,243,.72);max-width:480px;}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:9px;margin-top:20px;}
.chips li{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid rgba(250,247,243,.28);border-radius:100px;padding:8px 15px;
  color:rgba(250,247,243,.85);
}
.svc__panel--cta{justify-content:center;align-items:flex-start;padding-right:8vw;}
.svc__panel--cta h3{font-family:var(--serif);font-size:clamp(2rem,3.4vw,3rem);margin:18px 0 30px;line-height:1.15;}
.svc__panel--cta .script-md{color:var(--gold-soft);}
.svc__panel--cta .btn-major{background:var(--cream);color:var(--ink);}

/* ============================================================
   RESULTS
   ============================================================ */
.results{padding:16vh 0 10vh;background:var(--cream);}
.results__head{text-align:left;margin-bottom:7vh;}
.results__note{margin-top:20px;max-width:520px;font-size:14px;color:var(--ink-soft);}
.results__filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;}
.chip-btn{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--hairline);border-radius:100px;padding:11px 20px;
  transition:all .35s var(--ease);
}
.chip-btn:hover{border-color:var(--gold);color:var(--gold);}
.chip-btn.is-on{background:var(--ink);color:var(--cream);border-color:var(--ink);}

.results__grid{
  columns:3;column-gap:22px;
}
.ba{
  break-inside:avoid;margin-bottom:22px;position:relative;
  border-radius:20px;overflow:hidden;cursor:pointer;
  opacity:0;transform:translateY(40px);
}
.ba.is-in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);}
.ba.is-hidden{display:none;}
.ba img{width:100%;transition:transform 1s var(--ease);}
.ba:hover img{transform:scale(1.04);}
.ba figcaption{
  position:absolute;left:0;bottom:0;width:100%;
  padding:40px 18px 14px;
  background:linear-gradient(to top,rgba(34,32,29,.72),transparent);
  color:var(--cream);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  opacity:0;transform:translateY(8px);transition:all .45s var(--ease);
}
.ba:hover figcaption{opacity:1;transform:none;}
.results__foot{text-align:center;margin-top:6vh;}

/* ============================================================
   VOICES
   ============================================================ */
.voices{padding:16vh 0;background:var(--blush);}

.voices__stat{
  display:flex;align-items:center;justify-content:center;gap:32px;
  margin:2vh 0 8vh;flex-wrap:wrap;text-align:left;
}
.voices__statnum{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:clamp(4.5rem,9vw,8rem);line-height:.85;color:var(--ink);
}
.voices__stattext{display:flex;flex-direction:column;gap:8px;}
.voices__statstars{color:var(--gold);letter-spacing:6px;font-size:1.4rem;}
.voices__statlbl{
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
  max-width:200px;line-height:1.6;
}
@media (max-width:640px){
  .voices__stat{justify-content:center;text-align:center;flex-direction:column;gap:14px;}
  .voices__statstars{justify-content:center;}
}

.voices__feature{position:relative;max-width:980px;margin:4vh auto 10vh;text-align:center;}
.voices__mark{
  font-family:var(--serif);font-size:9rem;line-height:0;
  color:var(--gold);opacity:.35;display:block;margin-bottom:40px;
}
.voices__quote{
  font-family:var(--serif);font-size:clamp(1.5rem,2.7vw,2.3rem);
  line-height:1.45;font-weight:400;font-style:italic;
}
.voices__quote .w{opacity:.15;transition:opacity .4s linear;}
.voices__quote .w.on{opacity:1;}
.voices__feature cite{
  display:block;margin-top:30px;font-style:normal;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);
}
.voices__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.vcard{
  background:var(--cream);border-radius:20px;padding:38px 32px;
  display:flex;flex-direction:column;gap:18px;
  box-shadow:0 24px 50px -30px rgba(120,80,50,.25);
}
.vcard__stars{color:var(--gold);letter-spacing:4px;font-size:14px;}
.vcard p{font-size:14.5px;color:var(--ink-soft);flex:1;}
.vcard footer{display:flex;flex-direction:column;gap:2px;}
.vcard footer b{font-family:var(--serif);font-size:1.15rem;font-weight:500;}
.vcard footer span{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);}
.voices__cta{display:flex;align-items:center;justify-content:center;gap:34px;margin-top:8vh;flex-wrap:wrap;}
.voices__score{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--ink);}

/* ============================================================
   TEAM
   ============================================================ */
.team{padding:16vh 0;background:var(--cream);}
.team__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:8vh;}
.tcard figure{
  border-radius:220px 220px 4px 4px;overflow:hidden;aspect-ratio:3/3.6;
  background:var(--blush);
}
.tcard figure img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1s var(--ease);}
.tcard:hover figure img{transform:scale(1.05);}
.tcard h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;margin-top:24px;}
.tcard__role{display:block;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:6px 0 12px;}
.tcard p{font-size:14px;color:var(--ink-soft);}

/* ============================================================
   PRESS
   ============================================================ */
.press{border-top:1px solid var(--hairline);background:var(--cream);padding:14vh 0;}
.press__head{text-align:center;margin-bottom:8vh;}
.press__head .eyebrow{justify-content:center;}
.press__logos{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.plogo{
  display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;
  background:#fff;border:1px solid var(--hairline);border-radius:20px;
  padding:44px 30px 30px;
  transition:box-shadow .5s var(--ease),transform .5s var(--ease),border-color .5s;
}
.plogo:hover{box-shadow:0 34px 70px -38px rgba(120,80,50,.4);transform:translateY(-5px);border-color:var(--gold-soft);}
.plogo img{
  height:96px;width:auto;max-width:100%;object-fit:contain;
  filter:grayscale(100%);opacity:.72;transition:filter .5s var(--ease),opacity .5s var(--ease);
}
.plogo:hover img{filter:grayscale(0);opacity:1;}
.plogo span{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);line-height:1.6;max-width:200px;
}
.press__also{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;
  margin-top:7vh;padding-top:5vh;border-top:1px solid var(--hairline);
}
.press__also span{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);}
.press__also em{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--ink);}
.press__also i{color:var(--gold-soft);font-style:normal;}

/* ============================================================
   VISIT
   ============================================================ */
.visit{padding:16vh 0;background:var(--ink);color:var(--cream);}
.visit .eyebrow{color:var(--gold-soft);}
.visit .eyebrow::before{background:var(--gold-soft);}
.visit .display-xl em{color:var(--gold-soft);}
.visit__grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;}
.visit__info>p{margin-top:24px;color:rgba(250,247,243,.7);max-width:400px;}
.visit__meta{list-style:none;margin-top:6vh;display:flex;flex-direction:column;}
.visit__meta li{
  display:grid;grid-template-columns:90px 1fr;gap:20px;
  padding:22px 0;border-top:1px solid rgba(250,247,243,.14);
  font-size:15px;color:rgba(250,247,243,.85);
}
.visit__meta li span{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft);padding-top:4px;}
.visit__meta a:hover{color:var(--gold-soft);}
.visit__fin{margin-top:5vh;}
.visit__fin .script-sm{color:var(--gold-soft);font-size:1.3rem;}

.visit__form{
  background:var(--cream);color:var(--ink);border-radius:20px;
  padding:clamp(28px,3.4vw,52px);
  display:flex;flex-direction:column;gap:20px;
  box-shadow:0 60px 120px -40px rgba(0,0,0,.5);
}
.ff{position:relative;}
.ff input,.ff select,.ff textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--hairline);
  padding:22px 2px 10px;font-family:var(--sans);font-size:15px;color:var(--ink);
  outline:none;transition:border-color .35s;border-radius:0;appearance:none;
}
.ff textarea{resize:vertical;}
.ff label{
  position:absolute;left:2px;top:20px;font-size:14px;color:var(--ink-soft);
  pointer-events:none;transition:all .3s var(--ease);
}
.ff input:focus,.ff select:focus,.ff textarea:focus{border-color:var(--gold);}
.ff input:focus~label,.ff input:not(:placeholder-shown)~label,
.ff textarea:focus~label,.ff textarea:not(:placeholder-shown)~label,
.ff select:focus~label,.ff select:valid~label{
  top:0;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);
}
.form-ok{display:none;text-align:center;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--gold);}
.form-ok.is-on{display:block;}

/* ============================================================
   LOCATION — full-width photo band between contact & footer
   ============================================================ */
.loc{
  position:relative;width:100%;
  height:clamp(380px,58vh,560px);
  overflow:hidden;background:var(--ink);
}
.loc__media{position:absolute;inset:0;}
.loc__media img{
  width:100%;height:118%;object-fit:cover;object-position:center 38%;
}
.loc__overlay{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:flex-end;
  background:linear-gradient(to right,rgba(34,32,29,.78) 0%,rgba(34,32,29,.35) 45%,rgba(34,32,29,.05) 75%),
             linear-gradient(to top,rgba(34,32,29,.55),transparent 45%);
}
.loc__caption{
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  padding-bottom:52px;
}
.loc__caption .script-md{color:var(--gold-soft);}
.loc__addr{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.4rem,2.4vw,2.1rem);line-height:1.25;
  color:var(--cream);
}
.loc__caption .btn-major{background:var(--cream);color:var(--ink);margin-top:8px;}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{background:var(--ink);color:rgba(250,247,243,.6);border-top:1px solid rgba(250,247,243,.1);padding:8vh 0 5vh;}
.ftr__top{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:7vh;}
.ftr__logo{height:60px;width:auto;filter:brightness(0) invert(1);opacity:.9;}
.ftr__script{font-family:var(--script);font-size:1.7rem;color:var(--gold-soft);}
.ftr__grid{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:12px;letter-spacing:.08em;
  border-top:1px solid rgba(250,247,243,.1);padding-top:26px;
}
.ftr__grid a:hover{color:var(--gold-soft);}
.ftr__demo{font-style:italic;opacity:.6;}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lbox{
  position:fixed;inset:0;z-index:960;background:rgba(34,32,29,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .5s var(--ease);
}
.lbox.is-open{opacity:1;pointer-events:auto;}
.lbox__stage{max-width:min(1100px,88vw);max-height:84vh;text-align:center;}
.lbox__stage img{max-height:76vh;width:auto;max-width:100%;margin:0 auto;border-radius:20px;}
.lbox__stage figcaption{margin-top:16px;color:var(--cream);font-size:11px;letter-spacing:.3em;text-transform:uppercase;}
.lbox__close{position:absolute;top:26px;right:32px;color:var(--cream);font-size:22px;padding:10px;}
.lbox__nav{
  position:absolute;top:50%;transform:translateY(-50%);
  color:var(--cream);font-size:26px;padding:20px;transition:color .3s;
}
.lbox__nav:hover{color:var(--gold-soft);}
.lbox__nav--prev{left:2vw;}
.lbox__nav--next{right:2vw;}

/* ============================================================
   REVEAL DEFAULTS (JS adds .is-in)
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(46px);}
[data-reveal].is-in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease);}
html.no-motion [data-reveal],html.no-motion .ba{opacity:1;transform:none;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .hdr__nav{display:none;}
  .burger{display:flex;}
  .hdr__tel{display:none;}
  .numbers__grid{grid-template-columns:repeat(2,1fr);}
  .num{border-left:0;border-top:1px solid var(--hairline);}
  .injector__grid{grid-template-columns:1fr;gap:8vh;}
  .injector__floatcard{right:8px;}
  .voices__grid,.team__grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto;}
  .team__grid{margin-top:6vh;}
  .press__logos{grid-template-columns:repeat(2,1fr);}
  .visit__grid{grid-template-columns:1fr;gap:8vh;}
  .results__grid{columns:2;}
}
@media (max-width:760px){
  .hero__stage{grid-template-columns:1fr;padding-top:140px;gap:7vh;}
  .hero__portrait{justify-self:center;width:min(72vw,340px);}
  .hero__scrollhint{display:none;}
  .btn-pill{display:none;}
  .results__grid{columns:1;}
  .press__logos{grid-template-columns:1fr 1fr;gap:16px;}
  .plogo{padding:32px 16px 22px;}
  .plogo img{height:72px;}
  .press__also{flex-direction:column;gap:10px;}
  .svc__panel{width:82vw;}
  .marquee__track{gap:30px;}
}
