/* ==========================================================================
   KidSetGo marketing site: the one stylesheet for every page.
   Light theme only. One self-hosted font (the wordmark), no imports,
   nothing from other domains.
   Groups: 1 Colors, 2 Base, 3 Layout, 4 Type, 5 Buttons, 6 Cards and tags,
           7 Kid avatars, 8 Sections (page-specific rules go last: 8a header,
           8b hero, 8c comparison, 8d AI help, 8e practice, 8f points and
           requests, 8g for kids, 8h stickers and gifts, 8i LED board,
           8j privacy, 8k closing, 8l footer, 8m plain pages, 8n home extras), 9 Phones (one breakpoint).
   ========================================================================== */

/* The wordmark's font: Nunito Black, one file we host ourselves (brand.md 2, site.md S34).
   It is used only for the word "KidSetGo". Everything else uses the device's own font.
   The path is relative to this file (assets/). */
@font-face {
  font-family: "Nunito";
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  src: url("fonts/Nunito-Black.woff2") format("woff2");
}

/* 1. COLORS --------------------------------------------------------------
   Every color lives here once. Use var(--name) everywhere else. */
:root {
  /* Brand */
  --blue: #2F5BEA;        /* main brand blue: buttons, links */
  --navy: #1E3A8A;        /* dark blue: gradients, strong text on light blue */
  --blue-tint: #E6ECFE;   /* light blue tag background */
  --blue-wash: #EEF2FE;   /* very light blue highlight */
  --blue-soft-text: #E6ECFE; /* text on the dark blue and navy panels (4.5:1 or better) */
  --green-wash: #EAF7EF;  /* very light green band */

  /* Backgrounds */
  --bg: #F7F8FA;          /* page background */
  --white: #FFFFFF;       /* cards */
  --ink: #0E1530;         /* very dark navy: phone frames */

  /* Text and greys, dark to light */
  --text: #11181C;        /* main text */
  --grey-1: #3C4449;
  --grey-2: #4B5459;      /* body text on white */
  --grey-3: #687076;      /* small, quiet text */
  --grey-4: #C1C8CD;      /* borders, empty dots */
  --grey-5: #E6E8EB;      /* thin lines, empty bars */
  --grey-6: #F1F3F5;      /* light chips */

  /* Green for good things (+ points, Approve) */
  --green-text: #18794E;  /* text on light green */
  --green-tint: #E6F6EB;  /* light green background */

  /* Amber for notes */
  --amber-text: #5C4300;
  --amber-tint: #FFF4D6;

  /* The 8 kid colors (same as the app and the LED board) */
  --red: #E5484D;
  --orange: #F76B15;
  --yellow: #FFC53D;
  --green: #30A46C;
  --sky: #0EA5E9;
  --purple: #8E4EC6;
  --pink: #D6409F;
  --teal: #12A594;

  /* Shape */
  --radius-s: 8px;
  --radius-m: 12px;
  --radius-l: 18px;
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-phone: 0 28px 60px rgba(0, 0, 0, 0.45);
  --shadow-row: 0 1px 2px rgba(0, 0, 0, 0.06);
  --shadow-request: 0 6px 24px rgba(17, 24, 28, 0.08);
  --shadow-hover: 0 6px 20px rgba(17, 24, 28, 0.12);
  --shadow-result: 0 10px 30px rgba(17, 24, 28, 0.1);
  --shadow-menu: 0 10px 30px rgba(17, 24, 28, 0.18);
  --shadow-board: 0 16px 40px rgba(17, 24, 28, 0.25);

  /* White at different strengths, for glass-like boxes on dark panels */
  --white-06: rgba(255, 255, 255, 0.06);
  --white-08: rgba(255, 255, 255, 0.08);
  --white-18: rgba(255, 255, 255, 0.18);

  /* Page-specific colors */
  --us-row: #F6F8FF;      /* "KidSetGo" column in the comparison table */
  --sticker-bg: #FFF7E0;  /* earned sticker */
  --board-frame: #2A2520; /* wooden frame around the LED board */
  --board-bg: #0B0B0C;    /* the dark LED panel */
  --board-bar: #3A3A40;   /* empty part of a progress bar on the panel */
}

