/* Content-led hierarchy. Decorative heading labels are removed in the source;
   these rules improve the remaining real headings, metadata and controls. */

/* The base reset clears body's intended auto margins. Keep the narrow product
   column aligned with its centred fixed header on wide screens. */
body.mobile-site:not([data-page="home"]) { margin-inline: auto; }

.mobile-site:not([data-page="home"]) .f-hero h1 {
  max-width: 850px;
  font-size: clamp(38px, 5.4vw, 70px);
  line-height: 1.08;
  letter-spacing: -.045em;
  font-weight: 500;
}
.mobile-site:not([data-page="home"]) .f-hero h1 span { display: inline; color: inherit; }
.mobile-site:not([data-page="home"]) .f-section h2,
.mobile-site:not([data-page="home"]) .f-next h2 {
  max-width: 760px;
  font-size: clamp(27px, 3.7vw, 43px);
  line-height: 1.17;
  letter-spacing: -.035em;
  font-weight: 500;
}
.mobile-site:not([data-page="home"]) .f-detail-card h3,
.mobile-site:not([data-page="home"]) .f-split-card h3,
.mobile-site:not([data-page="home"]) .f-callout h3 {
  margin-top: 0;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.25;
  font-weight: 500;
}
.mobile-site:not([data-page="home"]) .f-flow-step > span {
  font-size: 13px;
  letter-spacing: 0;
  color: inherit;
  background: transparent;
  border: 1px solid currentColor;
}
.mobile-site:not([data-page="home"]) .f-next-links small { font-size: 12px; letter-spacing: 0; }

/* The home keeps one expressive hero; the following story has a quieter pace. */
.home-section-copy h2,
.home-feature-copy h2,
.home-principles h2 {
  margin-top: 0;
  font-size: clamp(35px, 9vw, 58px);
  line-height: 1.04;
  letter-spacing: -.05em;
  font-weight: 650;
}
.home-context-list article { grid-template-columns: minmax(0,1fr); gap: 7px; }
.home-context-list h3,
.home-context-list p { grid-column: 1; }
.home-context-list p { font-size: 14px; }
.home-model-controls > span { font-size: 14px; letter-spacing: 0; color: inherit; }
.home-model-card { justify-content: center; gap: 25px; }
.chapter h2 { font-size: clamp(34px, 4vw, 65px); line-height: 1.05; }
.verdict-pin h2 { font-size: clamp(55px, 9vw, 138px); line-height: .98; }
.section-heading h2,
.detail-title h2 { font-size: clamp(38px, 5vw, 76px); line-height: 1.04; }
.section-heading { gap: 28px 48px; }
.detail-title { justify-content: flex-end; }
.feature-card h3 { font-size: clamp(23px,2.1vw,31px); line-height: 1.2; }
.mode-copy .mode-number { margin: 18px 0 14px; font-size: 14px; letter-spacing: 0; color: inherit; opacity: .78; }
.mode-tab > span { font-size: 12px; letter-spacing: 0; }
.download h2 { margin-top: 14px; font-size: clamp(64px,9vw,138px); line-height: .96; }

/* Provider and model controls are useful metadata, placed after the title. */
.model-hero h1 { margin-top: 0; font-size: clamp(40px,5.3vw,66px); line-height: 1.08; letter-spacing: -.045em; }
.model-hero h1 span { display: inline; color: inherit; }
.model-provider { margin: 18px 0 0; color: var(--model-muted); font-size: 15px; line-height: 1.5; letter-spacing: 0; }
.model-summary { margin-top: 16px; }
.model-section h2 { font-size: clamp(29px,3.9vw,44px); line-height: 1.16; }
.model-facts dt { color: var(--model-muted); font-size: 15px; letter-spacing: 0; }
.model-facts dd { margin-top: 8px; font-size: 21px; }
.model-compare small { margin-top:8px; color:var(--model-muted); font-size:14px; letter-spacing:0; }

