/* ==========================================================================
   AI UNLEASHED ACADEMY — DESIGN SYSTEM
   Single stylesheet for every Academy page (marketing + member portal).

   Source of truth: aiu-academy-MASTER-BRIEF.md
   Palette:  GHL brandkit — Space Blue, Nurture Blue, Background Blue,
             Capture Yellow, Close Green.
   Type:     Space Grotesk (headlines) + Inter (body).

   Every class used on ghl-academy-homepage.html is preserved verbatim, so
   existing markup can be pasted into a new page without edits. Everything
   below "PART 2" is new and exists to build interior pages (course pages,
   shelf hubs, dashboard, verify, login).

   ---------------------------------------------------------------------
   CONTENTS
   PART 1 — FOUNDATION
     01  Tokens
     02  Reset & base
     03  Layout
     04  Typography helpers
     05  Buttons
     06  Tags, pills & badges
   PART 2 — CHROME (on every page)
     07  Top stripe
     08  Nav (desktop + mobile drawer)
     09  Footer
     10  Colorbar
   PART 3 — PAGE HEADS
     11  Hero (marketing)
     12  Page header (interior)
     13  Breadcrumbs
     14  Section head
   PART 4 — MARKETING BLOCKS
     15  Shelves
     16  Steps & moat banner
     17  Access card
     18  Value stack
     19  Price tiers
     20  Path cards
     21  Proof / testimonials
     22  Coach
     23  CTA strip
   PART 5 — ACADEMY BLOCKS (portal)
     24  Course cards
     25  Curriculum / module accordion
     26  Media & video
     27  Progress
     28  Data table
     29  Callouts, alerts & disclosure
     30  FAQ
     31  Forms
     32  Certificate & verify
     33  Empty state
   PART 6 — SYSTEM
     34  Utilities
     35  Responsive
     36  Motion & print
   ========================================================================== */


/* ==========================================================================
   PART 1 — FOUNDATION
   ========================================================================== */

/* 01  TOKENS ------------------------------------------------------------- */
:root{
  /* Brand — do not add colors outside this set without Fer's sign-off */
  --space:#07223D;        /* Space Blue        — primary dark */
  --space-2:#0A2E52;      /* raised surface on dark */
  --space-3:#0E3A66;      /* raised surface, one step further */
  --space-4:#05192D;      /* footer / deepest */
  --blue:#2896FB;         /* Nurture Blue      — accent on dark */
  --blue-bg:#095DC3;      /* Background Blue   — accent on light */
  --yellow:#FFD000;       /* Capture Yellow    — primary CTA */
  --green:#17D94B;        /* Close Green       — success / Go Pro */
  --teal:#20EDF1;         /* reserved */

  /* Neutrals */
  --white:#FFFFFF;
  --paper:#F4F8FD;        /* page background */
  --tint:#E7F3FE;         /* soft blue fill */
  --line:#E1EAF3;         /* border on light */
  --line-2:#EDF2F7;       /* hairline on light */
  --ink-line:rgba(255,255,255,0.10);  /* border on dark */
  --body:#4A5A6B;         /* body copy on light */
  --body-2:#5B6B7B;       /* secondary copy on light */
  --mute:#8FA6BD;         /* tertiary on dark */
  --mute-2:#B9CBDD;       /* secondary on dark */
  --disabled:#A9B7C5;

  /* Type */
  --font-head:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;

  /* Radius */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-2xl:24px; --r-pill:999px;

  /* Elevation */
  --shadow-card:0 40px 80px -50px rgba(7,34,61,0.35);
  --shadow-soft:0 18px 40px -28px rgba(7,34,61,0.30);

  /* Rhythm — section padding. Change here, every page follows. */
  --sec-y:100px;
  --sec-y-sm:64px;

  --ease:cubic-bezier(0.32,0.72,0,1);
}

/* 02  RESET & BASE ------------------------------------------------------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--space);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;letter-spacing:-0.02em;line-height:1.1;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
button{font:inherit;}

/* Visible keyboard focus — required, the homepage has none today. */
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px;}

/* Skip link — first element in <body> on every page. */
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--yellow);color:var(--space);font-weight:700;
  padding:12px 20px;border-radius:0 0 var(--r-sm) 0;
}
.skip:focus{left:0;}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* 03  LAYOUT ------------------------------------------------------------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.wrap.narrow{max-width:860px;}
.wrap.wide{max-width:1320px;}

section{padding:var(--sec-y) 0;}
/* Anchor links land below the sticky nav instead of under it. */
section[id],header[id],div[id]{scroll-margin-top:96px;}
section.tight{padding:var(--sec-y-sm) 0;}
section.flush{padding:0;}

