/* Shared mobile refinements, loaded after the page-specific styles. */
@media (max-width: 960px) {
  .site-header .mobile-nav > a,
  .mobile-services a {
    display: flex;
    align-items: center;
    min-height: 44px;
    line-height: 1.5;
  }
  .mobile-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobile-services a { overflow-wrap: anywhere; }
}

@media (max-width: 760px) {
  :root {
    --mobile-header-height: 88px;
    --mobile-contact-height: 64px;
  }
  body { padding-bottom: calc(var(--mobile-contact-height) + env(safe-area-inset-bottom, 0px)); }
  html { scroll-padding-bottom: calc(var(--mobile-contact-height) + 16px + env(safe-area-inset-bottom, 0px)); }
  .header-main { min-height: var(--mobile-header-height); padding-top: 12px; padding-bottom: 12px; }
  .site-header .menu-toggle { width: 44px; height: 44px; }
  .site-header .mobile-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: calc(100dvh - var(--mobile-header-height) - var(--mobile-contact-height) - env(safe-area-inset-bottom, 0px));
    padding-top: 12px;
    padding-bottom: 16px;
    gap: 4px 16px;
  }
  .mobile-nav > a { font-size: 16px; }
  .mobile-services { gap: 4px 16px; padding: 8px 0; }
  .mobile-services a { font-size: 14px; }
  .language-options { right: 0; }

  .hero-portrait-led h1 {
    font-size: clamp(38px, 10.4vw, 56px);
    line-height: 1.1;
    overflow-wrap: anywhere;
  }
  .hero-portrait-led h1 em { white-space: normal; }
  .hero-portrait-led .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .hero-portrait-led .hero-actions .button {
    min-width: 0;
    min-height: 56px;
    font-size: 14px;
    padding: 12px;
    gap: 8px;
    overflow-wrap: anywhere;
  }
  .hero-portrait-led .hero-actions .button > span { flex-shrink: 0; font-size: 20px; }
  .hero-portrait-led .hero-portrait { margin-top: 24px; }
  .hero-editorial .hero-bottom { gap: 4px 20px; }
  .hero-bottom > a { display: flex; align-items: center; min-height: 44px; }
  .hero-consult-link { min-height: 44px; }

  .section-heading h2, .about-intro h2 { font-size: clamp(32px, 8.5vw, 42px); }
  .page-head h1, .article-head h1 { overflow-wrap: anywhere; }
  .contact :is(h1, h2) { font-size: clamp(38px, 11vw, 58px); }
  .contact > *, .about > *, .areas-heading > * { min-width: 0; }
  .contact-form select { font-size: 16px; }
  .contact-form label, .contact-form legend { font-size: 14px; }
  .modality-options span { min-height: 44px; font-size: 14px; }
  .message-preview p { font-size: 15px; }
  .form-note, .bono-field p { font-size: 13px; }
  .guide-article p, .detail-points p, .about-intro > p:not(.eyebrow) { font-size: 16px; }

  .footer-links { gap: 8px 20px; justify-content: flex-start; font-size: 14px; }
  .footer-links a, .legal-links a, .footer-bottom .privacy-settings {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 0;
    font-size: 14px;
    line-height: 1.5;
  }
  .footer-bottom { font-size: 12px; }
  .legal-links { gap: 4px 20px; }
  .mobile-contact {
    min-height: 0;
    padding-top: 0;
    border-top: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mobile-contact > a { min-height: var(--mobile-contact-height); padding: 12px 18px; gap: 10px; font-size: 14px; line-height: 1.35; }
  .mobile-contact > a > span { flex-shrink: 0; line-height: 1; }
  .cookie-banner {
    bottom: calc(var(--mobile-contact-height) + 12px + env(safe-area-inset-bottom, 0px));
    max-height: calc(100dvh - var(--mobile-contact-height) - 36px - env(safe-area-inset-bottom, 0px));
    overscroll-behavior: contain;
  }
}

@media (max-width: 520px) {
  .areas .service-list { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .service-card-media { max-height: 200px; }
  .service-card-copy { padding: 20px; }
  .service-card h3 { font-size: 24px; }
  .service-card p { font-size: 16px; }
}

@media (max-width: 430px) {
  .modality-options { flex-direction: column; gap: 8px; }
  .modality-options span { text-align: left; padding: 11px 14px; }
  .cookie-banner .cookie-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .cookie-banner .cookie-action { width: 100%; font-size: 15px; }
  .cookie-banner .cookie-actions > a { order: 1; }
}
