@charset "UTF-8";
/*
 * Summer Camp 2026 — V10 Editorial Brand
 *
 * Loaded ONLY by app/views/layouts/summer_camp.html.erb.
 * Scoped under .v10 — must NEVER leak to non-summercamp pages.
 *
 * Brand rules (non-negotiable):
 * - Cormorant Garamond for headings, Inter for body
 * - NO #FFFFFF backgrounds, NO #000000 text, NO gradients on solid surfaces
 * - Burgundy is the ONLY CTA color
 * - Sage = atmosphere only, never type, never CTA
 * - Walnut = eyebrows (uppercase, .22em letter-spacing)
 *
 * Reference: docs/mockups/summercamp-hub.html (canonical V10 implementation)
 */
/*
 * Shared v10 marketing palette tokens.
 *
 * Scoped to .v10 (summer camp) AND .v10-tc (trial class) — never global.
 * Imported by summer_camp.scss and trial_class.scss.
 *
 * Brand rules (non-negotiable):
 * - Cormorant Garamond for headings, Inter for body
 * - NO #FFFFFF backgrounds, NO #000000 text, NO gradients on solid surfaces
 * - Burgundy is the ONLY CTA color
 * - Sage = atmosphere only, never type, never CTA
 * - Walnut = eyebrows (uppercase, .22em letter-spacing)
 */
/* line 15, app/assets/stylesheets/_v10_tokens.scss */
.v10, .v10-tc {
  --color-bg:        #F7F3ED;
  /* Paper */
  --color-surface:   #FAF7F2;
  /* Cream */
  --color-border:    #D9CFBE;
  /* Linen */
  --color-oat:       #E8DDC9;
  --color-text:      #1B2B4B;
  /* Navy */
  --color-text-soft: #5C554D;
  /* Stone */
  --color-label:     #8A5C36;
  /* Walnut (eyebrows) — darkened from #9B6B43 to pass WCAG AA 4.5:1 on cream surface */
  --color-sage:      #9AA88F;
  --color-sage-soft: rgba(154, 168, 143, 0.22);
  --color-primary:        #6B1F2E;
  /* Burgundy */
  --color-primary-hover:  #551827;
  --color-accent:      #C2B8A3;
  /* Gold */
  --color-accent-soft: rgba(194, 184, 163, 0.30);
  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-program-title: "Fraunces", "Cormorant Garamond", Georgia, serif;
  --font-body:    "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* line 19, app/assets/stylesheets/summer_camp.scss */
.v10 {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  /* Buttons — Burgundy is the ONLY CTA color */
  /* On dark/burgundy/navy bands the burgundy outline becomes invisible — use paper for contrast. */
  /* Header (campaign mode) */
  /* Sections + bands */
  /* Universal eyebrow→H2 spacing — replaces 62 inline style="margin-top: 20px" instances. */
  /* Common patterns */
  /* Attribution line under a pull-quote — e.g. "— Lori Sayre, TEDx Coach". */
  /* Centered italic note inside a dark band (e.g. curriculum preamble). */
  /* Footer */
  /* Final CTA (burgundy band — reused across all pages) */
  /* Pending section (placeholder for deferred content) */
  /* ========================================================================
   * Hub-specific patterns (used by app/views/summer_camp/index.html.erb)
   * ======================================================================== */
  /* Hero (split: copy left, collage right) */
  /* ------------------------------------------------------------------
   * Hero v2 (A/B challenger): cream bg + sketched illustration on right,
   * editorial headline + 4 program tiles below CTAs.
   * Activated when AbTestService assigns variant 'v2' for summer_camp_hub_hero.
   * ------------------------------------------------------------------ */
  /* Session calendar (3-month grid · A·B·C·D) */
  /* Session tints — 4 distinct V10 hues: Sage / Burgundy-pale / Walnut / Gold */
  /* sage — cool green */
  /* burgundy-pale — soft rose */
  /* walnut — warm tan */
  /* gold — sand */
  /* Session-start letter badge */
  /* Stats / outcome strip */
  /* Two Paths cards */
  /* Program cards (Intensive 4-grid + Project 3-grid) */
  /* Proof grid */
  /* Proof feature (single-Amazon variant) */
  /* Faculty grid (3-col, compact card with 88px circular avatar) */
  /* Related Programs (cross-link cards at bottom of each sub-page) */
  /* Schedule rows (super-care: A/B/C/D session lines with dates) */
  /* FAQ list (used on Super-Care + SAT pages) */
  /* Testimonials (navy band) */
  /* ============================================================
   * SUB-PAGE SHARED PATTERNS
   * Used by Reading / Grammar / Vocabs / SAT / TEDx / YouTube / Amazon
   * ============================================================ */
  /* Sub-page hero (single image, not collage) */
  /* At-a-glance facts strip (4 columns) */
  /* Testimonial cards (used inside .navy-band) */
  /* Honest Fit (Good Fit / Better Fit Elsewhere) */
  /* Final CTA layout grid */
  /* ============================================================
   * READING SUPER CARE — Four Pillars + 8-Book + 3-Step Method + Skills
   * ============================================================ */
  /* Four Pillars (2×2) */
  /* 3-Step Method */
  /* 8-Book Reading List grid */
  /* 6 Skills grid (3×2) */
  /* Sub-page hero alignment (single image right) */
  /* ============================================================
   * TOP 20 GRAMMAR — 4×5 patterns grid + Two Parts (B + D)
   * ============================================================ */
  /* Two-Sessions split (Part 1 / Part 2) */
  /* ============================================================
   * 1000 VOCABS — math-breakdown signature + 3-flow + session-numbers
   * ============================================================ */
  /* Time-flow cards (3 columns) */
  /* Session numbers (300 / 200 split) */
  /* ============================================================
   * SAT READING PREP — X→O cards + session-line + xo-outcomes
   * ============================================================ */
  /* Session-line (compact A/B/C/D rows) */
  /* ============================================================
   * TEDx SPEECH — Ethos·Logos·Pathos triad + 2 skills + TEDx badge + 4-week stack
   * ============================================================ */
  /* Two-skills cards (Writing + Speaking) */
  /* TEDx badge + section */
  /* 4-week curriculum stack (in navy band) */
  /* ============================================================
   * YOUTUBE CREATOR — Essay↔Video bridge + Topics-split + 6-Panel Storyboard
   * ============================================================ */
  /* Topics × Writing types */
  /* SOAR Storyboard (signature 6-panel) */
  /* ============================================================
   * PUBLISH ON AMAZON — 12-book gallery + 4 stages + 3 phases + reasons
   * ============================================================ */
  /* Four-stage method */
  /* Curriculum 3-phase stack (navy band) */
  /* Publication options */
  /* Cohort reasons (checkmark list) */
  /* Responsive */
}

/* line 21, app/assets/stylesheets/summer_camp.scss */
.v10 *, .v10 *::before, .v10 *::after {
  box-sizing: border-box;
}

/* line 28, app/assets/stylesheets/summer_camp.scss */
.v10 img {
  max-width: 100%;
  display: block;
}

/* line 29, app/assets/stylesheets/summer_camp.scss */
.v10 a {
  color: inherit;
  text-decoration: none;
}

/* line 31, app/assets/stylesheets/summer_camp.scss */
.v10 .container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* line 39, app/assets/stylesheets/summer_camp.scss */
.v10 .serif {
  font-family: var(--font-heading);
}

/* line 41, app/assets/stylesheets/summer_camp.scss */
.v10 .eyebrow {
  color: var(--color-label);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 49, app/assets/stylesheets/summer_camp.scss */
.v10 h1, .v10 h2, .v10 h3, .v10 p {
  margin: 0;
}

/* line 51, app/assets/stylesheets/summer_camp.scss */
.v10 h1 {
  font-family: var(--font-heading);
  font-size: clamp(42px, 3.6vw, 48px);
  line-height: 1.10;
  letter-spacing: -0.02em;
  font-weight: 400;
}

/* line 58, app/assets/stylesheets/summer_camp.scss */
.v10 h2 {
  font-family: var(--font-heading);
  font-size: clamp(30px, 3.6vw, 48px);
  line-height: 1.10;
  letter-spacing: -0.02em;
  font-weight: 400;
}

/* line 65, app/assets/stylesheets/summer_camp.scss */
.v10 .hero.sub-hero h1 {
  max-width: 18ch;
}

/* line 66, app/assets/stylesheets/summer_camp.scss */
.v10 h3 {
  font-family: var(--font-heading);
  font-size: 30px;
  line-height: 1.15;
  font-weight: 400;
}

/* line 73, app/assets/stylesheets/summer_camp.scss */
.v10 .lead {
  max-width: 620px;
  color: var(--color-text-soft);
  font-size: 18px;
  line-height: 1.75;
}

/* line 80, app/assets/stylesheets/summer_camp.scss */
.v10 .body {
  color: var(--color-text-soft);
  font-size: 16px;
  line-height: 1.72;
}

/* line 86, app/assets/stylesheets/summer_camp.scss */
.v10 .italic-serif {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 22px;
  line-height: 1.4;
  color: var(--color-text);
}

/* line 94, app/assets/stylesheets/summer_camp.scss */
.v10 .accent {
  color: var(--color-primary);
}

/* line 97, app/assets/stylesheets/summer_camp.scss */
.v10 .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 8px;
  padding: 15px 28px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .02em;
  transition: all .2s ease;
  cursor: pointer;
  min-height: 52px;
}

/* line 111, app/assets/stylesheets/summer_camp.scss */
.v10 .btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

/* line 116, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .btn:focus-visible,
.v10 .navy-band .btn:focus-visible {
  outline-color: var(--color-bg);
}

/* line 120, app/assets/stylesheets/summer_camp.scss */
.v10 .btn-primary {
  background: var(--color-primary);
  color: var(--color-bg);
}

/* line 124, app/assets/stylesheets/summer_camp.scss */
.v10 .btn-primary:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

/* line 128, app/assets/stylesheets/summer_camp.scss */
.v10 .btn-secondary {
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  background: transparent;
}

/* line 133, app/assets/stylesheets/summer_camp.scss */
.v10 .btn-secondary:hover {
  background: rgba(107, 31, 46, 0.05);
  transform: translateY(-1px);
}

/* line 139, app/assets/stylesheets/summer_camp.scss */
.v10 .site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 72px;
  border-bottom: 1px solid rgba(217, 207, 190, 0.75);
  background: rgba(247, 243, 237, 0.9);
  backdrop-filter: blur(14px);
}

