:root{
  --navy-900:#081221;
  --navy-800:#0b1e36;   /* rgb(11,30,54) — brand primary */
  --navy-700:#16304f;
  --navy-600:#264569;
  --navy-500:#3c5c82;
  --gold:#d4af37;       /* rgb(212,175,55) — brand secondary */
  --gold-light:#e6c665;
  --gold-dark:#a8841f;
  --cream:#f5f6f8;
  --white:#ffffff;
  --ink:#0f1c2e;
  --muted:#5c6a7c;
  --line:#e4e8ee;
  --radius:14px;
  --maxw:1180px;
}
*{box-sizing:border-box;}
.bg{overflow:hidden;}
.bg img{width:100%; height:100%; object-fit:cover; display:block;}
html{scroll-behavior:smooth; background:var(--navy-900);}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
h1,h2,h3,h4{font-family:'Playfair Display',serif; margin:0; color:var(--ink); line-height:1.15;}
p{margin:0; line-height:1.65; color:var(--muted);}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.eyebrow{
  display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:2.6px;
  text-transform:uppercase; color:var(--gold-dark); position:relative; padding-bottom:10px;
}
.eyebrow::before{content:""; position:absolute; bottom:0; left:0; width:100%; min-width:34px; height:2px; background:var(--gold-dark);}
.center .eyebrow::before, .center.eyebrow::before{left:50%; transform:translateX(-50%);}
.on-dark .center .eyebrow::before{background:var(--gold-light);}
.on-dark .eyebrow{color:var(--gold-light);}
.on-dark .eyebrow::before{background:var(--gold-light);}

.btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 30px;
  background:var(--gold); color:var(--navy-900); font-weight:700; font-size:14.5px;
  border-radius:8px; border:none; cursor:pointer; letter-spacing:.3px;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover{ background:var(--gold-light); transform:translateY(-2px); box-shadow:0 10px 24px rgba(212,175,55,.35);}
.btn.ghost{ background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.55);}
.btn.ghost:hover{background:rgba(255,255,255,.12); box-shadow:none;}
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2.5px solid var(--gold); outline-offset:2px;
}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:200;
  background:rgba(13,24,38,.97);
  border-bottom:1px solid rgba(255,255,255,.08);
  /* NOTE: intentionally no backdrop-filter here — it makes this element a
     containing block for position:fixed descendants (like .nav-links on
     mobile), which crushes the fixed-position mobile menu down to the
     header's own height instead of the full viewport. Background is
     already 97% opaque so the frosted-glass blur isn't missed. */
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:38px; width:38px; object-fit:contain;}
.brand-text{display:flex; flex-direction:column; line-height:1;}
.brand-text b{font-family:'Playfair Display',serif; color:var(--gold); font-size:19px; letter-spacing:1px;}
.brand-text span{font-size:9.5px; color:var(--gold-light); letter-spacing:2px; margin-top:3px;}
.nav-links{display:flex; align-items:center; gap:8px;}
.nav-links > a{
  color:rgba(255,255,255,.85); font-size:14px; font-weight:500;
  position:relative; padding:10px 14px; border-radius:7px;
}
.nav-links > a:hover{color:var(--white); background:rgba(255,255,255,.06);}
.nav-links > a.current{color:var(--gold-light);}

