/* Shared alignment system, November 2. Colors and type tokens remain in theme.css. */
@media screen {
  body .container:not(.closing) { width: min(1200px,calc(100% - 64px)); max-width: 1200px; margin-inline: auto; }
  body .section, body .hero { padding-block: 96px; }
  body .section-heading, .pair-copy, .hero-copy, .hero-intro, .demo-pitch, .residents-hero-copy { container-type: inline-size; }
  body[data-route] h1, body[data-route] .hero h1, body[data-route] .platform-hero h1, body[data-route] .demo-pitch h1, body[data-route] .narrow-page h1 { font-size: var(--type-h1); font-weight: var(--weight-heading); line-height: 1.12; letter-spacing: normal; text-wrap: balance; overflow-wrap: normal; word-break: normal; }
  body[data-route] h2, body[data-route] .split h2, body[data-route] .closing h2, body[data-route] .privacy-panel h2 { font-size: var(--type-h2); font-weight: var(--weight-heading); line-height: 1.15; letter-spacing: normal; text-wrap: balance; overflow-wrap: normal; word-break: normal; }
  body[data-route] h3 { text-wrap: balance; word-break: normal; overflow-wrap: normal; }
  body p { max-width: 68ch; line-height: 1.5; text-wrap: pretty; }
  body h1 + p, body h2 + p, body .subhead { margin-top: 24px; }
  body p + p { margin-top: 16px; }
  body .section-heading { margin-bottom: 24px; }
  body .eyebrow { margin-bottom: 16px; }
  body .actions { margin-top: 32px; gap: 24px; align-items: center; }
  body p + .button, body p + .text-link, body .section-heading + .button, body .section-heading + .text-link { margin-top: 32px; }
  body .split, body .open-design { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 64px; align-items: center; }
  body .split > *, body .open-design > * { min-width: 0; }
  body .split > div:not(.visual-slot), body .open-design > div:not(.visual-slot) { container-type: inline-size; }
  body .supplied-visual, body .product-figure, body .installation-photo, body .demo-home-art, body .card, body .panel, body .form-panel { border-radius: 24px; }
  body .supplied-visual img, body .installation-photo img { border-radius: 24px; }
  body .button, body .text-link, body .site-nav .button { box-sizing: border-box; min-height: 52px; height: 52px; padding: 12px 24px; display: inline-flex; align-items: center; justify-content: flex-start; line-height: 1.4; gap: 16px; }
  body .text-link { padding-inline: 0; }
  body .button .icon, body .text-link .icon { flex: 0 0 24px; width: 24px; height: 24px; }
  body .icon { width: 24px; height: 24px; flex-shrink: 0; }
  body .cards { gap: 32px; align-items: stretch; }
  body .cards .card { min-width: 0; padding: 32px; display: grid; grid-template-rows: 24px auto 1fr; row-gap: 16px; }
  body .cards .card h3, body .cards .card p { margin: 0; }
  body .cards .card .card-top { align-self: start; }
  @supports (grid-template-rows: subgrid) {
    body .cards .card { grid-template-rows: subgrid; grid-row: span 3; }
  }
  body .platform-parts { gap: 32px; align-items: stretch; }
  body .platform-parts article { min-width: 0; }
  body .platform-parts h3 { margin-bottom: 16px; }
  body .platform-parts p { margin: 0; }
  body .closing { width: 100%; max-width: none; padding: 96px max(32px,calc((100vw - 1200px)/2)); gap: 64px; }
  body .closing > div { container-type: inline-size; }
  body .closing p { margin-top: 24px; }
  body .closing .button { flex-shrink: 0; }
  body .site-footer { padding-top: 64px; }
  body .footer-main { grid-template-columns: minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr); gap: 64px; }
  body .footer-brand p { max-width: 36ch; }
  body .footer-links { align-items: flex-start; }
  body .footer-links a { max-width: 100%; }
  body .footer-bottom { margin-top: 48px; padding-block: 24px; }
  body .breadcrumbs { padding-top: 24px; }
  body .timeline { gap: 32px; align-items: stretch; }
  body .timeline li { min-width: 0; }
  body .timeline h3 { margin-top: 16px; }
  body .timeline p { margin-top: 16px; }
  body .faq details { padding-block: 24px; }
  body .faq details summary { line-height: 1.5; }
  body .field input:not([type="checkbox"]), body .field select { height: 52px; min-height: 52px; padding-block: 12px; }
  body .form-grid { gap: 24px; align-items: start; }
  body .field { min-width: 0; }
  @media(max-width:800px) {
    body .section, body .hero { padding-block: 64px; }
    body .split, body .open-design { display: flex; flex-direction: column; gap: 32px; align-items: stretch; }
    body .split > figure, body .split > .supplied-visual, body .split > .visual-slot { order: -1; }
    body .split > figure:not(.home-longevity-image):not(.platform-diagram-image) img { aspect-ratio: 4/3; width: 100%; height: auto; object-fit: cover; }
    body .cards.two, body .cards.three, body .cards.four { grid-template-columns: 1fr; }
    body .cards .card { padding: 24px; }
    body .platform-parts { grid-template-columns: 1fr; gap: 32px; }
    body .actions { gap: 16px; flex-wrap: wrap; }
    body .closing { padding: 64px 32px; flex-direction: column; align-items: flex-start; gap: 32px; }
    body .closing > div { width: 100%; }
    body .footer-main { grid-template-columns: 1fr; gap: 32px; }
    body .footer-brand p { max-width: 100%; }
    body .footer-bottom { margin-top: 32px; gap: 16px; }
    body .timeline { grid-template-columns: 1fr; gap: 32px; }
    body .form-grid { grid-template-columns: 1fr; }
  }
}

@media screen {
  body[data-route='/'] .home-how .eyebrow { text-transform: none; }
  body[data-route='/'] .home-hero-visual > img { height: 100%; object-fit: cover; }
  body[data-route='/'] .audience-card .audience-image > img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }
  @media(max-width:800px) {
    body[data-route='/'] .home-hero-visual > img { height: auto; aspect-ratio: 4/3; object-fit: cover; }
  }
}

@media screen {
  body .closing > div { flex: 1 1 auto; min-width: 0; width: 100%; }
}

@media screen {
  body[data-route='/'] .home-image-pair > .pair-copy { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
  body[data-route='/'] .home-image-pair .pair-copy > .text-link { align-self: flex-start; }
  body[data-route='/'] .home-proof .installation-photo > img { height: 100%; object-fit: cover; }
  body .closing > .closing-actions { container-type: normal; width: max-content; max-width: none; flex: 0 0 auto; }
  @media(max-width:800px) {
    body .closing > .closing-actions { width: 100%; }
  }
}

@media screen {
  body .mobile-cta { display: none; }
  body .cards .card p { font-size: var(--type-card-body); }
  @media(max-width:600px) { body .mobile-cta { display: inline-flex; } }
}

@media screen {
  body .error-page { padding-block: 96px; text-align: left; }
  body .error-page .actions { justify-content: flex-start; }
  body .error-page p { margin-inline: 0; }
  @media(max-width:800px) { body .error-page { padding-block: 64px; } }
}