/* line 148, app/assets/stylesheets/summer_camp.scss */
.v10 .nav {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* line 154, app/assets/stylesheets/summer_camp.scss */
.v10 .brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* line 159, app/assets/stylesheets/summer_camp.scss */
.v10 .brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--color-accent);
  display: grid;
  place-items: center;
  font-family: var(--font-heading);
  font-size: 22px;
  color: var(--color-label);
}

/* line 170, app/assets/stylesheets/summer_camp.scss */
.v10 .brand-name {
  font-family: var(--font-heading);
  font-size: 27px;
  line-height: .9;
  letter-spacing: .05em;
}

/* line 176, app/assets/stylesheets/summer_camp.scss */
.v10 .brand-sub {
  margin-top: 4px;
  color: var(--color-text-soft);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* line 183, app/assets/stylesheets/summer_camp.scss */
.v10 .nav-links {
  display: flex;
  align-items: center;
  gap: 34px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* line 193, app/assets/stylesheets/summer_camp.scss */
.v10 .nav-cta {
  padding: 11px 18px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  min-height: 44px;
}

/* line 202, app/assets/stylesheets/summer_camp.scss */
.v10 section {
  padding: 104px 0;
}

/* line 203, app/assets/stylesheets/summer_camp.scss */
.v10 .section-head {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

/* line 204, app/assets/stylesheets/summer_camp.scss */
.v10 .section-narrow {
  max-width: 760px;
  margin: 0 auto;
}

/* line 206, app/assets/stylesheets/summer_camp.scss */
.v10 .eyebrow + h2 {
  margin-top: 20px;
}

/* line 207, app/assets/stylesheets/summer_camp.scss */
.v10 .section-head h2 {
  margin-top: 20px;
}

/* line 208, app/assets/stylesheets/summer_camp.scss */
.v10 .section-head .lead {
  margin: 24px auto 0;
}

/* line 210, app/assets/stylesheets/summer_camp.scss */
.v10 .sage-band {
  background: var(--color-sage-soft);
}

/* line 211, app/assets/stylesheets/summer_camp.scss */
.v10 .cream-band {
  background: var(--color-surface);
  border-block: 1px solid var(--color-border);
}

/* line 212, app/assets/stylesheets/summer_camp.scss */
.v10 .oat-band {
  background: rgba(232, 221, 201, 0.48);
}

/* line 213, app/assets/stylesheets/summer_camp.scss */
.v10 .navy-band {
  background: var(--color-text);
  color: var(--color-bg);
}

/* line 214, app/assets/stylesheets/summer_camp.scss */
.v10 .navy-band .eyebrow {
  color: var(--color-accent);
}

/* line 215, app/assets/stylesheets/summer_camp.scss */
.v10 .navy-band h2 {
  color: var(--color-bg);
}

/* line 216, app/assets/stylesheets/summer_camp.scss */
.v10 .navy-band .lead {
  color: rgba(247, 243, 237, 0.86);
}

/* line 217, app/assets/stylesheets/summer_camp.scss */
.v10 .burgundy-band {
  background: var(--color-primary);
  color: var(--color-bg);
}

/* line 220, app/assets/stylesheets/summer_camp.scss */
.v10 .split {
  display: grid;
  grid-template-columns: .42fr .58fr;
  gap: 64px;
  align-items: center;
}

/* line 226, app/assets/stylesheets/summer_camp.scss */
.v10 .split-reverse {
  display: grid;
  grid-template-columns: .58fr .42fr;
  gap: 64px;
  align-items: center;
}

/* line 232, app/assets/stylesheets/summer_camp.scss */
.v10 .image-frame {
  aspect-ratio: 4 / 5;
  background: var(--color-oat);
  overflow: hidden;
  color: var(--color-text-soft);
  font-style: italic;
  font-family: var(--font-heading);
  font-size: 18px;
  padding: 24px;
  box-sizing: border-box;
  text-align: center;
}

/* line 244, app/assets/stylesheets/summer_camp.scss */
.v10 .image-frame img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96);
}

/* line 252, app/assets/stylesheets/summer_camp.scss */
.v10 .pull-quote {
  padding: 40px 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  margin: 32px 0;
}

/* line 258, app/assets/stylesheets/summer_camp.scss */
.v10 .pull-quote p {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 32px;
  line-height: 1.3;
  color: var(--color-primary);
  letter-spacing: -.01em;
}

/* line 267, app/assets/stylesheets/summer_camp.scss */
.v10 .pull-quote-attribution {
  margin-top: 14px;
  font-style: normal;
  font-family: var(--font-body);
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-text-soft);
}

/* line 277, app/assets/stylesheets/summer_camp.scss */
.v10 .navy-band .band-note-italic {
  text-align: center;
  margin: 48px auto 0;
  max-width: 620px;
  font-style: italic;
  font-family: var(--font-heading);
  font-size: 20px;
  line-height: 1.5;
  color: rgba(247, 243, 237, 0.86);
}

/* line 289, app/assets/stylesheets/summer_camp.scss */
.v10 footer {
  padding: 42px 0;
  border-top: 1px solid var(--color-border);
  color: var(--color-text-soft);
  font-size: 13px;
}

/* line 295, app/assets/stylesheets/summer_camp.scss */
.v10 footer a:hover {
  text-decoration: underline;
}

/* line 296, app/assets/stylesheets/summer_camp.scss */
.v10 .footer-row {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

/* line 304, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta {
  background: var(--color-primary);
  color: var(--color-bg);
}

/* line 305, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta h2 {
  color: var(--color-bg);
}

/* line 306, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .lead {
  color: rgba(247, 243, 237, 0.86);
}

/* line 307, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .eyebrow {
  color: var(--color-accent);
}

/* line 308, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .btn {
  background: var(--color-bg);
  color: var(--color-primary);
  margin-top: 28px;
}

/* line 313, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .btn:hover {
  background: rgba(247, 243, 237, 0.9);
}

/* line 314, app/assets/stylesheets/summer_camp.scss */
.v10 .final-grid {
  display: grid;
  grid-template-columns: .55fr .45fr;
  gap: 56px;
  align-items: center;
}

/* line 322, app/assets/stylesheets/summer_camp.scss */
.v10 .pending {
  background: var(--color-surface);
  text-align: center;
  padding: 80px 0;
  border-top: 1px solid var(--color-border);
}

/* line 328, app/assets/stylesheets/summer_camp.scss */
.v10 .pending .eyebrow {
  color: var(--color-text-soft);
}

/* line 329, app/assets/stylesheets/summer_camp.scss */
.v10 .pending p {
  margin-top: 16px;
  font-style: italic;
  color: var(--color-text-soft);
  font-family: var(--font-heading);
  font-size: 22px;
}

/* line 342, app/assets/stylesheets/summer_camp.scss */
.v10 .hero {
  display: grid;
  grid-template-columns: .42fr .58fr;
  gap: 56px;
  padding: 88px 0 96px;
  align-items: center;
}

/* line 349, app/assets/stylesheets/summer_camp.scss */
.v10 .hero h1 {
  margin-top: 26px;
}

/* line 350, app/assets/stylesheets/summer_camp.scss */
.v10 .hero .lead {
  margin-top: 26px;
}

/* line 351, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-actions {
  margin-top: 34px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* line 352, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-micro {
  margin-top: 14px;
  color: var(--color-text-soft);
  font-size: 13px;
  font-style: italic;
  font-family: var(--font-heading);
}

/* line 359, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-paths {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* line 365, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-paths-label {
  color: var(--color-label);
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 16px;
}

/* line 371, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-paths-option {
  color: var(--color-text);
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 378, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-meta {
  margin-top: 24px;
  color: var(--color-text-soft);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* line 385, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-collage {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 16px;
  background: var(--color-oat);
  min-height: 580px;
}

/* line 393, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96) sepia(0.05);
  aspect-ratio: 2 / 3;
}

/* line 406, app/assets/stylesheets/summer_camp.scss */
.v10 .hero.hero--v2 {
  position: relative;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 64px 0 56px;
  background: var(--color-surface);
  border-radius: 0;
  overflow: hidden;
}

/* line 415, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-illustration {
  position: absolute;
  top: 0;
  right: -4%;
  width: 52%;
  max-width: 720px;
  pointer-events: none;
  z-index: 0;
  /* Soft fade on the left edge hides any cropped headline-text remnants
       from the source mockup that bled into the illustration extract. */
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 22%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 22%, #000 100%);
}

