:root{
  --warm-ivory:#F6F2EF;
  --soft-cream:#EFE6E0;
  --pale-beige:#E8D8CF;
  --sand:#D7C2A5;
  --muted-nude:#C9AA98;
  --dusty-taupe:#BFA196;
  --warm-grey:#9E817A;
  --dark-chocolate:#3B2F2A;
  --soft-charcoal:#2B2B2B;
  --champagne:#C8B89A;
  --glow-accent:#C15C3F;

  --bg: var(--warm-ivory);
  --bg-alt: var(--soft-cream);
  --ink: var(--dark-chocolate);
  --ink-soft: var(--soft-charcoal);
  --muted: var(--warm-grey);
  --line: var(--pale-beige);

  --serif: 'Cormorant Garamond', serif;
  --sans: 'Jost', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{overflow-x:clip;}
html.lenis{height:auto;}
html.lenis, .lenis body{overscroll-behavior:none;}
body{
  background:var(--bg);
  color:var(--ink-soft);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ---------- CUSTOM CURSOR ---------- */
/* cursor:none is only applied by JS (adds .has-custom-cursor to html) once the
   cursor script actually initializes, so a JS failure never leaves visitors without a cursor */
@media (pointer:fine){
  html.has-custom-cursor body{cursor:none;}
  html.has-custom-cursor a,
  html.has-custom-cursor button,
  html.has-custom-cursor summary,
  html.has-custom-cursor .faq-q{cursor:none;}
}
.cursor-dot{
  position:fixed;
  top:0;left:0;
  width:10px;height:10px;
  margin:-5px 0 0 -5px;
  border-radius:50%;
  background:var(--dark-chocolate);
  pointer-events:none;
  z-index:999;
  opacity:0;
  transition:opacity .3s ease, width .3s ease, height .3s ease, margin .3s ease, background .3s ease;
  will-change:transform;
}
.cursor-dot.is-visible{opacity:1;}
.cursor-dot.is-hover{
  width:52px;height:52px;
  margin:-26px 0 0 -26px;
  background:rgba(59,47,42,.08);
  border:1px solid var(--dusty-taupe);
}
.cursor-dot.is-dark{background:var(--warm-ivory);}
@media (pointer:coarse){.cursor-dot{display:none;}}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 40px;
}
section{position:relative;}
.eyebrow{
  font-family:var(--sans);
  font-size:12.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:16px;height:1px;
  background:var(--dusty-taupe);
  display:inline-block;
}
h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:500;
  letter-spacing:-0.01em;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 28px;
  border-radius:999px;
  font-family:var(--sans);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-solid{
  background:var(--dark-chocolate);
  color:var(--warm-ivory);
}
.btn-solid:hover{
  background:var(--soft-charcoal);
  transform:translateY(-1px);
}
.btn-outline{
  background:transparent;
  border-color:var(--ink);
  color:var(--ink);
}
.btn-outline:hover{
  background:var(--ink);
  color:var(--warm-ivory);
}
.btn-ghost-light{
  background:transparent;
  border-color:rgba(246,242,239,.5);
  color:var(--warm-ivory);
}
.btn-ghost-light:hover{
  background:var(--warm-ivory);
  color:var(--dark-chocolate);
}
.btn:disabled{opacity:.6;cursor:not-allowed;}

/* ---------- HEADER ---------- */
header{
  position:sticky;
  top:0;
  z-index:100;
  padding:20px 24px;
}
.nav-inner{
  max-width:1240px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(246,242,239,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(191,161,150,.25);
  transition:box-shadow .3s ease, background .3s ease;
}
header.scrolled .nav-inner{
  background:rgba(246,242,239,.94);
  box-shadow:0 10px 30px rgba(59,47,42,.08);
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand img{height:26px;width:auto;}
.brand span{
  font-family:var(--serif);
  font-size:19px;
  letter-spacing:.14em;
  color:var(--ink);
  font-weight:500;
}
nav.links{
  display:flex;
  gap:34px;
}
nav.links a{
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-soft);
  font-weight:500;
  position:relative;
  padding:4px 0;
}
nav.links a:hover{color:var(--ink);}
.nav-actions{display:flex;align-items:center;gap:12px;}
.nav-actions .btn{padding:11px 22px;font-size:12px;}

/* ---------- HERO ---------- */
.hero{
  background:var(--warm-ivory);
  border-radius:0 0 44px 44px;
  min-height:min(820px,calc(100svh - 20px));
  padding:70px 0 90px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(191,161,150,.22);
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(246,242,239,.04),rgba(246,242,239,.2));
  pointer-events:none;
}
.pixel-canvas{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  display:block;
  pointer-events:none;
  opacity:.94;
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:1000px;
  margin:0 auto;
  padding:90px 40px 0;
}
.badges{
  text-align:center;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--warm-grey);
  margin-bottom:38px;
}
.badges b{color:var(--ink);font-weight:600;}
.badges .dot{color:#FE9750;margin:0 10px;}
.hero-title-wrap{position:relative;}
.hero h1{
  text-align:center;
  font-size:clamp(40px, 6.6vw, 88px);
  line-height:1.04;
  max-width:920px;
  margin:0 auto;
  font-weight:500;
  color:var(--ink);
  text-wrap:balance;
}
.hero-title-tint{
  position:absolute;
  inset:0;
  color:#F47F8D!important;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
  -webkit-mask-image:radial-gradient(circle 135px at var(--mx,50%) var(--my,50%), #000 0%, #000 38%, transparent 76%);
  mask-image:radial-gradient(circle 135px at var(--mx,50%) var(--my,50%), #000 0%, #000 38%, transparent 76%);
}
.hero-title-tint.is-active{opacity:1;}
.hero-sub{
  max-width:560px;
  margin:28px auto 0;
  text-align:center;
  font-size:17px;
  color:var(--warm-grey);
}
.hero-ctas{
  display:flex;
  justify-content:center;
  gap:14px;
  margin:40px 0 0;
}
.hero .btn-outline{border-color:var(--ink);color:var(--ink);background:rgba(246,242,239,.5);}
.hero .btn-outline:hover{background:var(--ink);color:var(--warm-ivory);}
.hero .btn-solid{background:#FE9750;color:#17110d;}
.hero .btn-solid:hover{background:#FFBE98;}

/* ---------- TICKER ---------- */
.ticker-wrap{
  padding:34px 0;
  border-bottom:1px solid var(--line);
  overflow:hidden;
  background:var(--bg);
}
.ticker{
  display:flex;
  width:max-content;
  animation:scroll 32s linear infinite;
}
.ticker-wrap:hover .ticker{animation-play-state:paused;}
.ticker span{
  font-family:var(--serif);
  font-style:italic;
  font-size:22px;
  color:var(--dusty-taupe);
  padding:0 28px;
  white-space:nowrap;
}
.ticker span i{
  font-style:normal;
  color:var(--sand);
  margin-right:28px;
}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- FEATURES (heading pinned, cards stack on top of it) ----------
   Default markup (no JS / no GSAP) is a plain readable column: heading, then
   4 cards stacked in flow. JS only switches on the pinned "cards over the
   fixed heading" behaviour once GSAP + ScrollTrigger confirm they initialised,
   by adding .js-pin-ready to .features-viewport. */
.features{
  position:relative;
  padding:110px 0 120px;
}
.features-viewport{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.features-viewport > .wrap{width:100%;}
/* Default: plain block flow (heading, then cards, in reading order) — this is
   what mobile *and* any no-JS/no-GSAP visitor gets. The grid-based overlap
   (cards floating on top of a pinned heading) only turns on once JS confirms
   the pin animation actually initialised, scoped under .js-pin-ready below. */
.features-layout{
  display:block;
}
.features-heading{
  text-align:center;
  max-width:640px;
  padding:0 20px;
  margin:0 auto 60px;
}
.features-heading .eyebrow{justify-content:center;margin-bottom:22px;}
.features-heading h2{
  font-size:clamp(30px,4.4vw,52px);
  line-height:1.16;
}
.features-heading p{
  max-width:520px;
  margin:22px auto 0;
  color:var(--warm-grey);
  font-size:17px;
}
.feature-stack{
  position:relative;
  width:100%;
  max-width:600px;
  margin:0 auto;
}
/* Pinned (desktop) state: heading and card stack are two separate zones —
   the heading is revealed first and stays fully visible the whole time; the
   cards animate in their own space below it, never overlapping it. */
.features-viewport.js-pin-ready .features-layout{
  display:grid;
  place-items:center;
  min-height:620px;
}
.js-pin-ready .features-heading{
  grid-area:1/1;
  margin:0;
  position:relative;
  z-index:1;
  will-change:transform,opacity;
}
.feature-card{
  position:relative;
  background:#fffaf7;
  border:1px solid rgba(191,161,150,.38);
  border-radius:26px;
  padding:38px 40px;
  display:flex;
  flex-direction:column;
  margin-bottom:20px;
  box-shadow:0 20px 50px -30px rgba(59,47,42,.25);
}
.feature-card:last-child{margin-bottom:0;}
.feature-card-icon{
  width:56px;height:56px;
  margin-bottom:18px;
}
.feature-card-icon svg{width:100%;height:100%;display:block;}
.feature-card .num{
  font-family:var(--serif);
  font-size:15px;
  color:var(--champagne);
  font-weight:600;
  letter-spacing:.08em;
}
.feature-card h3{
  font-size:26px;
  margin:8px 0 10px;
  font-weight:500;
}
.feature-card p{
  font-size:15px;
  color:var(--warm-grey);
  line-height:1.6;
}
.features-viewport.js-pin-ready{
  min-height:100vh;
  padding:80px 0;
}
.js-pin-ready .feature-stack{
  grid-area:1/1;
  height:340px;
  perspective:1400px;
  position:relative;
  top:-42px;
  z-index:2;
}
.js-pin-ready .feature-card{
  position:absolute;
  inset:auto 0 0 0;
  margin-bottom:0;
  box-shadow:0 34px 80px -28px rgba(59,47,42,.3);
  will-change:transform,opacity;
  transform-style:preserve-3d;
}
.feature-progress{
  display:none;
  gap:10px;
  justify-content:center;
  margin-top:32px;
}
.features-viewport.js-pin-ready .feature-progress{
  display:flex;
  grid-area:1/1;
  align-self:center;
  position:relative;
  top:210px;
  z-index:3;
}
.feature-progress span{
  width:7px;height:7px;
  border-radius:50%;
  background:var(--line);
  transition:background .3s ease, transform .3s ease;
}
.feature-progress span.active{
  background:var(--dark-chocolate);
  transform:scale(1.35);
}

/* ---------- SPOTLIGHT ---------- */
.spotlight{
  padding:0 0 120px;
}
.spotlight-frame{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  aspect-ratio:16/8;
}
.spotlight-frame img{
  position:absolute;top:0;left:0;
  width:100%;height:118%;object-fit:cover;
  will-change:transform;
}
.spotlight-frame::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(35,27,23,.72) 0%, rgba(35,27,23,.15) 45%, rgba(35,27,23,0) 70%);
}
.spotlight-copy{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:48px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.spotlight-copy h3{
  color:var(--warm-ivory);
  font-size:clamp(26px,3.6vw,42px);
  max-width:520px;
  font-weight:500;
}
.spotlight-copy p{
  color:var(--pale-beige);
  font-size:15px;
  margin-top:10px;
  max-width:440px;
}

/* ---------- PROJECTS ---------- */
.projects{
  padding:0 0 40px;
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:52px;
  flex-wrap:wrap;
}
.section-head h2{
  font-size:clamp(30px,4vw,48px);
  margin-top:16px;
  max-width:480px;
}
.section-head p{
  color:var(--warm-grey);
  max-width:360px;
  font-size:15.5px;
}
.project-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-bottom:120px;
}
.project-card{
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease;
  display:block;
}
.project-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 50px -24px rgba(59,47,42,.25);
}
.project-card .thumb{
  aspect-ratio:4/3;
  overflow:hidden;
  position:relative;
}
.project-card .thumb img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s ease;
}
.project-card:hover .thumb img{transform:scale(1.06);}
.project-card .thumb .chip{
  position:absolute;
  top:14px;left:14px;
  background:rgba(246,242,239,.88);
  color:var(--ink);
  font-size:10.5px;
  letter-spacing:.09em;
  text-transform:uppercase;
  padding:7px 12px;
  border-radius:999px;
  font-weight:500;
}
.project-card .thumb .code{
  position:absolute;
  top:14px;right:14px;
  background:rgba(59,47,42,.82);
  color:var(--warm-ivory);
  font-family:'Supply Mono','Jost',monospace;
  font-size:10.5px;
  letter-spacing:.08em;
  padding:7px 11px;
  border-radius:999px;
  font-weight:500;
}
.project-card .info{padding:22px 22px 26px;}
.project-card h3{
  font-size:23px;
  font-weight:500;
  margin-bottom:8px;
}
.project-card .tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.project-card .tags span{
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--warm-grey);
  border:1px solid var(--line);
  padding:6px 11px;
  border-radius:999px;
}
.project-card p.desc{
  font-size:14px;
  color:var(--warm-grey);
}

/* ---------- SCROLL TILTED GRID ---------- */
.tilted-projects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(28px,5vw,78px);
  row-gap:clamp(70px,12vh,150px);
  padding:12vh 0 18vh;
  margin-bottom:40px;
  perspective:1000px;
}
.tilted-project{
  min-width:0;
  display:block;
  transform-style:preserve-3d;
  transform-origin:50% 50%;
  will-change:transform,filter,opacity;
}
.tilted-project:nth-child(even){position:relative;top:12vh;}
.tilted-media{
  aspect-ratio:16/10;
  overflow:hidden;
  background:#171717;
  border:1px solid rgba(59,47,42,.12);
}
.tilted-media picture,
.tilted-media img{width:100%;height:100%;display:block;}
.tilted-media img{
  object-fit:cover;
  transform:scale(1.055);
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.tilted-project:hover .tilted-media img{transform:scale(1.015);}
.tilted-info{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:5px 22px;
  padding-top:16px;
  border-top:1px solid transparent;
}
.tilted-info span{
  grid-column:1;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--warm-grey);
}
.tilted-info h3{
  grid-column:1;
  font-size:clamp(24px,2.7vw,38px);
  line-height:1.05;
  font-weight:500;
}
.tilted-info i{
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  font-family:var(--sans);
  font-style:normal;
  font-size:11px;
  letter-spacing:.12em;
  color:#FE9750;
}
.tilted-project:focus-visible{outline:2px solid #FE9750;outline-offset:8px;}
.project-grid-legacy[hidden]{display:none!important;}

.mini-cta{
  background:var(--pale-beige);
  border-radius:24px;
  padding:44px 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:120px;
}
.mini-cta h3{font-size:27px;font-weight:500;max-width:420px;}

/* ---------- SERVICES ---------- */
.services{padding:0 0 120px;}
.service-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.service-card{
  border:1px solid var(--line);
  border-radius:24px;
  padding:44px;
  background:var(--bg);
  display:flex;
  flex-direction:column;
}
.service-card.highlight{
  background:var(--dark-chocolate);
  border-color:var(--dark-chocolate);
}
.service-card.highlight *{color:var(--warm-ivory);}
.service-card.highlight .service-list li{color:var(--pale-beige);}
.service-card .kicker{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--warm-grey);
  font-weight:500;
}
.service-card.highlight .kicker{color:var(--champagne);}
.service-card h3{
  font-size:32px;
  margin:14px 0 10px;
  font-weight:500;
}
.service-card > p{
  color:var(--warm-grey);
  font-size:15px;
  margin-bottom:26px;
}
.service-list{margin:0 0 32px;flex-grow:1;}
.service-list li{
  padding:12px 0;
  border-top:1px solid var(--line);
  font-size:14.5px;
  color:var(--ink-soft);
  display:flex;
  gap:10px;
}
.service-card.highlight .service-list li{border-top-color:rgba(246,242,239,.15);}
.service-list li:last-child{border-bottom:1px solid var(--line);}
.service-card.highlight .service-list li:last-child{border-bottom-color:rgba(246,242,239,.15);}
.service-list li::before{content:"—";color:var(--dusty-taupe);flex-shrink:0;}

