/* Shared mobile refinement. Desktop layout and content stay in their own styles. */
@media (max-width: 767px) {
  :root { --section-space: clamp(3.25rem, 13vw, 4.5rem); }

  /* Use the whole column; long service names should not inherit desktop ch limits. */
  .director-hero h1,
  .about-director__hero-content h1,
  .knowledge-page h1,
  .service-guide__hero h1 { max-width: 100%; }
  .director-hero h1 { font-size: clamp(1.75rem, 9vw, 3.75rem); }
  .director-hero__line,
  .director-hero__line > span { max-width: 100%; width: auto; }
  .hero__content, .director-hero__content { min-height: min(100svh, 48rem); padding-top: 8rem; padding-bottom: 5rem; }
  .hero, .director-hero { min-height: min(100svh, 48rem); }
  .hero h1, .director-hero h1 { margin-bottom: 1.5rem; }
  .hero__actions { margin-top: 1.25rem; }
  .hero__scroll, .director-hero__scroll { display: none; }
  .director-crumb { top: 5.75rem; padding-right: 0; line-height: 1.5; }
  .director-hero .hero__video-control { top: auto; bottom: 1rem; }

  .section-label { margin-bottom: 2rem; }
  .director-heading, .director-depth__heading,
  .about-machines > header, .about-reel__sticky > header { gap: 1.25rem; margin-bottom: 2rem; }
  .director-heading h2, .director-depth__heading h2,
  .director-cta h2, .coat-evidence h2,
  .about-director__profile h2, .about-machines h2,
  .about-workflow h2, .about-responsibility h2, .about-region h2 {
    font-size: clamp(2rem, 9vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -.035em;
  }

  .service-scope__heading { margin-bottom: 1.75rem; }
  .service-scope__grid article { padding: 1.25rem 0; }
  .service-scope__grid h3 { margin-bottom: .65rem; }
  .service-scope__grid p { margin-bottom: 0; }
  .service-scope__questions summary { min-height: 2.75rem; align-content: center; padding-right: .5rem; }
  .service-scope__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .service-scope__links a { min-height: 2.75rem; padding-block: .65rem; line-height: 1.5; overflow-wrap: anywhere; }

  .director-depth__grid article, .shot-diagnostics__grid article { min-height: 0; padding: 1.25rem; }
  .director-depth__grid article h3 { margin-top: 1.5rem; }
  .shot-diagnostics__grid span { margin-top: 1.25rem; }
  .service-story__mobile { padding-block: var(--section-space); }
  .service-story__mobile article { margin-bottom: 2.5rem; }
  .service-story__mobile article:last-child { margin-bottom: 0; }
  .service-story__mobile article > div { min-height: 0; aspect-ratio: 4 / 3; margin-inline: 0; }
  .service-story__mobile h2 { font-size: clamp(1.8rem, 8.5vw, 3rem); line-height: 1.08; margin-block: .75rem; }
  .motion-statement { min-height: 0; padding-block: 4.5rem; }
  .motion-statement__line { font-size: clamp(2rem, 10vw, 3.75rem); line-height: 1.08; }

  .timeline-card__content { min-height: 0; padding: 1.5rem 1.25rem; grid-template-columns: 1.75rem minmax(0, 1fr); gap: .75rem; }
  .timeline-card__media { min-height: 0; aspect-ratio: 4 / 3; }
  .timeline-card h3 { font-size: clamp(1.8rem, 8vw, 2.75rem); }
  .protocol-card__media { min-height: 0; aspect-ratio: 4 / 3; }
  .protocol-card__copy { padding: 1.5rem 1.25rem; }
  .grind-precision { min-height: 0; }
  .grind-precision__visual { min-height: 0; aspect-ratio: 4 / 3; }
  .grind-precision__copy { padding: 2rem var(--page) var(--section-space); }
  .grind-precision__copy h2 { font-size: clamp(2rem, 9vw, 3.5rem); margin-bottom: 1.5rem; }
  .grind-process li { min-height: 5rem; padding-block: 1rem; grid-template-columns: 2rem minmax(0, 1fr); }
  .grind-process li h3 { font-size: clamp(1.4rem, 6vw, 2rem); }
  .grind-quality__statements article { padding-block: 1.5rem; gap: .75rem; grid-template-columns: 2rem minmax(0, 1fr); }
  .grind-quality__statements h3 { font-size: clamp(1.5rem, 7vw, 2.3rem); }
  .coat-stack__interface { min-height: 0; }
  .shot-process__viewport, .grind-lab__surface, .coat-stack__visual { min-height: 0; aspect-ratio: 1; }
  .coat-requirements__result { min-height: 0; padding: 1.5rem; }
  .coat-requirements__result svg { margin-bottom: 1.5rem; }
  .coat-requirements__interface button { min-height: 3.75rem; grid-template-columns: 2rem minmax(0, 1fr); }
  .about-machines__stage article > div { min-height: 0; aspect-ratio: 4 / 3; }
  .about-reel__sticky { padding-block: var(--section-space); }

  /* A contact fallback directly before the service CTA repeats the same action. */
  .director-case:has(a[href^="/kontakt"]) { display: none; }
  .director-cta { min-height: 0; gap: 1.5rem; }
  .director-cta > div p { margin-bottom: 1.25rem; }
  .director-cta .button { width: 100%; justify-content: space-between; }

  .inspection-hero { padding-top: 7.5rem; }
  .inspection-hero nav { margin-bottom: 1rem; }
  .knowledge-page, .legal-page { padding-top: 7.5rem; padding-bottom: var(--section-space); }
  .knowledge-page h1 { font-size: clamp(2rem, 9vw, 3.5rem); line-height: 1.08; }
  .knowledge-page header > p:last-child { font-size: 1rem; }
  .knowledge-page article section { padding-block: 1.5rem; gap: .75rem; }
  .knowledge-page article p { margin: 0; }
  .knowledge-page aside { margin-top: 2.5rem; }
  .legal-page__toc { margin-block: 1.5rem; gap: .25rem; }
  .legal-page__toc a { min-height: 2.75rem; align-content: center; }
  .contact-page .cta { padding-top: 7.5rem; }
  .contact-form { padding: 1rem; }
  .contact-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { min-width: 0; max-width: 100%; font-size: 1rem; }

  .footer { min-height: 0; gap: 2rem; padding-top: 3rem; padding-bottom: 2rem; }
  .footer__intro h2 { max-width: 100%; font-size: clamp(2rem, 9vw, 3rem); margin-bottom: 1rem; }
  .footer__intro > p { margin-bottom: 1.25rem; }
  .footer__contact { gap: .35rem; }
  .footer__internal { margin-top: .5rem; padding-top: .75rem; }
  .footer__wordmark { margin-block: .25rem; }
  .footer__wordmark img { width: min(100%, 15rem); }
  .footer__legal { flex-direction: row; gap: .25rem 1rem; justify-content: flex-start; align-items: center; }
  .footer__legal > span { flex-basis: 100%; line-height: 1.6; margin-bottom: .5rem; }
  .footer__legal :is(a, button) { max-width: 100%; }
}

@media (max-width: 767px) and (orientation: landscape) {
  .hero, .director-hero, .hero__content, .director-hero__content { min-height: 32rem; }
}

@media (max-width: 767px) {
  /* These rows no longer contain the old decorative number column. */
  .grind-precision__copy > p:not(.mono) { display: block; }
  .grind-quality__statements article, .grind-process li { grid-template-columns: minmax(0, 1fr); }
  .grind-quality__statements p { grid-column: 1; }
  .grind-quality__statements h3 { margin-bottom: .25rem; }
}

@media (max-width: 767px) {
  .service-guide .service-guide__hero h1 {
    font-size: clamp(2rem, 9vw, 3.5rem);
    line-height: 1.08;
    overflow-wrap: anywhere;
    hyphens: auto;
  }
  .service-guide h2 {
    font-size: clamp(1.8rem, 8vw, 3rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
    hyphens: auto;
  }
  .faq__items button { width: 100%; min-width: 0; }
  .faq__question { min-width: 0; }
}

/* The older service routes need the same text-safe columns on small tablets. */
@media (min-width: 768px) and (max-width: 1024px) {
  .service-guide .service-guide__hero h1 { max-width: 100%; font-size: clamp(3rem, 7vw, 4.5rem); overflow-wrap: anywhere; hyphens: auto; line-height: 1.05; }
  .service-guide__related a { grid-template-columns: minmax(0, 1fr) 1.5rem; }
  .service-guide__related h3 { overflow-wrap: anywhere; }
}

@media (max-width: 1024px) {
  /* The plus rotates into a cross; reserve its diagonal width as well. */
  .faq__items button { grid-template-columns: minmax(0, 1fr) 1.75rem; }
  .faq__items button svg { justify-self: center; }
}

@media (max-width: 767px) {
  /* The preceding section already provides the inquiry action or the form. */
  main:has(.director-cta, .contact-form) ~ .footer .footer__intro { display: none; }
}

@media (max-width: 767px) {
  .grind-process .director-heading--inverse { color: var(--ard-white); }
}