/* line 428, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-illustration img {
  width: 100%;
  height: auto;
  display: block;
  opacity: .92;
}

/* line 434, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-text {
  position: relative;
  z-index: 1;
  max-width: 640px;
  padding: 0 24px;
}

/* line 440, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-text h1 {
  font-family: var(--font-heading);
  font-size: clamp(36px, 5.2vw, 60px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin: 16px 0 0;
}

/* line 449, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-text h1 .accent {
  display: block;
  color: var(--color-text);
}

/* line 453, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-text h1 em {
  font-style: italic;
  color: var(--color-primary);
}

/* line 457, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-stats {
  margin-top: 22px;
  max-width: 480px;
  color: var(--color-primary);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.6;
}

/* line 469, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-meta {
  margin-top: 24px;
  color: var(--color-label);
}

/* line 473, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-actions {
  margin-top: 28px;
}

/* line 476, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-tiles {
  position: relative;
  z-index: 1;
  margin: 48px 24px 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* line 484, app/assets/stylesheets/summer_camp.scss */
.v10 .hero--v2 .hero-v2-tiles img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* line 495, app/assets/stylesheets/summer_camp.scss */
.v10 .calendar-section {
  padding: 80px 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}

/* line 501, app/assets/stylesheets/summer_camp.scss */
.v10 .calendar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  max-width: 1100px;
  margin: 48px auto 0;
}

/* line 508, app/assets/stylesheets/summer_camp.scss */
.v10 .calendar-month {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 24px 18px;
}

/* line 513, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-month-title {
  font-family: var(--font-heading);
  font-size: 24px;
  text-align: center;
  color: var(--color-text);
  margin-bottom: 16px;
  font-weight: 400;
}

/* line 521, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-weekdays, .v10 .cal-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

/* line 526, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-weekday {
  font-size: 10px;
  color: var(--color-text-soft);
  text-align: center;
  padding: 6px 0;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 535, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-day, .v10 .cal-empty {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--color-text);
  border-radius: 4px;
  min-height: 44px;
}

/* line 545, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-empty,
.v10 .cal-day {
  background: transparent;
}

/* line 548, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-day.cal-session-a {
  background: rgba(154, 168, 143, 0.22);
}

/* line 549, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-day.cal-session-b {
  background: rgba(107, 31, 46, 0.1);
}

/* line 550, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-day.cal-session-c {
  background: rgba(155, 107, 67, 0.14);
}

/* line 551, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-day.cal-session-d {
  background: rgba(194, 184, 163, 0.5);
}

/* line 553, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-session-start {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 500;
  border: 2px solid;
}

/* line 559, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-session-start.cal-session-a {
  border-color: var(--color-sage);
  color: var(--color-text);
}

/* line 560, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-session-start.cal-session-b {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* line 561, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-session-start.cal-session-c {
  border-color: var(--color-label);
  color: var(--color-label);
}

/* line 562, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-session-start.cal-session-d {
  border-color: var(--color-accent);
  color: var(--color-text);
}

/* line 564, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 40px;
}

/* line 571, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 13px;
}

/* line 581, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item .cal-legend-letter {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
  width: 22px;
  text-align: center;
  line-height: 1;
}

/* line 589, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item.cal-session-a .cal-legend-letter {
  color: var(--color-sage);
}

/* line 590, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item.cal-session-b .cal-legend-letter {
  color: var(--color-primary);
}

/* line 591, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item.cal-session-c .cal-legend-letter {
  color: var(--color-label);
}

/* line 592, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-item.cal-session-d .cal-legend-letter {
  color: var(--color-accent);
}

/* line 593, app/assets/stylesheets/summer_camp.scss */
.v10 .cal-legend-range {
  color: var(--color-text-soft);
  font-size: 13px;
  letter-spacing: .02em;
}

/* line 600, app/assets/stylesheets/summer_camp.scss */
.v10 .stats {
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}

/* line 605, app/assets/stylesheets/summer_camp.scss */
.v10 .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

/* line 606, app/assets/stylesheets/summer_camp.scss */
.v10 .stat {
  padding: 36px 30px;
  border-right: 1px solid var(--color-border);
}

/* line 607, app/assets/stylesheets/summer_camp.scss */
.v10 .stat:last-child {
  border-right: none;
}

/* line 608, app/assets/stylesheets/summer_camp.scss */
.v10 .stat-number {
  font-family: var(--font-heading);
  font-size: 56px;
  line-height: 1;
  color: var(--color-text);
  font-weight: 400;
}

/* line 615, app/assets/stylesheets/summer_camp.scss */
.v10 .stat-number .small {
  font-size: 22px;
  color: var(--color-label);
  margin-left: 4px;
  letter-spacing: -.01em;
}

/* line 621, app/assets/stylesheets/summer_camp.scss */
.v10 .stat-label {
  margin-top: 12px;
  color: var(--color-text-soft);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* line 630, app/assets/stylesheets/summer_camp.scss */
.v10 .paths-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 637, app/assets/stylesheets/summer_camp.scss */
.v10 .path-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 40px 36px;
  position: relative;
}

/* line 643, app/assets/stylesheets/summer_camp.scss */
.v10 .path-card.project {
  border-color: rgba(107, 31, 46, 0.18);
}

/* line 644, app/assets/stylesheets/summer_camp.scss */
.v10 .path-icon {
  font-size: 36px;
  line-height: 1;
  margin-bottom: 20px;
}

/* line 645, app/assets/stylesheets/summer_camp.scss */
.v10 .path-card .eyebrow {
  margin-bottom: 14px;
}

/* line 646, app/assets/stylesheets/summer_camp.scss */
.v10 .path-card h3 {
  margin-bottom: 16px;
  font-size: 36px;
  line-height: 1.05;
}

/* line 647, app/assets/stylesheets/summer_camp.scss */
.v10 .path-meta {
  color: var(--color-text-soft);
  font-size: 14px;
  margin-bottom: 22px;
}

/* line 648, app/assets/stylesheets/summer_camp.scss */
.v10 .path-count {
  display: inline-block;
  padding: 5px 12px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-label);
  font-weight: 500;
  margin-bottom: 22px;
}

/* line 660, app/assets/stylesheets/summer_camp.scss */
.v10 .path-list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  color: var(--color-text);
  font-size: 15px;
  line-height: 2;
}

/* line 668, app/assets/stylesheets/summer_camp.scss */
.v10 .path-list li {
  border-bottom: 1px solid var(--color-border);
  padding: 4px 0;
}

/* line 669, app/assets/stylesheets/summer_camp.scss */
.v10 .path-list li:last-child {
  border-bottom: none;
}

/* line 670, app/assets/stylesheets/summer_camp.scss */
.v10 .paths-note {
  text-align: center;
  margin-top: 40px;
  font-style: italic;
  color: var(--color-text-soft);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  font-family: var(--font-heading);
  font-size: 22px;
}

/* line 683, app/assets/stylesheets/summer_camp.scss */
.v10 .programs-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 690, app/assets/stylesheets/summer_camp.scss */
.v10 .programs-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 697, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

/* line 703, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(27, 43, 75, 0.08);
}

/* line 707, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card-img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--color-oat);
  filter: saturate(0.86) contrast(0.96);
}

/* line 714, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card-body {
  padding: 28px;
}

/* line 715, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card h3 {
  font-family: var(--font-program-title);
  font-weight: 700;
  font-size: 24px;
  letter-spacing: -0.005em;
  margin-bottom: 8px;
}

/* line 722, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card .program-meta {
  color: var(--color-label);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

/* line 729, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card p {
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 18px;
}

/* line 730, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card .result {
  color: var(--color-primary);
  font-weight: 500;
  font-size: 14px;
  margin-bottom: 20px;
  font-style: italic;
}

/* line 737, app/assets/stylesheets/summer_camp.scss */
.v10 .program-card a {
  color: var(--color-primary);
  font-weight: 500;
  font-size: 14px;
}

/* line 740, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 747, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-tile {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 32px;
}

/* line 752, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-tile .eyebrow {
  margin-bottom: 18px;
}

/* line 753, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-books {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 18px;
}

/* line 759, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-books img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96);
}

/* line 765, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-placeholder {
  background: var(--color-oat);
  aspect-ratio: 16 / 10;
  display: grid;
  place-items: center;
  color: var(--color-text-soft);
  font-style: italic;
  margin-bottom: 18px;
  font-family: var(--font-heading);
  font-size: 18px;
}

/* line 776, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-placeholder.tall {
  aspect-ratio: 4 / 3;
}

/* line 777, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-cta {
  color: var(--color-primary);
  font-weight: 500;
  font-size: 14px;
  display: inline-block;
  margin-top: 8px;
}

/* line 785, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-feature {
  margin: 56px auto 0;
  max-width: 1100px;
  text-align: center;
}

/* line 790, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-feature-eyebrow {
  margin-bottom: 32px;
}

/* line 793, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-feature-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}

/* line 798, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-feature-grid img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96);
}

/* line 804, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-feature-caption {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 20px;
  color: var(--color-text);
  margin-bottom: 28px;
}

/* line 811, app/assets/stylesheets/summer_camp.scss */
.v10 .proof-note {
  text-align: center;
  margin-top: 48px;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 22px;
  color: var(--color-text-soft);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

/* line 824, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 56px auto 0;
}

/* line 831, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 28px;
  transition: transform .25s ease, box-shadow .25s ease;
}

/* line 837, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(27, 43, 75, 0.08);
}

/* line 841, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-header {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--color-border);
}

/* line 849, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-portrait {
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--color-oat);
  border: 1px solid var(--color-accent);
}

/* line 858, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96);
}

/* line 864, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-header-text {
  flex: 1;
  min-width: 0;
}

/* line 865, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-stats {
  font-family: var(--font-heading);
  font-size: 13px;
  color: var(--color-label);
  letter-spacing: .04em;
  margin-bottom: 4px;
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}

/* line 876, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-stat-rating {
  color: var(--color-primary);
  font-weight: 500;
}

/* line 880, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-stat-rating .star {
  color: var(--color-accent);
  margin-right: 2px;
}

/* line 884, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-stat-divider {
  color: var(--color-border);
}

/* line 885, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-card h3 {
  font-size: 28px;
  margin: 0;
  line-height: 1;
}

/* line 886, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-role {
  color: var(--color-label);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 14px;
}

/* line 895, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-bio {
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 18px;
}

/* line 901, app/assets/stylesheets/summer_camp.scss */
.v10 .faculty-programs {
  padding-top: 14px;
  border-top: 1px solid var(--color-border);
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 14px;
  color: var(--color-primary);
}

/* line 911, app/assets/stylesheets/summer_camp.scss */
.v10 .related-section {
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
}

/* line 915, app/assets/stylesheets/summer_camp.scss */
.v10 .related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 922, app/assets/stylesheets/summer_camp.scss */
.v10 .related-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
}

