/*
 * BISCAT — main design system.
 *
 * Ported 1:1 from the Next.js project's app/globals.css. The only change is at the
 * top: Next.js injected the font families through next/font CSS variables
 * (--font-gotham / --font-montserrat on <body>); here the same fonts are self-hosted
 * from assets/fonts and exposed through the same variable names, so every rule below
 * is untouched.
 */

/* ================= FONTS ================= */
@font-face{
  font-family:'Gotham Black';
  src:url('../fonts/GothamBlack.woff2') format('woff2');
  font-weight:900;font-style:normal;font-display:swap;
}
/* Montserrat (variable, 100–900) — latin-ext + latin subsets, same as next/font's "latin" */
@font-face{
  font-family:'Montserrat';
  src:url('../fonts/montserrat-latin-ext-wght-normal.woff2') format('woff2-variations');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Montserrat';
  src:url('../fonts/montserrat-latin-wght-normal.woff2') format('woff2-variations');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
  --font-gotham:'Gotham Black';
  --font-montserrat:'Montserrat';
}

/* ================= TOKENS ================= */
:root{
  --navy-950:#040403;
  --navy-900:#0a0908;
  --navy-850:#0d0c0a;
  --navy-800:#15130f;
  --navy-700:#211e17;
  --gold-600:#b9811a;
  --gold-500:#f1a71f;
  --gold-400:#f4b945;
  --gold-300:#f8cd70;
  --ivory:#f2efe6;
  --ivory-dim:#cfcabb;
  /* Client feedback (Oct 2026): sub-text/body copy was reading as grey and hard to read —
     both tokens brightened to clear, warm near-white. --slate is now the main body-copy
     color (p, section descriptions, card text); --slate-dim is for small de-emphasized
     meta/caption text and stays one notch dimmer for hierarchy, but is still clearly
     readable against the near-black background (was #5c6274, nearly illegible). */
  --slate:#e3e0d8;
  --slate-dim:#a39d8f;
  --line:rgba(201,162,39,0.22);
  --line-soft:rgba(242,239,230,0.09);

  --ease:cubic-bezier(.16,.8,.24,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  /* declared here (not :root) so var(--font-montserrat)/var(--font-gotham) — both only
     defined on this element via Next.js's font className — resolve correctly; declaring
     --display/--sans on :root instead left them permanently invalid (they inherited
     downward as the guaranteed-invalid value since :root itself has no font className) */
  --display: var(--font-gotham, sans-serif), 'Gotham Black', var(--font-montserrat, sans-serif), sans-serif;
  --sans: var(--font-montserrat, sans-serif), var(--font-gotham, sans-serif), 'Gotham Black', sans-serif;

  background:
    radial-gradient(ellipse 60% 45% at 12% 8%, rgba(241,167,31,0.10), transparent 60%),
    radial-gradient(ellipse 55% 40% at 88% 28%, rgba(241,167,31,0.07), transparent 62%),
    radial-gradient(ellipse 60% 45% at 15% 62%, rgba(201,162,39,0.08), transparent 60%),
    radial-gradient(ellipse 65% 50% at 90% 88%, rgba(241,167,31,0.09), transparent 62%),
    linear-gradient(180deg, var(--navy-950) 0%, var(--navy-850) 45%, var(--navy-900) 75%, var(--navy-950) 100%);
  background-attachment:fixed;
  background-size:100% 100%;
  color:var(--ivory);
  font-family:var(--sans) !important;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--display) !important;}
h2{font-weight:400;font-size:2.2em;line-height:1.3;color:var(--ivory);}
h3{font-weight:400;font-size:1.6em;line-height:1.32;color:var(--ivory);}
p{font-size:1.2em;line-height:1.6em;font-weight:300;color:var(--slate);font-family:var(--sans) !important;}
button{font-family:var(--sans) !important;font-size:.8em;font-weight:300;}
button{background:none;border:none;color:inherit;cursor:pointer;}
ul{list-style:none;}
.container{width:100%;max-width:1320px;margin:0 auto;padding:0 6vw;}

@media(prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}

::selection{background:var(--gold-500);color:var(--navy-950);}

a:focus-visible,button:focus-visible{outline:1.5px solid var(--gold-400);outline-offset:4px;}

/* ================= TYPE HELPERS ================= */
.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--gold-400);
}
.italic{font-family:var(--display) !important;font-style:italic;font-weight:400;color:var(--gold-400);}

/* ================= REVEAL ================= */
/* Client feedback (Oct 2026): photos/logos were reading as "not clear" while scrolling —
   these reveal animations used to fade in through a blur(3-7px) filter, and the
   IntersectionObserver replayed it every time an element crossed the viewport edge
   (including scrolling back up), so a photo could re-enter a blurred/invisible state
   mid-review. Blur removed from every reveal variant below — elements now only
   fade + rise into place, never blur, and the observer (ScrollFx.tsx) now reveals once
   and stays revealed instead of replaying on scroll-back. */
[data-reveal]{
  opacity:0;
  transform:translateY(46px) scale(.95);
  transition:opacity 1s var(--ease-soft), transform 1s var(--ease-soft);
  will-change:transform,opacity;
}
[data-reveal].in-view{opacity:1;transform:translateY(0) scale(1);}
[data-reveal="fade"]{transform:none;}
[data-reveal-delay="1"]{transition-delay:.14s;}
[data-reveal-delay="2"]{transition-delay:.28s;}
[data-reveal-delay="3"]{transition-delay:.42s;}
[data-reveal-delay="4"]{transition-delay:.56s;}

/* gentle "boom" zoom-in for section-level reveals */
[data-reveal="boom"]{
  opacity:0;transform:translateY(24px) scale(.965);
  transition:opacity .85s cubic-bezier(.22,.61,.36,1), transform .85s cubic-bezier(.22,.61,.36,1);
}
[data-reveal="boom"].in-view{opacity:1;transform:translateY(0) scale(1);}

/* "lines" mode: container stays put, each direct child pops in one after another */
[data-reveal="lines"]{opacity:1;transform:none;filter:none;transition:none;}
[data-reveal="lines"] > *{
  opacity:0;transform:translateY(22px);
  transition:opacity .6s var(--ease-soft), transform .6s var(--ease-soft);
}
[data-reveal="lines"].in-view > *{opacity:1;transform:translateY(0);}
[data-reveal="lines"].in-view > *:nth-child(1){transition-delay:0s;}
[data-reveal="lines"].in-view > *:nth-child(2){transition-delay:.13s;}
[data-reveal="lines"].in-view > *:nth-child(3){transition-delay:.26s;}
[data-reveal="lines"].in-view > *:nth-child(4){transition-delay:.39s;}
[data-reveal="lines"].in-view > *:nth-child(5){transition-delay:.52s;}
[data-reveal="lines"].in-view > *:nth-child(6){transition-delay:.65s;}

/* ================= BACKGROUND TEXTURES ================= */
.gold-lines{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;
}
.gold-lines svg{position:absolute;inset:0;width:100%;height:100%;}
.gold-lines .l{
  fill:none;stroke:url(#lineGrad);stroke-width:1;opacity:.5;
  stroke-dasharray:6 10;
  animation:dashmove 40s linear infinite;
}
@keyframes dashmove{to{stroke-dashoffset:-1000;}}

.arc-field{position:absolute;pointer-events:none;z-index:0;}
.arc-field svg{width:100%;height:100%;}
.arc-field circle{fill:none;stroke:var(--line);stroke-width:1;}
.arc-field.left{transform:scaleX(-1);}

/* large faint centered brand-mark watermark used to fill quiet section space */
.section-watermark{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(560px, 60vw);
  opacity:.05;pointer-events:none;z-index:0;
}
.section-watermark img{width:100%;height:auto;display:block;}

/* concentric ring cluster with a centered brand mark — used as ambient decoration
   that bleeds past the container edge instead of competing with real content */
.ring-cluster{
  position:absolute;pointer-events:none;z-index:0;
  width:340px;height:340px;
}
.ring-cluster .ring{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border:1px solid rgba(218,181,79,0.16);
  transform:translate(-50%,-50%);
}
.ring-cluster .ring.r1{width:100%;height:100%;}
.ring-cluster .ring.r2{width:68%;height:68%;}
.ring-cluster .ring.r3{width:38%;height:38%;border-style:dashed;opacity:.7;}
.ring-cluster .mark{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:26%;opacity:.55;
}
.ring-cluster .mark img{width:100%;height:auto;display:block;}
.ring-cluster.soft{opacity:.5;}
.ring-cluster.soft .ring{border-color:rgba(218,181,79,0.09);}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:998;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ================= NAV ================= */
header{
  position:fixed;top:0;left:0;right:0;z-index:900;
  padding:0;
  transition:opacity .6s var(--ease-soft), transform .6s var(--ease-soft);
}
header.show{opacity:1;pointer-events:auto;transform:translateY(0);}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  max-width:1280px;margin:0 auto;padding:10px 6vw;
  background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
  transition:background .4s var(--ease-soft),backdrop-filter .4s var(--ease-soft);
}
header.show .nav-inner{
  background:rgba(4,4,3,0.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-radius:0;
}
.brand-mini{display:flex;align-items:center;}
.brand-logo{
  height:54px;width:auto;display:block;
  transition:transform .4s var(--ease), opacity .3s;
}
.brand-mini:hover .brand-logo{transform:translateY(-1px);opacity:.9;}
footer .brand-logo{height:40px;width:auto;}

/* ================= SECTION SHELL ================= */
section{position:relative;width:100%;overflow:hidden;}
main{display:block;}

/* ================= PAGE HERO (inner pages) ================= */
.page-hero{
  min-height:56vh;
  display:flex;align-items:flex-end;
  padding:168px 0 76px;
  background:
    radial-gradient(ellipse 70% 60% at 82% 0%, rgba(241,167,31,0.14), transparent 60%);
  border-bottom:1px solid var(--line-soft);
}
.page-hero .container{position:relative;z-index:2;}
.page-hero-crumb{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--slate);
  display:flex;align-items:center;gap:10px;margin-bottom:22px;
}
.page-hero-crumb a{color:var(--slate);transition:color .3s;}
.page-hero-crumb a:hover{color:var(--gold-400);}
.page-hero-crumb span{color:var(--gold-500);}
.page-hero-title{
  font-family:var(--display);font-weight:300;line-height:1.05;
  font-size:clamp(38px, 5.6vw, 78px);color:var(--ivory);max-width:820px;
}
.page-hero-sub{
  margin-top:22px;font-size:16px;line-height:1.75;color:var(--slate);font-weight:500;max-width:560px;
}
.page-hero .arc-field.right{right:-8%;top:-10%;width:520px;height:520px;opacity:.4;}

