/* Shared footer typography is independent of page-level heading styles. */
.landing-footer :is(h2, p) { margin: 0; line-height: 1.5; letter-spacing: 0; }
.landing-footer .landing-footer__brand p { margin-top: .65rem; }
:is(.landing-page, .product-page) .landing-footer { background: var(--color-surface-raised); border: 0; line-height: 1.5; }
:is(.landing-page, .product-page) .landing-footer__inner { width: min(calc(100% - 6rem),70rem); padding: 3rem 0 1.5rem; }
:is(.landing-page, .product-page) .landing-footer__brand p { max-width: 18rem; font-size: 0.875rem; color: var(--landing-ink-soft); }
:is(.landing-page, .product-page) .landing-footer__wordmark { color: var(--landing-ink); }
:is(.landing-page, .product-page) .landing-footer__group h2 { line-height: 1.5; font-size: 0.8125rem; font-weight: 600; color: var(--landing-ink); text-transform: none; letter-spacing: 0; }
:is(.landing-page, .product-page) .landing-footer__group ul { margin: 1rem 0 0; padding: 0; padding-inline-start: 0; list-style: none; }
:is(.landing-page, .product-page) .landing-footer__group :is(li,a) { margin-inline: 0; padding-inline: 0; }
:is(.landing-page, .product-page) .landing-footer__group a { font-size: 0.8125rem; color: var(--landing-ink-soft); }
:is(.landing-page, .product-page) .landing-footer__copyright { border-color: var(--landing-rule); color: var(--landing-ink-soft); font-size: 0.75rem; }
@media (max-width: 47.999rem) {
  :is(.landing-page, .product-page) .landing-footer__inner { width: calc(100% - 3rem); padding-top: 2.5rem; }
}

/* Public policy pages prioritize readable, reviewable terms over decoration. */
.legal-page { max-width: 52rem; margin-inline: auto; }
.legal-page > header { padding-bottom: 3rem; border-bottom: 1px solid var(--color-rule-strong); }
.legal-page > header > p:not(.kicker) { max-width: 46rem; margin-top: 1.25rem; font-size: 1.125rem; }
.legal-page .legal-page__status { padding: 1rem 1.25rem; border-radius: var(--radius-medium); background: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface-raised)); font-size: var(--text-sm); }
.legal-page section { padding-block: 2.5rem; border-bottom: 1px solid var(--color-rule); }
.legal-page section h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.legal-page section p, .legal-page section ul { margin: 1rem 0 0; color: var(--color-ink-soft); font-size: 1rem; line-height: 1.7; }
.legal-page section li + li { margin-top: .55rem; }
.legal-page a { color: var(--color-accent); text-underline-offset: .2em; }

