:root{
  --ink:#0f0f0f;
  --charcoal:#4a4a48;
  --white:#ffffff;
  --offwhite:#f6f6f3;
  --panel:#efeee8;
  --accent:#ff5a36;
  --accent-dark:#e8461f;
  --accent-ink:#7a2b12;
  --line:rgba(15,15,15,0.10);
  --radius:14px;
  --ease:cubic-bezier(.16,.8,.3,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:'Inter', sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:'Sora', sans-serif; margin:0; font-weight:700; letter-spacing:-0.01em; color:var(--ink); }
a{ color:inherit; }
p{ margin:0; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem, 4vw, 3rem); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.eyebrow{
  font-family:'Inter', sans-serif; font-weight:700; font-size:0.75rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--accent-dark); display:inline-flex; align-items:center; gap:0.6em;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
  font-family:'Inter', sans-serif; font-weight:700; font-size:0.95rem;
  padding:0.95rem 1.8rem; border-radius:100px; text-decoration:none; white-space:nowrap;
  transition:transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s var(--ease);
  border:none; cursor:pointer;
}
.btn-accent{ background:var(--accent); color:#fff; box-shadow:0 10px 24px -10px rgba(255,90,54,0.55); }
.btn-accent:hover{ background:var(--accent-dark); transform:translateY(-2px); }
.btn-outline{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.btn-outline:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }
.btn-light{ background:#fff; color:var(--ink); }
.btn-light:hover{ transform:translateY(-2px); box-shadow:0 10px 24px -12px rgba(0,0,0,0.35); }
.btn-outline-light{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,0.5); }
.btn-outline-light:hover{ background:#fff; color:var(--ink); transform:translateY(-2px); }

/* ---------- NAV ---------- */
header.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1200px; margin:0 auto; padding:0.9rem clamp(1.25rem, 4vw, 3rem);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.nav-mark{ font-family:'Sora', sans-serif; font-weight:800; font-size:1.2rem; text-decoration:none; color:var(--ink); }
nav.nav-links{ display:flex; gap:clamp(1.1rem, 2.2vw, 1.75rem); font-weight:600; font-size:0.92rem; }
nav.nav-links a{ color:var(--charcoal); text-decoration:none; transition:color 0.2s var(--ease); padding-bottom:2px; border-bottom:2px solid transparent; }
nav.nav-links a:hover{ color:var(--accent-dark); }
nav.nav-links a.active{ color:var(--ink); border-color:var(--accent); }
.nav-cta{ display:flex; align-items:center; gap:1rem; }
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer; padding:0.4rem;
  flex-direction:column; gap:5px;
}
.nav-toggle span{ width:22px; height:2px; background:var(--ink); display:block; }
@media (max-width: 860px){
  nav.nav-links{ display:none; }
  .nav-toggle{ display:flex; }
}
.mobile-nav{
  display:none; flex-direction:column; background:#fff; border-top:1px solid var(--line);
  padding:1rem clamp(1.25rem, 4vw, 3rem) 1.5rem;
}
.mobile-nav.open{ display:flex; }
.mobile-nav a{
  padding:0.75rem 0; font-weight:600; font-size:1rem; text-decoration:none; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.mobile-nav a.active{ color:var(--accent-dark); }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{ padding:clamp(7.5rem, 12vw, 9.5rem) 0 clamp(3rem, 6vw, 4rem); position:relative; overflow:hidden; }
.page-hero::before{
  content:""; position:absolute; top:-20%; right:-8%; width:45%; height:70%;
  background:radial-gradient(circle at center, rgba(255,90,54,0.13), transparent 65%); pointer-events:none;
}
.breadcrumb{ font-size:0.85rem; color:var(--charcoal); margin-bottom:1rem; }
.breadcrumb a{ text-decoration:none; color:var(--charcoal); }
.breadcrumb a:hover{ color:var(--accent-dark); }
.page-hero h1{ font-size:clamp(2.2rem, 5.2vw, 3.6rem); line-height:1.05; margin-top:0.6rem; max-width:26ch; }
.page-hero .sub{ margin-top:1.2rem; font-size:clamp(1rem, 1.8vw, 1.2rem); color:var(--charcoal); max-width:42rem; }

/* ---------- SECTION SHELL ---------- */
section{ padding:clamp(4.5rem, 9vw, 7rem) 0; }
.section-head{ max-width:44rem; margin-bottom:clamp(2.5rem, 5vw, 3.5rem); }
.section-head h2{ font-size:clamp(1.9rem, 4.2vw, 2.9rem); margin-top:0.8rem; }
.section-head p{ margin-top:1rem; color:var(--charcoal); font-size:1.05rem; }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity 0.7s var(--ease), transform 0.7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.bg-offwhite{ background:var(--offwhite); }

/* ---------- AGENCY / DARK SPOTLIGHT PANEL ---------- */
.spotlight{ background:var(--ink); color:#fff; border-radius:28px; margin:0 auto; max-width:1200px; }
.spotlight-inner{ padding:clamp(2.5rem, 6vw, 4.5rem); display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem, 5vw, 3.5rem); align-items:center; }
@media (max-width: 860px){ .spotlight-inner{ grid-template-columns:1fr; } }
.spotlight-mark{
  width:100%; aspect-ratio:1.3/1; border-radius:20px; background:linear-gradient(135deg, var(--accent), var(--accent-ink));
  display:flex; align-items:center; justify-content:center;
}
.spotlight-mark span{ font-family:'Sora', sans-serif; font-weight:800; font-size:clamp(2.5rem, 6vw, 4rem); color:#fff; }
.spotlight-copy .eyebrow{ color:var(--accent); }
.spotlight-copy h2{ color:#fff; font-size:clamp(1.8rem, 3.6vw, 2.6rem); margin-top:0.8rem; }
.spotlight-copy p{ margin-top:1.1rem; color:rgba(255,255,255,0.78); font-size:1.02rem; }
.spotlight-list{ margin-top:1.5rem; display:flex; flex-wrap:wrap; gap:0.6rem; }
.spotlight-list span{
  font-size:0.8rem; font-weight:600; padding:0.5rem 1rem; border-radius:100px;
  border:1px solid rgba(255,255,255,0.25); color:rgba(255,255,255,0.85);
}
.spotlight-copy .btn{ margin-top:1.8rem; }

/* ---------- FIVE APPROACHES (about) ---------- */
.approach-grid{ display:grid; grid-template-columns:repeat(5, 1fr); gap:1.1rem; }
@media (max-width: 1080px){ .approach-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 700px){ .approach-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 460px){ .approach-grid{ grid-template-columns:1fr; } }
.approach-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.3rem;
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.approach-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -24px rgba(15,15,15,0.28); }
.approach-icon{
  width:42px; height:42px; border-radius:11px; background:rgba(255,90,54,0.12);
  display:flex; align-items:center; justify-content:center; margin-bottom:1rem;
  font-family:'Sora', sans-serif; font-weight:800; color:var(--accent-dark); font-size:1rem;
}
.approach-card h3{ font-size:1.05rem; }
.approach-card p{ margin-top:0.5rem; color:var(--charcoal); font-size:0.87rem; }

/* ---------- BIO + SIDEBAR (about) ---------- */
.bio-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:clamp(2rem, 5vw, 4rem); align-items:start; }
@media (max-width: 860px){ .bio-grid{ grid-template-columns:1fr; } }
.bio-copy p{ color:var(--charcoal); font-size:1.02rem; max-width:38rem; }
.bio-copy p + p{ margin-top:1rem; }
.bio-sidebar{
  background:var(--panel); border-radius:var(--radius); padding:1.8rem; border:1px solid var(--line);
}
.bio-fact{ padding:0.85rem 0; border-bottom:1px solid var(--line); }
.bio-fact:last-child{ border-bottom:none; }
.bio-fact .label{ font-size:0.68rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent-dark); }
.bio-fact .value{ margin-top:0.3rem; font-size:0.95rem; color:var(--ink); font-weight:600; }

/* ---------- SERVICES GRID ---------- */
.service-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.25rem; }
@media (max-width: 980px){ .service-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 560px){ .service-grid{ grid-template-columns:1fr; } }
.service-card{
  background:#fff; border-radius:var(--radius); padding:1.9rem 1.6rem; border:1px solid var(--line);
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.service-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -22px rgba(15,15,15,0.25); }
.service-icon{
  width:48px; height:48px; border-radius:12px; background:rgba(255,90,54,0.12);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
  font-family:'Sora', sans-serif; font-weight:800; color:var(--accent-dark); font-size:1.1rem;
}
.service-card h3{ font-size:1.15rem; }
.service-card p{ margin-top:0.6rem; color:var(--charcoal); font-size:0.92rem; }

