/* Semantic type scale, shared by all locales, themes and page templates.
   rem respects the reader's default font size. Viewport breakpoints change
   hierarchy, never shrink essential text to make a control fit. */
:root {
  --type-body: 1rem;
  --type-lead: 1.125rem;
  --type-small: .875rem;
  --type-label: .875rem;
  --type-control: 1rem;
  --type-display: 2.125rem;
  --type-section: 1.875rem;
  --type-guide-title: 2rem;
  --type-price: 2.5rem;
  --leading-body: 1.65;
  --leading-reading: 1.75;
  --reading-measure: 60ch;
  --site-header-height: 4.5rem;
}
@media (min-width: 761px) {
  :root {
    --type-display: 2.75rem;
    --type-section: 2rem;
    --type-guide-title: 2.75rem;
    --type-price: 3rem;
  }
}
@media (min-width: 901px) {
  :root { --type-body: 1.125rem; --type-lead: 1.25rem; --type-small: .9375rem; }
}
@media (min-width: 1001px) {
  :root { --type-display: 3.5rem; --type-section: 2.5rem; --type-guide-title: 3rem; }
}
@media (min-width: 1181px) {
  :root { --type-display: 4.75rem; --type-section: 3rem; --type-guide-title: 3.5rem; }
}

body { font-size: var(--type-body); line-height: var(--leading-body); }
.eyebrow,.localized-home .eyebrow { font-size: var(--type-label); line-height: 1.5; }
.localized-home .hero h1,.privacy-hero h1 { font-size: var(--type-display); line-height: var(--leading-display,1.15); }
:root:lang(th) { --leading-display: 1.4; }
.localized-home :is(.section-head,.story-copy,.compact-copy,.formats-copy,.faq-intro,.availability) h2 { font-size: var(--type-section); }
.localized-home .hero-sub { font-size: var(--type-lead); line-height: 1.6; }
.localized-home :is(.story-copy,.section-head,.formats-copy,.compact-copy,.privacy-callout,.faq-intro) > p:not(.eyebrow),
.localized-home .capability p,.localized-home .feature-note,.localized-home .faq details p,
.localized-home .price-features,.localized-home .pro-intro,
.guide-section p,.guide-steps,.guide-card p,.privacy-article p,.privacy-summary li {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
.localized-home .faq summary { font-size: var(--type-body); line-height: var(--leading-body); }
.localized-home .capability h3 { font-size: 1.3125rem; }
.localized-home .capability-number { font-size: var(--type-label); }
.localized-home .single-caption > span { font-size: var(--type-body); line-height: var(--leading-body); }
.localized-home .format-card > span { font-size: var(--type-small); }
.localized-home .format-card strong { font-size: 1.8125rem; }
.localized-home .format-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,14rem),1fr)); }
.localized-home .privacy-callout h2 { font-size: 2.25rem; }
.guides-section h2 { font-size: 1.625rem; }
.localized-home .price-card h3 { font-size: 1.5rem; }
.localized-home .price strong { font-size: var(--type-price); }
.localized-home .price--words strong { font-size: 2.625rem; }
.localized-home .price-features li::before { top: .8em; }
.localized-home .price-features { grid-template-columns: minmax(0,1fr); }
.price-features li,.hero-facts li,.footer-bottom span,.guide-section li,.privacy-summary li { min-width: 0; overflow-wrap: anywhere; }
.hero-facts,.localized-home figcaption,.price span,.price-card small,.price-note,
.footer-brand span,.footer-links,.footer-bottom,.privacy-meta,
.guide-breadcrumb,.guide-cta p,.guide-table-scroll caption,.document-language {
  font-size: var(--type-small);
  line-height: 1.65;
}
.localized-home .availability-inner > p { font-size: var(--type-body); }
.button,.header-cta,.main-nav a {
  font-size: var(--type-control);
  line-height: 1.5;
}
.button { min-width: 0; max-width: 100%; min-height: 2.875rem; white-space: normal; overflow-wrap: anywhere; }
.brand,.localized-home .brand { font-size: 1.0625rem; }
.footer-brand strong { font-size: 1rem; }
.footer-main,.footer-links { flex-wrap: wrap; }

