:root{
  color-scheme: light;
  --sky:#4FA5DC; --sky-soft:#DCEEF9; --sky-deep:#1D6FAE;
  --navy:#003369; --pink:#F2A1F1; --pink-soft:#FBE3FB; --pink-deep:#A1339E;
  --ground:#F5F9FC; --surface:#FFFFFF; --surface-2:#EAF3FA;
  --ink:#0E2A4A; --ink-2:#44607E; --line:#CFE0EE;
  --btn:#003369; --btn-ink:#FFFFFF;
  --good:#1E7D55;
  --shadow:0 1px 2px rgba(0,51,105,.06), 0 8px 24px rgba(0,51,105,.08);
  --display:"Fredoka", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", "Verdana", "Segoe UI", system-ui, sans-serif;
  --fs:18px;
  --radius:14px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --sky:#6DB7E6; --sky-soft:#12324F; --sky-deep:#8CCBF2;
    --navy:#E7F1FA; --pink:#F5B3F3; --pink-soft:#3A2240; --pink-deep:#F5B3F3;
    --ground:#0A1828; --surface:#10233A; --surface-2:#15304D;
    --ink:#E7F1FA; --ink-2:#A9C1D8; --line:#24425F;
    --btn:#6DB7E6; --btn-ink:#062038;
    --good:#6FD3A5;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --sky:#6DB7E6; --sky-soft:#12324F; --sky-deep:#8CCBF2;
  --navy:#E7F1FA; --pink:#F5B3F3; --pink-soft:#3A2240; --pink-deep:#F5B3F3;
  --ground:#0A1828; --surface:#10233A; --surface-2:#15304D;
  --ink:#E7F1FA; --ink-2:#A9C1D8; --line:#24425F;
  --btn:#6DB7E6; --btn-ink:#062038;
  --good:#6FD3A5;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25);
}
html[data-size="1"]{ --fs:20px; }
html[data-size="2"]{ --fs:23px; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:6rem; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ transition:none!important; animation:none!important; } }
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--body); font-size:var(--fs); line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
[hidden]{ display:none!important; }
a{ color:var(--sky-deep); text-underline-offset:3px; }
h1,h2,h3,h4{ font-family:var(--display); color:var(--navy); line-height:1.15; text-wrap:balance; margin:0; font-weight:600; }
h1{ font-size:clamp(2.1rem, 5.2vw, 3.6rem); font-weight:700; letter-spacing:-.01em; }
h2{ font-size:clamp(1.65rem, 3.4vw, 2.4rem); }
h3{ font-size:1.25rem; }
p{ margin:0; }
.wrap{ width:100%; max-width:1120px; margin-inline:auto; padding-inline:20px; }
.eyebrow{ font-family:var(--display); font-weight:600; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sky-deep); }
.lead{ font-size:1.12em; color:var(--ink-2); max-width:36em; }
.muted{ color:var(--ink-2); }
.section{ padding-block:clamp(56px, 8vw, 104px); }
.section-head{ display:grid; gap:12px; max-width:44rem; margin-bottom:36px; }
:focus-visible{ outline:3px solid var(--pink-deep); outline-offset:3px; border-radius:6px; }
.skip{ position:absolute; left:-999px; top:8px; background:var(--btn); color:var(--btn-ink); padding:8px 14px; border-radius:8px; z-index:100; }
.skip:focus{ left:12px; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:.5em; font-family:var(--display); font-weight:600; font-size:1rem;
  padding:.8em 1.3em; border-radius:999px; border:2px solid var(--btn); background:var(--btn); color:var(--btn-ink);
  text-decoration:none; cursor:pointer; transition:transform .15s ease, background .15s ease; }
.btn:hover{ transform:translateY(-1px); }
.btn.ghost{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn.small{ font-size:.85rem; padding:.5em 1em; }
.btn svg{ width:1.1em; height:1.1em; flex:none; }

/* Header */
.site-head{ position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:color-mix(in srgb, var(--ground) 92%, transparent);
  backdrop-filter:saturate(1.2) blur(10px); border-bottom:1px solid var(--line); }
.head-row{ display:flex; align-items:center; gap:20px; min-height:68px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--navy); flex:none; }
.brand img{ width:40px; height:36px; border-radius:6px; }
.brand span{ font-family:var(--display); font-weight:600; font-size:1.05rem; line-height:1.1; }
.nav{ display:flex; gap:4px; margin-left:auto; overflow-x:auto; scrollbar-width:none; }
.nav::-webkit-scrollbar{ display:none; }
.nav a{ font-family:var(--display); font-weight:500; font-size:.92rem; color:var(--ink); text-decoration:none; padding:8px 12px; border-radius:999px; white-space:nowrap; }
.nav a:hover{ background:var(--sky-soft); }
.textsize{ display:flex; align-items:center; border:1px solid var(--line); border-radius:999px; overflow:hidden; flex:none; }
.textsize button{ background:none; border:0; color:var(--navy); font-family:var(--display); font-weight:600; padding:6px 10px; cursor:pointer; line-height:1; }
.textsize button[aria-pressed="true"]{ background:var(--navy); color:var(--ground); }
.textsize button:nth-of-type(1){ font-size:.8rem; } .textsize button:nth-of-type(2){ font-size:.95rem; } .textsize button:nth-of-type(3){ font-size:1.1rem; }
@media (max-width:860px){
  .head-row{ flex-wrap:wrap; gap:8px 12px; padding-block:10px; }
  .nav{ order:3; width:100%; margin-left:0; margin-inline:-8px; }
  .textsize{ margin-left:auto; }
}

/* Hero */
.hero{ position:relative; overflow:hidden; padding-block:clamp(40px,7vw,88px) clamp(48px,7vw,96px); }
.hero::before{ content:""; position:absolute; inset:-40% -20%; background:
  linear-gradient(155deg, transparent 0 46%, var(--sky-soft) 46% 64%, transparent 64%); pointer-events:none; }