/* line 929, app/assets/stylesheets/summer_camp.scss */
.v10 .related-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 18px;
}

/* line 935, app/assets/stylesheets/summer_camp.scss */
.v10 .related-grade {
  color: var(--color-text-soft);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 942, app/assets/stylesheets/summer_camp.scss */
.v10 .related-type {
  color: var(--color-label);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 949, app/assets/stylesheets/summer_camp.scss */
.v10 .related-name {
  font-family: var(--font-heading);
  font-size: 26px;
  line-height: 1.15;
  color: var(--color-text);
  margin: 0 0 14px;
  font-weight: 500;
}

/* line 957, app/assets/stylesheets/summer_camp.scss */
.v10 .related-tagline {
  color: var(--color-text-soft);
  font-style: italic;
  font-family: var(--font-heading);
  font-size: 18px;
  line-height: 1.4;
  margin: 0 0 22px;
  flex-grow: 1;
}

/* line 966, app/assets/stylesheets/summer_camp.scss */
.v10 .related-link {
  color: var(--color-primary);
  font-weight: 500;
  font-size: 14px;
}

/* line 973, app/assets/stylesheets/summer_camp.scss */
.v10 .schedule-rows {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  max-width: 880px;
  margin: 56px auto 0;
}

/* line 980, app/assets/stylesheets/summer_camp.scss */
.v10 .schedule-rows .session-line {
  background: var(--color-bg);
}

/* line 985, app/assets/stylesheets/summer_camp.scss */
.v10 .faq-list {
  max-width: 880px;
  margin: 56px auto 0;
  display: grid;
  gap: 22px;
}

/* line 991, app/assets/stylesheets/summer_camp.scss */
.v10 .faq-item {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 28px 32px;
}

/* line 996, app/assets/stylesheets/summer_camp.scss */
.v10 .faq-q {
  font-family: var(--font-heading);
  font-size: 22px;
  line-height: 1.3;
  color: var(--color-text);
  margin: 0 0 12px;
  font-weight: 500;
}

/* line 1004, app/assets/stylesheets/summer_camp.scss */
.v10 .faq-a {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}

/* line 1012, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonials-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 56px;
}

/* line 1018, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonials-grid.three {
  grid-template-columns: repeat(3, 1fr);
}

/* line 1021, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial {
  padding: 36px;
  border: 1px solid rgba(247, 243, 237, 0.15);
}

/* line 1025, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial blockquote {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 22px;
  line-height: 1.45;
  margin: 0 0 24px;
  color: var(--color-bg);
}

/* line 1033, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial .attribution {
  color: var(--color-accent);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* line 1046, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-image {
  min-height: 540px;
  background: var(--color-oat);
  overflow: hidden;
  position: relative;
}

/* line 1052, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-image img {
  width: 100%;
  height: 100%;
  min-height: 540px;
  object-fit: cover;
  filter: saturate(0.86) contrast(0.96);
}

/* line 1059, app/assets/stylesheets/summer_camp.scss */
.v10 .hero-image-caption {
  position: absolute;
  bottom: 18px;
  left: 18px;
  background: rgba(247, 243, 237, 0.95);
  padding: 10px 16px;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 16px;
  color: var(--color-text);
  max-width: 280px;
  line-height: 1.4;
}

/* line 1074, app/assets/stylesheets/summer_camp.scss */
.v10 .facts {
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}

/* line 1079, app/assets/stylesheets/summer_camp.scss */
.v10 .facts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

/* line 1084, app/assets/stylesheets/summer_camp.scss */
.v10 .fact {
  padding: 32px 24px;
  border-right: 1px solid var(--color-border);
}

/* line 1088, app/assets/stylesheets/summer_camp.scss */
.v10 .fact:last-child {
  border-right: none;
}

/* line 1089, app/assets/stylesheets/summer_camp.scss */
.v10 .fact-label {
  color: var(--color-text-soft);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 1096, app/assets/stylesheets/summer_camp.scss */
.v10 .fact-value {
  margin-top: 10px;
  font-family: var(--font-heading);
  font-size: 22px;
  line-height: 1.2;
  color: var(--color-text);
}

/* line 1105, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial {
  padding: 36px;
  border: 1px solid rgba(247, 243, 237, 0.15);
}

/* line 1109, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial blockquote {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 24px;
  line-height: 1.4;
  margin: 0 0 24px;
  color: var(--color-bg);
}

/* line 1117, app/assets/stylesheets/summer_camp.scss */
.v10 .testimonial .attribution {
  color: var(--color-accent);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* line 1125, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 48px auto 0;
}

/* line 1132, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col {
  padding: 32px;
}

/* line 1133, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col.good {
  background: rgba(154, 168, 143, 0.18);
  border: 1px solid rgba(154, 168, 143, 0.4);
}

/* line 1137, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col.not {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}

/* line 1141, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col .eyebrow {
  margin-bottom: 18px;
}

/* line 1142, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col.good .eyebrow {
  color: var(--color-text);
}

/* line 1143, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* line 1144, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col li {
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.6;
}

/* line 1151, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col li:last-child {
  border-bottom: none;
}

/* line 1152, app/assets/stylesheets/summer_camp.scss */
.v10 .fit-col li strong {
  color: var(--color-primary);
  font-weight: 500;
}

/* line 1155, app/assets/stylesheets/summer_camp.scss */
.v10 .final-grid {
  display: grid;
  grid-template-columns: .55fr .45fr;
  gap: 56px;
  align-items: center;
}

/* line 1161, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .btn {
  background: var(--color-bg);
  color: var(--color-primary);
  margin-top: 28px;
}

/* line 1166, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .btn:hover {
  background: rgba(247, 243, 237, 0.9);
}

/* line 1173, app/assets/stylesheets/summer_camp.scss */
.v10 .pillars-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1180, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 36px 32px;
  position: relative;
}

/* line 1186, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-icon {
  font-size: 32px;
  line-height: 1;
  margin-bottom: 18px;
}

/* line 1187, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-card .eyebrow {
  color: var(--color-primary);
  margin-bottom: 12px;
}

/* line 1188, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-card h3 {
  font-size: 28px;
  margin-bottom: 18px;
}

/* line 1189, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-card p {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 18px;
}

/* line 1195, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* line 1200, app/assets/stylesheets/summer_camp.scss */
.v10 .pillar-tag {
  padding: 4px 10px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-size: 11px;
  color: var(--color-label);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 1213, app/assets/stylesheets/summer_camp.scss */
.v10 .method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1220, app/assets/stylesheets/summer_camp.scss */
.v10 .step {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 40px 32px;
}

/* line 1225, app/assets/stylesheets/summer_camp.scss */
.v10 .step-number {
  font-family: var(--font-heading);
  font-size: 64px;
  line-height: 1;
  color: var(--color-primary);
  margin-bottom: 18px;
  font-weight: 400;
}

/* line 1233, app/assets/stylesheets/summer_camp.scss */
.v10 .step h3 {
  font-size: 32px;
  margin-bottom: 14px;
}

/* line 1234, app/assets/stylesheets/summer_camp.scss */
.v10 .step .step-meta {
  color: var(--color-label);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

/* line 1241, app/assets/stylesheets/summer_camp.scss */
.v10 .step p {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
}

/* line 1246, app/assets/stylesheets/summer_camp.scss */
.v10 .method-note {
  text-align: center;
  margin-top: 56px;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 22px;
  color: var(--color-text-soft);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

/* line 1259, app/assets/stylesheets/summer_camp.scss */
.v10 .booklist-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 56px;
}

/* line 1265, app/assets/stylesheets/summer_camp.scss */
.v10 .book-tile {
  background: var(--color-oat);
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  border: 1px solid var(--color-border);
  position: relative;
  overflow: hidden;
}

/* line 1275, app/assets/stylesheets/summer_camp.scss */
.v10 .book-tile .book-cover {
  width: 100%;
  aspect-ratio: 3 / 4.18;
  object-fit: cover;
  border-radius: 8px;
  margin: 0 auto 14px;
  display: block;
  box-shadow: 0 6px 18px rgba(27, 43, 75, 0.1);
}

/* line 1284, app/assets/stylesheets/summer_camp.scss */
.v10 .book-tile h4 {
  font-family: var(--font-heading);
  font-size: 22px;
  line-height: 1.15;
  color: var(--color-text);
  margin: 0 0 8px;
  font-weight: 500;
}

/* line 1292, app/assets/stylesheets/summer_camp.scss */
.v10 .book-tile .book-author {
  color: var(--color-text-soft);
  font-size: 12px;
  font-style: italic;
}

/* line 1297, app/assets/stylesheets/summer_camp.scss */
.v10 .book-tile .book-pillar {
  margin-top: 14px;
  color: var(--color-label);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 500;
}

/* line 1305, app/assets/stylesheets/summer_camp.scss */
.v10 .booklist-note {
  text-align: center;
  margin-top: 32px;
  font-style: italic;
  color: var(--color-text-soft);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  font-size: 15px;
}

/* line 1317, app/assets/stylesheets/summer_camp.scss */
.v10 .skills-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1324, app/assets/stylesheets/summer_camp.scss */
.v10 .skill {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 28px;
}

/* line 1329, app/assets/stylesheets/summer_camp.scss */
.v10 .skill .skill-icon {
  font-size: 24px;
  margin-bottom: 14px;
}

/* line 1333, app/assets/stylesheets/summer_camp.scss */
.v10 .skill h4 {
  font-family: var(--font-heading);
  font-size: 22px;
  margin: 0 0 10px;
  color: var(--color-text);
  font-weight: 500;
}

/* line 1340, app/assets/stylesheets/summer_camp.scss */
.v10 .skill p {
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.65;
}

/* line 1347, app/assets/stylesheets/summer_camp.scss */
.v10 .hero.sub-hero {
  grid-template-columns: .48fr .52fr;
  padding: 80px 0 64px;
}

/* line 1355, app/assets/stylesheets/summer_camp.scss */
.v10 .patterns-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1362, app/assets/stylesheets/summer_camp.scss */
.v10 .pattern-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 22px 20px;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .2s ease, border-color .2s ease;
}

/* line 1372, app/assets/stylesheets/summer_camp.scss */
.v10 .pattern-card:hover {
  transform: translateY(-2px);
  border-color: rgba(107, 31, 46, 0.4);
}

/* line 1376, app/assets/stylesheets/summer_camp.scss */
.v10 .pattern-num {
  font-family: var(--font-heading);
  color: var(--color-primary);
  font-size: 32px;
  line-height: 1;
  font-weight: 400;
}

/* line 1383, app/assets/stylesheets/summer_camp.scss */
.v10 .pattern-name {
  font-family: var(--font-heading);
  font-size: 19px;
  line-height: 1.25;
  color: var(--color-text);
  margin-top: 18px;
  font-weight: 400;
}

/* line 1391, app/assets/stylesheets/summer_camp.scss */
.v10 .patterns-note {
  text-align: center;
  margin-top: 40px;
  font-style: italic;
  font-family: var(--font-heading);
  color: var(--color-text-soft);
  font-size: 20px;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* line 1404, app/assets/stylesheets/summer_camp.scss */
.v10 .sessions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1411, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 40px 36px;
}

/* line 1416, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card .eyebrow {
  color: var(--color-primary);
  margin-bottom: 14px;
}

/* line 1417, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card h3 {
  margin-bottom: 16px;
  font-size: 32px;
}

/* line 1418, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card p.body {
  margin-bottom: 12px;
}

/* line 1419, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card ul {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  color: var(--color-text);
  font-size: 15px;
  line-height: 2;
}

/* line 1427, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card li {
  border-bottom: 1px solid var(--color-border);
  padding: 4px 0;
}

/* line 1431, app/assets/stylesheets/summer_camp.scss */
.v10 .session-card li:last-child {
  border-bottom: none;
}

/* line 1436, app/assets/stylesheets/summer_camp.scss */
.v10 .math-breakdown {
  max-width: 720px;
  margin: 56px auto 0;
}

/* line 1437, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--color-border);
}

/* line 1445, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row .label {
  font-size: 14px;
  color: var(--color-text-soft);
  letter-spacing: .04em;
}

/* line 1450, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row .label .eyebrow {
  display: block;
  margin-bottom: 4px;
}

/* line 1451, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row .label-text {
  font-family: var(--font-heading);
  font-size: 22px;
  color: var(--color-text);
}

/* line 1456, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row .value {
  font-family: var(--font-heading);
  font-size: 56px;
  line-height: 1;
  color: var(--color-text);
  font-weight: 400;
}

/* line 1463, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.subtotal {
  background: rgba(154, 168, 143, 0.18);
  padding-left: 24px;
  padding-right: 24px;
  margin: 8px 0;
  border: none;
  border-radius: 4px;
}

/* line 1471, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.subtotal .label-text {
  color: var(--color-label);
}

/* line 1472, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.total {
  background: var(--color-text);
  color: var(--color-bg);
  padding: 32px 28px;
  margin-top: 18px;
  border: none;
  border-radius: 6px;
}

/* line 1480, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.total .label-text {
  color: var(--color-bg);
  font-weight: 500;
}

/* line 1481, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.total .value {
  color: var(--color-bg);
  font-size: 72px;
}

/* line 1482, app/assets/stylesheets/summer_camp.scss */
.v10 .math-row.total .eyebrow {
  color: var(--color-accent);
}

/* line 1485, app/assets/stylesheets/summer_camp.scss */
.v10 .flow-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1492, app/assets/stylesheets/summer_camp.scss */
.v10 .flow-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 36px 30px;
}

/* line 1497, app/assets/stylesheets/summer_camp.scss */
.v10 .flow-card .time-label {
  font-family: var(--font-heading);
  font-size: 28px;
  color: var(--color-primary);
  margin-bottom: 18px;
  line-height: 1.1;
}

/* line 1504, app/assets/stylesheets/summer_camp.scss */
.v10 .flow-card h3 {
  font-size: 24px;
  margin-bottom: 14px;
}

/* line 1505, app/assets/stylesheets/summer_camp.scss */
.v10 .flow-card p.body {
  font-size: 15px;
}

/* line 1508, app/assets/stylesheets/summer_camp.scss */
.v10 .session-numbers {
  display: flex;
  gap: 32px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--color-border);
}

/* line 1515, app/assets/stylesheets/summer_camp.scss */
.v10 .session-num {
  display: flex;
  flex-direction: column;
}

/* line 1516, app/assets/stylesheets/summer_camp.scss */
.v10 .session-num .num {
  font-family: var(--font-heading);
  font-size: 40px;
  color: var(--color-text);
  line-height: 1;
}

/* line 1522, app/assets/stylesheets/summer_camp.scss */
.v10 .session-num .num-label {
  font-size: 11px;
  color: var(--color-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-top: 6px;
}

/* line 1533, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1540, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 28px 26px;
}

/* line 1545, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
}

/* line 1551, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-row + .xo-row {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--color-border);
}

/* line 1556, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-mark {
  font-family: var(--font-heading);
  font-size: 22px;
  line-height: 1.2;
  font-weight: 500;
}

/* line 1562, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-mark.x {
  color: var(--color-text-soft);
}

/* line 1563, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-mark.o {
  color: var(--color-primary);
}

/* line 1564, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-text {
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.55;
}

/* line 1569, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-text.before {
  color: var(--color-text-soft);
}

/* line 1570, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-outcomes {
  margin-top: 48px;
  padding: 28px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  display: flex;
  gap: 32px;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* line 1583, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-outcomes .outcome {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading);
  font-size: 22px;
  color: var(--color-text);
}

/* line 1591, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-outcomes .outcome .check {
  color: var(--color-primary);
}

/* line 1592, app/assets/stylesheets/summer_camp.scss */
.v10 .xo-disclaimer {
  text-align: center;
  margin-top: 24px;
  color: var(--color-text-soft);
  font-style: italic;
  font-size: 13px;
}

/* line 1601, app/assets/stylesheets/summer_camp.scss */
.v10 .session-lines {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1608, app/assets/stylesheets/summer_camp.scss */
.v10 .session-line {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 28px 30px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 20px;
  align-items: center;
}

/* line 1617, app/assets/stylesheets/summer_camp.scss */
.v10 .session-letter {
  font-family: var(--font-heading);
  font-size: 48px;
  color: var(--color-primary);
  line-height: 1;
}

/* line 1623, app/assets/stylesheets/summer_camp.scss */
.v10 .session-title {
  font-family: var(--font-heading);
  font-size: 22px;
  color: var(--color-text);
}

/* line 1628, app/assets/stylesheets/summer_camp.scss */
.v10 .session-meta {
  font-size: 11px;
  color: var(--color-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-top: 4px;
}

/* line 1635, app/assets/stylesheets/summer_camp.scss */
.v10 .session-arrow {
  font-size: 20px;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  text-decoration: none;
}

/* line 1649, app/assets/stylesheets/summer_camp.scss */
.v10 .cards-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1656, app/assets/stylesheets/summer_camp.scss */
.v10 .greek-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 40px 32px;
}

/* line 1661, app/assets/stylesheets/summer_camp.scss */
.v10 .greek-card h3 {
  color: var(--color-primary);
  font-size: 28px;
  margin-bottom: 8px;
}

/* line 1662, app/assets/stylesheets/summer_camp.scss */
.v10 .greek-card .role {
  color: var(--color-label);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

/* line 1669, app/assets/stylesheets/summer_camp.scss */
.v10 .greek-card .greek-q {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 22px;
  color: var(--color-text);
  margin-bottom: 14px;
  line-height: 1.3;
}

/* line 1677, app/assets/stylesheets/summer_camp.scss */
.v10 .greek-card p {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
}

/* line 1684, app/assets/stylesheets/summer_camp.scss */
.v10 .cards-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1691, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 40px 36px;
}

/* line 1696, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card .skill-icon {
  font-size: 32px;
  margin-bottom: 18px;
}

/* line 1697, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card .eyebrow {
  color: var(--color-primary);
  margin-bottom: 12px;
}

/* line 1698, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card h3 {
  font-size: 28px;
  margin-bottom: 12px;
}

/* line 1699, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card p {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
}

/* line 1704, app/assets/stylesheets/summer_camp.scss */
.v10 .skill-card .level-up {
  display: inline-block;
  margin-top: 18px;
  color: var(--color-primary);
  font-weight: 500;
  font-size: 14px;
  font-style: italic;
}

/* line 1714, app/assets/stylesheets/summer_camp.scss */
.v10 .tedx-badge-small {
  display: inline-block;
  margin-top: 18px;
  padding: 6px 14px;
  border: 1px solid var(--color-accent);
  background: var(--color-bg);
  font-family: var(--font-heading);
  font-size: 12px;
  color: var(--color-label);
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* line 1726, app/assets/stylesheets/summer_camp.scss */
.v10 .tedx-badge-large {
  display: inline-block;
  margin: 32px auto;
  padding: 28px 48px;
  border: 2px solid var(--color-accent);
  background: var(--color-bg);
  font-family: var(--font-heading);
  font-size: 24px;
  color: var(--color-label);
  letter-spacing: .04em;
}

/* line 1737, app/assets/stylesheets/summer_camp.scss */
.v10 .tedx-badge-large .tedx-mark {
  color: var(--color-primary);
  font-size: 36px;
  font-weight: 500;
}

/* line 1742, app/assets/stylesheets/summer_camp.scss */
.v10 .tedx-section {
  text-align: center;
}

/* line 1745, app/assets/stylesheets/summer_camp.scss */
.v10 .weeks-stack {
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1746, app/assets/stylesheets/summer_camp.scss */
.v10 .week-card {
  background: rgba(247, 243, 237, 0.06);
  border: 1px solid rgba(247, 243, 237, 0.15);
  padding: 32px 36px;
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 32px;
  align-items: start;
}

/* line 1756, app/assets/stylesheets/summer_camp.scss */
.v10 .week-card .week-num {
  font-family: var(--font-heading);
  font-size: 14px;
  color: var(--color-accent);
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

/* line 1764, app/assets/stylesheets/summer_camp.scss */
.v10 .week-card .week-name {
  font-family: var(--font-heading);
  font-size: 32px;
  line-height: 1.1;
  color: var(--color-bg);
}

/* line 1770, app/assets/stylesheets/summer_camp.scss */
.v10 .week-card .week-content p {
  color: rgba(247, 243, 237, 0.86);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 6px;
}

/* line 1776, app/assets/stylesheets/summer_camp.scss */
.v10 .week-card .week-content .week-meta {
  color: var(--color-accent);
  font-size: 13px;
  font-style: italic;
  letter-spacing: .04em;
}

/* line 1786, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 48px;
  align-items: center;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1794, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-col {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 32px;
}

/* line 1799, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-col .eyebrow {
  margin-bottom: 18px;
  color: var(--color-primary);
}

/* line 1800, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  color: var(--color-text);
  font-size: 16px;
  line-height: 2;
  font-family: var(--font-heading);
}

/* line 1809, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-col li {
  padding: 6px 0;
  border-bottom: 1px solid var(--color-border);
}

/* line 1813, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-col li:last-child {
  border-bottom: none;
}

/* line 1814, app/assets/stylesheets/summer_camp.scss */
.v10 .bridge-arrow {
  font-family: var(--font-heading);
  font-size: 56px;
  color: var(--color-label);
  text-align: center;
}

/* line 1822, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 1829, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 36px 32px;
}

/* line 1834, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col .eyebrow {
  margin-bottom: 22px;
  color: var(--color-primary);
}

/* line 1835, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col .col-sub {
  color: var(--color-label);
  font-size: 12px;
  font-style: italic;
  margin-bottom: 14px;
}

/* line 1841, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* line 1842, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col li {
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.5;
  display: flex;
  gap: 12px;
  align-items: baseline;
}

/* line 1852, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col li:last-child {
  border-bottom: none;
}

/* line 1853, app/assets/stylesheets/summer_camp.scss */
.v10 .topics-col li::before {
  content: "▸";
  color: var(--color-label);
  font-size: 12px;
}

/* line 1856, app/assets/stylesheets/summer_camp.scss */
.v10 .storyboard {
  background: var(--color-bg);
  padding: 56px 36px;
  border: 1px solid var(--color-border);
  margin: 56px auto 0;
  max-width: 1100px;
}

/* line 1863, app/assets/stylesheets/summer_camp.scss */
.v10 .storyboard-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}

/* line 1868, app/assets/stylesheets/summer_camp.scss */
.v10 .panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 24px 18px;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  background-image: repeating-linear-gradient(transparent, transparent 22px, rgba(217, 207, 190, 0.4) 22px, rgba(217, 207, 190, 0.4) 23px);
}

/* line 1879, app/assets/stylesheets/summer_camp.scss */
.v10 .panel-num {
  font-family: var(--font-heading);
  color: var(--color-primary);
  font-size: 32px;
  line-height: 1;
}

/* line 1885, app/assets/stylesheets/summer_camp.scss */
.v10 .panel-name {
  font-family: var(--font-heading);
  font-size: 20px;
  color: var(--color-text);
  margin-top: 10px;
  letter-spacing: .04em;
  line-height: 1.15;
  font-weight: 500;
}

/* line 1894, app/assets/stylesheets/summer_camp.scss */
.v10 .panel-desc {
  color: var(--color-text-soft);
  font-size: 12px;
  line-height: 1.5;
  font-style: italic;
  font-family: var(--font-heading);
  margin-top: 12px;
}

/* line 1902, app/assets/stylesheets/summer_camp.scss */
.v10 .mapping-note {
  margin-top: 36px;
  padding: 24px 28px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
}

/* line 1908, app/assets/stylesheets/summer_camp.scss */
.v10 .mapping-note .eyebrow {
  color: var(--color-label);
  margin-bottom: 12px;
}

/* line 1909, app/assets/stylesheets/summer_camp.scss */
.v10 .mapping-note p {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.7;
}

/* line 1914, app/assets/stylesheets/summer_camp.scss */
.v10 .mapping-note p strong {
  color: var(--color-primary);
  font-weight: 500;
}

/* line 1919, app/assets/stylesheets/summer_camp.scss */
.v10 .gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 56px auto 0;
}

/* line 1926, app/assets/stylesheets/summer_camp.scss */
.v10 .book-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 0;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

/* line 1933, app/assets/stylesheets/summer_camp.scss */
.v10 .book-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(27, 43, 75, 0.08);
}

/* line 1937, app/assets/stylesheets/summer_camp.scss */
.v10 .book-card .book-cover {
  width: 100%;
  aspect-ratio: 3 / 4.18;
  object-fit: cover;
  object-position: center top;
  filter: saturate(0.86) contrast(0.96);
  background: var(--color-oat);
}

/* line 1945, app/assets/stylesheets/summer_camp.scss */
.v10 .book-card-body {
  padding: 22px 20px;
}

/* line 1946, app/assets/stylesheets/summer_camp.scss */
.v10 .book-title {
  font-family: var(--font-heading);
  font-size: 22px;
  line-height: 1.15;
  color: var(--color-text);
  margin-bottom: 6px;
}

/* line 1953, app/assets/stylesheets/summer_camp.scss */
.v10 .book-author {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 14px;
  color: var(--color-text-soft);
  margin-bottom: 12px;
}

/* line 1960, app/assets/stylesheets/summer_camp.scss */
.v10 .book-meta {
  color: var(--color-label);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 14px;
}

/* line 1968, app/assets/stylesheets/summer_camp.scss */
.v10 .book-logline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-text-soft);
  margin-bottom: 16px;
}

