/* --- Mobile & menu fixes v21 --- */
html, body { overflow-x: hidden; }

/* Ensure headroom under floating CTA */
@media (max-width: 480px){ .page, main, .config-section { padding-bottom: 88px; } }

/* Device cards grid for /devices/ if not present */
.devices-grid, .device-list, .cards { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px){ .devices-grid, .device-list, .cards { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 960px){ .devices-grid, .device-list, .cards { grid-template-columns: repeat(3,1fr); } }

/* Confugurator options must wrap */
.btn-group, .options, .option-group, .choices, .radio-group, .radio-options, fieldset .options {
  display: flex; flex-wrap: wrap; gap: 12px;
}
.btn, .option, .choice, .chip, .radio, .radio-item, .radio-option, .config-option {
  flex: 1 1 calc(50% - 12px);
  min-width: 140px;
  white-space: normal;
  line-height: 1.25;
}
.option-label, .btn span, .chip span, .radio label, .radio-option label {
  word-break: break-word; hyphens: auto;
}

/* Common radio markup fallbacks */
fieldset label, .radio label, .radio-option label { display: block; }
input[type="radio"]+label { display: block; }

/* Prevent rogue nowraps and fixed widths */
*[style*="white-space:nowrap"] { white-space: normal !important; }
[class*="nowrap"] { white-space: normal; }

/* Images responsive */
img { max-width:100%; height:auto; }

/* Floating action button should not block menu */
.fab-contact { position: fixed; right: 16px; bottom: 16px; z-index: 1000; }
.menu-open .fab-contact { pointer-events: none; }
@media (max-width:380px){ .fab-contact .label { display:none; } .fab-contact{ padding: 12px; } }

/* Mobile menu overlay above everything */
#mobile-nav, .app-mobile-overlay { position: fixed; inset:0; display:none; background: rgba(0,0,0,.35); z-index: 1100; }
.menu-open #mobile-nav, .menu-open .app-mobile-overlay { display:block; }
#mobile-nav .sheet, .app-mobile-sheet { position:absolute; top:0; left:0; width:88%; max-width:360px; height:100%; background:#fff; overflow-y:auto; box-shadow:0 10px 30px rgba(0,0,0,.15); }
/* paper background for cards */
.bg-paper{background-image:url('../assets/img/paper.png');background-size:256px 256px;background-repeat:repeat}