/* ---------- PROCESS STEPS (services) ---------- */
.process-list{ counter-reset:step; display:flex; flex-direction:column; }
.process-step{
  counter-increment:step; display:grid; grid-template-columns:64px 1fr; gap:1.5rem;
  padding:1.75rem 0; border-bottom:1px solid var(--line);
}
.process-step:first-child{ border-top:1px solid var(--line); }
.process-step::before{
  content:counter(step, decimal-leading-zero); font-family:'Sora', sans-serif; font-weight:800;
  font-size:1.3rem; color:var(--accent);
}
.process-step h3{ font-size:1.1rem; }
.process-step p{ margin-top:0.4rem; color:var(--charcoal); font-size:0.94rem; max-width:38rem; }

/* ---------- GIVING / IMPACT GRID ---------- */
.give-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.25rem; }
@media (max-width: 980px){ .give-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 560px){ .give-grid{ grid-template-columns:1fr; } }
.give-card{
  border-radius:var(--radius); padding:1.9rem 1.6rem; background:var(--panel); border:1px solid var(--line);
  transition:transform 0.3s var(--ease);
}
.give-card:hover{ transform:translateY(-6px); }
.give-card .tag{ font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-dark); }
.give-card h3{ font-size:1.2rem; margin-top:0.6rem; }
.give-card p{ margin-top:0.6rem; color:var(--charcoal); font-size:0.92rem; }
.give-cta{ margin-top:2.5rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.give-cta p{ color:var(--charcoal); font-size:0.95rem; }

/* big impact stat band */
.impact-band{
  background:var(--ink); color:#fff; border-radius:28px; padding:clamp(2.5rem, 6vw, 4rem);
  display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; text-align:center;
}
@media (max-width: 760px){ .impact-band{ grid-template-columns:1fr; } }
.impact-band .item .k{ font-family:'Sora', sans-serif; font-weight:800; font-size:clamp(1.4rem, 3vw, 2rem); color:var(--accent); }
.impact-band .item .d{ margin-top:0.5rem; font-size:0.92rem; color:rgba(255,255,255,0.75); }

/* ---------- PORTFOLIO / INVESTMENTS ---------- */
.portfolio-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.5rem; }
@media (max-width: 760px){ .portfolio-grid{ grid-template-columns:1fr; } }
.portfolio-card{
  border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.75rem, 3vw, 2.3rem);
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease); background:#fff;
}
.portfolio-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -24px rgba(15,15,15,0.25); }
.portfolio-card .role{ font-size:0.72rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent-dark); }
.portfolio-card h3{ font-size:1.4rem; margin-top:0.6rem; }
.portfolio-card p{ margin-top:0.7rem; color:var(--charcoal); font-size:0.95rem; }
.portfolio-card .sector{ margin-top:1.1rem; display:inline-block; font-size:0.68rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--charcoal); border:1px solid var(--line); padding:0.35rem 0.75rem; border-radius:100px; }
.note-card{
  margin-top:1.5rem; background:var(--panel); border-radius:var(--radius); padding:1.4rem 1.6rem;
  font-size:0.88rem; color:var(--charcoal); border:1px dashed var(--line);
}

