
/* ===== Mobile polish overrides ===== */
html, body { overflow-x: hidden; max-width: 100vw; }
img, video { max-width: 100%; height: auto; }

.site-top .brand-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  text-decoration: none;
  color: inherit;
}
.site-top .brand-link img { flex-shrink: 0; }
.site-top .brand-text {
  font-weight: 700;
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 42vw;
}

/* Hamburger */
button.sw {
  display: none !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(15,23,42,0.15);
  border-radius: 10px;
  background: #fff;
  color: #0f172a !important;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  z-index: 5001;
  position: relative;
}

nav.sb {
  display: block !important;
}
nav.sb ul {
  display: flex !important;
  align-items: center;
  gap: 1.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
nav.sb a {
  text-decoration: none;
  color: #0f172a;
  font-weight: 600;
  font-size: 0.95rem;
}

@media (max-width: 991px) {
  button.sw { display: inline-flex !important; }
  nav.sb {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: rgba(15, 23, 42, 0.97) !important;
    z-index: 5000 !important;
    padding: 5.5rem 1.5rem 2rem !important;
    margin: 0 !important;
  }
  nav.sb.open { display: flex !important; align-items: center; justify-content: center; }
  nav.sb ul {
    flex-direction: column !important;
    gap: 1.75rem !important;
    width: 100%;
    text-align: center;
  }
  nav.sb a {
    color: #fff !important;
    font-size: clamp(1.4rem, 6vw, 2rem) !important;
    font-weight: 700 !important;
  }
  body.pt { overflow: hidden; }
}

/* Hero CTAs stack on narrow phones */
@media (max-width: 480px) {
  .relative.z-20 .flex.flex-col.sm\:flex-row,
  .relative.z-20 .flex.gap-4,
  .hero-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .relative.z-20 a.inline-block,
  .relative.z-20 a.btn {
    width: 100%;
    text-align: center;
  }
}

/* Cookie banner mobile */
#cookieBanner {
  padding: 0.85rem 1rem !important;
}
#cookieBanner .container,
#cookieBanner > div {
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.75rem !important;
}
#cookieBanner p {
  font-size: 0.85rem !important;
  line-height: 1.4 !important;
}
#cookieBanner .flex,
#cookieBanner [style*="display:flex"] {
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
}
#cookieBanner button {
  min-height: 44px;
  flex: 1 1 auto;
}

/* Prevent header nav clipping on tablet */
@media (max-width: 991px) {
  header .max-w-7xl {
    position: relative;
  }
}

/* ===== e2e mobile polish v2 ===== */
@media (max-width: 991px) {
  button.sw { z-index: 10001 !important; }
  nav.sb.open { z-index: 10000 !important; }
  .site-top .brand-text { max-width: 48vw; font-size: 1rem; }
  section .grid { gap: 1rem !important; }
  footer .grid,
  footer .flex { flex-wrap: wrap !important; }
  .prose, .prose-lg { overflow-wrap: anywhere; word-break: break-word; }
  iframe, embed, object { max-width: 100% !important; }
  table { display: block; overflow-x: auto; max-width: 100%; }
  h1 { font-size: clamp(1.65rem, 7vw, 2.4rem) !important; line-height: 1.15 !important; }
  .min-h-\[80vh\], .min-h-\[70vh\] { min-height: 70vh !important; }
}
@media (max-width: 480px) {
  header .max-w-7xl { padding-left: 0.85rem !important; padding-right: 0.85rem !important; }
  main, section { padding-left: 1rem; padding-right: 1rem; }
  #cookieBanner { padding: 0.75rem !important; }
  #cookieBanner button { width: 100%; flex: 1 1 100%; }
}

/* menu-open polish v8 */
button.sw[aria-expanded="true"] { font-size: 0; }
button.sw[aria-expanded="true"]::before {
  content: "×";
  font-size: 1.75rem;
  line-height: 1;
  color: #0f172a;
}
@media (max-width: 991px) {
  body.pt #cookieBanner { display: none !important; }
}


/* perfect-pixel polish v9 */
@media (max-width: 991px) {
  nav.sb {
    background: #0b1220 !important;
  }
  body.pt #cookieBanner { display: none !important; }
  body.pt .site-top { position: relative; z-index: 10002; }
  form input, form textarea, form select {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box;
  }
  iframe[src*="maps"], iframe[src*="google"], .map-embed, #mapBox, #mapBox iframe {
    width: 100% !important;
    max-width: 100% !important;
  }
  header.site-top .max-w-7xl { padding-top: 0.35rem !important; padding-bottom: 0.35rem !important; }
}
