/* ===========================================================================
   CoachingSales Editorial — GeneratePress child styles
   Brand: warm ink/paper, one gold + oxblood, four-family editorial type.
   Light base (reading pages) + dark home (body.home). Clean GP markup, so
   minimal overrides — no Thesis specificity fights.
   =========================================================================== */
:root{
  --cs-ink:#0e0e0e; --cs-paper:#f5f2ec; --cs-paper-dim:#d8d3c9; --cs-cream:#ede9e0; --cs-warm-card:#161412;
  --cs-gold:#c8a84b; --cs-gold-light:#e8d49a; --cs-bronze:#7e601e;
  --cs-oxblood:#9a3b47; --cs-oxblood-tint:#ce7a82;
  --cs-hairline-l:#c7c0b5; --cs-hairline-d:#3a352e;
  --cs-muted-l:#514c44; --cs-muted-d:#8a8478;
  --cs-display:'Fraunces',Georgia,serif;
  --cs-reading:'Spectral',Georgia,serif;
  --cs-ui:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cs-mono:'DM Mono','SFMono-Regular',Menlo,monospace;
  --cs-sect-pad:clamp(60px,7vw,92px);
  --cs-subgap:clamp(40px,5vw,56px);
}

/* ---------- Base (light editorial) ---------- */
body{ font-family:var(--cs-ui); background:var(--cs-paper); color:var(--cs-ink); }
.entry-content, .site-content, p, li, td{ color:var(--cs-ink); }
.entry-content{ line-height:1.6; }

/* skip-link: keep it off-screen with a content-sized box (no 1px box → no overflow
   flag) yet still screen-reader readable; GP's :focus style brings it back on-screen */
.screen-reader-text.skip-link:not(:focus){
  width:auto !important; height:auto !important; left:-9999px; top:auto;
  clip:auto !important; -webkit-clip-path:none; clip-path:none; overflow:visible;
}

h1,h2,h3,h4,h5,h6,
.entry-title, .site-title{
  font-family:var(--cs-display); font-optical-sizing:auto;
  font-variation-settings:"WONK" 0; font-weight:600; letter-spacing:-0.01em;
}
h1 em, h2 em, .entry-title em{ font-style:italic; color:var(--cs-bronze); font-variation-settings:"WONK" 0; }

a{ color:var(--cs-bronze); }
a:hover{ color:var(--cs-oxblood); }

/* eyebrows / meta in DM Mono */
.entry-meta, .page-header-subtitle, .cs-eyebrow{
  font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.12em; font-size:.78em; color:var(--cs-muted-l);
}

/* buttons — gold fill, ink text */
.button, button, input[type="submit"], input[type="button"],
.wp-block-button__link, .gb-button{
  background-color:var(--cs-gold) !important; border-color:var(--cs-gold) !important;
  color:var(--cs-ink) !important; font-family:var(--cs-ui); font-weight:600; letter-spacing:.01em;
  text-shadow:none !important; border-radius:4px;
}
.button:hover, button:hover, input[type="submit"]:hover,
.wp-block-button__link:hover, .gb-button:hover{
  background-color:var(--cs-oxblood) !important; border-color:var(--cs-oxblood) !important; color:var(--cs-paper) !important;
}

hr{ border:0; border-top:1px solid var(--cs-gold); opacity:.6; }
blockquote{ border-left:3px solid var(--cs-gold); color:var(--cs-ink); }

/* ---------- Header (dark, site-wide — gold logo lives here) ---------- */
.site-header{ background-color:var(--cs-ink) !important; }
.site-header .main-title a, .site-header .site-title a{ color:var(--cs-paper); }
.main-navigation{ background-color:var(--cs-ink) !important; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle{ color:var(--cs-paper) !important; font-family:var(--cs-ui); font-weight:500; }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a{ color:var(--cs-gold) !important; }
.main-navigation .main-nav ul ul{ background-color:var(--cs-warm-card) !important; border:1px solid var(--cs-hairline-d); }
/* "Apply Now" nav item → gold CTA button (matches the sales job board nav CTA) */
.main-navigation .main-nav ul li a[href*="/apply"]{
  color:var(--cs-ink) !important; background-color:var(--cs-gold);
  font-weight:600; border-radius:6px; line-height:1.1;
  padding:9px 18px !important; margin:auto 0 auto 12px; align-self:center;
  transition:background-color .16s, color .16s;
}
.main-navigation .main-nav ul li a[href*="/apply"]:hover{
  color:var(--cs-ink) !important; background-color:var(--cs-gold-light);
}
/* in the mobile menu panel, inset the gold button evenly from both gold outlines */
@media (max-width:768px){
  .main-navigation .main-nav ul li a[href*="/apply"]{ margin:10px 16px !important; }
}
/* same gold CTA for "Apply Now" in the mobile (Responsive Menu) overlay */
.rmp-menu .rmp-menu-item-link[href*="/apply"]{
  display:inline-block !important; width:auto !important;
  background-color:var(--cs-gold) !important; color:var(--cs-ink) !important;
  font-weight:600; border-radius:6px; padding:10px 20px !important; margin:10px 16px;
}
.rmp-menu .rmp-menu-item-link[href*="/apply"]:hover{
  background-color:var(--cs-gold-light) !important; color:var(--cs-ink) !important;
}
/* mobile hamburger/close toggle: black with a gold outline + gold icon (not gold-fill) */
.main-navigation .menu-toggle, button.menu-toggle,
.main-navigation .menu-toggle:hover, button.menu-toggle:hover,
.main-navigation .menu-toggle:focus{
  background-color:var(--cs-ink) !important; color:var(--cs-gold) !important;
  border:1px solid var(--cs-gold) !important; border-radius:6px;
}
/* toggled mobile menu panel: dark with a gold outline + breathing room below the last item */
.has-inline-mobile-toggle #site-navigation.toggled{
  background-color:var(--cs-ink) !important; border:1px solid var(--cs-gold) !important;
  border-radius:8px; padding-bottom:16px !important;
}