.hero-grid{ position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,5vw,64px); align-items:center; }
.hero-copy{ display:grid; gap:22px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.hero-logo{ justify-self:center; width:min(100%, 400px); filter:drop-shadow(0 18px 30px rgba(0,51,105,.18)); }
.hero-logo img{ width:100%; height:auto; }
.church{ font-family:var(--display); font-weight:500; color:var(--ink-2); display:flex; align-items:center; gap:8px; }
.heart{ display:inline-block; width:14px; height:14px; background:var(--pink); clip-path:path("M7 13.2 1.6 8A3.6 3.6 0 0 1 7 3.3 3.6 3.6 0 0 1 12.4 8Z"); flex:none; }
@media (max-width:760px){ .hero-grid{ grid-template-columns:1fr; } .hero-logo{ order:-1; width:min(62%, 260px); } }

/* Tagline band */
.band{ background:var(--navy); color:var(--ground); position:relative; overflow:hidden; }
.band::after{ content:""; position:absolute; inset:0; background:linear-gradient(155deg, transparent 0 58%, color-mix(in srgb, var(--sky) 35%, transparent) 58% 72%, transparent 72%); pointer-events:none; }
.band .wrap{ position:relative; z-index:1; padding-block:44px; display:grid; gap:10px; }
.band blockquote{ margin:0; font-family:var(--display); font-weight:600; font-size:clamp(1.4rem,3.2vw,2.2rem); line-height:1.25; max-width:30em; color:var(--ground); text-wrap:balance; }
.band .eyebrow{ color:var(--pink); }

/* About */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:start; }
.prose{ display:grid; gap:16px; max-width:36em; }
.guides{ display:grid; gap:14px; }
.guide{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; padding:18px 20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.guide .dot{ width:36px; height:36px; border-radius:50%; background:var(--pink-soft); display:grid; place-items:center; }
.guide .dot .heart{ width:16px; height:16px; background:var(--pink-deep); }
.guide h3{ font-size:1.08rem; margin-bottom:4px; }
.guide p{ color:var(--ink-2); font-size:.95em; }
@media (max-width:760px){ .about-grid{ grid-template-columns:1fr; } }

.band-cite{ font-family:var(--display); font-weight:500; color:color-mix(in srgb, var(--ground) 75%, transparent); }
.logo-note{ display:grid; grid-template-columns:64px 1fr; gap:16px; align-items:center; padding:16px 18px; border-radius:var(--radius); background:var(--sky-soft); margin-top:6px; }
.logo-note img{ border-radius:8px; width:64px; height:auto; }
.logo-note p{ font-size:.95em; }
.logo-note b{ font-family:var(--display); font-weight:600; color:var(--navy); }
.parent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.parent-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:24px; display:grid; gap:14px; align-content:start; }
.ticks{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ticks li{ position:relative; padding-left:28px; font-size:.97em; }
.ticks li::before{ content:""; position:absolute; left:0; top:.3em; width:18px; height:18px; border-radius:50%; background:var(--pink-soft); box-shadow:inset 0 0 0 5px var(--pink-soft), inset 0 0 0 18px var(--pink-deep); }
.small{ font-size:.88em; }
.parent-local{ margin-top:24px; padding:16px 20px; border-radius:var(--radius); background:var(--sky-soft); }
@media (max-width:900px){ .parent-grid{ grid-template-columns:1fr; } }
.faq{ display:grid; gap:10px; max-width:52rem; margin-bottom:48px; }
.faq details{ background:var(--ground); border:1px solid var(--line); border-radius:12px; }
.faq summary{ cursor:pointer; list-style:none; padding:16px 20px; font-family:var(--display); font-weight:600; font-size:1.08rem; color:var(--navy); display:flex; justify-content:space-between; gap:16px; align-items:center; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.4rem; line-height:1; color:var(--sky-deep); flex:none; }
.faq details[open] summary::after{ content:"\2212"; }
.faq details > div{ padding:0 20px 18px; color:var(--ink-2); max-width:42rem; }
.three{ display:grid; gap:14px; }
.three-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:2px solid var(--navy); }
.three-grid div{ padding:18px 20px 0 0; display:grid; gap:4px; }
.three-grid b{ font-family:var(--display); font-weight:600; font-size:1.08rem; color:var(--navy); }
.three-grid span{ color:var(--ink-2); font-size:.95em; }
@media (max-width:760px){ .three-grid{ grid-template-columns:1fr; } }

/* Why */
.why{ background:var(--surface); border-block:1px solid var(--line); }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:56px; }
.stat{ padding:24px 22px; display:grid; gap:8px; align-content:start; background:var(--ground); }
.stat + .stat{ border-left:1px solid var(--line); }
.stat b{ font-family:var(--display); font-weight:700; font-size:2.4rem; line-height:1; color:var(--navy); font-variant-numeric:tabular-nums; }
.stat p{ font-size:.92em; color:var(--ink-2); }
.stat small{ font-size:.75em; color:var(--ink-2); opacity:.85; }
@media (max-width:900px){ .stats{ grid-template-columns:1fr 1fr; } .stat:nth-child(3){ border-left:0; } .stat:nth-child(n+3){ border-top:1px solid var(--line); } }
@media (max-width:480px){ .stats{ grid-template-columns:1fr; } .stat + .stat{ border-left:0; border-top:1px solid var(--line); } }
.study{ display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; padding:22px 24px; border-radius:var(--radius); background:var(--pink-soft); margin-bottom:56px; }
.study b{ font-family:var(--display); font-size:1.15rem; color:var(--navy); display:block; margin-bottom:4px; }
.study .big{ font-family:var(--display); font-weight:700; font-size:2.6rem; color:var(--pink-deep); line-height:1; }
@media (max-width:560px){ .study{ grid-template-columns:1fr; } }

