/* Shared device layout: keep content accessible instead of hiding overflow. */
html { -webkit-text-size-adjust: 100%; }
body { overflow-wrap: anywhere; }
img, video, canvas, svg { max-width: 100%; }
input, select, textarea { min-width: 0; max-width: 100%; }
.main, .content, .page, .tab-panel, .card, .wrap, .form-card,
.f-group, .field, .topbar-title, .hero-copy { min-width: 0; }
.hero-grid > *, .card-grid > *, .calculator-layout > *, .two-col > *,
.footer-grid > *, .form-grid > *, .f-grid > *, .stats-row > *, .detail-grid > * { min-width: 0; }
.table-container { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-container table { min-width: 720px; }
.software-tabs { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.software-tab { padding: 14px 20px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--green); text-align: left; font: inherit; font-weight: 600; }
.software-tab[aria-selected="true"] { background: var(--green); color: white; border-color: var(--green); }
.software-panel[hidden] { display: none; }
.software-empty { padding: 32px 0; color: var(--muted); }
.device-table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.device-table-scroll:focus-visible { outline: 2px solid #276aac; outline-offset: -2px; }
@media screen and (max-width: 1100px) {
  .topbar { height: auto; min-height: 60px; gap: 12px; flex-wrap: wrap; padding: 12px 20px; }
  .topbar-right { flex-wrap: wrap; min-width: 0; }
}
@media screen and (max-width: 820px) {
  .wrap { width: min(100% - 32px,1184px); }
  .header-inner { width: min(100% - 28px,1320px); min-height: 72px; gap: 12px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; flex: 0 0 44px; }
  .header-actions { gap: 10px; margin-left: auto; }
  .header-actions .portal-link { display: none; }
  .header-actions .button.small { min-height: 44px; padding: 9px 14px; white-space: nowrap; }
  .mobile-nav { max-height: calc(100dvh - 72px); padding: 8px 16px 16px; border-top: 1px solid var(--line); }
  .mobile-nav a { min-height: 46px; display: flex; align-items: center; }
  .subnav .wrap { width: min(100% - 28px,1184px); }
  .hero-grid { grid-template-columns: minmax(0,1fr); gap: 36px; padding: 52px 0 44px; }
  .card-grid,.steps-grid,.assistant-layout,.about-block,.contact-office,.calculator-layout,.two-col { grid-template-columns: minmax(0,1fr); }
  .about-block,.assistant-layout { gap: 34px; }
  .cta { align-items: flex-start; flex-direction: column; padding: 28px 24px; }
  .footer-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .footer-group { border-top: 1px solid rgba(255,255,255,.14); }
  .footer-toggle { width: 100%; min-height: 52px; display: flex; align-items: center; gap: 10px; justify-content: flex-start; }
  .footer-toggle .compact-sign { margin-left: auto; }
  .footer-details[hidden] { display: none; }
  .topbar { padding: 12px 16px; }
  .topbar > div:first-child { min-width: 0; flex: 1 1 100%; }
  .topbar-right { width: 100%; gap: 10px; }
  .topbar-search { width: auto; flex: 1 1 160px; min-width: 0; }
  .topbar-date { flex: 1 1 100%; }
  .content { padding: 18px 14px; }
  .filter-row { padding: 14px; }
  .filter-row input, .filter-row select { flex: 1 1 140px; }
  .card-actions, .actions, .footer-bottom, .footer-bottom nav { flex-wrap: wrap; }
  .card-actions .btn, .actions .button { white-space: normal; }
  #wa-panel { width: calc(100% - 24px) !important; right: 12px !important; top: 100% !important; max-height: 70dvh; overflow-y: auto !important; }
  .dv-wrap { min-width: 0; width: calc(100vw - 24px); max-height: 90dvh; }
  #doc-viewer-modal > div { min-width: 0 !important; width: calc(100vw - 24px); max-height: 90dvh !important; }
  #doc-viewer-modal > div > div:first-child { flex-wrap: wrap; gap: 10px; }
  .modal-overlay { padding: 12px; }
  .modal-body { padding: 16px; max-height: 75dvh; }
  .modal-header { gap: 10px; flex-wrap: wrap; }
  .nav-inner { flex-wrap: wrap; gap: 10px; }
  .upload-grid { grid-template-columns: minmax(0,1fr) !important; }
}
@media screen and (max-width: 600px) {
  .wrap { width: min(100% - 24px,1184px); }
  .brand { font-size: 1rem; letter-spacing: .1em; gap: 9px; }
  .brand small { font-size: .58rem; letter-spacing: .18em; }
  .brand-mark { width: 40px; height: 40px; }
  .header-actions .button.small { padding: 8px 10px; font-size: .8rem; }
  .hero-grid { padding: 40px 0 34px; }
  .section { padding: 54px 0; }
  .page-head { padding: 38px 0 34px; }
  .wizard-body { padding: 22px 16px; }
  .wizard-progress { padding: 18px 16px; overflow-x: auto; }
  .form-grid,.review-list { grid-template-columns: minmax(0,1fr); }
  .full { grid-column: auto; }
  .stats-row, .detail-grid, .rv-grid, .review-grid, .about-hero-stats,
  .doc-grid, .rv-docs-grid, .f-grid, .ref-grid2, .sig-row2 { grid-template-columns: minmax(0,1fr); }
  .calc-wrap, .contact-grid, .features-grid, .steps, .about-values { grid-template-columns: minmax(0,1fr); }
  .collateral-item { grid-template-columns: minmax(0,1fr); }
  .collateral-item span { white-space: normal !important; }
  .choice-bottom, .hero-btns, .form-actions, .enq-actions { flex-wrap: wrap; }
  .choice-bottom strong { white-space: normal; }
  .form-body, .card-body { padding: 16px; }
  .software-tabs { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
  .software-tab { width: 100%; min-height: 48px; }
  .software-panel h2, .section-title { overflow-wrap: anywhere; }
  .dv-header { flex-wrap: wrap; gap: 8px; }
  .content [style*="grid-template-columns:1fr 1fr"], .modal-body [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: minmax(0,1fr) !important; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px; }
  .chat-panel { max-height: calc(100dvh - 94px); }
}
@media screen and (max-width: 380px) {
  .rate-row, .metrics, .footer-grid, .breakdown { grid-template-columns: minmax(0,1fr); }
  .term-picker { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .header-inner { gap: 8px; }
}
@media print { .device-table-scroll { overflow: visible; } }

/* 2026-10 production polish */
@media screen and (max-width:820px){
  .mobile-nav[hidden]{display:none}
  .mobile-nav:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:4px}
  .mobile-nav a{padding:10px 12px;border-radius:9px}
}
@media screen and (max-width:520px){
  .mobile-nav:not([hidden]){grid-template-columns:1fr}
  .header-actions .button.small{max-width:145px;text-align:center;line-height:1.15}
  .footer-toggle{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