/* ---------- Sticky footer — keep footer at the viewport bottom on short pages ---------- */
body{ display:flex; flex-direction:column; min-height:100vh; }
body > #page{ flex:1 0 auto; }
body > .site-footer{ flex-shrink:0; }

/* ---------- Footer (dark) ---------- */
.site-footer, .site-info, .footer-widgets{ background-color:var(--cs-ink) !important; color:var(--cs-paper); }
/* inset footer content from the colored boundary (GP gives vertical padding only) */
.site-footer{ padding:clamp(20px,3vw,30px) clamp(16px,4vw,40px); }
.site-footer, .site-info, .site-info a{ font-family:var(--cs-ui); }
.site-footer a, .site-info a, .footer-bar a{ color:var(--cs-gold); }
.site-footer a:hover, .site-info a:hover{ color:var(--cs-gold-light); }
.inside-site-info, .copyright-bar{ color:var(--cs-paper); }
.cs-legal-links{ display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:center; margin-top:10px; }
.cs-legal-links a{ font-family:var(--cs-ui); font-size:.82rem; color:var(--cs-muted-d) !important; text-decoration:none; transition:color .15s; }
.cs-legal-links a:hover{ color:var(--cs-gold) !important; }

/* ---------- About page: centered editorial reading column (no empty sidebar) ---------- */
.cs-about .inside-article{ max-width:820px; margin-left:auto; margin-right:auto; }
.cs-about .entry-content{ max-width:600px; }   /* ~70 chars/line at 17px — comfortable measure (ch unit reads wide here) */
.cs-about .entry-content > *{ margin-left:auto; margin-right:auto; }
.cs-about .entry-content img,
.cs-about .entry-content figure,
.cs-about .entry-content .wp-block-image{ display:block; margin-left:auto; margin-right:auto; }

/* ---------- Custom Table of Contents (.cs-toc — our own, replaces Easy TOC) ---------- */
html{ scroll-behavior:smooth; }
.cs-toc :is(a){ scroll-margin-top:24px; }
.entry-content h2[id], .entry-content h3[id]{ scroll-margin-top:24px; }
.cs-toc{
  background:var(--cs-cream); border:1px solid var(--cs-hairline-l); border-radius:10px;
  padding:22px 26px; margin:1.8rem 0 2.4rem; max-width:760px;
}
.cs-toc-title{
  font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.16em;
  font-size:.72rem; color:var(--cs-bronze); margin:0 0 .9rem;
}
.cs-toc-list{ list-style:none; margin:0; padding:0; counter-reset:cs-toc; }
.cs-toc-item{ margin:0; }
.cs-toc-item a{ font-family:var(--cs-ui); color:var(--cs-ink); text-decoration:none; line-height:1.95; transition:color .15s; }
.cs-toc-item a:hover{ color:var(--cs-bronze); }
.cs-toc-l2{ counter-increment:cs-toc; }
.cs-toc-l2 > a::before{ content:counter(cs-toc) ".\00a0"; font-family:var(--cs-mono); color:var(--cs-bronze); }
.cs-toc-l3{ padding-left:1.5rem; }
.cs-toc-l3 > a{ font-size:.92rem; opacity:.85; }
/* dark surfaces (About, posts rendered dark) */
body.cs-dark .cs-toc{ background:var(--cs-warm-card); border-color:var(--cs-hairline-d); }
body.cs-dark .cs-toc-title{ color:var(--cs-gold); }
body.cs-dark .cs-toc-item a{ color:var(--cs-paper) !important; }
body.cs-dark .cs-toc-item a:hover{ color:var(--cs-gold-light) !important; }
body.cs-dark .cs-toc-l2 > a::before{ color:var(--cs-gold); }

/* ===========================================================================
   DARK HOME (body.home / front page) — assertive editorial
   =========================================================================== */
body.home{ background-color:var(--cs-ink) !important; color:var(--cs-paper) !important; }
body.home .site-content, body.home .entry-content,
body.home p, body.home li, body.home td{ color:var(--cs-paper) !important; }
body.home h1, body.home h2, body.home h3, body.home .entry-title{ color:var(--cs-paper) !important; }
body.home h1 em, body.home h2 em{ color:var(--cs-gold-light) !important; }
body.home a{ color:var(--cs-gold) !important; }
body.home a:hover{ color:var(--cs-gold-light) !important; }
body.home .separate-containers .inside-article,
body.home .one-container .site-content{ background-color:transparent !important; }
body.home hr{ border-top-color:var(--cs-hairline-d) !important; }