/* ================= GENERIC CONTENT SECTION ================= */
.content-section{
  padding:clamp(48px,7vw,96px) 0;
  background-color:transparent;
  border-top:1px solid var(--line-soft);
}
.content-section.alt{background-color:rgba(0,0,0,0.12);}
.content-section.tight{padding:clamp(48px,6vw,88px) 0;}
.section-head{max-width:680px;margin-bottom:56px;}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{
  font-family:var(--display);font-weight:300;line-height:1.15;
  font-size:2.2em;color:var(--ivory);
  position:relative;display:inline-block;padding-bottom:16px;
}
.section-head h2::after{
  content:'';position:absolute;left:0;bottom:0;width:44px;height:2px;
  background:linear-gradient(90deg, var(--gold-500), var(--gold-300));
}
.section-head.center h2::after{left:50%;transform:translateX(-50%);}
.section-head p{margin-top:18px;font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* ================= IMAGE FRAME (duotone premium treatment) ================= */
.img-frame{
  position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--line);
  background:var(--navy-800);
  box-shadow:0 14px 34px -18px rgba(0,0,0,.6);
  transition:box-shadow .5s var(--ease-soft), border-color .5s var(--ease-soft), transform .5s var(--ease-soft);
}
.img-frame img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.3) sepia(.16) saturate(1.35) brightness(.84) contrast(1.08);
  transition:transform 1s var(--ease-soft), filter .6s var(--ease-soft);
}
.img-frame::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(165deg, rgba(10,9,8,.08) 0%, rgba(4,4,3,.58) 100%),
    linear-gradient(0deg, rgba(241,167,31,.16), transparent 48%);
  mix-blend-mode:multiply;
  pointer-events:none;
}
.img-frame::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  border:1px solid rgba(241,167,31,.18);border-radius:16px;
  transition:border-color .5s var(--ease-soft);
}
.img-frame:hover{
  box-shadow:0 22px 48px -16px rgba(241,167,31,.28);
  border-color:rgba(241,167,31,.35);
  transform:translateY(-3px);
}
.img-frame:hover::before{border-color:rgba(241,167,31,.4);}
.img-frame:hover img{transform:scale(1.07);filter:grayscale(.16) sepia(.14) saturate(1.4) brightness(.92) contrast(1.06);}
.img-frame.tall{aspect-ratio:4/5;}
.img-frame.wide{aspect-ratio:16/10;}
.img-frame.square{aspect-ratio:1/1;}
.img-frame.short{aspect-ratio:16/7;}
.img-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:3;padding:22px 24px;
  background:linear-gradient(0deg, rgba(4,4,3,.9), rgba(4,4,3,.35) 65%, transparent);
}
.img-cap .k{
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-400);font-weight:700;
  display:flex;align-items:center;gap:8px;
}
.img-cap .k::before{content:'';width:14px;height:1.5px;background:var(--gold-400);display:inline-block;}
.img-cap .t{margin-top:7px;font-size:15px;font-weight:600;color:var(--ivory);}

/* ================= CARD GRID ================= */
.card-grid{display:grid;gap:28px;}
.card-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.card-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.card-grid.cols-5{grid-template-columns:repeat(5,1fr);}

.info-card{
  padding:34px 30px;border-radius:10px;border:1px solid var(--line-soft);background:var(--navy-900);
  transition:border-color .4s,transform .4s var(--ease-soft),background .4s;
}
.content-section.alt .info-card{background:var(--navy-950);}
.info-card:hover{border-color:var(--line);transform:translateY(-5px);}
.info-card .icon{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);margin-bottom:22px;
}
.info-card .icon svg{width:20px;height:20px;}
.info-card h3{
  font-family:var(--display);font-weight:500;font-size:20px;color:var(--ivory);margin-bottom:12px;
  display:inline-block;position:relative;padding-bottom:10px;
}
.info-card h3::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--line-soft);
  transform:scaleX(1);transform-origin:left;transition:background .35s,height .35s;
}
.info-card:hover h3::after{background:var(--gold-400);height:2px;}
.info-card p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;}
.info-card ul{margin-top:14px;}
.info-card ul li{
  font-size:13.5px;color:var(--ivory-dim);font-weight:500;padding-left:16px;position:relative;margin-bottom:9px;line-height:1.5;
}
.info-card ul li::before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--gold-500);}

/* service detail block (image + text alternating) */
.svc-block{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
  padding:clamp(48px,7vw,96px) 0;
  border-bottom:1px solid var(--line-soft);
}
.svc-block:last-child{border-bottom:none;}
.svc-block.rev .svc-block-media{order:2;}
.svc-block.rev .svc-block-copy{order:1;}
.svc-block-copy .eyebrow{margin-bottom:16px;}
.svc-block-copy h3{
  font-family:var(--display);font-weight:300;font-size:clamp(26px,3.2vw,40px);color:var(--ivory);line-height:1.15;margin-bottom:20px;
}
.svc-block-copy p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;}
.svc-block-copy .tag-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.tag{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ivory-dim);
  border:1px solid var(--line);border-radius:999px;padding:8px 16px;
}
.svc-block-copy .mini-list{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;}
.svc-block-copy .mini-list li{
  font-size:13.5px;color:var(--ivory-dim);font-weight:500;padding-left:16px;position:relative;line-height:1.5;
}
.svc-block-copy .mini-list li::before{content:'';position:absolute;left:0;top:7px;width:5px;height:5px;border-radius:50%;background:var(--gold-500);}

/* stat strip (reused compact stats) */
.stat-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px;
  padding:44px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
}
.stat-strip.cols-5{grid-template-columns:repeat(5,1fr);gap:28px;}
.stat-strip .stat .num{font-size:clamp(30px,3.4vw,44px);}
.stat-strip .stat .lbl{font-size:11px;margin-top:10px;}

/* ISO / certificate cards */
.cert-card{
  display:block;padding:20px 20px 28px;border-radius:10px;border:1px solid var(--line-soft);background:var(--navy-900);
  text-align:center;transition:border-color .4s,transform .4s var(--ease-soft);
}
.cert-card:hover{border-color:var(--gold-500);transform:translateY(-6px);}
.cert-card .cert-thumb{margin-bottom:18px;}
.cert-card h4{
  font-family:var(--display);font-weight:500;font-size:18px;color:var(--ivory);margin-bottom:10px;
  display:inline-block;position:relative;padding-bottom:8px;
}
.cert-card h4::after{
  content:'';position:absolute;left:50%;bottom:0;width:26px;height:1px;background:var(--line-soft);
  transform:translateX(-50%);transition:background .35s,width .35s,height .35s;
}
.cert-card:hover h4::after{background:var(--gold-400);width:44px;height:2px;}
.cert-card p{font-size:12.5px;letter-spacing:.06em;color:var(--slate);font-weight:600;text-transform:uppercase;}

/* client badges — always in original brand colors, larger, more prominent */
.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.client-badge{
  border:1px solid var(--line-soft);border-radius:10px;padding:26px 22px;
  display:flex;align-items:center;justify-content:center;min-height:118px;
  background:var(--ivory);transition:border-color .35s,transform .35s,box-shadow .35s;
}
.client-badge:hover{border-color:var(--gold-500);transform:translateY(-4px) scale(1.03);box-shadow:0 16px 34px -14px rgba(241,167,31,.35);}
.client-badge img{
  width:100%;max-width:230px;height:auto;
}