.has-dropdown{position:relative;}
.dropdown-toggle{
  display:flex; align-items:center; gap:5px; color:rgba(255,255,255,.85); font-size:14px; font-weight:500;
  padding:10px 14px; border-radius:7px; cursor:pointer; background:none; border:none; font-family:'Inter',sans-serif;
}
.dropdown-toggle:hover{color:var(--white); background:rgba(255,255,255,.06);}
.dropdown-toggle svg{width:11px; height:11px; transition:transform .2s ease;}
.has-dropdown:hover .dropdown-toggle svg, .has-dropdown.open .dropdown-toggle svg{transform:rotate(180deg);}
.dropdown-menu{
  position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%);
  background:var(--navy-800); border:1px solid rgba(255,255,255,.1); border-radius:12px;
  padding:10px; width:520px; display:grid; grid-template-columns:1fr 1fr; gap:2px;
  box-shadow:0 24px 50px rgba(0,0,0,.35);
  opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.has-dropdown:hover .dropdown-menu, .has-dropdown.open .dropdown-menu{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.dropdown-menu a{
  display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:8px; color:rgba(255,255,255,.9);
}
.dropdown-menu a:hover{background:rgba(255,255,255,.08);}
.dropdown-menu a b{font-size:13.5px; font-weight:600;}
.dropdown-menu a span{font-size:11.5px; color:rgba(255,255,255,.55);}
.dropdown-menu-narrow{width:340px; grid-template-columns:1fr;}

.nav-cta{display:flex; align-items:center; gap:16px;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{width:24px; height:2px; background:var(--white); display:block;}

@media (max-width:980px){
  .nav-links{
    position:fixed; top:76px; left:0; right:0; bottom:0; background:var(--navy-900);
    flex-direction:column; align-items:stretch; gap:0;
    overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch;
    max-height:0; transition:max-height .3s ease;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-links.open{max-height:calc(100vh - 76px);}
  .nav-links > a{width:100%; padding:16px 28px; border-bottom:1px solid rgba(255,255,255,.06); border-radius:0; box-sizing:border-box;}
  .has-dropdown{width:100%;}
  .dropdown-toggle{width:100%; padding:16px 28px; border-bottom:1px solid rgba(255,255,255,.06); justify-content:space-between; box-sizing:border-box;}
  .dropdown-menu{
    position:static; transform:none; width:100%; grid-template-columns:1fr; background:rgba(255,255,255,.03);
    opacity:1; visibility:visible; box-shadow:none; border:none; border-radius:0; padding:0;
    display:none; box-sizing:border-box; justify-items:stretch;
  }
  .has-dropdown.open .dropdown-menu{display:grid; transform:none;}
  .dropdown-menu a{width:100%; padding:14px 40px; border-radius:0; box-sizing:border-box;}
  .nav-cta .btn.ghost{display:none;}
  .burger{display:flex;}
}

/* Burger icon morphs into an X when menu is open (clear affordance on mobile) */
.burger span{transition:transform .25s ease, opacity .25s ease;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- HERO SLIDER (home) ---------- */
.hero{position:relative; overflow:hidden; min-height:660px; display:flex; align-items:center; background:var(--navy-900);}
.slide{position:absolute; inset:0; display:flex; align-items:center; opacity:0; visibility:hidden; transition:opacity 1.2s ease; z-index:1;}
.slide.active{opacity:1; visibility:visible; z-index:2;}
.slide .bg{position:absolute; inset:0; transform:scale(1.02);}
.slide .bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(13,24,38,.92) 15%, rgba(23,42,70,.72) 48%, rgba(23,42,70,.32) 100%);
}
.slide-content{position:relative; z-index:3; padding:0 28px; max-width:var(--maxw); margin:0 auto; width:100%;}
.slide-inner{max-width:640px;}
.slide .eyebrow{color:var(--gold-light); padding-bottom:0;}
.slide .eyebrow::before{display:none;}
.slide h1{color:var(--white); font-size:clamp(34px,5vw,58px); font-weight:700; margin:18px 0 20px; letter-spacing:.2px;}
.slide p.lead{color:rgba(255,255,255,.85); font-size:17px; max-width:520px; margin-bottom:32px;}
.slide .cta-row{display:flex; gap:16px; flex-wrap:wrap;}

.hero-dots{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:5; display:flex; gap:10px;}
.hero-dots button{
  width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; padding:0;
  transition:background .25s ease, transform .25s ease;
}
.hero-dots button.active{background:var(--gold); transform:scale(1.25);}
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.3); color:var(--white); width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:18px; transition:background .2s ease;
}
.hero-arrow:hover{background:rgba(255,255,255,.2);}
.hero-arrow.prev{left:24px;} .hero-arrow.next{right:24px;}
@media (max-width:640px){ .hero-arrow{display:none;} .hero{min-height:580px;} }

/* ---------- PAGE HEADER (inner pages banner) ---------- */
.page-header{
  position:relative; overflow:hidden; padding:172px 0 104px;
  background:linear-gradient(120deg, var(--navy-900) 0%, var(--navy-800) 55%, var(--navy-600) 100%);
}
.page-header.has-photo .bg{position:absolute; inset:0;}
.page-header.has-photo .bg::after{content:""; position:absolute; inset:0; background:linear-gradient(115deg, rgba(8,18,33,.95) 25%, rgba(11,30,54,.8) 58%, rgba(11,30,54,.5) 100%);}
.page-header .icon-wm{position:absolute; right:-30px; top:50%; transform:translateY(-50%); width:300px; height:300px; opacity:.13;}
.page-header .wrap{position:relative; z-index:2;}
.page-header h1{color:var(--white); font-size:clamp(32px,4.2vw,50px); margin:18px 0 16px;}
.page-header p{color:rgba(255,255,255,.85); font-size:16.5px; max-width:600px;}
.breadcrumb{display:flex; gap:8px; align-items:center; font-size:12.5px; color:rgba(255,255,255,.55); margin-bottom:10px;}
.breadcrumb a{color:rgba(255,255,255,.75);}
.breadcrumb a:hover{color:var(--gold-light);}

