/* /coaching/demo/football-education/ — the deep demo.
 *
 * A whole coach-education business: catalogue, course detail, blog, members
 * area, contact. Eight page types, one stylesheet, and its own design system
 * — navy, gold and Archivo Black, the "academy" identity from demo.css taken
 * further than a single page needed.
 *
 * It does not load demo.css. The font faces are duplicated below rather than
 * @import-ed, because an @import is a second blocking request on a page whose
 * whole argument is that we build fast sites.
 *
 * Constraints, as everywhere on this site: CSP is `default-src 'none';
 * style-src 'self'; font-src 'self'`. No inline styles, no CDN, no external
 * font, no JavaScript and no images — every visual below is drawn with CSS.
 */

@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-400-latin.cd56e2ec63d7.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-400-latin-ext.c5e41aa17045.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-500-latin.cd56e2ec63d7.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-500-latin-ext.c5e41aa17045.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-600-latin.cd56e2ec63d7.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-600-latin-ext.c5e41aa17045.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-700-latin.cd56e2ec63d7.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo"; src: url("/static/fonts/Archivo-700-latin-ext.c5e41aa17045.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "ArchivoBlack"; src: url("/static/fonts/ArchivoBlack-400-latin.4b6914a69e6a.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "ArchivoBlack"; src: url("/static/fonts/ArchivoBlack-400-latin-ext.72199f7efe25.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Anton"; src: url("/static/fonts/Anton-400-latin.912c3c9f2621.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Anton"; src: url("/static/fonts/Anton-400-latin-ext.ab8365836d69.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-400-latin.e4c9b081863a.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-400-latin-ext.d0a5d26ee7e7.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-500-latin.e4c9b081863a.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-500-latin-ext.d0a5d26ee7e7.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-600-latin.e4c9b081863a.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-600-latin-ext.d0a5d26ee7e7.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-700-latin.e4c9b081863a.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PublicSans"; src: url("/static/fonts/PublicSans-700-latin-ext.d0a5d26ee7e7.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-400-latin.79936b18df9f.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-400-latin-ext.8450d5944de2.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-500-latin.b1c8a895f5fd.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-500-latin-ext.fa8d8838b94a.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-600-latin.5a2ce7798732.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "PlexMono"; src: url("/static/fonts/IBMPlexMono-600-latin-ext.f2fe87d55f72.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Plex"; src: url("/static/fonts/plex-latin-400.4767e1197706.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-052F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2190-21FF;
}
@font-face {
  font-family: "Plex"; src: url("/static/fonts/plex-latin-500.80ebc672c915.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-052F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2190-21FF;
}
@font-face {
  font-family: "Plex"; src: url("/static/fonts/plex-latin-600.f417eeb0d15e.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0000-052F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2190-21FF;
}
@font-face {
  font-family: "Plex"; src: url("/static/fonts/plex-latin-700.8d04403cf599.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
  unicode-range: U+0000-052F, U+2000-206F, U+2070-209F, U+20A0-20CF, U+2190-21FF;
}



:root {
  --paper:#fffdf8; --sand:#f6f1e4; --band:#f9f5ea; --line:#e6dcc4;
  --dark:#12203c; --ink:#111c31; --ink-2:#31405a; --mute:#5c6880;
  --acc:#8a6b12; --acc-hi:#6d5410; --acc-soft:#f6eed6; --on-acc:#fff;
  --ok:#1c6b45; --ok-bg:#e6f3ec;
  --disp:"ArchivoBlack","Archivo",system-ui,sans-serif;
  --body:"PublicSans",system-ui,sans-serif;
  --r:8px;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--body);
  font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased; }
h1,h2,h3 { margin:0; font-family:var(--disp); font-weight:400; line-height:1.08; letter-spacing:-.02em; }
h1 { font-size:clamp(2rem,5vw,3.1rem); }
h2 { font-size:clamp(1.4rem,3vw,2rem); }
p { margin:0 0 1em; }
a { color:var(--acc); }
ul,ol { margin:0; padding:0; list-style:none; }
:focus-visible { outline:3px solid var(--acc); outline-offset:2px; border-radius:4px; }

.rw { width:100%; max-width:1080px; margin:0 auto; padding:0 20px; }
.rw.narrow, .narrow { max-width:720px; }
.mt { margin-top:16px; }
.mt-l { margin-top:38px; }
.sub { color:var(--ink-2); font-size:1.08rem; max-width:58ch; }
.lede { color:var(--ink-2); font-size:1.08rem; }
.note { font-size:.82rem; color:var(--mute); margin:0; text-align:center; }
.note.left { text-align:left; margin-top:16px; }
.kicker { font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--acc); margin:0 0 12px; }
.warn { color:var(--ink-2); border-left:4px solid var(--acc); padding-left:16px; margin:0; }

/* Banner */
.ribbon { position:sticky; top:0; z-index:60; background:var(--dark); color:#fff; font-size:.82rem; }
.ribbon.is-personal { background:var(--acc-hi); }
.ribbon .rw { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:9px 20px; }
.ribbon-tag { background:#fff; color:var(--dark); border-radius:999px; padding:2px 11px;
  font-weight:700; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; flex:none; }
.ribbon.is-personal .ribbon-tag { color:var(--acc-hi); }
.ribbon-text { color:rgba(255,255,255,.88); flex:1 1 240px; }
.ribbon-cta { color:#fff; font-weight:700; text-decoration:underline; flex:none; }

/* Header */
.top { border-bottom:1px solid var(--line); background:var(--paper); }
.top-in { display:flex; align-items:center; gap:20px; min-height:70px; }
.logo { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink); }
.logo-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:9px;
  background:var(--dark); color:#fff; font-family:var(--disp); font-size:1rem; flex:none; }
.logo-n { display:block; font-weight:700; font-size:1rem; line-height:1.15; }
.logo-r { display:block; font-size:.76rem; color:var(--mute); }
.menu { margin-left:auto; display:flex; gap:22px; }
.menu a { color:var(--ink-2); text-decoration:none; font-size:.92rem; font-weight:500; }
.menu a:hover, .menu a.on { color:var(--acc); }
.top-r { display:flex; align-items:center; gap:12px; }
.lang { font-size:.85rem; color:var(--mute); cursor:default; }

.cta { display:inline-block; background:var(--acc); color:var(--on-acc); border-radius:var(--r);
  padding:13px 24px; font-weight:700; font-size:.95rem; text-decoration:none; border:0; }
.cta:hover { background:var(--acc-hi); color:var(--on-acc); }
.cta-sm { padding:9px 16px; font-size:.85rem; }
.cta-block { display:block; text-align:center; width:100%; }
.cta-ghost { background:transparent; color:var(--ink); border:2px solid var(--line); }
.cta-ghost:hover { background:var(--sand); color:var(--ink); border-color:var(--ink-2); }
.btn-row { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; }

.crumbs { border-bottom:1px solid var(--line); background:var(--sand); font-size:.85rem; color:var(--mute); }
.crumbs .rw { padding-top:11px; padding-bottom:11px; }
.crumbs a { color:var(--ink-2); text-decoration:none; }
.crumbs span { margin:0 6px; color:var(--line); }

/* Hero + page heads */
.hero { padding:64px 0 58px; background:var(--sand); border-bottom:1px solid var(--line); }
.hero-in { display:grid; grid-template-columns:1.2fr .8fr; gap:44px; align-items:start; }
.hero h1 { max-width:16ch; margin-bottom:16px; }
.page-head { padding:46px 0 34px; }
.page-head h1 { margin-bottom:14px; }

.affil { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:32px;
  padding-top:22px; border-top:1px solid var(--line); }
.affil-h { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); }
.affil-i { font-size:.82rem; font-weight:600; color:var(--ink-2); background:var(--paper);
  border:1px solid var(--line); border-radius:999px; padding:4px 12px; }

/* Next-intake card + buy box */
.next-card, .buybox, .cred-card, .cbox { background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r); padding:24px; }
.buybox { position:sticky; top:96px; }
.nc-tag, .cc-flag { display:inline-block; background:var(--acc-soft); color:var(--acc-hi);
  border-radius:999px; padding:3px 11px; font-size:.7rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; margin:0 0 12px; }
.nc-name { font-family:var(--disp); font-size:1.3rem; margin:0 0 4px; }
.nc-meta, .cc-meta, .cmeta { font-size:.86rem; color:var(--mute); margin:0 0 14px; }
.nc-price, .bb-price, .cc-price { font-family:var(--disp); font-size:2.1rem; color:var(--ink); margin:0 0 14px; }
.nc-price s, .bb-price s, .cc-price s { font-family:var(--body); font-size:1rem; color:var(--mute); margin-left:8px; font-weight:500; }
.nc-start, .bb-start, .cc-start { font-size:.86rem; color:var(--ink-2); font-weight:600; margin:12px 0 16px; }
.bb-list { margin:18px 0 0; padding-top:16px; border-top:1px solid var(--line); display:grid; gap:8px; }
.bb-list li { font-size:.86rem; color:var(--ink-2); padding-left:18px; position:relative; }
.bb-list li::before { content:""; position:absolute; left:0; top:.55em; width:8px; height:8px;
  border-radius:50%; background:var(--acc-soft); border:2px solid var(--acc); }
.bb-pay { font-size:.76rem; color:var(--mute); margin:14px 0 0; text-align:center; }

/* Seats */
.seats { margin:0 0 4px; }
.seats-bar { height:6px; border-radius:999px; background:var(--line); overflow:hidden; }
.seats-fill { display:block; height:100%; background:var(--acc); }
.seats-0{width:100%;background:var(--mute);} .seats-3{width:75%;} .seats-8{width:34%;}
.seats-t { font-size:.8rem; color:var(--ink-2); font-weight:600; margin:7px 0 0; }

/* Stats */
.stats { background:var(--dark); color:#fff; padding:32px 0; }
.stats-in { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; }
.stats b { display:block; font-family:var(--disp); font-size:2rem; }
.stats span { font-size:.82rem; color:rgba(255,255,255,.7); }

.block { padding:58px 0; }
.block.band { background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.block h2 { margin-bottom:26px; }

/* Course cards */
.cgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
.ccard { background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:24px; display:flex; flex-direction:column; }
.ccard.is-featured { border-color:var(--acc); border-width:2px; }
.cc-level { font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--mute); margin:0 0 8px; }
.cc-name { font-family:var(--disp); font-size:1.25rem; margin:0 0 8px; }
.cc-lede { font-size:.92rem; color:var(--ink-2); margin:0 0 14px; flex:1; }

/* Reviews */
.rgrid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.review { margin:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:24px; }
.stars { margin:0 0 10px; letter-spacing:2px; }
.star { color:var(--acc); } .star.off { color:var(--line); }
.review blockquote { margin:0 0 12px; font-size:1.02rem; color:var(--ink); }
.review blockquote::before{content:"\201C";} .review blockquote::after{content:"\201D";}
.review figcaption { font-size:.85rem; color:var(--ink-2); font-weight:600; }
.review figcaption span { display:block; font-weight:400; color:var(--mute); font-size:.8rem; }

/* Articles */
.agrid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.acard { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:22px; }
.ac-tag { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--acc); margin:0 0 8px; }
.ac-t { font-family:var(--disp); font-size:1.08rem; line-height:1.2; margin:0 0 8px; }
.ac-t a { color:var(--ink); text-decoration:none; }
.ac-t a:hover { color:var(--acc); }
.ac-l { font-size:.9rem; color:var(--ink-2); margin:0 0 10px; }
.ac-d { font-size:.78rem; color:var(--mute); margin:0; }

/* Philosophy */
.phil { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ph { padding-left:16px; border-left:4px solid var(--acc); }
.ph-h { font-weight:700; margin:0 0 6px; }
.ph-p { font-size:.93rem; color:var(--ink-2); margin:0; }

/* Course detail */
.course-head { display:grid; grid-template-columns:1.25fr .75fr; gap:40px; align-items:start; }
.ticks { display:grid; gap:10px; }
.ticks li { padding-left:26px; position:relative; color:var(--ink-2); }
.ticks li::before { content:""; position:absolute; left:0; top:.42em; width:14px; height:8px;
  border-left:2.5px solid var(--acc); border-bottom:2.5px solid var(--acc); transform:rotate(-45deg); }
.weeks { display:grid; gap:20px; }
.weeks li { display:flex; gap:16px; align-items:flex-start; }
.wk { flex:none; min-width:64px; font-family:var(--disp); font-size:.85rem; color:var(--acc);
  background:var(--acc-soft); border-radius:999px; padding:5px 12px; text-align:center; }
.wk-h { font-weight:700; margin:0 0 4px; }
.wk-p { font-size:.93rem; color:var(--ink-2); margin:0; }

/* About */
.about-head { display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:start; }
.hc-h { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin:0 0 12px; }
.hc-list { display:grid; gap:10px; }
.hc-list li { font-size:.92rem; color:var(--ink-2); padding-left:12px; border-left:3px solid var(--acc); }
.hc-list b { color:var(--ink); }

/* Post */
.post { padding:46px 0 58px; }
.post h1 { margin-bottom:16px; }
.post .lede { font-size:1.16rem; margin-bottom:28px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.post h2 { font-size:1.3rem; margin:34px 0 12px; }
.post p { color:var(--ink-2); }
.byline { display:flex; align-items:center; gap:12px; margin-top:38px; padding-top:24px; border-top:1px solid var(--line); }
.by-n { font-weight:700; margin:0; } .by-r { font-size:.85rem; color:var(--mute); margin:0; }

/* Members */
.mgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.mcard { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:22px; }
.mc-h { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin:0 0 10px; }
.mc-big { font-family:var(--disp); font-size:2.4rem; color:var(--acc); margin:0 0 10px; line-height:1; }
.mc-mid { font-weight:700; margin:0 0 4px; }
.mc-s { font-size:.85rem; color:var(--mute); margin:0 0 12px; }
.pbar { height:8px; border-radius:999px; background:var(--line); overflow:hidden; margin-bottom:10px; }
.pfill { display:block; height:100%; background:var(--acc); }
.p-66 { width:66%; }
.cert { display:flex; align-items:center; gap:12px; }
.cert p { font-size:.85rem; color:var(--ink-2); margin:0; }
.cert-seal { flex:none; width:40px; height:40px; border-radius:50%; background:var(--acc-soft);
  border:3px double var(--acc); }
.rows { width:100%; border-collapse:collapse; font-size:.94rem; }
.rows td { padding:13px 0; border-bottom:1px solid var(--line); }
.r-a { font-weight:700; white-space:nowrap; padding-right:14px; }
.r-b { color:var(--ink-2); }
.r-c { text-align:right; white-space:nowrap; }
.tag { display:inline-block; padding:2px 11px; border-radius:999px; font-size:.78rem; font-weight:700;
  background:var(--sand); color:var(--mute); }
.tag-watched { background:var(--ok-bg); color:var(--ok); }
.tag-submitted { background:var(--acc-soft); color:var(--acc-hi); }
.dl { display:grid; gap:9px; }
.dl li { display:flex; align-items:center; gap:12px; padding:13px 15px; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r); }
.dl-i { flex:none; width:12px; height:15px; border:2px solid var(--acc); border-radius:2px; }
.dl-n { font-weight:600; font-size:.93rem; flex:1; }
.dl-m { font-size:.8rem; color:var(--mute); }

/* Forms */
.search { display:flex; align-items:center; gap:10px; max-width:420px; margin-top:20px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:10px 18px; }
.search-i { flex:none; width:13px; height:13px; border:2px solid var(--mute); border-radius:50%; }
.search input { border:0; background:transparent; font:inherit; font-size:.92rem; color:var(--mute); width:100%; }
.contact-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:32px; align-items:start; }
.bform { display:grid; gap:15px; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r); padding:26px; }
.bform label { display:grid; gap:6px; font-size:.88rem; font-weight:700; }
.bform input,.bform textarea,.bform select { font:inherit; font-size:.95rem; padding:12px 14px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--sand); color:var(--mute); resize:vertical; }
.cb-v { font-size:.95rem; color:var(--ink-2); margin:0; }