/* quote / appreciation card */
.quote-card{
  padding:38px 34px;border-radius:10px;border:1px solid var(--line-soft);background:var(--navy-900);
  position:relative;
}
.quote-card .mark{font-family:var(--display);font-style:italic;font-size:52px;color:var(--gold-500);opacity:.4;line-height:1;margin-bottom:10px;}
.quote-card p{font-size:1.2em;line-height:1.6em;color:var(--ivory-dim);font-weight:300;}
.quote-card .who{margin-top:22px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-400);font-weight:700;}

/* contact page */
.contact-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:70px;align-items:start;}
.contact-info-list{margin-top:34px;display:flex;flex-direction:column;gap:26px;}
.contact-info-item{display:flex;gap:18px;align-items:flex-start;}
.contact-info-item .icon{
  width:44px;height:44px;flex-shrink:0;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);
}
.contact-info-item .icon svg{width:18px;height:18px;}
.contact-info-item h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:700;margin-bottom:6px;}
.contact-info-item p, .contact-info-item a{font-size:15px;color:var(--ivory-dim);font-weight:500;line-height:1.7;display:block;}
.contact-info-item a:hover{color:var(--gold-400);}
.contact-hours{margin-top:8px;padding-top:26px;border-top:1px solid var(--line-soft);font-size:13px;color:var(--slate-dim);font-weight:600;}

.contact-form{padding:40px;border-radius:12px;border:1px solid var(--line-soft);background:var(--navy-900);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-field{margin-bottom:22px;}
.form-field label{
  display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--slate);margin-bottom:10px;
}
.form-field input,.form-field textarea,.form-field select{
  width:100%;background:var(--navy-950);border:1px solid var(--line-soft);border-radius:6px;
  padding:14px 16px;font-family:var(--sans);font-size:14.5px;color:var(--ivory);font-weight:500;
  transition:border-color .3s;
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--gold-500);}
.form-field textarea{resize:vertical;min-height:120px;}
.form-submit{
  width:100%;justify-content:center;margin-top:6px;
  display:inline-flex;align-items:center;gap:14px;
  padding:16px 20px;border-radius:999px;background:var(--gold-400);color:var(--navy-950);
  font-size:.8em;letter-spacing:.16em;text-transform:uppercase;font-weight:300;
  transition:background .35s var(--ease-soft),gap .35s var(--ease-soft),
    box-shadow .35s var(--ease-soft),transform .35s var(--ease-soft);
}
.form-submit:hover{
  background:var(--gold-300);gap:20px;transform:translateY(-2px);
  box-shadow:0 10px 28px -8px rgba(241,167,31,0.55);
}
.form-submit:active{transform:translateY(0);}
.form-note{margin-top:16px;font-size:12px;color:var(--slate-dim);text-align:center;line-height:1.6;}

/* location strip */
.loc-strip{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;}
.loc-chip{
  font-size:12px;font-weight:600;color:var(--ivory-dim);border:1px solid var(--line-soft);
  border-radius:999px;padding:9px 18px;
}

/* simple CTA banner (reused across inner pages) */
.cta-banner{
  padding:clamp(56px,8vw,100px) 0;text-align:center;background:transparent;
  border-top:1px solid var(--line-soft);position:relative;
}
.cta-banner h2{font-family:var(--display);font-weight:300;font-size:2.2em;line-height:1.15;color:var(--ivory);}
.cta-banner .btn-gold{
  margin-top:34px;display:inline-flex;align-items:center;gap:16px;
  padding:16px 14px 16px 30px;border-radius:999px;background:var(--gold-400);color:var(--navy-950);
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;transition:background .3s,gap .3s;
}
.cta-banner .btn-gold .circle{
  width:30px;height:30px;border-radius:50%;background:var(--navy-950);color:var(--gold-400);
  display:flex;align-items:center;justify-content:center;
}
.cta-banner .btn-gold:hover{background:var(--gold-300);gap:22px;}

/* numbered timeline (org / process) */
.timeline{border-top:1px solid var(--line-soft);}
.timeline-item{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line-soft);}
.timeline-item .idx{font-family:var(--display);font-style:italic;color:var(--gold-500);font-size:22px;}
.timeline-item h4{font-size:17px;font-weight:600;color:var(--ivory);margin-bottom:8px;}
.timeline-item p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;max-width:640px;}

/* ================= 01 HERO (logo + stats combined) ================= */
#hero{
  min-height:100vh;
  min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  overflow:hidden;position:relative;
  background: radial-gradient(ellipse 85% 55% at 50% 24%, rgba(241,167,31,0.03), rgba(241,167,31,0) 64%);
  padding:60px 6vw 32px;
}
#hero .h-content{position:relative;z-index:2;max-width:900px;display:flex;flex-direction:column;align-items:center;}

/* ambient breathing halo behind the whole mark — subtle */
.hero-halo{
  position:absolute;top:6%;left:50%;transform:translateX(-50%);
  width:min(320px,58vw);height:min(320px,58vw);border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle, rgba(241,167,31,0.22) 0%, rgba(241,167,31,0.07) 42%, transparent 72%);
  filter:blur(6px);
  animation:haloBreathe 6s ease-in-out infinite;
}
@keyframes haloBreathe{0%,100%{opacity:.5;transform:translateX(-50%) scale(.97);}50%{opacity:.85;transform:translateX(-50%) scale(1.03);}}

/* glassy disc that holds the house mark */
#heroLogoGroup{will-change:transform,opacity;transition:transform .05s linear;}
.hero-intro-video-wrap{
  /* Client feedback (Oct 2026): the raw intro clip is a 16:9 frame with the BISCAT
     mark only occupying a thin band through the middle — on screen the logo read
     as tiny/shrunk, floating in a lot of empty space. Cropping the wrapper to a
     wider aspect ratio (object-fit:cover on the video below) zooms into that band
     so the mark fills the box, without touching the source clip. Checked against
     every frame of the animation (incl. the fork/spoon slide-in) — safe, nothing
     gets cut off. */
  position:relative;width:min(1100px,90vw);margin:0 auto;
  aspect-ratio:3/1;overflow:hidden;
}
.hero-intro-video{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:drop-shadow(0 18px 45px rgba(0,0,0,.5));
  transition:opacity .5s ease;
}
/* Crisp static wordmark, crossfaded in over the video's own last frame once the
   intro finishes playing (see HeroIntro.tsx) — sized/positioned to land exactly
   where the video's mark already sits, measured from its final frame, so the
   swap is invisible and what's left on screen is the sharp PNG, not video
   compression. */
.hero-intro-static{
  position:absolute;left:10.9%;top:25.2%;width:79.1%;height:41.7%;
  object-fit:contain;display:block;pointer-events:none;
  filter:drop-shadow(0 18px 45px rgba(0,0,0,.5));
  transition:opacity .5s ease;
}
/* Safari (desktop + every iOS browser, all WebKit) can't render the alpha channel
   of the transparent WebM, so the clip shows on a solid black box. The clip's
   background is pure black (#010101), so blending the logo with `screen` makes
   that black disappear into the page while the white/gold mark stays as is.
   Applied on every device/browser so no black box can show anywhere.
   Both layers need it: #heroLogoGroup and .h-content each form their own
   stacking context, so the blend has to reach up to the hero background. */
#hero .h-content,
#heroLogoGroup{mix-blend-mode:screen;}

.hero-mark-row{position:relative;width:min(210px, 34vw);margin:0 auto 14px;display:flex;align-items:center;justify-content:center;}
.hero-fork-wrap,.hero-knife-wrap{
  position:absolute;top:50%;transform:translateY(-50%);
  height:104%;width:auto;opacity:0;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.hero-fork-wrap{aspect-ratio:65/509;}
.hero-knife-wrap{aspect-ratio:51/517;}
.hero-fork-wrap{
  right:100%;margin-right:clamp(10px,3vw,44px);
  animation:forkSlideIn .85s cubic-bezier(.16,.8,.24,1) .55s both;
}
.hero-knife-wrap{
  left:100%;margin-left:clamp(10px,3vw,44px);
  animation:knifeSlideIn .85s cubic-bezier(.16,.8,.24,1) .55s both;
}
@keyframes forkSlideIn{
  0%{opacity:0;translate:180px 0;rotate:26deg;}
  100%{opacity:1;translate:0 0;rotate:0deg;}
}
@keyframes knifeSlideIn{
  0%{opacity:0;translate:-180px 0;rotate:-26deg;}
  100%{opacity:1;translate:0 0;rotate:0deg;}
}
.hero-fork,.hero-knife{
  display:block;height:100%;width:100%;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,0.55));
  translate:0 0;
  transition:transform .5s cubic-bezier(.22,.61,.36,1), translate .45s cubic-bezier(.22,.61,.36,1);
}
.hero-fork{
  --rotateZ:-12.88deg;--translateX:-2.3px;--translateY:-4.81px;
  transform:rotateZ(var(--rotateZ)) translateX(var(--translateX)) translateY(var(--translateY));
}
.hero-knife{
  --rotateZ:12.88deg;--translateX:2.3px;--translateY:-4.81px;
  transform:rotateZ(var(--rotateZ)) translateX(var(--translateX)) translateY(var(--translateY));
}
.hero-fork-wrap:hover .hero-fork,
.hero-knife-wrap:hover .hero-knife{translate:0 -9px;}
@media(max-width:520px){
  .hero-fork-wrap,.hero-knife-wrap{height:60%;}
  .hero-fork-wrap{margin-right:8px;}
  .hero-knife-wrap{margin-left:8px;}
}