/* ===========================================================================
   CODED FRONT PAGE (front-page.php) — full-bleed editorial sections, responsive
   =========================================================================== */
/* neutralise GeneratePress content container so sections can go full width */
body.home #page, body.home .site-content, body.home #primary,
body.home #content, body.home .container.grid-container{
  max-width:100% !important; width:100% !important; padding:0 !important; margin:0 !important;
}
body.home .site-main{ margin:0 !important; }
/* #content is flex (sidebar layout) — make it block so <main> fills full width */
body.home #content.site-content{ display:block !important; }
body.home #primary, body.home .site-main, body.home #cs-home{ width:100% !important; max-width:100% !important; float:none !important; margin:0 !important; }
.cs-home{ overflow-x:hidden; }
.cs-home *{ box-sizing:border-box; }
/* 1200px to match GeneratePress's header container so content aligns with the logo */
.cs-wrap{ max-width:1200px; margin:0 auto; padding-left:clamp(20px,5vw,40px); padding-right:clamp(20px,5vw,40px); }
.cs-center{ text-align:center; }
.cs-home section{ padding-top:clamp(52px,8vw,112px); padding-bottom:clamp(52px,8vw,112px); }
.cs-eyebrow{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.18em;
  font-size:.72rem; color:var(--cs-gold); margin:0 0 1.1rem; }

/* hero */
.cs-hero{ background:var(--cs-ink); }
.cs-hero-title{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper);
  font-size:clamp(2.1rem,5.6vw,4.3rem); line-height:1.04; letter-spacing:-0.02em; margin:0 0 1.4rem; max-width:18ch; }
.cs-hero-title em{ color:var(--cs-gold-light); font-style:italic; }
.cs-hero-title br{ display:none; }   /* the homepage headline <br> breaks are mobile-only (see media query) */
.cs-hero-lede{ font-family:var(--cs-ui); color:var(--cs-paper-dim);
  font-size:clamp(1.05rem,1.8vw,1.3rem); line-height:1.6; max-width:60ch; margin:0 0 2rem; }
/* lede/path copy reads a touch softer than headings, but as a solid colour (not an
   opacity stack) so it clears the WCAG-contrast detector; beats the !important paper rules */
body.home .cs-hero-lede, body.cs-dark .cs-hero-lede{ color:var(--cs-paper-dim) !important; }
body.home .cs-path p{ color:var(--cs-paper-dim) !important; }
.cs-cta-row{ display:flex; flex-wrap:wrap; gap:16px; margin:0 0 var(--cs-subgap); }
.cs-btn{ display:inline-block; font-family:var(--cs-ui); font-weight:600; font-size:1rem;
  padding:.9em 1.85em; border-radius:5px; text-decoration:none; transition:background .15s,color .15s; cursor:pointer; }
.cs-btn--gold{ background:var(--cs-gold) !important; color:var(--cs-ink) !important; border:1px solid var(--cs-gold) !important; }
.cs-btn--gold:hover{ background:var(--cs-gold-light) !important; color:var(--cs-ink) !important; }
.cs-btn--ghost{ background:transparent !important; border:1px solid var(--cs-gold) !important; color:var(--cs-gold) !important; }
.cs-btn--ghost:hover{ background:var(--cs-gold) !important; color:var(--cs-ink) !important; }
.cs-btn--lg{ font-size:1.12rem; padding:1em 2.4em; }
.cs-stats{ list-style:none; margin:0; padding:var(--cs-subgap) 0 0; border-top:1px solid var(--cs-hairline-d);
  display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(16px,2.5vw,30px); }
.cs-stats li{ display:flex; flex-direction:column; gap:.45rem; }
.cs-stat-num{ font-family:var(--cs-display); font-weight:600; color:var(--cs-gold);
  font-size:clamp(1.7rem,3.2vw,2.5rem); line-height:1; }
.cs-stat-label{ font-family:var(--cs-ui); color:var(--cs-muted-d); font-size:.84rem; line-height:1.4; }

/* trusted by */
.cs-trusted{ background:var(--cs-ink); }
.cs-logos{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:1.6rem; }
.cs-logo{ background:var(--cs-paper); border-radius:6px; aspect-ratio:3/2;
  display:flex; align-items:center; justify-content:center; padding:16px; }
.cs-logo img{ max-width:100%; max-height:100%; object-fit:contain; }

/* results / testimonials */
.cs-results{ background:var(--cs-ink); }
.cs-section-title{ font-family:var(--cs-display); color:var(--cs-paper); font-weight:600;
  font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-0.01em; margin:0 0 2.4rem; }
.cs-section-title em{ color:var(--cs-gold-light); font-style:italic; }
.cs-quotes{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.cs-quote{ background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d);
  border-left:3px solid var(--cs-gold); margin:0; padding:2rem;
  display:flex; gap:1.3rem; align-items:flex-start; }
.cs-avatar{ width:64px; height:64px; flex:0 0 64px; border-radius:50%; object-fit:cover;
  border:2px solid var(--cs-gold); }
