/* ================================================================
   styles.css — NUP Media Landing Page
   Sections:
     1.  Design Tokens
     2.  Reset & Base
     3.  Layout Utilities
     4.  Typography Utilities
     5.  Buttons
     6.  Scroll Reveal
     7.  NAV
     8.  SECTION 1 — Hero
     9.  SECTION 2 — Pain Points
     10. SECTION 3 — Framework
     11. SECTION 4 — Social Proof / Logo Slider
     12. SECTION 5 — The Audit Call
     13. SECTION 6 — Qualification
     14. SECTION 7 — Booking / Calendly
     15. FOOTER
     16. Responsive
================================================================ */


/* ================================================================
   1. DESIGN TOKENS
================================================================ */

:root {
  /* Brand */
  --color-red:          #E83C34;
  --color-red-hover:    #c9302a;
  --color-navy:         #0C344E;
  --color-navy-mid:     #0e3d5c;

  /* Gradient — navy → red (used on accent elements) */
  --gradient-brand: linear-gradient(135deg, #0C344E 0%, #E83C34 100%);
  --gradient-brand-h: linear-gradient(90deg, #0C344E 0%, #E83C34 100%);

  /* Light surfaces */
  --color-bg:           #FFFFFF;
  --color-bg-alt:       #F0EEEB;   /* matches design spec */
  --color-bg-card:      #FFFFFF;
  --color-surface:      #E8E6E2;

  /* Light borders */
  --color-border:       #D5D2CC;
  --color-border-light: #E8E6E2;

  /* Light text */
  --color-text:         #0C344E;
  --color-text-sec:     #4A4845;   /* darker for better contrast */
  --color-text-mut:     #7A7875;

  /* Typography */
  --font-display: 'Chillax', 'Outfit', sans-serif;
  --font-body:    'Outfit', sans-serif;

  /* Layout */
  --container-max: 1400px;
  --container-pad: 60px;
  --section-gap:   120px;
  --nav-h:         72px;

  /* Radius — pill buttons */
  --radius-pill: 100px;
  --radius-card: 8px;

  /* Motion */
  --tr: 0.3s ease;
}

[data-theme="dark"] {
  --color-bg:           #0a1a26;
  --color-bg-alt:       #0d2133;
  --color-bg-card:      #0f263a;
  --color-surface:      #112d42;
  --color-border:       #1e3d54;
  --color-border-light: #172f44;
  --color-text:         #f0ece4;
  --color-text-sec:     #c0ccd8;  /* bright enough on dark bg */
  --color-text-mut:     #7a9aaa;
}


/* ================================================================
   2. RESET & BASE
================================================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  transition: background var(--tr), color var(--tr);
}

img    { display: block; max-width: 100%; }
a      { text-decoration: none; color: inherit; }
ul     { list-style: none; }
button { cursor: pointer; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: var(--color-text);
}

/* Material Symbols baseline */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
  line-height: 1;
  display: inline-flex;
}


/* ================================================================
   3. LAYOUT UTILITIES
================================================================ */

.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}

.section         { padding: var(--section-gap) 0; transition: background var(--tr); }
.section--white  { background: var(--color-bg); }
.section--alt    { background: var(--color-bg-alt); }
.section--navy   { background: var(--color-navy); color: #fff; }

[data-theme="dark"] .section--navy { background: #091e2e; }

.divider {
  width: 36px;
  height: 2px;
  background: var(--color-red);
  margin-bottom: 40px;
}


/* ================================================================
   4. TYPOGRAPHY UTILITIES
================================================================ */

.eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--color-text-mut);
}

.microcopy {
  font-size: 13px;
  color: var(--color-text-mut);
}

/* Animated red underline on section titles */
.underline-anim {
  background-image: linear-gradient(var(--color-red), var(--color-red));
  background-size: 0% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  padding-bottom: 2px;
  transition: background-size 0.6s ease 0.15s;
}
.rv.on .underline-anim { background-size: 100% 2px; }

.bullet-dot {
  width: 5px;
  height: 5px;
  min-width: 5px;
  border-radius: 50%;
  background: var(--color-red);
  margin-top: 9px;
}