/* ---------- REVIEWS ---------- */
.reviews{padding:0 0 120px;}
.reviews-head{
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:40px;
}
.reviews-head .google-g{width:40px;height:40px;flex-shrink:0;}
.reviews-head h2{margin-top:6px;font-size:clamp(28px,3.6vw,40px);}
/* hides the Elfsight mount point until it actually has content, so an
   unconfigured widget never leaves a broken-looking empty box */
#reviewsWidget:empty{display:none;}
.reviews-card{
  border:1px solid var(--line);
  border-radius:28px;
  padding:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
  background:var(--bg-alt);
}
.reviews-card .google-g{
  width:46px;height:46px;flex-shrink:0;
}
.reviews-copy{display:flex;gap:22px;align-items:flex-start;flex:1;min-width:260px;}
.reviews-copy h3{font-size:27px;font-weight:500;margin-bottom:8px;}
.reviews-copy p{color:var(--warm-grey);font-size:15px;max-width:440px;}

/* ---------- FAQ ---------- */
.faq{padding:0 0 120px;}
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-q{
  all:unset;
  box-sizing:border-box;
  width:100%;
  cursor:pointer;
  padding:26px 4px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-family:var(--serif);
  font-size:21px;
  color:var(--ink);
  font-weight:500;
  transition:color .3s ease;
}
.faq-q:hover{color:var(--warm-grey);}
.faq-q .icon{
  flex-shrink:0;
  width:28px;height:28px;
  border-radius:50%;
  border:1px solid var(--dusty-taupe);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  transition:background .35s ease, border-color .35s ease;
}
.faq-q .icon::before,
.faq-q .icon::after{
  content:"";
  position:absolute;
  background:var(--dusty-taupe);
  transition:transform .35s ease, background .35s ease;
}
.faq-q .icon::before{width:10px;height:1px;}
.faq-q .icon::after{width:1px;height:10px;}
.faq-item.active .faq-q .icon{background:var(--dark-chocolate);border-color:var(--dark-chocolate);}
.faq-item.active .faq-q .icon::before,
.faq-item.active .faq-q .icon::after{background:var(--warm-ivory);}
.faq-item.active .faq-q .icon::after{transform:rotate(90deg);opacity:0;}
.faq-a-wrap{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .45s cubic-bezier(.65,0,.35,1);
}
.faq-item.active .faq-a-wrap{grid-template-rows:1fr;}
.faq-a-inner{overflow:hidden;}
.faq-item .a{
  padding:0 4px 28px;
  max-width:680px;
  color:var(--warm-grey);
  font-size:15px;
}