/* ---------- BLOG ---------- */
.blog-filter{ display:flex; flex-wrap:wrap; gap:0.6rem; margin-bottom:2.5rem; }
.blog-filter span{
  font-size:0.75rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  padding:0.5rem 1rem; border-radius:100px; border:1px solid var(--line); color:var(--charcoal);
}
.blog-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; }
@media (max-width: 980px){ .blog-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 640px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{
  border:1px solid var(--line); border-radius:var(--radius); padding:1.75rem; display:flex; flex-direction:column; height:100%;
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease); background:#fff;
}
.blog-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -24px rgba(15,15,15,0.25); }
.blog-card .cat{ font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-dark); }
.blog-card h3{ font-size:1.15rem; margin-top:0.7rem; }
.blog-card p{ margin-top:0.6rem; color:var(--charcoal); font-size:0.9rem; flex-grow:1; }
.blog-card .meta{ margin-top:1.2rem; font-size:0.78rem; color:var(--charcoal); opacity:0.75; display:flex; justify-content:space-between; }
.blog-card .read{ margin-top:1rem; font-weight:700; font-size:0.88rem; color:var(--accent-dark); text-decoration:none; }

/* ---------- SPEAK / QUOTE PANEL ---------- */
.speak{ background:var(--ink); color:#fff; border-radius:28px; margin:0 auto; max-width:1200px; }
.speak-inner{ padding:clamp(3rem, 7vw, 5rem); display:grid; grid-template-columns:1fr; gap:2rem; text-align:center; }
.speak .eyebrow{ color:var(--accent); justify-content:center; }
.speak blockquote{
  margin:1.2rem auto 0; font-family:'Sora', sans-serif; font-weight:600; font-style:normal;
  font-size:clamp(1.5rem, 3.6vw, 2.4rem); line-height:1.3; max-width:36rem; color:#fff;
}
.speak p.desc{ margin:1.3rem auto 0; max-width:36rem; color:rgba(255,255,255,0.75); font-size:1rem; }
.speak .btn{ margin-top:1.8rem; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem, 6vw, 4rem); align-items:start; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info .item{ padding:1.3rem 0; border-bottom:1px solid var(--line); }
.contact-info .item:first-child{ padding-top:0; }
.contact-info .label{ font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent-dark); }
.contact-info .value{ margin-top:0.4rem; font-size:1.05rem; font-weight:600; }
.contact-form{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1.9rem; }
.contact-form.dark{ background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); }
.contact-form label{ display:block; font-size:0.78rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--charcoal); margin-bottom:0.4rem; }
.contact-form.dark label{ color:rgba(255,255,255,0.7); }
.contact-form .field{ margin-bottom:1.1rem; }
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%; padding:0.85rem 1rem; border-radius:10px; border:1px solid var(--line);
  background:#fff; color:var(--ink); font-family:'Inter', sans-serif; font-size:0.95rem;
}
.contact-form.dark input, .contact-form.dark select, .contact-form.dark textarea{
  background:rgba(255,255,255,0.06); color:#fff; border:1px solid rgba(255,255,255,0.18);
}
.contact-form.dark input::placeholder, .contact-form.dark textarea::placeholder{ color:rgba(255,255,255,0.4); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{ outline:2px solid var(--accent); border-color:transparent; }
.contact-form textarea{ resize:vertical; min-height:110px; }
.contact-form .btn{ width:100%; margin-top:0.4rem; }

/* ---------- CTA BAND (reused across pages) ---------- */
.cta-band{
  background:var(--ink); border-radius:28px; padding:clamp(2.5rem, 6vw, 4rem); text-align:center;
  color:#fff;
}
.cta-band h2{ color:#fff; font-size:clamp(1.8rem, 4vw, 2.6rem); max-width:24ch; margin:0 auto; }
.cta-band p{ margin:1rem auto 0; max-width:34rem; color:rgba(255,255,255,0.75); }
.cta-band .btn{ margin-top:1.8rem; }

/* ---------- IMAGES ---------- */
.img-cover{ width:100%; height:100%; object-fit:cover; display:block; }
.media-frame{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--panel); }
figure{ margin:0; }
figcaption{ font-size:0.8rem; color:var(--charcoal); margin-top:0.6rem; }

/* hero with media split */
.hero-split{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(2rem, 5vw, 3.5rem); align-items:center; }
@media (max-width: 860px){ .hero-split{ grid-template-columns:1fr; } }
.hero-media{ border-radius:20px; overflow:hidden; aspect-ratio:4/5; border:1px solid var(--line); }
@media (max-width: 860px){ .hero-media{ aspect-ratio:16/9; } }

/* wide banner image under a page hero */
.banner-media{ border-radius:20px; overflow:hidden; aspect-ratio:21/8; border:1px solid var(--line); margin-top:2.5rem; }
@media (max-width: 700px){ .banner-media{ aspect-ratio:4/3; } }

/* ---------- STATS ROW ---------- */
.stats-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.5rem; }
@media (max-width: 760px){ .stats-row{ grid-template-columns:repeat(2, 1fr); } }
.stat-item{ text-align:center; padding:1.5rem 1rem; border:1px solid var(--line); border-radius:var(--radius); }
.stat-item .k{ font-family:'Sora', sans-serif; font-weight:800; font-size:clamp(1.6rem, 3.2vw, 2.2rem); color:var(--accent-dark); }
.stat-item .d{ margin-top:0.4rem; font-size:0.85rem; color:var(--charcoal); }