/* White text helpers for dark section bodies */
.text-white        { color: #fff !important; }
.text-white-muted  { color: rgba(255,255,255,0.7) !important; }
.text-white-faint  { color: rgba(255,255,255,0.45) !important; }


/* ================================================================
   5. BUTTONS — all pill-shaped (border-radius: 100px)
================================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--radius-pill);
  border: none;
  white-space: nowrap;
  transition: all 0.22s ease;
  cursor: pointer;
}

/* Primary — red fill */
.btn--red {
  background: var(--color-red);
  color: #fff;
  padding: 16px 32px;
}
.btn--red:hover {
  background: var(--color-red-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(232, 60, 52, 0.3);
}

/* Outline — light bg sections */
.btn--outline {
  background: transparent;
  color: var(--color-text);
  padding: 15px 31px;
  border: 1.5px solid var(--color-border);
}
.btn--outline:hover {
  border-color: var(--color-navy);
  color: var(--color-navy);
  transform: translateY(-2px);
}

/* Dark mode override — white outline + white text on hover */
[data-theme="dark"] .btn--outline {
  color: var(--color-text);
  border-color: var(--color-border);
}
[data-theme="dark"] .btn--outline:hover {
  border-color: #fff;
  color: #fff;
  background: transparent;
}

/* Outline navy — framework section on light bg */
.btn--outline-navy {
  background: transparent;
  color: var(--color-navy);
  padding: 15px 31px;
  border: 1.5px solid var(--color-navy);
}
.btn--outline-navy:hover {
  background: var(--color-navy);
  color: #fff;
  transform: translateY(-2px);
}
[data-theme="dark"] .btn--outline-navy {
  color: var(--color-text);
  border-color: var(--color-text);
}
[data-theme="dark"] .btn--outline-navy:hover {
  background: var(--color-text);
  color: var(--color-bg);
}

/* Ghost white — navy bg sections */
.btn--ghost-white {
  background: transparent;
  color: #fff;
  padding: 15px 31px;
  border: 1.5px solid rgba(255,255,255,0.35);
}
.btn--ghost-white:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.7);
  transform: translateY(-2px);
}

/* Gradient button — accent usage */
.btn--gradient {
  background: var(--gradient-brand-h);
  color: #fff;
  padding: 16px 32px;
  border: none;
}
.btn--gradient:hover {
  opacity: 0.9;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(232,60,52,0.25);
}

