/* Readable mobile type, loaded after component and locale styles.
   Keep miniature text inside the decorative device illustration at its own scale. */
@media screen and (max-width:850px){
  :root{--mobile-body:1rem;--mobile-detail:.875rem}

  /* Paragraphs and controls should stay comfortably readable at arm's length. */
  html:root :is(
    .hero-description,.page-hero-copy>p:not(.eyebrow),.contact-planning-copy>p,
    .split-intro>p,.service-card p,.service-card .bullet-list,.service-continuity p,
    .info-card p,.info-card .bullet-list,.proof-title p,.process-grid p,
    .demand-card>p,.needs-scope>p,.needs-contact p,.client-relationship,
    .delivery-confidence-intro>p,.delivery-confidence-list p,.delivery-confidence-next p,
    .founder-intro-copy p,.faq-answer p,.cta-inner p,.prose,.callout,
    .after-grid-note,.contact-form-panel>p,.contact-text-note,.contact-intro-note,
    .pricing-summary p,.pricing-base-rate p,.pricing-overview-copy p,
    .budget-examples .section-intro p,.budget-example p:not(.budget-price),
    .work-pricing-link,.contact-pricing-link,.hc-description
  ){font-size:var(--mobile-body);line-height:1.8}

  html:root :is(.button,.text-link,.price-text-link,.hc-footer>a,.planning-action,
    .planning-retry,.faq-list summary,.mobile-nav nav a,form label,input,textarea,select
  ){font-size:var(--mobile-body)}
  html:root :is(.button,.header-cta,.mobile-nav>summary){min-height:44px}
  html:root :is(.button,.text-link,.hc-footer>a){white-space:normal}
  .button>span[aria-hidden],.text-link>span[aria-hidden]{flex-shrink:0}

  /* Supporting information is still real content, including labels and footnotes. */
  html:root :is(
    .eyebrow,.hero-footnote,.hc-eyebrow,.hero-assurance small,
    .hero-assurance>div:first-child>span,.client-strip-label,.client-strip-label>span,
    .client-strip-label small,.client-logo-list figcaption,.service-art-label,
    .service-kicker,.service-examples,.demand-card-top>span:first-child,
    .needs-scope-label,.needs-scope-note,.needs-examples-heading>span:last-child,
    .scenario-note,.number-label,.process-number,.delivery-confidence-number,
    .delivery-track li>span,.delivery-track strong,.delivery-visual-heading,
    .editorial-visual figcaption small,.editorial-visual figcaption strong,.concept-label,
    .fine-print,.required,.contact-card>span,.contact-card small,
    .enquiry-status,.price-note,.situation-note,.price-unit,
    .footer-top p,.footer-links,.footer-contact,.footer-bottom,.footer-language,
    .language-label,.language-options a,.language-check,.header-cta,.mobile-nav>summary,
    .planning-heading-row .eyebrow,.planning-caption,.planning-context,
    .planning-table caption,.planning-table th,.planning-legend strong,
    .planning-legend small,.planning-status
  ){font-size:var(--mobile-detail);line-height:1.65}
  html:root :is(.eyebrow,.service-art-label,.service-kicker,.editorial-visual figcaption small){letter-spacing:.04em}
  html:root .hero-assurance strong:not(.experience-number){font-size:var(--mobile-body);line-height:1.6}
  html:root :is(.mobile-nav .menu-language-links a,.mobile-nav .menu-language .language-auto){font-size:var(--mobile-body)}
  html:root :is(.language-options a,.footer-language>summary){min-height:44px}

  .site-header .brand{min-width:0;flex-shrink:1}
  html:root .brand-descriptor{font-size:.75rem;white-space:normal;line-height:1.4}
  .header-inner{height:auto;min-height:80px;padding-block:10px}
  .mobile-nav{flex-shrink:0}
  .mobile-nav nav{top:100%;max-height:calc(100dvh - 80px)}
  .editorial-visual figcaption{flex-wrap:wrap;align-items:flex-start}
  .concept-label{white-space:normal}
  .hc-footer>a{flex:1;justify-content:space-between}
  .footer-contact{flex-wrap:wrap}

  /* Compact markers match the full legend; dates retain their accessible status. */
  .planning-heading-row{flex-wrap:wrap}
  .planning-table{border-spacing:3px;width:calc(100% + 6px);margin-inline:-3px}
  .planning-day{min-height:62px;justify-content:flex-start;padding:7px 1px;gap:3px}
  .planning-day time{font-size:1rem;line-height:1.4}
  .planning-day time[aria-current],.planning-day time[datetime$="-01"]{font-size:.875rem}
  .planning-day-label{display:none}
  .planning-day-symbol[hidden],.planning-legend-symbol[hidden]{display:block!important;font-size:1rem;line-height:1.2;font-weight:600}
  .planning-dot{display:grid;place-items:center;width:24px;height:24px;flex-basis:24px;margin-top:0;border-radius:5px}
  .planning-legend{gap:10px 14px}
}

@media screen and (max-width:580px){
  /* Use additional rows instead of shrinking text to fit narrow columns. */
  .hero-assurance{grid-template-columns:1fr;gap:20px}
  .hero-assurance>div:last-child{border-left:0;padding-left:0}
  .client-strip-label{display:block}
  .client-strip-label small{margin:4px 0 0}
  .process-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:26px}
  .footer-top>div:first-child,.footer-contact{grid-column:auto}
  .footer-contact{flex-direction:column;gap:18px}
  .footer-utilities{flex-wrap:wrap;gap:8px 16px}
  .planning-legend{grid-template-columns:1fr}
}
