/* Page composition only. Brand tokens, Geist, containers, buttons and cards
   come from styles.css; the header uses the shared home.js menu. */
.parent-landing {
  --font-geist: "Geist";
  color: var(--ink);
}

.parent-landing :where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--purple-2);
  outline-offset: 5px;
}

.parent-landing section[id],
.parent-landing main { scroll-margin-top: 100px; }
.parent-landing .section-pad { padding-block: 84px; }
.parent-landing .section-heading h2 { font-size: clamp(30px, 3vw, 40px); line-height: 1.2; letter-spacing: -1.5px; text-wrap: balance; }
.parent-landing .section-heading p { font-size: 16px; line-height: 1.7; }
.parent-landing .centered { margin-bottom: 38px; }
.parent-landing .kicker { font-size: 11px; font-weight: 600; line-height: 1.7; }
.parent-landing .button { min-height: 48px; }
.parent-landing .button.small { min-height: 44px; font-size: 13px; }
.parent-landing .button:hover { transform: translateY(-1px); }
.parent-symbols { position: absolute; overflow: hidden; pointer-events: none; }
.parent-icon { width: 24px; height: 24px; fill: currentColor; stroke: none; flex-shrink: 0; }
.parent-action-icon { display: inline-block; width: 16px; height: 16px; flex-shrink: 0; fill: currentColor; }
.parent-skip { position: fixed; top: 10px; left: 16px; z-index: 1100; padding: 14px 20px; border-radius: 12px; background: var(--purple); color: white; transform: translateY(-150%); }
.parent-skip:focus { transform: translateY(0); }

.parent-landing .brand { min-height: 44px; }

.parent-landing .parent-hero { background: white; padding-block: 64px 72px; }
.parent-hero .hero-grid { grid-template-columns: 1fr 1fr; gap: 56px; }
.parent-hero .hero-copy { min-width: 0; }
.parent-hero .eyebrow { background: var(--lav); padding: 8px 13px; font-size: 12px; }
.parent-hero h1 { font-size: clamp(40px, 4.15vw, 58px); line-height: 1.09; letter-spacing: -2.5px; margin-block: 22px; }
.parent-hero h1 span { color: var(--purple-2); }
.parent-hero .lead { font-size: 16px; line-height: 1.8; max-width: 495px; margin-bottom: 0; }
.parent-hero .hero-actions { margin-top: 26px; gap: 12px; }
.parent-trust-note { margin: 19px 0 0; max-width: 450px; font-size: 12px; line-height: 1.9; color: var(--muted); }
.parent-hero-visual { min-width: 0; margin: 0; }
.parent-hero-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: right center; background: var(--cream); border: 1px solid #f0e5d5; border-radius: 28px; box-shadow: 0 18px 48px #39206c08; }
.parent-hero-visual figcaption { display: flex; align-items: center; justify-content: center; gap: 9px; padding-top: 17px; font-size: 12px; line-height: 1.6; color: var(--muted); text-align: center; }
.parent-hero-visual figcaption .parent-action-icon { color: var(--purple-2); }