/* ---------- TESTIMONIALS ---------- */
.testimonial-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; }
@media (max-width: 920px){ .testimonial-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 620px){ .testimonial-grid{ grid-template-columns:1fr; } }
.testimonial-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.75rem;
  display:flex; flex-direction:column; gap:1rem;
}
.testimonial-card .quote{ font-size:0.96rem; color:var(--ink); font-style:italic; font-family:'Sora', sans-serif; font-weight:500; line-height:1.5; }
.testimonial-person{ display:flex; align-items:center; gap:0.85rem; margin-top:auto; }
.testimonial-avatar{ width:44px; height:44px; border-radius:50%; overflow:hidden; flex-shrink:0; border:1px solid var(--line); }
.testimonial-person .name{ font-size:0.9rem; font-weight:700; }
.testimonial-person .role{ font-size:0.78rem; color:var(--charcoal); }

/* ---------- GALLERY ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem; }
@media (max-width: 760px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 480px){ .gallery-grid{ grid-template-columns:1fr; } }
.gallery-item{ border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3; border:1px solid var(--line); position:relative; }
.gallery-item .cap{
  position:absolute; left:0; right:0; bottom:0; padding:0.9rem 1rem;
  background:linear-gradient(to top, rgba(15,15,15,0.75), transparent);
  color:#fff; font-size:0.85rem; font-weight:600;
}

/* ---------- MILESTONES ---------- */
.milestone-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.1rem; }
@media (max-width: 900px){ .milestone-row{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 480px){ .milestone-row{ grid-template-columns:1fr; } }
.milestone-card{ border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; background:#fff; }
.milestone-card .tag{ font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-dark); }
.milestone-card h3{ font-size:1.05rem; margin-top:0.5rem; }
.milestone-card p{ margin-top:0.5rem; font-size:0.87rem; color:var(--charcoal); }

/* ---------- FAQ ---------- */
.faq{ max-width:46rem; }
.faq details{ border-bottom:1px solid var(--line); padding:1.3rem 0; }
.faq details:first-child{ border-top:1px solid var(--line); }
.faq summary{
  cursor:pointer; font-family:'Sora', sans-serif; font-weight:600; font-size:1.02rem; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.3rem; color:var(--accent); flex-shrink:0; transition:transform 0.25s var(--ease); }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq .faq-a{ margin-top:0.9rem; color:var(--charcoal); font-size:0.95rem; max-width:38rem; }

/* ---------- NEWSLETTER ---------- */
.newsletter-box{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.75rem, 4vw, 2.5rem);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
}
.newsletter-box h3{ font-size:1.3rem; }
.newsletter-box p{ margin-top:0.4rem; color:var(--charcoal); font-size:0.92rem; max-width:26rem; }
.newsletter-form{ display:flex; gap:0.6rem; flex-wrap:wrap; }
.newsletter-form input{
  padding:0.85rem 1.2rem; border-radius:100px; border:1.5px solid var(--line); background:#fff;
  font-family:'Inter', sans-serif; font-size:0.92rem; min-width:220px;
}
.newsletter-form input:focus{ outline:2px solid var(--accent); border-color:transparent; }