/* ---------- CONTACT + FOOTER ---------- */
.contact-section{
  background:var(--dark-chocolate);
  border-radius:44px 44px 0 0;
  padding:100px 0 60px;
  color:var(--warm-ivory);
  position:relative;
  overflow:hidden;
}
.contact-section::before{
  content:"";
  position:absolute;inset:0;
  background-image:radial-gradient(var(--warm-grey) 1px, transparent 1px);
  background-size:16px 16px;
  opacity:.14;
  mask-image:radial-gradient(ellipse 60% 60% at 50% 0%, black 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 0%, black 30%, transparent 80%);
}
.contact-inner{
  position:relative;z-index:1;
  padding-bottom:90px;
  border-bottom:1px solid rgba(246,242,239,.14);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.contact-copy h2{
  color:var(--warm-ivory);
  font-size:clamp(32px,4.6vw,54px);
  font-weight:500;
  line-height:1.12;
}
.contact-copy p{
  color:var(--pale-beige);
  margin:20px 0 28px;
  max-width:420px;
}
.contact-email{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--serif);
  font-size:22px;
  color:var(--warm-ivory);
  border-bottom:1px solid rgba(246,242,239,.4);
  padding-bottom:4px;
}
.contact-email:hover{border-color:var(--warm-ivory);}

.contact-form{display:flex;flex-direction:column;gap:16px;}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-form label{
  display:block;
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--champagne);
  margin-bottom:8px;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  background:rgba(246,242,239,.07);
  border:1px solid rgba(246,242,239,.22);
  border-radius:12px;
  padding:13px 16px;
  color:var(--warm-ivory);
  font-family:var(--sans);
  font-size:14.5px;
  transition:border-color .25s ease, background .25s ease;
}
.contact-form select option{color:var(--ink);}
.contact-form input::placeholder,
.contact-form textarea::placeholder{color:rgba(246,242,239,.4);}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--champagne);
  background:rgba(246,242,239,.12);
}
.contact-form textarea{resize:vertical;min-height:110px;}
.contact-form .honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
.contact-form button{margin-top:6px;align-self:flex-start;}
.form-status{
  font-size:13.5px;
  color:var(--pale-beige);
  min-height:18px;
}
.form-status.is-success{color:#B9D6B0;}
.form-status.is-error{color:#E7A9A0;}

.footer-bottom{
  position:relative;z-index:1;
  padding-top:50px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:40px;
}
.footer-brand{display:flex;align-items:center;gap:12px;}
.footer-brand img{height:30px;}
.footer-brand span{
  font-family:var(--serif);
  font-size:20px;
  letter-spacing:.14em;
  color:var(--warm-ivory);
}
.footer-tag{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--warm-grey);
  margin-top:10px;
}
.footer-cols{
  display:flex;
  gap:70px;
  flex-wrap:wrap;
}
.footer-col h4{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--warm-grey);
  font-weight:500;
  margin-bottom:16px;
}
.footer-col a, .footer-col p{
  display:block;
  color:var(--pale-beige);
  font-size:14.5px;
  margin-bottom:10px;
}
.footer-col a:hover{color:var(--warm-ivory);}
.footer-legal{
  position:relative;z-index:1;
  margin-top:60px;
  padding-top:26px;
  border-top:1px solid rgba(246,242,239,.14);
  display:flex;
  justify-content:space-between;
  font-size:12.5px;
  color:var(--warm-grey);
  flex-wrap:wrap;
  gap:10px;
}