.cs-quote-body{ flex:1; min-width:0; }
.cs-quote p{ font-family:var(--cs-reading); font-style:italic; color:var(--cs-paper);
  font-size:1.18rem; line-height:1.5; margin:0 0 1.2rem; }
.cs-quote cite{ font-style:normal; font-family:var(--cs-ui); color:var(--cs-gold); font-weight:600; display:flex; flex-direction:column; }
.cs-quote cite span{ color:var(--cs-muted-d); font-weight:400; font-size:.84rem; margin-top:.2rem; }
.cs-results-grid{ margin:var(--cs-subgap) 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }

/* two paths */
.cs-paths{ background:var(--cs-ink); }
.cs-paths-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.cs-path{ background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d);
  padding:clamp(28px,4vw,48px); border-radius:8px; }
.cs-path h2{ font-family:var(--cs-display); color:var(--cs-paper); font-weight:600;
  font-size:clamp(1.55rem,3vw,2.2rem); margin:0 0 1rem; }
.cs-path h2 em{ color:var(--cs-gold-light); font-style:italic; }
.cs-path p{ font-family:var(--cs-ui); color:var(--cs-paper-dim); line-height:1.6; margin:0 0 1.8rem; }

/* final cta */
.cs-cta-final{ background:var(--cs-ink); }
.cs-cta-final .cs-section-title{ margin-bottom:1.8rem; }

/* ---------- responsive: tablet ---------- */
@media (max-width:900px){
  .cs-stats{ grid-template-columns:repeat(2,1fr); row-gap:1.6rem; }
  .cs-quotes{ grid-template-columns:1fr; }
  .cs-results-grid{ grid-template-columns:repeat(2,1fr); }
  .cs-paths-grid{ grid-template-columns:1fr; }
  .cs-logos{ grid-template-columns:repeat(4,1fr); }
}
/* mobile (hamburger layout): hide the logo wall + reorder the homepage sections to
   hero -> stats(in hero) -> paths(businesses, reps) -> results -> CTA */
@media (max-width:768px){
  .cs-trusted{ display:none; }
  body.home #cs-home{ display:flex; flex-direction:column; }
  body.home .cs-hero{ order:1; }
  body.home .cs-paths{ order:2; }   /* how we help businesses + sales reps */
  body.home .cs-results{ order:3; } /* real teams, real revenue */
  body.home .cs-cta-final{ order:4; }
}
/* ---------- responsive: mobile ---------- */
@media (max-width:560px){
  /* stats as full-width cards on phones: single-column stack */
  .cs-stats{ grid-template-columns:1fr; gap:12px; border-top:none; padding-top:0; }
  .cs-stats li{ background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d);
    border-radius:8px; padding:18px 16px; gap:.35rem; }
  .cs-results-grid{ grid-template-columns:1fr; }
  .cs-logos{ grid-template-columns:repeat(2,1fr); }
  .cs-cta-row{ flex-direction:column; align-items:stretch; }
  .cs-cta-row .cs-btn{ text-align:center; }
  .cs-hero-title{ font-size:clamp(2rem,9vw,2.6rem); }
  /* homepage headline: explicit 3-line break structure (mobile only), matching the
     desktop 3-line shape; line 1 = "Take Your High Ticket Sales" kept on one line */
  body.home .cs-hero-title{ max-width:none; font-size:clamp(1.4rem,6.9vw,1.85rem); line-height:1.1; }
  body.home .cs-hero-title br{ display:inline; }
  body.home .cs-hero-title em, body.home .cs-hero-title .cs-nb{ white-space:nowrap; }
  /* keep the hero eyebrow on one line */
  .cs-eyebrow{ letter-spacing:.1em; }
}

/* constrain the header logo */
.site-header .site-logo img, .site-branding img, .navigation-branding img,
.main-navigation .navigation-branding img, header .header-image{
  max-height:46px !important; width:auto !important;
}

/* logo present -> hide redundant text site title */
.site-header .main-title, .site-header .site-title, .site-header .site-description{ display:none !important; }

/* gold button text must stay ink on dark home (beats body.home a rule) */
body.home .cs-btn--gold, body.home a.cs-btn--gold,
body.home .cs-btn--gold:hover{ color:var(--cs-ink) !important; }
body.home .cs-btn--ghost{ color:var(--cs-gold) !important; }
body.home .cs-btn--ghost:hover{ color:var(--cs-ink) !important; }

/* section breaks: equal top+bottom padding on every section, so the content
   sits vertically centred between its top hairline and the next one.
   space below a divider = this section's padding-top; space above the next
   divider = this section's padding-bottom; both = --cs-sect-pad. */
.cs-home section{ padding-top:var(--cs-sect-pad) !important; padding-bottom:var(--cs-sect-pad) !important; }
.cs-hero{ padding-top:clamp(36px,5vw,64px) !important; }
.cs-home section:not(.cs-hero){ position:relative; }
.cs-home section:not(.cs-hero)::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:min(1120px, calc(100% - clamp(40px,10vw,80px))); height:1px; background:var(--cs-hairline-d);
}

