/*
Theme Name: Lead.Sell.Grow.
Theme URI: https://leadsellgrow.com
Author: Lead.Sell.Grow.
Author URI: https://leadsellgrow.com
Description: Custom theme for Lead.Sell.Grow. — a sales and leadership coaching firm. Black-and-red editorial design, fully responsive, with all page copy editable from the WordPress Customizer. No page builder required.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: leadsellgrow
*/

/* ==========================================================================
   DESIGN TOKENS  (ported from the LSG design system)
   ========================================================================== */
:root {
  /* Base palette */
  --color-black: #111111;
  --color-red: #C8102E;
  --color-red-dark: #A00D25;
  --color-white: #FFFFFF;
  --color-gray-100: #F2F2F2;
  --color-gray-200: #D9D9D9;
  --color-gray-500: #767676;
  --color-gray-700: #3D3D3D;

  /* Semantic — text */
  --text-strong: var(--color-black);
  --text-body: var(--color-gray-700);
  --text-muted: var(--color-gray-500);
  --text-inverse: var(--color-white);
  --text-accent: var(--color-red);

  /* Semantic — surfaces */
  --surface-page: var(--color-white);
  --surface-subtle: var(--color-gray-100);
  --surface-card: var(--color-white);
  --surface-inverse: var(--color-black);

  /* Semantic — lines & borders */
  --border-default: var(--color-gray-200);
  --border-strong: var(--color-black);
  --border-accent: var(--color-red);

  /* Interactive */
  --focus-ring: var(--color-red);

  /* Type */
  --font-display: 'Proxima Nova', 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --eyebrow-size: 13px;
  --leading-tight: 1.02;
  --leading-relaxed: 1.65;
  --tracking-display: -0.03em;
  --tracking-eyebrow: 0.16em;

  /* Surfaces */
  --radius: 0;
  --border-width: 1px;
  --border-width-strong: 2px;
  --shadow-card: 0 2px 0 rgba(17, 17, 17, 0.08);
  --ease-out: cubic-bezier(0.2, 0, 0, 1);
  --duration: 180ms;
  --duration-fast: 120ms;

  /* Controls */
  --control-h-sm: 36px;
  --control-h-md: 44px;
  --control-h-lg: 56px;

  /* Layout */
  --container-max: 1200px;
  --container-pad: 24px;
  --section-y: 96px;
}

/* Proxima Nova — used if locally installed (licensed machines); otherwise DM Sans. */
@font-face { font-family: 'Proxima Nova'; font-weight: 600; font-style: normal; font-display: swap;
  src: local('Proxima Nova Semibold'), local('ProximaNova-Semibold'), local('Proxima Nova'); }
@font-face { font-family: 'Proxima Nova'; font-weight: 700; font-style: normal; font-display: swap;
  src: local('Proxima Nova Bold'), local('ProximaNova-Bold'), local('Proxima Nova'); }
@font-face { font-family: 'Proxima Nova'; font-weight: 800; font-style: normal; font-display: swap;
  src: local('Proxima Nova Extrabold'), local('ProximaNova-Extrabld'), local('Proxima Nova Black'), local('Proxima Nova'); }

/* ==========================================================================
   BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; border-radius: 0; }

html, body { margin: 0; }
body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: var(--leading-relaxed);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  color: var(--text-strong);
  letter-spacing: var(--tracking-display);
  line-height: var(--leading-tight);
  font-weight: var(--weight-extrabold);
  margin: 0;
  text-wrap: balance;
}
p { margin: 0; text-wrap: pretty; }
img { max-width: 100%; }
a { color: var(--color-black); text-decoration: none; }
a:hover { color: var(--color-red); }
::selection { background: var(--color-red); color: var(--color-white); }

.lsg-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 1200;
  background: var(--color-black); color: #fff; padding: 12px 18px; font-weight: 700;
}
.lsg-skip-link:focus { left: 8px; top: 8px; color: #fff; }

.lsg-page { min-height: 100vh; display: flex; flex-direction: column; background: var(--surface-page); }
main { flex: 1; }
.lsg-container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.lsg-container--narrow { max-width: 780px; }
.lsg-section { border-bottom: 1px solid var(--border-default); }
.lsg-section--subtle { background: var(--surface-subtle); }
.lsg-section-pad { padding-top: var(--section-y); padding-bottom: var(--section-y); }

/* ==========================================================================
   ELEMENTS — eyebrow, rule, buttons
   ========================================================================== */