.glow-mark-glass{
  position:relative;width:100%;aspect-ratio:1;z-index:1;
  border-radius:50%;
  background:rgba(255,255,255,0.025);
  border:1px solid rgba(241,167,31,0.14);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  animation:markZoom 1s cubic-bezier(.16,.8,.24,1) both;animation-delay:.05s;
}
.glow-mark-glass::before{
  content:'';position:absolute;inset:-14px;border-radius:50%;
  background:radial-gradient(circle, rgba(241,167,31,0.55), transparent 70%);
  opacity:0;z-index:-1;
  animation:markFlash 1.1s ease-out both;animation-delay:.05s;
}
@keyframes markZoom{
  0%{opacity:0;transform:scale(1.85);filter:blur(6px);}
  70%{opacity:1;filter:blur(0);}
  100%{opacity:1;transform:scale(1);}
}
@keyframes markFlash{
  0%{opacity:0;}
  45%{opacity:.9;}
  100%{opacity:0;}
}

/* glowing house-in-circle mark */
.glow-mark{
  position:absolute;inset:0;
}
.glow-mark svg{width:100%;height:100%;overflow:visible;}
.glow-mark .ring-a{fill:none;stroke:rgba(241,167,31,0.24);stroke-width:1;transform-origin:100px 100px;animation:ringSpin 50s linear infinite;}
.glow-mark .ring-b{fill:none;stroke:rgba(241,167,31,0.14);stroke-width:1;stroke-dasharray:2 7;transform-origin:100px 100px;animation:ringSpin 64s linear infinite reverse;}
@keyframes ringSpin{to{transform:rotate(360deg);}}
.glow-mark .house{
  fill:var(--gold-400);stroke:none;
  filter:drop-shadow(0 0 10px rgba(241,167,31,0.45));
  animation:pulseGlow 4.2s ease-in-out infinite;
}
.glow-mark .dot{fill:var(--gold-400);filter:drop-shadow(0 0 4px rgba(241,167,31,0.7));animation:dotTwinkle 3s ease-in-out infinite;}
.glow-mark .dot:nth-child(6){animation-delay:.4s;}
.glow-mark .dot:nth-child(7){animation-delay:.9s;}
.glow-mark .dot:nth-child(8){animation-delay:1.3s;}
.glow-mark .dot:nth-child(9){animation-delay:.2s;}
@keyframes dotTwinkle{0%,100%{opacity:.3;}50%{opacity:.85;}}
@keyframes pulseGlow{0%,100%{filter:drop-shadow(0 0 8px rgba(241,167,31,0.35));}50%{filter:drop-shadow(0 0 16px rgba(241,167,31,0.6));}}

/* wordmark — original logo colors only, one gentle breathing glow, no overlay blobs */
.wordmark-wrap{position:relative;width:min(460px,74vw);margin:6px 0 14px;z-index:1;}
.hero-wordmark{
  width:100%;height:auto;display:block;
  animation:wordmarkZoom .95s cubic-bezier(.16,.8,.24,1) 1.05s both, wordmarkGlow 4.5s ease-in-out 2s infinite;
}
@keyframes wordmarkZoom{
  0%{opacity:0;transform:scale(1.6);filter:blur(5px);}
  70%{opacity:1;filter:blur(0);}
  100%{opacity:1;transform:scale(1);}
}
@keyframes wordmarkGlow{
  0%,100%{filter:drop-shadow(0 0 6px rgba(241,167,31,0.18));}
  50%{filter:drop-shadow(0 0 16px rgba(241,167,31,0.4));}
}

/* the fork & spoon that form the B — cut out of the base wordmark image, placed back
   as their own layers so only they can move */
.wordmark-fork,.wordmark-spoon{
  position:absolute;left:0;width:10.5%;height:auto;
  opacity:0;
}
.wordmark-fork{top:16.26%;transform-origin:88% 45%;}
.wordmark-spoon{top:56.4%;transform-origin:88% 55%;}
.wordmark-fork{animation:forkSlotIn 1s cubic-bezier(.25,.7,.3,1) 1.05s both, forkClink 5s ease-in-out 2.7s infinite;}
.wordmark-spoon{animation:spoonSlotIn 1s cubic-bezier(.25,.7,.3,1) 1.05s both, spoonClink 5s ease-in-out 2.7s infinite;}
@keyframes forkSlotIn{
  0%{opacity:0;translate:-420% 0;rotate:-18deg;}
  8%{opacity:1;translate:-420% 0;rotate:-18deg;}
  64%{translate:14% 0;rotate:6deg;}
  82%{translate:-5% 0;rotate:-2.5deg;}
  93%{translate:1.5% 0;rotate:1deg;}
  100%{opacity:1;translate:0 0;rotate:0deg;}
}
@keyframes spoonSlotIn{
  0%{opacity:0;translate:-420% 0;rotate:-18deg;}
  8%{opacity:1;translate:-420% 0;rotate:-18deg;}
  64%{translate:14% 0;rotate:6deg;}
  82%{translate:-5% 0;rotate:-2.5deg;}
  93%{translate:1.5% 0;rotate:1deg;}
  100%{opacity:1;translate:0 0;rotate:0deg;}
}
@keyframes forkClink{
  0%,68%,100%{rotate:0deg;translate:0 0;scale:1;}
  76%{rotate:16deg;translate:2.2% 9%;scale:1;}
  80%{rotate:11deg;translate:1.6% 6.5%;scale:1.06;}
  84%{rotate:-5deg;translate:0.6% 1.5%;scale:.99;}
  89%{rotate:2deg;translate:0 0;scale:1;}
  94%{rotate:-.6deg;translate:0 0;scale:1;}
}
@keyframes spoonClink{
  0%,68%,100%{rotate:0deg;translate:0 0;scale:1;}
  76%{rotate:-16deg;translate:2.2% -9%;scale:1;}
  80%{rotate:-11deg;translate:1.6% -6.5%;scale:1.06;}
  84%{rotate:5deg;translate:0.6% -1.5%;scale:.99;}
  89%{rotate:-2deg;translate:0 0;scale:1;}
  94%{rotate:.6deg;translate:0 0;scale:1;}
}

/* scroll cue */
.hero-scroll-cue{
  position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;
  color:var(--slate);transition:color .3s;
  animation:cueFloat 2.4s ease-in-out infinite;
}
.hero-scroll-cue:hover{color:var(--gold-400);}
.hero-scroll-cue span{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;}
@keyframes cueFloat{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(7px);}}

.hero-title{
  font-family:var(--display);font-weight:300;line-height:1.25;
  font-size:clamp(16px, 2vw, 21px);color:var(--ivory);position:relative;z-index:1;
}
.hero-title .line2{
  font-style:italic;font-weight:400;color:var(--gold-400);display:block;margin-top:1px;
}

/* inline hero stats row — glass panel */
.hero-stats{
  display:flex;align-items:stretch;gap:0;margin-top:20px;position:relative;z-index:1;
  padding:20px 22px;border-radius:12px;
  background:rgba(255,255,255,0.022);
  border:1px solid rgba(255,255,255,0.07);
  border-top:1px solid rgba(241,167,31,0.22);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.hero-stats .stat{padding:0 18px;text-align:center;position:relative;}
.hero-stats .stat + .stat::before{
  content:'';position:absolute;left:0;top:4px;bottom:4px;width:1px;background:rgba(255,255,255,0.09);
}
.hero-stats .num{font-size:clamp(15px,1.7vw,20px);line-height:1.15;}
.hero-stats .lbl{margin-top:6px;font-size:8.5px;letter-spacing:.12em;line-height:1.3;}

/* particle wave background */
.particle-wave{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.26;}
.particle-wave svg{position:absolute;inset:0;width:100%;height:100%;}
.particle-wave .drift-dot{fill:var(--gold-400);}
.particle-wave .drift-dot.a{animation:driftFloat 9s ease-in-out infinite;}
.particle-wave .drift-dot.b{animation:driftFloat 12s ease-in-out infinite;animation-delay:2s;}
.particle-wave .drift-dot.c{animation:driftFloat 7.5s ease-in-out infinite;animation-delay:1s;}
.particle-wave .drift-dot.d{animation:driftFloat 10.5s ease-in-out infinite;animation-delay:3s;}
@keyframes driftFloat{0%,100%{transform:translateY(0);opacity:.3;}50%{transform:translateY(-16px);opacity:.8;}}

/* ================= 02 WHO WE ARE / WHAT WE DO ================= */
#whoweare{
  position:relative;
  padding:clamp(60px,8vw,110px) 0 clamp(72px,9vw,130px);
  background-color:transparent;
}
.who-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:70px;align-items:start;}
.who-copy .eyebrow{margin-bottom:18px;}
.who-copy h2{
  font-family:var(--display);font-weight:300;font-size:clamp(32px,4.2vw,52px);line-height:1.1;color:var(--ivory);
}
.who-copy h2 .italic{display:block;}
.who-rule{width:56px;height:2px;background:var(--gold-500);margin:26px 0 22px;}
.who-copy p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;max-width:440px;}
.who-btn{
  position:relative;overflow:hidden;
  margin-top:30px;display:inline-flex;align-items:center;gap:12px;
  padding:13px 12px 13px 24px;border-radius:999px;border:1px solid var(--gold-400);
  font-size:.8em;letter-spacing:.14em;text-transform:uppercase;font-weight:300;color:var(--ivory);
  transition:background .35s var(--ease-soft),color .35s var(--ease-soft),gap .35s var(--ease-soft),
    box-shadow .35s var(--ease-soft),transform .35s var(--ease-soft),border-color .35s var(--ease-soft);
}
.who-btn .circle{
  width:26px;height:26px;border-radius:50%;background:var(--gold-400);color:var(--navy-950);
  display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease);
  position:relative;z-index:1;
}
.who-btn .circle svg{display:block;}
.who-btn:hover{
  background:var(--gold-400);color:var(--navy-950);gap:16px;
  border-color:var(--gold-400);transform:translateY(-2px);
  box-shadow:0 10px 28px -8px rgba(241,167,31,0.55);
}
.who-btn:active{transform:translateY(0);box-shadow:0 4px 14px -6px rgba(241,167,31,0.5);}
.who-btn:hover .circle{background:var(--navy-950);color:var(--gold-400);transform:rotate(45deg);}