/* ---------- PROJECT DETAIL PAGE ---------- */
.project-hero{
  padding:150px 0 60px;
}
.project-hero .back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--warm-grey);
  margin-bottom:28px;
}
.project-hero .back-link:hover{color:var(--ink);}
.project-hero-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.project-hero h1{
  font-size:clamp(34px,5.2vw,60px);
  max-width:760px;
}
.project-meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.project-meta span{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid var(--line);
  padding:7px 13px;
  border-radius:999px;
  color:var(--warm-grey);
}
.project-meta span.code{
  font-family:'Supply Mono','Jost',monospace;
  color:var(--ink);
  border-color:var(--dusty-taupe);
}
.project-hero p.desc{
  color:var(--warm-grey);
  font-size:17px;
  max-width:640px;
  margin-top:18px;
}
.project-cover{
  border-radius:28px;
  overflow:hidden;
  margin:44px 0 0;
  aspect-ratio:16/9;
}
.project-cover img{width:100%;height:100%;object-fit:cover;}
.project-gallery{
  padding:60px 0 120px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.project-gallery figure{
  border-radius:22px;
  overflow:hidden;
}
.project-gallery figure.wide{grid-column:1/-1;}
.project-gallery img{width:100%;display:block;}
.project-next{
  padding:0 0 120px;
  text-align:center;
}
.project-next a{
  font-family:var(--serif);
  font-size:26px;
  color:var(--ink);
  border-bottom:1px solid var(--dusty-taupe);
  padding-bottom:4px;
}

@media (max-width:980px){
  .project-grid{grid-template-columns:1fr 1fr;}
  .service-grid{grid-template-columns:1fr;}
  .contact-inner{grid-template-columns:1fr;}
  nav.links{display:none;}
}
@media (max-width:640px){
  .wrap{padding:0 22px;}
  .hero-inner{padding:42px 22px 0;}
  .project-grid{grid-template-columns:1fr;}
  .hero{min-height:720px;padding:20px 0 48px;border-radius:0 0 28px 28px;}
  .badges{font-size:9px;letter-spacing:.1em;line-height:1.75;}
  .badges .dot{margin:0 4px;}
  .hero-ctas{flex-direction:column;align-items:center;}
  .hero-ctas .btn{min-width:230px;}
  .tilted-projects{grid-template-columns:1fr;row-gap:64px;padding:8vh 0 10vh;}
  .tilted-project:nth-child(even){top:0;}
  .tilted-media{aspect-ratio:4/5;}
  .tilted-info h3{font-size:30px;}
  .nav-actions .btn-outline{display:none;}
  .section-head{align-items:flex-start;}
  .mini-cta{flex-direction:column;align-items:flex-start;}
  .footer-bottom{flex-direction:column;}
  .footer-cols{gap:40px;}
  .contact-form .form-row{grid-template-columns:1fr;}
  .reviews-card{flex-direction:column;align-items:flex-start;text-align:left;}
  .project-gallery{grid-template-columns:1fr;}
  .project-gallery figure.wide{grid-column:auto;}
}

/* ==================== STUDIO + PROCESS V0.6 ==================== */
.editorial-page{background:var(--warm-ivory);}
.editorial-hero{min-height:100svh;padding-top:180px;padding-bottom:90px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;}
.editorial-hero h1{font-size:clamp(67px,9.5vw,137px);line-height:.86;letter-spacing:-.045em;max-width:1250px;margin:42px 0;position:relative;z-index:1;}
.editorial-hero>p:last-of-type{font:500 clamp(21px,2.3vw,32px)/1.3 var(--serif);max-width:720px;position:relative;z-index:1;}
.studio-word{position:absolute;right:-2vw;bottom:-8vw;font:500 clamp(190px,32vw,480px)/.72 var(--serif);letter-spacing:-.08em;color:rgba(191,161,150,.1);pointer-events:none;}
.editorial-section{padding-top:140px;padding-bottom:140px;}
.editorial-section h2{font-size:clamp(46px,6vw,82px);line-height:1;letter-spacing:-.025em;}
.studio-collage{height:900px;position:relative;margin-top:30px;margin-bottom:70px;}
.studio-collage figure{position:absolute;border-radius:26px;overflow:hidden;background:var(--soft-cream);}
.studio-collage figure:nth-child(1){inset:0 29% 12% 0;transform:rotate(-1.2deg);}
.studio-collage figure:nth-child(2){width:35%;height:57%;right:0;top:7%;transform:rotate(2deg);}
.studio-collage figure:nth-child(3){width:28%;height:39%;right:15%;bottom:0;transform:rotate(-2.4deg);box-shadow:0 25px 70px rgba(59,47,42,.17);}
.studio-collage img{width:100%;height:100%;object-fit:cover;display:block;}
.studio-intro{display:grid;grid-template-columns:.42fr 1.58fr;gap:8vw;align-items:start;}
.studio-intro>div{max-width:900px;}
.studio-intro h2{margin-bottom:45px;}
.studio-intro>div p{font-size:17px;line-height:1.75;color:var(--warm-grey);max-width:760px;margin-top:20px;}
.studio-anticipate{background:var(--dark-chocolate);color:var(--warm-ivory);border-radius:44px;}
.studio-anticipate>.wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:center;}
.studio-anticipate .eyebrow{color:var(--champagne);}
.studio-anticipate h2{color:var(--warm-ivory);margin:32px 0;}
.studio-anticipate p:not(.eyebrow){color:var(--pale-beige);font-size:16px;line-height:1.72;margin-top:18px;}
.studio-anticipate figure{height:720px;border-radius:25px;overflow:hidden;}
.studio-anticipate img{width:100%;height:100%;object-fit:cover;display:block;}
.studio-values{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;}
.studio-values-head{position:sticky;top:145px;align-self:start;}
.studio-values-head h2{margin-top:28px;}
.studio-values-list{border-top:1px solid var(--line);}
.studio-values-list article{display:grid;grid-template-columns:55px .8fr 1.2fr;gap:28px;padding:31px 0;border-bottom:1px solid var(--line);align-items:start;}
.studio-values-list span{font-size:10px;letter-spacing:.12em;color:#FE9750;}
.studio-values-list h3{font-size:27px;}
.studio-values-list p{font-size:14px;line-height:1.65;color:var(--warm-grey);}
.studio-identity{text-align:center;background:var(--soft-cream);}
.studio-identity h2{max-width:1000px;margin:28px auto;}
.studio-identity>div>p:not(.eyebrow){max-width:700px;margin:0 auto 38px;color:var(--warm-grey);font-size:17px;line-height:1.7;}
.studio-identity>div>div{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}

.process-hero-index{display:flex;gap:12px;margin-top:70px;}
.process-hero-index span{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-size:10px;color:#FE9750;}
.process-intro{display:grid;grid-template-columns:.42fr 1.58fr;gap:8vw;}
.process-intro>div{max-width:900px;}
.process-intro h2{margin-bottom:42px;}
.process-intro p:not(.eyebrow){font-size:17px;line-height:1.75;color:var(--warm-grey);max-width:760px;margin-top:20px;}
.process-timeline{background:var(--soft-cream);}
.process-timeline>.wrap{display:grid;grid-template-columns:.78fr 1.22fr;gap:8vw;}
.process-timeline-head{position:sticky;top:145px;align-self:start;}
.process-timeline-head h2{margin:28px 0;}
.process-timeline-head>p:last-child{color:var(--warm-grey);max-width:480px;line-height:1.65;}
.process-timeline ol{list-style:none;border-top:1px solid var(--line);}
.process-timeline li{display:grid;grid-template-columns:65px 1fr;gap:20px;padding:34px 0;border-bottom:1px solid var(--line);}
.process-timeline li>span{font-size:10px;letter-spacing:.13em;color:#FE9750;}
.process-timeline h3{font-size:31px;margin-bottom:12px;}
.process-timeline li p{color:var(--warm-grey);font-size:15px;line-height:1.65;max-width:650px;}
.process-paths>h2{margin:28px 0 70px;}
.process-paths>div{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.process-paths article{min-height:520px;padding:45px;border:1px solid var(--line);border-radius:27px;display:flex;flex-direction:column;background:#fffaf7;}
.process-paths article>span{font-size:10px;letter-spacing:.13em;color:#FE9750;}
.process-paths h3{font-size:40px;line-height:1.05;margin:55px 0 25px;}
.process-paths article>p{color:var(--warm-grey);font-size:15px;line-height:1.7;}
.process-paths article>a,.process-paths article>div{margin-top:auto;padding-top:35px;}
.process-paths article>div{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;}
.process-info{background:linear-gradient(135deg,#FE9750,#F7A08C 55%,#F3E4DA);text-align:center;border-radius:44px;}
.process-info h2{max-width:950px;margin:30px auto;}
.process-info>div>p:not(.eyebrow){max-width:720px;margin:0 auto 38px;font-size:17px;line-height:1.7;color:var(--dark-chocolate);}

@media(max-width:980px){
  .studio-intro,.studio-anticipate>.wrap,.studio-values,.process-intro,.process-timeline>.wrap{grid-template-columns:1fr;}
  .studio-values-head,.process-timeline-head{position:static;}
  .studio-collage{height:740px;}
}
@media(max-width:640px){
  .editorial-hero{min-height:auto;padding-top:145px;padding-bottom:90px;}
  .editorial-hero h1{font-size:59px;line-height:.9;margin:35px 0;}
  .editorial-hero>p:last-of-type{font-size:21px;}
  .studio-word{bottom:0;}
  .editorial-section{padding-top:90px;padding-bottom:90px;}
  .editorial-section h2{font-size:46px;}
  .studio-collage{height:620px;margin-bottom:30px;}
  .studio-collage figure:nth-child(1){inset:0 12% 31% 0;}
  .studio-collage figure:nth-child(2){width:43%;height:43%;top:auto;bottom:0;}
  .studio-collage figure:nth-child(3){width:38%;height:30%;right:28%;bottom:8%;}
  .studio-anticipate{border-radius:28px;}
  .studio-anticipate figure{height:500px;}
  .studio-values-list article{grid-template-columns:38px 1fr;}
  .studio-values-list p{grid-column:2;}
  .process-hero-index{margin-top:45px;}
  .process-hero-index span{width:39px;height:39px;}
  .process-timeline>.wrap{gap:55px;}
  .process-timeline li{grid-template-columns:44px 1fr;}
  .process-paths>div{grid-template-columns:1fr;}
  .process-paths article{min-height:470px;padding:32px 27px;}
  .process-paths h3{font-size:34px;margin-top:40px;}
  .process-info{border-radius:28px;}
}

/* ==================== SERVICES V0.5 ==================== */
.service-page,.services-index{background:var(--warm-ivory);}
.service-hero{min-height:100svh;padding-top:160px;padding-bottom:100px;display:flex;flex-direction:column;justify-content:space-between;}
.service-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center;margin-top:70px;}
.service-hero h1{font-size:clamp(58px,7.4vw,106px);line-height:.92;letter-spacing:-.035em;max-width:920px;}
.service-hero-lead{font:500 clamp(22px,2.2vw,31px)/1.25 var(--serif);max-width:690px;margin:38px 0 20px;}
.service-hero-scope{max-width:620px;color:var(--warm-grey);font-size:15px;line-height:1.65;margin-bottom:32px;}
.service-hero-images{position:relative;height:680px;}
.service-hero-images figure{position:absolute;overflow:hidden;border-radius:25px;background:var(--soft-cream);}
.service-hero-images figure:first-child{inset:0 14% 18% 0;transform:rotate(-2.4deg);}
.service-hero-images figure:last-child{width:42%;height:53%;right:0;bottom:0;transform:rotate(3deg);box-shadow:0 24px 55px rgba(59,47,42,.18);}
.service-hero-images img{width:100%;height:100%;object-fit:cover;display:block;}
.service-section{padding:130px 0;}
.service-section h2{font-size:clamp(42px,5.5vw,74px);line-height:1.02;max-width:920px;margin:25px 0 42px;}
.service-section>.wrap>p:not(.eyebrow){max-width:760px;color:var(--warm-grey);font-size:17px;line-height:1.7;margin:0 0 16px;}
.service-narrative>.wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:start;}
.service-narrative>.wrap>.eyebrow{grid-column:1/-1;}
.service-narrative h2{margin:0;}
.service-body p{color:var(--warm-grey);font-size:17px;line-height:1.75;margin-bottom:20px;}
.service-section-dark{background:var(--dark-chocolate);color:var(--warm-ivory);border-radius:44px;}
.service-section-dark .eyebrow{color:var(--champagne);}
.service-section-dark h2{color:var(--warm-ivory);}
.service-section-dark .service-body p{color:var(--pale-beige);}
.service-points> .wrap>div{display:grid;grid-template-columns:repeat(3,1fr);margin-top:65px;border-top:1px solid var(--line);}
.service-points article{padding:30px 28px 30px 0;border-right:1px solid var(--line);}
.service-points article+article{padding-left:28px;}
.service-points article:nth-child(3n){border-right:0;}
.service-points article:nth-child(n+4){border-top:1px solid var(--line);}
.service-points article span{color:#FE9750;font-size:10px;letter-spacing:.12em;}
.service-points article h3{font-size:27px;margin:35px 0 14px;}
.service-points article p{color:var(--warm-grey);font-size:14px;line-height:1.65;}
.service-process{background:var(--soft-cream);}
.service-process>.wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;}
.service-section-head{position:sticky;top:145px;align-self:start;}
.service-section-head h2{margin-bottom:22px;}
.service-process ol{list-style:none;border-top:1px solid var(--line);}
.service-process li{display:grid;grid-template-columns:54px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line);}
.service-process li>span{color:#FE9750;font-size:10px;letter-spacing:.12em;}
.service-process li h3{font-size:27px;margin-bottom:8px;}
.service-process li p{color:var(--warm-grey);font-size:14px;line-height:1.6;}
.service-related>.wrap>div{display:grid;grid-template-columns:1fr 1fr;gap:70px 26px;margin-top:60px;}
.service-related a{display:block;color:var(--ink);}
.service-related img{width:100%;height:430px;object-fit:cover;border-radius:22px;display:block;}
.service-related h3{font-size:31px;margin:20px 0 10px;}
.service-related a p{color:var(--warm-grey);font-size:14px;line-height:1.6;max-width:520px;}
.service-faq{background:var(--soft-cream);}
.service-faq-list{margin-top:55px;border-top:1px solid var(--line);}
.service-faq details{border-bottom:1px solid var(--line);padding:24px 0;}
.service-faq summary{list-style:none;cursor:pointer;font:500 24px/1.25 var(--serif);padding-right:50px;position:relative;}
.service-faq summary::-webkit-details-marker{display:none;}
.service-faq summary::after{content:'+';position:absolute;right:8px;top:0;font:400 25px/1 var(--sans);color:#FE9750;}
.service-faq details[open] summary::after{content:'−';}
.service-faq details p{max-width:760px;color:var(--warm-grey);font-size:15px;line-height:1.65;margin-top:20px;}
.service-next{padding:16px;}
.service-next a{min-height:560px;border-radius:34px;background:linear-gradient(135deg,#FE9750,#F7A08C 52%,#F3E4DA);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dark-chocolate);padding:50px;}
.service-next span,.service-next em{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-style:normal;}
.service-next strong{font:500 clamp(44px,6vw,82px)/.98 var(--serif);max-width:1000px;margin:35px 0;}

.services-index-hero{padding-top:190px;padding-bottom:130px;display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end;}
.services-index-hero .eyebrow{grid-column:1/-1;}
.services-index-hero h1{font-size:clamp(64px,9vw,124px);line-height:.88;letter-spacing:-.04em;}
.services-index-hero>p:last-child{max-width:480px;color:var(--warm-grey);font-size:18px;line-height:1.6;}
.services-index-grid{padding-bottom:150px;border-top:1px solid var(--line);}
.services-index-card{display:grid;grid-template-columns:70px minmax(300px,1fr) minmax(260px,.7fr) auto;gap:30px;align-items:center;padding:38px 0;border-bottom:1px solid var(--line);color:var(--ink);transition:padding .3s ease,background .3s ease;}
.services-index-card:hover{padding-left:20px;padding-right:20px;background:var(--soft-cream);}
.services-index-card>span{font-size:10px;letter-spacing:.13em;color:#FE9750;}
.services-index-card h2{font-size:34px;line-height:1.05;}
.services-index-card p{color:var(--warm-grey);font-size:14px;line-height:1.55;}
.services-index-card em{font-style:normal;font-size:10px;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid var(--dusty-taupe);padding-bottom:4px;}

@media (max-width:980px){
  .service-hero-grid{grid-template-columns:1fr;}
  .service-hero-images{height:580px;margin-top:30px;}
  .service-process>.wrap{grid-template-columns:1fr;}
  .service-section-head{position:static;}
  .services-index-card{grid-template-columns:50px 1fr auto;}
  .services-index-card p{grid-column:2/4;}
}
@media (max-width:640px){
  .service-hero{min-height:auto;padding-top:125px;padding-bottom:80px;}
  .service-hero-grid{margin-top:55px;gap:35px;}
  .service-hero h1{font-size:53px;}
  .service-hero-lead{font-size:22px;}
  .service-hero-images{height:470px;}
  .service-hero-images figure:first-child{inset:0 8% 18% 0;}
  .service-section{padding:88px 0;}
  .service-section h2{font-size:44px;}
  .service-narrative>.wrap{grid-template-columns:1fr;gap:35px;}
  .service-points>.wrap>div{grid-template-columns:1fr;margin-top:45px;}
  .service-points article,.service-points article+article{padding:26px 0;border-right:0;border-top:1px solid var(--line);}
  .service-related>.wrap>div{grid-template-columns:1fr;gap:55px;}
  .service-related img{height:410px;}
  .service-section-dark{border-radius:28px;}
  .service-faq summary{font-size:21px;}
  .service-next{padding:8px;}
  .service-next a{min-height:500px;border-radius:24px;padding:35px 20px;}
  .service-next strong{font-size:47px;}
  .services-index-hero{grid-template-columns:1fr;padding-top:145px;padding-bottom:90px;gap:30px;}
  .services-index-hero .eyebrow{grid-column:auto;}
  .services-index-hero h1{font-size:58px;}
  .services-index-hero>p:last-child{font-size:16px;}
  .services-index-grid{padding-bottom:100px;}
  .services-index-card{grid-template-columns:36px 1fr;padding:28px 0;gap:14px;}
  .services-index-card p,.services-index-card em{grid-column:2;justify-self:start;}
  .services-index-card h2{font-size:29px;}
}

/* ==================== HOME V0.2 ==================== */
.skip-link{position:fixed;left:16px;top:-80px;z-index:1200;background:var(--ink);color:var(--warm-ivory);padding:12px 18px;border-radius:8px;transition:top .2s;}
.skip-link:focus{top:16px;}
:focus-visible{outline:2px solid #FE9750;outline-offset:4px;}
.menu-toggle{display:none;align-items:center;gap:10px;border:0;background:transparent;color:var(--ink);font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:10px 8px;cursor:pointer;}
.menu-toggle i,.menu-toggle i::before{display:block;width:20px;height:1px;background:currentColor;content:"";transition:transform .3s ease;}
.menu-toggle i::before{transform:translateY(6px);}
.menu-toggle[aria-expanded="true"] i{transform:rotate(45deg);}
.menu-toggle[aria-expanded="true"] i::before{transform:rotate(-90deg);}
.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--warm-ivory);visibility:hidden;opacity:0;transform:translateY(-18px);transition:opacity .35s ease,transform .35s ease,visibility .35s;}
.mobile-menu.is-open{visibility:visible;opacity:1;transform:none;}
.mobile-menu-inner{min-height:100%;display:flex;flex-direction:column;padding:140px 28px 34px;}
.mobile-menu nav{display:flex;flex-direction:column;margin-top:32px;border-top:1px solid var(--line);}
.mobile-menu nav a{display:grid;grid-template-columns:46px 1fr;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);font:500 clamp(36px,10vw,54px)/1 var(--serif);color:var(--ink);}
.mobile-menu nav a span{font:500 10px/1 var(--sans);letter-spacing:.12em;color:#FE9750;}
.mobile-menu-contact{margin-top:auto;display:grid;gap:20px;}
.mobile-menu-contact p{max-width:330px;color:var(--warm-grey);}
body.menu-open{overflow:hidden;}

.hero{min-height:min(860px,calc(100svh - 18px));}
.hero-inner{max-width:1080px;}
.hero-scope{max-width:690px;margin:15px auto 0;text-align:center;font-size:13px;line-height:1.55;color:var(--muted);}
.hero h1{font-size:clamp(46px,7vw,96px);}

.feature-symbol{width:52px;height:52px;display:grid;place-items:center;margin-bottom:15px;background:var(--soft-cream);color:var(--warm-grey);font:500 12px/1 var(--sans);letter-spacing:.08em;border:1px solid var(--line);}
.feature-card>a{display:inline-flex;align-self:flex-start;margin-top:20px;padding-bottom:3px;border-bottom:1px solid var(--dusty-taupe);font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);}
.features-viewport.js-pin-ready .feature-card{min-height:330px;justify-content:center;}
.features-viewport.js-pin-ready .feature-stack{height:330px;top:-33px;}
.features-viewport.js-pin-ready .feature-progress{top:206px;}
.features-heading h2{max-width:760px;}

.spotlight-copy .eyebrow{color:var(--pale-beige);margin-bottom:14px;}
.spotlight-copy h2{color:var(--warm-ivory);font:500 clamp(30px,4vw,52px)/1.08 var(--serif);max-width:760px;}
.spotlight-frame{aspect-ratio:16/9;}
.spotlight-frame img{height:112%;}

.tilted-info p{grid-column:1/3;margin-top:10px;max-width:500px;font-size:14px;line-height:1.55;color:var(--warm-grey);}
.section-action{display:flex;justify-content:center;margin:-40px 0 120px;}

.criteria{background:var(--dark-chocolate);color:var(--warm-ivory);padding:120px 0;border-radius:44px;margin-bottom:120px;}
.criteria .eyebrow{color:var(--champagne);}
.criteria-intro{display:grid;grid-template-columns:1fr 1.25fr;gap:30px 70px;align-items:end;margin-bottom:80px;}
.criteria-intro .eyebrow{grid-column:1/-1;}
.criteria-intro h2{color:var(--warm-ivory);font-size:clamp(38px,5vw,66px);line-height:1.02;}
.criteria-intro>p:last-child{color:var(--pale-beige);font-size:17px;max-width:520px;}
.criteria-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(246,242,239,.18);}
.criteria-grid article{padding:28px 24px 18px 0;border-right:1px solid rgba(246,242,239,.16);}
.criteria-grid article+article{padding-left:24px;}
.criteria-grid article:last-child{border-right:0;}
.criteria-grid span{font-size:11px;letter-spacing:.12em;color:#FE9750;}
.criteria-grid h3{color:var(--warm-ivory);font-size:25px;margin:38px 0 14px;}
.criteria-grid p{color:var(--pale-beige);font-size:14px;line-height:1.6;}

.services-v2{padding:0 0 130px;}
.service-rows{border-top:1px solid var(--line);}
.service-rows article{display:grid;grid-template-columns:60px minmax(280px,1fr) minmax(260px,.8fr) auto;gap:24px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);transition:background .25s ease,padding .25s ease;}
.service-rows article:hover{background:var(--soft-cream);padding-left:18px;padding-right:18px;}
.service-rows span{font-size:11px;letter-spacing:.12em;color:#FE9750;}
.service-rows h3{font-size:26px;line-height:1.1;}
.service-rows p{font-size:14px;color:var(--warm-grey);}
.service-rows a,.text-link{font-size:11px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--dusty-taupe);padding-bottom:3px;justify-self:end;}

.process{padding:120px 0;background:var(--soft-cream);}
.process .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;}
.process-head{position:sticky;top:140px;align-self:start;}
.process-head h2{font-size:clamp(38px,5vw,62px);line-height:1.02;margin:22px 0;}
.process-head>p:last-child{color:var(--warm-grey);max-width:470px;}
.process-list{list-style:none;border-top:1px solid var(--line);}
.process-list li{display:grid;grid-template-columns:54px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line);}
.process-list li>span{color:#FE9750;font-size:11px;letter-spacing:.12em;}
.process-list h3{font-size:26px;margin-bottom:8px;}
.process-list p{color:var(--warm-grey);font-size:14px;}

.studio{padding:140px 0;}
.studio-grid{display:grid;grid-template-columns:.55fr 1.45fr;gap:80px;align-items:start;}
.studio h2{font-size:clamp(42px,6vw,76px);line-height:1;margin-bottom:30px;}
.studio p{max-width:720px;font-size:17px;color:var(--warm-grey);margin-bottom:18px;}
.studio .text-link{display:inline-flex;margin-top:18px;justify-self:start;color:var(--ink);}

.contact-section{padding-top:120px;}
.contact-cta{text-align:center;padding-bottom:110px;border-bottom:1px solid rgba(246,242,239,.14);position:relative;z-index:1;}
.contact-cta .eyebrow{color:var(--champagne);}
.contact-cta h2{color:var(--warm-ivory);font-size:clamp(46px,7vw,88px);line-height:.98;margin:28px auto;}
.contact-cta>p{color:var(--pale-beige);max-width:560px;margin:0 auto 32px;font-size:17px;}
.contact-cta>div{display:flex;justify-content:center;align-items:center;gap:26px;flex-wrap:wrap;}
.btn-accent{background:#FE9750;color:var(--dark-chocolate);}
.btn-accent:hover{background:#FFBE98;transform:translateY(-1px);}
.text-link.light{color:var(--warm-ivory);border-color:var(--champagne);justify-self:auto;}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;align-items:center;gap:10px;padding:8px 15px 8px 8px;border-radius:999px;background:#FE9750;color:var(--dark-chocolate);box-shadow:0 12px 35px rgba(59,47,42,.18);font-size:12px;letter-spacing:.06em;text-transform:uppercase;}
.whatsapp-float span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--dark-chocolate);color:var(--warm-ivory);font-size:9px;}
.whatsapp-float b{font-weight:500;}

@media (max-width:980px){
  nav.links{display:none;}
  .header-whatsapp{display:none;}
  .menu-toggle{display:flex;}
  .criteria-grid{grid-template-columns:1fr 1fr;}
  .criteria-grid article:nth-child(2){border-right:0;}
  .criteria-grid article:nth-child(n+3){border-top:1px solid rgba(246,242,239,.16);}
  .service-rows article{grid-template-columns:48px 1fr auto;}
  .service-rows p{grid-column:2/4;}
  .process .wrap{grid-template-columns:1fr;gap:60px;}
  .process-head{position:static;}
}

@media (max-width:640px){
  header{padding:14px 12px;}
  .nav-inner{padding:9px 13px;}
  .brand span{font-size:16px;}
  .brand img{height:23px;}
  .hero{min-height:auto;padding:20px 0 54px;}
  .hero-inner{padding:38px 20px 0;}
  .hero h1{font-size:47px;line-height:.98;}
  .hero h1 br{display:block;}
  .hero-title-tint{mask-image:radial-gradient(circle 90px at var(--mx,50%) var(--my,50%),#000 0%,#000 35%,transparent 76%);}
  .hero-sub{font-size:16px;}
  .hero-scope{font-size:12px;}
  .hero-ctas .btn{width:100%;min-width:0;}
  .features{padding:80px 0;}
  .feature-card{padding:30px 28px;}
  .feature-card>a{font-size:10px;}
  .spotlight{padding-bottom:90px;}
  .spotlight-frame{aspect-ratio:4/5;border-radius:20px;}
  .spotlight-copy{padding:28px;}
  .spotlight-copy h2{font-size:36px;}
  .tilted-info p{font-size:13px;}
  .section-action{margin:-20px 0 90px;}
  .criteria{border-radius:28px;padding:80px 0;margin-bottom:90px;}
  .criteria-intro{grid-template-columns:1fr;gap:22px;margin-bottom:50px;}
  .criteria-grid{grid-template-columns:1fr;}
  .criteria-grid article,.criteria-grid article+article{padding:26px 0;border-right:0;border-top:1px solid rgba(246,242,239,.16);}
  .criteria-grid h3{margin-top:20px;}
  .services-v2{padding-bottom:90px;}
  .service-rows article{grid-template-columns:36px 1fr;padding:24px 0;}
  .service-rows p,.service-rows a{grid-column:2;justify-self:start;}
  .process{padding:80px 0;}
  .process .wrap{gap:42px;}
  .studio{padding:90px 0;}
  .studio-grid{grid-template-columns:1fr;gap:28px;}
  .studio p{font-size:16px;}
  .contact-section{padding-top:90px;}
  .contact-cta{padding-bottom:80px;}
  .contact-cta h2{font-size:50px;}
  .contact-cta h2 br{display:none;}
  .contact-cta>div{flex-direction:column;}
  .whatsapp-float{right:14px;bottom:14px;padding-right:8px;}
  .whatsapp-float b{display:none;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .pixel-canvas{opacity:.48;}
  .hero-title-tint{display:none;}
  .tilted-project{transform:none!important;filter:none!important;opacity:1!important;}
}

/* ==================== PROJECT DETAIL V0.3 ==================== */
.project-link{display:block;color:inherit;text-decoration:none;}
.project-page-v3{background:var(--warm-ivory);}
.case-study{overflow:hidden;}
.case-hero{min-height:100svh;padding-top:170px;padding-bottom:72px;display:flex;flex-direction:column;justify-content:space-between;}
.case-back{display:inline-flex;align-self:flex-start;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warm-grey);border-bottom:1px solid var(--line);padding-bottom:5px;}
.case-hero-title{margin:90px 0 70px;}
.case-hero-title h1{font:500 clamp(72px,10vw,142px)/.85 var(--serif);letter-spacing:-.04em;max-width:1200px;margin-top:28px;}
.case-hero-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;border-top:1px solid var(--line);padding-top:30px;}
.case-lead{font:500 clamp(22px,2.6vw,34px)/1.2 var(--serif);max-width:710px;}
.case-hero-intro dl{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.case-hero-intro dt{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dusty-taupe);margin-bottom:7px;}
.case-hero-intro dd{font-size:13px;color:var(--ink);}
.case-opening{width:calc(100% - 32px);height:min(86vh,900px);margin:0 auto;border-radius:34px;overflow:hidden;}
.case-opening picture,.case-media picture{display:block;width:100%;height:100%;}
.case-opening img,.case-media img{width:100%;height:100%;object-fit:cover;display:block;}
.case-parallax img{height:116%;}
.case-section{padding-top:150px;padding-bottom:150px;}
.case-section-split{display:grid;grid-template-columns:.78fr 1.22fr;gap:9vw;align-items:center;}
.case-copy{max-width:580px;}
.case-copy .eyebrow{margin-bottom:30px;}
.case-copy h2{font-size:clamp(42px,5vw,70px);line-height:1.02;margin-bottom:34px;}
.case-copy>p:not(.eyebrow){font-size:16px;line-height:1.72;color:var(--warm-grey);margin-top:17px;}
.case-media{overflow:hidden;border-radius:24px;}
.case-section-split .case-media{height:720px;}
.case-copy-wide{max-width:850px;margin-bottom:74px;display:grid;grid-template-columns:1fr 1fr;gap:20px 70px;align-items:end;}
.case-copy-wide .eyebrow{grid-column:1/-1;margin:0;}
.case-copy-wide h2{margin:0;}
.case-copy-wide>p:last-child{margin:0;}
.case-duo{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:start;}
.case-duo .case-media:first-child{height:680px;}
.case-duo .case-media:last-child{height:560px;}
.case-duo .case-offset{margin-top:130px;}
.case-dark{padding:150px 0;background:var(--dark-chocolate);color:var(--warm-ivory);border-radius:44px;}
.case-dark-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:9vw;align-items:center;}
.case-dark .eyebrow{color:var(--champagne);}
.case-dark h2{color:var(--warm-ivory);}
.case-dark .case-copy>p:not(.eyebrow){color:var(--pale-beige);}
.case-dark .case-media{height:720px;}
.case-duo-life{grid-template-columns:1fr 1fr;}
.case-duo-life .case-media:first-child,.case-duo-life .case-media:last-child{height:620px;}
.case-video-section{width:calc(100% - 32px);height:min(88vh,940px);margin:0 auto;border-radius:34px;overflow:hidden;background:var(--dark-chocolate);}
.case-video-section video{width:100%;height:100%;object-fit:cover;display:block;}
.case-closing{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:center;}
.case-closing .case-media{height:820px;max-width:700px;justify-self:end;}
.case-next{padding:130px 16px 16px;}
.case-next a{min-height:620px;border-radius:34px;background:linear-gradient(rgba(42,32,28,.22),rgba(42,32,28,.62)),url('../img/home-projects/habitacion-bano-barcelona/cover-desktop.webp') center/cover;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--warm-ivory);overflow:hidden;transition:filter .35s ease;}
.case-next a:hover{filter:saturate(.82);}
.case-next span,.case-next em{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-style:normal;}
.case-next strong{font:500 clamp(48px,7vw,92px)/.95 var(--serif);margin:34px 0;}

@media (max-width:980px){
  .case-hero-intro,.case-section-split,.case-dark-grid,.case-closing{grid-template-columns:1fr;}
  .case-hero-intro{gap:45px;}
  .case-section-split,.case-dark-grid,.case-closing{gap:70px;}
  .case-section-split .case-media,.case-dark .case-media{height:620px;}
}

/* ==================== COMPLETE PORTFOLIO V0.4 ==================== */
.case-section-reverse .case-copy{order:2;}
.case-section-reverse .case-media{order:1;}
.case-section-split:not(:has(.case-media)){grid-template-columns:1fr;}
.case-section-split:not(:has(.case-media)) .case-copy{max-width:850px;margin:0 auto;}
.case-gallery{padding-top:20px;padding-bottom:150px;display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.case-gallery .case-media{height:620px;}
.case-gallery .case-media:nth-child(3n){grid-column:1/-1;height:min(78vh,820px);}
.case-video-section.case-video-count-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.case-video-section.case-video-count-2 video{min-width:0;}
.case-result{margin-top:120px;padding:140px 0;background:var(--dark-chocolate);color:var(--warm-ivory);text-align:center;border-radius:44px;}
.case-result .eyebrow{justify-content:center;color:var(--champagne);}
.case-result h2{font-size:clamp(46px,7vw,88px);line-height:.98;color:var(--warm-ivory);margin:32px auto;max-width:1000px;}
.case-result p{max-width:760px;margin:0 auto;color:var(--pale-beige);font-size:18px;line-height:1.65;}
.case-result small{display:block;margin-top:50px;color:var(--champagne);font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.case-next a{background-image:linear-gradient(rgba(42,32,28,.22),rgba(42,32,28,.62)),var(--next-image,url('../img/home-projects/habitacion-bano-barcelona/cover-desktop.webp'));}

.archive-page{background:var(--warm-ivory);}
.archive-hero{padding-top:190px;padding-bottom:120px;display:grid;grid-template-columns:1.35fr .65fr;align-items:end;gap:50px;}
.archive-hero .eyebrow{grid-column:1/-1;}
.archive-hero h1{font-size:clamp(64px,9vw,126px);line-height:.88;letter-spacing:-.04em;}
.archive-hero>p:last-child{max-width:480px;color:var(--warm-grey);font-size:18px;line-height:1.6;}
.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px 34px;padding-bottom:150px;}
.archive-card{display:block;color:var(--ink);}
.archive-card:nth-child(even){margin-top:120px;}
.archive-card picture{display:block;height:620px;overflow:hidden;border-radius:24px;background:var(--soft-cream);}
.archive-card img{width:100%;height:112%;object-fit:cover;display:block;transition:filter .6s ease;}
.archive-card:hover img{filter:saturate(.82);}
.archive-card>div{display:grid;grid-template-columns:1fr auto;gap:10px 24px;padding:22px 4px 0;}
.archive-card span{grid-column:1/-1;font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--dusty-taupe);}
.archive-card h2{font-size:clamp(29px,3vw,43px);line-height:1.05;}
.archive-card i{font-style:normal;font-size:11px;color:#FE9750;align-self:center;}

@media (max-width:980px){
  .archive-card picture{height:520px;}
}
@media (max-width:640px){
  .case-section-reverse .case-copy,.case-section-reverse .case-media{order:initial;}
  .case-gallery{grid-template-columns:1fr;gap:16px;padding-bottom:90px;}
  .case-gallery .case-media,.case-gallery .case-media:nth-child(3n){grid-column:auto;height:470px;}
  .case-video-section.case-video-count-2{grid-template-columns:1fr;height:auto;background:transparent;gap:8px;}
  .case-video-section.case-video-count-2 video{height:68svh;border-radius:20px;}
  .case-result{margin-top:70px;padding:90px 0;border-radius:28px;}
  .case-result h2{font-size:50px;}
  .case-result p{font-size:16px;}
  .archive-hero{grid-template-columns:1fr;padding-top:145px;padding-bottom:80px;gap:32px;}
  .archive-hero .eyebrow{grid-column:auto;}
  .archive-hero h1{font-size:62px;}
  .archive-hero>p:last-child{font-size:16px;}
  .archive-grid{grid-template-columns:1fr;gap:70px;padding-bottom:100px;}
  .archive-card:nth-child(even){margin-top:0;}
  .archive-card picture{height:520px;border-radius:20px;}
  .archive-card h2{font-size:34px;}
}
@media (max-width:640px){
  .case-hero{min-height:auto;padding-top:125px;padding-bottom:54px;}
  .case-hero-title{margin:70px 0 50px;}
  .case-hero-title h1{font-size:61px;line-height:.9;}
  .case-hero-intro{grid-template-columns:1fr;gap:38px;}
  .case-hero-intro dl{grid-template-columns:1fr 1fr;gap:22px;}
  .case-hero-intro dl div:last-child{grid-column:1/-1;}
  .case-opening,.case-video-section{width:calc(100% - 16px);height:72svh;border-radius:22px;}
  .case-section{padding-top:90px;padding-bottom:90px;}
  .case-section-split,.case-dark-grid,.case-closing{gap:48px;}
  .case-section-split .case-media,.case-dark .case-media{height:500px;}
  .case-copy h2{font-size:44px;}
  .case-copy>p:not(.eyebrow){font-size:15px;}
  .case-copy-wide{display:block;margin-bottom:45px;}
  .case-copy-wide h2{margin:25px 0;}
  .case-duo,.case-duo-life{grid-template-columns:1fr;gap:16px;}
  .case-duo .case-media:first-child,.case-duo .case-media:last-child,.case-duo-life .case-media:first-child,.case-duo-life .case-media:last-child{height:470px;}
  .case-duo .case-offset{margin-top:0;}
  .case-dark{border-radius:28px;padding:90px 0;}
  .case-closing .case-media{height:590px;}
  .case-next{padding:80px 8px 8px;}
  .case-next a{min-height:540px;border-radius:24px;background-image:linear-gradient(rgba(42,32,28,.22),rgba(42,32,28,.62)),var(--next-image,url('../img/home-projects/habitacion-bano-barcelona/cover-mobile.webp'));}
  .case-next strong{font-size:52px;}
}

/* ==================== CONTACT + PREPUBLICATION V0.7 ==================== */
.contact-page-v7{background:var(--warm-ivory);}
.contact-hero-v7{padding-top:150px;padding-bottom:120px;display:grid;grid-template-columns:1.15fr .85fr;gap:9vw;align-items:end;min-height:78svh;}
.contact-hero-v7 h1{font-size:clamp(68px,9.2vw,128px);line-height:.85;letter-spacing:-.045em;margin-top:28px;}
.contact-hero-copy>p{font:500 clamp(22px,2.4vw,31px)/1.25 var(--serif);max-width:560px;}
.contact-direct{margin-top:55px;border-top:1px solid var(--line);}
.contact-direct a{display:grid;grid-template-columns:100px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:center;}
.contact-direct span{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--warm-grey);}
.contact-direct strong{font-size:14px;font-weight:500;overflow-wrap:anywhere;}
.contact-form-section-v7{background:var(--soft-cream);border-radius:42px 42px 0 0;padding:130px 0;}
.contact-form-layout-v7{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:start;}
.contact-form-intro{position:sticky;top:150px;}
.contact-form-intro h2{font-size:clamp(48px,5.5vw,72px);line-height:.98;margin:28px 0;}
.contact-form-intro>p:not(.eyebrow){font-size:16px;color:var(--warm-grey);max-width:460px;}
.availability-note{margin-top:55px;padding-top:25px;border-top:1px solid var(--dusty-taupe);max-width:460px;}
.availability-note span{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--warm-grey);}
.availability-note p{margin-top:10px;font-size:14px;}
.contact-form-v7{display:grid;gap:30px;}
.contact-form-v7 .field-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.contact-form-v7 label{display:grid;gap:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dark-chocolate);}
.contact-form-v7 label>span{color:var(--glow-accent);}
.contact-form-v7 label small{font-size:9px;color:var(--warm-grey);justify-self:end;grid-row:1;}
.contact-form-v7 input:not([type="checkbox"]),.contact-form-v7 select,.contact-form-v7 textarea{width:100%;border:0;border-bottom:1px solid var(--dusty-taupe);background:transparent;border-radius:0;padding:12px 0 15px;color:var(--dark-chocolate);font:400 16px/1.4 var(--sans);outline:none;transition:border-color .2s ease;}
.contact-form-v7 textarea{resize:vertical;min-height:150px;}
.contact-form-v7 select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--warm-grey) 50%),linear-gradient(135deg,var(--warm-grey) 50%,transparent 50%);background-position:calc(100% - 9px) 50%,calc(100% - 4px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px;}
.contact-form-v7 input:focus,.contact-form-v7 select:focus,.contact-form-v7 textarea:focus{border-color:var(--glow-accent);}
.contact-form-v7 input:invalid:not(:placeholder-shown),.contact-form-v7 textarea:invalid:not(:placeholder-shown){border-color:#9d4435;}
.contact-form-v7 .consent-field{display:flex;grid-template-columns:none;gap:12px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:13px;line-height:1.5;}
.consent-field input{width:18px;height:18px;margin-top:1px;accent-color:var(--glow-accent);flex:0 0 auto;}
.consent-field span{color:var(--ink-soft)!important;}
.consent-field a{text-decoration:underline;text-underline-offset:3px;}
.consent-field b{color:var(--glow-accent);}
.contact-form-v7 .btn{justify-self:start;min-width:190px;}
.form-status{min-height:24px;font-size:13px;}
.form-status.is-success{color:#466347;}
.form-status.is-error{color:#9d4435;}
.hp-field{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

/* ==================== HOME PINNED CARDS CENTERING V0.9 ==================== */
@media (min-width:900px){
  /* The pinned element keeps the section's entry offset. Move the complete
     composition—not the individual cards—up to the optical viewport centre. */
  .features-viewport.js-pin-ready .features-layout{
    transform:translateY(clamp(-210px,-18svh,-160px));
  }
}
.global-legal{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 28px;padding:24px 110px 28px;border-top:1px solid var(--line);background:var(--warm-ivory);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--warm-grey);}
.global-legal a{transition:color .2s ease;}
.global-legal a:hover{color:var(--glow-accent);}
.legal-page-v7{background:var(--warm-ivory);}
.legal-wrap-v7{width:min(820px,calc(100% - 48px));margin:0 auto;padding:80px 0 130px;}
.legal-brand-v7{display:inline-block;font:500 18px/1 var(--serif);letter-spacing:.06em;margin-bottom:120px;}
.legal-wrap-v7 h1{font-size:clamp(58px,9vw,104px);line-height:.9;margin:30px 0 46px;}
.legal-lead-v7{font:500 clamp(22px,3vw,30px)/1.35 var(--serif);max-width:750px;}
.legal-wrap-v7 section{padding:48px 0;border-bottom:1px solid var(--line);}
.legal-wrap-v7 h2{font-size:32px;margin-bottom:22px;}
.legal-wrap-v7 p,.legal-wrap-v7 li{font-size:15px;color:var(--warm-grey);line-height:1.7;}
.legal-wrap-v7 ul{list-style:disc;padding-left:20px;display:grid;gap:8px;}
.legal-wrap-v7 section a{text-decoration:underline;text-underline-offset:3px;color:var(--dark-chocolate);}
.legal-warning-v7{margin:48px 0;padding:25px 28px;background:var(--soft-cream);border-radius:18px;}
.legal-warning-v7 strong{font-size:10px;letter-spacing:.13em;text-transform:uppercase;}
.legal-warning-v7 p{margin-top:8px;}

@media (max-width:900px){
  .contact-hero-v7,.contact-form-layout-v7{grid-template-columns:1fr;}
  .contact-hero-v7{padding-top:110px;gap:60px;min-height:auto;}
  .contact-form-layout-v7{gap:80px;}
  .contact-form-intro{position:static;}
}
@media (max-width:640px){
  .contact-hero-v7{padding-top:85px;padding-bottom:80px;gap:44px;}
  .contact-hero-v7 h1{font-size:62px;}
  .contact-hero-copy>p{font-size:23px;}
  .contact-direct{margin-top:38px;}
  .contact-direct a{grid-template-columns:74px 1fr;gap:14px;}
  .contact-form-section-v7{padding:85px 0;border-radius:28px 28px 0 0;}
  .contact-form-layout-v7{gap:58px;}
  .contact-form-v7 .field-row{grid-template-columns:1fr;gap:30px;}
  .global-legal{padding:24px 70px 80px;gap:12px 20px;}
  .legal-wrap-v7{width:min(100% - 32px,820px);padding-top:48px;padding-bottom:90px;}
  .legal-brand-v7{margin-bottom:80px;}
  .legal-wrap-v7 h1{font-size:56px;}
}