/* 2. BASE ----------------------------------------------------------------
   Small resets so every browser starts the same. */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  /* The font already on the visitor's device: SF Pro on Apple, Segoe on Windows. */
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;
  line-height: 1.5;
  color: var(--text);
  background: var(--bg);
}

img, svg { max-width: 100%; height: auto; }

a { color: var(--blue); }
a:hover { text-decoration: none; }

/* Keyboard users see a clear ring around whatever has focus. */
:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

/* On dark panels (the hero and the privacy band use the class .on-dark)
   the focus ring is white so it can be seen. */
.on-dark :focus-visible { outline-color: var(--white); }

/* 3. LAYOUT --------------------------------------------------------------*/

/* .wrap keeps content in a centered column. */
.wrap {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Vertical space around a page section. */
.section { padding: 80px 0; }
.section-tight { padding: 40px 0; }

/* .grid-auto: cards sit side by side and wrap when there is no room.
   Change --min to make the cards wider or narrower. */
.grid-auto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--min, 320px), 100%), 1fr));
  gap: 24px;
}

/* Text that screen readers read but nobody sees. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* 4. TYPE ----------------------------------------------------------------*/
h1, h2, h3 { line-height: 1.15; margin: 0 0 12px; }
h1 { font-size: 54px; line-height: 1.06; letter-spacing: -0.025em; font-weight: 800; }
h2 { font-size: 38px; letter-spacing: -0.01em; }
h3 { font-size: 21px; }
p  { margin: 0 0 14px; }

.lead  { max-width: 720px; font-size: 19px; color: var(--grey-2); }  /* big intro sentence */
.small { font-size: 14px; color: var(--grey-3); }  /* quiet note */
.center { text-align: center; }

/* 5. BUTTONS -------------------------------------------------------------
   Use .btn plus one color class, on an <a> or a <button>. */
.btn {
  display: inline-block;
  padding: 13px 22px;
  border-radius: var(--radius-m);
  font-weight: 700;
  font-size: 16px;
  text-align: center;
  text-decoration: none;
}
.btn-primary { background: var(--blue); color: var(--white); }
.btn-primary:hover { background: var(--navy); }
.btn-light { background: var(--white); color: var(--navy); }
.btn-light:hover { background: var(--blue-wash); }

/* 6. CARDS AND TAGS ------------------------------------------------------*/

/* .card: a white box with a soft shadow. */
.card {
  background: var(--white);
  border-radius: var(--radius-l);
  padding: 26px;
  box-shadow: var(--shadow);
}

/* .tag: a small rounded label. Add a color class. */
.tag {
  display: inline-block;
  padding: 4px 9px;
  border-radius: var(--radius-s);
  font-size: 13px;
  font-weight: 700;
}
.tag-blue  { background: var(--blue-tint);  color: var(--navy); }
.tag-green { background: var(--green-tint); color: var(--green-text); }
.tag-amber { background: var(--amber-tint); color: var(--amber-text); }

/* 7. KID AVATARS ---------------------------------------------------------
   An emoji in a circle: light tint inside, a ring in the kid's color.
   Pick a color with a modifier: <span class="avatar kid-pink">🦄</span> */
.avatar {
  --kid: var(--blue);
  --kid-tint: color-mix(in srgb, var(--kid) 15%, var(--white)); /* the kid color at 15% over white, like the app's kid_avatar.dart */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 22px;
  background: var(--kid-tint);
  box-shadow: inset 0 0 0 2px var(--kid);
}
.avatar-lg { width: 56px; height: 56px; font-size: 30px; box-shadow: inset 0 0 0 3px var(--kid); }