details { border-bottom:1px solid var(--line); }
details summary { cursor:pointer; list-style:none; padding:17px 32px 17px 0; position:relative; font-weight:700; }
details summary::-webkit-details-marker { display:none; }
details summary::after { content:""; position:absolute; right:6px; top:24px; width:9px; height:9px;
  border-right:2px solid var(--mute); border-bottom:2px solid var(--mute); transform:rotate(45deg); }
details[open] summary::after { transform:rotate(-135deg); top:28px; }
details p { margin:0 0 17px; color:var(--ink-2); }

/* Newsletter + footer + dock */
.signup { background:var(--dark); color:#fff; padding:40px 0; }
.signup-in { display:grid; grid-template-columns:1fr auto; gap:26px; align-items:center; }
.signup h2 { color:#fff; margin:0 0 6px; }
.signup .sub { color:rgba(255,255,255,.72); margin:0; }
.nform { display:flex; gap:10px; }
.nform input { font:inherit; padding:13px 16px; border:0; border-radius:var(--r); min-width:240px;
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.75); }
.foot { background:#0c1730; color:rgba(255,255,255,.72); padding:42px 0 54px; font-size:.9rem; }
.foot-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:24px;
  padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,.14); }
.foot-name { color:#fff; font-weight:700; margin:0 0 4px; }
.foot-note { margin:0 0 4px; }
.foot-h { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.5); margin:0 0 5px; }
.foot-ex { margin-top:22px; }
.foot-cta a { color:#fff; font-weight:700; }
.dock { display:none; }

@media (max-width:900px){
  .hero-in,.course-head,.about-head,.contact-grid,.signup-in { grid-template-columns:1fr; }
  .cgrid,.agrid,.phil,.mgrid { grid-template-columns:1fr; }
  .rgrid { grid-template-columns:1fr; }
  .stats-in { grid-template-columns:repeat(2,1fr); }
  .menu { display:none; }
  .buybox { position:static; }
}
@media (max-width:560px){
  body { font-size:16px; }
  .hero { padding:42px 0 40px; } .block { padding:42px 0; }
  .nform { flex-direction:column; } .nform input { min-width:0; }
  .dock { position:fixed; left:0; right:0; bottom:0; z-index:55; padding:10px 16px;
    padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(255,253,248,.96); border-top:1px solid var(--line); }
  body.has-dock { padding-bottom:76px; }
}
