/* ---------------------------------------------------------
   RUMA — Rice Undergraduate Marketing Association
   Shared stylesheet (all pages link to this file)
   Brand palette: beige + navy + bright blue + warm brown
   Type: TAN Angleton (falls back to Playfair Display) + Helvetica
   ---------------------------------------------------------*/

:root{
  --paper:    #E7E5E0;   /* brand beige — main background */
  --paper-2:  #D9D5CC;   /* deeper beige for subtle panels */
  --ink:      #0B1F5A;   /* brand deep navy — primary text */
  --ink-2:    #364374;   /* brand muted navy — secondary text */
  --muted:    #7D7568;   /* warm neutral gray for meta/labels */
  --rule:     #C5BFB2;   /* soft beige-gray divider */
  --navy:     #364374;   /* brand muted navy — mid-dark sections */
  --navy-2:   #0B1F5A;   /* brand deepest navy alias */
  --accent:   #354EAC;   /* brand bright blue — primary accent */
  --accent-2: #C5D0E4;   /* brand pale blue — accents on dark bg */
  --warm:     #644330;   /* brand warm brown — secondary accent */
  --cream:    #F2EFE8;   /* softened cream for type on dark bg */

  --max: 1360px;
  --gutter: clamp(20px, 4vw, 48px);
  --radius: 4px;

  --serif: "TAN Angleton", "Playfair Display", "Times New Roman", serif;
  --sans:  "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;}

/* Subtle grain overlay for paper feel */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  background-image: radial-gradient(rgba(0,0,0,0.035) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity:.5;
  z-index:1;
  mix-blend-mode:multiply;
}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

/* ------------------- NAV ------------------- */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  transition: box-shadow .3s ease, border-color .3s ease;
  background: var(--paper, #f5f1ea);
  border-bottom:1px solid rgba(197,191,178,0.5);
}
.nav.scrolled{
  background: var(--paper, #f5f1ea);
  border-bottom-color: rgba(197,191,178,0.7);
  box-shadow: 0 1px 12px rgba(11,31,90,0.06);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0;
  gap:24px;
}
.brand{
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  letter-spacing:-.01em;
  display:flex; align-items:center; gap:10px;
  flex-shrink:0;
}
.brand .dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--accent);
  display:inline-block;
}
/* Real RUMA. logo image */
.brand-logo{
  display:block;
  height:36px;
  width:auto;
  object-fit:contain;
  transition: transform .2s ease, opacity .2s ease;
}
.brand:hover .brand-logo{ transform: translateY(-1px); opacity: .9; }
@media (max-width: 720px){
  .brand-logo{ height: 30px; }
}
.nav-links{
  display:flex; gap:32px;
  font-size:13px;
  font-weight:500;
  letter-spacing:.02em;
  margin-left:auto;
}
.nav-links a{
  position:relative;
  padding:6px 0;
  color:var(--ink-2);
  transition:color .2s;
}
.nav-links a:hover{color:var(--accent);}
.nav-links a.active{color:var(--ink);}
.nav-links a.active::after{
  content:"";
  position:absolute; bottom:0; left:0; right:0;
  height:1px; background:var(--accent);
}

/* Social icons in nav */
.nav-socials{
  display:flex; gap:10px;
  align-items:center;
  padding-left:24px;
  border-left:1px solid var(--rule);
}
.nav-socials a{
  width:36px; height:36px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  color:var(--ink-2);
  transition: all .2s ease;
  border:1px solid transparent;
}
.nav-socials a:hover{
  color:var(--accent);
  border-color:var(--rule);
  background:rgba(255,255,255,.3);
}
.nav-socials svg{width:16px; height:16px; display:block;}

.mobile-toggle{display:none;}

@media (max-width: 960px){
  .nav-links, .nav-socials{display:none;}
  .mobile-toggle{
    display:flex; flex-direction:column; gap:5px;
    padding:10px;
  }
  .mobile-toggle span{
    width:22px; height:1.5px; background:var(--ink); display:block;
  }
}

/* ------------------- HERO (home) ------------------- */
.hero{
  position:relative;
  padding: 160px 0 80px;
  min-height: 92vh;
  display:flex; align-items:flex-end;
  border-bottom:1px solid var(--rule);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:48px;
  width:100%;
  position:relative;
  z-index:2;
}
.hero-meta{
  display:flex; justify-content:space-between;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
  padding-bottom:24px;
  border-bottom:1px solid var(--rule);
  margin-bottom:48px;
}
.hero-meta .pill{
  display:inline-flex; align-items:center; gap:6px;
}
.hero-meta .pill::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--accent);
  animation: pulse 2.5s infinite;
}
@keyframes pulse{
  0%,100%{opacity:1; transform:scale(1);}
  50%{opacity:.4; transform:scale(.7);}
}
h1.display{
  font-family:var(--serif);
  font-weight:400;
  font-size: clamp(48px, 8.2vw, 132px);
  line-height: 0.96;
  letter-spacing:-0.03em;
  margin:0;
  color:var(--ink);
}
h1.display em{
  font-style:italic;
  color:var(--navy);
  font-weight:300;
}
h1.display .accent{
  color:var(--warm);
  font-style:italic;
  font-weight:300;
}
.hero-bottom{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:64px;
  align-items:end;
  margin-top:72px;
}
.hero-sub{
  font-size: clamp(16px, 1.3vw, 19px);
  max-width:46ch;
  color:var(--ink-2);
  line-height:1.5;
}
.hero-actions{
  display:flex; gap:14px; flex-wrap:wrap;
  justify-content:flex-end;
}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 26px;
  font-size:14px;
  font-weight:500;
  border-radius:999px;
  border:1px solid var(--ink);
  transition: all .25s ease;
  color:var(--ink);
}
.btn .arrow{
  display:inline-block;
  transition: transform .25s ease;
}
.btn:hover .arrow{ transform: translateX(4px);}
.btn-primary{ background:var(--ink); color:var(--paper); }
.btn-primary:hover{ background:var(--accent); border-color:var(--accent); color:var(--paper);}
.btn-ghost:hover{ background:var(--ink); color:var(--paper); }

.hero-marker{
  position:absolute;
  top:140px; right:var(--gutter);
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

@media (max-width: 820px){
  .hero{padding-top:130px; min-height: auto;}
  .hero-bottom{grid-template-columns:1fr; gap:32px;}
  .hero-actions{justify-content:flex-start;}
  .hero-marker{display:none;}
}

/* ------------------- PAGE HERO (sub-pages) ------------------- */
.page-hero{
  padding: 180px 0 100px;
  border-bottom:1px solid var(--rule);
}
.page-hero .eyebrow{
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent);
  margin-bottom:24px;
  display:block;
  font-weight:500;
}
.page-hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size: clamp(54px, 8vw, 120px);
  line-height: 0.98;
  letter-spacing:-0.03em;
  margin:0 0 32px;
  color:var(--ink);
  max-width: 16ch;
}
.page-hero h1 em{font-style:italic; color:var(--navy); font-weight:300;}
.page-hero h1 .accent{color:var(--warm); font-style:italic; font-weight:300;}
.page-hero .page-sub{
  font-size: clamp(16px, 1.3vw, 20px);
  color:var(--ink-2);
  max-width: 54ch;
  line-height: 1.5;
}
.breadcrumb{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
  margin-bottom:28px;
}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb .sep{margin:0 10px; opacity:.4;}

@media (max-width: 820px){
  .page-hero{padding: 130px 0 70px;}
}

/* ------------------- MARQUEE ------------------- */
.marquee{
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper-2);
  overflow:hidden;
  padding:22px 0;
}
.marquee-track{
  display:flex;
  gap:64px;
  white-space:nowrap;
  animation: scroll 40s linear infinite;
  font-family:var(--serif);
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight:400;
  font-style:italic;
  color:var(--ink-2);
}
.marquee-track span{display:inline-flex; align-items:center; gap:64px;}
.marquee-track span::after{
  content:"✦";
  color:var(--accent);
  font-style:normal;
  font-size:.7em;
}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ------------------- SECTION BASICS ------------------- */
section{
  padding: 120px 0;
  position:relative;
}
.section-head{
  display:grid;
  grid-template-columns: 140px 1fr;
  gap:48px;
  padding-bottom:56px;
  border-bottom:1px solid var(--rule);
  margin-bottom:72px;
  align-items:start;
}
.section-num{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  padding-top:14px;
}
.section-num .line{
  display:block;
  width:60px; height:1px;
  background:var(--ink);
  margin-top:10px;
}
.eyebrow{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:18px;
  display:block;
  font-weight:500;
}
.section-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size: clamp(36px, 5.2vw, 72px);
  line-height:1.02;
  letter-spacing:-.02em;
  margin:0 0 20px;
  max-width:18ch;
}
.section-head h2 em{
  font-style:italic;
  color:var(--navy);
  font-weight:300;
}
.section-head p.lead{
  font-size: clamp(16px, 1.2vw, 19px);
  max-width:52ch;
  color:var(--ink-2);
  margin:0;
}

@media (max-width: 820px){
  section{padding:80px 0;}
  .section-head{grid-template-columns:1fr; gap:20px; margin-bottom:40px; padding-bottom:32px;}
}

/* ------------------- ABOUT ------------------- */
.about{background:var(--paper);}
.about-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:32px;
}
.about-lead{
  grid-column: 1 / 8;
  font-family:var(--serif);
  font-size: clamp(24px, 2.8vw, 40px);
  line-height:1.25;
  letter-spacing:-.01em;
  font-weight:400;
  color:var(--ink);
}
.about-lead em{font-style:italic; color:var(--accent);}
.about-stats{
  grid-column: 9 / 13;
  display:flex; flex-direction:column; gap:28px;
}
.stat{
  display:flex; justify-content:space-between; align-items:baseline;
  padding-bottom:18px;
  border-bottom:1px solid var(--rule);
}
.stat .num{
  font-family:var(--serif);
  font-size:42px;
  font-weight:400;
  color:var(--navy);
  letter-spacing:-.02em;
}
.stat .label{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  max-width:14ch;
  text-align:right;
}
.values{
  margin-top:96px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:24px;
  padding-top:56px;
  border-top:1px solid var(--rule);
}
.value h4{
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  margin:0 0 10px;
  letter-spacing:-.01em;
}
.value .vnum{
  font-size:11px;
  letter-spacing:.18em;
  color:var(--accent);
  margin-bottom:24px;
  display:block;
}
.value p{
  font-size:14px;
  color:var(--ink-2);
  margin:0;
  line-height:1.55;
}

@media (max-width: 1024px){
  .about-lead{grid-column: 1 / 13;}
  .about-stats{grid-column: 1 / 13; margin-top:32px;}
  .values{grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 560px){
  .values{grid-template-columns: 1fr;}
}

/* ------------------- SERVICES ------------------- */
.services{
  background:var(--ink);
  color:var(--paper);
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.services .section-head{border-color:rgba(255,255,255,.14);}
.services .section-num{color:rgba(255,255,255,.5);}
.services .section-num .line{background:var(--paper);}
.services h2{color:var(--paper);}
.services h2 em{color:var(--accent-2);}
.services .lead{color:rgba(255,255,255,.7);}
.services .eyebrow{color:var(--accent-2);}

.svc-list{
  border-top:1px solid rgba(255,255,255,.14);
}
.svc-row{
  display:grid;
  grid-template-columns: 80px 1fr 2fr auto;
  gap:32px;
  padding:36px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
  align-items:center;
  transition: padding .3s ease;
  cursor: default;
}
.svc-row:hover{padding-left:12px;}
.svc-row:hover .svc-title{color:var(--accent-2);}
.svc-num{
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.45);
}
.svc-title{
  font-family:var(--serif);
  font-size: clamp(26px, 3.2vw, 44px);
  font-weight:400;
  letter-spacing:-.02em;
  transition:color .3s;
}
.svc-title em{font-style:italic; color:var(--accent-2);}
.svc-desc{
  font-size:14px;
  color:rgba(255,255,255,.7);
  max-width:42ch;
}
.svc-plus{
  font-size:24px;
  color:rgba(255,255,255,.45);
}

@media (max-width: 820px){
  .svc-row{grid-template-columns: auto 1fr; gap:16px;}
  .svc-desc, .svc-plus{display:none;}
}

/* ------------------- PROJECTS ------------------- */
.projects{background:var(--paper);}
.proj-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:28px;
}
.proj-card{
  position:relative;
  overflow:hidden;
  background:var(--paper-2);
  border-radius: var(--radius);
  transition: transform .4s ease;
  cursor:pointer;
}
.proj-card:hover{transform: translateY(-4px);}
.proj-card:hover .proj-cover{transform: scale(1.03);}
.proj-card:hover .proj-arrow{transform: translate(4px,-4px); color:var(--accent);}

.proj-cover{
  aspect-ratio: 4 / 3;
  width:100%;
  transition: transform .6s ease;
  position:relative;
  overflow:hidden;
}
.proj-info{
  padding: 22px 4px 8px;
  display:flex; justify-content:space-between; align-items:start;
  gap:16px;
}
.proj-meta{
  font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted);
  margin-bottom:8px;
  display:flex; gap:10px; align-items:center;
}
.proj-meta .sep{opacity:.4;}
.proj-title{
  font-family:var(--serif);
  font-weight:500;
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing:-.01em;
  line-height:1.12;
  margin:0;
}
.proj-title em{font-style:italic; color:var(--navy);}
.proj-arrow{
  font-size:22px; color:var(--ink);
  transition: all .3s ease;
  flex-shrink:0;
}

.proj-large{grid-column: span 7;}
.proj-small{grid-column: span 5;}
.proj-medium{grid-column: span 6;}
.proj-third{grid-column: span 4;}

@media (max-width: 820px){
  .proj-large, .proj-small, .proj-medium, .proj-third{grid-column: span 12;}
}