/* full-width centered about intro (Faqra-style) */
.about-intro{max-width:760px;margin:0 auto;text-align:center;}
.about-intro .who-rule{margin-left:auto;margin-right:auto;}
.about-intro p{max-width:100%;margin-left:auto;margin-right:auto;}
.about-intro .who-btn{margin-top:34px;}

.do-eyebrow{margin-bottom:18px;}
.do-list{border-top:1px solid var(--line-soft);}
.do-row{
  display:flex;align-items:center;gap:20px;padding:18px 2px;border-bottom:1px solid var(--line-soft);
  transition:padding-left .3s var(--ease-soft);
}
.do-row:hover{padding-left:8px;}
.do-row .ic{
  width:34px;height:34px;flex-shrink:0;color:var(--gold-400);display:flex;align-items:center;justify-content:center;
}
.do-row .ic svg{width:100%;height:100%;}
.do-row .idx{font-family:var(--display);font-style:italic;color:var(--gold-500);font-size:13px;width:22px;flex-shrink:0;}
.do-row .lbl{
  flex:1;font-size:15.5px;font-weight:600;color:var(--ivory-dim);transition:color .3s;
}
.do-row:hover .lbl{color:var(--ivory);}
.do-row .go{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);
  transition:transform .35s var(--ease),background .3s,border-color .3s,color .3s;
}
.do-row:hover .go{transform:rotate(45deg);background:var(--gold-400);border-color:var(--gold-400);color:var(--navy-950);}

/* ================= 03 ICON STRIP (values, reusable) ================= */
.icon-strip-section{
  padding:clamp(52px,7vw,84px) 0;
  background:rgba(0,0,0,0.10);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}
.icon-strip{display:grid;position:relative;}
.icon-strip.cols-6{grid-template-columns:repeat(6,1fr);}
.icon-strip.cols-5{grid-template-columns:repeat(5,1fr);}
.icon-strip .cell{padding:0 20px;text-align:center;position:relative;}
.icon-strip .cell + .cell::before{
  content:'';position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--line-soft);
}
.icon-strip .cell .ic{
  width:44px;height:44px;margin:0 auto 18px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);
}
.icon-strip .cell .ic svg{width:19px;height:19px;}
.icon-strip .cell h4{
  font-size:14.5px;font-weight:600;color:var(--ivory);margin-bottom:10px;
  display:inline-block;position:relative;padding-bottom:8px;
}
.icon-strip .cell h4::after{
  content:'';position:absolute;left:50%;bottom:0;width:18px;height:1px;background:var(--line-soft);
  transform:translateX(-50%);transition:background .35s,width .35s,height .35s;
}
.icon-strip .cell:hover h4::after{background:var(--gold-400);width:34px;height:2px;}
.icon-strip .cell:hover .ic{border-color:var(--gold-400);color:var(--gold-300);}
.icon-strip .cell .ic{transition:border-color .35s,color .35s;}

/* ================= WHY CHOOSE — distinct bordered-card treatment ================= */
.why-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:12px;
}
.why-card{
  position:relative;padding:34px 22px 28px;border-radius:12px;
  background:rgba(255,255,255,0.02);
  border:1px solid var(--line-soft);
  overflow:hidden;
  transition:transform .4s var(--ease-soft),border-color .4s,background .4s;
}
.why-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--gold-500), transparent);
  opacity:0;transition:opacity .4s;
}
.why-card:hover{
  transform:translateY(-8px);
  border-color:rgba(241,167,31,0.35);
  background:rgba(241,167,31,0.035);
}
.why-card:hover::before{opacity:1;}
.why-num{
  position:absolute;top:16px;right:20px;
  font-family:var(--display);font-style:italic;font-weight:400;
  font-size:34px;color:rgba(255,255,255,0.06);line-height:1;
  transition:color .4s;
}
.why-card:hover .why-num{color:rgba(241,167,31,0.18);}
.why-ic{
  width:50px;height:50px;border-radius:12px;margin-bottom:22px;
  background:rgba(241,167,31,0.08);
  border:1px solid rgba(241,167,31,0.2);
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);
  transition:background .4s,transform .4s var(--ease-soft);
}
.why-card:hover .why-ic{background:var(--gold-400);color:var(--navy-950);transform:rotate(-6deg) scale(1.05);}
.why-ic svg{width:22px;height:22px;}
.why-card h4{font-size:15.5px;font-weight:600;color:var(--ivory);margin-bottom:10px;position:relative;z-index:1;}
.why-card p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;position:relative;z-index:1;}
.icon-strip .cell p{font-size:12px;line-height:1.6;color:var(--slate);font-weight:500;}

/* ================= 04 EXPERIENCE (video/image + copy) ================= */
#experience{
  padding:clamp(72px,9vw,130px) 0;
  background:transparent;
  border-top:1px solid var(--line-soft);
}
.exp-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:60px;align-items:center;}
.exp-media{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/11;border:1px solid var(--line);background:var(--navy-800);}
.exp-media video, .exp-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1;filter:brightness(.78) saturate(1.1);}
.exp-media-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 22% 28%, rgba(241,167,31,0.32), transparent 55%),
    radial-gradient(circle at 78% 72%, rgba(241,167,31,0.22), transparent 55%),
    linear-gradient(135deg, var(--navy-850), var(--navy-950));
  background-size:200% 200%, 200% 200%, 100% 100%;
  animation:driftBg 12s ease-in-out infinite;
}
@keyframes driftBg{
  0%{background-position:0% 0%, 100% 100%, 0 0;}
  50%{background-position:35% 45%, 65% 55%, 0 0;}
  100%{background-position:0% 0%, 100% 100%, 0 0;}
}
.exp-media::after{
  content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(4,4,3,0.05), rgba(4,4,3,0.55));
}
.exp-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:66px;height:66px;border-radius:50%;z-index:2;
  background:rgba(4,4,3,0.5);backdrop-filter:blur(6px);border:1px solid var(--gold-400);
  display:flex;align-items:center;justify-content:center;color:var(--gold-300);
  transition:transform .4s var(--ease), background .4s;
}
.exp-play::after{
  content:'';position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(218,181,79,0.3);
  animation:ringPulse 2.6s ease-out infinite;
}
@keyframes ringPulse{0%{transform:scale(.9);opacity:.8;}100%{transform:scale(1.4);opacity:0;}}
.exp-media:hover .exp-play{transform:translate(-50%,-50%) scale(1.08);background:var(--gold-400);color:var(--navy-950);}
.exp-copy .eyebrow{margin-bottom:18px;}
.exp-copy h3{font-family:var(--display);font-weight:300;font-size:clamp(28px,3.6vw,44px);line-height:1.15;color:var(--ivory);}
.exp-copy h3 .italic{display:block;}
.exp-copy p{margin-top:20px;font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;max-width:440px;}

/* floating values slider card, over the experience photo */
.value-slider-card{
  position:absolute;right:22px;bottom:22px;z-index:3;
  width:min(230px,72%);padding:24px 22px;border-radius:12px;
  background:rgba(8,10,17,.68);
  border:1px solid rgba(241,167,31,.22);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 20px 40px -20px rgba(0,0,0,.7);
}
.value-slider-card .ic{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--gold-400);color:var(--gold-400);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.value-slider-card .ic svg{width:17px;height:17px;}
.value-slider-card h4{font-family:var(--display);font-weight:500;font-size:17px;color:var(--ivory);margin-bottom:8px;}
.value-slider-card p{font-size:12.5px;line-height:1.6;color:var(--slate);font-weight:500;}
.value-slider-nav{display:flex;gap:10px;margin-top:18px;}
.value-slider-nav button{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line);color:var(--ivory-dim);
  display:flex;align-items:center;justify-content:center;transition:border-color .3s,background .3s,color .3s;
}
.value-slider-nav button:hover{border-color:var(--gold-400);background:rgba(241,167,31,.1);color:var(--gold-400);}