/* ---- talent choice modal ---- */
.cs-modal[hidden]{ display:none; }
.cs-modal{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:24px; }
.cs-modal__overlay{ position:absolute; inset:0; background:rgba(8,8,7,.78); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.cs-modal__dialog{
  position:relative; z-index:1; width:100%; max-width:560px;
  background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d); border-radius:14px;
  padding:40px 36px 36px; box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.cs-modal__close{
  position:absolute; top:12px; right:16px;
  background:none !important; border:none !important; border-radius:0 !important;
  color:var(--cs-muted-d) !important; font-size:26px; font-weight:400; line-height:1;
  cursor:pointer; padding:6px; transition:color .15s;
}
.cs-modal__close:hover{ background:none !important; color:var(--cs-gold) !important; }
.cs-modal__title{
  font-family:var(--cs-display); color:var(--cs-paper); font-weight:600;
  font-size:1.7rem; line-height:1.15; margin:.5rem 0 1.6rem;
}
.cs-modal__title em{ font-style:italic; color:var(--cs-gold-light); }
.cs-modal__choices{ display:flex; flex-direction:column; gap:14px; }
.cs-choice{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 20px; border:1px solid var(--cs-hairline-d); border-radius:10px;
  text-decoration:none; transition:border-color .16s, background .16s, transform .16s;
}
.cs-choice:hover, .cs-choice:focus-visible{ border-color:var(--cs-gold); background:rgba(200,168,75,.06); transform:translateX(2px); outline:none; }
.cs-choice__title{ display:block; font-family:var(--cs-ui); font-weight:600; color:var(--cs-paper); font-size:1.02rem; }
.cs-choice__sub{ display:block; font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.07em; font-size:.66rem; color:var(--cs-muted-d); margin-top:6px; white-space:nowrap; }
.cs-choice__arrow{ color:var(--cs-gold); font-size:1.2rem; flex:none; transition:transform .16s; }
.cs-choice:hover .cs-choice__arrow, .cs-choice:focus-visible .cs-choice__arrow{ transform:translateX(4px); }
@media (max-width:600px){
  .cs-modal{ padding:16px; }
  .cs-modal__dialog{ padding:32px 18px 24px; }
  .cs-modal__title{ font-size:1.4rem; }
  .cs-choice{ padding:16px 16px; gap:12px; }
  .cs-choice__title{ font-size:.98rem; }
  /* sublabel can't stay one line on a phone — let it wrap tidily instead of overflowing */
  .cs-choice__sub{ white-space:normal; letter-spacing:.05em; font-size:.62rem; line-height:1.5; }
}

/* ===========================================================================
   Results / Programs — dark card pages (body.cs-dark + coded templates)
   =========================================================================== */
/* dark treatment, mirroring body.home, for the Results/Programs coded templates */
body.cs-dark{ background-color:var(--cs-ink) !important; color:var(--cs-paper) !important; }
body.cs-dark .site-content, body.cs-dark p, body.cs-dark li, body.cs-dark td{ color:var(--cs-paper) !important; }
body.cs-dark h1, body.cs-dark h2, body.cs-dark h3, body.cs-dark .entry-title{ color:var(--cs-paper) !important; }
body.cs-dark h1 em, body.cs-dark h2 em{ color:var(--cs-gold-light) !important; }
body.cs-dark a{ color:var(--cs-gold) !important; }   /* content links gold on dark, not bronze */
body.cs-dark a:hover{ color:var(--cs-gold-light) !important; }
body.cs-dark blockquote{ color:var(--cs-paper) !important; border-left-color:var(--cs-gold) !important; }
body.cs-dark .inside-article,
body.cs-dark article,
body.cs-dark .site-content,
body.cs-dark .entry-content{ background-color:transparent !important; box-shadow:none !important; }
/* gold-fill buttons keep ink text on dark (the gold link rule must not turn them gold-on-gold) */
body.cs-dark .cs-btn--gold, body.cs-dark a.cs-btn--gold, body.cs-dark .cs-btn--gold:hover,
body.cs-dark .button, body.cs-dark a.button,
body.cs-dark .wp-block-button__link, body.cs-dark .gb-button{ color:var(--cs-ink) !important; }

/* full-bleed container reset — only the coded card templates (Results/Programs) */
body.cs-fullbleed #page, body.cs-fullbleed .site-content, body.cs-fullbleed #primary,
body.cs-fullbleed #content, body.cs-fullbleed .container.grid-container{
  background-color:transparent !important; padding:0 !important; max-width:100% !important; width:100% !important; margin:0 !important; }
body.cs-fullbleed .site-main{ margin:0 !important; }
body.cs-fullbleed #content.site-content{ display:block !important; }

/* video testimonial cards */
.cs-card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:2.4rem; }
/* no overflow:hidden on the card itself — it wraps the absolutely-positioned play
   button and trips the clipped-overflow detector. Round the thumb's top corners
   directly instead, which keeps the card visually identical. */
.cs-vcard{ display:flex; flex-direction:column; background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d);
  border-radius:12px; text-decoration:none !important; transition:border-color .16s, transform .16s; }