/* Icon inside button */
.btn__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}
.btn__icon-material { font-size: 18px; color: #fff; }


/* ================================================================
   6. SCROLL REVEAL
================================================================ */

.rv {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.rv.rv--d1 { transition-delay: 0.08s; }
.rv.rv--d2 { transition-delay: 0.16s; }
.rv.rv--d3 { transition-delay: 0.24s; }
.rv.rv--d4 { transition-delay: 0.32s; }
.rv.on     { opacity: 1; transform: translateY(0); }


/* ================================================================
   7. NAV
   Light mode: white bg, navy logo, navy links, navy icons
   Dark mode:  navy bg, light logo, white links, white icons
================================================================ */

.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  transition: background var(--tr), box-shadow var(--tr);
}

/* ── Light mode nav ── */
[data-theme="light"] .nav {
  background: #ffffff;
  box-shadow: 0 1px 0 var(--color-border-light);
}

/* ── Dark mode nav ── */
[data-theme="dark"] .nav {
  background: #091e2e;
  box-shadow: 0 1px 0 rgba(255,255,255,0.06);
}

/* Scrolled: add blur on both modes */
[data-theme="light"] .nav.scrolled {
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(12px);
}
[data-theme="dark"] .nav.scrolled {
  background: rgba(9, 30, 46, 0.97);
  backdrop-filter: blur(12px);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

/* ── Logo ──
   Light mode → show dark logo (navy/colored)
   Dark mode  → show light logo (white/bright)  */
.nav__logo { display: flex; align-items: center; flex-shrink: 0; }

.nav__logo-img { display: none; }

/* Light mode: dark logo */
[data-theme="light"] .nav__logo-img--dark  { display: block; }
[data-theme="light"] .nav__logo-img--light { display: none; }

/* Dark mode: light logo */
[data-theme="dark"]  .nav__logo-img--light { display: block; }
[data-theme="dark"]  .nav__logo-img--dark  { display: none; }

/* ── Center links ── */
.nav__links {
  display: flex;
  gap: 36px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.nav__links a {
  font-size: 14px;
  font-weight: 500;
  transition: color 0.2s;
}

/* Light: navy links */
[data-theme="light"] .nav__links a       { color: var(--color-navy); }
[data-theme="light"] .nav__links a:hover { color: var(--color-red); }

/* Dark: white links */
[data-theme="dark"]  .nav__links a       { color: rgba(255,255,255,0.75); }
[data-theme="dark"]  .nav__links a:hover { color: #fff; }

/* ── Right cluster ── */
.nav__right {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ── Social icon links ── */
.nav__socials {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-right: 8px;
}

.nav__social-link {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.nav__social-link .material-symbols-outlined { font-size: 18px; }
.nav__social-svg { width: 16px; height: 16px; fill: currentColor; }

/* Light: navy border + navy icon */
[data-theme="light"] .nav__social-link {
  border: 1.5px solid var(--color-border);
  color: var(--color-navy);
}
[data-theme="light"] .nav__social-link:hover {
  border-color: var(--color-navy);
  background: var(--color-surface);
}

/* Dark: white border + white icon */
[data-theme="dark"] .nav__social-link {
  border: 1.5px solid rgba(255,255,255,0.22);
  color: rgba(255,255,255,0.75);
}
[data-theme="dark"] .nav__social-link:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255,255,255,0.1);
}

/* ── Theme toggle pill ── */
.theme-toggle {
  width: 52px; height: 28px;
  border-radius: 14px;
  position: relative;
  flex-shrink: 0;
  transition: border-color 0.2s, background var(--tr);
}

/* Light: light grey pill */
[data-theme="light"] .theme-toggle {
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
}
[data-theme="light"] .theme-toggle:hover { border-color: var(--color-navy); }

/* Dark: translucent white pill */
[data-theme="dark"] .theme-toggle {
  background: rgba(255,255,255,0.1);
  border: 1.5px solid rgba(255,255,255,0.25);
}
[data-theme="dark"] .theme-toggle:hover {
  border-color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.15);
}

.theme-toggle__knob {
  position: absolute;
  top: 3px; left: 3px;
  width: 20px; height: 20px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.28s cubic-bezier(0.4,0,0.2,1), background var(--tr);
}

/* Light: navy knob (sun icon is white) */
[data-theme="light"] .theme-toggle__knob { background: var(--color-navy); }
[data-theme="light"] .theme-toggle__icon { font-size: 13px; color: #fff; }

/* Dark: light knob slid right (moon icon is navy) */
[data-theme="dark"] .theme-toggle__knob {
  transform: translateX(24px);
  background: #e8e4dc;
}
[data-theme="dark"] .theme-toggle__icon { font-size: 13px; color: var(--color-navy); }

/* ── Hamburger ── */
.nav__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 4px;
  margin-left: 6px;
}
.nav__hamburger span {
  width: 22px; height: 1.5px;
  border-radius: 2px;
  transition: all 0.25s ease;
}

[data-theme="light"] .nav__hamburger span { background: var(--color-navy); }
[data-theme="dark"]  .nav__hamburger span { background: #fff; }

/* Mobile drawer */
.mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 190;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  opacity: 0;
  transition: opacity 0.3s ease, background var(--tr);
}
.mobile-menu.open { display: flex; opacity: 1; }

[data-theme="light"] .mobile-menu { background: #fff; }
[data-theme="dark"]  .mobile-menu { background: #091e2e; }

.mobile-menu__link {
  font-family: var(--font-display);
  font-size: 28px; font-weight: 600;
  letter-spacing: -0.02em;
}
[data-theme="light"] .mobile-menu__link { color: var(--color-navy); }
[data-theme="dark"]  .mobile-menu__link { color: #fff; }

.mobile-menu__cta { margin-top: 8px; font-size: 15px; padding: 16px 36px; }

.mobile-menu__close {
  position: absolute; top: 24px; right: 24px;
  background: none; border: none;
  font-size: 24px;
  display: flex; align-items: center; justify-content: center;
}
[data-theme="light"] .mobile-menu__close { color: var(--color-text-sec); }
[data-theme="dark"]  .mobile-menu__close { color: rgba(255,255,255,0.6); }


/* ================================================================
   8. SECTION 1 — HERO
   Right column removed: content is left-only, bg image handles right
================================================================ */

.hero {
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding-top: var(--nav-h);
  position: relative;
  overflow: hidden;
  background-color: #FFFFFF;
  background-image: url('assets/banner_light.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transition: background-color var(--tr);
}

[data-theme="dark"] .hero {
  background-image: url('assets/banner_dark.png');
  background-color: var(--color-bg);
}

/* Two-column: content left, decorative spacer right */
.hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 80px 0;
}

.hero__visual { /* empty — background shows through */ }

/* Right column: bullets + CTA */
.hero__aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

/* Eyebrow */
.hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}
.hero__eyebrow-line {
  width: 28px; height: 1.5px;
  background: var(--color-red);
}

/* Headline */
.hero__headline {
  font-size: clamp(40px, 5.5vw, 70px);
  line-height: 1.04;
}
.hero__headline em { font-style: normal; color: var(--color-red); }

/* Bullets */
.hero__bullets {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.hero__bullet {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 16px;
  color: var(--color-text-sec);
  line-height: 1.5;
}

/* CTA group */
.hero__cta {
  margin-top: 44px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}


/* ================================================================
   9. SECTION 2 — PAIN POINTS
   Icon bg is navy so icon is always visible over light card
================================================================ */

.pain__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.pain__headline {
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1.1;
}
.pain__headline em { font-style: normal; color: var(--color-red); }

.pain__body {
  margin-top: 24px;
  font-size: 16px; line-height: 1.75;
  color: var(--color-text-sec);
}
.pain__body strong { color: var(--color-text); font-weight: 600; }

.pain__quotes { display: flex; flex-direction: column; gap: 10px; }

.pain__quote {
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-card);
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  cursor: default;
  transition: border-color 0.2s, transform 0.2s, background var(--tr);
}
.pain__quote:hover {
  border-color: var(--color-navy);
  transform: translateX(5px);
}
[data-theme="dark"] .pain__quote:hover { border-color: var(--color-red); }

/* Icon box — navy bg so svg/img is always readable */
.pain__quote-icon {
  width: 38px; height: 38px; min-width: 38px;
  background: var(--color-navy);
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background var(--tr);
}
[data-theme="dark"] .pain__quote-icon { background: var(--color-surface); }

.pain__quote-icon img {
  width: 18px; height: 18px;
  filter: brightness(0) invert(1); /* white icon on dark bg */
}
.pain__quote-icon .material-symbols-outlined {
  font-size: 18px;
  color: #fff;
}

.pain__quote p {
  font-size: 15px; font-weight: 500;
  color: var(--color-text); line-height: 1.4;
}

.pain__quote-cta {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--color-border-light);
}


/* ================================================================
   10. SECTION 3 — FRAMEWORK
   Light bg = --color-bg-alt (#F0EEEB)
   Cards: white with full images, no step numbers
   Dark mode: cards use red-tinted bg
================================================================ */

.framework {
  background: var(--color-bg-alt);
  transition: background var(--tr);
}
[data-theme="dark"] .framework { background: #091e2e; }

.framework__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 52px;
}

.framework__headline {
  font-size: clamp(30px, 3.8vw, 46px);
  color: var(--color-navy);
}
[data-theme="dark"] .framework__headline { color: #fff; }

.framework__headline em { font-style: normal; color: var(--color-red); }

.framework__intro {
  font-size: 16px; line-height: 1.75;
  color: var(--color-text-sec);
}
[data-theme="dark"] .framework__intro { color: rgba(255,255,255,0.65); }

/* Three-column step cards */
.framework__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.framework__step {
  background: var(--color-bg-card);
  border-radius: var(--radius-card);
  overflow: hidden;
  position: relative;
  transition: background 0.22s, transform 0.22s, box-shadow 0.22s;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
[data-theme="dark"] .framework__step {
  /* Red-tinted card in dark mode */
  background: #0C344E;
  border: 1px solid #0C344E;
}

/* Bottom accent line on hover */
.framework__step::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 3px;
  background: var(--gradient-brand-h);
  transition: width 0.35s ease;
}
.framework__step:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,0.12); }
.framework__step:hover::after { width: 100%; }

/* Image — full width, no crop (contain so image shows completely) */
.framework__step-image {
  width: 100%;
  background: var(white);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}
[data-theme="dark"] .framework__step-image { background: white; }

.framework__step-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transition: transform 0.4s ease;
}
.framework__step:hover .framework__step-image img { transform: scale(1.02); }

/* Text area */
.framework__step-body-wrap { padding: 24px 28px 32px; }

.framework__step-title {
  font-size: 20px;
  color: var(--color-navy);
  margin-bottom: 10px;
}
[data-theme="dark"] .framework__step-title { color: #fff; }

.framework__step-body {
  font-size: 14px; line-height: 1.7;
  color: var(--color-text-sec);
}
[data-theme="dark"] .framework__step-body { color: rgba(255,255,255,0.6); }

.framework__cta { margin-top: 52px; display: flex; justify-content: center; }


/* ================================================================
   11. SECTION 4 — SOCIAL PROOF / LOGO SLIDER
   - No border on track container
   - Larger logos
   - Prev/next buttons vertically centered
   - Correct logo per theme (dark logos on light bg, light on dark)
================================================================ */

.proof__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  margin-bottom: 48px;
}

.proof__headline { font-size: clamp(24px, 3vw, 38px); }
.proof__headline em { font-style: normal; color: var(--color-red); }
.proof__intro { font-size: 15px; line-height: 1.7; color: var(--color-text-sec); }

/* Slider wrapper */
.proof__slider {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* Prev / next buttons — vertically centered */
.proof__slider-btn {
  width: 44px; height: 44px; min-width: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--color-border);
  background: var(--color-bg-card);
  color: var(--color-text);
  display: flex; align-items: center; justify-content: center;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
  flex-shrink: 0;
  align-self: center;  /* vertically center vs track */
}
.proof__slider-btn:hover {
  border-color: var(--color-navy);
  background: var(--color-navy);
  color: #fff;
}
.proof__slider-btn .material-symbols-outlined { font-size: 18px; }

/* Track wrapper — NO border */
.proof__slider-track-wrap {
  flex: 1;
  overflow: hidden;
}

/* Inner track */
.proof__slider-track {
  display: flex;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Each slide */
.proof__slide {
  min-width: 25%;
  padding: 24px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Logos — larger, full opacity, colored (not greyscale) */
.proof__slide img {
  max-height: 150px;   /* bigger than before (was 40px) */
  max-width: 200px;
  object-fit: contain;
  opacity: 1;
  filter: none;
  transition: transform 0.22s;
}
.proof__slide:hover img { transform: scale(1.05); }

/* Theme: dark logos on light bg (light mode), light logos on dark bg (dark mode) */
.proof__logo-light { display: none; }   /* light (white) logos: hidden in light mode */
.proof__logo-dark  { display: block; }  /* dark logos: shown in light mode */
[data-theme="dark"] .proof__logo-light { display: block; }  /* white logos: shown in dark mode */
[data-theme="dark"] .proof__logo-dark  { display: none; }   /* dark logos: hidden in dark mode */


/* ================================================================
   12. SECTION 5 — THE AUDIT CALL
   Bullet rows use gradient bg (navy → red)
   Check icon replaces asset icons
================================================================ */

.audit__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.audit__headline { font-size: clamp(26px, 3.2vw, 40px); margin-bottom: 22px; }

/* On white bg, body text needs good contrast */
.audit__body {
  font-size: 16px; line-height: 1.75;
  color: var(--color-text-sec);
  margin-bottom: 12px;
}
.audit__note {
  font-size: 14px;
  color: var(--color-text-mut);
  margin-top: 20px;
}
.audit__cta { margin-top: 28px; }

/* Bullet list */
.audit__bullets { display: flex; flex-direction: column; gap: 8px; }

.audit__bullet {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 24px;
  /* Gradient background: navy → red */
  background: linear-gradient(135deg, var(--color-navy) 0%, #1a4a6a 60%, #8c2920 100%);
  border-radius: var(--radius-card);
  transition: opacity 0.22s, transform 0.22s;
}
.audit__bullet:hover {
  opacity: 0.92;
  transform: translateX(4px);
}

/* Check circle */
.audit__bullet-check {
  width: 22px; height: 22px; min-width: 22px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.5);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.audit__bullet-check::after {
  content: '';
  width: 8px; height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.audit__bullet p {
  font-size: 15px; font-weight: 500;
  color: #fff;
}


/* ================================================================
   13. SECTION 6 — QUALIFICATION
   Uses asset icons (assets/icon/icon_1…4.svg)
================================================================ */

.qualification__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 40px;
}
.qualification__headline { font-size: clamp(28px, 3.5vw, 44px); }
.qualification__disclaimer {
  font-size: 15px; line-height: 1.7;
  color: var(--color-text-mut);
}

.qualification__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.qualification__card {
  padding: 26px 28px;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-card);
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--color-bg-card);
  transition: border-color 0.2s, transform 0.22s, box-shadow 0.22s, background var(--tr);
}
.qualification__card:hover {
  border-color: var(--color-navy);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(12,52,78,0.1);
}

.qualification__card-icon {
  width: 44px; height: 44px; min-width: 44px;
  background: var(--color-surface);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background var(--tr);
}
/* Asset icons — tinted navy */
.qualification__card-icon img {
  width: 22px; height: 22px;
  /* attempt to tint navy; if svg has no fill, this colors it */
  filter:  brightness(100%);
}
[data-theme="dark"] .qualification__card-icon img {
  filter: brightness(0) invert(1) opacity(1);
}

.qualification__card p {
  font-size: 15px; font-weight: 500;
  color: var(--color-text); line-height: 1.4;
}


/* ================================================================
   14. SECTION 7 — BOOKING / CALENDLY
   All text white — no grey on dark bg
================================================================ */

.booking { padding: var(--section-gap) 0; }

.booking__grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 80px;
  align-items: start;
}

.booking__headline {
  font-size: clamp(34px, 4.6vw, 56px);
  color: #fff;
  line-height: 1.06;
  margin-bottom: 24px;
}
.booking__headline em { font-style: normal; color: var(--color-red); }

/* White body text — not grey — on navy background */
.booking__body {
  font-size: 16px; line-height: 1.75;
  color: rgba(255,255,255,0.85);
  margin-bottom: 12px;
}
.booking__microcopy {
  display: block;
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  margin-top: 16px;
}

/* Gradient accent on the divider in this section */
.booking .divider {
  background: linear-gradient(90deg, var(--color-red), var(--color-navy));
  width: 60px;
  height: 3px;
}

.booking__calendly {
  background: var(--color-bg);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.35);
  transition: background var(--tr);
}


/* ================================================================
   15. FOOTER
   Always dark background — always use dark logo (shows white logo)
   All text white, LinkedIn uses real brand SVG
================================================================ */

.footer {
  background: #060f17;
  padding: 40px 0;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}

.footer__logo { display: flex; align-items: center; }

/* Footer always shows the dark-theme logo (white/light version) */
.footer__logo img { display: block; }

.footer__right {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.footer__socials { display: flex; gap: 8px; }

.footer__social-link {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.18);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.65);
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.footer__social-link:hover {
  border-color: rgba(255,255,255,0.55);
  color: #fff;
  background: rgba(255,255,255,0.08);
}
.footer__social-link .material-symbols-outlined { font-size: 18px; }
.footer__social-svg {
  width: 16px; height: 16px;
  fill: currentColor;
}

.footer__copy {
  font-size: 12px;
  color: rgba(255,255,255,0.28);
}


/* ================================================================
   16. RESPONSIVE
================================================================ */

@media (max-width: 1024px) {
  :root { --container-pad: 40px; }
}

@media (max-width: 900px) {
  /* Nav */
  .nav__links   { display: none; }
  .nav__socials { display: none; }
  .nav__hamburger { display: flex; }

  /* Hero: stack columns on mobile */
  .hero__grid { grid-template-columns: 1fr; gap: 32px; padding: 48px 0 60px; }
  .hero__visual { display: none; }
  .hero__aside  { padding-top: 0; }

  /* Pain */
  .pain__grid { grid-template-columns: 1fr; gap: 40px; }

  /* Framework */
  .framework__header { grid-template-columns: 1fr; gap: 24px; margin-bottom: 36px; }
  .framework__steps  { grid-template-columns: 1fr; gap: 12px; }

  /* Proof: 2 logos visible */
  .proof__slide  { min-width: 50%; }
  .proof__header { grid-template-columns: 1fr; gap: 20px; }

  /* Audit */
  .audit__grid { grid-template-columns: 1fr; gap: 40px; }

  /* Qualification */
  .qualification__header { grid-template-columns: 1fr; gap: 16px; }
  .qualification__grid   { grid-template-columns: 1fr; }

  /* Booking */
  .booking__grid { grid-template-columns: 1fr; gap: 48px; }

  /* Footer */
  .footer__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 640px) {
  :root {
    --container-pad: 24px;
    --section-gap:   72px;
  }
  .proof__slide { min-width: 100%; }
}