/* ---------- MAP PLACEHOLDER ---------- */
.map-frame{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10; }

/* ---------- HOW IT WORKS (impact) ---------- */
.howit-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; }
@media (max-width: 820px){ .howit-grid{ grid-template-columns:1fr; } }
.howit-card{ text-align:center; padding:1rem; }
.howit-media{ border-radius:16px; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--line); margin-bottom:1.2rem; }
.howit-card h3{ font-size:1.1rem; }
.howit-card p{ margin-top:0.5rem; color:var(--charcoal); font-size:0.92rem; }

/* ---------- FEATURED POST (blog) ---------- */
.featured-post{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem, 5vw, 3.5rem); align-items:center; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
@media (max-width: 860px){ .featured-post{ grid-template-columns:1fr; } }
.featured-media{ aspect-ratio:4/3; }
@media (max-width: 860px){ .featured-media{ aspect-ratio:16/9; } }
.featured-copy{ padding:clamp(1.5rem, 3vw, 0) clamp(1.5rem, 3vw, 0) clamp(1.5rem, 3vw, 0) clamp(0rem, 0vw, 0); }
.featured-copy-inner{ padding:1.5rem clamp(1.5rem, 3vw, 2.5rem) 2rem 0; }
@media (max-width: 860px){ .featured-copy-inner{ padding:0 1.5rem 1.5rem; } }
.blog-card .thumb{ aspect-ratio:16/10; border-radius:10px; overflow:hidden; margin-bottom:1rem; border:1px solid var(--line); }
.portfolio-card .thumb{ aspect-ratio:16/9; border-radius:10px; overflow:hidden; margin-bottom:1.2rem; border:1px solid var(--line); }