/* ================= 05 INDUSTRIES GRID ================= */
#industries{
  padding:clamp(72px,9vw,130px) 0;
  background:rgba(0,0,0,0.10);
  border-top:1px solid var(--line-soft);
}
.industry-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.industry-card{
  position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 12px 28px -16px rgba(0,0,0,.55);
  transition:box-shadow .5s var(--ease-soft), border-color .5s var(--ease-soft), transform .5s var(--ease-soft);
}
.industry-card img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.3) sepia(.16) saturate(1.35) brightness(.76) contrast(1.08);
  transition:transform .9s var(--ease-soft), filter .5s var(--ease-soft);}
.industry-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(4,4,3,.92), rgba(4,4,3,.08) 58%);}
.industry-card::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  border:1px solid rgba(241,167,31,.14);border-radius:14px;
  transition:border-color .5s var(--ease-soft);
}
.industry-card:hover img{transform:scale(1.1);filter:grayscale(.14) sepia(.14) saturate(1.4) brightness(.86) contrast(1.06);}
.industry-card span{
  position:absolute;left:14px;right:14px;bottom:14px;z-index:2;text-align:left;
  font-size:11.5px;font-weight:700;color:var(--ivory);padding:0 0 12px;line-height:1.3;
}
.industry-card span::after{
  content:'';position:absolute;left:0;bottom:0;width:16px;height:2px;background:var(--gold-500);
  transition:width .35s var(--ease-soft),background .35s;
}
.industry-card:hover span::after{width:32px;background:var(--gold-300);}
.industry-card:hover{
  border-color:rgba(241,167,31,0.4);
  box-shadow:0 18px 38px -14px rgba(241,167,31,.3);
  transform:translateY(-3px);
}
.industry-card:hover::before{border-color:rgba(241,167,31,.4);}

/* ================= 06 TRUSTED BY + STATS + MISSION ================= */
#trusted{
  padding:clamp(64px,8vw,110px) 0;
  background-color:transparent;
  border-top:1px solid var(--line-soft);
}
.trusted-label{text-align:center;margin-bottom:34px;}
.trusted-track{
  display:flex;align-items:center;gap:56px;white-space:nowrap;width:max-content;
  animation:marquee 28s linear infinite;
}
.trusted-track span{
  font-family:var(--display);font-weight:500;font-size:17px;color:var(--ivory-dim);opacity:.75;
}
.trusted-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}

.mission-strip{
  margin-top:52px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;
}
.mission-strip .stat{padding:30px 20px;text-align:center;border-right:1px solid var(--line-soft);}
.mission-strip .stat:last-child{border-right:none;}
.mission-strip .stat .ic{width:30px;height:30px;margin:0 auto 12px;color:var(--gold-400);}
.mission-strip .stat .ic svg{width:100%;height:100%;}
.mission-strip .stat .num{font-size:clamp(20px,2vw,26px);}
.mission-strip .stat .lbl{font-size:10px;margin-top:6px;}

/* ================= VIDEO BANNER (Faqra-style) ================= */
.video-banner{
  position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--navy-950);
}
.video-parallax-wrap{position:absolute;inset:0;will-change:transform;}
.video-banner video{
  position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;opacity:.6;
  animation:kenburns 22s ease-in-out infinite alternate;
}
@keyframes kenburns{
  0%{transform:scale(1) translate(0,0);}
  100%{transform:scale(1.09) translate(-1%,-1%);}
}
.video-banner::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(4,4,3,.5) 0%, rgba(4,4,3,.15) 40%, rgba(4,4,3,.78) 100%);
}
.video-banner-content{position:relative;z-index:2;text-align:center;}
.video-play-btn{
  position:relative;width:78px;height:78px;border-radius:50%;
  border:1.5px solid rgba(242,239,230,0.55);background:rgba(255,255,255,0.06);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .3s,border-color .3s,transform .3s;
}
.video-play-btn::before{
  content:'';position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(241,167,31,0.5);
  animation:pulseRing 2.6s ease-out infinite;
}
@keyframes pulseRing{
  0%{transform:scale(0.82);opacity:.9;}
  100%{transform:scale(1.28);opacity:0;}
}
.video-play-btn:hover{background:var(--gold-400);border-color:var(--gold-400);transform:scale(1.06);}
.video-play-btn svg{color:var(--ivory);transition:color .3s;}
.video-play-btn:hover svg{color:var(--navy-950);}
.video-caption-bar{
  position:absolute;left:50%;bottom:9%;transform:translateX(-50%);z-index:2;
  width:min(560px,80vw);padding:16px 24px;text-align:center;
  background:rgba(4,4,3,0.72);backdrop-filter:blur(6px);border:1px solid var(--line);
}
.video-caption-bar .k{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory);}
.video-caption-bar .t{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-400);margin-top:4px;}
@media(max-width:640px){.hide-mobile{display:none;}}

/* ================= SECTION DIVIDER (subtle house mark + faint line, dim/background-blending) ================= */
.section-divider{
  width:100%;
  display:flex;align-items:center;justify-content:center;
  padding:20px 0;
}
.section-divider .sd-inner{
  position:relative;width:50%;max-width:560px;min-width:200px;
  display:flex;align-items:center;justify-content:center;gap:18px;
}
.section-divider .sd-line{
  flex:1;height:1px;min-width:0;
}
.section-divider .sd-line-l{
  background:linear-gradient(90deg, transparent 0%, rgba(241,167,31,0.05) 30%, rgba(241,167,31,0.16) 100%);
}
.section-divider .sd-line-r{
  background:linear-gradient(90deg, rgba(241,167,31,0.16) 0%, rgba(241,167,31,0.05) 70%, transparent 100%);
}
.section-divider .sd-mark{
  position:relative;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-500);opacity:.55;
}
.section-divider .sd-mark::before{
  content:'';position:absolute;inset:-10px;border-radius:50%;
  background:radial-gradient(circle, rgba(241,167,31,0.18), transparent 72%);
  z-index:-1;
}
@media(max-width:640px){
  .section-divider .sd-inner{width:74%;}
}
.section-divider .ring svg{display:block;flex-shrink:0;}

/* ================= FULL-SCREEN SECTION ================= */
.section-full{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;}
.section-full > .container{width:100%;}

/* ================= STATS LINE (Faqra strip) ================= */
.stats-line{
  padding:26px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 0;
}
.stats-line span{
  font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ivory-dim);
  padding:0 22px;position:relative;
}
.stats-line span:not(:last-child)::after{
  content:'•';position:absolute;right:-4px;color:var(--gold-500);
}

/* ================= SERVICES / CHOOSE YOUR PATH ================= */
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.path-card{
  border:1px solid var(--line-soft);border-radius:12px;padding:40px 30px;text-align:center;
  background:var(--navy-900);transition:border-color .35s,transform .35s,background .35s;
}
.path-card:hover{border-color:var(--gold-500);transform:translateY(-6px);background:var(--navy-850);}
.path-ic{width:52px;height:52px;margin:0 auto 22px;color:var(--gold-400);}
.path-ic svg{width:100%;height:100%;}
.path-card h3{font-family:var(--display);font-weight:500;font-size:19px;letter-spacing:.02em;color:var(--ivory);margin-bottom:12px;text-transform:uppercase;}
.path-card p{font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;margin-bottom:24px;}
.path-card .who-btn{padding:11px 10px 11px 20px;font-size:.8em;}

/* ================= PARTNER VENUE ================= */
.partner-venue{text-align:center;}
.partner-mark{
  font-family:var(--display);font-weight:300;font-size:clamp(30px,4vw,48px);letter-spacing:.04em;
  color:var(--ivory);margin:34px 0;
}
.partner-mark .italic{color:var(--gold-400);}
.camp-groups{display:flex;flex-wrap:wrap;justify-content:center;gap:40px;margin-top:32px;}
.camp-group-label{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold-400);
  margin-bottom:14px;
}
.camp-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:380px;}
.camp-tag{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 18px 9px 14px;border-radius:999px;border:1px solid var(--line);
  font-size:13px;font-weight:600;color:var(--ivory-dim);background:rgba(255,255,255,0.02);
  transition:border-color .3s,color .3s,background .3s;
}
.camp-tag::before{
  content:'';width:7px;height:7px;border-radius:50%;flex-shrink:0;
  background:var(--gold-400);box-shadow:0 0 6px 1px rgba(241,167,31,.6);
}
.camp-tag.soon{color:var(--slate);}
.camp-tag.soon::before{
  background:transparent;border:1.4px solid var(--slate);box-shadow:none;
  animation:campSoonPulse 1.8s ease-in-out infinite;
}
.camp-tag:hover{border-color:var(--gold-500);color:var(--ivory);background:rgba(241,167,31,0.06);}
@keyframes campSoonPulse{0%,100%{opacity:.4;transform:scale(.85);}50%{opacity:1;transform:scale(1);}}
.partner-venue p{max-width:620px;margin:0 auto;font-size:1.2em;line-height:1.6em;color:var(--slate);font-weight:300;}
.camp-photo-wrap{max-width:860px;margin:48px auto 0;}