/* ---------- PRESENCE BAR ---------- */
.presence{background:var(--navy-800); padding:16px 0; border-top:1px solid rgba(255,255,255,.06);}
.presence .wrap{display:flex; flex-wrap:wrap; gap:10px 34px; justify-content:center; align-items:center;}
.presence span{color:rgba(255,255,255,.75); font-size:13px; letter-spacing:1.5px; text-transform:uppercase; font-weight:600;}
.presence span b{color:var(--gold-light); font-weight:600;}

/* ---------- SECTION GENERIC ---------- */
section{padding:96px 0;}
.section-head{max-width:680px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.4vw,40px); margin-top:16px;}
.section-head p{margin-top:16px; font-size:16px;}
.center{text-align:center; margin-left:auto; margin-right:auto;}

/* ---------- ABOUT / TEASER ---------- */
.about-block{background:var(--cream);}
.about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start;}
.values-list{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:8px;}
.value-chip{
  background:var(--white); border:1px solid var(--line); border-radius:10px; padding:16px 18px;
  font-size:14.5px; font-weight:600; color:var(--ink); display:flex; align-items:center; gap:10px;
}
.value-chip .dot{width:7px; height:7px; border-radius:50%; background:var(--gold-dark); flex:none;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr;} .values-list{grid-template-columns:1fr 1fr;} }

.timeline{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:20px;}
.timeline .item{border-top:3px solid var(--gold); padding-top:16px;}
.timeline .item h4{font-size:15px; margin-bottom:6px;}
.timeline .item p{font-size:13.5px;}
@media (max-width:860px){ .timeline{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .timeline{grid-template-columns:1fr;} }

/* ---------- ECOSYSTEM GRID ---------- */
.ecosystem{background:var(--white);}
.eco-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.eco-card{
  border:1px solid var(--line); border-radius:var(--radius); padding:28px 26px; background:var(--white);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  display:flex; flex-direction:column; gap:10px;
}
.eco-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(19,34,56,.1); border-color:transparent;}
.eco-icon{width:40px; height:40px;}
.eco-card h3{font-size:19px;}
.eco-card p{font-size:14.5px;}
.eco-card .go{margin-top:auto; font-size:13px; font-weight:700; color:var(--gold-dark); letter-spacing:.3px;}
@media (max-width:960px){ .eco-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .eco-grid{grid-template-columns:1fr;} }

/* ---------- BUSINESS UNIT PAGE BODY ---------- */
.unit-body{background:var(--cream); padding:80px 0;}
.unit-panel{
  background:var(--white); border:1px solid var(--line); border-radius:18px; padding:44px 40px;
  box-shadow:0 22px 50px rgba(19,34,56,.08);
}
.unit-panel h3{font-size:14px; text-transform:uppercase; letter-spacing:1.6px; color:var(--muted); font-family:'Inter',sans-serif; font-weight:700; margin-bottom:22px;}
.chip-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.chip{border:1px solid var(--line); border-radius:9px; padding:14px 16px; font-size:14.5px; font-weight:500; display:flex; align-items:center; gap:10px; background:var(--white);}
.chip svg{flex:none; width:15px; height:15px; color:var(--gold-dark);}
@media (max-width:900px){ .chip-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .chip-grid{grid-template-columns:1fr;} .unit-panel{padding:32px 24px;} }

.unit-extra{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:22px;}
.unit-extra .box{border-top:1px solid var(--line); padding-top:18px;}
.unit-extra .box h4{font-size:15px; margin-bottom:8px;}
.unit-extra .box p{font-size:14px;}
@media (max-width:700px){ .unit-extra{grid-template-columns:1fr;} }

.markets-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:6px;}
.market-tag{background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:7px 16px; font-size:13px; font-weight:600; color:var(--ink);}

.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:14px;}
.related-card{
  border:1px solid var(--line); border-radius:12px; padding:22px; display:flex; flex-direction:column; gap:8px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.related-card:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(19,34,56,.08);}
.related-card b{font-size:15.5px;}
.related-card p{font-size:13.5px;}
.related-card .go{font-size:12.5px; font-weight:700; color:var(--gold-dark); margin-top:auto;}
@media (max-width:860px){ .related-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .related-grid{grid-template-columns:1fr;} }

/* ---------- WHY PARTNER ---------- */
.why{background:linear-gradient(120deg,var(--navy-900),var(--navy-700)); padding:96px 0; position:relative; overflow:hidden;}
.why .section-head p, .why .section-head .eyebrow{color:rgba(255,255,255,.85);}
.why .section-head h2{color:var(--white);}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.why-item{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:22px 22px; display:flex; gap:12px; align-items:flex-start;}
.why-item svg{width:18px; height:18px; color:var(--gold); flex:none; margin-top:2px;}
.why-item p{color:rgba(255,255,255,.88); font-size:14.5px; font-weight:500; margin:0;}
@media (max-width:900px){ .why-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }

/* ---------- CONTACT ---------- */
.contact-block{background:var(--cream);}
.contact-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:start;}
.contact-list{margin-top:30px; display:flex; flex-direction:column; gap:18px;}
.contact-list a, .contact-list div{display:flex; align-items:center; gap:14px; font-size:15px; color:var(--ink); font-weight:600;}
.contact-list svg{width:19px; height:19px; color:var(--gold-dark); flex:none;}
.contact-form{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:38px; box-shadow:0 20px 50px rgba(19,34,56,.08);}
.field{margin-bottom:16px;}
.field label{display:block; font-size:12.5px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); margin-bottom:7px;}
.field input, .field textarea, .field select{
  width:100%; border:1px solid var(--line); border-radius:9px; padding:14px 16px;
  font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink); background:var(--cream); resize:vertical;
}
.field textarea{min-height:130px;}
.field input::placeholder, .field textarea::placeholder{color:#93a0b0;}
.form-note{font-size:12.5px; color:var(--muted); margin-top:10px;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

/* ---------- FOOTER ---------- */
footer{background:var(--navy-900); padding:56px 0 30px;}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08);}
.footer-brand .brand-text b{color:var(--gold);}
.footer-brand p{color:rgba(255,255,255,.6); font-size:13.5px; margin-top:14px; max-width:280px;}
.footer-col h4{color:var(--white); font-size:13px; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:16px; font-family:'Inter',sans-serif;}
.footer-col a{display:block; color:rgba(255,255,255,.62); font-size:14px; margin-bottom:10px;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; flex-wrap:wrap; gap:10px;}
.footer-bottom p{color:rgba(255,255,255,.45); font-size:12.5px;}
@media (max-width:860px){ .footer-top{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-top{grid-template-columns:1fr;} }

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

/* =======================================================================
   ANIMATIONS & HOVER / 3D EFFECTS
   ======================================================================= */

/* Scroll-reveal: elements fade + rise into view */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.16,.8,.28,1), transform .8s cubic-bezier(.16,.8,.28,1);
}
[data-reveal].is-visible{opacity:1; transform:translateY(0);}
[data-reveal="left"]{transform:translateX(-32px);}
[data-reveal="left"].is-visible{transform:translateX(0);}
[data-reveal="right"]{transform:translateX(32px);}
[data-reveal="right"].is-visible{transform:translateX(0);}
[data-reveal="zoom"]{transform:scale(.92);}
[data-reveal="zoom"].is-visible{transform:scale(1);}
/* staggered children */
[data-reveal-group] > *{
  opacity:0; transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.16,.8,.28,1), transform .7s cubic-bezier(.16,.8,.28,1);
}
[data-reveal-group].is-visible > *{opacity:1; transform:translateY(0);}
[data-reveal-group].is-visible > *:nth-child(1){transition-delay:.05s;}
[data-reveal-group].is-visible > *:nth-child(2){transition-delay:.12s;}
[data-reveal-group].is-visible > *:nth-child(3){transition-delay:.19s;}
[data-reveal-group].is-visible > *:nth-child(4){transition-delay:.26s;}
[data-reveal-group].is-visible > *:nth-child(5){transition-delay:.33s;}
[data-reveal-group].is-visible > *:nth-child(6){transition-delay:.40s;}
[data-reveal-group].is-visible > *:nth-child(7){transition-delay:.47s;}
[data-reveal-group].is-visible > *:nth-child(8){transition-delay:.54s;}
[data-reveal-group].is-visible > *:nth-child(9){transition-delay:.61s;}
[data-reveal-group].is-visible > *:nth-child(10){transition-delay:.68s;}
[data-reveal-group].is-visible > *:nth-child(11){transition-delay:.75s;}
@media (prefers-reduced-motion: reduce){
  [data-reveal], [data-reveal-group] > *{opacity:1 !important; transform:none !important; transition:none !important;}
}

/* Sticky nav: subtle "scrolled" state — only paint-safe properties (box-shadow,
   background, transform) are animated here. Deliberately NOT animating
   height/width/padding on scroll: those trigger layout reflow on every
   scroll frame and are what caused the visible tearing/"lines" while
   scrolling. Transform + opacity + box-shadow are compositor-only and stay
   smooth even on lower-powered mobile devices. */
header{transition:box-shadow .3s ease, background-color .3s ease;}
header.scrolled{box-shadow:0 10px 30px rgba(0,0,0,.25); background-color:rgba(8,15,26,.98);}
.brand img{transition:transform .3s ease; transform-origin:left center;}
header.scrolled .brand img{transform:scale(0.86);}

/* 3D tilt cards */
.tilt{ transform-style:preserve-3d; will-change:transform; transition:transform .15s ease, box-shadow .3s ease; }
.tilt::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(135deg, rgba(212,175,55,.16), transparent 60%);
  opacity:0; transition:opacity .3s ease;
}
.tilt:hover::after{opacity:1;}
.eco-card, .related-card, .compact-card, .value-chip{position:relative;}