.kid-red    { --kid: var(--red); }
.kid-orange { --kid: var(--orange); }
.kid-yellow { --kid: var(--yellow); }
.kid-green  { --kid: var(--green); }
.kid-sky    { --kid: var(--sky); }
.kid-purple { --kid: var(--purple); }
.kid-pink   { --kid: var(--pink); }
.kid-teal   { --kid: var(--teal); }

/* 8. SECTIONS ------------------------------------------------------------
   Rules for one part of the page go below, under a comment with its name.
   */

/* ---- Shared page pieces ------------------------------------------------ */

/* A section that has its own background color, full width. */
.band { padding: 72px 0; }
.band-green { background: var(--green-wash); }
.band-white { background: var(--white); }
.band-navy  { background: var(--navy); color: var(--white); }

/* Smaller headings. */
.h2-lg { font-size: 42px; }
.h2-md { font-size: 34px; }
.h2-sm { font-size: 28px; }

/* Grid column widths for .grid-auto. */
.min-220 { --min: 220px; }
.min-240 { --min: 240px; }
.min-280 { --min: 280px; }

.narrow { max-width: 640px; margin-left: auto; margin-right: auto; }
.muted  { color: var(--grey-2); }
.text-md { font-size: 18px; color: var(--grey-2); }
.text-sm { font-size: 15px; }
.card-pad { padding: 30px; }
.card-emoji { font-size: 30px; }
.card h3 { margin: 10px 0 6px; }
.card p:last-child { margin-bottom: 0; }

/* Text on one side, a picture on the other. Wraps on narrow screens. */
.split { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; }
.split-text { flex: 1 1 420px; min-width: 0; }
.split-pic { flex: 0 1 360px; min-width: 0; display: flex; justify-content: center; }
/* wrap-reverse puts the picture under the text when the row wraps on phones. */
.split-reverse { flex-wrap: wrap-reverse; }

.btn-big { font-size: 17px; padding: 14px 24px; }
.hl { color: var(--yellow); }

/* 8a. HEADER -------------------------------------------------------------*/
.site-header { background: var(--white); border-bottom: 1px solid var(--grey-5); }
.header-row { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; padding-top: 10px; padding-bottom: 10px; }
.brand {
  display: flex; align-items: center; gap: 10px; min-height: 44px;
  color: var(--text); font-weight: 700; font-size: 18px; text-decoration: none;
}
.brand img { border-radius: 9px; }
.nav-wide { display: flex; flex-wrap: wrap; gap: 0 22px; flex-grow: 1; font-size: 15px; }
.nav-wide a, .menu-list a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--grey-1); text-decoration: none;
}
.nav-wide a:hover, .menu-list a:hover { color: var(--blue); text-decoration: underline; }
.header-cta { font-size: 15px; padding: 10px 18px; }

/* The phone menu is a <details>: it opens and closes with no JavaScript. */
.menu { display: none; }
.menu summary {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; cursor: pointer; list-style: none; color: var(--text);
}
.menu summary::-webkit-details-marker { display: none; }
.menu-list {
  position: absolute; right: 16px; left: 16px; z-index: 5; margin-top: 6px;
  display: flex; flex-direction: column; padding: 8px 20px;
  background: var(--white); border-radius: var(--radius-m); box-shadow: var(--shadow-menu);
}
.menu-list a { font-size: 17px; }

/* 8b. HERO ---------------------------------------------------------------*/
.hero { background: linear-gradient(135deg, var(--navy) 0%, var(--blue) 100%); color: var(--white); }
.hero-row { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 72px; padding-bottom: 64px; }
.hero-text { flex: 1 1 420px; min-width: 0; }
.hero h1 { margin-bottom: 18px; font-size: 40px; line-height: 1.12; letter-spacing: -0.02em; }
.hero-lead { max-width: 540px; font-size: 18px; font-weight: 600; }
.hero-sub { max-width: 520px; margin-bottom: 28px; font-size: 17px; color: var(--blue-soft-text); }
.hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.hero-note { font-size: 15px; color: var(--blue-soft-text); }