.verses{ display:grid; grid-template-columns:minmax(200px, 260px) 1fr; gap:28px; align-items:stretch; }
.verse-list{ display:grid; gap:6px; align-content:start; }
.verse-list button{ text-align:left; background:none; border:1px solid transparent; border-radius:10px; padding:10px 14px; font:inherit; font-size:.95em; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; gap:8px; }
.verse-list button:hover{ background:var(--surface-2); }
.verse-list button[aria-selected="true"]{ background:var(--navy); color:var(--ground); }
.verse-list button span{ font-size:.8em; opacity:.75; }
.verse-card{ background:var(--sky-soft); border-radius:var(--radius); padding:clamp(24px,4vw,44px); display:grid; gap:18px; align-content:center; min-height:260px; position:relative; overflow:hidden; }
.verse-card::after{ content:""; position:absolute; right:-40px; bottom:-40px; width:180px; height:180px; background:var(--pink); opacity:.35; clip-path:path("M90 170 20 104A45 45 0 0 1 90 38 45 45 0 0 1 160 104Z"); }
.verse-card q{ font-family:var(--display); font-weight:500; font-size:clamp(1.25rem,2.6vw,1.7rem); line-height:1.35; color:var(--navy); quotes:"\201C" "\201D"; position:relative; z-index:1; }
.verse-card cite{ font-style:normal; font-weight:700; color:var(--ink-2); position:relative; z-index:1; }
@media (max-width:760px){
  .verses{ grid-template-columns:1fr; }
  .verse-list{ grid-auto-flow:column; grid-auto-columns:max-content; overflow-x:auto; padding-bottom:6px; }
}

/* How it works */
.options{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:64px; }
.option{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:grid; gap:8px; align-content:start; }
.option .tag{ font-family:var(--display); font-weight:600; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sky-deep); }
.option p{ color:var(--ink-2); font-size:.95em; }
@media (max-width:820px){ .options{ grid-template-columns:1fr; } }

.flow{ list-style:none; padding:0; margin:0 0 64px; display:grid; grid-template-columns:repeat(5,1fr); gap:0; counter-reset:step; }
.flow li{ counter-increment:step; position:relative; padding:0 14px 0 0; display:grid; gap:8px; align-content:start; }
.flow li::before{ content:counter(step); width:40px; height:40px; border-radius:50%; background:var(--navy); color:var(--ground); font-family:var(--display); font-weight:600; display:grid; place-items:center; position:relative; z-index:1; }
.flow li::after{ content:""; position:absolute; top:19px; left:40px; right:0; height:2px; background:repeating-linear-gradient(90deg, var(--sky) 0 6px, transparent 6px 12px); }
.flow li:last-child::after{ display:none; }
.flow h3{ font-size:1.02rem; }
.flow p{ font-size:.9em; color:var(--ink-2); }
.flow .time{ font-family:var(--display); font-size:.8rem; font-weight:600; color:var(--pink-deep); }
@media (max-width:900px){
  .flow{ grid-template-columns:1fr; gap:18px; }
  .flow li{ grid-template-columns:40px 1fr; column-gap:16px; padding:0; }
  .flow li::before{ grid-row:span 3; }
  .flow li::after{ top:40px; bottom:-18px; left:19px; right:auto; width:2px; height:auto; background:repeating-linear-gradient(180deg, var(--sky) 0 6px, transparent 6px 12px); }
}

.pyramid-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,48px); align-items:center; }
.pyramid{ display:grid; gap:6px; }
.pyramid button{ --w:100%; width:var(--w); justify-self:center; min-height:62px; border:0; cursor:pointer; color:#fff;
  font-family:var(--display); font-weight:600; font-size:.95rem; line-height:1.15; padding:8px 12%;
  clip-path:polygon(7% 0, 93% 0, 100% 100%, 0 100%); transition:filter .15s ease, transform .15s ease; }
