/* Catalog surfaces follow the About Us and How to Purchase design. */
body:has(.firearms-section) { background:#0d0d0d; color:#f5f5f5; }
.firearms-hero { position:relative; min-height:330px; overflow:hidden; background:#171717; }
.firearms-hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62; }
.firearms-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,8,8,.9),rgba(8,8,8,.4)),linear-gradient(0deg,#0d0d0d,transparent 65%); }
.firearms-hero-content { position:relative; z-index:1; max-width:1120px; margin:auto; padding:68px 22px 45px; }
.firearms-hero-content .hero-small-text,.catalog-modal-eyebrow { color:#f58220; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.firearms-hero-content h1 { font-size:clamp(34px,8vw,68px); line-height:1.08; }
.firearms-hero-content p { max-width:600px; color:#ddd; line-height:1.65; }
.firearms-section .product-card,.firearms-section .firearms-search { border:1px solid #55504a; border-radius:9px; background:linear-gradient(145deg,#34312e,#20201f 62%,#141515); box-shadow:inset 0 1px rgba(255,255,255,.16),0 9px 20px rgba(0,0,0,.5); }
.firearms-section .product-card { overflow:hidden; }
.product-modal.active { position:fixed; z-index:10020; inset:0; display:flex; justify-content:center; align-items:center; padding:16px; box-sizing:border-box; }
.product-modal-overlay { position:absolute; inset:0; background:rgba(4,4,4,.83); backdrop-filter:blur(5px); }
.product-modal-content { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); width:min(920px,100%); max-height:calc(100dvh - 32px); overflow:auto; border:1px solid #625951; border-radius:12px; background:linear-gradient(145deg,#34312e,#20201f 60%,#141515); box-shadow:inset 0 1px rgba(255,255,255,.18),0 24px 65px rgba(0,0,0,.7); color:#f7f7f7; animation:catalogPanelIn .35s ease both; }
.product-modal-content .modal-product-image { display:grid; place-items:center; min-height:300px; padding:25px; background:linear-gradient(145deg,#272625,#121313); }
.product-modal-content .modal-product-image img { display:block; width:100%; max-height:440px; object-fit:contain; }
.product-modal-content .modal-product-info { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(24px,4vw,45px); }
.product-modal-content .modal-product-info h2 { margin:14px 0 8px; font-size:clamp(24px,3vw,35px); line-height:1.15; }
.product-modal-content .modal-price { color:#f58220; font-size:clamp(23px,3vw,30px); font-weight:700; }
.product-modal-content .catalog-modal-category { margin-top:10px; color:#c5b6aa; font-size:13px; }
.product-modal-content .modal-divider { width:100%; height:1px; margin:21px 0; background:#5a514a; }
.product-modal-content .modal-product-info h3 { margin:0 0 9px; font-size:16px; }
.product-modal-content .modal-product-info p { color:#d0cecb; line-height:1.7; overflow-wrap:anywhere; white-space:pre-line; }
.product-modal-content .modal-inquiry-btn { min-height:46px; margin-top:auto; padding:11px 22px; border:1px solid #b45b1b; border-radius:6px; background:linear-gradient(145deg,#ea7920,#aa4d0c); color:#fff; font:700 14px Poppins,Arial,sans-serif; cursor:pointer; }
.product-modal-content .modal-close { position:absolute; z-index:2; right:12px; top:10px; display:grid; place-items:center; width:37px; height:37px; padding:0; border:1px solid #625951; border-radius:50%; background:#211f1e; color:white; font-size:27px; cursor:pointer; }
@keyframes catalogPanelIn { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
@media(max-width:650px) { .product-modal-content { grid-template-columns:1fr; } .product-modal-content .modal-product-image { min-height:190px; padding:16px; } .product-modal-content .modal-product-image img { max-height:230px; } .product-modal-content .modal-product-info { padding:22px; } .product-modal-content .modal-inquiry-btn { margin-top:18px; width:100%; } }
@media(prefers-reduced-motion:reduce) { .product-modal-content { animation:none; } }

/* Mobile category hero: 60% of the previous 330px minimum height. */
@media (max-width: 820px) {
  body .firearms-hero {
    min-height: 198px !important;
    height: auto !important;
  }
  body .firearms-hero > .firearms-hero-content {
    padding: 18px 22px !important;
  }
  body .firearms-hero-content .hero-small-text {
    display: block;
    margin: 0 0 4px;
    font-size: 10px;
  }
  body .firearms-hero-content h1 {
    margin: 0 0 6px !important;
    font-size: clamp(26px, 7vw, 34px) !important;
    line-height: 1.08 !important;
  }
  body .firearms-hero-content p {
    margin: 0 0 10px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  body .firearms-hero-content .hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px !important;
    margin-top: 0 !important;
  }
  body .firearms-hero-content .hero-btn {
    min-height: 34px;
    padding: 8px 12px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
}