/* line 1976, app/assets/stylesheets/summer_camp.scss */
.v10 .book-link {
  color: var(--color-primary);
  font-weight: 500;
  font-size: 13px;
}

/* line 1981, app/assets/stylesheets/summer_camp.scss */
.v10 .gallery-cta {
  text-align: center;
  margin-top: 56px;
}

/* line 1984, app/assets/stylesheets/summer_camp.scss */
.v10 .stages-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1100px;
  margin: 56px auto 0;
}

/* line 1991, app/assets/stylesheets/summer_camp.scss */
.v10 .stage {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 36px 26px;
}

/* line 1996, app/assets/stylesheets/summer_camp.scss */
.v10 .stage-num {
  font-family: var(--font-heading);
  font-size: 56px;
  line-height: 1;
  color: var(--color-primary);
  margin-bottom: 18px;
  font-weight: 400;
}

/* line 2004, app/assets/stylesheets/summer_camp.scss */
.v10 .stage h3 {
  font-size: 24px;
  margin-bottom: 12px;
}

/* line 2005, app/assets/stylesheets/summer_camp.scss */
.v10 .stage p {
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.65;
}

/* line 2012, app/assets/stylesheets/summer_camp.scss */
.v10 .phases-stack {
  max-width: 920px;
  margin: 56px auto 0;
}