.cs-vcard:hover{ border-color:var(--cs-gold); transform:translateY(-3px); }
.cs-vcard-thumb{ position:relative; display:block; aspect-ratio:16/9; background-size:cover; background-position:center;
  background-color:#000; border-radius:12px 12px 0 0; }
.cs-vcard-play{ position:absolute; top:50%; left:50%; width:56px; height:56px; transform:translate(-50%,-50%);
  border-radius:50%; background:rgba(200,168,75,.95); transition:transform .16s, background .16s; }
.cs-vcard-play::after{ content:""; position:absolute; top:50%; left:54%; transform:translate(-50%,-50%);
  border-style:solid; border-width:9px 0 9px 15px; border-color:transparent transparent transparent var(--cs-ink); }
.cs-vcard:hover .cs-vcard-play{ transform:translate(-50%,-50%) scale(1.08); background:var(--cs-gold); }
.cs-vcard-body{ padding:18px 20px 22px; display:flex; flex-direction:column; }
.cs-vcard-name{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important; font-size:1.12rem; line-height:1.2; }
.cs-vcard-co{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; color:var(--cs-gold) !important; margin:5px 0 12px; }
.cs-vcard-quote{ font-family:var(--cs-reading); font-style:italic; color:var(--cs-paper) !important; opacity:.9; line-height:1.5; font-size:.98rem; }

/* case study logo cards */
.cs-cs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:2.4rem; }
.cs-cs-card{ display:flex; flex-direction:column; align-items:center; gap:12px; background:var(--cs-warm-card);
  border:1px solid var(--cs-hairline-d); border-radius:10px; padding:20px; }
.cs-cs-card .cs-logo{ width:100%; }
.cs-cs-industry{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.1em; font-size:.6rem;
  color:var(--cs-muted-d) !important; text-align:center; }

/* program cards */
.cs-prog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:1.2rem; }
.cs-prog-card{ display:flex; flex-direction:column; background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d);
  border-radius:12px; overflow:hidden; text-decoration:none !important; transition:border-color .16s, transform .16s; }
.cs-prog-card:hover{ border-color:var(--cs-gold); transform:translateY(-3px); }
.cs-prog-img{ display:block; aspect-ratio:16/9; background-size:cover; background-position:center; background-color:#000; }
.cs-prog-body{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; }
.cs-prog-title{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important; font-size:1.25rem; }
.cs-prog-cta{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.12em; font-size:.66rem; color:var(--cs-gold) !important; }
/* Programs hero: tighter gap to the hairline + one-line headline (drops the 18ch cap, sized to fit) */
#cs-programs .cs-hero{ padding-bottom:clamp(24px,3vw,40px) !important; }
#cs-programs .cs-hero-title{ max-width:none; font-size:clamp(1.7rem,4.6vw,3.6rem); }

@media (max-width:880px){ .cs-card-grid, .cs-cs-grid, .cs-prog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cs-card-grid, .cs-cs-grid, .cs-prog-grid{ grid-template-columns:1fr; } }

/* ===========================================================================
   Apply — native multi-step application form (page-apply.php)
   =========================================================================== */
.cs-apply-wrap{ max-width:680px; }
.cs-form{ margin-top:2.4rem; }
.cs-form-progress{ height:4px; background:var(--cs-hairline-d); border-radius:2px; overflow:hidden; margin-bottom:.7rem; }
.cs-form-progress-bar{ display:block; height:100%; width:0; background:var(--cs-gold); transition:width .3s ease; }
.cs-form-stepcount{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.14em; font-size:.66rem; color:var(--cs-muted-d) !important; margin:0 0 2rem; }
.cs-step{ border:0; margin:0; padding:0; min-inline-size:0; }
.cs-step[hidden]{ display:none; }
/* .cs-btn sets display:inline-block, which overrides the [hidden] attribute — so
   re-assert it for the form nav buttons; Submit shows only on the final step */
.cs-btn[hidden]{ display:none !important; }
.cs-step-title{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important; font-size:1.55rem; line-height:1.2; padding:0; margin:0 0 1.5rem; }
.cs-field{ margin-bottom:1.1rem; }
.cs-field label{ display:block; font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.1em; font-size:.64rem; color:var(--cs-muted-d) !important; margin-bottom:.5rem; }
.cs-form input[type=text], .cs-form input[type=email], .cs-form input[type=tel], .cs-form textarea{
  width:100%; background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d); border-radius:8px;
  padding:14px 16px; color:var(--cs-paper); font-family:var(--cs-ui); font-size:1rem; transition:border-color .15s; }
.cs-form input::placeholder, .cs-form textarea::placeholder{ color:var(--cs-muted-d); }
.cs-form input:focus, .cs-form textarea:focus{ outline:none; border-color:var(--cs-gold); }
.cs-options{ display:flex; flex-direction:column; gap:12px; }
.cs-option{ display:flex; align-items:flex-start; gap:12px; padding:16px 18px; background:var(--cs-warm-card);
  border:1px solid var(--cs-hairline-d); border-radius:10px; cursor:pointer; transition:border-color .15s, background .15s; }
