/* Shared mobile refinements. Keep each demo's typography and colour palette. */
@media (max-width: 1050px) {
  :is(.praxis-site, .werk-site, .law-site, .estate-site) .demo-menu {
    display: inline-grid;
    place-items: center;
  }
}
@media (max-width: 1000px) {
  .dining-site .demo-menu { display: inline-grid; place-items: center; }
}
@media (max-width: 1050px) {
  body:not(.banida-site) .demo-menu { min-width: 44px; min-height: 44px; }
  :is(.praxis-nav, .werk-nav, .law-nav, .salon-nav, .estate-nav, .dining-nav)[data-open] {
    max-height: calc(100dvh - 160px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  :is(.praxis-nav, .werk-nav, .law-nav, .salon-nav, .estate-nav, .dining-nav)[data-open] > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
  }
}
@media (max-width: 900px) {
  /* Zero minimum tracks prevent long German words from widening the grid. */
  .banida-site main { overflow-wrap: anywhere; }
  .banida-site :is(.service-intro-grid, .split-heading, .contract-section-head,
    .contract-contents-grid, .contract-download-final-inner) {
    grid-template-columns: minmax(0, 1fr);
  }
  .banida-site :is(.service-intro-grid, .split-heading, .contract-section-head,
    .contract-contents-grid, .contract-download-final-inner) > * { min-width: 0; }
  .banida-site main :is(h1, h2, h3) { hyphens: auto; }
}
@media (max-width: 1050px) {
  .banida-site main summary { min-height: 44px; }
  .banida-site .site-nav > a { display: flex; align-items: center; min-height: 44px; }
  .estate-process ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .estate-process li { min-width: 0; }
  .estate-process li:nth-child(2) { border-right: 0; }
  .banida-site :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, select),
  body:not(.banida-site) main form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, select) {
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    font-size: 16px;
    line-height: 1.5;
  }
  body:not(.banida-site) main form :is(label, label > span) {
    font-size: 12px;
    line-height: 1.5;
  }
  body:not(.banida-site) main form button {
    min-height: 48px;
    font-size: 14px;
  }
  .banida-site .footer-column { min-width: 0; gap: 4px; }
  .banida-site .footer-column > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
    overflow-wrap: anywhere;
  }
  .banida-site .footer-column address { overflow-wrap: anywhere; }
  .banida-site .footer-bottom nav { flex-wrap: wrap; gap: 4px 20px; }
  .banida-site .footer-bottom :is(a, button) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 13px;
    text-align: left;
  }
  .banida-site .support-close { min-width: 44px; min-height: 44px; }
  .banida-site .support-panel { grid-template-rows: auto minmax(0, 1fr) auto auto auto; }
  .banida-site .support-contact-form > label:not(.support-privacy),
  .banida-site .support-privacy { font-size: 12px; }
  .banida-site .support-quick button { min-height: 44px; font-size: 13px; }
  .banida-site .support-contact-actions button { min-height: 44px; font-size: 13px; }
  .banida-site .support-message-form { grid-template-columns: minmax(0, 1fr) 48px; }
  .banida-site .support-message-form button { width: 48px; height: 48px; }
}
@media (max-width: 800px) {
  body:has(.banida-demo-bar) { padding-top: 44px; }
  .banida-demo-bar { min-height: 44px; padding-block: 0; }
  .banida-demo-bar .demo-back { min-height: 44px; }
  :is(.praxis-header, .werk-header, .law-header, .salon-header, .estate-header, .dining-header) { top: 44px; }
}
@media (max-width: 700px) {
  .werk-project-top dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .werk-project-top dl > div { min-width: 0; padding-inline: 12px; }
  .werk-project-top dd { overflow-wrap: anywhere; hyphens: auto; }
  .estate-process ol { grid-template-columns: minmax(0, 1fr); }
  .law-site main { overflow-wrap: anywhere; }
  .law-site main :is(h1, h2, h3) { hyphens: auto; }
  .law-expertise header { grid-template-columns: minmax(0, 1fr); }
  .law-expertise header > * { min-width: 0; }
}
@media (max-width: 620px) {
  .banida-site .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .banida-site .site-footer { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  .banida-site .support-widget { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
  .banida-site .support-launch {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    min-height: 48px;
    padding: 0;
    border-radius: 50%;
  }
  .banida-site .support-launch > span:not(.support-launch-icon) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .banida-site .support-launch-icon { width: 32px; height: 32px; }
  .banida-site .support-panel {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    width: auto;
    height: min(630px, calc(100dvh - 88px - env(safe-area-inset-bottom, 0px)));
  }
  .banida-site .privacy-fab {
    width: 44px;
    height: 44px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }
  .banida-site .privacy-fab-icon { width: 44px; height: 44px; }
}
@media (max-width: 360px) {
  .banida-site .site-header .brand-logo { width: 160px; }
  .banida-site.service-landing main h2 { font-size: 32px; line-height: 1.15; }
  .law-hero h1 { font-size: 43px; }
  .law-expertise h2 { font-size: 36px; }
}
@media (max-width: 620px) and (max-height: 550px) {
  .banida-site .support-widget:has(.support-panel:not([hidden])) { z-index: 1260; }
  .banida-site .support-panel { top: 10px; bottom: 10px; height: auto; }
}