/* Button shine sweep on hover */
.btn{position:relative; overflow:hidden;}
.btn::before{
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg); transition:left .55s ease;
}
.btn:hover::before{left:130%;}

/* Nav link underline grow from center */
.nav-links > a::after{left:50%; right:50%; transform:translateX(-50%);}
.nav-links > a:hover::after{left:0; right:0; width:100%;}

/* Hero slide Ken Burns slow zoom on the active slide */
.slide .bg{transition:transform 7s ease-out;}
.slide.active .bg{transform:scale(1.08);}
.slide:not(.active) .bg{transform:scale(1);}

/* Page header subtle parallax (background-attachment fallback safe) */
.page-header.has-photo .bg{will-change:transform;}

/* Eco / related / compact cards lift + glow (enhances existing hover transforms) */
.eco-card:hover, .related-card:hover{
  box-shadow:0 22px 48px rgba(11,30,54,.16), 0 0 0 1px rgba(212,175,55,.25);
}
.compact-card{transition:transform .3s ease, box-shadow .3s ease;}
.compact-card:hover{transform:translateY(-6px); box-shadow:0 22px 48px rgba(11,30,54,.16);}

/* Value chip micro-interaction */
.value-chip{transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.value-chip:hover{transform:translateY(-3px); box-shadow:0 10px 24px rgba(11,30,54,.1); border-color:var(--gold);}
.value-chip:hover .dot{background:var(--gold);}

/* Chip hover */
.chip{transition:transform .2s ease, border-color .2s ease, background .2s ease;}
.chip:hover{transform:translateX(3px); border-color:var(--gold); background:#fffdf6;}

/* Market tag hover */
.market-tag{transition:transform .2s ease, background .2s ease, color .2s ease;}
.market-tag:hover{background:var(--navy-800); color:var(--white); transform:translateY(-2px);}

/* Footer link slide-in underline */
.footer-col a{position:relative; width:fit-content; transition:color .2s ease, transform .2s ease;}
.footer-col a:hover{transform:translateX(4px);}

/* Scroll-to-top button */
.scroll-top{
  position:fixed; bottom:26px; right:26px; z-index:150;
  width:48px; height:48px; border-radius:50%;
  background:var(--navy-800); color:var(--gold); border:1px solid rgba(212,175,55,.4);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s ease, background .2s ease;
  box-shadow:0 12px 28px rgba(11,30,54,.3);
}
.scroll-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.scroll-top:hover{background:var(--gold); color:var(--navy-900);}
.scroll-top svg{width:20px; height:20px;}

/* Image hover zoom wrapper */
.img-zoom{overflow:hidden; border-radius:var(--radius);}
.img-zoom img{transition:transform .6s ease;}
.img-zoom:hover img{transform:scale(1.08);}

/* Animated underline accent for section headings */
.section-head h2{position:relative; display:inline-block;}

/* Floating gold particles on hero (decorative, purely visual) */
.hero-particles{position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden;}
.hero-particles span{
  position:absolute; bottom:-10px; width:5px; height:5px; border-radius:50%;
  background:var(--gold); opacity:.55; animation:floatUp linear infinite;
}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0); opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.4;}
  100%{transform:translateY(-620px) translateX(30px); opacity:0;}
}
@media (prefers-reduced-motion: reduce){ .hero-particles{display:none;} }

/* Fade-in page transition on load — gentle, no harsh flash */
body{animation:pageFadeIn .35s ease-out both;}
@keyframes pageFadeIn{from{opacity:.4;} to{opacity:1;}}

/* =======================================================================
   FOUNDER PAGE
   ======================================================================= */
.founder-hero{
  position:relative; overflow:hidden; background:var(--navy-800);
  padding:150px 0 0; display:flex; align-items:flex-end;
}
.founder-hero-grid{
  position:relative; z-index:2; display:grid; grid-template-columns:.9fr 1.1fr; gap:0; align-items:end;
}
.founder-portrait{
  position:relative; height:520px; border-radius:20px 20px 0 0; overflow:hidden;
  background:linear-gradient(160deg, var(--navy-700), var(--navy-900));
  display:flex; align-items:center; justify-content:center;
}
.founder-portrait .initials{
  font-family:'Playfair Display',serif; font-size:140px; color:rgba(212,175,55,.28); font-weight:700;
}
.founder-portrait::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(212,175,55,.14), transparent 60%);
}
.founder-intro{padding:60px 20px 60px 56px;}
.founder-intro .eyebrow{color:var(--gold-light);}
.founder-intro h1{color:var(--white); font-size:clamp(30px,4vw,46px); margin:16px 0 8px;}
.founder-intro .role{color:var(--gold-light); font-size:15px; font-weight:600; letter-spacing:.5px; margin-bottom:20px; display:block;}
.founder-intro p{color:rgba(255,255,255,.82); font-size:16px; max-width:480px;}
@media (max-width:900px){
  .founder-hero-grid{grid-template-columns:1fr;}
  .founder-portrait{height:340px; border-radius:20px 20px 0 0;}
  .founder-intro{padding:36px 24px 48px;}
}

