/* Shared device layout. Keep browser zoom available and respect screen cutouts. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
.header { padding-top: env(safe-area-inset-top, 0px); }
.problem-layout > *, .problem-options, .recommendation,
.contact > *, .field, .service-intro-grid > *, .overview-grid > *,
.related-service-links > *, .booking-shell > * { min-width: 0; }
.problem-option, .recommendation .button { overflow-wrap: anywhere; }
.problem-option span { flex-shrink: 0; }
.contact-form input, .contact-form select, .contact-form textarea { font-size: 16px; max-width: 100%; }
.contact-form input[type="email"] { text-transform: none; }
.table-scroll { max-width: 100%; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.table-scroll:focus-visible { outline: 2px solid #ad482d; outline-offset: 4px; }
.button { max-width: 100%; }
/* Compact footer: logo, legal line and links in one row; links stay on one line. */
.footer { padding: 16px 0 calc(16px + env(safe-area-inset-bottom, 0px)); }
.footer .wrap { align-items: center; flex-wrap: nowrap; gap: 12px 44px; }
.footer .brand { --logo-width: 150px; height: 50px; flex: none; }
.footer p { flex: 1 1 auto; max-width: none; line-height: 1.6; }
.footer-links { flex: none; flex-wrap: nowrap; max-width: none; gap: 0 22px; white-space: nowrap; }
.footer-links a { display: inline-flex; align-items: center; min-height: 32px; }
@media (max-width: 1100px) {
  .footer .wrap { flex-wrap: wrap; }
  .footer-links { flex-basis: 100%; flex-wrap: wrap; justify-content: flex-start; padding-top: 6px; border-top: 1px solid #c8d4db; }
}
@media (max-width: 560px) {
  .footer .wrap { flex-direction: column; align-items: flex-start; gap: 8px; }
  .footer-links { gap: 0 18px; }
}
@media (any-pointer: coarse) { .footer-links a { min-height: 44px; } }
@media (max-width: 1279px) {
  .header .nav-links {
    max-height: calc(100vh - 110px);
    max-height: calc(100dvh - 110px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }
  .header .language-switch a { min-width: 30px; justify-content: center; }
}
@media (max-width: 820px) {
  .problem-layout { grid-template-columns: minmax(0, 1fr); }
  .contact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .problem-option { gap: 12px; }
  .recommendation { padding: 22px; }
  .recommendation h3 { font-size: clamp(1.55rem, 7.5vw, 1.875rem); }
  .attachment-field { padding: 16px; }
  .booking-intro { padding: 24px; }
  .booking-content { padding: 16px; }
  .booking-content:has(iframe) { padding: 0; }
  #booking-frame > a { margin: 16px; }
  .hero-choice > span:last-child { min-width: 0; }
}
@media (any-pointer: coarse) {
  .header .submenu-toggle { width: 44px; min-height: 44px; }
  .text-link, .hero-secondary { min-height: 44px; padding-block: 10px; }
}