/* Placeholder covers — soft gradients + patterns, feel like real photography/graphics */
.cover-1{background:
  radial-gradient(at 30% 30%, #354EAC 0%, transparent 55%),
  radial-gradient(at 70% 70%, #644330 0%, transparent 50%),
  linear-gradient(135deg, #0B1F5A, #364374);
}
.cover-2{background:
  linear-gradient(160deg, #E7E5E0 0%, #D9D5CC 100%);
  position:relative;
}
.cover-2::before{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(45deg, transparent 0, transparent 20px, rgba(11,31,90,.1) 20px, rgba(11,31,90,.1) 21px);
}
.cover-3{background:
  linear-gradient(135deg, #644330 0%, #8C6A54 55%, #C5D0E4 100%);
}
.cover-4{background:
  radial-gradient(at 20% 80%, #364374 0%, transparent 50%),
  radial-gradient(at 80% 20%, #644330 0%, transparent 50%),
  #F2EFE8;
}
.cover-5{background:
  linear-gradient(180deg, #0B1F5A 0%, #0B1F5A 50%, #644330 50%, #644330 100%);
}
.cover-6{background:
  repeating-linear-gradient(0deg, #0B1F5A 0 4px, transparent 4px 12px),
  #E7E5E0;
}

.cover-label{
  position:absolute;
  top:20px; left:20px;
  font-family:var(--serif);
  font-style:italic;
  color:rgba(255,255,255,.9);
  font-size:18px;
}
.cover-2 .cover-label{color:var(--navy);}
.cover-4 .cover-label{color:var(--navy);}
.cover-6 .cover-label{color:var(--navy);}

/* ------------------- CASE DELIVERABLES ------------------- */
.cases{
  background:var(--paper-2);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.case-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:28px;
}
.case-card{
  background:var(--cream);
  padding:40px;
  border-radius:var(--radius);
  border:1px solid var(--rule);
  position:relative;
  overflow:hidden;
  transition:transform .3s ease, border-color .3s;
}
.case-card:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
}
.case-year{
  font-family:var(--serif);
  font-size:72px;
  font-weight:300;
  color:var(--navy);
  letter-spacing:-.04em;
  line-height:1;
  margin-bottom:24px;
  opacity:.9;
}
.case-tag{
  display:inline-block;
  font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  padding:5px 10px;
  border:1px solid var(--ink);
  border-radius:999px;
  margin-bottom:20px;
}
.case-tag.placeholder{
  border-style:dashed;
  border-color:var(--muted);
  color:var(--muted);
}
.case-card h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:26px;
  letter-spacing:-.01em;
  margin:0 0 10px;
}
.case-card p{
  font-size:14px; color:var(--ink-2);
  margin:0 0 20px;
}
.case-detail{
  display:flex; justify-content:space-between;
  padding-top:16px;
  border-top:1px solid var(--rule);
  font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
}
.case-card.empty{
  display:flex; flex-direction:column; justify-content:center;
  align-items:flex-start;
  background:transparent;
  border:1px dashed var(--muted);
  min-height:260px;
}
.case-card.empty::before{
  content:"+";
  font-family:var(--serif);
  font-size:48px;
  font-weight:300;
  color:var(--muted);
  margin-bottom:12px;
}

@media (max-width:820px){
  .case-grid{grid-template-columns:1fr;}
  .case-card{padding:28px;}
  .case-year{font-size:54px;}
}

/* ------------------- PAST CLIENTS / LOGOS ------------------- */
.clients-section{background:var(--paper);}
.logo-grid{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.logo-cell{
  aspect-ratio: 3 / 2;
  display:flex; align-items:center; justify-content:center;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font-family:var(--serif);
  font-size:22px;
  font-style:italic;
  color:var(--ink-2);
  background:var(--paper);
  transition: background .3s, color .3s;
  text-align:center;
  padding:16px;
}
.logo-cell.placeholder{
  color:var(--muted);
  font-size:13px;
  font-style:normal;
  font-family:var(--sans);
  letter-spacing:.14em;
  text-transform:uppercase;
  background:var(--paper-2);
}
.logo-cell:hover{background:var(--ink); color:var(--cream);}
.logo-cell.placeholder:hover{background:var(--paper-2); color:var(--muted);}

@media (max-width: 820px){
  .logo-grid{grid-template-columns: repeat(2, 1fr);}
}

/* ------------------- TEAM ------------------- */
.team{
  background:var(--paper);
  border-top:1px solid var(--rule);
}
.team-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:28px 24px;
}
.member{
  display:flex; flex-direction:column;
}
.portrait{
  aspect-ratio: 3 / 4;
  background:var(--paper-2);
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  transition: transform .3s ease;
}
.member:hover .portrait{transform: translateY(-4px);}
.member:hover .initials{transform: scale(1.05);}
.portrait .initials{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif);
  font-size: clamp(40px, 5vw, 64px);
  font-weight:300;
  color:rgba(255,255,255,.92);
  letter-spacing:-.02em;
  transition: transform .6s ease;
}
.portrait.p-1{background: linear-gradient(155deg, #0B1F5A, #364374);}
.portrait.p-2{background: linear-gradient(155deg, #644330, #8C6A54);}
.portrait.p-3{background: linear-gradient(155deg, #364374, #6376A8);}
.portrait.p-4{background: linear-gradient(155deg, #354EAC, #6B82C7);}
.portrait.p-5{background: linear-gradient(155deg, #0B1F5A, #354EAC);}
.portrait.p-6{background: linear-gradient(155deg, #644330, #A08670);}
.portrait.p-7{background: linear-gradient(155deg, #0B1F5A, #364374);}
.portrait.p-8{background: linear-gradient(155deg, #8C9CC5, #C5D0E4);}

.portrait img{
  width:100%; height:100%; object-fit:cover;
}

.member-info{
  padding:16px 0 0;
}
.member-name{
  font-family:var(--serif);
  font-weight:500;
  font-size:20px;
  letter-spacing:-.01em;
  margin:0 0 4px;
}
.member-role{
  font-size:12px;
  letter-spacing:.08em;
  color:var(--muted);
  text-transform:uppercase;
}

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

/* ------------------- EVENTS / PHOTOS ------------------- */
.events{
  background:var(--navy);
  color:var(--cream);
}
.events .section-head{border-color:rgba(255,255,255,.14);}
.events .section-num, .events .section-num .line{color:rgba(255,255,255,.5);}
.events .section-num .line{background:var(--cream);}
.events h2{color:var(--cream);}
.events h2 em{color:var(--accent-2);}
.events .lead{color:rgba(255,255,255,.7);}
.events .eyebrow{color:var(--accent-2);}

.event-scroll{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:24px;
  margin-bottom:64px;
}
.event-card{
  overflow:hidden;
  border-radius:var(--radius);
  position:relative;
  background:rgba(255,255,255,.05);
  cursor:pointer;
  transition: transform .3s ease;
}
.event-card:hover{transform:translateY(-4px);}
.event-card .photo{
  aspect-ratio: 4 / 5;
  position:relative;
  overflow:hidden;
}
.event-card .photo::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.55) 100%);
}
.event-card-1 .photo{background:
  radial-gradient(at 30% 30%, #354EAC, transparent 60%),
  linear-gradient(135deg, #0B1F5A, #364374);}
.event-card-2 .photo{background:
  linear-gradient(45deg, #644330 0%, #8C6A54 50%, #E7E5E0 100%);}
.event-card-3 .photo{background:
  radial-gradient(at 60% 40%, #C5D0E4, transparent 55%),
  linear-gradient(180deg, #364374, #0B1F5A);}
.event-card-4 .photo{background:
  repeating-linear-gradient(55deg, #0B1F5A 0 40px, #364374 40px 80px);}
.event-label{
  position:absolute; left:20px; bottom:20px; right:20px;
  color:var(--cream);
  z-index:2;
}
.event-label .date{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.75);
  margin-bottom:6px;
}
.event-label .title{
  font-family:var(--serif);
  font-size: 22px;
  font-weight:500;
  letter-spacing:-.01em;
  line-height:1.15;
}

.event-1{grid-column: span 5;}
.event-2{grid-column: span 3;}
.event-3{grid-column: span 4;}
.event-4{grid-column: span 6;}
.event-5{grid-column: span 6;}

@media (max-width: 820px){
  .event-1, .event-2, .event-3, .event-4, .event-5{grid-column: span 12;}
}

.events-cta{
  display:flex; justify-content:space-between; align-items:end;
  padding-top:32px;
  border-top:1px solid rgba(255,255,255,.14);
  gap:32px;
  flex-wrap:wrap;
}
.events-cta p{
  max-width:42ch;
  color:rgba(255,255,255,.7);
  margin:0;
  font-size:15px;
}
.events .btn{color:var(--cream); border-color:var(--cream);}
.events .btn:hover{background:var(--accent); color:var(--cream); border-color:var(--accent);}

/* Year dividers on events page */
.year-divider{
  display:flex; align-items:baseline; gap:24px;
  margin: 96px 0 40px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.year-divider .year{
  font-family:var(--serif);
  font-size: clamp(40px, 6vw, 72px);
  font-weight:400;
  color:var(--accent-2);
  letter-spacing:-.02em;
  font-style:italic;
}
.year-divider .year-meta{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.year-divider:first-child{margin-top:0;}

/* ------------------- JOIN ------------------- */
.join{background:var(--paper);}
.join-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:80px;
  align-items:center;
}
.join h2{
  font-family:var(--serif);
  font-weight:400;
  font-size: clamp(40px, 6vw, 96px);
  line-height:.98;
  letter-spacing:-.02em;
  margin:0 0 28px;
}
.join h2 em{font-style:italic; color:var(--navy);}
.join h2 .accent{color:var(--accent); font-style:italic;}
.join p{
  font-size:17px;
  color:var(--ink-2);
  max-width:48ch;
  margin:0 0 36px;
}
.join-info{
  background:var(--paper-2);
  padding:36px;
  border-radius:var(--radius);
  border:1px solid var(--rule);
}
.join-info h4{
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  margin:0 0 20px;
  letter-spacing:-.01em;
}
.timeline{
  display:flex; flex-direction:column; gap:18px;
}
.timeline-row{
  display:grid;
  grid-template-columns: 80px 1fr;
  gap:16px;
  padding-bottom:16px;
  border-bottom:1px solid var(--rule);
  font-size:14px;
}
.timeline-row:last-child{border-bottom:0;}
.timeline-row .when{
  font-family:var(--serif);
  font-style:italic;
  color:var(--accent);
  font-size:16px;
}
.timeline-row .what{color:var(--ink-2);}

@media (max-width:820px){
  .join-grid{grid-template-columns:1fr; gap:40px;}
}

/* ------------------- LEARN MORE CARDS (homepage) ------------------- */
.learn-more{background:var(--paper-2);}
.learn-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:24px;
}
.learn-card{
  position:relative;
  padding:40px 36px;
  background:var(--cream);
  border-radius:var(--radius);
  border:1px solid var(--rule);
  transition: all .3s ease;
  display:flex; flex-direction:column;
  min-height:280px;
  overflow:hidden;
}
.learn-card:hover{
  transform: translateY(-4px);
  border-color: var(--ink);
  background:var(--paper);
}
.learn-card:hover .learn-arrow{
  transform: translate(4px,-4px);
  color:var(--accent);
}
.learn-num{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
  margin-bottom:48px;
}
.learn-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:34px;
  letter-spacing:-.01em;
  line-height:1.1;
  margin:0 0 12px;
  color:var(--ink);
}
.learn-title em{font-style:italic; color:var(--navy);}
.learn-card p{
  font-size:14px;
  color:var(--ink-2);
  margin:0 0 32px;
  max-width:38ch;
  flex:1;
}
.learn-arrow{
  position:absolute;
  top:36px; right:36px;
  font-size:22px;
  transition:all .3s ease;
  color:var(--ink);
}
.learn-foot{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent);
  font-weight:500;
}

@media (max-width: 960px){
  .learn-grid{grid-template-columns:1fr; gap:16px;}
  .learn-card{min-height:220px; padding:32px 28px;}
}

/* ------------------- CONTACT ------------------- */
.contact{
  background:var(--ink);
  color:var(--paper);
}
.contact .section-head{border-color:rgba(255,255,255,.14);}
.contact .section-num{color:rgba(255,255,255,.5);}
.contact .section-num .line{background:var(--paper);}
.contact h2{color:var(--paper);}
.contact h2 em{color:var(--accent-2);}
.contact .lead{color:rgba(255,255,255,.7);}
.contact .eyebrow{color:var(--accent-2);}

.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:72px;
  align-items:start;
}
.contact-info{
  display:flex; flex-direction:column; gap:40px;
}
.contact-block h5{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
  margin:0 0 10px;
  font-weight:500;
}
.contact-block p, .contact-block a{
  font-family:var(--serif);
  font-weight:400;
  font-size:22px;
  color:var(--paper);
  line-height:1.35;
  margin:0;
}
.contact-block a:hover{color:var(--accent-2);}

form{
  display:flex; flex-direction:column; gap:24px;
}
.field{
  display:flex; flex-direction:column; gap:8px;
}
.field label{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.field input, .field textarea, .field select{
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.2);
  color:var(--paper);
  padding:10px 0;
  font:inherit;
  font-size:16px;
  font-family:var(--sans);
  outline:none;
  transition: border-color .2s;
}
.field input::placeholder, .field textarea::placeholder{
  color:rgba(255,255,255,.3);
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-bottom-color:var(--accent-2);
}
.field textarea{
  min-height:110px;
  resize:vertical;
}
.field select{
  appearance:none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%23E7E5E0' stroke-width='1'/></svg>");
  background-repeat:no-repeat;
  background-position: right 4px center;
}
.field select option{background:var(--ink); color:var(--paper);}
.submit-btn{
  background:var(--paper);
  color:var(--ink);
  padding:18px 32px;
  border-radius:999px;
  font-weight:500;
  font-size:14px;
  display:inline-flex; align-items:center; gap:10px;
  margin-top:8px;
  transition: all .25s ease;
  align-self:flex-start;
}
.submit-btn:hover{background:var(--accent-2); color:var(--ink);}

@media (max-width:820px){
  .contact-grid{grid-template-columns:1fr; gap:48px;}
}

/* Big social block for contact page */
.big-socials{
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex; gap:16px; flex-wrap:wrap;
}
.big-social{
  display:inline-flex; align-items:center; gap:12px;
  padding:14px 22px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  color:var(--paper);
  font-size:14px;
  transition: all .2s;
}
.big-social:hover{
  background:var(--accent);
  border-color:var(--accent);
}
.big-social svg{width:16px; height:16px;}

/* ------------------- FOOTER ------------------- */
footer{
  background:var(--ink);
  color:var(--paper);
  padding: 60px 0 32px;
  border-top:1px solid rgba(255,255,255,.1);
}
.foot-top{
  display:grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:72px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.foot-mark{
  font-family:var(--serif);
  font-weight:300;
  font-size: clamp(72px, 14vw, 200px);
  line-height:.85;
  letter-spacing:-.04em;
  margin:0;
  color:var(--paper);
  grid-column: span 4;
}
.foot-mark em{font-style:italic; color:var(--accent-2);}
.foot-col h5{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
  margin:0 0 18px;
  font-weight:500;
}
.foot-col ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
.foot-col a{
  color:rgba(255,255,255,.8);
  font-size:14px;
  transition: color .2s;
  display:inline-flex; align-items:center; gap:6px;
}
.foot-col a:hover{color:var(--accent-2);}
.foot-social-row{
  display:flex; gap:10px;
  margin-top:8px;
}
.foot-social-row a{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  display:inline-flex; align-items:center; justify-content:center;
  transition: all .2s;
}
.foot-social-row a:hover{
  background:var(--accent);
  border-color:var(--accent);
}
.foot-social-row svg{width:16px; height:16px;}
.foot-bottom{
  padding-top:28px;
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:12px;
  font-size:12px;
  color:rgba(255,255,255,.45);
  letter-spacing:.04em;
}

@media (max-width:820px){
  .foot-top{grid-template-columns: 1fr 1fr; gap:40px;}
  .foot-mark{grid-column: span 2; font-size: clamp(64px, 20vw, 120px); margin-bottom:16px;}
}

/* ------------------- SCROLL ANIMATIONS ------------------- */
.reveal{
  opacity:0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease;
}
.reveal.in{
  opacity:1;
  transform: translateY(0);
}
.reveal-delay-1{transition-delay: .1s;}
.reveal-delay-2{transition-delay: .2s;}
.reveal-delay-3{transition-delay: .3s;}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .marquee-track{animation:none;}
}

/* ===========================================================
   V2 ADDITIONS — Figma redesign (June 2026)
   =========================================================== */

/* ------------------- NAV DROPDOWN ------------------- */
.nav-item-dropdown{
  position:relative;
  display:flex; align-items:center;
}
.nav-item-dropdown > a{
  display:inline-flex; align-items:center; gap:6px;
}
.nav-item-dropdown > a::after{
  content:"";
  width:6px; height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  opacity:.6;
  transition: transform .2s ease;
}
.nav-item-dropdown:hover > a::after,
.nav-item-dropdown:focus-within > a::after{
  transform: rotate(45deg) translateY(0);
  opacity:1;
}
.nav-dropdown{
  position:absolute;
  top:calc(100% + 8px); left:50%;
  transform: translateX(-50%) translateY(6px);
  background:rgba(231,229,224,0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border:1px solid rgba(197,191,178,0.6);
  border-radius:6px;
  padding:10px 6px;
  min-width:170px;
  display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:60;
  box-shadow: 0 14px 40px rgba(11,31,90,0.10);
}
.nav-item-dropdown:hover .nav-dropdown,
.nav-item-dropdown:focus-within .nav-dropdown{
  opacity:1; visibility:visible; pointer-events:auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown a{
  padding:8px 16px;
  font-size:13px;
  font-weight:500;
  color:var(--ink-2);
  letter-spacing:.02em;
  border-radius:3px;
  white-space:nowrap;
}
.nav-dropdown a:hover{
  background:rgba(53,78,172,0.08);
  color:var(--accent);
}

/* ------------------- HERO V2 ------------------- */
.hero-v2{
  position:relative;
  min-height: 100vh;
  padding-top: 110px;
  padding-bottom: 90px;
  overflow:hidden;
  display:flex; flex-direction:column; justify-content:center;
}
.hero-bg-stack{
  position:absolute; inset:0;
  z-index:0;
  pointer-events:none;
}
.hero-bg-slide{
  position:absolute; inset:0;
  background-size: cover; background-position: center;
  opacity:0;
  transition: opacity 1.6s ease;
}
.hero-bg-slide.is-active{ opacity:1; }
.hero-bg-stack::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg,
    rgba(231,229,224,.92) 0%,
    rgba(231,229,224,.78) 60%,
    rgba(231,229,224,.95) 100%);
}
/* Decorative gradient placeholders if no images yet */
.hero-bg-slide.placeholder-1{ background: linear-gradient(135deg, #C5D0E4, #8C9CC5 60%, #364374); }
.hero-bg-slide.placeholder-2{ background: linear-gradient(135deg, #D9D5CC, #A08670 60%, #644330); }
.hero-bg-slide.placeholder-3{ background: linear-gradient(135deg, #6376A8, #354EAC 60%, #0B1F5A); }

.hero-v2 .wrap{ position:relative; z-index:2; width:100%; }

.hero-strip-top{
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; letter-spacing:.18em; font-weight:600;
  color:var(--ink-2);
  padding-bottom:24px;
  border-bottom:1px solid var(--rule);
  margin-bottom:48px;
}
.hero-strip-top .left{ display:flex; align-items:center; gap:10px; }
.hero-strip-top .left::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background: var(--accent); display:inline-block;
}
.hero-est{
  position:absolute;
  right: calc(var(--gutter) + 16px);
  top:50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-size:10px; letter-spacing:.4em;
  color:var(--muted);
  display:flex; align-items:center; gap:12px;
  font-weight:600;
}
.hero-est::before, .hero-est::after{
  content:""; width:30px; height:1px; background: var(--muted);
}
.hero-headline-v2{
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(58px, 8.6vw, 140px);
  line-height: 1.02;
  letter-spacing: -.015em;
  color: var(--ink);
  margin: 0 0 56px 0;
  max-width: 1100px;
}
.hero-headline-v2 em{
  font-style:italic;
  font-weight:400;
}
.hero-headline-v2 em.warm{ color: var(--warm); }
.hero-bottom-row{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:48px; flex-wrap:wrap;
}
.hero-sub-v2{
  max-width: 460px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-2);
}
.hero-cta-row{
  display:flex; gap:14px; flex-wrap:wrap;
}
.btn-pill{
  display:inline-flex; align-items:center; gap:10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-size: 13px; font-weight: 600;
  letter-spacing:.04em;
  transition: all .25s ease;
  border:1px solid var(--ink);
}
.btn-pill.primary{ background: var(--ink); color: var(--paper); }
.btn-pill.primary:hover{ background: var(--accent); border-color: var(--accent); }
.btn-pill.ghost{ background: transparent; color: var(--ink); }
.btn-pill.ghost:hover{ background: var(--ink); color: var(--paper); }
.btn-pill .arrow{ transition: transform .25s ease; }
.btn-pill:hover .arrow{ transform: translateX(4px); }

/* Slim marquee strip after hero */
.marquee-slim{
  background: var(--paper-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 22px 0;
  overflow:hidden;
}
.marquee-slim .marquee-track{
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 32px);
  font-style: italic;
  font-weight: 400;
  color: var(--ink);
}
.marquee-slim .marquee-track span::after{
  content:"\002756";
  color: var(--accent);
  font-style: normal;
  margin: 0 32px;
}

/* ------------------- WHO WE ARE (stats) ------------------- */
.who-section{
  padding: 120px 0 80px;
  border-bottom: 1px solid var(--rule);
}
.who-grid{
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: start;
}
.who-left{
  display:grid; grid-template-columns: auto 1fr; gap:48px; align-items:start;
}
.who-left .section-num{ margin: 6px 0 0 0; }
.who-title{
  font-family: var(--serif);
  font-size: clamp(36px, 4vw, 58px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.01em;
  margin: 0 0 24px 0;
}
.who-blurb{
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
  max-width: 460px;
}
.who-stats{
  display:flex; flex-direction:column;
  gap: 0;
}
.who-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding: 28px 0;
  border-bottom: 1px solid var(--rule);
}
.who-row:first-child{ border-top: 1px solid var(--rule); }
.who-num{
  font-family: var(--serif);
  font-size: clamp(48px, 6vw, 82px);
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}
.who-label{
  font-size: 11px; letter-spacing:.18em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight:600;
  text-align:right;
  max-width: 110px;
  line-height: 1.4;
}

@media (max-width: 900px){
  .who-grid{ grid-template-columns: 1fr; gap: 48px; }
  .who-left{ grid-template-columns: 1fr; gap: 24px; }
}

/* ------------------- HIGHLIGHTS CAROUSEL ------------------- */
.highlights-section{
  padding: 100px 0;
  overflow: hidden;
}
.highlights-section .section-head{ margin-bottom: 56px; }
.highlights-track{
  display:flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 10px;
  scrollbar-width: thin;
  scrollbar-color: var(--rule) transparent;
}
.highlights-track::-webkit-scrollbar{ height: 6px; }
.highlights-track::-webkit-scrollbar-track{ background: transparent; }
.highlights-track::-webkit-scrollbar-thumb{ background: var(--rule); border-radius:3px; }
.highlight-card{
  flex: 0 0 clamp(280px, 28vw, 380px);
  scroll-snap-align: start;
  display:flex; flex-direction:column;
}
.highlight-photo{
  width:100%;
  aspect-ratio: 4 / 3;
  background-size: cover; background-position: center;
  background-color: var(--paper-2);
  margin-bottom: 14px;
}
.highlight-photo.placeholder-a{ background: linear-gradient(135deg, #364374, #6376A8); }
.highlight-photo.placeholder-b{ background: linear-gradient(135deg, #644330, #A08670); }
.highlight-photo.placeholder-c{ background: linear-gradient(135deg, #354EAC, #C5D0E4); }
.highlight-photo.placeholder-d{ background: linear-gradient(135deg, #0B1F5A, #354EAC); }
.highlight-photo.placeholder-e{ background: linear-gradient(135deg, #8C9CC5, #364374); }
.highlight-meta{
  font-size: 10px; letter-spacing:.2em; text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 6px;
  display:flex; gap: 14px;
}
.highlight-meta .dot{ opacity:.4; }
.highlight-title{
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.3;
  margin: 0;
}
.highlight-title em{ font-style: italic; color: var(--navy); font-weight: 400; }

/* ------------------- ACHIEVEMENTS (icons) ------------------- */
.achievements-section{
  padding: 80px 0;
  border-top: 1px solid var(--rule);
}
.achievements-head{
  text-align:center;
  font-family: var(--serif);
  font-size: 26px; font-style: italic; font-weight: 400;
  color: var(--ink);
  margin: 0 0 56px 0;
}
.achievements-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  max-width: 920px;
  margin: 0 auto;
}
.achievement{
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.achievement-circle{
  width: clamp(90px, 11vw, 130px);
  height: clamp(90px, 11vw, 130px);
  border-radius:50%;
  background: #9B9B9B;
  background: linear-gradient(135deg, #ABABAB, #7A7A7A);
  margin-bottom: 20px;
}
.achievement-title{
  font-size: 13px; font-weight: 600;
  letter-spacing: .02em;
  color: var(--ink);
  margin: 0 0 14px 0;
}
.achievement-meta{
  font-size: 12px;
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
  line-height: 1.6;
}
.achievement-meta em{
  display:block;
  color: var(--ink-2);
  font-style: italic;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: .04em;
  margin-bottom: 4px;
}
.achievement-meta .year{
  display:block;
  font-style: normal;
  font-weight: 500;
  color: var(--ink-2);
  font-size: 11px;
  letter-spacing: .04em;
  margin-top: 2px;
}

@media (max-width: 820px){
  .achievements-grid{ grid-template-columns: repeat(2, 1fr); gap: 40px 24px; }
}

/* ------------------- HOMEPAGE CLIENTS CIRCLES ------------------- */
.home-clients-section{
  padding: 60px 0 100px;
}
.home-clients-grid{
  display:flex; justify-content: center; gap: 80px;
  flex-wrap: wrap;
  margin: 56px 0 56px;
}
.home-client{
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.home-client-circle{
  width: clamp(90px, 11vw, 130px);
  height: clamp(90px, 11vw, 130px);
  border-radius:50%;
  background: linear-gradient(135deg, #ABABAB, #7A7A7A);
  margin-bottom: 18px;
}
.home-client-name{
  font-size: 13px; font-weight: 600;
  margin: 0 0 8px 0;
}
.home-client-tag{
  font-size: 11px;
  font-style: italic;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: .04em;
}
.home-cta-row{
  text-align:center;
  margin-top: 40px;
}

/* ------------------- HOMEPAGE CONTACT CTA (navy) ------------------- */
.home-contact{
  background: var(--ink);
  color: var(--paper);
  padding: 100px 0 90px;
}
.home-contact .section-head{ border-color: rgba(255,255,255,.12); }
.home-contact .section-num,
.home-contact .section-num .line{ color: rgba(255,255,255,.5); }
.home-contact .section-num .line{ background: var(--paper); }
.home-contact .eyebrow{ color: var(--accent-2); }
.home-contact h2{ color: var(--paper); }
.home-contact h2 em{ color: var(--accent-2); }
.home-contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-top: 48px;
}
.home-contact-info h5{
  font-size: 10px; letter-spacing:.2em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
  font-weight:600;
  margin: 0 0 8px 0;
}
.home-contact-info > div{ margin-bottom: 28px; }
.home-contact-info a{ color: var(--cream); }
.home-contact-info a:hover{ color: var(--accent-2); }
.home-contact-card{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  padding: 32px;
}
.home-contact-card h4{
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--paper);
  margin: 0 0 12px 0;
}
.home-contact-card h4 em{ font-style: italic; color: var(--accent-2); font-weight: 300; }
.home-contact-card p{
  font-size: 13px; line-height: 1.65;
  color: rgba(255,255,255,.7);
  margin: 0 0 24px 0;
}
.home-contact-card .btn-pill{
  border-color: rgba(255,255,255,.4);
  color: var(--paper);
}
.home-contact-card .btn-pill:hover{ background: var(--paper); color: var(--ink); border-color: var(--paper); }
.home-contact-bottom{
  margin-top: 56px;
  display:flex; justify-content: space-between; align-items:center;
  flex-wrap: wrap; gap: 20px;
}

@media (max-width: 820px){
  .home-contact-grid{ grid-template-columns: 1fr; gap: 36px; }
}

/* ------------------- ABOUT PAGE HERO ------------------- */
.about-hero{
  position:relative;
  min-height: 560px;
  padding-top: 140px;
  padding-bottom: 90px;
  overflow:hidden;
  display:flex; flex-direction:column; justify-content:center;
}
.about-hero-bg{
  position:absolute; inset:0;
  background-size: cover; background-position: center;
  background: linear-gradient(135deg, #354EAC, #364374 50%, #0B1F5A);
  z-index:0;
}
.about-hero-bg::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg,
    rgba(231,229,224,.62) 0%,
    rgba(231,229,224,.42) 40%,
    rgba(231,229,224,.22) 100%);
}
.about-hero .wrap{ position:relative; z-index:2; }
.about-hero .breadcrumb{ color: rgba(11,31,90,.7); margin-bottom: 18px; }
.about-hero .breadcrumb a{ color: rgba(11,31,90,.7); }
.about-hero .eyebrow{
  color: var(--ink);
  margin-bottom: 14px;
}
.about-hero h1{
  font-family: var(--serif);
  font-size: clamp(56px, 7vw, 100px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.015em;
  color: var(--ink);
  margin: 0 0 28px 0;
}
.about-hero h1 em{ font-style: italic; font-weight: 400; }
.about-hero p{
  max-width: 480px;
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
}

/* ------------------- VALUES (about page) ------------------- */
.about-values-section{
  padding: 100px 0 80px;
}
.about-values-section .section-head{ margin-bottom: 56px; }
.about-values-head{
  font-family: var(--serif);
  font-size: clamp(36px, 4.4vw, 60px);
  font-weight: 500; line-height: 1.05; letter-spacing: -.01em;
  margin: 0 0 24px 0;
}
.about-values-head em{ font-style: italic; font-weight: 400; }
.about-values-head em.accent{ color: var(--accent); }
.about-values-head em.warm{ color: var(--warm); }
.value-cards{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 64px;
  border-top: 1px solid var(--rule);
  padding-top: 56px;
}
.value-card{
  background: var(--cream);
  border-radius: 4px;
  padding: 24px 26px;
  border: 1px solid var(--rule);
}
.value-card .vnum{
  display:inline-block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .15em;
  border: 1px solid var(--rule);
  padding: 3px 10px;
  border-radius: 20px;
  color: var(--muted);
  margin-bottom: 14px;
}
.value-card h4{
  font-family: var(--serif);
  font-size: 22px; font-weight: 500;
  margin: 0 0 8px 0;
}
.value-card p{
  font-size: 13px; line-height: 1.65;
  color: var(--ink-2); margin: 0;
}

@media (max-width:780px){ .value-cards{ grid-template-columns: 1fr; } }

/* ------------------- EXEC TEAM (3x3 with rectangular photos) ------------------- */
.exec-section{
  padding: 80px 0 100px;
}
.exec-section .section-head{ margin-bottom: 56px; }
.exec-title{
  font-family: var(--serif);
  font-size: clamp(36px, 4.4vw, 60px);
  font-weight: 500; line-height: 1.05; letter-spacing: -.01em;
  margin: 0;
}
.exec-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 56px 32px;
  margin-top: 56px;
  border-top: 1px solid var(--rule);
  padding-top: 56px;
}
.exec-card{
  display:flex; flex-direction:column;
}
.exec-photo{
  width:100%;
  aspect-ratio: 3 / 4;
  background-size: cover; background-position: center top;
  background-color: var(--paper-2);
  margin-bottom: 18px;
  overflow:hidden;
}
.exec-photo img{
  width:100%; height:100%;
  object-fit: cover; object-position: center top;
  display:block;
}
.exec-name{
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 4px 0;
}
.exec-role{
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin: 0;
}

@media (max-width: 820px){
  .exec-grid{ grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
}
@media (max-width: 500px){
  .exec-grid{ grid-template-columns: 1fr; }
}

/* ------------------- TEAMS / PODS (Plus 40+ section) ------------------- */
.teams-section{
  background: var(--paper);
  padding: 100px 0;
  border-top: 1px solid var(--rule);
}
.teams-section .section-head{ margin-bottom: 56px; }
.teams-head{
  font-family: var(--serif);
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 500; line-height: 1.05; letter-spacing: -.01em;
  margin: 0 0 20px 0;
}
.teams-head em{ font-style: italic; font-weight: 400; }
.teams-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px 32px;
  margin-top: 64px;
  border-top: 1px solid var(--rule);
  padding-top: 56px;
}
.team-pod{
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.team-pod-circle{
  width: 120px; height: 120px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ABABAB, #7A7A7A);
  margin-bottom: 18px;
}
.team-pod-name{
  font-size: 13px; font-weight: 600;
  margin: 0 0 10px 0;
}
.team-pod-desc{
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.55;
  font-style: italic;
  font-weight: 500;
}
.team-pod-desc em{
  display:block;
  font-style: italic;
  font-weight: 600;
  color: var(--accent);
  margin-bottom: 4px;
}
.teams-cta{ text-align:center; margin-top: 56px; }

@media (max-width: 900px){
  .teams-grid{ grid-template-columns: repeat(2, 1fr); }
}

/* ------------------- COMPETITIONS V2 (Strategy under pressure) ------------------- */
.case-hero{
  background: var(--paper);
  padding: 160px 0 100px;
  position: relative;
  overflow: hidden;
}
.case-hero::after{
  content:"";
  position:absolute;
  top: 30%; right: 8%;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(197,191,178,.5), transparent 70%);
  border-radius: 50%;
  z-index: 0;
  pointer-events:none;
}
.case-hero .wrap{ position:relative; z-index:1; }
.case-hero .breadcrumb{ margin-bottom: 28px; font-weight: 500; }
.case-hero .eyebrow-strong{
  display:inline-block;
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 32px;
}
.case-hero h1{
  font-family: var(--serif);
  font-size: clamp(64px, 8.5vw, 130px);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -.02em;
  margin: 0 0 40px 0;
  max-width: 1000px;
}
.case-hero h1 em{ font-style: italic; font-weight: 400; color: var(--warm); }
.case-hero p{
  max-width: 460px;
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
}

.case-highlight{
  padding: 100px 0 60px;
  border-top: 1px solid var(--rule);
}
.case-highlight-grid{
  display:grid;
  grid-template-columns: auto 1fr;
  gap: 60px;
  align-items: start;
}
.case-highlight-title{
  font-family: var(--serif);
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.01em;
  margin: 0 0 32px 0;
}
.case-highlight-body{
  max-width: 600px;
  font-size: 14px; line-height: 1.8;
  color: var(--ink-2);
}
.case-highlight-body p + p{ margin-top: 16px; }

.case-photo-strip{
  margin-top: 56px;
  display:flex; gap: 8px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 10px;
}
.case-photo-strip::-webkit-scrollbar{ height: 6px; }
.case-photo-strip::-webkit-scrollbar-thumb{ background: var(--rule); }
.case-photo{
  flex: 0 0 clamp(220px, 22vw, 320px);
  aspect-ratio: 4 / 3;
  background-size: cover; background-position: center;
  scroll-snap-align: start;
}
.case-photo.cp-a{ background: linear-gradient(135deg, #354EAC, #0B1F5A); }
.case-photo.cp-b{ background: linear-gradient(135deg, #644330, #A08670); }
.case-photo.cp-c{ background: linear-gradient(135deg, #364374, #6376A8); }
.case-photo.cp-d{ background: linear-gradient(135deg, #C5D0E4, #354EAC); }
.case-photo.cp-e{ background: linear-gradient(135deg, #0B1F5A, #364374); }
.case-photo.cp-f{ background: linear-gradient(135deg, #8C6A54, #644330); }

.case-process{
  padding: 60px 0 100px;
  border-bottom: 1px solid var(--rule);
}
.case-process-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-top: 0;
}
.case-step{ }
.case-step-num{
  font-size: 11px; letter-spacing: .2em; font-weight: 600;
  color: var(--muted);
  margin-bottom: 14px;
}
.case-step-title{
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 10px 0;
}
.case-step p{
  font-size: 13px; line-height: 1.65;
  color: var(--ink-2); margin: 0;
}

@media (max-width:820px){ .case-process-grid{ grid-template-columns: 1fr 1fr; gap: 36px 24px; } }

.case-deliverables{
  padding: 100px 0;
}
.deliverable-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
}
.deliverable-card{
  background: var(--cream);
  border: 1px solid var(--rule);
  padding: 28px 24px;
  border-radius: 4px;
  display:flex; flex-direction:column; gap: 12px;
  min-height: 260px;
}
.deliverable-year{
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 500;
  color: var(--ink);
}
.deliverable-tag{
  display:inline-block; align-self:flex-start;
  font-size: 10px; letter-spacing: .15em; font-weight: 600;
  color: var(--accent);
  border: 1px solid var(--accent);
  padding: 3px 10px;
  border-radius: 20px;
}
.deliverable-title{
  font-family: var(--serif);
  font-size: 22px; font-weight: 500;
  color: var(--ink);
  margin: 4px 0;
}
.deliverable-card p{
  font-size: 12px; line-height: 1.6;
  color: var(--ink-2); margin: 0;
  flex: 1;
}
.deliverable-foot{
  border-top: 1px solid var(--rule);
  padding-top: 12px;
  display:flex; justify-content: space-between;
  font-size: 9px; letter-spacing: .15em; font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
}
.deliverable-placeholder{
  background: var(--paper-2);
  border: 1px dashed var(--rule);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--serif);
  font-size: 56px; font-weight: 500;
  color: rgba(11,31,90,.16);
  letter-spacing:-.02em;
}

@media (max-width:820px){ .deliverable-grid{ grid-template-columns: 1fr; } }

/* Sponsor CTA at bottom of competitions */
.sponsor-cta{
  background: var(--ink);
  color: var(--paper);
  padding: 110px 0;
}
.sponsor-cta .section-head{ border-color: rgba(255,255,255,.12); margin-bottom: 64px; }
.sponsor-cta .section-num,
.sponsor-cta .section-num .line{ color: rgba(255,255,255,.5); }
.sponsor-cta .section-num .line{ background: var(--paper); }
.sponsor-cta .eyebrow{ color: var(--accent-2); }
.sponsor-cta h2{ color: var(--paper); }
.sponsor-cta h2 em{ color: var(--accent-2); }
.sponsor-cta .lead{ color: rgba(255,255,255,.7); max-width: 480px; }
.sponsor-benefits{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 56px;
}
.sponsor-benefit{
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 6px;
  padding: 28px 24px;
}
.sponsor-benefit h4{
  font-family: var(--serif);
  font-size: 20px; font-weight: 500;
  color: var(--paper);
  margin: 0 0 12px 0;
}
.sponsor-benefit p{
  font-size: 12px; line-height: 1.65;
  color: rgba(255,255,255,.7); margin: 0;
}
.sponsor-cta-button{
  text-align: center;
}
.sponsor-cta .btn-pill{
  border-color: var(--paper);
  color: var(--paper);
}
.sponsor-cta .btn-pill:hover{ background: var(--paper); color: var(--ink); }

@media (max-width:820px){ .sponsor-benefits{ grid-template-columns: 1fr; } }

/* ------------------- CONSULTING (non-profit) ------------------- */
.consult-hero{
  background: var(--paper);
  padding: 160px 0 100px;
  position: relative;
  overflow: hidden;
}
.consult-hero::after{
  content:"";
  position:absolute;
  top: 30%; right: 8%;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(197,191,178,.45), transparent 70%);
  border-radius: 50%;
  z-index:0;
}
.consult-hero .wrap{ position:relative; z-index:1; }
.consult-hero .breadcrumb{ margin-bottom: 28px; font-weight: 500; }
.consult-hero .eyebrow-strong{
  display:inline-block;
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 32px;
}
.consult-hero h1{
  font-family: var(--serif);
  font-size: clamp(56px, 7.6vw, 120px);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -.02em;
  margin: 0 0 32px 0;
  max-width: 1100px;
}
.consult-hero h1 em{ font-style: italic; font-weight: 400; }
.consult-hero p{
  max-width: 460px;
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
  margin-bottom: 36px;
}

.consult-projects{
  padding: 100px 0;
  border-top: 1px solid var(--rule);
}
.proj-row{
  display:grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 56px;
  align-items: stretch;
  margin-top: 48px;
}
.proj-row + .proj-row{ margin-top: 72px; }
.proj-row-img{
  position: relative;
  aspect-ratio: 5/4;
  background-size: cover;
  background-position: center;
  border-radius: 2px;
}
.proj-row-img.grad-a{
  background: radial-gradient(circle at 30% 30%, #4663C6, #1D2D6E 50%, #0B1F5A 90%),
              radial-gradient(circle at 75% 75%, #8C5530, transparent 50%);
}
.proj-row-img.grad-b{
  background: radial-gradient(circle at 25% 35%, #5D77D4, #2A3B85 60%, #0B1F5A 100%),
              radial-gradient(circle at 70% 70%, #A06640, transparent 50%);
}
.proj-row-img-tag{
  position:absolute;
  top: 18px; left: 22px;
  font-size: 11px;
  font-style: italic;
  color: rgba(255,255,255,.75);
  letter-spacing: .04em;
}
.proj-row-img-foot{
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: var(--paper);
  padding: 14px 22px;
  display:flex; justify-content: space-between; align-items:center;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
}
.proj-row-img-foot .meta{
  font-size: 9px; letter-spacing: .2em;
  font-style: normal; font-weight: 600;
  color: var(--muted);
  font-family: var(--sans);
  display:flex; gap: 16px;
  width: 100%;
  margin-bottom: 8px;
}
.proj-row-img-foot em{
  font-style: italic; color: var(--navy); font-weight: 400;
}
.proj-row-img-foot-inner{
  width:100%;
  display:flex; flex-direction: column;
}
.proj-row-img-foot-inner .row{
  display:flex; justify-content: space-between; align-items:center;
}
.proj-row-img-foot-inner .row .arrow{ color: var(--ink); font-size: 18px; }
.proj-row-text{
  display:flex; flex-direction: column; justify-content: center;
}
.proj-row-text h3{
  font-family: var(--serif);
  font-size: clamp(38px, 4.4vw, 60px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.01em;
  margin: 0 0 18px 0;
  color: var(--ink);
}
.proj-row-text .meta{
  font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 14px;
}
.proj-row-text p{
  font-size: 14px; color: var(--ink-2); line-height: 1.7;
  margin: 0;
}

@media (max-width: 900px){
  .proj-row{ grid-template-columns: 1fr; gap: 28px; }
}

/* Client logo grid 5x2 */
.logo-grid-section{
  padding: 100px 0;
  border-top: 1px solid var(--rule);
}
.logo-grid-section .section-head{ text-align: center; margin-bottom: 56px; }
.logo-grid-section .section-head > div{ margin: 0 auto; max-width: 700px; }
.logo-grid{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--rule);
  margin-top: 32px;
}
.logo-cell{
  aspect-ratio: 5 / 3;
  display:flex; align-items:center; justify-content:center;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 400;
  color: var(--ink);
}
.logo-cell:nth-child(5n){ border-right: 0; }
.logo-cell:nth-last-child(-n+5){ border-bottom: 0; }
.logo-cell.your-brand{
  background: var(--paper-2);
  font-size: 11px; letter-spacing: .2em;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  font-style: normal;
  font-family: var(--sans);
}
.logo-grid-foot{
  font-size: 11px;
  text-align: center;
  color: var(--muted);
  margin-top: 18px;
  font-style: italic;
}

@media (max-width: 900px){
  .logo-grid{ grid-template-columns: repeat(2, 1fr); }
  .logo-cell{ border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
  .logo-cell:nth-child(5n){ border-right: 1px solid var(--rule); }
  .logo-cell:nth-child(2n){ border-right: 0; }
  .logo-cell:nth-last-child(-n+5){ border-bottom: 1px solid var(--rule); }
  .logo-cell:nth-last-child(-n+2){ border-bottom: 0; }
}

/* Case study CTA at bottom (navy panel) */
.case-study-cta{
  background: var(--ink);
  color: var(--paper);
  padding: 100px 0 60px;
}
.case-study-cta .section-head{ border-color: rgba(255,255,255,.12); margin-bottom: 48px; }
.case-study-cta .section-num,
.case-study-cta .section-num .line{ color: rgba(255,255,255,.5); }
.case-study-cta .section-num .line{ background: var(--paper); }
.case-study-cta .eyebrow{ color: var(--accent-2); }
.case-study-cta h2{ color: var(--paper); }
.case-study-cta h2 em{ color: var(--accent-2); }
.case-study-cta .lead{ color: rgba(255,255,255,.7); max-width: 540px; }
.case-study-info{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.case-study-info h5{
  font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  font-weight: 600;
  margin: 0 0 8px 0;
}
.case-study-info a{ color: var(--cream); font-size: 14px; }
.case-study-info a:hover{ color: var(--accent-2); }
.case-study-cta .btn-pill{
  margin-top: 32px;
  border-color: var(--paper);
  color: var(--paper);
}
.case-study-cta .btn-pill:hover{ background: var(--paper); color: var(--ink); }

@media (max-width:820px){ .case-study-info{ grid-template-columns: 1fr; gap: 28px; } }

/* ------------------- GET IN TOUCH DARK FORM ------------------- */
.git-card{
  background: #0d0d0d;
  border: 1px solid #2a2a2a;
  border-radius: 4px;
  padding: 38px 36px 32px;
  color: var(--paper);
}
.git-card h3{
  text-align:center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  margin: 0 0 14px 0;
  color: var(--paper);
}
.git-card .git-blurb{
  text-align:center;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(255,255,255,.65);
  margin: 0 auto 28px;
  max-width: 420px;
}
.git-card form{ display:flex; flex-direction:column; gap: 18px; }
.git-card .field label{
  font-size: 9px; font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: 6px;
  display:block;
}
.git-card .field input,
.git-card .field textarea{
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.25);
  border-radius: 0;
  padding: 10px 0;
  color: var(--paper);
  font-family: var(--sans);
  font-size: 14px;
  transition: border-color .25s ease;
  width: 100%;
}
.git-card .field input:focus,
.git-card .field textarea:focus{
  outline: none;
  border-bottom-color: var(--accent-2);
}
.git-card .field textarea{ min-height: 80px; resize: vertical; }
.git-card .git-row-2{
  display:grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
.git-card .submit-row{ text-align:center; margin-top: 8px; }
.git-card .submit-pill{
  display:inline-block;
  background: var(--paper);
  color: #0d0d0d;
  border: 0;
  padding: 12px 32px;
  border-radius: 100px;
  font-size: 12px; font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}
.git-card .submit-pill:hover{ background: var(--accent-2); }

@media (max-width:600px){ .git-card .git-row-2{ grid-template-columns: 1fr; } }

/* ------------------- CONTACT PAGE LAYOUT (V2) ------------------- */
.contact-v2{
  background: var(--ink);
  color: var(--paper);
  padding: 160px 0 100px;
  min-height: 70vh;
}
.contact-v2 .breadcrumb{ color: rgba(255,255,255,.55); margin-bottom: 28px; }
.contact-v2 .breadcrumb a{ color: rgba(255,255,255,.55); }
.contact-v2 .section-head{ border-color: rgba(255,255,255,.12); margin-bottom: 64px; }
.contact-v2 .section-num,
.contact-v2 .section-num .line{ color: rgba(255,255,255,.5); }
.contact-v2 .section-num .line{ background: var(--paper); }
.contact-v2 .eyebrow{ color: var(--accent-2); }
.contact-v2 h2{ color: var(--paper); }
.contact-v2 h2 em{ color: var(--accent-2); font-style: italic; font-weight: 300; }
.contact-v2 .lead{ color: rgba(255,255,255,.7); }
.contact-v2-grid{
  display:grid;
  grid-template-columns: 1fr 460px;
  gap: 80px;
  align-items: start;
}
.contact-v2-grid .contact-info h5,
.contact-v2-grid .contact-block h5{
  color: rgba(255,255,255,.45);
}
.contact-v2-grid .contact-block p,
.contact-v2-grid .contact-block a{ color: var(--cream); }
.contact-v2-grid .contact-block a:hover{ color: var(--accent-2); }
.contact-v2-quick-socials{
  display:flex; gap: 12px;
  margin-top: 36px;
}
.contact-v2-quick-socials a{
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
  color: var(--paper);
  transition: all .25s ease;
}
.contact-v2-quick-socials a:hover{
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}
.contact-v2-quick-socials svg{ width:15px; height:15px; }

@media (max-width: 900px){ .contact-v2-grid{ grid-template-columns: 1fr; gap: 48px; } }

/* ------------------- SPONSORSHIP PAGE ------------------- */
.sponsor-hero{
  background: var(--paper);
  padding: 160px 0 100px;
  position: relative;
  overflow: hidden;
}
.sponsor-hero::after{
  content:"";
  position:absolute;
  top: 25%; right: 6%;
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(53,78,172,.12), transparent 70%);
  border-radius: 50%;
  z-index:0;
}
.sponsor-hero .wrap{ position:relative; z-index:1; }
.sponsor-hero .breadcrumb{ margin-bottom: 28px; }
.sponsor-hero .eyebrow-strong{
  display:inline-block;
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 32px;
}
.sponsor-hero h1{
  font-family: var(--serif);
  font-size: clamp(56px, 8vw, 130px);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -.02em;
  margin: 0 0 32px 0;
  max-width: 1100px;
}
.sponsor-hero h1 em{ font-style: italic; font-weight: 400; color: var(--warm); }
.sponsor-hero p{
  max-width: 480px;
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
}

.sponsor-why{
  padding: 100px 0;
  border-top: 1px solid var(--rule);
}
.why-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
}
.why-card{
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 4px;
  padding: 32px 28px;
}
.why-card .vnum{
  display:inline-block;
  font-size: 10px; letter-spacing: .18em; font-weight: 700;
  color: var(--accent);
  margin-bottom: 14px;
}
.why-card h4{
  font-family: var(--serif);
  font-size: 24px; font-weight: 500;
  color: var(--ink);
  margin: 0 0 12px 0;
}
.why-card p{
  font-size: 13px; line-height: 1.65;
  color: var(--ink-2);
  margin: 0;
}

@media (max-width:820px){ .why-grid{ grid-template-columns: 1fr; } }

/* Sponsor process panel (navy) */
.sponsor-process{
  background: var(--ink);
  color: var(--paper);
  padding: 100px 0;
}
.sponsor-process .section-head{ border-color: rgba(255,255,255,.12); margin-bottom: 56px; }
.sponsor-process .section-num,
.sponsor-process .section-num .line{ color: rgba(255,255,255,.5); }
.sponsor-process .section-num .line{ background: var(--paper); }
.sponsor-process .eyebrow{ color: var(--accent-2); }
.sponsor-process h2{ color: var(--paper); }
.sponsor-process h2 em{ color: var(--accent-2); }
.sponsor-process .lead{ color: rgba(255,255,255,.7); }
.process-timeline{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 32px;
}
.process-step{
  border-top: 1px solid rgba(255,255,255,.18);
  padding-top: 18px;
}
.process-step-num{
  font-size: 11px; letter-spacing: .2em; font-weight: 700;
  color: var(--accent-2);
  margin-bottom: 16px;
}
.process-step h4{
  font-family: var(--serif);
  font-size: 22px; font-weight: 500;
  color: var(--paper);
  margin: 0 0 10px 0;
}
.process-step p{
  font-size: 13px; line-height: 1.65;
  color: rgba(255,255,255,.7);
  margin: 0;
}

@media (max-width:820px){ .process-timeline{ grid-template-columns: 1fr 1fr; } }

.sponsor-form-section{
  padding: 100px 0;
  background: var(--paper);
}
.sponsor-form-wrap{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.sponsor-form-text h2{
  font-family: var(--serif);
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 500;
  line-height: 1.05; letter-spacing: -.01em;
  margin: 0 0 20px 0;
}
.sponsor-form-text h2 em{ font-style: italic; font-weight: 400; color: var(--warm); }
.sponsor-form-text p{
  font-size: 14px; line-height: 1.7;
  color: var(--ink-2);
}

@media (max-width:900px){ .sponsor-form-wrap{ grid-template-columns: 1fr; gap: 48px; } }

/* ------------------- PAGE HERO V2 OVERRIDES (for breadcrumb at top) ------------------- */
.page-hero-v2 .breadcrumb{
  margin-bottom: 28px;
  font-weight: 500;
}
.page-hero-v2 .eyebrow-strong{
  display:inline-block;
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 32px;
}

/* =================================================================
   V2 APPENDIX — final tweaks & missing classes (June 2026)
   ================================================================= */

/* ---- Nav dropdown menu (Projects → Consulting / Competition) ---- */
.nav-dropdown{
  position: relative;
  display: inline-block;
}
.nav-dropdown > .dropdown-trigger{
  cursor: pointer;
}
.nav-dropdown .caret{
  font-size: 10px;
  margin-left: 4px;
  opacity: .7;
}
.nav-dropdown .dropdown-menu{
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  background: var(--paper, #f5f1ea);
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 10px;
  padding: 10px 0;
  min-width: 180px;
  box-shadow: 0 14px 40px -10px rgba(11,31,90,.18);
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
  z-index: 50;
}
.nav-dropdown:hover .dropdown-menu,
.nav-dropdown:focus-within .dropdown-menu{
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(2px);
}
.nav-dropdown .dropdown-menu a{
  display: block;
  padding: 10px 22px;
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink, #0b1f5a);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.nav-dropdown .dropdown-menu a:hover,
.nav-dropdown .dropdown-menu a.active{
  background: rgba(11,31,90,.06);
  color: var(--accent, #d24b3c);
}
.nav .scrolled .nav-dropdown .dropdown-menu{ background: #fff; }

/* ---- Gradient placeholders (add c, d, team, case, astros) ---- */
.grad-c{
  background: linear-gradient(135deg, #f4d8c4 0%, #d29b71 60%, #a35c43 100%);
}
.grad-d{
  background: linear-gradient(135deg, #cfdbe6 0%, #6f93b3 60%, #2d4e72 100%);
}
.placeholder-team{
  background:
    linear-gradient(120deg, rgba(11,31,90,.55), rgba(210,75,60,.35)),
    linear-gradient(135deg, #e7dcc9 0%, #c9b89a 100%);
  background-size: cover;
  background-position: center;
}
.placeholder-case{
  background:
    linear-gradient(135deg, rgba(11,31,90,.6), rgba(11,31,90,.85)),
    linear-gradient(120deg, #233b78 0%, #0b1f5a 100%);
  background-size: cover;
  background-position: center;
}
.placeholder-astros-1{ background: linear-gradient(135deg, #2d4e72 0%, #0b1f5a 100%); }
.placeholder-astros-2{ background: linear-gradient(135deg, #d24b3c 0%, #8a2d22 100%); }
.placeholder-astros-3{ background: linear-gradient(135deg, #e7dcc9 0%, #c0a778 100%); }
.placeholder-astros-4{ background: linear-gradient(135deg, #6f93b3 0%, #2d4e72 100%); }

/* ---- Hero V2 — top strip + EST vertical + overlay + headline ---- */
.hero-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11,31,90,.25) 0%, rgba(11,31,90,.55) 100%);
  z-index: 1;
}
.top-strip{
  position: absolute;
  top: 90px;
  left: 0; right: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
  padding: 0 24px;
  text-align: center;
}
.top-strip .strip-dot{
  font-size: 6px;
  color: var(--accent-2, #e9c46a);
}
.est-vertical{
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
  transform-origin: center;
  z-index: 3;
  color: rgba(255,255,255,.7);
  font-size: 11px;
  letter-spacing: .42em;
  text-transform: uppercase;
}
.headline-v2{
  font-family: 'Playfair Display', serif;
  color: #fff;
  font-size: clamp(48px, 8vw, 112px);
  line-height: .98;
  font-weight: 400;
  letter-spacing: -0.02em;
  margin: 0 0 40px;
  max-width: 14ch;
}
.headline-v2 em{
  font-style: italic;
  font-weight: 400;
  color: var(--accent-2, #e9c46a);
}
.hero-cta-row{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.btn-ghost-light{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.btn-ghost-light:hover{
  background: #fff;
  color: var(--ink, #0b1f5a);
  border-color: #fff;
}

/* ---- Who-section stats ---- */
.who-stats{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 72px;
}
.who-stat{
  text-align: left;
  border-top: 1px solid rgba(11,31,90,.18);
  padding-top: 28px;
}
.who-num{
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: clamp(54px, 7vw, 92px);
  line-height: 1;
  color: var(--ink);
  font-weight: 400;
  margin-bottom: 18px;
}
.who-num em{
  color: var(--accent, #d24b3c);
  font-style: normal;
}
.who-label{
  display: block;
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink-2, #4a4a4a);
  line-height: 1.4;
}
@media (max-width:780px){ .who-stats{ grid-template-columns: 1fr; gap: 24px; } }

/* ---- Highlights track (carousel) ---- */
.highlights-track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 360px);
  gap: 28px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 24px;
  padding: 24px 4px 32px;
  margin-top: 56px;
  scrollbar-width: thin;
}
.highlights-track::-webkit-scrollbar{ height: 6px; }
.highlights-track::-webkit-scrollbar-thumb{ background: rgba(11,31,90,.2); border-radius: 4px; }
.h-card{
  scroll-snap-align: start;
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
}
.h-img{
  aspect-ratio: 4 / 3;
  width: 100%;
}
.h-meta{
  padding: 22px 22px 26px;
}
.h-tag{
  display: inline-block;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  margin-bottom: 10px;
  font-weight: 600;
}
.h-card h4{
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 10px;
  font-weight: 500;
}
.h-card p{
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}

/* ---- Achievements grid ---- */
.achievements-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.achievements-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.ach-circle{
  text-align: center;
  position: relative;
  padding-top: 16px;
}
.ach-ring{
  width: 140px;
  height: 140px;
  margin: 0 auto 20px;
  border-radius: 50%;
  border: 1px solid rgba(11,31,90,.25);
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.6), transparent 60%),
    linear-gradient(135deg, var(--accent, #d24b3c) 0%, #8a2d22 100%);
}
.ach-circle:nth-child(2) .ach-ring{ background: linear-gradient(135deg, #e9c46a 0%, #c08a2c 100%); }
.ach-circle:nth-child(3) .ach-ring{ background: linear-gradient(135deg, #6f93b3 0%, #2d4e72 100%); }
.ach-circle:nth-child(4) .ach-ring{ background: linear-gradient(135deg, #d29b71 0%, #a35c43 100%); }
.ach-circle:nth-child(5) .ach-ring{ background: linear-gradient(135deg, #4a6b8a 0%, #0b1f5a 100%); }
.ach-label{
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  color: var(--ink);
  line-height: 1.15;
  margin-bottom: 10px;
}
.ach-sub{
  display: block;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-2, #4a4a4a);
  line-height: 1.7;
}
.ach-sub em{ color: var(--accent, #d24b3c); font-style: normal; }
@media (max-width:1180px){ .achievements-grid{ grid-template-columns: repeat(3,1fr); gap: 40px 24px; } }
@media (max-width:760px){ .achievements-grid{ grid-template-columns: repeat(2,1fr); gap: 40px 20px; } }
@media (max-width:440px){ .achievements-grid{ grid-template-columns: 1fr; } }

/* ---- Home clients preview + CTA ---- */
.home-clients-section{ padding: 120px 0; background: #fff; }
.home-clients{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px;
  margin-top: 56px;
}
.home-client{ text-align: center; }
.hc-ring{
  width: 200px;
  height: 200px;
  border-radius: 50%;
  margin: 0 auto 22px;
  border: 1px solid rgba(11,31,90,.18);
}
.home-client h4{
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  margin: 0 0 10px;
  color: var(--ink);
  font-weight: 500;
}
.home-client p{
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  max-width: 36ch;
  margin: 0 auto;
}
.home-clients-cta{ text-align: center; margin-top: 56px; }
@media (max-width:780px){ .home-clients{ grid-template-columns: 1fr; gap: 32px; } }

/* ---- Home navy contact section grid ---- */
.contact-grid{
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 64px;
  margin-top: 56px;
  align-items: start;
}
.contact-col h5{
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent-2, #e9c46a);
  margin: 0 0 12px;
  font-weight: 600;
}
.contact-col a,
.contact-col p{
  color: rgba(255,255,255,.85);
  text-decoration: none;
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}
.contact-col a:hover{ color: #fff; text-decoration: underline; }
.partner-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  padding: 40px;
}
.partner-card .eyebrow{ color: var(--accent-2, #e9c46a); }
.partner-card h3{
  font-family: 'Playfair Display', serif;
  font-size: clamp(32px, 4vw, 44px);
  color: #fff;
  margin: 12px 0 18px;
  font-weight: 400;
  line-height: 1.05;
}
.partner-card p{
  color: rgba(255,255,255,.75);
  font-size: 15px;
  line-height: 1.65;
  margin: 0 0 28px;
}
@media (max-width:880px){ .contact-grid{ grid-template-columns: 1fr; gap: 40px; } }

/* ---- About hero overlay ---- */
.about-hero{ position: relative; overflow: hidden; padding: 180px 0 120px; background: var(--paper); }
.about-hero-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .85;             /* let the team photo actually show */
}
.about-hero-overlay{
  position: absolute; inset: 0;
  /* lighter overlay on the top so the photo reads, stronger fade at bottom so text stays legible */
  background: linear-gradient(180deg, rgba(245,241,234,.25) 0%, rgba(245,241,234,.78) 60%, rgba(245,241,234,.95) 100%);
  z-index: 1;
}

/* ---- Values cards ---- */
.values-section{ padding: 120px 0; background: #fff; }
.value-cards{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.value-card{
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 14px;
  padding: 36px;
  background: #fff;
  transition: border-color .2s ease, transform .2s ease;
}
.value-card:hover{ border-color: var(--accent, #d24b3c); transform: translateY(-2px); }
.value-card .vnum{
  display: inline-block;
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 16px;
}
.value-card h4{
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  line-height: 1.15;
  margin: 0 0 14px;
  color: var(--ink);
  font-weight: 500;
}
.value-card p{
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}
@media (max-width:780px){ .value-cards{ grid-template-columns: 1fr; gap: 20px; } }

/* ---- Exec grid 3x3 ---- */
.exec-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.exec-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-top: 56px;
}
.exec-card{ text-align: left; }
.exec-portrait{
  aspect-ratio: 3 / 4;
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
  background: linear-gradient(135deg, #e7dcc9, #c9b89a);
  margin-bottom: 20px;
}
.exec-portrait img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(20%);
  transition: filter .3s ease, transform .4s ease;
}
.exec-card:hover .exec-portrait img{ filter: grayscale(0); transform: scale(1.02); }
.exec-card h3{
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.15;
  margin: 0 0 4px;
  color: var(--ink);
  font-weight: 500;
}
.exec-card p{
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--accent, #d24b3c);
  margin: 0;
}
@media (max-width:900px){ .exec-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .exec-grid{ grid-template-columns: 1fr; } }

/* ---- 40+ members grid (8 circles) ---- */
.teams-section{ padding: 120px 0; background: #fff; }
.teams-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px 28px;
  margin-top: 56px;
}
.team-circle{ text-align: center; }
.tc-ring{
  width: 140px;
  height: 140px;
  border-radius: 50%;
  margin: 0 auto 18px;
  border: 1px solid rgba(11,31,90,.14);
}
.team-circle h5{
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 10px;
  font-weight: 500;
}
.team-circle p{
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-2, #4a4a4a);
  margin: 0 auto;
  max-width: 220px;
}
@media (max-width:900px){ .teams-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:520px){ .teams-grid{ grid-template-columns: 1fr; } }

/* ---- Case (competitions) hero bg + recent strip ---- */
.case-hero{ position: relative; overflow: hidden; padding: 180px 0 120px; background: var(--ink, #0b1f5a); color: #fff; }
.case-hero-bg{
  position: absolute; inset: 0;
  z-index: 0;
  opacity: .35;
}
.case-hero .breadcrumb{ color: rgba(255,255,255,.7); }
.case-hero .breadcrumb a{ color: rgba(255,255,255,.7); }
.case-hero p{ color: rgba(255,255,255,.85); max-width: 60ch; }

.recent-highlight-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.recent-photo-strip{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 56px;
}
.rp-card{
  aspect-ratio: 4 / 5;
  border-radius: 10px;
}
@media (max-width:780px){ .recent-photo-strip{ grid-template-columns: repeat(2,1fr); } }

.process-section{ padding: 120px 0; background: #fff; }
.deliverables-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.deliverable-card{
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 14px;
  padding: 32px 24px;
  background: #fff;
  transition: border-color .2s ease, transform .2s ease;
}
.deliverable-card:hover{ border-color: var(--accent, #d24b3c); transform: translateY(-2px); }
.deliverable-card .dnum{
  display: inline-block;
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 16px;
}
.deliverable-card h4{
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.2;
  margin: 0 0 10px;
  color: var(--ink);
  font-weight: 500;
}
@media (max-width:980px){ .deliverables-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:520px){ .deliverables-grid{ grid-template-columns: 1fr; } }

/* ---- Competition cards (comp-grid) ---- */
.comp-cards-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.comp-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.comp-card{
  background: #fff;
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 14px;
  overflow: hidden;
  transition: transform .25s ease, border-color .25s ease;
}
.comp-card:hover{ transform: translateY(-3px); border-color: var(--accent, #d24b3c); }
.comp-cover{
  aspect-ratio: 16 / 10;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.comp-body{
  padding: 28px;
}
.comp-year{
  display: inline-block;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 12px;
}
.comp-card h3{
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 10px;
  font-weight: 500;
}
.comp-result{
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink-2, #4a4a4a);
  margin: 0 0 12px;
}
.comp-result em{
  color: var(--accent, #d24b3c);
  font-style: italic;
  font-weight: 500;
}
.comp-card p{
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}
@media (max-width:720px){ .comp-grid{ grid-template-columns: 1fr; } }

/* ---- Consulting project rows ---- */
.recent-projects-section{ padding: 120px 0; background: #fff; }
.proj-row{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
  margin-top: 56px;
}
.proj-row.reverse{ grid-template-columns: 1fr 1.1fr; }
.proj-row.reverse .proj-img{ order: 2; }
.proj-row.reverse .proj-text{ order: 1; }
.proj-img{
  aspect-ratio: 4 / 3;
  width: 100%;
  border-radius: 12px;
}
.proj-tag{
  display: inline-block;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 14px;
}
.proj-text h3{
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.12;
  margin: 0 0 18px;
  color: var(--ink);
  font-weight: 400;
}
.proj-text p{
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-2, #4a4a4a);
  margin: 0 0 22px;
}
.proj-deliverables{
  list-style: none;
  padding: 0;
  margin: 0;
}
.proj-deliverables li{
  padding: 12px 0;
  border-top: 1px solid rgba(11,31,90,.12);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink);
}
.proj-deliverables li:last-child{ border-bottom: 1px solid rgba(11,31,90,.12); }
@media (max-width:880px){
  .proj-row,
  .proj-row.reverse{ grid-template-columns: 1fr; gap: 28px; }
  .proj-row.reverse .proj-img{ order: 1; }
  .proj-row.reverse .proj-text{ order: 2; }
}

/* ---- Orgs / logo grid ---- */
.orgs-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.logo-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin-top: 56px;
  border-top: 1px solid rgba(11,31,90,.14);
  border-left: 1px solid rgba(11,31,90,.14);
}
.logo-cell{
  border-right: 1px solid rgba(11,31,90,.14);
  border-bottom: 1px solid rgba(11,31,90,.14);
  aspect-ratio: 3 / 2;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-style: italic;
  color: var(--ink);
  padding: 0 20px;
  background: #fff;
}
@media (max-width:880px){ .logo-grid{ grid-template-columns: repeat(2,1fr); } }

/* ---- Sponsorship why grid + process timeline ---- */
.why-section{ padding: 120px 0; background: #fff; }
.why-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 56px;
}
.why-card{
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 14px;
  padding: 36px;
  background: #fff;
  transition: border-color .2s ease, transform .2s ease;
}
.why-card:hover{ border-color: var(--accent, #d24b3c); transform: translateY(-2px); }
.why-card .wnum{
  display: inline-block;
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 16px;
}
.why-card h4{
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  line-height: 1.15;
  margin: 0 0 14px;
  color: var(--ink);
  font-weight: 500;
}
.why-card p{
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}
@media (max-width:880px){ .why-grid{ grid-template-columns: 1fr; } }

.sponsor-process-section{ padding: 120px 0; background: var(--paper, #f5f1ea); }
.process-timeline{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 56px;
  position: relative;
}
.pt-step{
  padding: 28px 24px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(11,31,90,.12);
  position: relative;
}
.pt-step .pt-num{
  display: inline-block;
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--accent, #d24b3c);
  font-weight: 600;
  margin-bottom: 14px;
}
.pt-step h4{
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  line-height: 1.2;
  margin: 0 0 10px;
  color: var(--ink);
  font-weight: 500;
}
.pt-step p{
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}
@media (max-width:980px){ .process-timeline{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:520px){ .process-timeline{ grid-template-columns: 1fr; } }

/* ---- Sponsor form section (light bg variant) ---- */
.sponsor-form-section{ padding: 120px 0; background: var(--ink, #0b1f5a); color: #fff; }
.sponsor-form-section .section-head{ border-color: rgba(255,255,255,.12); }
.sponsor-form-section .section-num,
.sponsor-form-section .section-num .line{ color: rgba(255,255,255,.5); }
.sponsor-form-section .section-num .line{ background: var(--paper); }
.sponsor-form-section .eyebrow{ color: var(--accent-2, #e9c46a); }
.sponsor-form-section h2{ color: #fff; }
.sponsor-form-section h2 em{ color: var(--accent-2, #e9c46a); font-style: italic; font-weight: 300; }
.sponsor-form-section .lead{ color: rgba(255,255,255,.7); }
.sponsor-form-section .git-card{ max-width: 720px; margin: 56px auto 0; }

/* ---- Contact V2 — info row under form ---- */
.contact-v2{ padding: 160px 0 120px; background: var(--ink, #0b1f5a); color: #fff; min-height: 100vh; }
.contact-v2 .git-card{ max-width: 720px; margin: 0 auto; }
.contact-info-row{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 64px;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 40px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.ci-block h5{
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent-2, #e9c46a);
  margin: 0 0 10px;
  font-weight: 600;
}
.ci-block a,
.ci-block p{
  color: rgba(255,255,255,.85);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}
.ci-block a:hover{ color: #fff; text-decoration: underline; }
@media (max-width:780px){ .contact-info-row{ grid-template-columns: 1fr; gap: 24px; } }

/* ---- Active nav link ---- */
.nav-links > a.active,
.nav-links .dropdown-trigger.active{
  color: var(--accent, #d24b3c);
}
.nav-links > a.active::after{
  content: "";
  display: block;
  width: 6px; height: 6px;
  background: var(--accent, #d24b3c);
  border-radius: 50%;
  margin: 4px auto 0;
}

/* ---- Section spacing on smaller screens ---- */
@media (max-width:780px){
  .who-section,
  .highlights-section,
  .achievements-section,
  .home-clients-section,
  .home-contact,
  .values-section,
  .exec-section,
  .teams-section,
  .recent-highlight-section,
  .process-section,
  .comp-cards-section,
  .recent-projects-section,
  .orgs-section,
  .why-section,
  .sponsor-process-section,
  .sponsor-form-section,
  .case-study-cta,
  .sponsor-cta,
  .case-hero,
  .about-hero{
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
/* =================================================================
   END V2 APPENDIX
   ================================================================= */

/* =================================================================
   V3 TIGHTEN — fix nav, compress homepage spacing (June 2026)
   ================================================================= */

/* ---- 1. Make sure the Projects dropdown trigger is visible ---- */
.nav-links{
  display: flex;
  align-items: center;
  gap: 32px;
}
/* IMPORTANT: this overrides an OLDER .nav-dropdown rule from V1 that had
   opacity:0 / visibility:hidden / pointer-events:none for a different
   markup structure. We force the wrapper to be visible — only the inner
   .dropdown-menu should be hidden by default. */
.nav-dropdown{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  flex-direction: row !important;
  gap: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  z-index: 30;
}
.nav-dropdown > .dropdown-trigger{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 0;
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
  cursor: pointer;
  transition: color .2s;
  text-decoration: none;
}
.nav-dropdown > .dropdown-trigger:hover{ color: var(--accent, #d24b3c); }
.nav-dropdown .caret{
  font-size: 9px;
  opacity: .55;
  transition: transform .2s ease, opacity .2s ease;
  margin-top: 1px;
}
.nav-dropdown:hover .caret,
.nav-dropdown:focus-within .caret{
  opacity: 1;
  transform: rotate(180deg);
}
.nav-dropdown .dropdown-menu{
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  padding: 8px 0;
}

/* ---- 2. Compress hero ---- */
.hero-v2{
  min-height: 86vh;
  padding-top: 130px;
  padding-bottom: 70px;
}
.top-strip{ top: 78px; }
.headline-v2{
  font-size: clamp(42px, 6.5vw, 92px);
  margin-bottom: 28px;
}

/* ---- 3. Marquee — slimmer ---- */
.marquee-slim{
  padding: 18px 0;
}

/* ---- 4. Who-section — 2-column layout, much tighter ---- */
.who-section{
  padding: 64px 0 56px;
}
.who-section .section-head{
  margin-bottom: 28px;
  padding-bottom: 28px;
}
.who-section h2{ margin-bottom: 14px; }
.who-section .lead{ max-width: 56ch; }
.who-stats{
  margin-top: 32px;
  gap: 24px;
}
.who-stat{
  padding-top: 18px;
}
.who-num{
  font-size: clamp(40px, 5vw, 64px);
  margin-bottom: 10px;
}
.who-label{ font-size: 12px; }

/* ---- 5. Highlights carousel — tighter padding ---- */
.highlights-section{ padding: 64px 0; }
.highlights-section .section-head{ margin-bottom: 28px; padding-bottom: 28px; }
.highlights-track{
  margin-top: 32px;
  gap: 20px;
  grid-auto-columns: minmax(260px, 320px);
  padding: 14px 4px 18px;
}
.h-card h4{ font-size: 19px; }
.h-meta{ padding: 18px 18px 22px; }

/* ---- 6. Achievements — tighter ---- */
.achievements-section{ padding: 64px 0; }
.achievements-section .section-head{ margin-bottom: 28px; padding-bottom: 28px; }
.achievements-grid{
  margin-top: 32px;
  gap: 24px;
}
.ach-ring{
  width: 128px;
  height: 128px;
  margin-bottom: 14px;
}
.ach-label{ font-size: 17px; margin-bottom: 6px; }
.ach-sub{ font-size: 10px; line-height: 1.6; }

/* ---- 7. Home clients preview — tighter ---- */
.home-clients-section{ padding: 64px 0; }
.home-clients-section .section-head{ margin-bottom: 28px; padding-bottom: 28px; }
.home-clients{
  margin-top: 32px;
  gap: 32px;
}
.hc-ring{
  width: 160px;
  height: 160px;
  margin-bottom: 16px;
}
.home-client h4{ font-size: 22px; margin-bottom: 8px; }
.home-client p{ font-size: 13px; }
.home-clients-cta{ margin-top: 32px; }

/* ---- 8. Navy contact section — tighter ---- */
.home-contact{ padding: 72px 0; }
.home-contact .section-head{ margin-bottom: 28px; padding-bottom: 28px; }
.contact-grid{
  margin-top: 28px;
  gap: 48px;
}
.partner-card{ padding: 32px; }
.partner-card h3{
  font-size: clamp(26px, 3.2vw, 36px);
  margin: 10px 0 14px;
}
.partner-card p{ margin-bottom: 22px; font-size: 14px; }

/* ---- 9. Section-head — overall tighter (applies everywhere) ---- */
.section-head .section-num{ font-size: 11px; }
.section-head h2{
  font-size: clamp(30px, 4.2vw, 52px);
  line-height: 1.05;
}
.section-head .lead{
  font-size: 15px;
  line-height: 1.55;
}

/* ---- 10. About / Values / Exec / Teams — also tighter ---- */
.about-hero{ padding: 140px 0 80px; }
.values-section{ padding: 72px 0; }
.value-cards{ margin-top: 32px; gap: 22px; }
.value-card{ padding: 28px; }
.value-card h4{ font-size: 22px; margin-bottom: 10px; }
.exec-section{ padding: 72px 0; }
.exec-grid{ margin-top: 32px; gap: 28px; }
.exec-portrait{ margin-bottom: 14px; }
.exec-card h3{ font-size: 19px; }
.teams-section{ padding: 72px 0; }
.teams-grid{ margin-top: 32px; gap: 28px 20px; }
.tc-ring{ width: 110px; height: 110px; margin-bottom: 14px; }
.team-circle h5{ font-size: 14px; }

/* ---- 11. Competitions page — also tighter ---- */
.case-hero{ padding: 140px 0 80px; }
.recent-highlight-section{ padding: 72px 0; }
.process-section{ padding: 72px 0; }
.comp-cards-section{ padding: 72px 0; }
.sponsor-cta{ padding: 80px 0; }
.deliverables-grid{ margin-top: 32px; gap: 18px; }
.deliverable-card{ padding: 26px 22px; }
.deliverable-card h4{ font-size: 20px; }
.recent-photo-strip{ margin-top: 32px; gap: 12px; }

/* ---- 12. Consulting page — tighter ---- */
.consult-hero{ padding: 140px 0 80px; }
.recent-projects-section{ padding: 72px 0; }
.proj-row + .proj-row{ margin-top: 56px; }
.orgs-section{ padding: 72px 0; }
.case-study-cta{ padding: 80px 0; }

/* ---- 13. Sponsorship page — tighter ---- */
.sponsor-hero{ padding: 140px 0 80px; }
.why-section{ padding: 72px 0; }
.why-grid{ margin-top: 32px; gap: 22px; }
.why-card{ padding: 28px; }
.why-card h4{ font-size: 22px; }
.sponsor-process-section{ padding: 72px 0; }
.process-timeline{ margin-top: 32px; gap: 18px; }
.pt-step{ padding: 24px 22px; }
.pt-step h4{ font-size: 20px; }
.sponsor-form-section{ padding: 80px 0; }
.sponsor-form-section .git-card{ margin-top: 40px; }

/* ---- 14. Contact V2 — tighter, less ceremony ---- */
.contact-v2{ padding: 130px 0 80px; min-height: auto; }
.contact-v2 .section-head{ margin-bottom: 36px; padding-bottom: 28px; }
.contact-v2 .git-card{ padding: 36px; }
.contact-info-row{ margin-top: 40px; padding-top: 32px; gap: 24px; }

/* ---- 15. Footer — slightly tighter ---- */
footer{ padding-top: 64px !important; padding-bottom: 32px !important; }

/* ---- 16. Mobile compression ---- */
@media (max-width:780px){
  .hero-v2{ min-height: 78vh; padding-top: 110px; padding-bottom: 60px; }
  .who-section,
  .highlights-section,
  .achievements-section,
  .home-clients-section,
  .home-contact,
  .values-section,
  .exec-section,
  .teams-section,
  .recent-highlight-section,
  .process-section,
  .comp-cards-section,
  .recent-projects-section,
  .orgs-section,
  .why-section,
  .sponsor-process-section,
  .sponsor-form-section,
  .case-study-cta,
  .sponsor-cta,
  .case-hero,
  .about-hero,
  .consult-hero,
  .sponsor-hero{
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .contact-v2{ padding-top: 100px; }
}
/* ---- 17. Compact "Who we are" 2-column with inline stats ---- */
.who-section-tight{
  padding: 56px 0 !important;
  background: var(--paper, #f5f1ea);
}
/* Override V1 .who-left grid that was 2-column. Inside .who-section-tight, .who-left is a simple block stack. */
.who-section-tight .who-left{
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}
.who-row{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
}
.who-row .who-left .eyebrow{
  display: block;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  margin-bottom: 14px;
  font-weight: 600;
}
.who-row .who-left h2{
  font-family: 'Playfair Display', serif;
  font-size: clamp(32px, 4.4vw, 56px);
  line-height: 1.0;
  margin: 0 0 18px;
  color: var(--ink);
  font-weight: 400;
}
.who-row .who-left h2 em{
  font-style: italic;
  color: var(--accent, #d24b3c);
  font-weight: 400;
}
.who-row .who-left p{
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
  max-width: 42ch;
}
.who-stats-inline{
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(11,31,90,.15);
  border-bottom: 1px solid rgba(11,31,90,.15);
  padding: 24px 0;
}
.who-stat-inline{
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
}
.who-stat-inline + .who-stat-inline{
  border-left: 1px solid rgba(11,31,90,.12);
}
.who-num-sm{
  font-family: 'Playfair Display', serif;
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1;
  color: var(--ink);
  font-weight: 400;
  margin-bottom: 6px;
}
.who-num-sm em{
  color: var(--accent, #d24b3c);
  font-style: normal;
}
.who-label-sm{
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-2, #4a4a4a);
}
@media (max-width:840px){
  .who-row{ grid-template-columns: 1fr; gap: 32px; }
  .who-stats-inline{ gap: 16px; padding: 18px 0; }
}

/* =================================================================
   END V3 TIGHTEN
   ================================================================= */

/* =================================================================
   V4 — native contact form + competition slideshow + image swap
   ================================================================= */

/* ---- A. Placeholder gradients now accept real images on top.
   To swap any placeholder, drop a file into images/ with the matching
   name (hero-1.jpg, hero-2.jpg, hero-3.jpg, etc). If the file is
   missing, the gradient stays. ---- */
.placeholder-1{
  background:
    url('images/hero-1.jpg') center/cover no-repeat,
    linear-gradient(135deg, #e7dcc9 0%, #c9b89a 60%, #d24b3c 100%);
}
.placeholder-2{
  background:
    url('images/hero-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #2d4e72 0%, #0b1f5a 100%);
}
.placeholder-3{
  background:
    url('images/hero-3.jpg') center/cover no-repeat,
    linear-gradient(135deg, #d24b3c 0%, #8a2d22 100%);
}
/* Extra hero rotation slides — event / GBM / competition shots. */
.placeholder-4{
  background:
    url('images/highlight-4.jpg') center/cover no-repeat,
    linear-gradient(135deg, #5d7ba8 0%, #2d4e72 100%);
}
.placeholder-5{
  background:
    url('images/competition-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #6f93b3 0%, #354eac 100%);
}
.placeholder-6{
  background:
    url('images/highlight-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #b58a75 0%, #6a4f3d 100%);
}
.placeholder-a{
  background:
    url('images/highlight-1.jpg') center/cover no-repeat,
    linear-gradient(135deg, #2d4e72 0%, #0b1f5a 100%);
}
.placeholder-b{
  background:
    url('images/highlight-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #d24b3c 0%, #8a2d22 100%);
}
.placeholder-c{
  background:
    url('images/highlight-3.jpg') center/cover no-repeat,
    linear-gradient(135deg, #e9c46a 0%, #c08a2c 100%);
}
.placeholder-d{
  background:
    url('images/highlight-4.jpg') center/cover no-repeat,
    linear-gradient(135deg, #6f93b3 0%, #2d4e72 100%);
}
.placeholder-e{
  background:
    url('images/highlight-5.jpg') center/cover no-repeat,
    linear-gradient(135deg, #d29b71 0%, #a35c43 100%);
}
/* Team-photo placeholder. Drop images/about-hero.jpg to replace.
   Until then: layered radial "spotlights" that read as a group of people standing together. */
.placeholder-team{
  background:
    url('images/about-hero.jpg') center/cover no-repeat,
    radial-gradient(circle at 18% 70%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    radial-gradient(circle at 32% 62%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    radial-gradient(circle at 46% 68%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    radial-gradient(circle at 60% 60%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    radial-gradient(circle at 74% 66%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    radial-gradient(circle at 86% 70%, rgba(255,228,196,.55) 0 5%, transparent 14%),
    linear-gradient(180deg, rgba(11,31,90,.15) 0%, rgba(11,31,90,.45) 100%),
    linear-gradient(135deg, #a8907b 0%, #6a4f3d 100%);
}
.placeholder-case{
  background:
    url('images/case-hero.jpg') center/cover no-repeat,
    linear-gradient(135deg, rgba(11,31,90,.6), rgba(11,31,90,.85)),
    linear-gradient(120deg, #233b78 0%, #0b1f5a 100%);
}
.grad-a{
  background:
    url('images/client-1.jpg') center/cover no-repeat,
    linear-gradient(135deg, #e7dcc9 0%, #c9b89a 60%, #d24b3c 100%);
}
.grad-b{
  background:
    url('images/client-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #2d4e72 0%, #0b1f5a 100%);
}

/* ---- B. Native contact page (light, on-brand) ---- */
.contact-native{
  padding: 130px 0 96px;
  background: var(--paper, #f5f1ea);
  color: var(--ink, #0b1f5a);
}
.contact-native .breadcrumb{
  color: rgba(11,31,90,.6);
  margin-bottom: 36px;
}
.contact-native .breadcrumb a{ color: rgba(11,31,90,.6); }
.contact-native-head{ max-width: 720px; margin-bottom: 56px; }
.contact-native-head .eyebrow{
  display: block;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  margin-bottom: 16px;
  font-weight: 600;
}
.contact-native-head h1{
  font-family: 'Playfair Display', serif;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.0;
  font-weight: 400;
  color: var(--ink);
  margin: 0 0 18px;
  letter-spacing: -0.01em;
}
.contact-native-head h1 em{
  font-style: italic;
  font-weight: 400;
  color: var(--accent, #d24b3c);
}
.contact-native-lead{
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
  max-width: 56ch;
}

.contact-native-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: start;
}

/* Form card — light, brand-feeling */
.contact-native-form{
  background: #fff;
  border: 1px solid rgba(11,31,90,.12);
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 24px 60px -30px rgba(11,31,90,.18);
}
.contact-native-form form{
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.cnf-row-2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.cnf-field{ display: flex; flex-direction: column; }
.cnf-field label{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink, #0b1f5a);
  margin-bottom: 10px;
  font-weight: 600;
}
.cnf-field input,
.cnf-field textarea{
  font-family: inherit;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink, #0b1f5a);
  background: var(--paper, #f5f1ea);
  border: 1px solid rgba(11,31,90,.14);
  border-radius: 10px;
  padding: 14px 16px;
  outline: none;
  transition: border-color .2s ease, background .2s ease;
}
.cnf-field input::placeholder,
.cnf-field textarea::placeholder{
  color: rgba(11,31,90,.4);
}
.cnf-field input:focus,
.cnf-field textarea:focus{
  border-color: var(--accent, #d24b3c);
  background: #fff;
}
.cnf-field textarea{ resize: vertical; min-height: 110px; }

.cnf-submit-row{
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.cnf-submit-row .submit-btn{
  background: var(--ink, #0b1f5a);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 14px 28px;
  font-family: inherit;
  font-size: 13px;
  letter-spacing: .04em;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .2s ease;
}
.cnf-submit-row .submit-btn:hover{ background: var(--accent, #d24b3c); }
.cnf-disclaimer{
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--ink-2, #4a4a4a);
}

/* Aside info */
.contact-native-aside{
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-top: 8px;
}
.cna-block h5{
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  margin: 0 0 8px;
  font-weight: 600;
}
.cna-block a,
.cna-block p{
  color: var(--ink, #0b1f5a);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}
.cna-block a:hover{ color: var(--accent, #d24b3c); text-decoration: underline; }
.cna-block.cna-note{
  border-top: 1px solid rgba(11,31,90,.12);
  padding-top: 24px;
  margin-top: 4px;
}
.cna-block.cna-note p{
  font-size: 13px;
  color: var(--ink-2, #4a4a4a);
  max-width: 30ch;
}
@media (max-width:880px){
  .contact-native-grid{ grid-template-columns: 1fr; gap: 36px; }
  .contact-native-form{ padding: 28px; }
  .cnf-row-2{ grid-template-columns: 1fr; gap: 22px; }
}

/* ---- C. Competition slideshow ---- */
.comp-slideshow{
  position: relative;
  margin-top: 28px;
  max-width: 720px;       /* shrunk: was full-width */
  margin-left: auto;
  margin-right: auto;
}
.cs-track{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 405px;      /* hard cap height */
  border-radius: 12px;
  overflow: hidden;
  background: var(--ink, #0b1f5a);
}
.cs-slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .9s ease;
  background-size: cover;
  background-position: center;
}
.cs-slide.is-active{ opacity: 1; }
.cs-slide img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cs-caption{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 14px 18px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 100%);
  color: #fff;
  font-size: 13px;
  letter-spacing: .02em;
}
.cs-caption span{
  display: inline-block;
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent-2, #e9c46a);
  font-weight: 600;
  margin-right: 10px;
}
.cs-controls{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 14px;
}
.cs-arrow{
  background: transparent;
  border: 1px solid rgba(11,31,90,.25);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 16px;
  line-height: 1;
  color: var(--ink, #0b1f5a);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.cs-arrow:hover{ background: var(--ink, #0b1f5a); color: #fff; border-color: var(--ink, #0b1f5a); }
.cs-dots{ display: flex; gap: 8px; }
.cs-dot{
  background: transparent;
  border: 1px solid rgba(11,31,90,.3);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  padding: 0;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.cs-dot.is-active{
  background: var(--accent, #d24b3c);
  border-color: var(--accent, #d24b3c);
  transform: scale(1.15);
}
@media (max-width:680px){
  .cs-caption{ font-size: 12px; padding: 14px 18px; }
}
/* =================================================================
   END V4
   ================================================================= */

/* =================================================================
   V9 APPENDIX — Footer logo, hero slideshow fix, nav rename
   ================================================================= */

/* ----- Fix hero slideshow (V1 double-class rules were beating single-class image URLs) ----- */
.hero-bg-stack .hero-bg-slide.placeholder-1{
  background:
    url('images/hero-1.jpg') center/cover no-repeat,
    linear-gradient(135deg, #C5D0E4, #8C9CC5 60%, #364374);
}
.hero-bg-stack .hero-bg-slide.placeholder-2{
  background:
    url('images/hero-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #D9D5CC, #A08670 60%, #644330);
}
.hero-bg-stack .hero-bg-slide.placeholder-3{
  background:
    url('images/hero-3.jpg') center/cover no-repeat,
    linear-gradient(135deg, #6376A8, #354EAC 60%, #0B1F5A);
}
.hero-bg-stack .hero-bg-slide.placeholder-4{
  background:
    url('images/highlight-4.jpg') center/cover no-repeat,
    linear-gradient(135deg, #5d7ba8 0%, #2d4e72 100%);
}
.hero-bg-stack .hero-bg-slide.placeholder-5{
  background:
    url('images/competition-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #6f93b3 0%, #354eac 100%);
}
.hero-bg-stack .hero-bg-slide.placeholder-6{
  background:
    url('images/highlight-2.jpg') center/cover no-repeat,
    linear-gradient(135deg, #b58a75 0%, #6a4f3d 100%);
}

/* Kill the old cream overlay pseudo-element on .hero-bg-stack
   (it was 92% opaque, covering the photos entirely).
   .hero-overlay div handles the navy tint for legibility. */
.hero-bg-stack::after{ display: none !important; }
/* Boost .hero-overlay a touch so text sits well on photos */
.hero-v2 .hero-overlay{
  background: linear-gradient(180deg,
    rgba(11,31,90,.35) 0%,
    rgba(11,31,90,.55) 60%,
    rgba(11,31,90,.65) 100%) !important;
}

/* Hero text — make sure it stays legible on top of photos */
.hero-v2 .headline-v2,
.hero-v2 .top-strip{ color:#fff !important; }
.hero-v2 .headline-v2 em{ color: rgba(255,255,255,.72) !important; }
.hero-v2 .top-strip{ color: rgba(255,255,255,.92) !important; }
.hero-v2 .top-strip .strip-dot{ color:#fff !important; opacity: .55; }
.hero-v2 .est-vertical{ color: rgba(255,255,255,.55) !important; }

/* Ghost/outline button on photo background */
.hero-v2 .btn-ghost-light{
  color:#fff !important;
  border-color: rgba(255,255,255,.65) !important;
  background: transparent !important;
}
.hero-v2 .btn-ghost-light:hover{
  background: rgba(255,255,255,.15) !important;
  border-color:#fff !important;
}
/* Primary (navy) button stays legible but let's boost shadow */
.hero-v2 .btn-primary{ box-shadow: 0 10px 32px rgba(0,0,0,.25); }

/* ----- Footer logo swap ----- */
.foot-logo{
  display:block;
  height:56px;
  width:auto;
  object-fit:contain;
  margin-bottom: 6px;
}
@media (max-width: 720px){
  .foot-logo{ height: 44px; }
}
/* =================================================================
   END V9
   ================================================================= */

/* =================================================================
   V9 — Professional Development (slide archive) grid
   ================================================================= */
.pd-section{ padding: 96px 0 120px; background: var(--paper, #f5f1ea); }
.pd-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.pd-card{
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(11,31,90,.08);
  border-radius: 6px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.pd-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -20px rgba(11,31,90,.22);
  border-color: rgba(11,31,90,.16);
}
.pd-thumb{
  position: relative;
  aspect-ratio: 16 / 10;
  background-size: cover;
  background-position: center;
  background-color: #d9d4ca;
}
.pd-thumb::before{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.35) 100%);
  transition: opacity .28s ease;
}
.pd-card:hover .pd-thumb::before{ opacity: .65; }
.pd-badge{
  position: absolute;
  top: 14px; right: 14px;
  background: rgba(255,255,255,.94);
  color: var(--ink, #0b1f5a);
  font-size: 11px;
  letter-spacing: .1em;
  font-weight: 600;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
}
.pd-body{
  padding: 22px 22px 26px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pd-date{
  font-size: 11px;
  letter-spacing: .16em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
}
.pd-body h4{
  font-family: "Playfair Display", serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  margin: 4px 0 6px;
  color: var(--ink, #0b1f5a);
}
.pd-body p{
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-2, #4a4a4a);
  margin: 0;
}
.pd-note{
  margin-top: 56px;
  padding: 22px 26px;
  background: rgba(11,31,90,.05);
  border-left: 3px solid var(--accent, #d24b3c);
  font-size: 13px;
  color: var(--ink-2, #4a4a4a);
  line-height: 1.55;
}
.pd-note code{
  background: rgba(11,31,90,.08);
  padding: 2px 6px;
  border-radius: 3px;
  font-family: "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 12px;
}
@media (max-width: 980px){
  .pd-grid{ grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 620px){
  .pd-grid{ grid-template-columns: 1fr; gap: 20px; }
}
/* =================================================================
   END V9 PD
   ================================================================= */

/* V9.1 — 2-card variant of the pd-grid (used on Social Impact) */
.pd-grid.pd-grid-2{
  grid-template-columns: repeat(2, minmax(0, 460px));
  justify-content: center;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 720px){
  .pd-grid.pd-grid-2{ grid-template-columns: 1fr; max-width: 460px; }
}

/* =================================================================
   V10 APPENDIX — SPONSORSHIP PAGE (intro blocks + tier matrix)
   ================================================================= */

/* ---- Intro section (What is RUMA / Mission / Why sponsor) ---- */
.sp-intro-section{
  padding: 110px 0 80px;
  background: var(--paper, #f5f1ea);
  position: relative;
}
.sp-intro-section::before{
  content: "";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px; background: rgba(11,31,90,.08);
}

.sp-intro-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 44px;
  margin-top: 56px;
  align-items: start;
}
@media (max-width: 980px){
  .sp-intro-grid{ grid-template-columns: 1fr; gap: 40px; max-width: 640px; margin-left:auto; margin-right:auto; }
}

.sp-block{
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 0 4px;
  position: relative;
}
.sp-block + .sp-block{
  border-left: 1px solid rgba(11,31,90,.10);
  padding-left: 32px;
}
@media (max-width: 980px){
  .sp-block + .sp-block{ border-left: none; border-top: 1px solid rgba(11,31,90,.10); padding-left: 4px; padding-top: 32px; }
}

.sp-block-head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 4px;
}
.sp-dot{
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--ink, #0b1f5a);
  flex-shrink: 0;
}
.sp-block-label{
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink, #0b1f5a);
}

.sp-block p{
  font-size: 15px;
  line-height: 1.75;
  color: rgba(11,31,90,.86);
  margin: 0;
}
.sp-block p strong{
  color: var(--ink, #0b1f5a);
  font-weight: 600;
}
.sp-block p.sp-sub{
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 400;
  color: var(--ink, #0b1f5a);
  font-size: 15px;
  margin-top: 8px;
}
.sp-bullets{
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-bullets li{
  position: relative;
  padding-left: 22px;
  font-size: 14.5px;
  line-height: 1.65;
  color: rgba(11,31,90,.86);
}
.sp-bullets li::before{
  content: "";
  position: absolute;
  left: 0; top: 10px;
  width: 10px; height: 1px;
  background: var(--ink, #0b1f5a);
  opacity: .6;
}
.sp-bullets li strong{ color: var(--ink, #0b1f5a); font-weight: 600; }

/* ---- Sponsorship tiers section ---- */
.sp-tiers-section{
  padding: 110px 0 130px;
  background: #fbf8f2;
  position: relative;
}
.sp-tiers-section::before{
  content: "";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px; background: rgba(11,31,90,.08);
}

.sp-tiers-wrap{
  margin-top: 60px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.sp-tiers{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  min-width: 720px;
  background: #fff;
  border: 1px solid rgba(11,31,90,.10);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 30px 60px -40px rgba(11,31,90,.28);
}

.sp-tier-row{
  display: contents;
}

/* Cell base */
.sp-tier-cell{
  padding: 20px 22px;
  border-bottom: 1px solid rgba(11,31,90,.08);
  display: flex;
  align-items: center;
  min-height: 60px;
  font-size: 14.5px;
  color: rgba(11,31,90,.88);
  background: #fff;
}
/* No border on last row */
.sp-tiers > .sp-tier-row:last-of-type .sp-tier-cell{ border-bottom: none; }

/* Column dividers between tier columns */
.sp-tier-cell + .sp-tier-cell{
  border-left: 1px solid rgba(11,31,90,.06);
  justify-content: center;
}

/* Header row */
.sp-tier-row.sp-tier-head .sp-tier-cell{
  min-height: 130px;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding-top: 26px;
  padding-bottom: 26px;
  background: var(--paper, #f5f1ea);
  border-bottom: 1px solid rgba(11,31,90,.14);
}
.sp-tier-row.sp-tier-head .sp-tier-label-cell{ background: var(--paper, #f5f1ea); }

/* Tier pill */
.sp-tier-pill{
  display: inline-block;
  padding: 7px 20px;
  border-radius: 999px;
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .04em;
  color: #fff;
  line-height: 1;
}
.sp-tier-pill--bronze{ background: #a26a3a; }
.sp-tier-pill--silver{ background: #7f8894; }
.sp-tier-pill--gold  { background: #b58836; }

.sp-tier-price{
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-size: 26px;
  color: var(--ink, #0b1f5a);
  letter-spacing: .01em;
}

/* Group header spans all 4 columns */
.sp-tier-group{
  grid-column: 1 / -1;
  padding: 14px 22px;
  background: rgba(11,31,90,.04);
  border-bottom: 1px solid rgba(11,31,90,.10);
  border-top: 1px solid rgba(11,31,90,.10);
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink, #0b1f5a);
}

/* Feature label cell */
.sp-tier-feat{
  font-size: 14.5px;
  color: rgba(11,31,90,.86);
  line-height: 1.5;
}

/* Mark (checkmark / dash) */
.sp-mark{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}
.sp-mark.off{
  background: transparent;
  border: 1px dashed rgba(11,31,90,.22);
}
.sp-mark.off::after{
  content: "";
  position: absolute;
  left: 5px; right: 5px;
  top: 50%;
  height: 1px;
  background: rgba(11,31,90,.28);
}
.sp-mark.on{ border: none; }
.sp-mark.on::after{
  content: "";
  position: absolute;
  width: 9px; height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  top: 6px; left: 6px;
}
.sp-mark--bronze.on{ background: #a26a3a; }
.sp-mark--silver.on{ background: #7f8894; }
.sp-mark--gold.on  { background: #b58836; }

/* Mobile — condense header padding */
@media (max-width: 760px){
  .sp-tier-cell{ padding: 16px 14px; font-size: 13.5px; }
  .sp-tier-row.sp-tier-head .sp-tier-cell{ min-height: 110px; padding: 20px 12px; }
  .sp-tier-price{ font-size: 20px; }
  .sp-tier-pill{ font-size: 13px; padding: 6px 14px; }
  .sp-tier-group{ padding: 12px 14px; font-size: 11px; letter-spacing: .18em; }
}

/* =================================================================
   END V10 APPENDIX
   ================================================================= */


/* =================================================================
   V14 APPENDIX — Tabbed overview, sponsors thanks, compact contact
   ================================================================= */

/* --- Overview / tabbed section ---------------------------------- */
.overview-section{
  padding: 120px 0;
  background: var(--paper, #f5f1ea);
}
/* Flush variant: no title above, tabs come right after Who we are */
.overview-section-flush{
  padding: 24px 0 90px;
}
.tabs{
  margin-top: 32px;
}
.overview-section-flush .tabs{
  margin-top: 0;
}
.tabs-nav{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  border-bottom: 1px solid rgba(11,31,90,0.18);
  margin-bottom: 40px;
  padding-bottom: 0;
}
.tab-btn{
  appearance: none;
  background: transparent;
  border: 0;
  padding: 14px 18px 16px;
  margin-bottom: -1px;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: .04em;
  color: var(--ink-2, #5c6683);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .18s ease, border-color .18s ease;
  white-space: nowrap;
}
.tab-btn:hover{ color: var(--ink, #0b1f5a); }
.tab-btn.is-active{
  color: var(--ink, #0b1f5a);
  border-bottom-color: var(--accent, #d24b3c);
  font-weight: 500;
}

.tab-panel{ display: none; }
.tab-panel.is-active{ display: block; animation: tabFade .35s ease both; }
@keyframes tabFade{
  from{ opacity: 0; transform: translateY(6px); }
  to  { opacity: 1; transform: none; }
}
.tab-panel-inner{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 56px;
  align-items: start;
}
.tab-copy .eyebrow{ display: inline-block; margin-bottom: 14px; }
.tab-copy h3{
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--ink, #0b1f5a);
  margin: 0 0 18px;
}
.tab-copy p{
  color: var(--ink-2, #5c6683);
  line-height: 1.7;
  margin: 0 0 14px;
  max-width: 60ch;
}
.tab-copy .tab-note{
  font-size: 12.5px;
  color: rgba(11,31,90,0.5);
  font-style: italic;
  margin-bottom: 22px;
}
.tab-copy .btn{ margin-top: 10px; }

.tab-side{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
}
.tab-side-card{
  background: #fff;
  border: 1px solid rgba(11,31,90,0.08);
  border-radius: 12px;
  padding: 32px 28px;
  text-align: center;
  min-width: 220px;
  box-shadow: 0 12px 40px -20px rgba(11,31,90,0.25);
}
.tab-side-num{
  display: block;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 56px;
  color: var(--accent, #d24b3c);
  line-height: 1;
  margin-bottom: 10px;
}
.tab-side-label{
  display: block;
  font-size: 12.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-2, #5c6683);
}

/* Clients cards inside NPO tab */
.tab-clients{
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.tab-side-eyebrow{
  display: block;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent, #d24b3c);
  margin-bottom: 6px;
}
.tab-client{
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(11,31,90,0.08);
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 10px 32px -22px rgba(11,31,90,0.25);
}
.tab-client-ring{
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d24b3c, #e9c46a);
}
.tab-client-ring.grad-a{ background: linear-gradient(135deg, #d24b3c, #e9c46a); }
.tab-client-ring.grad-b{ background: linear-gradient(135deg, #0b1f5a, #d24b3c); }
.tab-client h4{
  font-family: var(--serif);
  font-weight: 400;
  font-size: 18px;
  color: var(--ink, #0b1f5a);
  margin: 0 0 6px;
}
.tab-client p{
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-2, #5c6683);
  margin: 0;
}

@media (max-width: 900px){
  .tab-panel-inner{ grid-template-columns: 1fr; gap: 32px; }
  .tab-side{ min-height: 0; }
}
@media (max-width: 640px){
  .overview-section{ padding: 80px 0; }
  .tabs-nav{ gap: 0; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .tabs-nav::-webkit-scrollbar{ display: none; }
  .tab-btn{ font-size: 13px; padding: 12px 14px 14px; }
}

/* --- Tab media (photo + caption) — Competitions, Workshops, Mentorship */
.tab-media{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tab-media-img{
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
  box-shadow: 0 20px 60px -32px rgba(11,31,90,0.35);
  background-color: #eae4d8;
}
.tab-media-caption{
  border: 1px solid rgba(11,31,90,0.18);
  border-radius: 10px;
  padding: 14px 18px;
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.4;
  color: var(--ink, #0b1f5a);
  background: #fff;
}
.tab-media-caption .tag-hash{
  color: var(--accent, #d24b3c);
  font-weight: 500;
  margin-right: 4px;
}

/* --- Sponsors "Thank you" — Rice Racing style ------------------- */
.sponsors-thanks{
  background: var(--paper, #f5f1ea);
  padding: 90px 0 110px;
  border-top: 1px solid rgba(11,31,90,0.08);
}
.sponsors-thanks-head{
  max-width: var(--max, 1240px);
  margin: 0 0 0;
  background: var(--ink, #0b1f5a);
  padding: 18px 26px;
  border-radius: 12px 12px 0 0;
}
.eyebrow-dark{
  color: #fff;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 500;
}
.sponsors-wall{
  background: #fff;
  border: 1px solid rgba(11,31,90,0.14);
  border-top: 0;
  border-radius: 0 0 12px 12px;
  padding: 48px 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 48px;
  align-items: center;
  justify-items: center;
  margin-bottom: 40px;
}
.sponsor-logo{
  width: 100%;
  max-width: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 90px;
}
.sponsor-logo img{
  max-width: 100%;
  max-height: 90px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.sponsor-logo-empty{
  min-height: 90px;
  border: 1px dashed rgba(11,31,90,0.2);
  border-radius: 8px;
  color: rgba(11,31,90,0.35);
  font-size: 11.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.sponsors-thanks-cta{ text-align: center; }

@media (max-width: 780px){
  .sponsors-wall{
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 24px;
    padding: 36px 24px;
  }
  .sponsors-thanks{ padding: 70px 0 90px; }
}
@media (max-width: 480px){
  .sponsors-wall{ grid-template-columns: 1fr; }
}

/* --- Compact "Work with RUMA" ----------------------------------- */
.home-contact.home-contact-compact{
  padding: 70px 0 80px;
}
.contact-compact-row{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 48px;
  align-items: center;
}
.contact-compact-copy .eyebrow{
  color: var(--accent-2, #e9c46a);
  display: inline-block;
  margin-bottom: 12px;
}
.contact-compact-copy h2{
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1.15;
  color: var(--paper, #f5f1ea);
  margin: 0 0 12px;
}
.contact-compact-copy h2 em{
  font-style: italic;
  color: var(--accent-2, #e9c46a);
}
.contact-compact-copy p{
  color: rgba(245,241,234,0.78);
  line-height: 1.65;
  font-size: 15px;
  margin: 0;
  max-width: 46ch;
}
.contact-compact-actions{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
}
.contact-compact-mail{
  color: rgba(245,241,234,0.75);
  font-size: 13.5px;
  text-decoration: none;
  border-bottom: 1px solid rgba(245,241,234,0.25);
  padding-bottom: 2px;
  transition: color .18s ease, border-color .18s ease;
}
.contact-compact-mail:hover{
  color: var(--accent-2, #e9c46a);
  border-color: var(--accent-2, #e9c46a);
}
@media (max-width: 780px){
  .contact-compact-row{ grid-template-columns: 1fr; gap: 24px; }
  .contact-compact-actions{ align-items: flex-start; }
}

/* =================================================================
   END V14 APPENDIX
   ================================================================= */