/* Surface variants — put one on any <section> */
.on-dark{background:var(--space);color:#fff;}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:#fff;}
.on-dark p{color:var(--mute-2);}
.on-dark .sec-head .tag{color:var(--yellow);}
.on-paper{background:var(--paper);}
.on-white{background:#fff;}

/* Generic grids */
.grid{display:grid;gap:22px;}
.grid.g2{grid-template-columns:repeat(2,1fr);}
.grid.g3{grid-template-columns:repeat(3,1fr);}
.grid.g4{grid-template-columns:repeat(4,1fr);}

/* 04  TYPOGRAPHY HELPERS ------------------------------------------------- */
.y{color:var(--yellow);}
.b{color:var(--blue);}
.g{color:var(--green);}
.lead{font-size:18px;color:var(--body-2);line-height:1.7;}
.on-dark .lead{color:var(--mute-2);}
.fine-print{font-size:12.5px;line-height:1.6;color:var(--body-2);}

/* Long-form prose — course descriptions, legal pages, lesson notes */
.prose{max-width:70ch;}
.prose p{margin-bottom:18px;font-size:16px;color:var(--body);line-height:1.75;}
.prose h2{font-size:28px;margin:38px 0 14px;}
.prose h3{font-size:21px;margin:30px 0 10px;}
.prose ul,.prose ol{margin:0 0 18px 22px;}
.prose li{margin-bottom:9px;font-size:16px;color:var(--body);}
.prose a{color:var(--blue-bg);font-weight:600;border-bottom:1px solid rgba(9,93,195,0.3);}
.prose a:hover{border-bottom-color:var(--blue-bg);}
.prose blockquote{
  border-left:4px solid var(--yellow);padding:6px 0 6px 20px;margin:0 0 18px;
  font-size:17px;color:var(--space);font-weight:500;
}
.prose code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;
  background:var(--tint);padding:2px 6px;border-radius:5px;color:var(--blue-bg);
}

/* 05  BUTTONS ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--yellow);color:var(--space);
  font-weight:700;font-size:15px;border-radius:10px;padding:14px 26px;
  border:none;cursor:pointer;text-align:center;
  transition:transform .4s var(--ease),background .3s;
}
.btn:hover{transform:translateY(-2px);background:#FFDA33;}
.btn.ghost{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.25);}
.btn.ghost:hover{background:rgba(255,255,255,0.08);}
.btn.ghost-d{background:transparent;color:var(--space);border:1.5px solid #CBD8E5;}
.btn.ghost-d:hover{background:var(--paper);border-color:var(--space);}
.btn.blue{background:var(--blue);color:#fff;}
.btn.blue:hover{background:#3AA2FF;}
.btn.green-btn{background:var(--green);color:#0B3D1B;}
.btn.green-btn:hover{background:#14c443;}
.btn.lg{font-size:16px;padding:16px 32px;}
.btn.sm{font-size:13.5px;padding:10px 18px;border-radius:9px;}
.btn.block{width:100%;}
.btn[disabled],.btn.is-disabled{
  background:var(--line);color:var(--disabled);cursor:not-allowed;
  transform:none;pointer-events:none;
}

/* Text link with a sliding arrow — use <span class="arw">&rarr;</span> inside */
.link-arrow{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;color:var(--blue-bg);}
.on-dark .link-arrow{color:#fff;}
.link-arrow .arw{transition:transform .4s var(--ease);}
.link-arrow:hover .arw{transform:translateX(4px);}

/* 06  TAGS, PILLS & BADGES ----------------------------------------------- */
/* Uppercase eyebrow, used above headings */
.tag{
  font-size:12px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--blue-bg);margin-bottom:14px;
}
.on-dark .tag{color:var(--yellow);}

/* Small status pill */
.pill{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  padding:5px 12px;border-radius:var(--r-pill);
}
.pill.platform{background:rgba(9,93,195,0.10);color:var(--blue-bg);}
.pill.service{background:rgba(255,208,0,0.20);color:#7A6300;}
.pill.new{background:var(--yellow);color:var(--space);}
.pill.done{background:rgba(23,217,75,0.14);color:#0B7A28;}
.pill.locked{background:var(--line);color:#6B7B8B;}
.pill.soon{background:var(--tint);color:var(--blue-bg);}
.on-dark .pill.platform{background:rgba(40,150,251,0.18);color:#9ECBFF;}
.on-dark .pill.service{background:rgba(255,208,0,0.18);color:var(--yellow);}
.on-dark .pill.locked{background:rgba(255,255,255,0.10);color:var(--mute-2);}

/* Green check bullet, used in feature lists */
.ck{
  width:22px;height:22px;border-radius:var(--r-pill);background:var(--green);color:#fff;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;margin-top:1px;
}
.ck.sm{width:20px;height:20px;font-size:12px;}


/* ==========================================================================
   PART 2 — CHROME
   ========================================================================== */

/* 07  TOP STRIPE --------------------------------------------------------- */
.topstripe{display:flex;height:6px;width:100%;position:sticky;top:0;z-index:51;}
.topstripe span{flex:1;}
.topstripe .y{background:var(--yellow);}
.topstripe .b{background:var(--blue);}
.topstripe .g{background:var(--green);}

/* 08  NAV ---------------------------------------------------------------- */
/* Scoped to the site nav — a direct child of <body>. Nested <nav> elements
   (breadcrumbs, in-page menus) must not inherit the sticky white bar. */
body > nav{
  position:sticky;top:6px;z-index:50;
  background:rgba(255,255,255,0.94);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
body > nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .crest{width:40px;height:40px;flex-shrink:0;}
.brand .crest svg,.brand .crest img{width:100%;height:100%;}
.brand-txt{font-family:var(--font-head);color:var(--space);font-weight:700;font-size:19px;letter-spacing:-0.01em;}
.brand-txt span{color:var(--blue-bg);}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{color:#4A5A6B;font-size:14.5px;font-weight:500;transition:color .3s;}
.nav-links a:hover{color:var(--space);}
.nav-links a.is-current{color:var(--space);font-weight:600;}
.nav-cta{display:flex;align-items:center;gap:16px;}
.nav-cta .login{color:var(--space);font-weight:600;font-size:14.5px;}

/* Signed-in avatar chip — swap in for .nav-cta on portal pages */
.nav-user{display:flex;align-items:center;gap:10px;}
.nav-user .av{
  width:36px;height:36px;border-radius:var(--r-pill);background:var(--blue-bg);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-head);font-weight:700;font-size:14px;
}
.nav-user .who{font-size:14px;font-weight:600;color:var(--space);line-height:1.2;}
.nav-user .who small{display:block;font-size:11.5px;font-weight:500;color:#6B7B8B;}

/* Hamburger — hidden on desktop, shown under 900px */
.nav-toggle{
  display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;
  background:#fff;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;
}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--space);border-radius:2px;transition:transform .3s var(--ease),opacity .2s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* Mobile drawer */
.nav-drawer{
  display:none;background:#fff;border-bottom:1px solid var(--line);
  position:sticky;top:78px;z-index:49;
}
.nav-drawer.is-open{display:block;}
.nav-drawer .wrap{flex-direction:column;align-items:stretch;height:auto;padding-top:12px;padding-bottom:20px;gap:2px;display:flex;}
.nav-drawer a{padding:13px 4px;font-size:16px;font-weight:600;color:var(--space);border-bottom:1px solid var(--line-2);}
.nav-drawer a:last-of-type{border-bottom:none;}
.nav-drawer .btn{margin-top:14px;}

/* 09  FOOTER ------------------------------------------------------------- */
footer{background:var(--space-4);color:var(--mute);padding:54px 0 40px;}
footer .wrap{display:flex;flex-direction:column;gap:20px;}
footer .frow{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
footer .brand .brand-txt{font-size:17px;color:#fff;}
footer .brand .brand-txt span{color:var(--blue);}
footer .flinks{display:flex;gap:26px;flex-wrap:wrap;}
footer .flinks a{color:var(--mute-2);font-size:13.5px;}
footer .flinks a:hover{color:#fff;}
footer .fine{
  font-size:12px;line-height:1.7;color:#5B7089;max-width:900px;
  border-top:1px solid rgba(255,255,255,0.06);padding-top:20px;
}
footer .fine + .fine{border-top:none;padding-top:0;margin-top:-8px;}

/* 10  COLORBAR ----------------------------------------------------------- */
/* The three-color rule. Reused as a card top edge, divider, or photo base. */
.colorbar{display:flex;height:8px;}
.colorbar span{flex:1;}
.colorbar .y{background:var(--yellow);}
.colorbar .b{background:var(--blue);}
.colorbar .g{background:var(--green);}
.colorbar.thin{height:6px;}
.colorbar.rounded{border-radius:var(--r-pill);overflow:hidden;}


/* ==========================================================================
   PART 3 — PAGE HEADS
   ========================================================================== */

/* 11  HERO (marketing pages) --------------------------------------------- */
.hero{background:var(--space);color:#fff;position:relative;overflow:hidden;padding:96px 0 110px;}
.hero::before{
  content:'';position:absolute;top:-160px;right:-120px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(40,150,251,0.18),transparent 62%);
}
.hero::after{
  content:'';position:absolute;bottom:-200px;left:-160px;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(23,217,75,0.10),transparent 62%);
}
.hero .wrap{position:relative;z-index:2;text-align:center;}
.kicker{
  display:inline-flex;align-items:center;gap:9px;
  background:rgba(255,255,255,0.06);border:1px solid var(--ink-line);border-radius:var(--r-pill);
  padding:7px 16px;font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--mute-2);margin-bottom:26px;
}
.kicker .dot{width:7px;height:7px;border-radius:var(--r-pill);background:var(--green);}
.hero h1{font-size:clamp(38px,5.6vw,68px);font-weight:800;margin-bottom:22px;}
.hero h1 .y{color:var(--yellow);}
.hero h1 .b{color:var(--blue);}
.hero p{font-size:19px;color:var(--mute-2);font-weight:400;max-width:620px;margin:0 auto 38px;line-height:1.65;}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.hero-note{margin-top:22px;font-size:13.5px;color:var(--mute);}
.hero-stats{
  display:flex;gap:48px;justify-content:center;flex-wrap:wrap;
  margin-top:64px;padding-top:40px;border-top:1px solid var(--ink-line);
}
.hero-stats div{color:var(--mute-2);font-size:13.5px;font-weight:500;}
.hero-stats b{
  font-family:var(--font-head);display:block;font-size:32px;font-weight:700;color:#fff;letter-spacing:-0.02em;
}
.hero-stats b .accent{color:var(--yellow);}

/* Left-aligned split hero variant, for course/shelf landing pages */
.hero.split .wrap{text-align:left;display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;}
.hero.split p{margin-left:0;margin-right:0;}
.hero.split .hero-cta{justify-content:flex-start;}

/* 12  PAGE HEADER (interior pages) --------------------------------------- */
/* Shorter, denser head for portal pages. Same dark surface, less drama. */
.pagehead{background:var(--space);color:#fff;position:relative;overflow:hidden;padding:52px 0 56px;}
.pagehead::before{
  content:'';position:absolute;top:-180px;right:-120px;width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,rgba(40,150,251,0.16),transparent 62%);
}
.pagehead .wrap{position:relative;z-index:2;}
.pagehead .tag{color:var(--yellow);margin-bottom:10px;}
.pagehead h1{font-size:clamp(30px,4.2vw,46px);font-weight:800;margin-bottom:14px;}
.pagehead p{font-size:17px;color:var(--mute-2);max-width:640px;}
.pagehead-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-size:13.5px;color:var(--mute-2);font-weight:500;}
.pagehead-meta span{display:inline-flex;align-items:center;gap:7px;}
.pagehead-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}

/* 13  BREADCRUMBS -------------------------------------------------------- */
.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  font-size:13px;font-weight:500;margin-bottom:18px;
  background:none;border:none;position:static;height:auto;backdrop-filter:none;
}
.crumbs a{color:var(--mute-2);}
.crumbs a:hover{color:#fff;}
.crumbs .sep{color:var(--mute);}
.crumbs [aria-current="page"]{color:#fff;font-weight:600;}
/* On a light surface */
.on-white .crumbs a,.on-paper .crumbs a{color:#6B7B8B;}
.on-white .crumbs a:hover,.on-paper .crumbs a:hover{color:var(--space);}
.on-white .crumbs [aria-current="page"],.on-paper .crumbs [aria-current="page"]{color:var(--space);}

/* 14  SECTION HEAD ------------------------------------------------------- */
.sec-head{text-align:center;max-width:640px;margin:0 auto 56px;}
.sec-head .tag{font-size:12px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--blue-bg);margin-bottom:14px;}
.sec-head h2{font-size:clamp(30px,4vw,44px);color:var(--space);margin-bottom:16px;}
.sec-head p{font-size:17px;color:var(--body-2);font-weight:400;}
.sec-head.left{text-align:left;margin-left:0;max-width:720px;}
.on-dark .sec-head h2{color:#fff;}
.on-dark .sec-head p{color:var(--mute-2);}

/* A head with an action on the right — dashboard row titles */
.row-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
.row-head h3{font-size:23px;color:var(--space);}
.row-head p{font-size:14.5px;color:var(--body-2);margin-top:5px;}


/* ==========================================================================
   PART 4 — MARKETING BLOCKS
   ========================================================================== */

/* 15  SHELVES ------------------------------------------------------------ */
.shelves{padding:var(--sec-y) 0;}
.shelf-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.shelf{
  border-radius:22px;padding:44px 40px;position:relative;overflow:hidden;color:#fff;
  min-height:340px;display:flex;flex-direction:column;transition:transform .5s var(--ease);
}
.shelf:hover{transform:translateY(-6px);}
.shelf.platform{background:var(--space);}
.shelf.service{background:linear-gradient(160deg,var(--blue-bg),var(--space));}
.shelf .shelf-tag{
  display:inline-flex;align-self:flex-start;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;
  padding:6px 13px;border-radius:var(--r-pill);margin-bottom:22px;
}
.shelf.platform .shelf-tag{background:rgba(40,150,251,0.18);color:#9ECBFF;}
.shelf.service .shelf-tag{background:rgba(255,208,0,0.18);color:var(--yellow);}
.shelf h3{font-size:28px;font-weight:800;margin-bottom:14px;}
.shelf p{color:var(--mute-2);font-size:15.5px;font-weight:400;flex:1;line-height:1.6;}
.shelf ul{list-style:none;margin:20px 0 26px;display:flex;flex-wrap:wrap;gap:9px;}
.shelf li{
  font-size:12.5px;font-weight:500;background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.10);border-radius:var(--r-sm);padding:6px 12px;color:var(--mute-2);
}
.shelf .shelf-link{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15px;color:#fff;align-self:flex-start;}
.shelf .shelf-link .arw{transition:transform .4s var(--ease);}
.shelf:hover .shelf-link .arw{transform:translateX(4px);}

/* 16  STEPS & MOAT BANNER ------------------------------------------------ */
.format{background:var(--space);color:#fff;padding:var(--sec-y) 0;}
.format .sec-head h2{color:#fff;}
.format .sec-head .tag{color:var(--yellow);}
.format .sec-head p{color:var(--mute-2);}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.step{background:var(--space-2);border:1px solid var(--ink-line);border-radius:var(--r-lg);padding:30px 24px;position:relative;}
.step .n{font-size:13px;font-weight:700;color:var(--blue);letter-spacing:0.1em;margin-bottom:16px;}
.step h4{font-size:18px;font-weight:700;margin-bottom:10px;}
.step p{font-size:13.5px;color:var(--mute-2);font-weight:400;line-height:1.55;}
.moat-banner{
  margin-top:36px;
  background:linear-gradient(120deg,rgba(255,208,0,0.12),rgba(23,217,75,0.08));
  border:1px solid rgba(255,208,0,0.22);border-radius:var(--r-lg);
  padding:28px 34px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
}
.moat-banner .big{font-size:19px;font-weight:700;color:#fff;flex:1;min-width:260px;}
.moat-banner .big span{color:var(--yellow);}

/* 17  ACCESS CARD -------------------------------------------------------- */
.access{padding:var(--sec-y) 0;}
.access-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-2xl);overflow:hidden;
  display:grid;grid-template-columns:1.1fr 0.9fr;box-shadow:var(--shadow-card);
}
.access-left{padding:52px 48px;}
.access-left .tag{margin-bottom:16px;}
.access-left h2{font-size:34px;color:var(--space);margin-bottom:14px;}
.access-left p{color:var(--body-2);font-size:16px;margin-bottom:26px;}
.access-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.access-list li{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--space);font-weight:500;}
.access-list .ck{width:22px;height:22px;}
.access-right{
  background:var(--space);color:#fff;padding:52px 44px;
  display:flex;flex-direction:column;justify-content:center;text-align:center;
}
.access-right .one{font-size:13px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute-2);margin-bottom:10px;}
.access-right .price{font-family:var(--font-head);font-size:56px;font-weight:700;letter-spacing:-0.03em;line-height:1;}
.access-right .price small{font-size:17px;font-weight:500;color:var(--mute-2);}
.access-right .sub{font-size:14px;color:var(--mute-2);margin:14px 0 28px;}
.access-right .btn{justify-content:center;width:100%;}
.access-right .guarantee{margin-top:18px;font-size:12.5px;color:var(--mute);line-height:1.5;}

/* 18  VALUE STACK -------------------------------------------------------- */
.stack-wrap{display:grid;grid-template-columns:1.15fr 0.85fr;gap:30px;align-items:start;}
.stack-list{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;}
.stack-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line-2);}
.stack-row:last-child{border-bottom:none;}
.stack-row .sr-l{display:flex;flex-direction:column;gap:2px;}
.stack-row .sr-t{font-weight:600;font-size:15px;color:var(--space);font-family:var(--font-head);}
.stack-row .sr-s{font-size:12.5px;color:#6B7B8B;line-height:1.4;}
.stack-row .sr-v{font-family:var(--font-head);font-weight:600;font-size:14px;color:#8A9BAC;white-space:nowrap;}
.stack-total{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--paper);border-top:2px solid var(--space);}
.stack-total .tl{font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--space);}
.stack-total .tv{
  font-family:var(--font-head);font-weight:700;font-size:24px;color:var(--space);
  text-decoration:line-through;text-decoration-color:var(--blue);text-decoration-thickness:2px;
}

/* Single sticky price box (alternative to the 3-tier row) */
.price-box{background:var(--space);color:#fff;border-radius:var(--r-xl);padding:40px 34px;text-align:center;position:sticky;top:100px;}
.price-box .cbar{display:flex;height:6px;border-radius:var(--r-pill);overflow:hidden;margin-bottom:24px;}
.price-box .cbar span{flex:1;}
.price-box .cbar .y{background:var(--yellow);}
.price-box .cbar .b{background:var(--blue);}
.price-box .cbar .g{background:var(--green);}
.price-box .lbl{font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute-2);}
.price-box .strike{font-size:16px;color:var(--mute);text-decoration:line-through;text-decoration-color:var(--blue);margin:14px 0 4px;}
.price-box .big{font-family:var(--font-head);font-size:64px;font-weight:700;letter-spacing:-0.03em;line-height:1;}
.price-box .big small{font-size:18px;font-weight:500;color:var(--mute-2);}
.price-box .orpay{font-size:13.5px;color:var(--mute-2);margin:12px 0 24px;}
.price-box .btn{justify-content:center;width:100%;font-size:16px;}
.price-box .gtee{font-size:12px;color:var(--mute);margin-top:16px;line-height:1.5;}

/* 19  PRICE TIERS -------------------------------------------------------- */
/* Starter / All-Access / Go Pro. Keep these three identical on every page
   that shows the offer — the brief requires one offer everywhere. */
.tier-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;}
.tier-row .ptier{display:flex;flex-direction:column;}
.tier-row .ptier .btn{margin-top:auto;}
.price-tiers{display:flex;flex-direction:column;gap:16px;position:sticky;top:100px;}

.ptier{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;position:relative;}
.ptier.best{background:var(--space);border-color:transparent;color:#fff;padding-top:30px;overflow:hidden;}
.ptier.pro{background:#F3FBF5;border-color:#BEE9C9;}
.ptier .cbar{position:absolute;top:0;left:0;right:0;height:6px;display:flex;}
.ptier .cbar span{flex:1;}
.ptier .cbar .y{background:var(--yellow);}
.ptier .cbar .b{background:var(--blue);}
.ptier .cbar .g{background:var(--green);}
.ptier .ptag{
  display:inline-block;background:var(--yellow);color:var(--space);
  font-size:10.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  padding:4px 11px;border-radius:var(--r-pill);margin-bottom:12px;
}
.ptag.pro-tag{background:var(--green);color:#0B3D1B;}
.ptier .pname{font-family:var(--font-head);font-size:14px;font-weight:600;letter-spacing:0.02em;color:var(--blue-bg);margin-bottom:6px;}
.ptier.best .pname{color:#9ECBFF;}
.ptier.pro .pname{color:var(--green);}
.ptier .pstrike{font-size:13px;color:var(--mute);text-decoration:line-through;text-decoration-color:var(--blue);margin-bottom:2px;}
.ptier.best .pstrike{color:#9ECBFF;text-decoration-color:var(--blue);}
.ptier .pamt{font-family:var(--font-head);font-size:42px;font-weight:700;letter-spacing:-0.02em;line-height:1;color:var(--space);}
.ptier.best .pamt{color:#fff;}
.ptier .pamt.short{font-size:30px;}
.ptier .pamt small{font-size:15px;font-weight:500;color:#8A9BAC;letter-spacing:0;}
.ptier.best .pamt small{color:var(--mute-2);}
.ptier .pdesc{font-size:13px;color:#6B7B8B;margin:8px 0 18px;line-height:1.5;}
.ptier.best .pdesc{color:var(--mute-2);}
.ptier .btn{justify-content:center;width:100%;}
.ptier .psplit{font-size:12px;color:#6B7B8B;margin-top:12px;}
.ptier.best .psplit{color:var(--mute-2);}
.pgtee{font-size:12px;color:#6B7B8B;line-height:1.5;text-align:center;padding:4px 8px;}

/* Included / excluded list inside a tier */
.pincl{list-style:none;margin:4px 0 18px;display:flex;flex-direction:column;gap:9px;}
.pincl li{font-size:13px;font-weight:500;display:flex;gap:9px;align-items:center;line-height:1.3;}
.pincl li::before{
  width:17px;height:17px;border-radius:var(--r-pill);flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;
}
.pincl li.yes{color:var(--space);}
.pincl li.yes::before{content:"\2713";background:var(--green);color:#fff;}
.pincl li.no{color:var(--disabled);}
.pincl li.no::before{content:"\2715";background:var(--line);color:#8A9BAC;}
.ptier.best .pincl li.yes{color:#EAF3FB;}
.ptier.best .pincl li.no{color:#6B8199;}
.ptier.best .pincl li.no::before{background:rgba(255,255,255,0.12);color:#9DB1C5;}

/* 20  PATH CARDS --------------------------------------------------------- */
.path{background:var(--paper);padding:var(--sec-y) 0;}
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px;}
.pcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 30px;}
.pcard .ic{
  width:52px;height:52px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;margin-bottom:20px;color:#fff;font-family:var(--font-head);
}
.pcard.p1 .ic{background:var(--yellow);color:var(--space);}
.pcard.p2 .ic{background:var(--blue);}
.pcard.p3 .ic{background:var(--green);}
.pcard h4{font-size:19px;margin-bottom:10px;color:var(--space);}
.pcard p{font-size:14.5px;color:var(--body-2);font-weight:400;line-height:1.6;}

/* 21  PROOF / TESTIMONIALS ----------------------------------------------- */
.proof{padding:var(--sec-y) 0;background:#fff;}
.proof .band{font-size:12px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue-bg);text-align:center;margin-bottom:10px;}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;}
.tcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 26px;display:flex;flex-direction:column;}
.tcard.feat{grid-column:span 3;background:var(--space);border-color:transparent;}
.tcard.feat p{color:#fff;font-size:19px;line-height:1.6;}
.tcard.feat .who .nm{color:#fff;}
.tcard.feat .who .rl{color:var(--mute-2);}
.tcard .stars{color:var(--yellow);font-size:14px;letter-spacing:2px;margin-bottom:14px;}
.tcard p{font-size:14.5px;color:#3A4A5B;line-height:1.65;flex:1;margin-bottom:20px;}
.tcard .who{display:flex;align-items:center;gap:12px;}
.tcard .who .av{
  width:42px;height:42px;border-radius:var(--r-pill);background:var(--blue-bg);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;
  font-family:var(--font-head);flex-shrink:0;
}
.tcard.feat .who .av{background:var(--blue);}
.tcard .who .nm{font-weight:700;font-size:14.5px;color:var(--space);line-height:1.2;}
.tcard .who .rl{font-size:12.5px;color:#6B7B8B;margin-top:2px;}

/* Honest placeholder — stays until the first cohort produces real wins */
.results-note{
  margin-top:48px;border:1.5px dashed var(--blue);border-radius:var(--r-lg);
  padding:30px 34px;text-align:center;background:rgba(40,150,251,0.04);
}
.results-note .h{font-family:var(--font-head);font-weight:700;font-size:20px;color:var(--space);margin-bottom:8px;}
.results-note p{font-size:14.5px;color:var(--body-2);max-width:560px;margin:0 auto;}

/* 22  COACH -------------------------------------------------------------- */
.coach{background:var(--paper);padding:var(--sec-y) 0;}
.coach-card{
  display:grid;grid-template-columns:0.85fr 1.15fr;gap:0;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-2xl);overflow:hidden;
  box-shadow:0 40px 80px -55px rgba(7,34,61,0.30);
}
.coach-photo{background:var(--space);position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:420px;overflow:hidden;}
.coach-photo::before{
  content:'';position:absolute;top:-120px;right:-100px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle,rgba(40,150,251,0.22),transparent 62%);
}
.coach-photo img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;}
.coach-photo .cbar{position:absolute;bottom:0;left:0;right:0;height:8px;display:flex;z-index:3;}
.coach-photo .cbar span{flex:1;}
.coach-photo .cbar .y{background:var(--yellow);}
.coach-photo .cbar .b{background:var(--blue);}
.coach-photo .cbar .g{background:var(--green);}
.coach-body{padding:52px 50px;}
.coach-body .tag{margin-bottom:14px;}
.coach-body h2{font-size:36px;color:var(--space);margin-bottom:6px;}
.coach-body .role{font-size:15px;font-weight:600;color:var(--blue-bg);margin-bottom:20px;}
.coach-body p{font-size:15.5px;color:var(--body);line-height:1.7;margin-bottom:16px;}
.coach-cred{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;}
.coach-cred li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--space);font-weight:500;line-height:1.4;}
.coach-cred .ck{width:20px;height:20px;font-size:12px;}

/* 23  CTA STRIP ---------------------------------------------------------- */
.cta{background:var(--space);color:#fff;text-align:center;padding:96px 0;position:relative;overflow:hidden;}
.cta::before{
  content:'';position:absolute;top:-140px;left:50%;transform:translateX(-50%);
  width:640px;height:400px;background:radial-gradient(circle,rgba(40,150,251,0.16),transparent 65%);
}
.cta .wrap{position:relative;z-index:2;}
.cta h2{font-size:clamp(30px,4.4vw,48px);font-weight:800;margin-bottom:18px;}
.cta h2 .y{color:var(--yellow);}
.cta p{color:var(--mute-2);font-size:18px;max-width:560px;margin:0 auto 34px;}
.cta .cta-note{font-size:13px;color:var(--mute);margin-top:20px;}


/* ==========================================================================
   PART 5 — ACADEMY BLOCKS (portal / catalog)
   ========================================================================== */

/* 24  COURSE CARDS ------------------------------------------------------- */
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.course-grid.g2{grid-template-columns:repeat(2,1fr);}

.ccard{
  background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
a.ccard:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft);}

/* Thumb — falls back to a branded gradient block when there is no image yet */
.ccard-thumb{
  position:relative;aspect-ratio:16/9;background:linear-gradient(150deg,var(--space-3),var(--space));
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.ccard-thumb img{width:100%;height:100%;object-fit:cover;}
.ccard-thumb .mono{
  font-family:var(--font-head);font-size:34px;font-weight:700;color:rgba(255,255,255,0.22);letter-spacing:-0.02em;
}
.ccard-thumb .cbar{position:absolute;bottom:0;left:0;right:0;height:5px;display:flex;}
.ccard-thumb .cbar span{flex:1;}
.ccard-thumb .cbar .y{background:var(--yellow);}
.ccard-thumb .cbar .b{background:var(--blue);}
.ccard-thumb .cbar .g{background:var(--green);}
.ccard-thumb .corner{position:absolute;top:12px;left:12px;z-index:2;}
.ccard-thumb .corner-r{position:absolute;top:12px;right:12px;z-index:2;}

.ccard-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.ccard-body h3{font-size:18px;color:var(--space);margin-bottom:8px;line-height:1.25;}
.ccard-body p{font-size:13.5px;color:var(--body-2);line-height:1.55;flex:1;margin-bottom:16px;}
.ccard-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.5px;color:#6B7B8B;font-weight:500;margin-bottom:14px;}
.ccard-meta span{display:inline-flex;align-items:center;gap:6px;}
.ccard-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line-2);}

/* Locked state — a course the current tier doesn't include */
.ccard.locked{opacity:0.72;}
.ccard.locked .ccard-thumb::after{content:'';position:absolute;inset:0;background:rgba(7,34,61,0.45);}

/* The assets a Sell-the-Service course ships with — the moat, made visible */
.asset-chips{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;}
.asset-chips li{
  font-size:11.5px;font-weight:600;background:var(--tint);color:var(--blue-bg);
  border-radius:6px;padding:4px 9px;
}

/* 25  CURRICULUM / MODULE ACCORDION -------------------------------------- */
.curriculum{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;}
.module{border-bottom:1px solid var(--line-2);}
.module:last-child{border-bottom:none;}
.module-head{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;align-items:center;gap:16px;padding:20px 24px;transition:background .25s;
}
.module-head:hover{background:var(--paper);}
.module-head .mnum{
  font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:0.1em;
  color:var(--blue-bg);width:74px;flex-shrink:0;text-transform:uppercase;
}
.module-head .mtitle{font-family:var(--font-head);font-size:16.5px;font-weight:700;color:var(--space);flex:1;letter-spacing:-0.01em;}
.module-head .mmeta{font-size:12.5px;color:#6B7B8B;font-weight:500;white-space:nowrap;}
.module-head .chev{transition:transform .35s var(--ease);color:#8A9BAC;font-size:13px;}
.module-head[aria-expanded="true"] .chev{transform:rotate(180deg);}
.module-body{display:none;padding:0 24px 18px 24px;}
.module-head[aria-expanded="true"] + .module-body{display:block;}

/* Module Zero — the commitment contract. Highlighted, never gated. */
.module.zero{background:rgba(255,208,0,0.06);}
.module.zero .mnum{color:#7A6300;}

.lesson-list{list-style:none;display:flex;flex-direction:column;}
.lesson{
  display:flex;align-items:center;gap:14px;padding:12px 0 12px 74px;
  border-top:1px solid var(--line-2);font-size:14.5px;color:var(--space);
}
.lesson:first-child{border-top:none;}
.lesson .lstate{
  width:20px;height:20px;border-radius:var(--r-pill);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
  background:var(--line);color:#8A9BAC;
}
.lesson.done .lstate{background:var(--green);color:#fff;}
.lesson.current .lstate{background:var(--blue);color:#fff;}
.lesson.locked{color:var(--disabled);}
.lesson .ltitle{flex:1;font-weight:500;}
.lesson.current .ltitle{font-weight:700;}
.lesson .ltime{font-size:12.5px;color:#8A9BAC;font-weight:500;}

/* 26  MEDIA & VIDEO ------------------------------------------------------ */
.video{
  position:relative;aspect-ratio:16/9;background:var(--space);border-radius:var(--r-lg);
  overflow:hidden;border:1px solid var(--line);
}
.video iframe,.video video{width:100%;height:100%;border:0;display:block;}
.video .placeholder{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:var(--mute-2);font-size:14px;font-weight:500;
}
.video .play{
  width:66px;height:66px;border-radius:var(--r-pill);background:var(--yellow);color:var(--space);
  display:flex;align-items:center;justify-content:center;font-size:22px;
}
.figure-note{font-size:12.5px;color:#6B7B8B;margin-top:10px;}

/* 27  PROGRESS ----------------------------------------------------------- */
.progress{display:flex;align-items:center;gap:12px;}
.progress .bar{flex:1;height:8px;background:var(--line);border-radius:var(--r-pill);overflow:hidden;}
.progress .bar i{display:block;height:100%;background:var(--green);border-radius:var(--r-pill);transition:width .6s var(--ease);}
.progress .val{font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--space);white-space:nowrap;}
.on-dark .progress .bar{background:rgba(255,255,255,0.14);}
.on-dark .progress .val{color:#fff;}
/* At 80% the Do-the-Work Guarantee threshold is met; at 100% the certificate issues. */
.progress.is-complete .bar i{background:var(--yellow);}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 20px;}
.stat b{font-family:var(--font-head);display:block;font-size:30px;font-weight:700;color:var(--space);letter-spacing:-0.02em;line-height:1.1;}
.stat span{font-size:13px;color:var(--body-2);font-weight:500;}
.on-dark .stat{background:var(--space-2);border-color:var(--ink-line);}
.on-dark .stat b{color:#fff;}
.on-dark .stat span{color:var(--mute-2);}

/* 28  DATA TABLE --------------------------------------------------------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;}
table.data{width:100%;border-collapse:collapse;min-width:560px;}
table.data th{
  text-align:left;font-family:var(--font-head);font-size:12px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;color:#6B7B8B;
  padding:14px 20px;background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap;
}
table.data td{padding:15px 20px;font-size:14.5px;color:var(--space);border-bottom:1px solid var(--line-2);vertical-align:middle;}
table.data tr:last-child td{border-bottom:none;}
table.data tbody tr:hover{background:var(--paper);}
table.data td.num{font-family:var(--font-head);font-weight:600;text-align:right;}

/* 29  CALLOUTS, ALERTS & DISCLOSURE -------------------------------------- */
.callout{
  border-radius:var(--r-lg);padding:20px 24px;display:flex;gap:14px;align-items:flex-start;
  font-size:14.5px;line-height:1.6;
}
.callout .ci{font-size:17px;line-height:1.4;flex-shrink:0;}
.callout .ct{font-weight:700;display:block;margin-bottom:3px;font-family:var(--font-head);}
.callout.info{background:var(--tint);color:#0C3D74;border:1px solid #BEDCF8;}
.callout.success{background:rgba(23,217,75,0.08);color:#0B5B22;border:1px solid #BEE9C9;}
.callout.warn{background:rgba(255,208,0,0.10);color:#6B5500;border:1px solid #F2DE8A;}
.callout.neutral{background:var(--paper);color:var(--space);border:1px solid var(--line);}

/* Affiliate disclosure — REQUIRED anywhere the GHL affiliate link appears.
   Brief §2, Compliance: non-negotiable. */
.disclosure{
  font-size:12.5px;line-height:1.6;color:var(--body-2);
  background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--yellow);
  border-radius:var(--r-sm);padding:14px 18px;
}
.on-dark .disclosure{background:rgba(255,255,255,0.04);border-color:var(--ink-line);border-left-color:var(--yellow);color:var(--mute-2);}

/* No-income-claims line — one per money-making module, per the brief. */
.no-claims{font-size:12px;line-height:1.6;color:#6B7B8B;font-style:normal;margin-top:14px;}

/* 30  FAQ ---------------------------------------------------------------- */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;
  font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--space);letter-spacing:-0.01em;
}
.faq-q .chev{transition:transform .35s var(--ease);color:var(--blue-bg);font-size:14px;flex-shrink:0;}
.faq-q[aria-expanded="true"] .chev{transform:rotate(180deg);}
.faq-a{display:none;padding:0 4px 24px;font-size:15px;color:var(--body);line-height:1.7;max-width:70ch;}
.faq-q[aria-expanded="true"] + .faq-a{display:block;}

/* 31  FORMS -------------------------------------------------------------- */
.form{display:flex;flex-direction:column;gap:18px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:13.5px;font-weight:600;color:var(--space);}
.field .hint{font-size:12.5px;color:#6B7B8B;}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:15px;color:var(--space);
  background:#fff;border:1px solid #CBD8E5;border-radius:10px;padding:13px 15px;
  transition:border-color .25s,box-shadow .25s;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,150,251,0.15);
}
.field input::placeholder,.field textarea::placeholder{color:#9DACBB;}
.field textarea{min-height:120px;resize:vertical;}
.field.error input{border-color:#E0384A;}
.field .err{font-size:12.5px;color:#C22333;font-weight:500;}

.form-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  padding:38px 36px;max-width:440px;margin:0 auto;box-shadow:var(--shadow-soft);
}
.form-card h2{font-size:26px;margin-bottom:8px;}
.form-card > p{font-size:14.5px;color:var(--body-2);margin-bottom:24px;}
.form-foot{font-size:13px;color:var(--body-2);text-align:center;margin-top:18px;}
.form-foot a{color:var(--blue-bg);font-weight:600;}

/* 32  CERTIFICATE & VERIFY ----------------------------------------------- */
/* academy.ferpatel.com/verify — public credential lookup */
.verify-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  overflow:hidden;max-width:620px;margin:0 auto;box-shadow:var(--shadow-soft);
}
.verify-card .colorbar{height:8px;}
.verify-inner{padding:38px 36px;text-align:center;}
.verify-badge{
  width:64px;height:64px;border-radius:var(--r-pill);background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 20px;
}
.verify-card.invalid .verify-badge{background:#E0384A;}
.verify-inner h2{font-size:26px;margin-bottom:8px;}
.verify-inner .sub{font-size:14.5px;color:var(--body-2);margin-bottom:26px;}
.verify-facts{list-style:none;text-align:left;border-top:1px solid var(--line-2);}
.verify-facts li{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line-2);font-size:14.5px;}
.verify-facts .k{color:#6B7B8B;font-weight:500;}
.verify-facts .v{color:var(--space);font-weight:600;font-family:var(--font-head);text-align:right;}
.credential-id{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:0.06em;
  background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:4px 9px;color:var(--space);
}

/* 33  EMPTY STATE -------------------------------------------------------- */
.empty{
  text-align:center;padding:56px 30px;background:#fff;
  border:1.5px dashed #CBD8E5;border-radius:var(--r-lg);
}
.empty .ei{font-size:32px;margin-bottom:14px;opacity:0.5;}
.empty h3{font-size:20px;color:var(--space);margin-bottom:8px;}
.empty p{font-size:14.5px;color:var(--body-2);max-width:420px;margin:0 auto 22px;}


/* ==========================================================================
   PART 6 — SYSTEM
   ========================================================================== */

/* 34  UTILITIES ---------------------------------------------------------- */
.center{text-align:center;}
.left{text-align:left;}
.mt-0{margin-top:0;}   .mt-1{margin-top:8px;}  .mt-2{margin-top:16px;}
.mt-3{margin-top:24px;} .mt-4{margin-top:32px;} .mt-5{margin-top:48px;}
.mb-0{margin-bottom:0;} .mb-1{margin-bottom:8px;} .mb-2{margin-bottom:16px;}
.mb-3{margin-bottom:24px;} .mb-4{margin-bottom:32px;} .mb-5{margin-bottom:48px;}
.mx-auto{margin-left:auto;margin-right:auto;}
.maxw-760{max-width:760px;}
.maxw-640{max-width:640px;}
.flex{display:flex;} .between{justify-content:space-between;}
.items-center{align-items:center;} .gap-2{gap:16px;} .gap-3{gap:24px;}
.wrap-flex{flex-wrap:wrap;}
.hide{display:none !important;}

/* 35  RESPONSIVE --------------------------------------------------------- */
@media(max-width:900px){
  :root{--sec-y:72px;}
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .nav-cta .login{display:none;}

  .grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr;}
  .shelf-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .access-card{grid-template-columns:1fr;}
  .stack-wrap{grid-template-columns:1fr;}
  .price-box,.price-tiers{position:static;}
  .tier-row{grid-template-columns:1fr;}
  .path-grid{grid-template-columns:1fr;}
  .tgrid{grid-template-columns:1fr;}
  .tcard.feat{grid-column:span 1;}
  .coach-card{grid-template-columns:1fr;}
  .coach-photo{min-height:320px;}
  .coach-cred{grid-template-columns:1fr;}
  .course-grid,.course-grid.g2{grid-template-columns:repeat(2,1fr);}
  .stat-row{grid-template-columns:repeat(2,1fr);}
  .hero.split .wrap{grid-template-columns:1fr;gap:36px;}
  .access-left,.coach-body{padding:38px 28px;}
  .access-right{padding:38px 28px;}
}
@media(max-width:560px){
  .steps{grid-template-columns:1fr;}
  .hero-stats{gap:28px;}
  .hero{padding:64px 0 76px;}
  .course-grid,.course-grid.g2{grid-template-columns:1fr;}
  .shelf{padding:34px 26px;}
  .module-head{padding:16px 18px;gap:10px;flex-wrap:wrap;}
  .module-head .mnum{width:auto;}
  .lesson{padding-left:0;}
  .form-card{padding:30px 24px;}
  .verify-inner{padding:30px 24px;}
  /* Full-width CTAs — but never in the nav, where it would break the bar. */
  .hero-cta .btn,.pagehead-actions .btn,.cta .btn,.moat-banner .btn,.empty .btn{width:100%;}
  .hero-cta,.pagehead-actions{width:100%;}
  body > nav .btn{padding:11px 16px;font-size:13.5px;}
  .brand-txt{font-size:17px;}
}

/* 36  MOTION & PRINT ----------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:0.01ms !important;animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}
@media print{
  .topstripe,nav,.nav-drawer,.cta,.skip{display:none !important;}
  body{background:#fff;}
  .hero,.pagehead,.on-dark{background:#fff !important;color:#000 !important;}
  .hero h1,.pagehead h1,.on-dark h2{color:#000 !important;}
  a{color:#000;}
}