/* The two phones: real app screenshots (assets/shots, 2x WebP) inside a drawn
   frame. The image fills the frame and is cropped from the bottom, so the
   parent's shorter frame shows only the top of its screen (the request). */
.hero-pics { flex: 0 1 560px; }
.hero-pics-inner { display: flex; align-items: center; justify-content: center; gap: 14px; }
.phone-col { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.phone-label { font-size: 15px; font-weight: 800; letter-spacing: 0.1em; }
.phone-frame {
  flex: none; overflow: hidden; background: var(--bg);
  box-sizing: content-box; /* width and height are the screen itself, the border sits outside */
  border: 9px solid var(--ink); box-shadow: var(--shadow-phone);
}
.frame-kid { width: 330px; height: 484px; border-radius: 48px; } /* ends under the Keep fixing button */
.phone-frame img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
/* The kid screenshot starts under the empty status-bar area and the "Switch kid · Parent" row. */
.frame-kid img { object-position: 50% -84px; }

/* 8c. WHY IT IS DIFFERENT (comparison table) -----------------------------*/
.table-box { margin-top: 32px; overflow-x: auto; background: var(--white); border-radius: 20px; box-shadow: var(--shadow); }
.compare { width: 100%; border-collapse: collapse; font-size: 17px; }
.compare th { padding: 18px 24px; text-align: left; font-weight: 600; color: var(--grey-3); width: 44%; }
.compare th.us { width: auto; background: var(--blue-wash); color: var(--navy); font-weight: 800; }
.compare td { padding: 16px 24px; border-top: 1px solid var(--grey-5); color: var(--grey-3); }
.compare td.us { background: var(--us-row); color: var(--text); font-weight: 600; }
.two-cards { margin-top: 24px; gap: 20px; }
.link-card {
  display: flex; flex-direction: column; gap: 6px; padding: 26px 28px;
  background: var(--white); border-radius: 20px; box-shadow: var(--shadow);
  color: var(--grey-2); text-decoration: none;
}
.link-card:hover { box-shadow: var(--shadow-hover); }
.link-card-title { font-size: 22px; font-weight: 800; color: var(--text); }
.card-green { border-top: 5px solid var(--green); }
.card-blue  { border-top: 5px solid var(--blue); }

/* 8d. AI HELP ------------------------------------------------------------*/
.ai-row { display: flex; flex-wrap: wrap; align-items: stretch; gap: 32px; margin-top: 36px; }
.steps { flex: 1 1 440px; min-width: 0; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.step { display: flex; gap: 14px; padding: 18px 20px; border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }
.step-num {
  flex: 0 0 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: var(--blue); color: var(--white); font-weight: 800;
}
.step-dark { background: var(--navy); color: var(--white); box-shadow: none; }
.step-dark .step-num { background: var(--yellow); color: var(--navy); }
.result-card { flex: 0 1 380px; padding: 24px; border-radius: 20px; background: var(--white); box-shadow: var(--shadow-result); }
.result-inner { display: flex; flex-direction: column; gap: 14px; }
.result-head { display: flex; align-items: center; gap: 10px; }
.result-title { font-weight: 700; }
.result-stats { display: flex; gap: 10px; }
.stat { flex: 1; padding: 12px; border-radius: var(--radius-m); background: var(--bg); }
.stat-good { background: var(--green-tint); }
.stat-good .stat-big { color: var(--green-text); }
.stat-big { font-size: 26px; font-weight: 800; }
.stat-small { font-size: 13px; color: var(--grey-1); }
.needed-title { margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--grey-3); }
.needed-words { display: flex; flex-wrap: wrap; gap: 8px; }
.word { padding: 5px 10px; font-size: 16px; font-weight: 600; }
.next-set { font-size: 14px; color: var(--grey-1); }
.fake-button { padding: 13px; border-radius: var(--radius-m); background: var(--blue); color: var(--white); font-weight: 700; text-align: center; }
.trust { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.trust li { flex: 1 1 240px; padding: 12px 16px; border-radius: var(--radius-m); background: var(--white); }

/* 8e. PRACTICE -----------------------------------------------------------*/
.tag-label-green { background: var(--white); color: var(--green-text); }
.section-tag { margin-bottom: 12px; }
.lead-dark { color: var(--grey-1); }
.mini-phone {
  width: 308px; max-width: 100%; padding: 22px 16px; border-radius: 34px; border: 8px solid var(--ink);
  background: var(--bg);
}
.mini-inner { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.mini-top { width: 100%; display: flex; justify-content: space-between; font-size: 12px; color: var(--grey-3); }
.mini-track { width: 100%; height: 6px; border-radius: 3px; background: var(--grey-5); }
.mini-fill { width: 40%; height: 6px; border-radius: 3px; background: var(--blue); }
.mini-speaker { color: var(--white); display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; margin-top: 8px; border-radius: 50%; background: var(--blue); }
.mini-hint { font-size: 14px; color: var(--grey-2); }
.mini-input { width: 100%; padding: 12px; border: 2px solid var(--blue); border-radius: 14px; background: var(--white); font-size: 22px; font-weight: 700; letter-spacing: 0.04em; }
.mini-check { width: 100%; padding: 12px; border-radius: 14px; background: var(--blue); color: var(--white); font-weight: 700; text-align: center; }
.mini-points { font-size: 12px; font-weight: 600; color: var(--green-text); }
.kinds { margin-top: 48px; gap: 20px; }
.rules { margin-top: 20px; padding: 26px 30px; }
.rules h3 { margin-top: 0; }
.rules-grid { --min: 220px; gap: 14px 28px; font-size: 16px; color: var(--grey-1); }
.rules-grid strong { color: var(--text); }

/* 8f. HOW POINTS WORK, REQUESTS -------------------------------------------*/
.request-card {
  flex: 0 1 380px; display: flex; overflow: hidden;
  background: var(--white); border-radius: var(--radius-l); box-shadow: var(--shadow-request);
}
.request-stripe { width: 6px; background: var(--kid); }
.request-body { flex-grow: 1; display: flex; flex-direction: column; gap: 14px; padding: 20px; }
.request-who { display: flex; align-items: center; gap: 10px; }
.request-name { font-weight: 700; }
.request-amounts, .request-actions { display: flex; gap: 8px; }
.amount { flex: 1; padding: 8px 0; border-radius: 10px; background: var(--grey-6); font-weight: 600; text-align: center; }
.amount-on { background: var(--green-tint); box-shadow: inset 0 0 0 2px var(--green); color: var(--green-text); font-weight: 700; }
.approve { flex: 2; padding: 11px 0; border-radius: var(--radius-m); background: var(--green-text); color: var(--white); font-weight: 700; text-align: center; }
.decline { flex: 1; padding: 11px 0; border-radius: var(--radius-m); background: var(--grey-6); color: var(--grey-1); font-size: 14px; font-weight: 600; text-align: center; }

/* 8g. FOR KIDS -----------------------------------------------------------*/
.kids-screens { flex: 0 1 500px; display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.mini-small { width: 238px; padding: 18px 12px; border-width: 7px; border-radius: 28px; }
.mini-small .mini-inner { gap: 8px; }
.lock-label { align-self: flex-end; font-size: 11px; color: var(--grey-3); }
.who-title { margin-bottom: 4px; font-size: 18px; font-weight: 800; }
.who-row { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 14px; background: var(--white); box-shadow: var(--shadow-row); }
.who-name { font-size: 16px; font-weight: 700; }
.pin-dots { display: flex; gap: 8px; margin: 4px 0 8px; }
.pin-dot { width: 11px; height: 11px; border: 2px solid var(--grey-4); border-radius: 50%; }
.pin-dot.on { border-color: var(--blue); background: var(--blue); }
.keys { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.keys span { padding: 6px 0; border-radius: 10px; background: var(--white); font-size: 14px; font-weight: 600; text-align: center; }
.plain-list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 17px; }

/* 8h. STICKERS AND GIFTS -------------------------------------------------*/
.card-pad h2 { margin-bottom: 8px; }
.sticker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.sticker { display: flex; flex-direction: column; align-items: center; padding: 12px 6px; border-radius: 14px; background: var(--sticker-bg); text-align: center; }
.sticker-emoji { font-size: 28px; }
.sticker-name { font-size: 12px; font-weight: 700; color: var(--grey-1); }
.sticker-locked { background: var(--grey-6); }
.sticker-locked .sticker-emoji { opacity: 0.45; filter: grayscale(1); }
.sticker-locked .sticker-name { color: var(--grey-3); }
.gift-list { display: flex; flex-direction: column; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.gift { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: var(--radius-m); background: var(--bg); }

/* 8i. LED BOARD ----------------------------------------------------------
   Drawn like the real panel: dark, dotted, one row per kid. */
.board-pic { flex: 0 1 460px; display: flex; justify-content: center; }
.board-frame { padding: 18px; border-radius: var(--radius-s); background: var(--board-frame); box-shadow: var(--shadow-board); }
.board {
  width: 384px; max-width: 100%; height: 192px; padding: 14px 16px;
  display: flex; flex-direction: column; justify-content: space-between;
  background-color: var(--board-bg);
  background-image: radial-gradient(var(--white-06) 1px, transparent 1.3px);
  background-size: 6px 6px;
}
.board-row { display: flex; flex-direction: column; gap: 6px; }
.board-line {
  display: flex; justify-content: space-between;
  font-family: "Courier New", ui-monospace, monospace; font-size: 30px; font-weight: 700; line-height: 1; letter-spacing: 0.14em;
}
.board-name { color: var(--kid); }
.board-points { color: var(--white); }
.board-bar { height: 4px; background: var(--board-bar); }
.board-fill { height: 4px; background: var(--kid); }
.fill-50 { width: 50%; }
.fill-75 { width: 75%; }
.fill-79 { width: 79%; }

/* 8j. PRIVACY PROMISE ----------------------------------------------------*/
.privacy-title { max-width: 760px; margin-bottom: 14px; }
.privacy-lead { max-width: 680px; margin-bottom: 32px; font-size: 18px; color: var(--blue-soft-text); }
.dark-card { padding: 20px; border-radius: 16px; background: var(--white-08); }
.dark-card h3 { margin-bottom: 4px; font-size: 18px; }
.dark-card p { margin: 0; color: var(--blue-soft-text); }
.privacy-link { margin: 28px 0 0; }
.privacy-link a { color: var(--white); font-weight: 600; }

/* 8k. CLOSING CALL TO ACTION ---------------------------------------------*/
.closing-inner { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.closing-inner h2, .closing-inner p { margin: 0; }

/* 8l. FOOTER -------------------------------------------------------------*/
.site-footer { background: var(--white); border-top: 1px solid var(--grey-5); }
.footer-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0 28px; padding-top: 12px; padding-bottom: 12px; font-size: 14px; color: var(--grey-2); }
.footer-company { flex-grow: 1; }
.footer-row a { display: inline-flex; align-items: center; min-height: 44px; color: var(--grey-2); }

/* 8m. PLAIN PAGES (404 and the legal drafts) ------------------------------*/
.plain-page { padding: 56px 0 80px; }
.plain-page .wrap { max-width: 760px; }
.plain-center { text-align: center; }
.plain-center .wrap { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.plain-center h1, .plain-center p { margin: 0; } /* spacing comes from the gap above */
.draft-banner {
  margin-bottom: 28px; padding: 14px 18px; border-radius: var(--radius-m);
  background: var(--yellow); color: var(--navy); font-size: 16px;
}

/* Legal pages (S3): version line, section rhythm, the lawyer's box. */
.version { margin: -4px 0 28px; font-size: 14px; color: var(--grey-3); }
.legal h2 { font-size: 24px; margin-top: 36px; }
.legal p, .legal li { line-height: 1.55; }
.legal ul, .legal ol { padding-left: 22px; }
.legal li { margin-bottom: 6px; }
.legal li + li { margin-top: 2px; }
.flags {
  margin-top: 48px; padding: 20px 22px; border-radius: var(--radius-m);
  background: var(--amber-tint); color: var(--amber-text); border: 1px solid #F0D27A;
}
.flags h2 { margin-top: 0; font-size: 20px; color: var(--amber-text); }
.flags ol { margin: 0; }

/* ---- 8n. Home page extras (S7): the parent's week ---------------------- */

/* Four "ways to put in what school sent" cards. */
.ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin-top: 24px; }
.way { background: var(--white); border-radius: 16px; padding: 20px; box-shadow: var(--shadow); }
.way .card-emoji { font-size: 28px; margin-bottom: 6px; }
.way h3 { margin: 0 0 6px; font-size: 18px; }
.way p { margin: 0; color: var(--grey-2); font-size: 15px; line-height: 1.45; }
.way .way-note { margin-top: 8px; font-size: 13px; color: var(--grey-3); }

/* The "your kid learns it alone" steps. */
.learn-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-top: 24px; }
.learn-step { position: relative; background: var(--white); border-radius: 16px; padding: 20px; box-shadow: var(--shadow); }
.learn-step .n {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-bottom: 10px;
  border-radius: 50%; background: var(--blue); color: var(--white); font-weight: 700;
}
.learn-step h3 { margin: 0 0 6px; font-size: 17px; }
.learn-step p { margin: 0; color: var(--grey-2); font-size: 15px; line-height: 1.45; }

/* The drawn paper sheet. */
.paper { background: var(--white); width: 230px; margin: 0 auto; padding: 16px 18px; border-radius: 6px; box-shadow: 0 8px 24px rgba(16, 24, 40, 0.15); transform: rotate(-2deg); font-size: 12px; color: var(--text); }
.paper .p-head { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--grey-5); padding-bottom: 6px; margin-bottom: 8px; }
.paper .p-head b { font-size: 13px; }
.paper .p-qr { width: 26px; height: 26px; background: repeating-linear-gradient(90deg, #111 0 3px, #fff 3px 6px), repeating-linear-gradient(0deg, #111 0 3px, #fff 3px 6px); background-blend-mode: multiply; border: 2px solid #111; }
.paper .p-row { display: flex; justify-content: space-between; padding: 4px 0; border-bottom: 1px dotted var(--grey-5); }
.paper .p-row span:last-child { color: var(--grey-4); }
.paper .p-foot { margin-top: 8px; font-size: 10.5px; color: var(--grey-3); }

/* The drawn Sunday email. */
.email-card { background: var(--white); border-radius: 16px; padding: 16px 18px; max-width: 380px; margin: 16px auto 0; box-shadow: var(--shadow); border: 1px solid var(--grey-5); font-size: 13.5px; color: var(--text); }
.email-card .e-from { font-size: 12px; color: var(--grey-3); margin-bottom: 6px; }
.email-card .e-subj { font-weight: 700; margin-bottom: 8px; }
.email-card p { margin: 4px 0; }
.email-card .e-kid { font-weight: 600; }

/* A section with a soft blue background. */
.band-blue { background: var(--blue-wash); }

/* A little space above a split row (instead of an inline style). */
.split-gap { margin-top: 32px; }

/* Two real screenshots in smaller phone frames: "Add practice" (Monday) and
   "Progress" (Sunday). The picture fills the frame and is cropped: Progress shows
   the top of its screen, the Add practice sheet shows the bottom of its screen. */
.frame-shot { width: 280px; height: 500px; border-radius: 40px; }
.frame-progress { height: 609px; } /* the whole page: 280 px wide shows 804 x 1748 as 280 x 609 */
.frame-progress img { object-position: top; }
.frame-add img { object-position: bottom; }
/* "Progress" sits above the email card, not beside it. */
#progress .split-pic { flex-direction: column; align-items: center; }

/* Closing line. */
.tagline { font-size: 28px; font-weight: 800; letter-spacing: -0.01em; color: var(--navy); margin: 0 0 6px; }
@media (min-width: 800px) { .tagline { font-size: 36px; } }

/* The KidSetGo wordmark: Nunito Black. "Go" is blue on light, gold on the blue hero. */
.wordmark { font-family: "Nunito", -apple-system, system-ui, sans-serif; font-weight: 900; letter-spacing: -0.02em; }
.wordmark .go { color: var(--blue); }
.on-dark .wordmark { color: var(--white); }
.on-dark .wordmark .go { color: var(--yellow); }
.brand .wordmark { color: var(--navy); }
.closing-mark { width: 110px; height: 110px; }
.closing-name { font-size: 40px; margin: 8px 0 0; }

/* 9. PHONES (700px and narrower): one column, menu instead of links -------------*/
@media (max-width: 700px) {
  /* Less side padding and smaller headings. */
  .wrap { padding: 0 16px; }
  h1 { font-size: 36px; }
  h2 { font-size: 28px; }

  .nav-wide, .header-cta { display: none; }
  .menu { display: block; margin-left: auto; }
  .header-row { flex-wrap: nowrap; }

  .h2-lg, .h2-md { font-size: 28px; }
  .band { padding: 40px 0; }
  .section { padding: 44px 0; }
  .hero-row { padding-top: 40px; padding-bottom: 44px; gap: 24px; }
  .hero h1 { font-size: 30px; }
  .hero-lead { font-size: 17px; }
  .hero-sub { font-size: 16px; margin-bottom: 18px; }
  .btn-big, .closing-inner .btn { display: block; width: 100%; }
  .hero-cta { gap: 8px; }
  .split, .split-reverse { gap: 28px; }

  /* The hero phone sits under the text. */
  .hero-pics-inner { flex-direction: column; gap: 12px; }
  .frame-kid { width: 300px; height: 439px; border-radius: 46px; }
  .frame-kid img { object-position: 50% -78px; }

  /* The comparison table becomes stacked rows. */
  .table-box { overflow: visible; background: none; box-shadow: none; }
  .compare, .compare tbody, .compare tr, .compare td { display: block; }
  .compare thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  .compare tr { margin-bottom: 10px; padding: 14px 16px; border-radius: 14px; background: var(--white); }
  .compare td, .compare td.us { padding: 0; border: 0; background: none; }
  .compare td { font-size: 14px; text-decoration: line-through; }
  .compare td.us { font-size: 17px; font-weight: 700; text-decoration: none; }

  .step { padding: 14px 16px; }
  .card-pad { padding: 22px; }
  .privacy-title { font-size: 28px; }
  .footer-row { flex-direction: column; align-items: flex-start; gap: 0; }
  .footer-company { order: 5; flex-grow: 0; padding-bottom: 8px; color: var(--grey-3); }
  .board-pic { flex: 1 1 100%; }
  .board-frame { width: 100%; }
  .board { width: 100%; }
}

/* Very narrow phones (under 360px): keep the kid phone inside the column. */
@media (max-width: 359px) {
  .frame-kid { width: 257px; height: 377px; border-radius: 42px; }
  .frame-kid img { object-position: 50% -66px; }
  /* The two screenshot frames of the Monday and Sunday sections: 280 + 18 border must fit 320 - 32. */
  .frame-shot { width: 250px; }
  .frame-shot.frame-progress { height: 544px; }
}