.lsg-eyebrow {
  font-family: var(--font-body); font-size: var(--eyebrow-size);
  font-weight: var(--weight-bold); letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--text-accent);
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
}
.lsg-eyebrow__tick { width: 18px; height: 2px; background: currentColor; display: inline-block; }

.lsg-btn {
  font-family: var(--font-body); font-weight: var(--weight-bold); letter-spacing: 0.01em;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: var(--border-width-strong) solid transparent; cursor: pointer; text-align: center;
  white-space: nowrap; text-decoration: none;
  transition: background var(--duration) var(--ease-out), color var(--duration) var(--ease-out),
              border-color var(--duration) var(--ease-out), transform var(--duration-fast) var(--ease-out);
  user-select: none;
}
.lsg-btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.lsg-btn:active { transform: translateY(1px); }
.lsg-btn--sm { height: var(--control-h-sm); padding: 0 16px; font-size: 13px; }
.lsg-btn--md { height: var(--control-h-md); padding: 0 24px; font-size: 15px; }
.lsg-btn--lg { height: var(--control-h-lg); padding: 0 36px; font-size: 17px; }
.lsg-btn--primary { background: var(--color-black); color: #fff; border-color: var(--color-black); }
.lsg-btn--primary:hover { background: var(--color-red); border-color: var(--color-red); color: #fff; }
.lsg-btn--primary:active { background: var(--color-red-dark); border-color: var(--color-red-dark); }
.lsg-btn--secondary { background: transparent; color: var(--color-black); border-color: var(--color-black); }
.lsg-btn--secondary:hover { background: var(--color-black); color: #fff; }
.lsg-btn--block { width: 100%; }
/* Red CTA — the booking button */
.lsg-cta-red { background: var(--color-red); border-color: var(--color-red); color: #fff; }
.lsg-cta-red:hover { background: var(--color-red-dark); border-color: var(--color-red-dark); color: #fff; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.lsg-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(140%) blur(6px);
  -webkit-backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid var(--border-default);
}
.lsg-header__inner {
  max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad);
  min-height: 74px; display: flex; align-items: center; gap: 10px 18px;
}
.lsg-header__logo { display: flex; align-items: center; flex: none; }
.lsg-header__logo img { height: 44px; width: auto; display: block; }
.lsg-nav { display: flex; gap: 0 18px; margin-left: 2px; }
.lsg-nav__item { position: relative; display: flex; align-items: center; justify-content: center; height: 74px; }
.lsg-navlink {
  cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: 0.01em;
  color: var(--text-strong); transition: color 160ms; white-space: nowrap; text-decoration: none;
}
.lsg-navlink:hover { color: var(--color-red); }
.lsg-nav__underline { position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--color-red); }
.lsg-header__actions { margin-left: auto; display: flex; gap: 14px; align-items: center; flex: none; }

/* Hamburger */
.lsg-nav-toggle {
  display: none; margin-left: auto; width: 44px; height: 44px; border: 0; background: transparent;
  cursor: pointer; align-items: center; justify-content: center; flex-direction: column; gap: 5px;
}
.lsg-nav-toggle span { display: block; width: 24px; height: 2px; background: var(--color-black); transition: transform 180ms var(--ease-out), opacity 120ms; }
.lsg-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lsg-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lsg-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.lsg-mobile-nav { display: none; border-top: 1px solid var(--border-default); background: #fff; }
.lsg-mobile-nav.is-open { display: block; }
.lsg-mobile-nav__list { display: flex; flex-direction: column; padding: 8px var(--container-pad) 20px; }
.lsg-mobile-nav__list a { padding: 14px 0; font-size: 16px; font-weight: 700; color: var(--text-strong); border-bottom: 1px solid var(--border-default); }
.lsg-mobile-nav__list a:hover { color: var(--color-red); }
.lsg-mobile-nav .lsg-btn { margin-top: 18px; }

/* ==========================================================================
   HERO (home + inner page heroes)
   ========================================================================== */
.lsg-hero { padding: 104px var(--container-pad) 92px; max-width: var(--container-max); margin: 0 auto; }
.lsg-hero__title { font-size: clamp(46px, 6.4vw, 78px); line-height: 1.0; margin: 0; max-width: 15ch; }
.lsg-hero__subhead { font-size: 20px; line-height: 1.55; max-width: 620px; margin: 28px 0 0; color: var(--text-body); }
.lsg-hero__cta { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }

/* Inner-page hero (needle/about/contact) */
.lsg-pagehero { padding: 96px var(--container-pad) 80px; max-width: var(--container-max); margin: 0 auto; }
.lsg-pagehero__title { font-size: clamp(42px, 5.4vw, 68px); margin: 0; max-width: 16ch; }
.lsg-pagehero__subhead { font-size: 19px; line-height: 1.6; color: var(--text-body); margin: 26px 0 0; max-width: 62ch; }

/* Proof strip */
.lsg-proof {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--border-default);
}
.lsg-proof__item {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em;
  font-size: 17px; color: var(--text-strong);
}
.lsg-proof__dot { color: var(--color-red); font-weight: 800; }

/* ==========================================================================
   SECTION HEADINGS & SHARED
   ========================================================================== */
.lsg-h2 { font-size: clamp(34px, 4vw, 46px); margin: 0; }
.lsg-section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; flex-wrap: wrap; margin-bottom: 44px;
}
.lsg-section-head .lsg-h2 { max-width: 18ch; }

/* Needle cards (home) */
.lsg-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lsg-card { background: var(--surface-card); border: 1px solid var(--border-default); display: flex; flex-direction: column; }
.lsg-needle-card { padding: 32px; cursor: pointer; border-top: 3px solid var(--color-black); transition: border-color 160ms; text-decoration: none; }
.lsg-needle-card:hover { border-top-color: var(--color-red); border-left-color: var(--color-black); border-right-color: var(--color-black); border-bottom-color: var(--color-black); }
.lsg-needle-card h3 { font-size: 23px; margin: 0 0 12px; }
.lsg-needle-card p { font-size: 15.5px; line-height: 1.6; color: var(--text-body); }

/* What drives growth */
.lsg-prose { max-width: 760px; }
.lsg-prose > p { font-size: 17px; line-height: 1.65; color: var(--text-body); margin: 26px 0 0; }
.lsg-prose > p.tight { margin-top: 18px; }
.lsg-prose__quote {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em;
  font-size: clamp(22px, 2.6vw, 30px); line-height: 1.25; color: var(--text-strong);
  margin: 26px 0 0; border-left: 3px solid var(--color-red); padding-left: 22px;
}
.lsg-prose__closer { font-size: 18px; font-style: italic; color: var(--text-strong); margin: 26px 0 0; }

/* Results */
.lsg-results { display: flex; flex-direction: column; margin-top: 32px; }
.lsg-results__row { padding: 28px 0; border-top: 1px solid var(--border-default); }
.lsg-results__row:last-child { border-bottom: 1px solid var(--border-default); }
.lsg-results__row p {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em;
  font-size: clamp(20px, 2.4vw, 26px); line-height: 1.3; color: var(--text-strong); margin: 0;
}
.lsg-results__foot { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; margin-top: 32px; }
.lsg-results__foot p { font-size: 15.5px; font-style: italic; line-height: 1.6; color: var(--text-body); max-width: 62ch; margin: 0; }

/* Who we work with */
.lsg-who { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.lsg-who__col { background: #fff; border: 1px solid var(--border-default); padding: 8px 32px 24px; }
.lsg-who__col--yes { border-top: 3px solid var(--color-red); }
.lsg-who__label { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 22px 0 8px; }
.lsg-who__col--yes .lsg-who__label { color: var(--text-strong); }
.lsg-who__col--no .lsg-who__label { color: var(--text-muted); }
.lsg-who__row { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--border-default); }
.lsg-who__mark { font-weight: 800; font-size: 18px; line-height: 1.4; }
.lsg-who__col--yes .lsg-who__mark { color: var(--color-red); }
.lsg-who__col--no .lsg-who__mark { color: var(--text-muted); }
.lsg-who__row p { font-size: 16px; margin: 0; }
.lsg-who__col--yes .lsg-who__row p { color: var(--text-body); }
.lsg-who__col--no .lsg-who__row p { color: var(--text-muted); }
.lsg-who__closing { font-size: 17px; font-style: italic; color: var(--text-strong); margin: 32px 0 0; }

/* Final CTA band */
.lsg-cta-band { background: var(--color-black); color: #fff; }
.lsg-cta-band__inner {
  max-width: var(--container-max); margin: 0 auto; padding: var(--section-y) var(--container-pad);
  display: flex; align-items: center; justify-content: space-between; gap: 32px 48px; flex-wrap: wrap;
}
.lsg-cta-band__text {
  flex: 1; min-width: min(100%, 480px); max-width: 820px; color: #fff;
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em;
  font-size: clamp(24px, 3vw, 34px); line-height: 1.3; margin: 0;
}
.lsg-cta-band--light { background: var(--surface-page); }
.lsg-cta-band--light .lsg-cta-band__text { color: var(--text-strong); }

/* ==========================================================================
   WHERE WE MOVE THE NEEDLE (page)
   ========================================================================== */
.lsg-needle-list { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.lsg-needle-row {
  display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px;
  padding: 56px 0; border-bottom: 1px solid var(--border-default);
}
.lsg-needle-row__head { display: flex; gap: 20px; align-items: baseline; }
.lsg-needle-row__num { font-family: var(--font-display); font-weight: 800; font-size: 22px; letter-spacing: -0.03em; color: var(--color-red); }
.lsg-needle-row__head h2 { font-size: clamp(26px, 3vw, 34px); margin: 0; }
.lsg-needle-row__body { font-size: 17px; line-height: 1.65; color: var(--text-body); margin: 0; max-width: 62ch; }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.lsg-split { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px; }
.lsg-split--top { align-items: start; }
.lsg-split h2 { font-size: clamp(30px, 3.6vw, 42px); margin: 0; }
.lsg-about-short p { font-size: 18px; line-height: 1.65; color: var(--text-body); margin: 0; }
.lsg-about-short p.lead { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; font-size: 20px; color: var(--text-strong); margin: 22px 0 0; }
.lsg-coaches { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lsg-coach { padding: 36px; }
.lsg-coach__head { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; }
.lsg-coach__photo { background: var(--surface-subtle); border: 1px solid var(--border-default); width: 96px; height: 96px; flex: none; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.lsg-coach__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lsg-coach__photo span { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
.lsg-coach__head h2 { font-size: clamp(26px, 3vw, 34px); margin: 0; }
.lsg-coach p { font-size: 16px; line-height: 1.65; color: var(--text-body); margin: 0; }
.lsg-coach p + p { margin-top: 16px; }
.lsg-why { background: var(--color-black); color: #fff; }
.lsg-why .lsg-split { align-items: start; }
.lsg-why h2 { color: #fff; max-width: 14ch; }
.lsg-why__lead { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; font-size: clamp(22px, 2.6vw, 28px); line-height: 1.3; color: #fff; margin: 0; }
.lsg-why__body p { font-size: 18px; line-height: 1.65; color: var(--color-gray-200); margin: 22px 0 0; }
.lsg-why__body p + p { margin-top: 18px; }

/* ==========================================================================
   BLOG LISTING
   ========================================================================== */
.lsg-blog-head { max-width: 780px; margin: 0 auto; padding: 80px var(--container-pad) 0; }
.lsg-blog-head h1 { font-size: clamp(44px, 6vw, 68px); margin: 18px 0 0; }
.lsg-blog-head__sub { font-size: 18px; color: var(--text-body); margin: 20px 0 0; max-width: 60ch; }
.lsg-filters { display: flex; gap: 8px; margin-top: 34px; border-bottom: 1px solid var(--border-default); flex-wrap: wrap; }
.lsg-filter {
  appearance: none; background: transparent; border: 0; cursor: pointer;
  font-family: var(--font-body); font-size: 14px; font-weight: 700; letter-spacing: 0.01em;
  padding: 12px 16px; margin-bottom: -1px; border-bottom: 2px solid transparent;
  color: var(--text-muted); transition: color 160ms; text-decoration: none;
}
.lsg-filter:hover { color: var(--text-strong); }
.lsg-filter.is-active { border-bottom-color: var(--color-red); color: var(--text-strong); }

.lsg-post-list { max-width: 780px; margin: 0 auto; padding: 8px var(--container-pad) 40px; }
.lsg-post-row { padding: 36px 0; border-bottom: 1px solid var(--border-default); display: block; text-decoration: none; }
.lsg-post-row__cat { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
.lsg-post-row__titlewrap { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.lsg-post-row__title { font-size: 28px; letter-spacing: -0.03em; transition: color 160ms; margin: 0; }
.lsg-post-row:hover .lsg-post-row__title { color: var(--color-red); }
.lsg-badge-new { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; background: var(--color-black); color: #fff; padding: 4px 7px; line-height: 1; }
.lsg-post-row__desc { font-size: 16px; color: var(--text-body); margin-top: 10px; max-width: 62ch; }
.lsg-post-row__meta { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 13px; color: var(--text-muted); }
.lsg-watch { display: inline-flex; align-items: center; gap: 6px; color: var(--text-strong); font-weight: 700; }
.lsg-play { display: inline-block; width: 0; height: 0; border-left: 8px solid var(--color-red); border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.lsg-dot-sep { opacity: 0.5; }

/* Pagination */
.lsg-pagination { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 48px 0 16px; flex-wrap: wrap; }
.lsg-pagination__label { font-size: 13px; color: var(--text-muted); margin-right: 8px; }
.lsg-pag {
  display: inline-flex; align-items: center; justify-content: center; height: 36px; min-width: 36px; padding: 0 10px;
  border: 1px solid var(--border-default); background: transparent; color: var(--text-muted);
  font-family: var(--font-body); font-size: 14px; cursor: pointer; transition: all 160ms; text-decoration: none;
}
.lsg-pag:hover { border-color: var(--color-black); color: var(--color-black); }
.lsg-pag.is-current { background: var(--color-black); color: #fff; font-weight: 700; border-color: var(--color-black); }
/* paginate_links() fallback (archives) */
.lsg-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; height: 36px; min-width: 36px; padding: 0 10px;
  border: 1px solid var(--border-default); background: transparent; color: var(--text-muted);
  font-size: 14px; text-decoration: none; transition: all 160ms;
}
.lsg-pagination .page-numbers:hover { border-color: var(--color-black); color: var(--color-black); }
.lsg-pagination .page-numbers.current { background: var(--color-black); color: #fff; font-weight: 700; border-color: var(--color-black); }

/* ==========================================================================
   SINGLE POST
   ========================================================================== */
.lsg-post-top { max-width: 780px; margin: 0 auto; padding: 56px var(--container-pad) 0; }
.lsg-post-back { cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: 0.01em; color: var(--text-muted); text-decoration: none; }
.lsg-post-back:hover { color: var(--color-red); }
.lsg-video { margin-top: 24px; aspect-ratio: 16 / 9; background: var(--color-black); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; overflow: hidden; }
.lsg-video--embed { display: block; aspect-ratio: auto; background: transparent; }
.lsg-video--embed iframe, .lsg-video--embed .wistia_embed, .lsg-video--embed .wistia_responsive_padding { max-width: 100%; }
.lsg-video__icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border: 2px solid #fff; }
.lsg-video__icon i { display: inline-block; width: 0; height: 0; border-left: 22px solid var(--color-red); border-top: 13px solid transparent; border-bottom: 13px solid transparent; margin-left: 5px; }
.lsg-video__label { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-gray-500); }
.lsg-post-title { font-size: clamp(36px, 4.6vw, 54px); margin: 36px 0 0; }
.lsg-post-meta { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding-bottom: 32px; border-bottom: 1px solid var(--border-default); }
.lsg-post-meta__cat { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-red); }

.lsg-article { max-width: 680px; margin: 0 auto; padding: 40px var(--container-pad) 80px; }
.lsg-article p { font-size: 18px; line-height: 1.7; color: var(--text-body); margin: 22px 0 0; }
.lsg-article > :first-child { margin-top: 0; }
.lsg-article h2, .lsg-article h3 { margin: 40px 0 0; }
.lsg-article ul, .lsg-article ol { font-size: 18px; line-height: 1.7; color: var(--text-body); margin: 22px 0 0; padding-left: 22px; }
.lsg-article img { display: block; margin: 32px 0 0; }
.lsg-article a { color: var(--color-black); font-weight: 700; text-decoration: underline; text-decoration-color: var(--color-red); }
.lsg-article a:hover { color: var(--color-red); }
/* Key takeaway block (shortcode) */
.lsg-takeaway { background: var(--color-black); border-top: 3px solid var(--color-red); padding: 28px 32px; margin: 36px 0; }
.lsg-takeaway__label { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-red); }
.lsg-takeaway__text { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; font-size: 22px; line-height: 1.35; color: #fff; margin: 12px 0 0; }

/* Related */
.lsg-related { border-bottom: 1px solid var(--border-default); }
.lsg-related__inner { max-width: var(--container-max); margin: 0 auto; padding: 80px var(--container-pad) 96px; }
.lsg-related__head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.lsg-related__head h2 { font-size: clamp(28px, 3.2vw, 38px); margin: 0; }
.lsg-related__head a { font-size: 14px; font-weight: 700; color: var(--text-strong); }
.lsg-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lsg-related-card { padding: 28px; cursor: pointer; text-decoration: none; }
.lsg-related-card span.cat { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
.lsg-related-card h3 { font-size: 22px; margin: 12px 0 10px; }
.lsg-related-card p { font-size: 15px; line-height: 1.6; color: var(--text-body); margin: 0 0 18px; }
.lsg-related-card__watch { display: inline-flex; align-items: center; gap: 6px; color: var(--text-strong); font-weight: 700; font-size: 13px; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.lsg-contact { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 64px; align-items: start; }
.lsg-contact__title { font-size: clamp(42px, 5.4vw, 68px); margin: 0; max-width: 12ch; }
.lsg-contact__sub { font-size: 19px; line-height: 1.6; color: var(--text-body); margin: 24px 0 0; max-width: 50ch; }
.lsg-contact__direct { margin-top: 44px; border-top: 2px solid var(--color-black); padding-top: 24px; }
.lsg-contact__direct p { font-size: 16px; line-height: 1.65; color: var(--text-body); margin: 0; }
.lsg-contact__direct p a { font-weight: 700; }
.lsg-contact__direct p.address { font-size: 15px; color: var(--text-muted); margin: 16px 0 0; }
.lsg-contact__direct p.former { margin: 24px 0 0; }
.lsg-form-wrap { border: 1px solid var(--border-default); padding: 36px; background: #fff; }
.lsg-form { display: flex; flex-direction: column; gap: 18px; }
.lsg-field { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-body); }
.lsg-field__label { font-size: 13px; font-weight: 700; color: var(--text-strong); letter-spacing: 0.01em; }
.lsg-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lsg-input {
  font-family: var(--font-body); font-size: 15px; color: var(--text-strong);
  height: var(--control-h-md); padding: 0 14px; background: #fff; border: 1px solid var(--border-default);
  transition: border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out); width: 100%;
}
textarea.lsg-input { height: auto; min-height: 120px; padding: 12px 14px; resize: vertical; line-height: 1.5; }
.lsg-input::placeholder { color: var(--color-gray-500); }
.lsg-input:hover { border-color: var(--color-gray-500); }
.lsg-input:focus { outline: none; border-color: var(--color-black); box-shadow: inset 0 -2px 0 var(--color-red); }
.lsg-form__notice { background: var(--color-black); color: #fff; padding: 16px; border-top: 3px solid var(--color-red); font-size: 15px; }
.lsg-form__notice--error { background: var(--color-red); border-top-color: var(--color-black); }
.lsg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.lsg-footer { background: var(--color-black); color: #fff; }
.lsg-footer__inner { max-width: var(--container-max); margin: 0 auto; padding: 56px var(--container-pad) 40px; }
.lsg-footer__top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; padding-bottom: 32px; border-bottom: 1px solid var(--color-gray-700); }
.lsg-footer__logo { display: flex; align-items: center; }
.lsg-footer__logo img { height: 40px; width: auto; display: block; }
.lsg-footer__links { display: flex; gap: 28px; flex-wrap: wrap; }
.lsg-foot-link { cursor: pointer; font-size: 13px; color: var(--color-gray-200); transition: color 160ms; white-space: nowrap; text-decoration: none; }
.lsg-foot-link:hover { color: #fff; }
.lsg-footer__bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 24px; flex-wrap: wrap; gap: 16px; }
.lsg-footer__bottom span { font-size: 13px; color: var(--color-gray-500); }
.lsg-footer__copy { font-size: 12px; color: var(--color-gray-500); white-space: nowrap; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 960px) {
  .lsg-grid-2, .lsg-who, .lsg-coaches { grid-template-columns: 1fr; }
  .lsg-who { gap: 20px; }
  .lsg-needle-row { grid-template-columns: 1fr; gap: 16px; padding: 44px 0; }
  .lsg-split { grid-template-columns: 1fr; gap: 24px; }
  .lsg-contact { grid-template-columns: 1fr; gap: 40px; }
  .lsg-related__grid { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .lsg-nav, .lsg-header__actions { display: none; }
  .lsg-nav-toggle { display: flex; }
}

@media (max-width: 640px) {
  :root { --section-y: 60px; }
  .lsg-hero { padding: 64px var(--container-pad) 56px; }
  .lsg-pagehero { padding: 60px var(--container-pad) 48px; }
  .lsg-blog-head { padding-top: 56px; }

  /* Proof strip → stacked list */
  .lsg-proof { flex-direction: column; align-items: flex-start; gap: 0; margin-top: 40px; }
  .lsg-proof__dot { display: none; }
  .lsg-proof__item { width: 100%; padding: 14px 0; border-top: 1px solid var(--border-default); font-size: 16px; }

  .lsg-cta-band__inner { flex-direction: column; align-items: flex-start; }
  .lsg-cta-band .lsg-btn { width: 100%; }
  .lsg-results__foot .lsg-btn { width: 100%; }
  .lsg-section-head .lsg-btn { width: 100%; }

  .lsg-needle-card { padding: 24px; }
  .lsg-who__col { padding: 8px 20px 20px; }
  .lsg-coach { padding: 24px; }
  .lsg-form-wrap { padding: 24px; }
  .lsg-field-row { grid-template-columns: 1fr; }
  .lsg-post-row__title { font-size: 24px; }
  .lsg-footer__top, .lsg-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   VIDEO LANDING (3 Videos For You)
   ========================================================================== */
.lsg-btn--inverse { background: transparent; color: #fff; border-color: #fff; }
.lsg-btn--inverse:hover { background: #fff; color: var(--color-black); }
.lsg-vplayer { display: grid; grid-template-columns: 1fr 300px; gap: 20px; align-items: stretch; }
.lsg-vplayer__main { background: var(--color-black); display: flex; flex-direction: column; }
.lsg-vplayer__frame { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; }
.lsg-vplayer__info { padding: 20px 24px 24px; }
.lsg-vplayer__num { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-red); }
.lsg-vplayer__title { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; font-size: 24px; color: #fff; margin: 8px 0 0; }
.lsg-vplayer__desc { font-size: 15px; line-height: 1.6; color: var(--color-gray-200); margin: 8px 0 0; }
.lsg-playlist { display: flex; flex-direction: column; }
.lsg-playlist__label { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 10px; }
.lsg-playlist__items { display: flex; flex-direction: column; gap: 10px; flex: 1; }
.lsg-plitem { background: #fff; border: 1px solid var(--border-default); display: flex; cursor: pointer; text-align: left; padding: 0; flex: 1; font-family: var(--font-body); transition: border-color 160ms; }
.lsg-plitem:hover { border-color: var(--color-black); }
.lsg-plitem.is-active { border-color: var(--color-red); box-shadow: inset 0 0 0 1px var(--color-red); }
.lsg-plitem:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.lsg-plitem__thumb { width: 88px; flex: none; background: var(--color-black); display: flex; align-items: center; justify-content: center; }
.lsg-plitem__body { padding: 12px 14px; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.lsg-plitem__num { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-red); }
.lsg-plitem__title { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; font-size: 15px; color: var(--text-strong); line-height: 1.3; margin-top: 4px; }
.lsg-cta-band__sub { color: var(--color-gray-200); font-size: 17px; line-height: 1.6; margin: 12px 0 0; }
.lsg-cta-band__btns { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 860px) {
  .lsg-vplayer { grid-template-columns: 1fr; }
}
/* Video landing refinements */
.lsg-vplayer { max-width: 1000px; margin: 0 auto; }
.lsg-pagehero--compact { padding-top: 64px; padding-bottom: 48px; }
/* Video landing v2 — player dominates like the original page */
.lsg-vplayer { max-width: 1140px; grid-template-columns: 1fr 280px; }
.lsg-vplayer__info { padding: 18px 22px 22px; }
.lsg-vplayer__title { font-size: 22px; }
.lsg-vplayer__desc { font-size: 14px; }
.lsg-vplayer-section { padding-top: 48px; padding-bottom: 64px; }
.lsg-pagehero--compact { padding-top: 52px; padding-bottom: 40px; }
.lsg-pagehero--compact .lsg-pagehero__title { font-size: clamp(36px, 4.6vw, 54px); }
.lsg-pagehero--compact .lsg-pagehero__subhead { margin-top: 18px; }
/* Needle cards v2 — muted at rest, unmistakable on hover; anchor deep links */
html { scroll-behavior: smooth; }
.lsg-needle-row, #results { scroll-margin-top: 90px; }
.lsg-needle-card { border: 1px solid var(--border-default); border-top: 3px solid var(--color-gray-500); transition: border-color 160ms, box-shadow 160ms, transform 160ms; }
.lsg-needle-card:hover { border-color: var(--color-black); border-top-color: var(--color-red); box-shadow: 0 4px 0 rgba(17, 17, 17, 0.12); transform: translateY(-2px); }
.lsg-needle-card h3 { transition: color 160ms; }
.lsg-needle-card:hover h3 { color: var(--color-red); }
/* Footer contact v2 — email/phone and address stack on mobile */
@media (max-width: 640px) {
  .lsg-footer__contact-line { display: block; }
  .lsg-footer__contact-sep { display: none; }
  .lsg-footer__contact-sep + .lsg-footer__contact-line { margin-top: 6px; }
}
/* Mobile menu CTA — keep the red button white-on-red (menu link styles must not win) */
.lsg-mobile-nav__list a.lsg-btn { color: #fff; padding: 0 36px; border-bottom: none; }
.lsg-mobile-nav__list a.lsg-btn:hover { color: #fff; }
/* Footer contact links — click-to-call / click-to-email, styled for the dark footer */
.lsg-footer__contact a { color: inherit; text-decoration: none; transition: color 160ms; }
.lsg-footer__contact a:hover { color: #fff; }
/* Proof strip mobile v2 — single separator per row, no doubled top line */
@media (max-width: 640px) {
  .lsg-proof { border-top: 0; padding-top: 0; margin-top: 32px; }
}