/* ---------- HERO v2 (floating badges over image) ---------- */
.hero-v2{ position:relative; }
.hero-v2-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(2rem, 5vw, 3rem); align-items:center; }
@media (max-width: 900px){ .hero-v2-grid{ grid-template-columns:1fr; } }
.hero-v2-media{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/5; border:1px solid var(--line); }
@media (max-width: 900px){ .hero-v2-media{ order:-1; aspect-ratio:16/10; } }
.badge-pill{
  position:absolute; display:inline-flex; align-items:center; gap:0.6rem;
  background:#fff; border:1px solid var(--line); border-radius:100px; padding:0.65rem 1.1rem;
  font-size:0.8rem; font-weight:600; box-shadow:0 14px 30px -16px rgba(15,15,15,0.35); z-index:5;
}
.badge-pill .dot{ width:10px; height:10px; border-radius:50%; background:var(--accent); flex-shrink:0; }
.badge-1{ top:8%; left:-8%; }
.badge-2{ top:32%; left:-14%; }
@media (max-width: 900px){ .badge-1, .badge-2{ position:static; margin:0.4rem 0.5rem 0.4rem 0; display:inline-flex; } }
.hero-checks{ margin-top:1.6rem; display:flex; flex-direction:column; gap:0.6rem; }
.hero-checks .check{ display:flex; align-items:center; gap:0.7rem; font-size:0.92rem; color:var(--charcoal); }
.hero-checks .check .tick{
  width:20px; height:20px; border-radius:50%; background:var(--accent); color:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:0.7rem; font-weight:800;
}

/* ---------- MISSION / VISION ---------- */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2.5rem; }
@media (max-width: 700px){ .mv-grid{ grid-template-columns:1fr; } }
.mv-card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1.9rem; }
.mv-card h3{ font-size:1.1rem; }
.mv-card p{ margin-top:0.7rem; color:var(--charcoal); font-size:0.94rem; }
.centered-head{ text-align:center; max-width:44rem; margin:0 auto clamp(2rem, 4vw, 3rem); }
.centered-head p{ margin-top:1rem; color:var(--charcoal); font-size:1.02rem; }

