/* ============================================
   Marquis Holdings — v2 (green + gold, brand-accurate)
   ============================================ */

@font-face {
  font-family: 'Grotesk Giga';
  src: url('./assets/fonts/GrotskGiga-Regular.woff2') format('woff2'),
       url('./assets/fonts/GrotskGiga-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root, [data-theme='light']{
  /* Brand palette — sampled from official brand assets */
  --brand-green:      #0F5A53;
  --brand-green-deep: #0A403B;
  --brand-green-tint: #1B6E66;
  --brand-gold:       #B2924B;
  --brand-gold-light: #D2AA5F;
  --brand-gold-deep:  #8E7237;
  --brand-gold-accessible:#7B612D;

  /* Neutrals — warm, aligned with the gold */
  --color-bg:            #F8F5EE;
  --color-surface:       #FFFFFF;
  --color-surface-2:     #FCF9F1;
  --color-surface-offset:#EFEADD;
  --color-divider:       #D9D2BE;
  --color-border:        #C9C2AB;

  --color-text:          #12251F;
  --color-text-muted:    #5A6660;
  --color-text-faint:    #9AA39B;
  --color-text-inverse:  #F8F5EE;

  --color-primary:       var(--brand-green);
  --color-primary-hover: var(--brand-green-deep);
  --color-accent:        var(--brand-gold);
  --color-accent-hover:  var(--brand-gold-deep);

  --content-wide: 1320px;

  --font-display:  'Fraunces', 'Georgia', 'Times New Roman', serif;
  --font-wordmark: 'Grotesk Giga', 'Helvetica Neue', 'Arial', sans-serif;
  --font-body:     'Inter', 'Helvetica Neue', 'Arial', sans-serif;

  --text-xs:   clamp(.6875rem,.66rem + .18vw,.8125rem);
  --text-sm:   clamp(.8125rem,.79rem + .18vw,.9375rem);
  --text-base: clamp(1rem,.97rem + .18vw,1.0625rem);
  --text-lg:   clamp(1.125rem,1.05rem + .4vw,1.3125rem);
  --text-xl:   clamp(1.375rem,1.15rem + 1vw,2rem);
  --text-2xl:  clamp(1.875rem,1.25rem + 2.2vw,3.25rem);
  --text-3xl:  clamp(2.25rem,1rem + 3.5vw,4.5rem);
  --text-hero: clamp(2.25rem,.5rem + 4vw,4.5rem);

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;--space-32:8rem;
}

[data-theme='dark']{
  --color-bg:            #0A1614;
  --color-surface:       #0F1E1B;
  --color-surface-2:     #132622;
  --color-surface-offset:#183029;
  --color-divider:       #274038;
  --color-border:        #34544A;
  --color-text:          #ECE7D6;
  --color-text-muted:    #A29A80;
  --color-text-faint:    #6E6852;
  --color-text-inverse:  #0A1614;
  --color-primary:       var(--brand-gold-light);
  --color-primary-hover: var(--brand-gold);
  --color-accent:        var(--brand-gold-light);
  --color-accent-hover:  #E8BE72;
}

body{background:var(--color-bg);color:var(--color-text);font-weight:400}
.wrap{max-width:var(--content-wide);margin:0 auto;padding-inline:clamp(var(--space-6),4vw,var(--space-16))}
a{color:inherit;text-decoration:none}

.eyebrow{
  font-family:var(--font-body);
  font-size:var(--text-xs);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brand-gold-accessible);
  font-weight:500;
}