.parent-active { border-top: 1px solid var(--line); }
.parent-active .section-heading p { max-width: 600px; }
.parent-action-chips { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; list-style: none; margin: 23px 0 0; padding: 0; }
.parent-action-chips li { padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--purple); font-size: 12px; font-weight: 500; }
.parent-previews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 1040px; margin: auto; }
.parent-preview { min-width: 0; margin: 0; padding: 10px 10px 0; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: 0 8px 24px #39206c06; }
.parent-preview-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: #f8f7fa; border-radius: 14px; }
.parent-preview figcaption { display: flex; align-items: baseline; gap: 10px; padding: 15px 8px 17px; font-size: 12px; line-height: 1.5; }
.parent-preview figcaption > span { color: var(--purple-2); font-size: 10px; }

.parent-approach { background: var(--cream); }
.parent-approach h2 span { color: var(--purple-2); }
.parent-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 0; margin: 0; list-style: none; }
.parent-flow > li { position: relative; min-width: 0; }
.parent-step-visual { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 23px; border: 1px solid #e9dfcf; border-radius: 18px; }
.parent-step-copy { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: baseline; }
.parent-step-number { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid #e9dfcf; border-radius: 50%; background: #fffdf8; font-size: 10px; font-weight: 600; color: var(--purple-2); }
.parent-step-copy h3 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -.5px; }
.parent-step-copy p { grid-column: 2; margin: 12px 0 0; font-size: 14px; line-height: 1.8; color: var(--muted); max-width: 290px; }

.parent-worlds { background: #fcfbfd; }
.parent-worlds .section-heading p { max-width: 640px; text-wrap: pretty; }
.parent-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.parent-category-grid .feature-card {
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: white;
  box-shadow: none;
}
.parent-category-grid .feature-card > div { min-width: 0; }
.parent-category-grid .feature-card h3 { margin: 0 0 6px; font-size: 16px; line-height: 1.4; font-weight: 650; letter-spacing: -.35px; text-wrap: balance; }
.parent-category-grid .feature-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
/* Category colors belong to the category, independent of card order or replacement assets. */
.parent-category--language { --category-tint: #eee6fb; --category-ink: var(--purple-2); }
.parent-category--math { --category-tint: #fff1cc; --category-ink: #956518; }
.parent-category--nature { --category-tint: #e1f2e8; --category-ink: #357459; }
.parent-category--emotions { --category-tint: #fbe5ed; --category-ink: #a04e70; }
.parent-category--art { --category-tint: #e3edfb; --category-ink: #476fa7; }
.parent-category--movement { --category-tint: #ffeadc; --category-ink: #aa633c; }
.parent-category-grid .parent-category-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 14px;
  background: var(--category-tint, var(--lav));
  color: var(--category-ink, var(--purple-2));
  box-shadow: inset 0 0 0 1px #ffffff60;
  opacity: 1;
}
.parent-category-icon .parent-icon { width: 23px; height: 23px; }

.parent-confidence { padding-block: 56px; background: var(--lav); }
.parent-confidence .centered { margin-bottom: 28px; }
.parent-confidence .section-heading h2 { font-size: clamp(28px, 2.5vw, 34px); }
.parent-trust-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 30px; padding: 0; margin: 0; list-style: none; }
.parent-trust-items li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--purple); }
.parent-trust-items .parent-icon { width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: white; }

.parent-landing .parent-advisor.section-pad { background: white; padding-bottom: 0; }
.parent-advisor .advisor-avatar, .parent-advisor .advisor-card::after { display: none; }
.parent-advisor .advisor-members li { min-height: 0; justify-content: center; padding: 22px 16px; }

.parent-final { padding-block: 72px; }
.parent-final .cta-card { grid-template-columns: minmax(0, 1fr) 190px; gap: 36px; min-height: 0; padding: 50px 62px; background: var(--purple); border-radius: 24px; }
.parent-final h2 { margin: 0; font-size: clamp(30px, 3vw, 40px); line-height: 1.2; letter-spacing: -1.5px; text-wrap: balance; }
.parent-final p { font-size: 15px; margin-block: 14px 24px; max-width: 540px; }
.parent-final .button { background: white; color: var(--purple); border-color: white; box-shadow: none; }
.parent-final .button:focus-visible,
.parent-footer a:focus-visible { outline-color: var(--mint); }
.parent-final .cta-card small { font-size: 12px; margin-top: 12px; color: #e4d9f4; }
.parent-mascot { display: block; width: 190px; height: auto; }

.parent-footer { padding-block: 46px 28px; }
.parent-footer .footer-grid { gap: 32px; }
.parent-footer .footer-grid > div { gap: 0; font-size: 12px; }
.parent-footer .footer-grid b { margin: 0 0 10px; font-size: 12px; }
.parent-footer .footer-grid .brand-logo { width: 90px; }
.parent-footer .footer-grid a:not(.brand) { display: flex; align-items: center; min-height: 44px; color: #d3cbdc; line-height: 1.5; }
.parent-footer .footer-grid > div:first-child p { color: #bfb6cc; font-size: 12px; }
.parent-disclosure { margin-top: 28px; }
.parent-disclosure p { margin: 0; max-width: 720px; font-size: 12px; line-height: 1.8; color: #bfb6cc; }
.parent-footer .footer-bottom { margin-top: 24px; padding-top: 22px; color: #bfb6cc; font-size: 11px; border-color: #ffffff26; }

@media (max-width: 1100px) {
  .parent-hero .hero-grid { gap: 32px; }
  .parent-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .parent-hero .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .parent-hero .hero-copy { max-width: 640px; margin-inline: auto; }
  .parent-hero h1 { max-width: 620px; }
  .parent-hero .lead { max-width: 580px; }
  .parent-trust-note { max-width: 490px; margin-inline: auto; }
  .parent-hero-visual { width: 100%; max-width: 560px; margin-inline: auto; }
  .parent-previews { gap: 14px; }
  .parent-preview figcaption { font-size: 11px; }
  .parent-step-copy h3 { font-size: 18px; }
  .parent-step-copy p { grid-column: 1 / -1; }
  .parent-final .cta-card { padding: 40px; grid-template-columns: minmax(0, 1fr) 150px; }
  .parent-mascot { width: 150px; }
}

@media (max-width: 640px) {
  .parent-landing .section-pad { padding-block: 54px; }
  .parent-landing .container { width: calc(100% - 40px); }
  .parent-landing .centered { margin-bottom: 28px; }
  .parent-landing .section-heading h2 { font-size: 30px; letter-spacing: -1px; }
  .parent-landing .section-heading p { font-size: 14px; }
  .parent-landing .kicker { font-size: 10px; letter-spacing: 1.2px; }
  .parent-landing .parent-hero { padding-block: 36px 42px; }
  .parent-hero .hero-copy { text-align: left; width: 100%; }
  .parent-hero h1 { font-size: clamp(34px, 10.2vw, 46px); letter-spacing: -1.5px; margin-block: 20px; }
  .parent-hero .lead { font-size: 15px; line-height: 1.75; }
  .parent-hero .hero-actions { margin-top: 22px; gap: 10px; }
  .parent-hero .hero-actions .button { min-height: 50px; }
  .parent-trust-note { font-size: 11px; margin-top: 16px; line-height: 1.9; }
  .parent-hero .hero-grid { gap: 28px; }
  .parent-hero-image { border-radius: 22px; }
  .parent-hero-visual figcaption { font-size: 11px; padding-top: 12px; }
  .parent-action-chips { gap: 7px; margin-top: 20px; }
  .parent-action-chips li { padding: 8px 11px; font-size: 11px; }
  .parent-previews { grid-template-columns: 1fr; gap: 18px; max-width: 400px; }
  .parent-preview figcaption { font-size: 12px; }
  .parent-flow { grid-template-columns: 1fr; gap: 28px; }
  .parent-flow > li { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 18px; align-items: start; }
  .parent-step-visual { aspect-ratio: 4 / 3; border-radius: 12px; margin: 0; }
  .parent-step-copy { column-gap: 8px; padding-top: 3px; }
  .parent-step-copy h3 { font-size: 18px; }
  .parent-step-copy p { margin-top: 8px; font-size: 13px; line-height: 1.7; }
  .parent-category-grid { grid-template-columns: 1fr; gap: 12px; }
  .parent-category-grid .feature-card { gap: 14px; padding: 18px; border-radius: 18px; }
  .parent-category-grid .feature-card h3 { font-size: 16px; margin-bottom: 5px; }
  .parent-confidence { padding-block: 44px; }
  .parent-confidence .section-heading h2 { font-size: 27px; }
  .parent-trust-items { justify-content: flex-start; gap: 16px; max-width: 320px; margin-inline: auto; }
  .parent-trust-items li { flex: 1 1 calc(50% - 16px); font-size: 12px; }
  .parent-trust-items li:last-child { flex-basis: 100%; }
  .parent-advisor .advisor-members li { justify-content: flex-start; padding: 16px; text-align: left; }
  .parent-final { padding-block: 44px; }
  .parent-final .cta-card { position: relative; grid-template-columns: 1fr; padding: 30px 24px; gap: 0; border-radius: 22px; }
  .parent-final h2 { max-width: 280px; font-size: 32px; line-height: 1.18; letter-spacing: -1px; }
  .parent-final p { font-size: 14px; }
  .parent-final .button { min-height: 50px; }
  .parent-final .cta-card small { font-size: 11px; }
  .parent-mascot { position: absolute; width: 68px; right: 16px; bottom: 16px; }
  .parent-footer { padding-block: 34px 82px; }
  .parent-footer .footer-grid { gap: 26px 20px; }
  .parent-footer .footer-grid > div:first-child { flex-direction: row; gap: 18px; align-items: center; }
  .parent-footer .footer-grid .brand { margin-bottom: 0; }
  .parent-footer .footer-grid .brand-logo { width: 72px; }
  .parent-footer .footer-grid > div:last-child { grid-column: auto; }
  .parent-footer .footer-grid a:not(.brand) { font-size: 11px; overflow-wrap: anywhere; }
  .parent-disclosure p { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .parent-landing .button { transition: none; }
  .parent-landing .button:hover { transform: none; }
}