/* ---------- DARK IMAGE PANEL (speaking / political) ---------- */
.dark-panel{
  position:relative; border-radius:28px; overflow:hidden; color:#fff;
  min-height:420px; display:flex; align-items:center;
}
.dark-panel .dp-media{ position:absolute; inset:0; z-index:0; }
.dark-panel .dp-media img{ width:100%; height:100%; object-fit:cover; }
.dark-panel .dp-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, rgba(15,15,15,0.92) 20%, rgba(15,15,15,0.55) 65%, rgba(15,15,15,0.25) 100%);
}
.dp-content{ position:relative; z-index:2; padding:clamp(2.5rem, 6vw, 4.5rem); max-width:34rem; }
.dp-content .eyebrow{ color:var(--accent); }
.dp-content h2{ color:#fff; font-size:clamp(1.9rem, 4vw, 2.8rem); margin-top:0.7rem; }
.dp-content p{ margin-top:1.1rem; color:rgba(255,255,255,0.82); font-size:1.02rem; }
.dp-content .btn{ margin-top:1.6rem; }
.dp-legend{ margin-top:1.8rem; display:flex; flex-wrap:wrap; gap:1.2rem; }
.dp-legend span{ display:inline-flex; align-items:center; gap:0.5rem; font-size:0.82rem; color:rgba(255,255,255,0.8); }
.dp-legend .dot{ width:9px; height:9px; border-radius:50%; }
.dp-legend .dot.c1{ background:var(--accent); }
.dp-legend .dot.c2{ background:#fff; }
.dp-legend .dot.c3{ background:rgba(255,255,255,0.4); }

/* ---------- LOGO ROW ("As Featured In") ---------- */
.logo-row{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:clamp(1.5rem, 4vw, 3rem); align-items:center; }
.logo-row span{ font-family:'Sora', sans-serif; font-weight:700; font-size:1rem; color:rgba(255,255,255,0.55); letter-spacing:0.02em; }

/* ---------- STEPS (dark variant) ---------- */
.steps-dark{ background:var(--ink); border-radius:28px; padding:clamp(2.5rem, 6vw, 4.5rem); color:#fff; }
.steps-dark .centered-head h2{ color:#fff; }
.steps-dark .centered-head p{ color:rgba(255,255,255,0.7); }
.step-card-row{ display:flex; flex-direction:column; gap:1.1rem; max-width:44rem; margin:0 auto; }
.step-card{
  display:grid; grid-template-columns:56px 1fr auto; gap:1.2rem; align-items:center;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:14px; padding:1.4rem 1.6rem;
}
@media (max-width: 560px){ .step-card{ grid-template-columns:44px 1fr; } .step-tag{ display:none; } }
.step-icon{
  width:52px; height:52px; border-radius:12px; background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Sora', sans-serif; font-weight:800; font-size:1.1rem;
}
.step-card h3{ color:#fff; font-size:1.05rem; }
.step-card p{ margin-top:0.3rem; color:rgba(255,255,255,0.7); font-size:0.88rem; }
.step-tag{ font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.5); border:1px solid rgba(255,255,255,0.25); padding:0.4rem 0.8rem; border-radius:100px; white-space:nowrap; }

/* ---------- BIG QUOTE TESTIMONIALS ---------- */
.quote-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
@media (max-width: 800px){ .quote-grid{ grid-template-columns:1fr; } }
.quote-card{ display:grid; grid-template-columns:96px 1fr; gap:1.5rem; align-items:start; }
@media (max-width: 560px){ .quote-card{ grid-template-columns:1fr; } }
.quote-card .qmedia{ border-radius:14px; overflow:hidden; aspect-ratio:1/1; border:1px solid var(--line); }
.quote-mark{ font-family:'Sora', sans-serif; font-size:2.4rem; color:var(--accent); line-height:1; font-weight:800; }
.quote-card blockquote{ font-family:'Inter', sans-serif; font-weight:400; font-style:normal; border:none; padding:0; margin:0.3rem 0 0; font-size:1rem; color:var(--ink); line-height:1.6; }
.quote-card .who{ margin-top:1rem; font-size:0.88rem; }
.quote-card .who .name{ font-weight:700; }
.quote-card .who .role{ color:var(--charcoal); }

/* ---------- TOOLKIT / NEWSLETTER PROMO ---------- */
.toolkit-band{ background:linear-gradient(120deg, var(--panel), #f7ece2); border-radius:28px; padding:clamp(2.5rem, 6vw, 4rem); }
.toolkit-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(2rem, 5vw, 3rem); align-items:center; }
@media (max-width: 780px){ .toolkit-grid{ grid-template-columns:1fr; } }
.toolkit-media{ border-radius:16px; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--line); }
.toolkit-copy h2{ font-size:clamp(1.6rem, 3.4vw, 2.2rem); }
.toolkit-copy p.fine{ margin-top:0.7rem; font-size:0.78rem; color:var(--charcoal); opacity:0.75; }
.toolkit-form{ margin-top:1.5rem; display:flex; gap:0.6rem; flex-wrap:wrap; }
.toolkit-form input{
  flex:1 1 220px; padding:0.9rem 1.2rem; border-radius:100px; border:1.5px solid var(--line);
  background:#fff; font-family:'Inter', sans-serif; font-size:0.92rem;
}
.toolkit-form input:focus{ outline:2px solid var(--accent); border-color:transparent; }

/* ---------- STAY CONNECTED CARD ---------- */
.talk-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(2rem, 5vw, 3rem); align-items:start; }
@media (max-width: 820px){ .talk-grid{ grid-template-columns:1fr; } }
.stay-connected{
  background:var(--ink); color:#fff; border-radius:var(--radius); padding:clamp(1.9rem, 4vw, 2.5rem);
}
.stay-connected h3{ color:#fff; font-size:1.25rem; }
.stay-connected p{ margin-top:0.8rem; color:rgba(255,255,255,0.75); font-size:0.92rem; }
.stay-connected .fund{ margin-top:1.3rem; padding-top:1.3rem; border-top:1px solid rgba(255,255,255,0.16); }
.stay-connected .fund h4{ font-family:'Sora', sans-serif; font-size:0.95rem; color:var(--accent); font-weight:700; }
.stay-connected .fund p{ margin-top:0.4rem; }
.social-row{ margin-top:1.5rem; display:flex; gap:0.7rem; }
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,0.3); color:#fff;
  display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:0.8rem; font-weight:700;
  transition:border-color 0.2s var(--ease), color 0.2s var(--ease);
}
.social-row a:hover{ border-color:var(--accent); color:var(--accent); }

/* ---------- FOOTER v2 (CTA strip + two link columns matching reference) ---------- */
.footer-cta-strip{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:clamp(2rem, 5vw, 3rem); background:var(--ink); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius);
  margin-bottom:clamp(2.5rem, 6vw, 4rem);
}
.footer-cta-strip p{ color:rgba(255,255,255,0.8); max-width:34rem; font-size:0.95rem; }

/* ---------- PROGRAM / TRAINING CARDS (Learn page) ---------- */
.program-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.5rem; }
@media (max-width: 760px){ .program-grid{ grid-template-columns:1fr; } }
.program-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.75rem, 3vw, 2.3rem);
  display:flex; flex-direction:column; transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.program-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -24px rgba(15,15,15,0.25); }