/* line 2013, app/assets/stylesheets/summer_camp.scss */
.v10 .phase-card {
  background: rgba(247, 243, 237, 0.06);
  border: 1px solid rgba(247, 243, 237, 0.15);
  padding: 32px 36px;
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 32px;
  align-items: start;
}

/* line 2023, app/assets/stylesheets/summer_camp.scss */
.v10 .phase-card .phase-num {
  font-family: var(--font-heading);
  font-size: 14px;
  color: var(--color-accent);
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

/* line 2031, app/assets/stylesheets/summer_camp.scss */
.v10 .phase-card .phase-name {
  font-family: var(--font-heading);
  font-size: 28px;
  line-height: 1.1;
  color: var(--color-bg);
}

/* line 2037, app/assets/stylesheets/summer_camp.scss */
.v10 .phase-card .phase-content p {
  color: rgba(247, 243, 237, 0.86);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 8px;
}

/* line 2043, app/assets/stylesheets/summer_camp.scss */
.v10 .phase-card .phase-content .mentor-marker {
  color: var(--color-accent);
  font-style: italic;
  font-size: 14px;
}

/* line 2050, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options {
  background: rgba(247, 243, 237, 0.04);
  border: 1px solid rgba(247, 243, 237, 0.15);
  padding: 28px 32px;
  margin-top: 32px;
}

/* line 2056, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options .eyebrow {
  color: var(--color-accent);
  margin-bottom: 14px;
}

/* line 2057, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options-row {
  padding: 14px 0;
  border-top: 1px solid rgba(247, 243, 237, 0.15);
}

/* line 2061, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options-row:first-of-type {
  border-top: none;
  padding-top: 0;
}

/* line 2062, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options-row strong {
  color: var(--color-bg);
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
}

/* line 2068, app/assets/stylesheets/summer_camp.scss */
.v10 .pub-options-row p {
  color: rgba(247, 243, 237, 0.86);
  font-size: 14px;
  margin-top: 4px;
}

/* line 2075, app/assets/stylesheets/summer_camp.scss */
.v10 .reasons-list {
  max-width: 760px;
  margin: 32px auto 0;
}

/* line 2076, app/assets/stylesheets/summer_camp.scss */
.v10 .reason {
  padding: 18px 0;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  gap: 18px;
  align-items: baseline;
}

/* line 2083, app/assets/stylesheets/summer_camp.scss */
.v10 .reason:last-child {
  border-bottom: none;
}

/* line 2084, app/assets/stylesheets/summer_camp.scss */
.v10 .reason-mark {
  color: var(--color-primary);
  font-size: 22px;
  font-family: var(--font-heading);
  line-height: 1;
}

/* line 2090, app/assets/stylesheets/summer_camp.scss */
.v10 .reason-text {
  color: var(--color-text);
  font-size: 17px;
  line-height: 1.6;
  font-family: var(--font-heading);
}

/* line 2097, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta .micro {
  margin-top: 18px;
  font-size: 13px;
  color: rgba(247, 243, 237, 0.7);
  font-style: italic;
}

/* line 2103, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta-secondary {
  display: inline-block;
  margin-top: 22px;
  color: rgba(247, 243, 237, 0.86);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
  border-bottom: 1px solid rgba(247, 243, 237, 0.5);
  padding-bottom: 2px;
}

/* line 2114, app/assets/stylesheets/summer_camp.scss */
.v10 .final-cta-secondary:hover {
  border-bottom-color: var(--color-accent);
}

@media (max-width: 980px) {
  /* line 19, app/assets/stylesheets/summer_camp.scss */
  .v10 {
    /* Hero v2 — tablet: shrink illustration, let text use more width */
    /* Sub-page patterns */
  }
  /* line 2118, app/assets/stylesheets/summer_camp.scss */
  .v10 .nav-links {
    display: none;
  }
  /* line 2119, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero, .v10 .split, .v10 .split-reverse, .v10 .final-grid {
    grid-template-columns: 1fr;
  }
  /* line 2120, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero {
    padding-top: 64px;
  }
  /* line 2121, app/assets/stylesheets/summer_camp.scss */
  .v10 .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2122, app/assets/stylesheets/summer_camp.scss */
  .v10 .stat:nth-child(2) {
    border-right: none;
  }
  /* line 2123, app/assets/stylesheets/summer_camp.scss */
  .v10 .stat:nth-child(-n+2) {
    border-bottom: 1px solid var(--color-border);
  }
  /* line 2124, app/assets/stylesheets/summer_camp.scss */
  .v10 .paths-grid, .v10 .programs-4, .v10 .programs-3, .v10 .proof-grid {
    grid-template-columns: 1fr;
  }
  /* line 2125, app/assets/stylesheets/summer_camp.scss */
  .v10 .calendar-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* line 2126, app/assets/stylesheets/summer_camp.scss */
  .v10 .proof-feature-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  /* line 2127, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero-collage {
    grid-template-columns: repeat(3, 1fr);
    min-height: 420px;
  }
  /* line 2128, app/assets/stylesheets/summer_camp.scss */
  .v10 .faculty-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2129, app/assets/stylesheets/summer_camp.scss */
  .v10 .testimonials-grid {
    grid-template-columns: 1fr;
  }
  /* line 2132, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-illustration {
    width: 42%;
    opacity: 0.7;
  }
  /* line 2133, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-text {
    max-width: 100%;
  }
  /* line 2134, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-tiles {
    grid-template-columns: repeat(4, 1fr);
  }
  /* line 2137, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero.sub-hero {
    grid-template-columns: 1fr;
  }
  /* line 2138, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero-image, .v10 .hero-image img {
    min-height: 420px;
  }
  /* line 2139, app/assets/stylesheets/summer_camp.scss */
  .v10 .facts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2140, app/assets/stylesheets/summer_camp.scss */
  .v10 .fact {
    border-bottom: 1px solid var(--color-border);
  }
  /* line 2141, app/assets/stylesheets/summer_camp.scss */
  .v10 .fact:nth-child(odd) {
    border-right: 1px solid var(--color-border);
  }
  /* line 2142, app/assets/stylesheets/summer_camp.scss */
  .v10 .fact:nth-child(even) {
    border-right: none;
  }
  /* line 2143, app/assets/stylesheets/summer_camp.scss */
  .v10 .pillars-grid, .v10 .method-grid, .v10 .fit-grid {
    grid-template-columns: 1fr;
  }
  /* line 2144, app/assets/stylesheets/summer_camp.scss */
  .v10 .booklist-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2145, app/assets/stylesheets/summer_camp.scss */
  .v10 .skills-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2146, app/assets/stylesheets/summer_camp.scss */
  .v10 .patterns-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  /* line 2147, app/assets/stylesheets/summer_camp.scss */
  .v10 .sessions-grid {
    grid-template-columns: 1fr;
  }
  /* line 2148, app/assets/stylesheets/summer_camp.scss */
  .v10 .flow-grid {
    grid-template-columns: 1fr;
  }
  /* line 2149, app/assets/stylesheets/summer_camp.scss */
  .v10 .math-row .value {
    font-size: 40px;
  }
  /* line 2150, app/assets/stylesheets/summer_camp.scss */
  .v10 .math-row.total .value {
    font-size: 56px;
  }
  /* line 2151, app/assets/stylesheets/summer_camp.scss */
  .v10 .xo-grid, .v10 .session-lines {
    grid-template-columns: 1fr;
  }
  /* line 2152, app/assets/stylesheets/summer_camp.scss */
  .v10 .related-grid {
    grid-template-columns: 1fr;
  }
  /* line 2153, app/assets/stylesheets/summer_camp.scss */
  .v10 .cards-3, .v10 .cards-2 {
    grid-template-columns: 1fr;
  }
  /* line 2154, app/assets/stylesheets/summer_camp.scss */
  .v10 .week-card {
    grid-template-columns: 1fr;
  }
  /* line 2155, app/assets/stylesheets/summer_camp.scss */
  .v10 .bridge-grid, .v10 .topics-split {
    grid-template-columns: 1fr;
  }
  /* line 2156, app/assets/stylesheets/summer_camp.scss */
  .v10 .bridge-arrow {
    transform: rotate(90deg);
  }
  /* line 2157, app/assets/stylesheets/summer_camp.scss */
  .v10 .storyboard-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  /* line 2158, app/assets/stylesheets/summer_camp.scss */
  .v10 .gallery, .v10 .stages-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2159, app/assets/stylesheets/summer_camp.scss */
  .v10 .phase-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  /* line 19, app/assets/stylesheets/summer_camp.scss */
  .v10 {
    /* Hero v2 — mobile: hide illustration, 2-col tile grid */
    /* Sub-page mobile */
  }
  /* line 2162, app/assets/stylesheets/summer_camp.scss */
  .v10 .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  /* line 2163, app/assets/stylesheets/summer_camp.scss */
  .v10 section {
    padding: 76px 0;
  }
  /* line 2164, app/assets/stylesheets/summer_camp.scss */
  .v10 h1 {
    font-size: 42px;
    line-height: 1.05;
  }
  /* line 2165, app/assets/stylesheets/summer_camp.scss */
  .v10 h2 {
    font-size: 32px;
    line-height: 1.1;
  }
  /* line 2166, app/assets/stylesheets/summer_camp.scss */
  .v10 .brand-sub {
    display: none;
  }
  /* line 2167, app/assets/stylesheets/summer_camp.scss */
  .v10 .stats-grid {
    grid-template-columns: 1fr;
  }
  /* line 2168, app/assets/stylesheets/summer_camp.scss */
  .v10 .stat {
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }
  /* line 2169, app/assets/stylesheets/summer_camp.scss */
  .v10 .stat:last-child {
    border-bottom: none;
  }
  /* line 2170, app/assets/stylesheets/summer_camp.scss */
  .v10 .proof-feature-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  /* line 2171, app/assets/stylesheets/summer_camp.scss */
  .v10 .btn:not(.nav-cta) {
    width: 100%;
  }
  /* line 2172, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero-collage {
    grid-template-columns: repeat(3, 1fr);
  }
  /* line 2173, app/assets/stylesheets/summer_camp.scss */
  .v10 .faculty-grid {
    grid-template-columns: 1fr;
  }
  /* line 2176, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero.hero--v2 {
    padding: 48px 0 32px;
  }
  /* line 2177, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-illustration {
    display: none;
  }
  /* line 2178, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-tiles {
    grid-template-columns: repeat(2, 1fr);
    margin: 36px 16px 0;
  }
  /* line 2179, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-text {
    padding: 0 16px;
  }
  /* line 2180, app/assets/stylesheets/summer_camp.scss */
  .v10 .hero--v2 .hero-v2-text h1 {
    font-size: 38px;
  }
  /* line 2183, app/assets/stylesheets/summer_camp.scss */
  .v10 .facts-grid {
    grid-template-columns: 1fr;
  }
  /* line 2184, app/assets/stylesheets/summer_camp.scss */
  .v10 .fact {
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }
  /* line 2185, app/assets/stylesheets/summer_camp.scss */
  .v10 .fact:last-child {
    border-bottom: none;
  }
  /* line 2186, app/assets/stylesheets/summer_camp.scss */
  .v10 .skills-grid {
    grid-template-columns: 1fr;
  }
  /* line 2187, app/assets/stylesheets/summer_camp.scss */
  .v10 .booklist-grid {
    grid-template-columns: 1fr;
  }
  /* line 2188, app/assets/stylesheets/summer_camp.scss */
  .v10 .patterns-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* line 2189, app/assets/stylesheets/summer_camp.scss */
  .v10 .storyboard-grid {
    grid-template-columns: 1fr;
  }
  /* line 2190, app/assets/stylesheets/summer_camp.scss */
  .v10 .gallery, .v10 .stages-grid {
    grid-template-columns: 1fr;
  }
}

/* =====================================================================
 * /summercamp/must-reads — scoped editorial palette
 * (paper / Cormorant Garamond / burgundy / sage)
 *
 * The selectors below are gated on `body:has(.must-reads-hero)` so this
 * editorial palette ONLY applies to /summercamp/must-reads. Other
 * /summercamp/* pages render unchanged.
 * ===================================================================== */
/* line 2202, app/assets/stylesheets/summer_camp.scss */
.must-reads-hero,
.must-reads-legal,
.must-reads-enroll,
body:has(.must-reads-hero) .grade-section {
  --paper:    #F7F3ED;
  --paper-2:  #F1ECE4;
  --navy:     #1B2B4B;
  --burgundy: #6B1F2E;
  --sage:     #9AA88F;
  --gold:     #C2B8A3;
  --muted:    #667085;
  --line:     rgba(27, 43, 75, 0.12);
}

/* line 2216, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) {
  background: var(--paper, #F7F3ED);
  color: var(--navy, #1B2B4B);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

/* line 2222, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero {
  /* Override the global `.v10 section { padding: 104px 0 }` (line 208) which
     would otherwise dwarf .hero-inner's own padding. `section.<class>` matches
     the v10 selector's specificity (0,1,1) and wins via source order. */
  padding: 0;
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
  border-bottom: 1px solid var(--line);
}