.founder-quote{
  background:var(--cream); padding:90px 0; text-align:center; position:relative;
}
.founder-quote blockquote{
  font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(22px,3vw,34px);
  color:var(--navy-800); max-width:820px; margin:0 auto; line-height:1.5; position:relative;
}
.founder-quote blockquote::before{
  content:"\201C"; font-family:'Playfair Display',serif; font-size:100px; color:var(--gold);
  opacity:.35; position:absolute; top:-50px; left:50%; transform:translateX(-50%);
}
.founder-quote cite{display:block; margin-top:26px; font-style:normal; font-size:13.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold-dark); font-weight:700;}

.founder-journey{background:var(--white); padding:96px 0;}
.journey-track{position:relative; margin-top:50px;}
.journey-track::before{
  content:""; position:absolute; left:20px; top:6px; bottom:6px; width:2px;
  background:linear-gradient(var(--gold), var(--line));
}
.journey-step{position:relative; padding-left:64px; margin-bottom:44px;}
.journey-step:last-child{margin-bottom:0;}
.journey-step::before{
  content:""; position:absolute; left:11px; top:4px; width:20px; height:20px; border-radius:50%;
  background:var(--white); border:3px solid var(--gold); z-index:2;
}
.journey-step h4{font-size:12.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold-dark); font-family:'Inter',sans-serif; font-weight:700; margin-bottom:8px;}
.journey-step h3{font-size:21px; margin-bottom:8px;}
.journey-step p{font-size:15px; max-width:640px;}

.founder-values{background:var(--navy-800); padding:90px 0;}
.founder-values .section-head h2{color:var(--white);}
.founder-values .section-head .eyebrow{color:var(--gold-light);}
.founder-note{
  background:rgba(212,175,55,.08); border:1px dashed rgba(212,175,55,.5); border-radius:14px;
  padding:22px 26px; margin-top:40px; font-size:13.5px; color:rgba(255,255,255,.75);
}
.founder-note b{color:var(--gold-light);}

.leadership-highlight{
  margin-top:40px; padding:32px 38px; border-radius:16px;
  background:linear-gradient(120deg, rgba(212,175,55,.1), rgba(212,175,55,.03));
  border-left:4px solid var(--gold);
  font-family:'Playfair Display',serif; font-style:italic;
  font-size:clamp(18px,2.2vw,22px); line-height:1.6; color:var(--navy-800);
}
@media (max-width:600px){ .leadership-highlight{padding:24px 22px;} }

/* ---- Team grid (multiple founders) ---- */
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:10px;}
.team-card{
  background:var(--white); border:1px solid var(--line); border-radius:20px; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease;
}
.team-card:hover{transform:translateY(-6px); box-shadow:0 26px 54px rgba(11,30,54,.14);}
.team-card .portrait{
  aspect-ratio:4/5; background:linear-gradient(155deg, var(--navy-700), var(--navy-900));
  display:flex; align-items:center; justify-content:center; position:relative;
}
.team-card .portrait .initials{font-family:'Playfair Display',serif; font-size:76px; color:rgba(212,175,55,.35); font-weight:700;}
.team-card .portrait img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 22%;}
.team-card .info{padding:26px 28px 30px;}
.team-card .info h3{font-size:21px; margin-bottom:4px;}
.team-card .info .role{display:block; font-size:12.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold-dark); font-weight:700; margin-bottom:14px;}
.team-card .info p{font-size:14px;}

.team-grid-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:1000px){ .team-grid-3{grid-template-columns:1fr 1fr;} }
@media (max-width:760px){ .team-grid-3{grid-template-columns:1fr;} }