/* Policies use a document hierarchy, not a stack of poster-sized titles. */
.legal-hero { min-height: 0; grid-template-columns: minmax(0,1fr) minmax(270px,.7fr); align-items: start; gap: 36px 64px; padding: 72px clamp(24px,6vw,100px) 42px; }
.legal-hero .hero-copy h1 { display: block; max-width: 770px; margin: 0; font-family: Rillby,Arial,sans-serif; font-size: clamp(40px,5.5vw,72px); font-weight: 500; line-height: 1.08; letter-spacing: -.045em; }
.legal-hero .hero-aside { padding-top: 0; }
.legal-hero .hero-aside > p { font-size: 17px; line-height: 1.65; }
.legal-hero .hero-aside dl { margin-top: 24px; }
.hero-aside dt,
.hero-aside dd { font-size: 14px; line-height: 1.5; letter-spacing: 0; text-transform: none; }
.legal-hero .hero-down { position: static; grid-column: 1/-1; justify-content: flex-end; font-size: 13px; letter-spacing: 0; }
.region-strip > span,
.region-strip li { font-size: 13px; letter-spacing: 0; }
.legal-layout { gap: 48px; padding-top: 64px; padding-bottom: 90px; }
.section-rail .rail-title { margin-bottom: 14px; color: var(--ink); font-size: 16px; line-height: 1.4; font-weight: 600; letter-spacing: 0; }
.section-rail a { font-size: 14px; }
.section-rail a > span { font-size: 12px; letter-spacing: 0; }
.legal-layout .document { margin-bottom: 72px; padding-bottom: 72px; }
.legal-layout .document-heading { margin-bottom: 32px; }
.legal-layout .split-heading { grid-template-columns: minmax(0,1fr); gap: 14px; }
.legal-layout .document .document-heading h2 { margin-top: 0; font-family: Rillby,Arial,sans-serif; font-size: clamp(28px,3.5vw,42px); line-height: 1.17; letter-spacing: -.035em; font-weight: 500; }
.document-heading > p:last-child,
.split-heading > p { font-size: 15px; line-height: 1.7; }
.legal-layout .clause h3,
.legal-layout .notice-card h3,
.legal-layout .quick-facts h3,
.legal-layout .controls-grid h3,
.legal-layout .safety-grid h3 { font-size: clamp(21px,2.3vw,27px); line-height: 1.3; font-weight: 550; }
.clause-number { display: inline; margin-inline-end: .4em; color: inherit; font: inherit; font-weight: 400; opacity: .78; white-space: nowrap; }
.provider-grid h4 { font-size: 22px; line-height: 1.28; }
.provider-grid .provider-role { margin: 9px 0 0; font-size: 14px; color: var(--muted); line-height: 1.5; letter-spacing: 0; }
.notice-card h3,
.safety-grid h3,
.controls-grid h3 { margin-top: 0; }
.quick-facts article { min-height: 0; }
.contact-links a > span,
.launch-gate span { font-size: 13px; letter-spacing: 0; color: inherit; }
.emergency-panel h3 { font-size: clamp(27px,3.3vw,39px); line-height: 1.15; }

.directory-site .directory-header { display:flex; justify-content:space-between; align-items:center; max-width:960px; margin:0 auto; padding:28px 24px; border-bottom:1px solid #17171430; }
.directory-site .directory-header .brand { font-size:22px; }
.directory-site h1 { margin:32px 0 24px; font-size:clamp(38px,5vw,60px); line-height:1.1; }

@media (max-width:760px) {
  .legal-hero { grid-template-columns:minmax(0,1fr); gap:28px; padding:44px 24px 32px; }
  .legal-hero .hero-down { justify-content:flex-start; }
  .region-strip { gap:22px; align-items:flex-start; }
  .region-strip ul { flex-wrap:wrap; gap:8px 18px; }
  .legal-layout { padding-top:36px; gap:38px; }
  .legal-layout .document { margin-bottom:48px; padding-bottom:48px; }
}
@media print {
  .legal-layout .document .document-heading h2 { font-size:23pt; }
  .legal-layout .clause h3 { font-size:15pt; }
}