/* alternating diagonal black->gold section glow (Faqra-style), continues down the page */
.section-glow-r{
  background-color:var(--navy-950);
  background-image:radial-gradient(65% 90% at 82% 35%, rgba(180,128,42,0.16) 0%, rgba(120,84,28,0.08) 32%, rgba(4,4,3,0) 68%);
}
.section-glow-l{
  background-color:var(--navy-950);
  background-image:radial-gradient(65% 90% at 18% 35%, rgba(180,128,42,0.16) 0%, rgba(120,84,28,0.08) 32%, rgba(4,4,3,0) 68%);
}

/* full-bleed kitchen photo below centered text (Our Kitchen section) */
.kitchen-photo{
  position:relative;width:100%;aspect-ratio:16/7;overflow:hidden;margin-top:8px;
}
.kitchen-photo img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;display:block;}
.kitchen-photo::before{
  content:'';position:absolute;inset:0;background:rgba(4,4,3,.38);z-index:1;
}
.kitchen-photo::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg, rgba(4,4,3,.92) 0%, rgba(4,4,3,.45) 32%, transparent 60%);
}
.kitchen-photo-cap{position:absolute;left:6vw;bottom:24px;z-index:2;}
.kitchen-photo-cap .k{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-400);}
.kitchen-photo-cap .t{font-size:15px;font-weight:600;color:var(--ivory);margin-top:4px;}
@media(max-width:640px){.kitchen-photo{aspect-ratio:4/5;}}

/* inline BISCAT "A" glyph, used wherever the word BISCAT is displayed large */
.biscat-a{
  width:.72em;height:.72em;display:inline-block;vertical-align:0em;
  color:var(--gold-400);margin:0 .01em;
}


#final{
  min-height:100vh;
  min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  background:var(--navy-950);
  border-top:1px solid var(--line-soft);
  text-align:center;
  padding:clamp(64px,9vw,120px) 0;
}
#final::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(ellipse 70% 70% at 50% 50%, transparent 55%, var(--navy-950) 100%);
}
.final-circle{
  position:absolute;top:50%;left:50%;
  width:20px;height:20px;border-radius:50%;
  border:1px solid var(--line);
  transform:translate(-50%,-50%);
  transition:width 1.6s var(--ease), height 1.6s var(--ease), opacity 1.6s var(--ease);
}
.in-view .final-circle{opacity:1;}
.in-view .final-circle.c1{width:min(1400px, 148vmin);height:min(1400px, 148vmin);animation:ringBreathe 8s ease-in-out .6s infinite;}
.final-circle.c2{width:14px;height:14px;transition-delay:.1s;}
.in-view .final-circle.c2{width:min(1000px, 108vmin);height:min(1000px, 108vmin);animation:ringBreathe 8s ease-in-out .8s infinite;}
.final-circle.c3{width:10px;height:10px;transition-delay:.2s;}
.in-view .final-circle.c3{width:min(660px, 72vmin);height:min(660px, 72vmin);animation:ringBreathe 8s ease-in-out 1s infinite;}
@keyframes ringBreathe{
  0%,100%{transform:translate(-50%,-50%) scale(1);}
  50%{transform:translate(-50%,-50%) scale(1.03);}
}
.final-content{position:relative;z-index:2;}
.final-h{
  font-family:var(--display);font-weight:300;font-size:clamp(42px,7vw,96px);line-height:1.06;
}
.final-cta{
  margin-top:44px;display:inline-flex;align-items:center;gap:16px;
  padding:18px 14px 18px 32px;border-radius:999px;
  background:transparent;border:1px solid var(--gold-400);
  font-size:.8em;letter-spacing:.18em;text-transform:uppercase;font-weight:300;color:var(--ivory);
  transition:background .4s var(--ease-soft), color .4s var(--ease-soft), gap .4s var(--ease-soft),
    box-shadow .4s var(--ease-soft), transform .4s var(--ease-soft);
}
.final-cta .circle{
  width:34px;height:34px;border-radius:50%;background:var(--gold-400);color:var(--navy-950);
  display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease);
}
.final-cta .circle svg{display:block;}
.final-cta:hover{
  background:var(--gold-400);color:var(--navy-950);gap:22px;transform:translateY(-2px);
  box-shadow:0 14px 34px -10px rgba(241,167,31,0.55);
}
.final-cta:active{transform:translateY(0);}
.final-cta:hover .circle{transform:rotate(45deg);background:var(--navy-950);color:var(--gold-400);}
.final-meta{margin-top:64px;font-size:11px;letter-spacing:.2em;color:var(--slate-dim);text-transform:uppercase;font-weight:700;}

/* ================= FOOTER ================= */
footer{
  background:radial-gradient(ellipse 70% 60% at 50% 100%, rgba(241,167,31,0.08), transparent 65%);
  position:relative;
  padding:0 0 34px;
  overflow:hidden;
}
footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold-500) 50%, transparent);
  opacity:.4;
}
footer .arc-field.right{right:-8%;bottom:-14%;width:460px;height:460px;opacity:.2;pointer-events:none;}

/* glassy floating CTA card */
.footer-cta-wrap{padding:76px 0 0;position:relative;z-index:3;}
.footer-lead{
  display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;
  padding:48px 46px;border-radius:20px;
  background:rgba(255,255,255,0.025);
  border:1px solid rgba(241,167,31,0.18);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 30px 60px -30px rgba(0,0,0,0.6);
  position:relative;overflow:hidden;
}
.footer-lead::before{
  content:'';position:absolute;top:-40%;right:-10%;width:60%;height:180%;
  background:radial-gradient(circle, rgba(241,167,31,0.16), transparent 65%);
  pointer-events:none;
}
.footer-lead h3{
  font-family:var(--display);font-weight:300;font-size:clamp(26px,3.2vw,40px);line-height:1.15;max-width:520px;
  position:relative;z-index:1;
}
.footer-lead .mail-link{
  display:inline-flex;align-items:center;gap:14px;margin-top:18px;
  font-family:var(--display);font-style:italic;font-size:clamp(19px,2.2vw,26px);color:var(--gold-400);
  border-bottom:1px solid var(--line);padding-bottom:6px;transition:gap .3s,border-color .3s;
  position:relative;z-index:1;
}
.footer-lead .mail-link:hover{gap:20px;border-color:var(--gold-400);}
.footer-lead .mail-link svg{transition:transform .4s var(--ease);}
.footer-lead .mail-link:hover svg{transform:rotate(45deg);}

.back-top{
  width:56px;height:56px;border-radius:50%;border:1px solid rgba(241,167,31,0.3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:var(--gold-400);
  background:rgba(255,255,255,0.02);backdrop-filter:blur(6px);
  transition:background .35s,border-color .35s,transform .35s;position:relative;z-index:1;
}
.back-top:hover{background:var(--gold-400);color:var(--navy-950);border-color:var(--gold-400);transform:translateY(-4px);}

.footer-top{
  display:grid;grid-template-columns:1.2fr 0.7fr 0.7fr 0.9fr;gap:50px;
  padding:70px 0;border-bottom:1px solid var(--line-soft);
  position:relative;z-index:2;
}
.footer-brand .brand{margin-bottom:20px;}
.footer-brand p{font-size:1.2em;line-height:1.6em;color:var(--slate);max-width:300px;font-weight:300;}
.footer-social{display:flex;gap:12px;margin-top:26px;}
.footer-social a{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  transition:background .3s,border-color .3s,transform .3s;color:var(--gold-400);
}
.footer-social a:hover{background:var(--gold-400);color:var(--navy-950);border-color:var(--gold-400);transform:translateY(-3px);}
.f-col h4{
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-400);font-weight:700;margin-bottom:24px;
  display:flex;align-items:center;gap:10px;
}
.f-col h4::before{content:'';width:14px;height:1px;background:var(--gold-500);opacity:.7;}
.f-col ul li{margin-bottom:14px;}
.f-col ul li a{
  font-size:14.5px;color:var(--ivory-dim);font-weight:500;transition:color .3s;
  display:inline-block;position:relative;padding-bottom:2px;
}
.f-col ul li a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-400);
  transition:width .3s var(--ease-soft);
}
.f-col ul li a:hover{color:var(--gold-400);}
.f-col ul li a:hover::after{width:100%;}
.f-col .note{font-size:11px;letter-spacing:.08em;color:var(--slate-dim);margin-top:20px;text-transform:uppercase;font-weight:600;}