/* Public-page composition. Visual primitives live in tokens.css and controls.css. */
.public-page-content { padding-block: var(--section-space); }
.public-page-content h1 { max-width: 20ch; font-size: var(--text-display); }
.public-page-content h2 { font-size: var(--text-2xl); }
.public-page-content .kicker { margin-bottom: 1rem; color: var(--color-accent); font-size: var(--text-sm); font-weight: 500; letter-spacing: 0; }
.public-page-content > .lesson-catalog { padding-block: 0; }
.public-page-content .auth-shell { min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.public-page-content .auth-panel { padding: clamp(1.5rem, 4vw, 3rem); border: 0; border-radius: var(--radius-large); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.public-page-content .auth-intro > p:last-child { margin-top: 1.5rem; font-size: 1.125rem; }
.public-page-content .auth-links { gap: 0.5rem 1.5rem; }
.public-page-content .auth-links a { white-space: normal; color: var(--color-accent); font-size: var(--text-sm); }
.public-page-content .flash-stack { margin-bottom: 2rem; }
.public-page-content .form-errors ul { margin: 0.75rem 0 0; padding-left: 1.25rem; list-style: disc; }
.public-page-content .form-section { border: 0; border-radius: var(--radius-large); background: var(--color-surface-raised); }
@media (max-width: 47.999rem) {
  .public-page-content { padding-block: 4.5rem; }
  .public-page-content h1 { font-size: clamp(2.3rem, 8vw, 3.5rem); }
  .public-page-content .auth-shell { grid-template-columns: minmax(0, 1fr); }
}
.landing-page { line-height: 1.5; }
.landing-page .landing-surface { background: var(--color-surface-raised); }
.landing-page h1 { font-weight: 650; line-height: 1.07; letter-spacing: -0.045em; }
.landing-page h2 { font-weight: 650; line-height: 1.1; letter-spacing: -0.035em; }
.landing-page h3 { font-weight: 600; line-height: 1.2; }
.landing-page .landing-kicker { font-size: var(--text-sm); letter-spacing: 0; text-transform: none; font-weight: 500; }
.landing-page .landing-text-link { font-weight: 500; }
.landing-page .landing-page-hero { padding-block: var(--section-space); border: 0; }
.landing-page .landing-page-hero__media { border-radius: var(--radius-large); }
.landing-page .landing-page-hero--media h1 { font-size: var(--text-display); }
.landing-page .landing-page-hero__copy > p:not(.landing-kicker) { font-size: 1.125rem; }
.landing-page .landing-final-cta { padding-block: var(--section-space); }

/* Shared editorial layout for explaining the audio technology. */
.landing-intelligence {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 3rem clamp(3rem, 7vw, 7rem);
  padding-block: var(--section-space);
  scroll-margin-top: calc(var(--header-height) + 2rem);
}
.landing-intelligence__intro h2 { padding-top: 1rem; }
.landing-intelligence__intro > p:not(.landing-kicker) { margin-top: 1.5rem; font-size: 1.125rem; }
.landing-intelligence__intro .landing-text-link { margin-top: 1.5rem; }
.landing-page .landing-technology-image { margin-top: 2rem; }
.landing-technology-image img { display: block; width: 100%; height: auto; border-radius: var(--radius-large); outline: 1px solid var(--color-rule); outline-offset: -1px; }
.landing-technology-image figcaption { margin-top: 0.75rem; color: var(--color-muted); font-size: var(--text-sm); line-height: 1.5; }
.landing-intelligence__steps { margin: 0; padding-left: 2.5rem; list-style: decimal-leading-zero; }
.landing-intelligence__steps li { padding: 1.75rem 0 1.75rem 0.5rem; border-bottom: 1px solid var(--color-rule); }
.landing-intelligence__steps li:first-child { padding-top: 0; }
.landing-intelligence__steps li::marker { color: var(--color-accent); font-family: var(--font-mono); font-size: var(--text-sm); }
.landing-intelligence__steps p { margin-top: 0.75rem; }
.landing-intelligence__upcoming { grid-column: 2; padding: 2rem; background: var(--color-surface-raised); border-radius: var(--radius-medium); }
.landing-intelligence__upcoming h3 { margin-top: 0.75rem; }
.landing-intelligence__upcoming > p:last-child { margin-top: 1rem; }
.landing-section-copy > .landing-kicker, .landing-microphone > div > .landing-kicker { margin: 0 0 1rem; font-size: var(--text-sm); color: var(--color-accent); }
.landing-teacher-process ol { align-self: center; }
.landing-teacher-process li { min-height: 0; }
.landing-microphone .landing-text-link { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: 1rem; }
@media (max-width: 47.999rem) {
  .landing-intelligence { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .landing-intelligence__upcoming { grid-column: 1; padding: 1.5rem; }
}

/* The public header and photographic hero use a span for their inset label. */
.landing-page .landing-button--framed {
  border: 0; padding: 0; background: transparent; box-shadow: none; border-radius: var(--radius-round);
}
.landing-page .landing-button--framed::before, .landing-page .landing-button--framed::after { display: none; }
.landing-page .landing-button--framed > span {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--control-height); padding: 0.7rem var(--control-padding); border: 0;
  border-radius: var(--radius-round); background: var(--color-accent); color: var(--color-accent-ink);
  box-shadow: none; font-size: 1rem; font-weight: 500; line-height: 1.25;
}
@media (max-width: 47.999rem) {
  .landing-page .landing-page-hero { padding-block: 4.5rem; }
  .landing-page .landing-page-hero--media { grid-template-columns: 1fr; }
}