/* ---- Founder letter (portrait + message) ---- */
.founder-letter-grid{display:grid; grid-template-columns:.55fr 1fr; gap:50px; align-items:start;}
.founder-portrait-solo{
  position:relative; height:440px; border-radius:20px; overflow:hidden;
  background:linear-gradient(155deg, var(--navy-700), var(--navy-900));
  display:flex; align-items:center; justify-content:center;
}
.founder-portrait-solo .initials{font-family:'Playfair Display',serif; font-size:120px; color:rgba(212,175,55,.32); font-weight:700;}
.founder-portrait-solo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center;}
.founder-portrait-solo .role-tag{
  position:absolute; left:18px; right:18px; bottom:18px; background:rgba(8,18,33,.85);
  border-radius:12px; padding:16px 18px;
}
.founder-portrait-solo .role-tag b{display:block; color:var(--white); font-size:17px; font-family:'Playfair Display',serif; margin-bottom:3px;}
.founder-portrait-solo .role-tag span{color:var(--gold-light); font-size:11.5px; letter-spacing:1px; text-transform:uppercase; font-weight:700;}
.founder-letter-text p{font-size:16px; line-height:1.85; color:#33404f; margin-bottom:20px;}
.founder-letter-text p.signature{font-family:'Playfair Display',serif; font-style:italic; font-size:19px; color:var(--navy-800); margin-top:30px; line-height:1.5;}
@media (max-width:860px){
  .founder-letter-grid{grid-template-columns:1fr;}
  .founder-portrait-solo{height:280px;}
  .founder-portrait-solo .initials{font-size:90px;}
}

.partner-spotlight{
  background:var(--white); border:1px solid var(--line); border-radius:20px; padding:40px 44px;
  margin-top:30px; display:grid; grid-template-columns:.5fr 1fr; gap:36px; align-items:center;
}
.partner-mark{
  height:150px; border-radius:14px; background:var(--cream); display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-size:15px; color:var(--muted); text-align:center; padding:16px; font-style:italic;
}
.partner-spotlight h3{font-size:20px; margin-bottom:6px;}
.partner-spotlight .role{display:block; font-size:12px; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold-dark); font-weight:700; margin-bottom:12px;}
.partner-spotlight p{font-size:14.5px;}
@media (max-width:760px){
  .team-grid{grid-template-columns:1fr;}
  .partner-spotlight{grid-template-columns:1fr; padding:30px 26px;}
  .partner-mark{height:110px;}
}

/* =======================================================================
   STORIES / BLOG
   ======================================================================= */
.stories-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(120deg, var(--navy-900), var(--navy-700));
  padding:150px 0 90px; text-align:center;
}
.stories-hero .bg{position:absolute; inset:0;}
.stories-hero .bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,18,33,.88) 0%, rgba(11,30,54,.9) 100%);}
.stories-hero .wrap{position:relative; z-index:2;}
.stories-hero .eyebrow{color:var(--gold-light);}
.stories-hero h1{color:var(--white); font-size:clamp(32px,4.4vw,52px); margin:16px 0 14px;}
.stories-hero p{color:rgba(255,255,255,.82); max-width:560px; margin:0 auto; font-size:16.5px;}

.stories-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.story-card{
  border-radius:18px; overflow:hidden; border:1px solid var(--line); background:var(--white);
  display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease;
}
.story-card:hover{transform:translateY(-6px); box-shadow:0 26px 54px rgba(11,30,54,.16);}
.story-card .thumb{
  height:200px; background-size:cover; background-position:center; position:relative;
}
.story-card .thumb .tag{
  position:absolute; top:16px; left:16px; background:var(--gold); color:var(--navy-900);
  font-size:11.5px; font-weight:700; letter-spacing:.5px; padding:6px 12px; border-radius:999px;
}
.story-card.coming-soon .thumb{
  background:linear-gradient(135deg, var(--navy-700), var(--navy-900));
  display:flex; align-items:center; justify-content:center;
}
.story-card.coming-soon .thumb span.label{
  color:rgba(255,255,255,.4); font-family:'Playfair Display',serif; font-size:15px; font-style:italic;
}
.story-card .content{padding:24px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1;}
.story-card h3{font-size:19px;}
.story-card p{font-size:14px;}
.story-card .go{margin-top:auto; font-size:13px; font-weight:700; color:var(--gold-dark);}
.story-card.coming-soon{opacity:.72;}
@media (max-width:960px){ .stories-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .stories-grid{grid-template-columns:1fr;} }

/* ---- Story article page ---- */
.story-hero{
  position:relative; min-height:70vh; display:flex; align-items:flex-end; overflow:hidden;
  background:var(--navy-900);
}
.story-hero .bg{position:absolute; inset:0; transform:scale(1.05);}
.story-hero .bg::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,30,54,.96) 8%, rgba(11,30,54,.35) 55%, rgba(11,30,54,.5) 100%);}
.story-hero-content{position:relative; z-index:2; padding:80px 28px 64px; max-width:840px; margin:0 auto; width:100%; text-align:center;}
.story-hero .eyebrow{color:var(--gold-light);}
.story-hero h1{color:var(--white); font-size:clamp(32px,5vw,58px); margin:18px 0 16px;}
.story-hero .meta{color:rgba(255,255,255,.7); font-size:13.5px; letter-spacing:.5px;}