/* line 2230, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero .container {
  max-width: 1200px;
  width: calc(100% - 40px);
  margin: 0 auto;
}

/* line 2231, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero .hero-inner {
  padding: 24px 0;
}

/* line 2233, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero .label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border: 1px solid var(--gold);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  color: var(--burgundy);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

/* line 2241, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero h1 {
  margin: 20px 0 0;
  max-width: 1020px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 6.4vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  font-weight: 500;
}

/* line 2247, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero h1 .title-main {
  color: var(--navy);
  white-space: nowrap;
}

/* line 2248, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero h1 .title-sub {
  font-size: 0.56em;
  letter-spacing: -0.005em;
  display: inline-block;
  margin-top: -2px;
  font-weight: 500;
  opacity: 0.94;
  line-height: 0.9;
}

/* line 2251, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero .subtitle {
  margin: 22px 0 0;
  max-width: 780px;
  color: #4A5568;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.7;
  font-weight: 400;
}

/* line 2253, app/assets/stylesheets/summer_camp.scss */
section.must-reads-hero .subtitle-line {
  color: #4A5568;
  font-weight: 400;
}

/* line 2256, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section {
  max-width: 1200px;
  width: calc(100% - 40px);
  margin: 0 auto;
  padding: 48px 0;
  border-top: 1px solid var(--line);
}

/* line 2261, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section:first-of-type {
  border-top: 0;
}

/* line 2263, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .section-head {
  margin-bottom: 24px;
  text-align: center;
}

/* line 2266, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .eyebrow {
  margin: 0 0 10px;
  color: var(--sage);
  font-size: 13px;
  letter-spacing: 0.24em;
  font-weight: 800;
}

/* line 2270, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section h2 {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.16;
  font-weight: 500;
  letter-spacing: -0.015em;
}

/* line 2276, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px 22px;
}

/* line 2278, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card {
  text-decoration: none;
  color: inherit;
  background: transparent;
  border: none;
  padding: 0;
}

/* line 2282, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .cover-wrap {
  overflow: hidden;
  border-radius: 26px;
  background: #F7F3ED;
  aspect-ratio: 3 / 4.18;
  box-shadow: 0 4px 14px rgba(27, 43, 75, 0.04);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

@media (hover: hover) {
  /* line 2290, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-card:hover .cover-wrap {
    transform: translateY(-5px);
    box-shadow: 0 22px 50px rgba(27, 43, 75, 0.18);
  }
}

/* line 2295, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card:focus-visible .cover-wrap {
  outline: 2px solid var(--burgundy);
  outline-offset: 4px;
}

/* line 2299, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .cover-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* line 2301, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .book-meta {
  padding: 15px 2px 0;
}

/* line 2302, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

/* line 2304, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .pill {
  display: inline-flex;
  padding: 6px 11px;
  border-radius: 999px;
  background: #E8EEF5;
  color: #294766;
  font-size: 12px;
  font-weight: 750;
}

/* line 2308, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card .year {
  color: #9B948A;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* line 2309, app/assets/stylesheets/summer_camp.scss */