/* ============================================
   Header
   ============================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  transition: background 300ms cubic-bezier(.16,1,.3,1), backdrop-filter 300ms cubic-bezier(.16,1,.3,1);
  isolation: isolate;
}
.site-header.is-scrolled,
body.menu-open .site-header{
  background: oklch(from var(--brand-green-deep) l c h / .82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid oklch(from var(--brand-gold) l c h / .18);
}
body.menu-open .site-header{
  background: var(--brand-green-deep);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:96px;
  position: relative;
  z-index: 100;
}

/* Logo — two-tone brand lockup: gold gradient monogram + bone wordmark */
.logo{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.logo-svg{
  display: block;
  width: auto;
  height: 34px;
  aspect-ratio: 1571 / 191;
  background: url('./assets/logo/marquis-lockup-twotone.svg') no-repeat center / contain;
}
.site-header .logo-svg{ height: 32px; }
.footer-brand .logo-svg{ height: 30px; }

@media (max-width: 640px){
  .site-header .logo-svg{ height: 26px; }
  .footer-brand .logo-svg{ height: 24px; }
}

nav.primary-nav{ display:flex; align-items:center; gap:var(--space-10); }

/* Mobile drawer nav */
.mobile-nav{
  display: none;
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 90;
  background: var(--brand-green-deep);
  padding-top: 96px;
  animation: mobile-nav-in 260ms cubic-bezier(.16,1,.3,1);
  overflow-y: auto;
}
.mobile-nav:not([hidden]){ display: block; }
.mobile-nav .wrap{
  padding-block: var(--space-8);
  display: flex;
  flex-direction: column;
}
.mobile-nav a{
  font-family: var(--font-body);
  font-size: 1rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #F0EBD8;
  padding-block: var(--space-6);
  border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .15);
  text-decoration: none;
}
.mobile-nav a:first-child{ border-top: 1px solid oklch(from var(--brand-gold-light) l c h / .15); }
.mobile-nav a:hover, .mobile-nav a:focus-visible{ color: var(--brand-gold-light); }
@keyframes mobile-nav-in{
  from { opacity: 0; }
  to { opacity: 1; }
}
.mobile-toggle .icon-close{ display: none; }
.mobile-toggle[aria-expanded='true'] .icon-menu{ display: none; }
.mobile-toggle[aria-expanded='true'] .icon-close{ display: block; }
/* Prevent body scroll when menu open */
body.menu-open{ overflow: hidden; }
nav.primary-nav a{
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: oklch(from #F0EBD8 l c h / .78);
  font-weight: 500;
}
nav.primary-nav a:hover{ color: var(--brand-gold-light); }
.theme-toggle{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  color: oklch(from #F0EBD8 l c h / .7);
  margin-left: var(--space-6);
}
.theme-toggle:hover{ color: var(--brand-gold-light); }
.mobile-toggle{ display:none; color:#F0EBD8; }

/* ============================================
   Hero
   ============================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;
  overflow:hidden;
  background: var(--brand-green-deep);
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{
  width:100%; height:100%; object-fit:cover; opacity:.85;
  transform: scale(1.025);
  animation: hero-drift 28s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes hero-drift{
  from{ transform: scale(1.025) translate3d(0,0,0); }
  to{ transform: scale(1.065) translate3d(-0.7%,0.45%,0); }
}
.hero-bg::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      oklch(from var(--brand-green-deep) l c h / .82) 0%,
      oklch(from var(--brand-green-deep) l c h / .55) 40%,
      oklch(from var(--brand-green-deep) l c h / .3) 70%,
      oklch(from var(--brand-green-deep) l c h / .5) 100%
    ),
    linear-gradient(180deg,
      transparent 0%,
      oklch(from var(--brand-green-deep) l c h / .3) 65%,
      oklch(from var(--brand-green-deep) l c h / .75) 100%
    );
}
.hero-content{ position:relative; z-index:2; width:100%; padding-top: 96px; }
.hero-content .wrap{ max-width: 960px; }

.hero-kicker{
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--brand-gold-light);
  margin-bottom: var(--space-8);
  font-weight: 500;
}
.hero-rule{
  width: 48px; height: 1px;
  background: var(--brand-gold-light);
  margin-bottom: var(--space-8);
}
.hero h1{
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 1rem + 5vw, 5.5rem);
  color: #F0EBD8;
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.05;
  text-transform: none;
}
.hero h1 em{
  font-style: italic;
  color: var(--brand-gold-light);
  font-weight: 400;
}
.hero-sub{
  margin-top: var(--space-8);
  font-size: var(--text-lg);
  color: oklch(from #F0EBD8 l c h / .85);
  max-width: 48ch;
  font-weight: 300;
  line-height: 1.55;
}
.hero-actions{
  display:flex; gap: var(--space-6);
  margin-top: var(--space-12); align-items:center;
  flex-wrap: wrap;
}

.btn{
  display:inline-flex; align-items:center; gap: var(--space-2);
  padding: var(--space-4) var(--space-8);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
}
.btn-primary{
  background: var(--brand-gold-light);
  color: var(--brand-green-deep);
}
.btn-primary:hover{ background: var(--brand-gold); }

.link-underline{
  color: #F0EBD8;
  border-bottom: 1px solid oklch(from #F0EBD8 l c h / .35);
  padding-bottom: 3px;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
}
.link-underline:hover{ border-color: var(--brand-gold-light); color: var(--brand-gold-light); }

.hero-corner{
  position: absolute;
  bottom: var(--space-10);
  right: clamp(var(--space-6),4vw,var(--space-16));
  z-index: 2;
  text-align: right;
  color: oklch(from #F0EBD8 l c h / .55);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 2;
  font-weight: 400;
  display: none;
}
@media (min-width: 900px) { .hero-corner{ display:block; } }

/* Scroll cue */
.scroll-cue{
  position: absolute;
  bottom: var(--space-8);
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  color: oklch(from #F0EBD8 l c h / .55);
  font-family: var(--font-body);
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 200ms ease;
}
.scroll-cue:hover{ color: var(--brand-gold-light); }
.scroll-cue svg{
  animation: scroll-bob 2.4s ease-in-out infinite;
}
@keyframes scroll-bob{
  0%, 100% { transform: translateY(0); opacity: 0.55; }
  50% { transform: translateY(4px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce){
  .scroll-cue svg{ animation: none; }
  .hero-bg img{ animation: none; transform: scale(1.025); }
  .reveal-stage{ opacity: 1; transform: none; transition: none; }
  .model-stage::after{ width: 100%; transition: none; }
}
@media (max-width: 640px){
  .scroll-cue{ display: none; }
}

/* ============================================
   Sections generic
   ============================================ */
section{ padding-block: clamp(var(--space-20),10vw,var(--space-32)); }
.section-head h2{
  font-family: var(--font-display);
  font-size: clamp(2rem, 1rem + 2.4vw, 3.25rem);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.1;
  color: var(--color-text);
  text-transform: none;
  max-width: 20ch;
}
.section-head p{
  margin-top: var(--space-6);
  color: var(--color-text-muted);
  font-size: var(--text-lg);
  max-width: 56ch;
  font-weight: 300;
}

/* ============================================
   Statement / Approach
   ============================================ */
.statement{ background: var(--color-surface); padding-block: clamp(var(--space-16),7vw,var(--space-24)); }
.statement .wrap{ max-width: 860px; }
.statement p.lead{
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
  font-weight: 300;
  line-height: 1.35;
  color: var(--color-text);
  letter-spacing: -.01em;
  max-width: none;
}
.statement p.lead em{
  color: var(--brand-green);
  font-style: italic;
  font-weight: 400;
}
[data-theme='dark'] .statement p.lead em{ color: var(--brand-gold-light); }

/* ============================================
   Operating model
   ============================================ */
.operating-model{
  background: var(--brand-green-deep);
  color: #F0EBD8;
  overflow: hidden;
  padding-block: clamp(var(--space-16),7.5vw,var(--space-24));
}
.operating-model .wrap{
  display: grid;
  grid-template-columns: minmax(260px,.72fr) minmax(0,1.6fr);
  gap: clamp(var(--space-12),7vw,var(--space-24));
  align-items: start;
}
.model-intro{
  position: sticky;
  top: 144px;
}
.model-intro .eyebrow{ color: var(--brand-gold-light); }
.model-intro h2{
  margin-top: var(--space-6);
  font-family: var(--font-display);
  font-size: clamp(2rem,1rem + 2.4vw,3.25rem);
  font-weight: 400;
  line-height: 1.1;
  color: #F0EBD8;
  letter-spacing: -.015em;
}
.model-intro > p:last-child{
  margin-top: var(--space-6);
  color: oklch(from #F0EBD8 l c h / .72);
  max-width: 36ch;
  font-weight: 300;
}
.model-stages{
  list-style: none;
  padding: 0;
  margin: 0;
}
.model-stage{
  position: relative;
  display: grid;
  grid-template-columns: 64px minmax(140px,.7fr) 1.25fr;
  gap: var(--space-8);
  align-items: baseline;
  padding-block: var(--space-6);
  border-top: 1px solid oklch(from var(--brand-gold-light) l c h / .2);
}
.model-stage:last-child{ border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .2); }
.model-stage::after{
  content: '';
  position: absolute;
  left: 0;
  top: -1px;
  width: 0;
  height: 1px;
  background: var(--brand-gold-light);
  transition: width 900ms cubic-bezier(.16,1,.3,1);
}
.model-stage.is-visible::after{ width: 100%; }
.model-num{
  color: var(--brand-gold-light);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  letter-spacing: .08em;
}
.model-stage h3{
  font-family: var(--font-display);
  font-size: clamp(1.25rem,1rem + .8vw,1.75rem);
  font-weight: 400;
  color: #F0EBD8;
  line-height: 1.15;
}
.model-stage p{
  color: oklch(from #F0EBD8 l c h / .68);
  font-size: var(--text-sm);
  font-weight: 300;
}
.reveal-stage{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 700ms ease, transform 700ms cubic-bezier(.16,1,.3,1);
}
.reveal-stage.is-visible{ opacity: 1; transform: none; }
.model-action{
  grid-column: 2;
  margin-top: var(--space-8);
}
.model-link{
  display: inline-block;
  color: var(--brand-gold-light);
  border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .45);
  padding-bottom: 4px;
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.model-link:hover{ border-bottom-color: var(--brand-gold-light); }

/* ============================================
   Sectors — the "what we do" band
   ============================================ */
.sectors{ background: var(--color-surface-offset); }
.sector-grid{
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--color-border);
  border: 1px solid var(--color-border);
  margin-top: var(--space-12);
}
.sector-card{
  background: var(--color-surface-2);
  padding: var(--space-10) var(--space-8);
  min-height: 240px;
  display:flex; flex-direction: column; justify-content: space-between;
  position: relative;
  transition: background 250ms cubic-bezier(.16,1,.3,1), color 250ms cubic-bezier(.16,1,.3,1);
}
.sector-card::before{
  content: '';
  position: absolute; left: 0; top: 0; right: 0;
  height: 2px;
  background: var(--brand-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 300ms cubic-bezier(.16,1,.3,1);
}
.sector-card:hover{ background: var(--brand-green); }
.sector-card:hover::before{ transform: scaleX(1); }
.sector-card:hover .sector-num,
.sector-card:hover h3,
.sector-card:hover p,
.sector-card:hover .sector-tags span{ color: #F0EBD8; }
.sector-card:hover .sector-num{ color: var(--brand-gold-light); }
.sector-num{
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  color: var(--brand-gold-accessible);
  letter-spacing: .01em;
  line-height: 1;
  font-weight: 400;
}
[data-theme='dark'] .sector-num{ color: var(--brand-gold-light); }
.sector-card h3{
  font-family: var(--font-display);
  font-size: clamp(1.375rem, 1.05rem + 1vw, 1.75rem);
  font-weight: 400;
  color: var(--color-text);
  margin-top: var(--space-6);
  text-transform: none;
  letter-spacing: -.005em;
  line-height: 1.15;
}
.sector-card p{
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-top: var(--space-3);
  line-height: 1.55;
}

/* ============================================
   Principles — 4-column editorial list
   ============================================ */
.principles{ background: var(--color-surface); padding-block: clamp(var(--space-16),7.5vw,var(--space-24)); }
.principle-row{
  display: grid; grid-template-columns: 100px 1fr 1.4fr;
  gap: var(--space-12);
  padding-block: var(--space-8);
  border-top: 1px solid var(--color-divider);
  align-items: baseline;
}
.principle-row:last-of-type,
.principles > .wrap > div:last-child > .principle-row:last-child{
  border-bottom: 1px solid var(--color-divider);
}
.principle-num{
  font-family: var(--font-display);
  font-size: var(--text-base);
  color: var(--color-text-muted);
  letter-spacing: .1em;
}
.principle-title{
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1rem + .8vw, 1.75rem);
  font-weight: 400;
  color: var(--color-text);
  text-transform: none;
  letter-spacing: -.005em;
  line-height: 1.15;
}
.principle-desc{
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text-muted);
  max-width: 58ch;
}

/* ============================================
   Regions band — full-width dark plate
   ============================================ */
.regions{
  background: var(--brand-green);
  color: #F0EBD8;
  position: relative;
  scroll-margin-top: 84px;
  overflow: hidden;
}
/* Subtle monochromatic topographic contour texture behind the region map */
.regions::before{
  content: '';
  position: absolute;
  inset: 0;
  background: url('./assets/img/contour.svg') no-repeat center / cover;
  opacity: .05;
  pointer-events: none;
  z-index: 0;
}
[data-theme='dark'] .regions::before{ opacity: .07; }
.regions .wrap{
  display: grid; grid-template-columns: .58fr 1.42fr;
  gap: clamp(var(--space-12),6vw,var(--space-24)); align-items: center;
  position: relative;
  z-index: 1;
}
.regions .eyebrow{ color: #F0EBD8; }
.regions h2{
  font-family: var(--font-display);
  font-size: clamp(2rem, 1rem + 2.4vw, 3.25rem);
  font-weight: 400;
  color: #F0EBD8;
  margin-top: var(--space-6);
  line-height: 1.1;
  letter-spacing: -.015em;
  max-width: 16ch;
}
.regions-intro{
  margin-top: var(--space-6);
  font-size: var(--text-base);
  color: oklch(from #F0EBD8 l c h / .78);
  max-width: 44ch;
  font-weight: 300;
}
.region-summary{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 var(--space-8);
  margin-top: var(--space-12);
  border-top: 1px solid oklch(from var(--brand-gold-light) l c h / .18);
}
.region-summary div{
  padding-block: var(--space-4);
  border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .18);
}
.region-summary strong{
  display: block;
  color: #F0EBD8;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 400;
}
.region-summary span{
  display: block;
  color: #D2D6C9;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-top: 2px;
}
.regions-map-shell{
  min-width: 0;
  overflow: hidden;
  position: relative;
}
.regions-map-shell::before{
  content: '';
  position: absolute;
  width: 440px;
  height: 440px;
  right: 8%;
  top: 4%;
  background: radial-gradient(circle,oklch(from var(--brand-gold-light) l c h / .075),transparent 66%);
  pointer-events: none;
}
.regions-map-shell img{
  display: block;
  width: 100%;
  height: auto;
  position: relative;
}
.region-list{
  display: flex; flex-direction: column;
}
.region-item{
  display: flex; justify-content: space-between; align-items: baseline;
  padding-block: var(--space-6);
  border-top: 1px solid oklch(from var(--brand-gold-light) l c h / .18);
}
.region-item:last-child{ border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .18); }
.region-name{
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem);
  font-weight: 400;
  color: #F0EBD8;
  text-transform: none;
  letter-spacing: -.005em;
}
.region-tag{
  font-size: var(--text-xs);
  color: var(--brand-gold-light);
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* ============================================
   Opportunities preview
   ============================================ */
.opportunities-preview{
  background: var(--color-surface-offset);
}
.opportunities-preview .wrap{
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: clamp(var(--space-12),8vw,var(--space-24));
  align-items: center;
}
.opportunities-copy h2{
  font-family: var(--font-display);
  font-size: clamp(2rem,1rem + 2.4vw,3.25rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.015em;
  margin-top: var(--space-6);
  max-width: 17ch;
}
.opportunities-copy > p:last-child{
  color: var(--color-text-muted);
  font-size: var(--text-base);
  font-weight: 300;
  margin-top: var(--space-6);
  max-width: 52ch;
}
.opportunities-action{
  border-top: 1px solid var(--color-divider);
  display: grid;
}
.opportunities-action > span{
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--color-divider);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}
.opportunities-action .btn{
  justify-content: center;
  margin-top: var(--space-8);
}

/* ============================================
   Insights preview
   ============================================ */
.insights-preview{ background: var(--color-surface); }
.featured-insight{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-10);
  align-items: end;
  margin-top: var(--space-16);
  padding: clamp(var(--space-8),5vw,var(--space-16));
  background: var(--brand-green-deep);
  color: #F0EBD8;
  border-left: 3px solid var(--brand-gold);
}
.insight-type{
  color: var(--brand-gold-light);
  font-size: var(--text-xs);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.featured-insight h3{
  font-family: var(--font-display);
  font-size: clamp(1.75rem,1.1rem + 1.8vw,3rem);
  line-height: 1.08;
  font-weight: 400;
  margin-top: var(--space-6);
  max-width: 21ch;
}
.featured-insight p{
  color: oklch(from #F0EBD8 l c h / .68);
  margin-top: var(--space-5);
  max-width: 58ch;
  font-weight: 300;
}
.insight-read{
  color: var(--brand-gold-light);
  font-size: var(--text-xs);
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .5);
  padding-bottom: 4px;
  white-space: nowrap;
}
.featured-insight:hover .insight-read{ border-bottom-color: var(--brand-gold-light); }
.insight-actions{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}
.all-insights{
  display: inline-block;
  margin-top: var(--space-8);
  color: var(--brand-green);
  font-size: var(--text-xs);
  letter-spacing: .16em;
  text-transform: uppercase;
  border-bottom: 1px solid oklch(from var(--brand-green) l c h / .35);
  padding-bottom: 4px;
}

/* ============================================
   Founder plate
   ============================================ */
.founder{
  background: var(--brand-green-deep);
  color: #F0EBD8;
  text-align: center;
}
.founder .wrap{ max-width: 820px; }
.founder .eyebrow{ color: var(--brand-gold-light); }
.founder blockquote{
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1rem + 1.4vw, 2.25rem);
  font-weight: 300;
  line-height: 1.35;
  margin-top: var(--space-8);
  letter-spacing: -.01em;
  text-transform: none;
  font-style: italic;
  max-width: none;
  color: oklch(from #F0EBD8 l c h / .95);
}
.founder cite{
  display:block; margin-top: var(--space-10);
  font-style: normal;
  font-size: var(--text-sm);
  color: oklch(from var(--brand-gold-light) l c h / .85);
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* ============================================
   Texture break
   ============================================ */
.texture-break{
  position: relative; height: 60vh; overflow: hidden;
}
.texture-break img{ width: 100%; height: 100%; object-fit: cover; }
.texture-break-overlay{
  position: absolute; inset: 0;
  background: linear-gradient(90deg,
    oklch(from var(--brand-green-deep) l c h / .92) 0%,
    oklch(from var(--brand-green-deep) l c h / .75) 32%,
    transparent 62%);
  display: flex; align-items: center;
}
.texture-break-overlay .inner{
  max-width: 480px;
  margin-left: clamp(var(--space-6),4vw,var(--space-16));
}
.texture-break-overlay h3{
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 1.1rem + 1.6vw, 2.75rem);
  color: #F0EBD8;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.015em;
  max-width: 15ch;
}
.texture-break-overlay p{
  color: oklch(from #F0EBD8 l c h / .78);
  margin-top: var(--space-5);
  font-size: var(--text-base);
  font-weight: 300;
}

/* ============================================
   Contact / CTA — sits on warm bone to break the green stack
   ============================================ */
.contact-cta{
  background: var(--color-surface-offset);
  color: var(--color-text);
  position: relative;
  padding-block: clamp(var(--space-12),6vw,var(--space-20));
}
/* Gold hairline separator into contact + into footer */
.contact-cta::before,
.contact-cta::after{
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: var(--brand-gold);
  opacity: .45;
}
.contact-cta::before{ top: 0; }
.contact-cta::after{ bottom: 0; }
[data-theme='dark'] .contact-cta{ background: var(--color-surface); }
.contact-cta .contact-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-12);
}
.contact-cta .eyebrow{ color: var(--brand-gold-accessible); }
[data-theme='dark'] .contact-cta .eyebrow{ color: var(--brand-gold-light); }
.contact-cta h2{
  font-family: var(--font-display);
  font-size: clamp(2rem, 1rem + 2.4vw, 3.25rem);
  font-weight: 400;
  color: var(--color-text);
  margin-top: var(--space-6);
  line-height: 1.1;
  letter-spacing: -.015em;
  max-width: 18ch;
}
.contact-copy{
  margin-top: var(--space-4);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  font-weight: 300;
}
.contact-cta .email{
  display: inline-block;
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1rem + .55vw, 1.5rem);
  font-weight: 400;
  font-style: italic;
  color: var(--brand-green);
  border-bottom: 1px solid oklch(from var(--brand-green) l c h / .35);
  padding-bottom: 4px;
  letter-spacing: -.005em;
  transition: color 200ms ease, border-color 200ms ease;
}
.contact-cta .email:hover{
  color: var(--brand-gold-deep);
  border-bottom-color: var(--brand-gold-deep);
}
[data-theme='dark'] .contact-cta .email{
  color: var(--brand-gold-light);
  border-bottom-color: oklch(from var(--brand-gold-light) l c h / .5);
}

/* ============================================
   Footer
   ============================================ */
footer.site-footer{
  background: var(--brand-green-deep);
  color: oklch(from #F0EBD8 l c h / .82);
  padding-block: var(--space-16) var(--space-8);
}
.footer-top{
  display: grid;
  grid-template-columns: 1.6fr .8fr .8fr;
  gap: var(--space-16);
  padding-bottom: var(--space-12);
  border-bottom: 1px solid oklch(from var(--brand-gold-light) l c h / .15);
}
.footer-brand p{
  color: oklch(from #F0EBD8 l c h / .68);
  font-size: var(--text-sm);
  margin-top: var(--space-5);
  max-width: 36ch;
  font-weight: 300;
}
.footer-heading{
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--brand-gold-light);
  margin-bottom: var(--space-5);
  font-weight: 500;
}
.footer-col a, .footer-col p{
  display: block;
  color: oklch(from #F0EBD8 l c h / .72);
  font-size: var(--text-sm);
  margin-bottom: var(--space-3);
  font-weight: 300;
}
.primary-offices{
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-5);
}
.primary-offices address{
  color: oklch(from #F0EBD8 l c h / .68);
  font-size: var(--text-xs);
  line-height: 1.55;
  font-style: normal;
  font-weight: 300;
}
.primary-offices strong{
  display: block;
  color: #F0EBD8;
  font-size: var(--text-sm);
  font-weight: 400;
  margin-bottom: 2px;
}
.primary-offices span{ display: block; }
.other-locations{
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid oklch(from var(--brand-gold-light) l c h / .14);
  line-height: 1.7;
}
.office-note{
  color: #BDC7BC !important;
  font-size: 10px !important;
  line-height: 1.45;
  margin-top: var(--space-2) !important;
}
.footer-col a:hover{ color: var(--brand-gold-light); }
.footer-privacy{ color: inherit; }
.footer-privacy:hover{ color: var(--brand-gold-light); }
.footer-bottom{
  padding-top: var(--space-6);
  display: flex; justify-content: space-between;
  font-size: var(--text-xs);
  color: #BDC7BC;
  letter-spacing: .04em;
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 1024px){
  .sector-grid{ grid-template-columns: repeat(2, 1fr); }
  .principle-row{ grid-template-columns: 60px 1fr; row-gap: var(--space-3); }
  .principle-desc{ grid-column: 1 / -1; margin-left: 60px; margin-left: calc(60px + var(--space-12)); }
  .regions .wrap{ grid-template-columns: 1fr; gap: var(--space-10); }
  .footer-top{ grid-template-columns: 1fr 1fr; row-gap: var(--space-10); }
  .site-header .wrap{ height: 84px; }
  .operating-model .wrap{ grid-template-columns: 1fr; }
  .model-intro{ position: static; }
  .model-action{ grid-column: 1; }
  .opportunities-preview .wrap{ grid-template-columns: 1fr; }
}
@media (max-width: 1100px){
  nav.primary-nav{ display: none; }
  .mobile-toggle{ display: flex; width: 40px; height: 40px; align-items:center; justify-content:center; }
}
@media (max-width: 640px){
  .sector-grid{ grid-template-columns: 1fr; }
  .principle-row{ grid-template-columns: 1fr; gap: var(--space-2); padding-block: var(--space-8); }
  .principle-num{ font-size: var(--text-sm); }
  .principle-desc{ margin-left: 0; }
  .region-item{ flex-direction: column; align-items: flex-start; gap: var(--space-1); }
  .region-summary{ grid-template-columns: 1fr 1fr; }
  .regions-map-shell{ margin-inline: calc(var(--space-6) * -1); }
  .regions-map-shell img{ width: 100%; max-width: 100%; transform: none; }
  .footer-top{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction: column; gap: var(--space-2); }
  .hero{ min-height: 90vh; }
  .hero-actions{ gap: var(--space-5); }
  .texture-break{ height: 50vh; }
  .model-stage{ grid-template-columns: 42px 1fr; gap: var(--space-4); }
  .model-stage p{ grid-column: 2; }
  .featured-insight{ grid-template-columns: 1fr; align-items: start; }
  .insight-actions{ margin-top: var(--space-3); }
  .contact-cta .contact-row{ flex-direction: column; align-items: flex-start; gap: var(--space-8); }

}

/* ============================================
   Sector card — subtle interactive lift (motion-safe only)
   ============================================ */
@media (hover: hover) and (prefers-reduced-motion: no-preference){
  .sector-card{
    transition: background 300ms cubic-bezier(.16,1,.3,1),
                color 300ms cubic-bezier(.16,1,.3,1),
                transform 300ms cubic-bezier(.16,1,.3,1),
                box-shadow 300ms cubic-bezier(.16,1,.3,1);
  }
  .sector-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 18px 44px -26px rgba(10,64,59,.55);
    z-index: 1;
  }
}