.program-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.program-icon{
  width:48px; height:48px; border-radius:12px; background:rgba(255,90,54,0.12);
  display:flex; align-items:center; justify-content:center; font-family:'Sora', sans-serif; font-weight:800; color:var(--accent-dark); font-size:1.05rem;
}
.level-badge{ font-size:0.65rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; padding:0.35rem 0.7rem; border-radius:100px; border:1px solid var(--line); color:var(--charcoal); white-space:nowrap; }
.program-card h3{ font-size:1.3rem; margin-top:1.1rem; }
.program-card p.desc{ margin-top:0.6rem; color:var(--charcoal); font-size:0.95rem; flex-grow:1; }
.program-meta-row{ margin-top:1.3rem; display:flex; flex-wrap:wrap; gap:0.5rem; }
.program-meta-row span{ font-size:0.68rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--charcoal); background:var(--panel); padding:0.35rem 0.7rem; border-radius:100px; }
.program-footer{ margin-top:1.5rem; padding-top:1.3rem; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.program-price{ font-family:'Sora', sans-serif; font-weight:800; font-size:1.3rem; color:var(--ink); }
.program-price span{ font-family:'Inter', sans-serif; font-weight:400; font-size:0.78rem; color:var(--charcoal); }

/* ---------- FORMAT TABS (how you can learn) ---------- */
.format-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem; }
@media (max-width: 860px){ .format-grid{ grid-template-columns:1fr; } }
.format-card{ border:1px solid var(--line); border-radius:var(--radius); padding:1.9rem; text-align:center; background:var(--panel); }
.format-card .icon{
  width:52px; height:52px; border-radius:50%; background:var(--ink); color:#fff; margin:0 auto 1.1rem;
  display:flex; align-items:center; justify-content:center; font-family:'Sora', sans-serif; font-weight:800;
}
.format-card h3{ font-size:1.1rem; }
.format-card p{ margin-top:0.6rem; color:var(--charcoal); font-size:0.9rem; }

/* ---------- WHY TRAIN (checklist) ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.25rem 2rem; }
@media (max-width: 700px){ .why-grid{ grid-template-columns:1fr; } }
.why-item{ display:flex; gap:1rem; align-items:flex-start; }
.why-item .tick{
  width:28px; height:28px; border-radius:50%; background:var(--accent); color:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:0.85rem; font-weight:800; margin-top:0.15rem;
}
.why-item h3{ font-size:1.02rem; }
.why-item p{ margin-top:0.35rem; color:var(--charcoal); font-size:0.9rem; }

/* ---------- FOOTER ---------- */
footer{ background:var(--ink); color:#fff; padding:clamp(4rem, 8vw, 6rem) 0 2.5rem; margin-top:2rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 0.7fr 0.7fr; gap:clamp(2rem, 5vw, 3rem); }
@media (max-width: 780px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 520px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-brand .nav-mark{ color:#fff; }
.footer-grid p.lead{ margin-top:1rem; color:rgba(255,255,255,0.65); max-width:26rem; font-size:0.92rem; }
.footer-col h4{ font-size:0.78rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:1rem; }
.footer-col a{ display:block; text-decoration:none; color:rgba(255,255,255,0.8); font-size:0.92rem; padding:0.35rem 0; transition:color 0.2s var(--ease); }
.footer-col a:hover{ color:var(--accent); }
.footer-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem;
  margin-top:clamp(3rem, 6vw, 4.5rem); padding-top:1.75rem; border-top:1px solid rgba(255,255,255,0.14);
  font-size:0.85rem; color:rgba(255,255,255,0.55);
}
.footer-social{ display:flex; gap:1rem; }
.footer-social a{ text-decoration:none; color:rgba(255,255,255,0.75); font-weight:600; font-size:0.85rem; transition:color 0.2s var(--ease); }
.footer-social a:hover{ color:var(--accent); }