body:has(.must-reads-hero) section.grade-section .book-card h3 {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.35;
  letter-spacing: -0.01em;
}

@media (max-width: 900px) {
  /* line 2316, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 620px) {
  /* line 2256, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section {
    max-width: 1200px;
    width: calc(100% - 28px);
  }
  /* line 2320, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 14px;
  }
  /* line 2321, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-card .cover-wrap {
    border-radius: 20px;
  }
  /* line 2322, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-card h3 {
    font-size: 14px;
  }
  /* line 2323, app/assets/stylesheets/summer_camp.scss */
  body:has(.must-reads-hero) section.grade-section .book-card .year {
    display: none;
  }
}

/* line 2327, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll {
  padding: 64px 0 56px;
  border-top: 1px solid var(--line, rgba(27, 43, 75, 0.12));
  background: linear-gradient(180deg, var(--paper-2, #F1ECE4) 0%, var(--paper, #F7F3ED) 100%);
}

/* line 2332, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .container {
  max-width: 1200px;
  width: calc(100% - 40px);
  margin: 0 auto;
}

/* line 2333, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .enroll-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

/* line 2334, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border: 1px solid var(--gold, #C2B8A3);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  color: var(--burgundy, #6B1F2E);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

/* line 2341, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll h2 {
  margin: 22px 0 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--navy, #1B2B4B);
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.18;
  font-weight: 500;
  letter-spacing: -0.015em;
}

/* line 2347, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .lead {
  margin: 18px auto 0;
  max-width: 620px;
  color: #4A5568;
  font-size: 16px;
  line-height: 1.65;
}

/* line 2351, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 28px;
  padding: 14px 28px;
  min-height: 52px;
  background: var(--burgundy, #6B1F2E);
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

/* line 2359, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(107, 31, 46, 0.22);
}

/* line 2360, app/assets/stylesheets/summer_camp.scss */
section.must-reads-enroll .btn:focus-visible {
  outline: 2px solid var(--burgundy, #6B1F2E);
  outline-offset: 3px;
}

/* line 2363, app/assets/stylesheets/summer_camp.scss */
section.must-reads-legal {
  padding: 48px 0 72px;
  text-align: center;
  color: #6F6A63;
  font-size: 14px;
}

/* line 2367, app/assets/stylesheets/summer_camp.scss */
section.must-reads-legal .container {
  max-width: 1200px;
  width: calc(100% - 40px);
  margin: 0 auto;
}

/* line 2368, app/assets/stylesheets/summer_camp.scss */
section.must-reads-legal .affiliate-disclosure {
  margin: 0 auto 24px;
  max-width: 720px;
  color: #5A544D;
  font-size: 13px;
  font-style: italic;
  line-height: 1.6;
}

/* line 2372, app/assets/stylesheets/summer_camp.scss */
section.must-reads-legal .copyright {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.7;
  opacity: 0.72;
}

@media (max-width: 620px) {
  /* line 2377, app/assets/stylesheets/summer_camp.scss */
  .must-reads-hero h1 {
    font-size: clamp(34px, 9.2vw, 46px) !important;
    letter-spacing: -0.018em;
    line-height: 1.02;
  }
  /* line 2381, app/assets/stylesheets/summer_camp.scss */
  .must-reads-hero .subtitle {
    margin-top: 28px;
  }
  /* line 2382, app/assets/stylesheets/summer_camp.scss */
  .must-reads-hero .container {
    max-width: 1200px;
    width: calc(100% - 28px);
  }
  /* line 2383, app/assets/stylesheets/summer_camp.scss */
  .must-reads-hero .hero-inner {
    padding: 62px 0 48px;
  }
  /* line 2384, app/assets/stylesheets/summer_camp.scss */
  section.must-reads-enroll {
    padding: 48px 0 40px;
  }
  /* line 2385, app/assets/stylesheets/summer_camp.scss */
  section.must-reads-enroll .container {
    width: calc(100% - 28px);
  }
}