.cs-option:hover{ border-color:var(--cs-gold); }
.cs-option input{ margin-top:2px; accent-color:var(--cs-gold); flex:none; width:18px; height:18px; }
.cs-option span{ font-family:var(--cs-ui); color:var(--cs-paper); font-size:.98rem; line-height:1.4; }
.cs-option:has(input:checked){ border-color:var(--cs-gold); background:rgba(200,168,75,.08); }
.cs-form-nav{ display:flex; gap:14px; margin-top:2.2rem; }
.cs-form-error{ color:var(--cs-oxblood-tint) !important; font-family:var(--cs-ui); font-size:.92rem; margin-top:1.1rem; }
.cs-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
@media (max-width:560px){
  .cs-form-nav{ flex-direction:column-reverse; }
  .cs-form-nav .cs-btn{ width:100%; text-align:center; }
}

/* ============================================================
   Blog index + archives (home.php / archive.php)
   ============================================================ */

/* category filter chips in the blog hero */
.cs-blog-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:1.8rem; }
.cs-chip{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.1em; font-size:.66rem;
  color:var(--cs-paper) !important; text-decoration:none !important; padding:7px 14px; border-radius:999px;
  border:1px solid var(--cs-hairline-d); background:transparent; transition:border-color .15s, background-color .15s, color .15s; }
.cs-chip:hover{ border-color:var(--cs-gold); color:var(--cs-gold) !important; }
.cs-chip.is-active{ background:var(--cs-gold); border-color:var(--cs-gold); color:var(--cs-ink) !important; }

/* shared card shell */
.cs-post-card{ background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d); border-radius:10px;
  overflow:hidden; transition:border-color .15s, transform .15s; }