.pyramid button:nth-child(1){ --w:40%; background:#7E4B98; clip-path:polygon(30% 0, 70% 0, 100% 100%, 0 100%); padding:22px 14% 8px; min-height:72px; }
.pyramid button:nth-child(2){ --w:55%; background:#2B5E96; }
.pyramid button:nth-child(3){ --w:70%; background:#1D6FAE; }
.pyramid button:nth-child(4){ --w:85%; background:#2D84C0; }
.pyramid button:nth-child(5){ --w:100%; background:#003369; }
.pyramid button:hover{ filter:brightness(1.1); }
.pyramid button[aria-pressed="true"]{ filter:none; box-shadow:inset 0 -5px 0 var(--pink); }
.pyramid button:focus-visible{ outline:none; filter:brightness(1.25); }
.pyr-detail{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:26px; display:grid; gap:12px; box-shadow:var(--shadow); }
.pyr-detail ul{ margin:0; padding-left:1.1em; display:grid; gap:8px; color:var(--ink-2); }
.pyr-detail .who{ font-weight:700; color:var(--ink); }
.pyr-hint{ font-size:.85em; color:var(--ink-2); text-align:center; margin-top:10px; }
@media (max-width:820px){ .pyramid-wrap{ grid-template-columns:1fr; } .pyramid button{ font-size:.85rem; padding-inline:9%; } .pyramid button:nth-child(1){ --w:56%; padding-inline:16%; } .pyramid button:nth-child(2){ --w:64%; } .pyramid button:nth-child(3){ --w:76%; } .pyramid button:nth-child(4){ --w:88%; } }

/* Buddies */
.buddy{ background:var(--sky-soft); }
.buddy-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,56px); align-items:start; }
.pill-row{ display:flex; flex-wrap:wrap; gap:10px; }
.pill{ background:var(--surface); border-radius:999px; padding:8px 16px; font-family:var(--display); font-weight:500; color:var(--navy); border:1px solid var(--line); }
.buddy-card{ background:var(--surface); border-radius:var(--radius); padding:26px; display:grid; gap:16px; box-shadow:var(--shadow); }
.buddy-card ul{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.buddy-card li{ display:flex; gap:10px; align-items:baseline; }
.buddy-card li .heart{ transform:translateY(2px); }
.buddy-card blockquote{ margin:0; padding-top:14px; border-top:1px solid var(--line); color:var(--ink-2); font-style:italic; font-size:.95em; }
@media (max-width:820px){ .buddy-grid{ grid-template-columns:1fr; } }

/* Training */
.train-top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:18px; margin-bottom:22px; }
.filters{ display:flex; flex-wrap:wrap; gap:8px; }
.filters button{ font:inherit; font-family:var(--display); font-weight:500; font-size:.9rem; padding:7px 14px; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; }
.filters button[aria-pressed="true"]{ background:var(--navy); color:var(--ground); border-color:var(--navy); }
.progress{ display:grid; gap:6px; min-width:220px; }
.progress .bar{ height:10px; background:var(--surface-2); border-radius:999px; overflow:hidden; }
.progress .bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg, var(--sky), var(--pink)); border-radius:999px; transition:width .4s ease; }
.progress span{ font-size:.85em; color:var(--ink-2); }
.modules{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:980px){ .modules{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .modules{ grid-template-columns:1fr; } }
.module{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:grid; grid-template-rows:auto 1fr; }
.thumb{ position:relative; aspect-ratio:16/9; max-width:100%; background:var(--surface-2); border:0; padding:0; width:100%; cursor:pointer; display:block; overflow:hidden; }
.thumb img{ width:100%; height:100%; object-fit:cover; }
.thumb .ph{ position:absolute; inset:0; display:grid; place-items:center; background:
  linear-gradient(155deg, var(--sky-soft) 0 40%, color-mix(in srgb, var(--sky) 45%, var(--sky-soft)) 40% 62%, var(--sky-soft) 62%); }
.thumb .ph .heart{ width:44px; height:44px; background:var(--pink); clip-path:path("M22 41 5 25A11 11 0 0 1 22 10 11 11 0 0 1 39 25Z"); }
.thumb .play{ position:absolute; left:14px; bottom:14px; display:flex; align-items:center; gap:8px; background:var(--navy); color:var(--ground); font-family:var(--display); font-weight:600; font-size:.85rem; padding:7px 12px 7px 9px; border-radius:999px; }
.thumb .play svg{ width:18px; height:18px; }
.thumb.soon{ cursor:default; }
.thumb.soon .play{ background:var(--surface); color:var(--ink-2); border:1px dashed var(--line); }
.module-body{ padding:18px 20px 20px; display:grid; gap:10px; align-content:start; }
.module-meta{ display:flex; justify-content:space-between; gap:8px; font-size:.8em; color:var(--ink-2); font-family:var(--display); font-weight:500; }
.module-meta .topic{ color:var(--sky-deep); font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.module h3{ font-size:1.12rem; }
.module.featured{ grid-column:1/-1; grid-template-rows:none; grid-template-columns:1.25fr 1fr; background:var(--navy); border-color:var(--navy); }
.module.featured .module-body{ padding:clamp(20px,3vw,36px); align-content:center; gap:14px; }
.module.featured h3{ font-size:clamp(1.3rem,2.4vw,1.75rem); color:var(--ground); }
.module.featured p, .module.featured .module-meta, .module.featured .watched{ color:color-mix(in srgb, var(--ground) 80%, transparent); }
.module.featured .module-meta .topic{ color:var(--pink); }
.module.featured summary{ color:var(--ground); }
.module.featured details ul{ color:color-mix(in srgb, var(--ground) 80%, transparent); }
.module.featured .thumb{ height:100%; aspect-ratio:auto; min-height:220px; }
@media (max-width:760px){ .module.featured{ grid-template-columns:1fr; } .module.featured .thumb{ aspect-ratio:16/9; min-height:0; } }
.module p{ font-size:.93em; color:var(--ink-2); }
.module details{ font-size:.92em; }
.module summary{ cursor:pointer; font-weight:700; color:var(--navy); }
.module details ul{ margin:8px 0 0; padding-left:1.1em; display:grid; gap:4px; color:var(--ink-2); }
.watched{ display:flex; align-items:center; gap:8px; font-size:.88em; color:var(--ink-2); cursor:pointer; margin-top:4px; }
.watched input{ width:18px; height:18px; accent-color:var(--good); }
.module.done{ border-color:color-mix(in srgb, var(--good) 45%, var(--line)); }
.soon{ margin-top:36px; display:grid; gap:10px; }
.soon-list{ list-style:none; margin:8px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.soon-list li{ display:grid; gap:2px; padding:14px 16px; border-radius:12px; background:var(--surface); border:1px dashed var(--line); }
.soon-list .topic{ font-family:var(--display); font-weight:600; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sky-deep); }
.soon-list b{ font-family:var(--display); font-weight:600; color:var(--navy); }
.soon-list li > span:last-child{ font-size:.9em; color:var(--ink-2); }
@media (max-width:700px){ .soon-list{ grid-template-columns:1fr; } }
.playlist-note{ margin-top:22px; font-size:.95em; color:var(--ink-2); }

dialog.player{ width:min(960px, calc(100vw - 32px)); padding:0; border:0; border-radius:var(--radius); background:#000; color:#fff; }
dialog.player::backdrop{ background:rgba(0,20,45,.78); }
.player-bar{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 14px; background:#0B1A2E; font-family:var(--display); }
.player-bar a{ color:#BFE0F7; font-size:.9rem; }
.player-bar button{ background:none; border:1px solid #3A5775; color:#fff; border-radius:999px; padding:5px 12px; font:inherit; cursor:pointer; }
.player-frame{ aspect-ratio:16/9; max-width:100%; width:100%; }
.player-frame iframe{ width:100%; height:100%; border:0; display:block; }

/* Toolkit */
.toolkit{ background:var(--surface); border-block:1px solid var(--line); }
.tabs{ display:flex; gap:6px; border-bottom:2px solid var(--line); margin-bottom:28px; overflow-x:auto; }
.tabs button{ font:inherit; font-family:var(--display); font-weight:600; font-size:.98rem; background:none; border:0; padding:12px 16px; color:var(--ink-2); cursor:pointer; border-bottom:4px solid transparent; margin-bottom:-2px; white-space:nowrap; }
.tabs button[aria-selected="true"]{ color:var(--navy); border-bottom-color:var(--sky); }
.panel-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(24px,4vw,56px); align-items:start; }
@media (max-width:820px){ .panel-grid{ grid-template-columns:1fr; } }
.panel-intro{ display:grid; gap:14px; }
.checklist{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.checklist label{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; padding:12px 14px; border-radius:10px; background:var(--ground); border:1px solid var(--line); cursor:pointer; }
.checklist input{ width:20px; height:20px; margin-top:3px; accent-color:var(--navy); }
.checklist label:has(input:checked){ background:var(--sky-soft); border-color:transparent; }
.checklist label:has(input:checked) span{ color:var(--ink-2); }
.checklist small{ display:block; color:var(--ink-2); font-size:.85em; }
.meter{ display:flex; align-items:center; gap:14px; font-family:var(--display); font-weight:600; color:var(--navy); }
.meter .ring{ --p:0; width:64px; height:64px; border-radius:50%; background:conic-gradient(var(--sky) calc(var(--p)*1%), var(--surface-2) 0); display:grid; place-items:center; flex:none; }
.meter .ring span{ width:48px; height:48px; border-radius:50%; background:var(--surface); display:grid; place-items:center; font-size:.9rem; font-variant-numeric:tabular-nums; }
.reset{ background:none; border:0; color:var(--sky-deep); text-decoration:underline; font:inherit; font-size:.85em; cursor:pointer; padding:0; justify-self:start; }

.seg{ display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:3px; gap:3px; background:var(--ground); flex-wrap:wrap; }
.seg button{ font:inherit; font-family:var(--display); font-weight:500; font-size:.9rem; border:0; background:none; padding:7px 14px; border-radius:999px; cursor:pointer; color:var(--ink); }
.seg button[aria-pressed="true"]{ background:var(--navy); color:var(--ground); }
.sense-list{ list-style:none; padding:0; margin:16px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.sense-list li{ padding:10px 14px; background:var(--ground); border:1px solid var(--line); border-radius:10px; font-size:.95em; }
@media (max-width:520px){ .sense-list{ grid-template-columns:1fr; } }
.tipbox{ background:var(--pink-soft); border-radius:var(--radius); padding:18px 20px; display:grid; gap:8px; }
.tipbox h4{ font-size:1rem; }
.tipbox ul{ margin:0; padding-left:1.1em; display:grid; gap:4px; font-size:.93em; }
.tool-block{ display:grid; gap:10px; }
.tool-block + .tool-block{ margin-top:28px; }

.quickcard{ background:var(--ground); border:2px solid var(--navy); border-radius:var(--radius); padding:clamp(20px,3vw,32px); display:grid; gap:16px; }
.quickcard-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.quickcard-head div{ display:flex; align-items:center; gap:12px; }
.quickcard-head img{ width:44px; height:40px; border-radius:6px; }
.quickcard ol{ margin:0; padding-left:1.3em; display:grid; gap:10px; }
.quickcard ol li::marker{ font-family:var(--display); font-weight:600; color:var(--sky-deep); }
.warn{ background:var(--navy); color:var(--ground); border-radius:10px; padding:12px 16px; font-weight:700; }
.warn span{ font-weight:400; opacity:.9; }

/* Stories */
.stories{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.story{ margin:0; display:grid; gap:14px; align-content:start; padding:26px; background:var(--surface); border-radius:var(--radius); border:1px solid var(--line); position:relative; }
.story::before{ content:"\201C"; font-family:var(--display); font-size:4rem; line-height:.6; color:var(--pink); height:24px; }
.story blockquote{ margin:0; font-size:1.02em; }
.story figcaption{ font-family:var(--display); font-weight:500; color:var(--ink-2); font-size:.9rem; }
@media (max-width:900px){ .stories{ grid-template-columns:1fr; } }

.story-video{ width:100%; display:grid; grid-template-columns:minmax(0,1.1fr) 1fr; gap:0; padding:0; margin-bottom:24px; border:0; border-radius:var(--radius); overflow:hidden; background:var(--navy); color:var(--ground); cursor:pointer; text-align:left; font:inherit; }
.story-video:hover .play{ transform:scale(1.04); }
.sv-thumb{ position:relative; aspect-ratio:16/9; max-width:100%; display:block; background:var(--surface-2); }
.sv-thumb .ph{ position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(155deg, var(--sky-soft) 0 40%, color-mix(in srgb, var(--sky) 45%, var(--sky-soft)) 40% 62%, var(--sky-soft) 62%); }
.sv-thumb .ph .heart{ width:44px; height:44px; background:var(--pink); clip-path:path("M22 41 5 25A11 11 0 0 1 22 10 11 11 0 0 1 39 25Z"); }
.sv-thumb img{ position:relative; width:100%; height:100%; object-fit:cover; }
.sv-thumb .play{ position:absolute; left:16px; bottom:16px; display:flex; align-items:center; gap:8px; background:var(--pink); color:#3A0F3A; font-family:var(--display); font-weight:600; padding:8px 14px 8px 10px; border-radius:999px; transition:transform .15s ease; }
.sv-thumb .play svg{ width:18px; height:18px; }
.sv-text{ padding:clamp(20px,3vw,36px); display:grid; gap:10px; align-content:center; }
.sv-text .eyebrow{ color:var(--pink); }
.sv-text b{ font-family:var(--display); font-weight:600; font-size:clamp(1.3rem,2.4vw,1.75rem); line-height:1.2; color:var(--ground); }
.sv-text > span:last-child{ color:color-mix(in srgb, var(--ground) 80%, transparent); }
@media (max-width:760px){ .story-video{ grid-template-columns:1fr; } }
.faq-quote{ margin-top:12px; padding-left:14px; border-left:3px solid var(--pink); font-style:italic; color:var(--ink); }
.faq-quote span{ display:block; font-style:normal; font-size:.88em; color:var(--ink-2); margin-top:4px; }
.pastor-quote{ margin:40px 0 0; padding:28px clamp(20px,3vw,36px); background:var(--navy); color:var(--ground); border-radius:var(--radius); display:grid; gap:10px; max-width:52rem; }
.pastor-quote blockquote{ margin:0; font-family:var(--display); font-weight:500; font-size:clamp(1.15rem,2.2vw,1.45rem); line-height:1.35; }
.pastor-quote figcaption{ color:var(--pink); font-family:var(--display); font-weight:500; font-size:.95rem; }

/* Resources */
.res-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,48px); }
.res-list{ list-style:none; padding:0; margin:0; display:grid; }
.res-list li{ padding:14px 0; border-bottom:1px solid var(--line); display:grid; gap:2px; }
.res-list li:first-child{ border-top:1px solid var(--line); }
.res-list a{ font-weight:700; }
.res-list span{ font-size:.9em; color:var(--ink-2); }
@media (max-width:760px){ .res-grid{ grid-template-columns:1fr; } }

/* Contact */
.contact{ background:var(--navy); color:var(--ground); position:relative; overflow:hidden; }
.contact::before{ content:""; position:absolute; inset:-30% -10%; background:linear-gradient(155deg, transparent 0 60%, color-mix(in srgb, var(--sky) 28%, transparent) 60% 76%, transparent 76%); pointer-events:none; }
.contact .wrap{ position:relative; }
.contact h2, .contact .eyebrow{ color:var(--ground); }
.contact .eyebrow{ color:var(--pink); }
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:start; }
.contact .lead{ color:color-mix(in srgb, var(--ground) 82%, transparent); }
.form{ background:var(--surface); color:var(--ink); border-radius:var(--radius); padding:clamp(20px,3vw,30px); display:grid; gap:16px; box-shadow:0 20px 40px rgba(0,0,0,.2); }
.form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form .row{ grid-template-columns:1fr; } }
.field{ display:grid; gap:6px; }
.field label{ font-weight:700; font-size:.92em; }
.field input, .field select, .field textarea{ font:inherit; font-size:1rem; padding:11px 13px; border-radius:10px; border:1.5px solid var(--line); background:var(--ground); color:var(--ink); width:100%; }
.field textarea{ min-height:120px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--sky-deep); box-shadow:0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.form-status{ font-weight:700; }
.form-status.ok{ color:var(--good); }
.form-status.err{ color:#C0392B; }
.hp{ position:absolute; left:-9999px; }
.contact-facts{ display:grid; gap:18px; margin-top:28px; }
.contact-facts div{ display:grid; gap:2px; }
.contact-facts b{ font-family:var(--display); font-weight:600; color:var(--pink); }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

/* Footer */
footer{ padding-block:36px; background:var(--ground); }
.foot{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; font-size:.9em; color:var(--ink-2); }
.foot .brand img{ width:36px; height:32px; }

/* Print: volunteer card only */
@media print{
  body.print-card > *:not(main){ display:none!important; }
  body.print-card main > *:not(#toolkit){ display:none!important; }
  body.print-card #toolkit .tabs, body.print-card #toolkit .section-head, body.print-card #toolkit [role="tabpanel"]:not(#panel-card), body.print-card .no-print{ display:none!important; }
  body.print-card #panel-card{ display:block!important; }
  body.print-card .toolkit{ border:0; padding:0; background:#fff; }
  body.print-card .quickcard{ border-color:#003369; }
}

/* ---------- multi-page additions ---------- */
.nav a[aria-current="page"]{ background:var(--sky-soft); color:var(--navy); font-weight:600; }
.nav .nav-cta{ background:var(--btn); color:var(--btn-ink); margin-left:6px; }
.nav .nav-cta:hover{ background:var(--btn); filter:brightness(1.1); }
.nav .nav-cta[aria-current="page"]{ background:var(--btn); color:var(--btn-ink); }
.menu-btn{ display:none; position:relative; background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:8px 14px; font-family:var(--display); font-weight:600; font-size:.9rem; color:var(--navy); cursor:pointer; align-items:center; gap:8px; }
.menu-btn svg{ width:18px; height:18px; }
.menu-btn .i-close{ display:none; }
.menu-btn[aria-expanded="true"] .i-open{ display:none; }
.menu-btn[aria-expanded="true"] .i-close{ display:block; }
.nav-scrim{ position:fixed; inset:0; z-index:40; background:rgba(0,30,62,.28); opacity:0; pointer-events:none; transition:opacity .18s ease; }
.nav-scrim.show{ opacity:1; pointer-events:auto; }
@media (max-width:1120px){
  .head-row{ gap:14px; }
  .nav{ gap:2px; }
  .nav a{ padding:7px 9px; font-size:.87rem; }
}
@media (max-width:860px){
  .menu-btn{ display:inline-flex; }
  .nav{ position:absolute; top:calc(100% + 8px); right:16px; width:min(300px, calc(100vw - 32px)); margin:0;
    flex-direction:column; gap:2px; padding:10px; overflow:visible;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 18px 40px rgba(0,30,62,.22);
    opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .16s ease, transform .16s ease, visibility 0s linear .16s; }
  .nav.open{ opacity:1; visibility:visible; transform:none; transition:opacity .16s ease, transform .16s ease; }
  .nav a{ padding:12px 14px; border-radius:10px; font-size:1rem; }
  .nav .nav-cta{ margin:6px 0 0; text-align:center; border-radius:999px; }
}
@media (max-width:520px){
  .nav{ left:16px; right:16px; width:auto; }
}
@media (min-width:861px) and (max-width:1060px){
  .head-row > .brand span{ display:none; }
}
.page-title{ font-size:clamp(2rem, 4.6vw, 3.1rem); font-weight:700; }
main > .section:first-child{ padding-top:clamp(40px,6vw,72px); }

.doors{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.door{ display:grid; gap:12px; align-content:start; padding:clamp(24px,3vw,36px); border-radius:var(--radius); text-decoration:none; color:var(--ink); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); transition:transform .15s ease, box-shadow .15s ease; position:relative; overflow:hidden; }
.door:hover{ transform:translateY(-2px); }
.door::after{ content:""; position:absolute; right:-30px; top:-30px; width:120px; height:120px; background:var(--pink); opacity:.28; clip-path:path("M60 112 13 69A30 30 0 0 1 60 25 30 30 0 0 1 107 69Z"); }
.door.alt{ background:var(--navy); border-color:var(--navy); color:var(--ground); }
.door.alt h3{ color:var(--ground); }
.door.alt .eyebrow{ color:var(--pink); }
.door.alt p{ color:color-mix(in srgb, var(--ground) 82%, transparent); }
.door h3{ font-size:clamp(1.4rem,2.6vw,1.9rem); }
.door p{ color:var(--ink-2); }
.door .go{ font-family:var(--display); font-weight:600; display:inline-flex; align-items:center; gap:8px; margin-top:6px; }
.door .go svg{ width:18px; height:18px; transition:transform .15s ease; }
.door:hover .go svg{ transform:translateX(3px); }
@media (max-width:760px){ .doors{ grid-template-columns:1fr; } }

.home-story{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media (max-width:820px){ .home-story{ grid-template-columns:1fr; } }
.textlink{ font-family:var(--display); font-weight:600; color:var(--sky-deep); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.textlink:hover{ text-decoration:underline; }
.textlink svg{ width:16px; height:16px; }

.next{ display:grid; gap:16px; }
.next-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.next-grid.two{ grid-template-columns:repeat(2,1fr); }
.next-card{ display:grid; gap:6px; padding:20px 22px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); text-decoration:none; color:var(--ink); transition:border-color .15s ease, transform .15s ease; }
.next-card:hover{ border-color:var(--sky); transform:translateY(-1px); }
.next-card b{ font-family:var(--display); font-weight:600; font-size:1.1rem; color:var(--navy); display:flex; justify-content:space-between; gap:8px; align-items:center; }
.next-card b svg{ width:18px; height:18px; flex:none; color:var(--sky-deep); }
.next-card span{ color:var(--ink-2); font-size:.93em; }
@media (max-width:820px){ .next-grid, .next-grid.two{ grid-template-columns:1fr; } }

.cta-band{ background:var(--navy); color:var(--ground); position:relative; overflow:hidden; }
.cta-band::after{ content:""; position:absolute; inset:0; background:linear-gradient(155deg, transparent 0 58%, color-mix(in srgb, var(--sky) 30%, transparent) 58% 72%, transparent 72%); pointer-events:none; }
.cta-band .wrap{ position:relative; z-index:1; padding-block:clamp(40px,6vw,64px); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; }
.cta-band h2{ color:var(--ground); font-size:clamp(1.4rem,3vw,2rem); max-width:22em; }
.cta-band .btn{ background:var(--pink); border-color:var(--pink); color:#3A0F3A; }
.nav{ order:2; margin-left:auto; }
.textsize{ order:3; }
.menu-btn{ order:4; }
@media (max-width:860px){
  .textsize{ order:1; margin-left:auto; }
  .menu-btn{ order:2; }
}
@media (max-width:460px){
  .menu-label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .menu-btn{ padding:9px 11px; }
  .brand span{ font-size:.95rem; }
  .head-row{ gap:10px; }
}
.home-story .story-video{ grid-template-columns:1fr; margin-bottom:0; }
.ts-label{ font-family:var(--display); font-size:.78rem; font-weight:600; color:var(--ink-2); padding:0 4px 0 10px; }
@media (max-width:1180px){ .ts-label{ display:none; } }
.share-box{ margin-top:24px; padding:22px 24px; border-radius:var(--radius); background:var(--sky-soft); display:grid; grid-template-columns:1fr auto; gap:18px 28px; align-items:center; }
.share-copy{ display:grid; gap:6px; }
.share-actions{ display:flex; flex-wrap:wrap; gap:10px; }
@media (max-width:820px){ .share-box{ grid-template-columns:1fr; } }
.plan{ display:grid; gap:16px; padding:clamp(18px,3vw,28px); margin-bottom:32px; border-radius:var(--radius); background:var(--ground); border:1px solid var(--line); }
.plan-head{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px 24px; align-items:start; }
.plan-head > div:first-child{ display:grid; gap:4px; max-width:34rem; }
.plan-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.plan-fields{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:760px){ .plan-fields{ grid-template-columns:1fr; } }
.plan .field input, .plan .field textarea{ font:inherit; font-size:1rem; padding:10px 12px; border-radius:10px; border:1.5px solid var(--line); background:var(--surface); color:var(--ink); width:100%; }
.plan .field label{ font-weight:700; font-size:.92em; }
.plan .field textarea{ min-height:84px; resize:vertical; }
.plan .field input:focus, .plan .field textarea:focus{ outline:none; border-color:var(--sky-deep); box-shadow:0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.sense-list li.pick{ padding:0; }
.sense-list li.pick label{ display:flex; gap:10px; align-items:flex-start; padding:10px 14px; cursor:pointer; border-radius:10px; }
.sense-list li.pick input{ width:18px; height:18px; margin-top:3px; accent-color:var(--navy); flex:none; }
.sense-list li.pick:has(input:checked){ background:var(--sky-soft); border-color:transparent; }
#planReport{ display:none; }
@media print{
  body.print-plan > *:not(#planReport){ display:none!important; }
  body.print-plan #planReport{ display:block!important; }
  body.print-plan{ background:#fff; }
}
.contact.page-contact{ padding-top:clamp(48px,7vw,88px); }

/* ---------- shared print for tools ---------- */
#printDoc{ display:none; }
@media print{
  body.print-doc > *:not(#printDoc){ display:none!important; }
  body.print-doc #printDoc{ display:block!important; }
  body.print-doc{ background:#fff; }
}
.field-label{ font-weight:700; font-size:.92em; margin:4px 0 0; }
.hint{ color:var(--ink-2); font-size:.85em; }

/* ---------- All About Me ---------- */
.privacy{ display:grid; grid-template-columns:auto 1fr; gap:18px; padding:clamp(18px,3vw,26px); border-radius:var(--radius); background:var(--navy); color:var(--ground); margin-bottom:32px; }
.privacy-icon{ width:48px; height:48px; color:var(--pink); }
.privacy-copy{ display:grid; gap:10px; max-width:48rem; }
.privacy h2{ color:var(--ground); font-size:clamp(1.25rem,2.4vw,1.6rem); }
.privacy p{ color:color-mix(in srgb, var(--ground) 86%, transparent); }
.privacy-controls{ display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; margin-top:4px; }
.privacy .reset{ color:var(--pink); }
.switch{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-weight:700; }
.switch input{ width:20px; height:20px; accent-color:var(--pink); }
@media (max-width:560px){ .privacy{ grid-template-columns:1fr; } }

.am-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(20px,3vw,40px); align-items:start; }
@media (max-width:980px){ .am-grid{ grid-template-columns:1fr; } }
.am-form{ display:grid; gap:18px; }
.am-form fieldset{ margin:0; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:18px 20px 20px; display:grid; gap:14px; min-width:0; }
.am-form legend{ font-family:var(--display); font-weight:600; font-size:1.15rem; color:var(--navy); padding:0 6px; }
.am-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .am-row{ grid-template-columns:1fr; } }
.am-form .field input:not([type=checkbox]):not([type=file]), .am-form .field textarea, .am-form .field select,
.sm-controls .field input:not([type=file]){ font:inherit; font-size:1rem; padding:10px 12px; border-radius:10px; border:1.5px solid var(--line); background:var(--ground); color:var(--ink); width:100%; }
.am-form .field textarea{ min-height:76px; resize:vertical; }
.am-form .field input:focus, .am-form .field textarea:focus, .am-form .field select:focus, .sm-controls .field input:focus{ outline:none; border-color:var(--sky-deep); box-shadow:0 0 0 3px color-mix(in srgb, var(--sky) 35%, transparent); }
.am-form .field label, .sm-controls .field label{ font-weight:700; font-size:.92em; }
.photo-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.photo-row input{ font:inherit; font-size:.9rem; max-width:100%; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chips label{ cursor:pointer; }
.chips input{ position:absolute; opacity:0; width:1px; height:1px; }
.chips span{ display:inline-block; padding:8px 14px; border-radius:999px; border:1.5px solid var(--line); background:var(--ground); font-size:.93rem; }
.chips input:checked + span{ background:var(--navy); border-color:var(--navy); color:var(--ground); }
.chips input:focus-visible + span{ outline:3px solid var(--pink-deep); outline-offset:2px; }
.check-line{ display:flex; gap:10px; align-items:flex-start; font-weight:700; cursor:pointer; }
.check-line input{ width:20px; height:20px; margin-top:3px; accent-color:var(--navy); flex:none; }
.am-preview-wrap{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 84px); display:grid; gap:14px; }
@media (max-width:980px){ .am-preview-wrap{ position:static; } }
.am-preview-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 16px; }
.am-preview{ max-height:calc(100vh - 190px); overflow:auto; border-radius:18px; }
@media (max-width:980px){ .am-preview{ max-height:none; } }

/* ---------- Schedule maker ---------- */
.sm-grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(20px,3vw,40px); align-items:start; }
@media (max-width:980px){ .sm-grid{ grid-template-columns:1fr; } }
.sm-controls{ display:grid; gap:24px; }
.sm-controls .tool-block + .tool-block{ margin-top:0; }
.sm-controls h3{ font-size:1.1rem; }
.sm-library{ display:grid; grid-template-columns:repeat(auto-fill, minmax(96px,1fr)); gap:8px; }
.sm-pick{ display:grid; justify-items:center; gap:4px; padding:10px 6px; border-radius:12px; border:1.5px solid var(--line); background:#fff; cursor:pointer; font:inherit; font-family:var(--display); font-weight:500; font-size:.82rem; color:#003369; line-height:1.15; text-align:center; }
.sm-pick:hover{ border-color:var(--sky); }
.sm-pick svg{ width:52px; height:52px; }
.sm-board-wrap{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 84px); display:grid; gap:14px; }
@media (max-width:980px){ .sm-board-wrap{ position:static; } }
.sm-board{ border-radius:18px; border:1px solid var(--line); overflow:hidden; background:#fff; }
.sm-board .sched{ padding:18px; }
.sm-board .sched h1{ font-size:24px; }
.sm-board .card{ position:relative; }
.sm-card-tools{ display:flex; gap:4px; justify-content:center; margin-top:4px; }
.sm-card-tools button{ width:32px; height:32px; border-radius:50%; border:1.5px solid #CFE0EE; background:#fff; color:#003369; cursor:pointer; font-size:16px; line-height:1; }
.sm-card-tools button:hover{ border-color:#4FA5DC; }
.sm-opts{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; }

/* ---------- Readiness check ---------- */
.ready{ padding:clamp(20px,3vw,32px); border-radius:var(--radius); background:var(--surface); border:2px solid var(--sky); margin-bottom:40px; display:grid; gap:18px; max-width:52rem; }
.ready-head{ display:grid; gap:6px; }
.ready-head h2{ font-size:clamp(1.4rem,2.8vw,1.9rem); }
.ready-qs{ margin:0; padding-left:1.4em; display:grid; gap:16px; }
.ready-qs li::marker{ font-family:var(--display); font-weight:600; color:var(--sky-deep); }
.ready-qs p{ font-weight:700; margin-bottom:8px; }
.ready-card{ background:var(--sky-soft); border-radius:12px; padding:20px 22px; display:grid; gap:10px; }
.ready-card h3{ font-size:1.3rem; }
.ready-card ul{ margin:0; padding-left:1.1em; display:grid; gap:8px; }

/* ---------- tool cards ---------- */
.tool-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:820px){ .tool-cards{ grid-template-columns:1fr; } }