.story-article{background:var(--white); padding:80px 0;}
.story-article .story-wrap{max-width:740px; margin:0 auto; padding:0 28px;}
.story-article p{font-size:17.5px; line-height:1.85; color:#33404f; margin-bottom:26px;}
.story-article h2{font-size:28px; margin:56px 0 20px; color:var(--navy-800);}
.story-article .drop p:first-of-type::first-letter{
  font-family:'Playfair Display',serif; font-size:76px; font-weight:700; float:left; line-height:.8;
  padding:8px 12px 0 0; color:var(--gold-dark);
}
.pull-quote{
  font-family:'Playfair Display',serif; font-style:italic; font-size:26px; color:var(--navy-800);
  border-left:3px solid var(--gold); padding:6px 0 6px 28px; margin:44px 0; line-height:1.5;
}
.story-figure{margin:44px 0; border-radius:16px; overflow:hidden;}
.story-figure img{width:100%; height:420px; object-fit:cover; transition:transform .8s ease;}
.story-figure:hover img{transform:scale(1.05);}
.story-figure figcaption{font-size:12.5px; color:var(--muted); margin-top:10px; text-align:center; font-style:italic;}

.story-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:40px 0;}
.story-step{background:var(--cream); border-radius:14px; padding:22px 18px; text-align:center;}
.story-step .num{
  width:34px; height:34px; border-radius:50%; background:var(--gold); color:var(--navy-900);
  font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; font-size:14px;
}
.story-step h4{font-size:14.5px; margin-bottom:6px;}
.story-step p{font-size:12.5px; margin:0;}
@media (max-width:800px){ .story-steps{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .story-steps{grid-template-columns:1fr;} }

.story-cta{
  background:linear-gradient(120deg, var(--navy-900), var(--navy-700)); border-radius:20px;
  padding:48px 40px; text-align:center; margin-top:60px;
}
.story-cta h3{color:var(--white); font-size:24px; margin-bottom:12px;}
.story-cta p{color:rgba(255,255,255,.8); margin-bottom:24px; max-width:440px; margin-left:auto; margin-right:auto;}

.story-tags{display:flex; gap:10px; flex-wrap:wrap; margin-top:40px; padding-top:28px; border-top:1px solid var(--line);}
.story-tags a{background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:7px 15px; font-size:12.5px; font-weight:600; transition:background .2s ease, color .2s ease;}
.story-tags a:hover{background:var(--gold); color:var(--navy-900); border-color:var(--gold);}

/* =======================================================================
   RESPONSIVE PASS — phones, small phones, tablets
   ======================================================================= */

/* Tablet (≤1024px): tighten section rhythm slightly */
@media (max-width:1024px){
  section{padding:76px 0;}
  .unit-body{padding:60px 0;}
}

/* General phones/small tablets (≤768px) */
@media (max-width:768px){
  .wrap{padding:0 20px;}
  section{padding:60px 0;}
  .page-header{padding:150px 0 64px;}
  .story-hero-content{padding:60px 20px 48px;}
  .founder-journey{padding:60px 0;}
  .unit-panel{padding:30px 22px;}
  .story-article{padding:56px 0;}
  .story-article .drop p:first-of-type::first-letter{font-size:58px; padding:4px 8px 0 0;}
  .pull-quote{font-size:21px; padding-left:20px;}
  .story-figure img{height:280px;}
  .contact-form{padding:28px 22px;}
  .founder-quote{padding:64px 0;}
  .founder-quote blockquote::before{font-size:70px; top:-36px;}
}

/* Small phones (≤480px) */
@media (max-width:480px){
  .values-list{grid-template-columns:1fr;}
  .brand-text b{font-size:16px;}
  .brand-text span{font-size:8px;}
  .brand img{height:32px; width:32px;}
  .btn{padding:12px 22px; font-size:13.5px;}
  .slide h1{font-size:28px;}
  .slide p.lead{font-size:15px;}
  .page-header h1{font-size:26px;}
  .founder-quote blockquote{font-size:19px;}
  .story-hero{min-height:56vh;}
  .scroll-top{width:42px; height:42px; bottom:18px; right:18px;}
  .compact-head, .compact-body{padding-left:20px; padding-right:20px;}
  .partner-mark{font-size:13px;}
}

/* Landscape phones / small tablets in between (481–768px already covered above) */

/* Large tablets / small laptops (769–1024px) — ensure grids don't feel cramped */
@media (min-width:769px) and (max-width:1024px){
  .chip-grid{grid-template-columns:repeat(3,1fr);}
  .eco-grid{grid-template-columns:repeat(2,1fr);}
}

/* Ensure tap targets stay comfortably large on touch devices */
@media (hover:none) and (pointer:coarse){
  .btn, .nav-links > a, .dropdown-toggle, a.eco-card, a.related-card{min-height:44px;}
  .tilt:hover{transform:none;}
}

