/* Screen size and input method are independent: large displays may be tactile. */
.row > *, .repair-steps > li > div, .review-person > div { min-width: 0; }
.contact-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1em 1.5em; margin-bottom: 2em; }
.contact-visit { margin-bottom: 2em; color: #d4e0ee; }
.contact-visit h3 { margin-bottom: .75em; }
.contact-visit address { font-style: normal; margin-bottom: 1em; }
.contact-visit p { font-size: .9em; margin-bottom: 0; }
.contact-hours { margin-bottom: 1em; }
.contact-hours > div { padding: .5em 0; border-bottom: 1px solid #385572; }
.contact-hours dt { color: #fff; font-weight: 700; }
.contact-hours dd { margin: 0; }
.powered-by { display: flex; align-items: center; justify-content: center; gap: .7em; flex-wrap: wrap; margin: 1.2em 0 0; color: #b5c1d0; font-size: .75rem; }
#footer .powered-by strong { color: #c8d2df; font-weight: 400; }
.powered-by img { display: block; width: 38px; height: 44px; object-fit: contain; padding: 4px; background: #e5eaf0; border-radius: 5px; }
.contact-links a { overflow-wrap: anywhere; min-width: 0; }
#contacto .contact-whatsapp { background: #007d35; color: #fff; }
.contact-links a:not(.button) { display: inline-flex; align-items: center; min-height: 44px; }
.contact-section, .faq-answer, .shipping-card, .repair-panel, .review-card { overflow-wrap: anywhere; }
.menu-toggle, .reviews-controls button, .close-inventory { min-height: 44px; min-width: 44px; }
#contacto .contact-form :is(input, select, textarea) { font-size: max(16px, 1em); }
.contact-form select { appearance: auto; }
#contacto { padding-bottom: max(5em, calc(70px + env(safe-area-inset-bottom))); }
#mobile-menu { height: 100vh; height: 100dvh; padding-bottom: max(1em, env(safe-area-inset-bottom)); overflow-y: auto; }
.inventory-body { overscroll-behavior: contain; }
@media screen and (max-width: 736px) {
    .retro-title a { font-size: clamp(1.75rem, 7.5vw, 2.5rem); letter-spacing: clamp(1px, .7vw, 5px); }
    .retro-subtitle { padding-inline: 1em; font-size: clamp(.8rem, 3.5vw, 1rem); }
    .contact-links { align-items: stretch; flex-direction: column; }
    .contact-links a { justify-content: center; text-align: center; }
    .contact-links .button { white-space: normal; }
    .shipping-promo > div { min-width: 0; flex-basis: 100%; }
    .inventory-header { padding: .65em 1em; }
    .inventory-header h2 { font-size: 1.1rem; }
    .inventory-footer { padding: .65em 1em; }
    .inventory-footer p { margin-bottom: .4em; font-size: .9rem; }
}
@media screen and (max-height: 500px) {
    .inventory-header { padding: .5em 1em; }
    .inventory-footer { padding: .5em 1em; }
    .inventory-footer p { display: none; }
    .inventory-body { padding: 1em; }
}
@media (pointer: coarse) {
    #nav a, #mobile-menu a, .faq-group summary, .shipping-sources summary, button, .button { min-height: 48px; }
    #nav a { display: inline-flex; align-items: center; }
    .bg-laser-grid .box:hover { transform: none; }
    #header, .gaming-bg-1, .bg-laser-grid { background-attachment: scroll; }
}
@media screen and (min-width: 1920px) {
    body, input, textarea, select { font-size: clamp(18px, .65vw, 25px); }
    .container { width: min(88%, 2000px); }
    .contact-section { max-width: 1200px; }
}

/* Catalog and distinct site footer. */
.inventory-search { flex-shrink: 0; padding: .7em 2em; background: #142238; border-bottom: 1px solid #385572; }
.inventory-search label { display: block; color: #d4e0ee; font-size: .85rem; }
.inventory-search input { display: block; width: 100%; padding: .5em .75em; background: #0a1128; color: #fff; border: 1px solid #73879d; border-radius: 5px; font-size: 16px; }
.inventory-search p { margin: .25em 0 0; color: #94d8ff; font-size: .8rem; }
.product-card { margin: 0; }
#contact-form-title { margin-bottom: .5em; }
.site-footer { position: relative; margin: 0; padding: 2.5em 0; background: #090f1c; color: #b5c1d0; border-top: 1px solid #385572; }
.site-footer #copyright { margin: 0; }
#contacto { z-index: 0; }
@media screen and (max-width: 736px) { .inventory-search { padding: .5em 1em; } }
@media screen and (max-height: 500px) {
    .inventory-search { padding: .3em 1em; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .2em .7em; }
    .inventory-search label { grid-column: 1 / -1; }
    .inventory-search input { min-width: 0; }
}