.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:28px;
  font-size:12px;color:var(--slate-dim);position:relative;z-index:2;
}
.footer-bottom .legal{display:flex;gap:22px;}
.footer-bottom .legal a{transition:color .3s;}
.footer-bottom .legal a:hover{color:var(--gold-400);}
.footer-bottom .made{color:var(--slate-dim);}
.footer-bottom .made .em{color:var(--gold-400);font-family:var(--display);font-style:italic;}

/* ================= MOBILE NAV ================= */
.nav-links{display:flex;align-items:center;gap:38px;}
.nav-links a{
  font-size:12.5px;letter-spacing:.06em;font-weight:600;color:var(--ivory-dim);
  transition:color .3s;position:relative;
}
.nav-links a:hover, .nav-links a.active{color:var(--gold-400);}
.nav-links a.active::after{
  content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--gold-400);
}
.nav-right{display:flex;align-items:center;gap:26px;}
.nav-burger{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;position:relative;cursor:pointer;flex-shrink:0;
  border-radius:50%;border:1px solid var(--line);
  background:rgba(255,255,255,0.02);backdrop-filter:blur(6px);
  transition:border-color .35s,background .35s;
}
.nav-burger:hover{border-color:var(--gold-400);background:rgba(241,167,31,0.08);}
.nav-burger .bars{position:relative;width:19px;height:13px;}
.nav-burger span{
  position:absolute;left:0;height:1.5px;background:var(--ivory);border-radius:2px;
  transition:transform .4s var(--ease),opacity .3s,top .35s var(--ease),width .35s var(--ease-soft),background .3s;
}
.nav-burger span:nth-child(1){top:0;width:19px;}
.nav-burger span:nth-child(2){top:6px;width:13px;right:0;left:auto;}
.nav-burger span:nth-child(3){top:12px;width:19px;}
.nav-burger:hover span{background:var(--gold-400);}
.nav-burger:hover span:nth-child(2){width:19px;}
.nav-burger.open{border-color:var(--gold-400);background:var(--gold-400);}
.nav-burger.open span{background:var(--navy-950);}
.nav-burger.open span:nth-child(1){top:6px;width:19px;transform:rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){top:6px;width:19px;transform:rotate(-45deg);}

.mobile-menu{
  position:fixed;top:0;right:0;bottom:0;left:auto;z-index:895;
  width:min(82vw,380px);
  background:rgba(4,4,3,0.98);backdrop-filter:blur(14px);
  border-left:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:88px 32px 24px;
  opacity:0;pointer-events:none;transform:translateX(100%);
  transition:transform .55s var(--ease),opacity .4s var(--ease-soft);
  overflow:hidden;
}
.mobile-menu.open{opacity:1;pointer-events:auto;transform:translateX(0);}
.mm-links{display:flex;flex-direction:column;align-items:flex-start;flex:1;justify-content:flex-start;gap:4px;min-height:0;padding-top:6px;overflow-y:auto;}
.mm-dropdown{width:100%;}
.mm-dropdown-toggle{
  display:flex;align-items:center;gap:8px;width:100%;
  font-family:var(--display);font-weight:400;font-size:clamp(19px,2.6vw,25px);color:var(--ivory-dim);
  padding:5px 0;transition:color .3s;background:none;border:none;cursor:pointer;text-align:left;
}
.mm-dropdown-toggle svg{transition:transform .3s var(--ease-soft);flex-shrink:0;}
.mm-dropdown.open .mm-dropdown-toggle svg{transform:rotate(180deg);}
.mm-dropdown-toggle:hover,.mm-dropdown-toggle.active{color:var(--gold-400);}
.mm-dropdown-panel{
  display:grid;grid-template-rows:0fr;overflow:hidden;
  transition:grid-template-rows .4s var(--ease-soft);
}
.mm-dropdown-panel-inner{overflow:hidden;display:flex;flex-direction:column;min-height:0;}
.mm-dropdown.open .mm-dropdown-panel{grid-template-rows:1fr;}
.mm-dropdown-panel-inner a{
  font-family:var(--sans);font-weight:400;font-size:14px;letter-spacing:.02em;color:var(--slate-dim);
  padding:7px 0 7px 18px;border-left:1px solid var(--line);margin-left:2px;transition:color .25s,border-color .25s;
}
.mm-dropdown-panel-inner a:hover{color:var(--gold-400);border-color:var(--gold-400);}
.mobile-menu a{
  font-family:var(--display);font-weight:400;font-size:clamp(19px,2.6vw,25px);color:var(--ivory-dim);
  padding:5px 0;transition:color .3s;
}
.mobile-menu a:hover, .mobile-menu a.active{color:var(--gold-400);}
.mobile-menu .mm-cta{
  margin-top:14px;font-family:var(--sans);font-size:.75em;letter-spacing:.16em;text-transform:uppercase;font-weight:300;
  color:var(--navy-950);background:var(--gold-400);padding:12px 22px;border-radius:999px;
  display:inline-block;
  transition:background .35s var(--ease-soft),box-shadow .35s var(--ease-soft),transform .35s var(--ease-soft);
}
.mm-foot{
  flex-shrink:0;padding-top:16px;border-top:1px solid var(--line-soft);
  display:flex;flex-direction:column;align-items:flex-start;gap:12px;
}
.mm-phone{
  font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ivory-dim);letter-spacing:.02em;
  transition:color .3s;
}
.mm-phone:hover{color:var(--gold-400);}
.mm-social{display:flex;align-items:center;gap:10px;}
.mm-social a{
  width:26px;height:26px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ivory-dim);
  transition:color .3s,border-color .3s;
}
.mm-social a:hover{color:var(--gold-400);border-color:var(--gold-400);}
.mobile-menu .mm-cta:hover{
  background:var(--gold-300);color:var(--navy-950);transform:translateY(-2px);
  box-shadow:0 10px 28px -8px rgba(241,167,31,0.55);
}
.mobile-menu .mm-cta:active{transform:translateY(0);}


/* ================= RESPONSIVE ================= */
@media(max-width:1080px){
  .contact-grid{grid-template-columns:1fr;gap:56px;}
  .card-grid.cols-4{grid-template-columns:repeat(2,1fr);}
  .card-grid.cols-5{grid-template-columns:repeat(3,1fr);}
  .card-grid.cols-3{grid-template-columns:repeat(2,1fr);}
  .client-grid{grid-template-columns:repeat(3,1fr);}
  .who-grid,.exp-grid{grid-template-columns:1fr;gap:44px;}
  .icon-strip.cols-6,.icon-strip.cols-5{grid-template-columns:repeat(3,1fr);row-gap:34px;}
  .icon-strip .cell:nth-child(3n+1)::before{display:none;}
  .why-grid{grid-template-columns:repeat(3,1fr);}
  .industry-grid{grid-template-columns:repeat(3,1fr);}
  .path-grid{grid-template-columns:1fr;}
  .mission-strip{grid-template-columns:repeat(2,1fr);}
  .hero-stats{flex-wrap:wrap;justify-content:center;gap:18px 0;}
}
@media(max-width:980px){
  .footer-top{grid-template-columns:1fr 1fr;row-gap:50px;}
  .svc-block,.svc-block.rev{grid-template-columns:1fr;}
  .svc-block.rev .svc-block-media{order:1;}
  .svc-block.rev .svc-block-copy{order:2;}
  .stat-strip{grid-template-columns:repeat(2,1fr);row-gap:36px;}
  .stat-strip.cols-5{grid-template-columns:repeat(2,1fr);row-gap:36px;}
}
@media(max-width:820px){
  .footer-lead{flex-direction:column;align-items:flex-start;gap:26px;}
  .back-top{align-self:flex-end;}
  .card-grid.cols-2,.card-grid.cols-3,.card-grid.cols-4,.card-grid.cols-5{grid-template-columns:1fr;}
  .client-grid{grid-template-columns:repeat(2,1fr);}
  .form-row{grid-template-columns:1fr;}
  .contact-form{padding:28px 22px;}
  .industry-grid{grid-template-columns:repeat(2,1fr);}
  .mission-strip{grid-template-columns:1fr 1fr;}
}
@media(max-width:760px){
  .nav-cta .label{display:none;}
  .nav-cta{padding:11px;gap:0;}
  .stat-row{gap:40px;}
  .footer-top{grid-template-columns:1fr;}
  #story .arc-field{display:none;}
  .section-watermark{display:none;}
  .ring-cluster{display:none;}
  .brand-logo{height:42px;}
  .page-hero{padding:132px 0 56px;min-height:auto;}
  .page-hero .arc-field{display:none;}
  .timeline-item{grid-template-columns:1fr;gap:10px;}
  .icon-strip.cols-6,.icon-strip.cols-5{grid-template-columns:repeat(2,1fr);}
  .icon-strip .cell:nth-child(3n+1)::before{display:block;}
  .icon-strip .cell:nth-child(2n+1)::before{display:none;}
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .industry-grid{grid-template-columns:repeat(2,1fr);}
  .mission-strip{grid-template-columns:1fr;}
  .mission-strip .stat{border-right:none;border-bottom:1px solid var(--line-soft);}
  .hero-wordmark{width:78vw;}
}
