/* Shared reading sizes, loaded last so page-specific styles use the same scale. */
@media screen {
  html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body { font-size:18px; line-height:1.9; }
  .wrap { width:calc(100% - 80px); max-width:1680px; }
  .wrap.narrow { max-width:1200px; }
  main :is(p,li,dt,dd), .hero-lead,
  .service-row p, .decision-section p, .steps p, .support-teaser p,
  .line-list li, .three-columns p, .editorial-image p, .workflow p,
  .faq details p, .statement-body p, .seminar-row p, .prose p,
  .fee-variation p, .fee-partnership p, .fee-inquiry p,
  .intro-copy>p:not(.large-copy), .detail-grid>div:last-child>p,
  .detail-grid>div:first-child>p:not(.eyebrow),
  .contact-band p:not(.eyebrow), .page-heading>p:last-of-type,
  .inquiry-builder>p:not(.eyebrow), .inquiry-review>p:not(.eyebrow) {
    font-size:18px; line-height:1.9;
  }
  main .small-note, .intro-copy>p.small-note,
  .detail-grid>div:last-child>p.small-note, .seminar-row p.small-note,
  .contact-aside>p.small-note, .inquiry-builder>p.small-note,
  .inquiry-review>p.small-note, .hero .coverage-note,
  .fee-intro, .fee-reference-note, .fee-reference-note p,
  .status-note, .notice p { font-size:16px; line-height:1.9; }
  .large-copy { font-size:26px; }
  main p.large-copy { font-size:26px; }
  .hero-audience { font-size:18px; }
  .expertise-band li { font-size:18px; }
  .intro-copy>p:not(.large-copy) { max-width:42em; }
  .hero-lead { letter-spacing:0; }
  .desktop-nav { font-size:16px; gap:26px; }
  .button, .button-small, .hero-actions .button,
  .text-link, .hero-actions .text-link, .section-heading>.text-link,
  .support-teaser>.text-link, .text-button { font-size:16px; }
  .topline, .topline .wrap>span:last-child,
  .eyebrow, .hero .eyebrow, .support-teaser .eyebrow,
  .service-en, .hero-location, .hero .hero-location span,
  .figure-top, .hero-photo .photo-location, .hero-photo .photo-source,
  .hero-photo figcaption small, .hero-figure figcaption,
  .hero-figure figcaption span:last-child,
  .editorial-image .editorial-photo figcaption { font-size:14px; }
  .hero-photo .photo-caption { font-size:22px; }
  .breadcrumb, .anchor-nav, .status-note>span,
  .spec-list>div, .schedule-row>span, .schedule-row small,
  .profile-name small, .contact-email, label, .required,
  .inquiry-review>p:not(.eyebrow), #inquiry-text,
  .email-fallback>strong { font-size:16px; }
  input, select, textarea { font-size:18px; }
  ::placeholder { font-size:16px; }
  .notice strong, .faq summary { font-size:18px; }
  .faq details p { font-size:18px; max-width:52em; }
  .workflow p { max-width:52em; }
  .fee-example dt { font-size:18px; }
  .fee-example dt>span, .fee-example dt>small,
  .fee-example dd>small, .fee-example dd>strong>span { font-size:16px; }
  .fee-intro { max-width:40em; }
  .fee-variation h3 { font-size:20px; }
  .footer-grid nav, .office-addresses span, .office-addresses p,
  .footer-direct p, .footer-direct>a:nth-child(2), .footer-contact,
  .social-link, .footer-direct .social-link { font-size:16px; }
  .footer-bottom { font-size:14px; }
  .brand .brand-copy small { font-size:14px; }
  .hero { grid-template-columns:minmax(0,1fr) minmax(0,1.03fr); }
  .hero-copy, .intro-copy, .detail-grid>div, .contact-layout>*,
  .fee-inquiry>*, .footer-grid>* { min-width:0; }
  .hero-actions { column-gap:24px; row-gap:16px; }
  .hero-actions .button { flex-wrap:wrap; }
  .expertise-band li { white-space:normal; }
  .intro-section, .decision-section, .detail-grid { gap:64px; }
  .support-teaser, .fee-inquiry { flex-wrap:wrap; }
}
@media screen and (min-width:801px) and (max-width:1100px) {
  .wrap { width:calc(100% - 48px); }
  .desktop-nav { gap:16px; }
  .brand-logo { width:52px; }
  .brand .brand-copy strong { font-size:25px; }
  .brand .brand-copy small { font-size:14px; white-space:normal; max-width:190px; }
  .hero h1 { font-size:clamp(32px,4vw,44px); }
  .intro-section, .decision-section, .detail-grid { gap:36px; }
  .expertise-band>.wrap { grid-template-columns:1fr; padding-block:24px; gap:20px; }
  .contact-layout { grid-template-columns:1fr; }
  .steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media screen and (max-width:800px) {
  .wrap { width:calc(100% - 32px); }
  .header-inner { height:auto; min-height:88px; padding-block:10px; gap:10px; }
  .brand { gap:8px; }
  .brand-logo { width:44px; }
  .brand .brand-copy strong { font-size:24px; }
  .brand .brand-copy small { font-size:14px; white-space:normal; max-width:174px; line-height:1.5; }
  .menu-toggle { font-size:14px; gap:7px; padding-left:4px; }
  .menu-lines { width:18px; }
  .topline .wrap { display:block; padding-block:6px; line-height:1.6; }
  .topline .wrap>span { display:block; }
  html { scroll-padding-top:110px; }
  .hero { grid-template-columns:minmax(0,1fr); }
  .hero h1 { font-size:clamp(32px,8.5vw,57px); white-space:normal; }
  .hero-audience { font-size:16px; }
  main p.large-copy { font-size:24px; }
  .hero-location { letter-spacing:.06em; }
  .hero .hero-location span { display:block; margin:6px 0 0; font-size:16px; }
  .hero-photo .photo-caption { font-size:22px; }
  .hero-photo figcaption small, .hero-photo .photo-source,
  .editorial-image .editorial-photo figcaption { font-size:14px; }
  .button, .hero-actions .button, .contact-band .button,
  .fee-inquiry .button, .text-link, .hero-actions .text-link,
  .detail-grid .text-link, .section-heading>.text-link,
  .support-teaser>.text-link, .text-button { font-size:18px; }
  .button, .hero-actions .button { gap:12px; padding-inline:16px; }
  .mobile-nav a, .decision-links a, .spec-list>div { font-size:18px; }
  .expertise-band ul { grid-template-columns:1fr; gap:12px; }
  .expertise-band li, .expertise-band li:first-child {
    display:flex; align-items:baseline; gap:14px; padding:6px 0;
    border-left:0; border-top:1px solid var(--line); font-size:18px;
  }
  .expertise-band li span { font-size:18px; margin-bottom:0; }
  .steps { grid-template-columns:1fr; }
  .intro-section, .decision-section, .detail-grid { gap:30px; }
  .schedule-row { flex-wrap:wrap; row-gap:8px; }
  .schedule-row>strong { white-space:normal; }
  .footer-grid nav { font-size:18px; }
  .footer-bottom { flex-wrap:wrap; gap:10px 16px; }
  .contact-band>.wrap { align-items:stretch; }
  #inquiry-complete { padding:20px; }
}
@media screen and (max-width:380px) {
  .brand-logo { width:38px; }
  .brand .brand-copy strong { font-size:21px; }
  .brand .brand-copy small { max-width:150px; }
  .hero-actions .button { width:100%; }
}