.cs-post-card:hover{ border-color:var(--cs-gold); transform:translateY(-3px); }
.cs-post-link{ display:flex; flex-direction:column; height:100%; text-decoration:none !important; color:inherit; }
.cs-post-imgwrap{ position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:#000; }
.cs-post-img{ width:100%; height:100%; object-fit:cover; display:block; }
.cs-post-card:hover .cs-post-img{ transform:scale(1.03); }
.cs-post-img{ transition:transform .25s ease; }

/* on-brand placeholder for posts with no featured image */
.cs-post-img--ph{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem;
  background:radial-gradient(120% 120% at 30% 20%, #1c1916 0%, var(--cs-ink) 70%); }
.cs-ph-mark{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper); font-size:1.15rem; letter-spacing:-.01em; opacity:.92; }
.cs-ph-mark strong{ color:var(--cs-gold); font-weight:600; }
.cs-ph-cat{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.16em; font-size:.6rem; color:var(--cs-muted-d); }

.cs-post-body{ display:flex; flex-direction:column; gap:.55rem; padding:20px 22px 24px; flex:1; }
.cs-post-cat{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.13em; font-size:.62rem; color:var(--cs-gold) !important; }
.cs-post-title{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important; font-size:1.2rem;
  line-height:1.22; margin:0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.cs-post-excerpt{ font-family:var(--cs-ui); color:var(--cs-muted-d); font-size:.9rem; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cs-post-meta{ margin-top:auto; font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.1em;
  font-size:.62rem; color:var(--cs-muted-d); padding-top:.35rem; }

/* the grid of cards */
.cs-post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:1.4rem; }

/* featured (latest) post — large horizontal card */
.cs-post-card--featured{ margin-bottom:8px; }
.cs-post-card--featured .cs-post-link{ flex-direction:row; align-items:stretch; }
.cs-post-card--featured .cs-post-imgwrap{ flex:0 0 56%; aspect-ratio:auto; min-height:340px; }
.cs-post-card--featured .cs-post-body{ justify-content:center; padding:clamp(28px,3vw,48px); gap:.8rem; }
.cs-post-card--featured .cs-post-cat{ font-size:.68rem; }
.cs-post-card--featured .cs-post-title{ font-size:clamp(1.6rem,2.6vw,2.3rem); -webkit-line-clamp:4; }
.cs-post-card--featured .cs-post-excerpt{ font-size:1.02rem; -webkit-line-clamp:3; }

/* pagination */
.cs-pagination{ margin-top:clamp(36px,5vw,56px); }
.cs-pagination .pagination, .cs-pagination .nav-links{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; align-items:center; }
.cs-pagination .page-numbers{ font-family:var(--cs-mono); font-size:.8rem; color:var(--cs-paper) !important;
  text-decoration:none !important; padding:9px 15px; border-radius:8px; border:1px solid var(--cs-hairline-d); background:transparent; }
.cs-pagination a.page-numbers:hover{ border-color:var(--cs-gold); color:var(--cs-gold) !important; }
.cs-pagination .page-numbers.current{ background:var(--cs-gold); border-color:var(--cs-gold); color:var(--cs-ink) !important; }
.cs-pagination .page-numbers.dots{ border-color:transparent; }
.cs-pagination .screen-reader-text{ position:absolute; left:-9999px; }

@media (max-width:880px){
  .cs-post-grid{ grid-template-columns:repeat(2,1fr); }
  .cs-post-card--featured .cs-post-link{ flex-direction:column; }
  .cs-post-card--featured .cs-post-imgwrap{ flex:auto; aspect-ratio:16/9; min-height:0; }
}
@media (max-width:560px){
  .cs-post-grid{ grid-template-columns:1fr; }
}

/* ============================================================
   Single post (single.php) — dark editorial reading layout
   ============================================================ */

.cs-article-col{ max-width:720px; margin-left:auto; margin-right:auto; }

/* masthead */
.cs-article-head{ padding-top:clamp(40px,5vw,72px); }
.cs-article-kicker{ display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-bottom:.4rem; }
.cs-article-kicker a{ color:var(--cs-gold) !important; text-decoration:none !important; }
.cs-article-kicker a:hover{ color:var(--cs-gold-light) !important; }
.cs-kicker-sep{ color:var(--cs-muted-d); }
.cs-article-title{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important;
  font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.08; letter-spacing:-.02em; margin:.5rem 0 1.1rem; }
.cs-article-title em{ font-style:italic; color:var(--cs-gold-light); font-variation-settings:"WONK" 0; }
.cs-article-meta{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.1em; font-size:.66rem; color:var(--cs-muted-d) !important; margin:0; }
.cs-article-hero{ max-width:1000px; margin:clamp(28px,4vw,48px) auto 0; border-radius:12px; overflow:hidden; border:1px solid var(--cs-hairline-d); }
.cs-article-hero img{ display:block; width:100%; height:auto; }

/* reading body */
.cs-article-section{ padding-top:clamp(34px,4vw,52px); padding-bottom:clamp(40px,5vw,72px); }
.cs-article .entry-content{ color:#e7e2d8; font-family:var(--cs-ui); font-size:1.075rem; line-height:1.8; }
.cs-article .entry-content > *:first-child{ margin-top:0; }
.cs-article .entry-content p{ color:#e7e2d8; margin:0 0 1.4em; }
.cs-article .entry-content :is(h2,h3,h4){ font-family:var(--cs-display); color:var(--cs-paper) !important; font-weight:600; line-height:1.22; letter-spacing:-.01em; }
.cs-article .entry-content h2{ font-size:clamp(1.55rem,2.6vw,2.05rem); margin:2.1em 0 .65em; }
.cs-article .entry-content h3{ font-size:1.3rem; margin:1.7em 0 .5em; }
.cs-article .entry-content h4{ font-size:1.08rem; margin:1.5em 0 .5em; }
.cs-article .entry-content a{ color:var(--cs-gold) !important; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.cs-article .entry-content a:hover{ color:var(--cs-gold-light) !important; }
.cs-article .entry-content :is(strong,b){ color:var(--cs-paper); font-weight:600; }
.cs-article .entry-content :is(ul,ol){ margin:0 0 1.4em; padding-left:1.3em; }
.cs-article .entry-content li{ color:#e7e2d8; margin:.45em 0; padding-left:.2em; }
.cs-article .entry-content li::marker{ color:var(--cs-gold); }
.cs-article .entry-content blockquote{ border-left:3px solid var(--cs-gold); margin:1.7em 0; padding:.2em 0 .2em 1.2em;
  font-family:var(--cs-display); font-style:italic; font-size:1.2rem; color:var(--cs-paper); }
.cs-article .entry-content blockquote p{ color:var(--cs-paper); }
.cs-article .entry-content :is(img,figure,.wp-block-image,video){ display:block; max-width:100%; height:auto; margin:1.9em auto; border-radius:10px; }
.cs-article .entry-content figcaption{ font-family:var(--cs-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--cs-muted-d); text-align:center; margin-top:.6em; }
.cs-article .entry-content iframe{ display:block; width:100%; aspect-ratio:16/9; height:auto; margin:1.9em auto; border-radius:10px; border:0; }
.cs-article .entry-content hr{ border:0; height:1px; background:var(--cs-hairline-d); margin:2.4em 0; }
.cs-article .entry-content :is(code,kbd){ font-family:var(--cs-mono); font-size:.92em; background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d); border-radius:5px; padding:.12em .4em; }
.cs-article .entry-content pre{ background:var(--cs-warm-card); border:1px solid var(--cs-hairline-d); border-radius:10px; padding:18px 20px; overflow:auto; margin:1.7em 0; }
.cs-article .entry-content pre code{ background:none; border:0; padding:0; }

/* prev / next */
.cs-article-nav{ padding-bottom:clamp(36px,5vw,60px); }
.cs-article-navgrid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cs-article-navlink{ display:flex; flex-direction:column; gap:.4rem; padding:20px 22px; border:1px solid var(--cs-hairline-d);
  border-radius:10px; background:var(--cs-warm-card); text-decoration:none !important; transition:border-color .15s, transform .15s; }
.cs-article-navlink:hover{ border-color:var(--cs-gold); transform:translateY(-3px); }
.cs-article-navlink--next{ text-align:right; align-items:flex-end; }
.cs-navlabel{ font-family:var(--cs-mono); text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; color:var(--cs-gold) !important; }
.cs-navtitle{ font-family:var(--cs-display); font-weight:600; color:var(--cs-paper) !important; font-size:1.05rem; line-height:1.25;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

@media (max-width:640px){
  .cs-article-navgrid{ grid-template-columns:1fr; }
  .cs-article-navlink--next{ text-align:left; align-items:flex-start; }
}

/* blog hero: allow the intentional 2-line break (overrides the global cs-hero-title br hide) */
#cs-blog .cs-hero-title br{ display:inline; }