/* Shorter reading lines are deliberate; pictures retain their wider stage. */
.guide-section,.privacy-article { max-width: var(--reading-measure); }
.guide-section:has(.guide-table-scroll) { max-width: 100%; }
.guide-heading > p:last-child { font-size: var(--type-lead); max-width: var(--reading-measure); line-height: var(--leading-reading); }
.guide-section p,.guide-steps,.privacy-article p { line-height: var(--leading-reading); }
.guide-heading h1 { font-size: var(--type-guide-title); }
.guide-section h2 { font-size: 1.875rem; }
.guide-card h2 { font-size: 1.4375rem; }
.guide-cta h2 { font-size: 1.5rem; }
.guide-cta p { max-width: var(--reading-measure); }
.guide-table-scroll table { min-width: 35rem; }
.guide-table-scroll :is(th,td) { font-size: var(--type-body); }
.privacy-lead { font-size: var(--type-lead); line-height: var(--leading-reading); }
.privacy-summary strong { font-size: 1.4375rem; }
.privacy-article h2 { font-size: 1.875rem; }
.privacy-article,.privacy-hero-inner { overflow-wrap: anywhere; }
.privacy-summary { top: calc(var(--site-header-height) + 2rem); }

/* Intrinsic popup columns respond to both viewport and enlarged text. */
.language-trigger { font-size: .9375rem; line-height: 1.4; min-height: 2.75rem; }
.language-menu-label { font-size: var(--type-label); line-height: 1.5; }
.language-popup { width: min(26rem,calc(100vw - 1.5rem)); grid-template-columns: repeat(auto-fit,minmax(min(100%,10rem),1fr)); }
.language-option { font-size: .9375rem; min-height: 2.75rem; line-height: 1.5; }
.language-option > span[dir] { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.language-current { min-width: 0; }

/* The fixed header can grow with translations or font enlargement. Its
   measured height keeps anchors, content and popup placement in sync. */
.localized-home :is(section,[id]),.privacy-article section { scroll-margin-top: calc(var(--site-header-height) + 1.5rem); }
.localized-home .hero { padding-top: calc(var(--site-header-height) + 4.125rem); }
.guide-main { padding-top: calc(var(--site-header-height) + 3.375rem); }
.privacy-hero { padding-top: calc(var(--site-header-height) + 5.125rem); }
@media (max-width: 1180px) {
  .localized-home .main-nav { top: var(--site-header-height); max-height: calc(100dvh - var(--site-header-height)); overflow-y: auto; }
}
@media (max-width: 760px) {
  .language-trigger { padding-inline: 6px; gap: 6px; }
  .language-popup { top: calc(var(--site-header-height) + .5rem); width: auto; max-height: calc(100dvh - var(--site-header-height) - 1.5rem); }
  .localized-home .hero { padding-top: calc(var(--site-header-height) + 3.125rem); }
  .guide-main { padding-top: calc(var(--site-header-height) + 2.3125rem); }
  .privacy-hero { padding-top: calc(var(--site-header-height) + 3.125rem); }
  .guide-section h2,.privacy-article h2 { font-size: 1.4375rem; }
  .localized-home .privacy-callout h2 { font-size: 1.5rem; }
  .localized-home .format-card strong { font-size: 1.375rem; }
}
@media (max-width: 600px) {
  /* Keep a useful language label; the brand link retains its accessible name. */
  .site-header .brand > span { display: none; }
  .localized-home .header-inner { flex-wrap: wrap; }
  .language-picker { min-width: 0; flex-shrink: 1; }
  .language-current { white-space: normal; overflow-wrap: anywhere; }
  .language-trigger { padding-block: 8px; }
}
