/* =========================================================
   FIREARMS ANONYMOUS — Core Design System
   Bridgeville, PA · Type 07 FFL
   Pine Forest (#415241) + Tactical Red (#BB0A1E)
   ========================================================= */

:root{
  --pine:        #374637;
  --pine-dark:   #2a362a;
  --pine-darker: #141914;
  --olive-drab:  #6B8E23;
  --red:         #BB0A1E;
  --red-dark:    #8a0816;
  --red-glow:    rgba(187,10,30,.45);
  --black:       #0b0d0a;
  --steel:       #9aa89a;
  --tan:         #e8e2ce;
  --tan-dim:     #c9c3ad;
  --white:       #f5f4ee;
  --font-head:   'Anton', 'Oswald', sans-serif;
  --font-body:   'Barlow Condensed', 'Rajdhani', sans-serif;
  --font-mono:   'Oswald', sans-serif;
  --radius: 2px;
  --shadow-hard: 6px 6px 0 rgba(0,0,0,.55);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--pine);
  color:var(--tan);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.5;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,0) 200px),
    repeating-linear-gradient(135deg, rgba(0,0,0,.05) 0 2px, transparent 2px 40px);
}

h1,h2,h3,h4{
  font-family:var(--font-head);
  text-transform:uppercase;
  letter-spacing:.03em;
  margin:0 0 .4em;
  color:var(--white);
}

a{ color:var(--tan); text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:var(--font-body); cursor:pointer; }
ul{ list-style:none; margin:0; padding:0; }

.container{ max-width:1240px; margin:0 auto; padding:0 24px; }
.section{ padding:80px 0; }
.section.tight{ padding:48px 0; }
.section-dark{ background:var(--pine-darker); }
.section-black{ background:var(--black); }

/* ---------- diagonal hazard divider ---------- */
.hazard-strip{
  height:14px;
  background:repeating-linear-gradient(135deg, var(--red) 0 22px, var(--black) 22px 44px);
}

/* ---------- eyebrow / kicker ---------- */
.kicker{
  display:inline-block;
  font-family:var(--font-mono);
  font-weight:600;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--red);
  font-size:14px;
  margin-bottom:10px;
  border-left:4px solid var(--red);
  padding-left:10px;
}

.section-title{
  font-size:clamp(32px,5vw,56px);
  color:var(--white);
  -webkit-text-stroke:1px rgba(0,0,0,.2);
}
.section-title .accent{ color:var(--red); }
.section-lead{
  max-width:640px;
  color:var(--tan-dim);
  font-size:19px;
  margin-bottom:36px;
}

/* ---------- TOP BAR ---------- */
.topbar{
  background:var(--black);
  color:var(--steel);
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  border-bottom:2px solid var(--red);
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
  flex-wrap:wrap;
  gap:8px;
}
.topbar span.hl{ color:var(--red); font-weight:700; }

/* ---------- NAV ---------- */
.navbar{
  background:var(--pine-darker);
  border-bottom:4px solid var(--red);
  position:sticky; top:0; z-index:100;
}
.navbar .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:14px;
  padding-bottom:14px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-head);
  font-size:26px;
  letter-spacing:.04em;
  color:var(--white);
}
.brand small{
  display:block;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.2em;
  color:var(--red);
  font-weight:600;
}
.brand svg{ flex-shrink:0; }
.brand-text{
  font-family:'Black Ops One', var(--font-head);
  font-size:20px;
  letter-spacing:.01em;
  line-height:1.05;
  color:var(--white);
}
.brand-text .brand-red{ color:var(--red); }
@media (max-width:500px){ .brand-text{ font-size:16px; } }

.nav-links{
  display:flex;
  align-items:center;
  gap:28px;
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:14px;
  font-weight:600;
}
.nav-links a{
  position:relative;
  padding:6px 0;
  color:var(--tan);
  transition:color .15s ease;
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:0; height:3px;
  background:var(--red);
  transition:width .18s ease;
}
.nav-links a:hover{ color:var(--white); }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-links a.active{ color:var(--white); }

.nav-cart{
  display:flex;
  align-items:center;
  gap:6px;
  background:var(--red);
  color:var(--white);
  padding:8px 14px;
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:13px;
  border:2px solid var(--black);
  box-shadow:3px 3px 0 var(--black);
  transition:transform .12s ease;
}
.nav-cart:hover{ transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--black); }
.nav-cart .count{
  background:var(--black);
  border-radius:50%;
  min-width:20px; height:20px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:11px;
}
.nav-toggle{
  display:none;
  background:none; border:2px solid var(--red); color:var(--white);
  padding:8px 10px; font-size:20px;
}

@media (max-width: 900px){
  .nav-links{
    position:absolute; top:100%; left:0; right:0;
    background:var(--pine-darker);
    flex-direction:column;
    align-items:flex-start;
    padding:20px 24px;
    border-bottom:4px solid var(--red);
    display:none;
    gap:16px;
  }
  .nav-links.open{ display:flex; }
  .nav-toggle{ display:inline-block; }
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(187,10,30,.25), transparent 55%),
    linear-gradient(160deg, var(--pine-darker) 0%, var(--pine) 55%, var(--pine-dark) 100%);
  padding:110px 0 90px;
  overflow:hidden;
  border-bottom:6px solid var(--red);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 2px, transparent 2px 26px);
  pointer-events:none;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:40px;
  align-items:center;
  position:relative;
  z-index:2;
}
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }

.hero h1{
  font-size:clamp(42px,7vw,80px);
  line-height:.98;
  margin-bottom:20px;
}
.hero h1 .accent{
  color:var(--red);
}
.hero p.lead{
  font-size:21px;
  color:var(--tan-dim);
  max-width:520px;
  margin-bottom:34px;
}
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; }

.hero-badge-row{
  display:flex; gap:14px; flex-wrap:wrap; margin-top:40px;
}
.hero-badge{
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--tan);
  border:1px solid var(--olive-drab);
  padding:8px 12px;
  display:flex; align-items:center; gap:8px;
  background:rgba(0,0,0,.2);
}
.hero-badge svg{ width:16px; height:16px; }

.hero-emblem{
  position:relative;
  aspect-ratio:1;
  display:flex; align-items:center; justify-content:center;
}
.hero-emblem svg{ width:100%; height:100%; }

.forge-glow{
  position:absolute; inset:-15%;
  z-index:0; pointer-events:none;
  background:
    radial-gradient(circle at 50% 58%, rgba(255,178,60,.65) 0%, rgba(255,108,20,.45) 20%, rgba(187,10,30,.3) 38%, rgba(187,10,30,0) 65%);
  filter:blur(18px);
  animation:forge-pulse 2.6s ease-in-out infinite alternate;
}
.forge-glow::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 38% 72%, rgba(255,140,20,.5) 0%, transparent 14%),
    radial-gradient(circle at 64% 30%, rgba(255,90,10,.4) 0%, transparent 12%),
    radial-gradient(circle at 70% 68%, rgba(255,200,80,.4) 0%, transparent 10%);
  filter:blur(6px);
  animation:forge-embers 3.4s ease-in-out infinite alternate;
}
@keyframes forge-pulse{
  0%{ opacity:.7; transform:scale(1); }
  100%{ opacity:1; transform:scale(1.06); }
}
@keyframes forge-embers{
  0%{ opacity:.5; }
  50%{ opacity:1; }
  100%{ opacity:.6; }
}

.hero-logo{
  width:78%; height:auto; object-fit:contain;
  position:relative; z-index:1;
  filter:
    drop-shadow(0 0 16px rgba(255,140,30,.65))
    drop-shadow(0 0 36px rgba(255,70,10,.4))
    drop-shadow(0 14px 0 rgba(0,0,0,.35));
}

.wordmark-panel{
  position:relative;
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
}
.wordmark-crosshair{
  position:absolute;
  width:82%; height:82%;
  color:var(--red);
  opacity:.14;
}
.wordmark-crosshair svg{ width:100%; height:100%; }
.wordmark-text{
  position:relative;
  z-index:2;
  text-align:center;
  transform:skewY(-2deg);
}
.wm-line{
  display:block;
  font-family:'Black Ops One', var(--font-head);
  font-size:clamp(34px,6vw,58px);
  letter-spacing:.02em;
  line-height:1.08;
  text-shadow:5px 5px 0 rgba(0,0,0,.55);
}
.wm-line.light{ color:var(--white); }
.wm-line.red{
  color:var(--red);
  -webkit-text-stroke:1px var(--black);
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:14px;
  padding:15px 28px;
  border:2px solid var(--black);
  border-radius:var(--radius);
  transition:transform .12s ease, box-shadow .12s ease;
}
.btn-primary{
  background:var(--red);
  color:var(--white);
  box-shadow:var(--shadow-hard);
}
.btn-primary:hover{ transform:translate(-3px,-3px); box-shadow:9px 9px 0 rgba(0,0,0,.55); }
.btn-outline{
  background:transparent;
  color:var(--white);
  border-color:var(--tan);
  box-shadow:var(--shadow-hard);
}
.btn-outline:hover{ transform:translate(-3px,-3px); box-shadow:9px 9px 0 rgba(0,0,0,.55); border-color:var(--red); }
.btn-block{ width:100%; justify-content:center; }
.btn-sm{ padding:10px 16px; font-size:12px; }

/* ---------- CATEGORY / FEATURE GRID ---------- */
.grid{ display:grid; gap:26px; }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:1000px){ .grid-4{ grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .grid-4,.grid-3,.grid-2{ grid-template-columns:1fr; } }

/* centers a trailing incomplete row of cards inside a grid-3 */
.row-span-all{ grid-column:1 / -1; display:flex; justify-content:center; flex-wrap:wrap; gap:26px; }
.row-span-all .card{ flex:0 1 calc((100% - 52px)/3); }
@media (max-width:1000px){ .row-span-all .card{ flex:0 1 calc((100% - 26px)/2); } }
@media (max-width:600px){ .row-span-all .card{ flex:0 1 100%; } }

/* team member photo + featured founder card */
.team-photo{
  width:92px; height:92px; border-radius:50%; overflow:hidden;
  border:3px solid var(--red); margin-bottom:16px;
  display:flex; align-items:center; justify-content:center;
  background:var(--pine-dark); color:var(--red);
  font-family:'Anton', sans-serif; font-size:26px; letter-spacing:1px;
}
.team-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-card h3{ margin-bottom:8px; }
.row-span-all .card.team-founder{ flex:0 1 640px; max-width:640px; text-align:left; }
.row-span-all .card.team-founder .team-photo{ margin-left:0; }

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.15)), var(--pine-dark);
  border:1px solid rgba(255,255,255,.08);
  border-top:4px solid var(--red);
  padding:28px 24px;
  position:relative;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.card:hover{ transform:translateY(-6px); box-shadow:0 14px 0 rgba(0,0,0,.35); border-top-color:var(--tan); }
.card .icon{ width:46px; height:46px; color:var(--red); margin-bottom:16px; }
.icon svg{ width:100%; height:100%; display:block; }
.hero-badge{ }
.hero-badge span[data-icon]{ display:inline-flex; width:16px; height:16px; }
.hero-badge span[data-icon] svg{ width:16px; height:16px; }
.card h3{ font-size:22px; color:var(--white); margin-bottom:10px; }
.card p{ color:var(--tan-dim); font-size:16px; margin:0; }
.card a.card-link{
  display:inline-block; margin-top:14px; font-family:var(--font-mono);
  font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--red); font-weight:700;
}
.card a.card-link:hover{ color:var(--white); }

/* ---------- PRODUCT CARDS ---------- */
.product-card{
  background:var(--pine-dark);
  border:1px solid rgba(255,255,255,.08);
  display:flex; flex-direction:column;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.product-card:hover{ transform:translateY(-5px); box-shadow:0 12px 0 rgba(0,0,0,.35); }
.product-media{
  aspect-ratio:4/3;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 10px, transparent 10px 20px),
    linear-gradient(160deg, var(--pine-darker), var(--pine));
  display:flex; align-items:center; justify-content:center;
  border-bottom:3px solid var(--red);
  position:relative;
}
.product-media svg{ width:44%; height:44%; color:var(--tan); opacity:.85; }
.product-media img{ width:100%; height:100%; object-fit:cover; }
.product-media img.zoomable{ cursor:zoom-in; }

/* ---------- image lightbox ---------- */
.lightbox-overlay{
  position:fixed; inset:0; background:rgba(11,13,10,.92);
  display:none; align-items:center; justify-content:center;
  z-index:1000; padding:50px; cursor:zoom-out;
}
.lightbox-overlay.open{ display:flex; }
.lightbox-img{
  max-width:90vw; max-height:90vh; object-fit:contain;
  border:3px solid var(--red); box-shadow:var(--shadow-hard); cursor:default;
}
.lightbox-close{
  position:absolute; top:22px; right:28px;
  background:var(--red); color:var(--white); border:2px solid var(--black);
  width:42px; height:42px; font-size:26px; line-height:1; cursor:pointer;
}
.lightbox-close:hover{ background:var(--red-dark); }
.product-tag{
  position:absolute; top:10px; left:10px;
  background:var(--red); color:var(--white);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; padding:4px 8px; font-weight:700;
}
.limited-tag{
  position:absolute; top:10px; right:10px;
  background:var(--olive-drab); color:var(--black);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; padding:4px 8px; font-weight:700;
}
.soon-tag{
  position:absolute; top:10px; right:10px;
  background:var(--steel); color:var(--black);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; padding:4px 8px; font-weight:700;
}
.product-card-soon{ opacity:.82; }
.product-card-soon .product-media img{ filter:grayscale(.55); }
.soon-note{
  font-family:var(--font-mono); font-size:13px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--steel); font-weight:700;
  border:1px dashed rgba(255,255,255,.25); border-radius:2px;
  padding:9px 12px; width:100%; text-align:center;
}
.product-body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.product-cat{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); }
.product-body h3{ font-size:19px; margin:0; color:var(--white); }
.product-desc{ font-size:14.5px; color:var(--tan-dim); margin:0; flex:1; }
.product-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.price{ font-family:var(--font-mono); font-size:20px; font-weight:700; color:var(--white); }
.price small{ display:block; font-size:11px; color:var(--steel); font-weight:400; letter-spacing:.06em; }

/* sub-group header used to split a single filter tab (e.g. Used
   Firearms & Accessories) into separated sections */
.used-subhead{
  grid-column:1 / -1;
  font-family:var(--font-mono);
  font-size:15px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--red); font-weight:700;
  border-left:4px solid var(--red);
  padding-left:12px;
  margin:8px 0 -4px;
}
.used-subhead:first-child{ margin-top:0; }

.used-typehead{
  grid-column:1 / -1;
  font-family:var(--font-mono);
  font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--olive-drab); font-weight:700;
  border-left:3px solid var(--olive-drab);
  padding-left:10px;
  margin:2px 0 -4px;
}

.variant-row{ display:flex; gap:10px; }
.variant-select{
  flex:1; background:var(--pine-darker); color:var(--white); border:1px solid rgba(255,255,255,.18);
  padding:9px 10px; font-family:var(--font-body); font-size:14px; border-radius:2px;
}
.variant-select:focus{ outline:none; border-color:var(--olive-drab); }

.ffl-note{
  font-family:var(--font-mono); font-size:11px; color:var(--tan-dim);
  border-top:1px dashed rgba(255,255,255,.15); margin-top:10px; padding-top:8px;
}

/* ---------- FILTER TABS ---------- */
.filter-bar{
  display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;
}
.filter-btn{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:13px;
  font-weight:600;
  padding:10px 18px;
  background:transparent;
  border:2px solid var(--olive-drab);
  color:var(--tan);
}
.filter-btn:hover{ border-color:var(--red); color:var(--white); }
.filter-btn.active{ background:var(--red); border-color:var(--black); color:var(--white); }

.sub-filter-bar{ margin:-16px 0 36px; padding-top:14px; border-top:1px dashed rgba(255,255,255,.15); }
.sub-filter-bar:empty{ margin:0; padding:0; border:0; }
.filter-btn.sub{
  font-size:11.5px; padding:7px 14px;
  border-color:var(--olive-drab); color:var(--tan-dim);
  background:rgba(0,0,0,.15);
}
.filter-btn.sub:hover{ border-color:var(--red); color:var(--white); }
.filter-btn.sub.active{ background:var(--olive-drab); border-color:var(--black); color:var(--white); }

/* ---------- STATS STRIP ---------- */
.stats{
  background:var(--red);
  color:var(--white);
  border-top:4px solid var(--black);
  border-bottom:4px solid var(--black);
}
.stats .container{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:10px; text-align:center; padding:36px 24px;
}
@media (max-width:700px){ .stats .container{ grid-template-columns:repeat(2,1fr);} }
.stats .container.stats-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:700px){ .stats .container.stats-3{ grid-template-columns:1fr; } }
.stats .container.stats-2{ grid-template-columns:repeat(2,1fr); max-width:560px; margin:0 auto; }
@media (max-width:700px){ .stats .container.stats-2{ grid-template-columns:1fr; } }
.stat-num{ font-family:var(--font-head); font-size:44px; line-height:1; }
.stat-label{ font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; opacity:.9; }

/* ---------- TESTIMONIALS ---------- */
.testi{
  background:var(--pine-dark);
  border:1px solid rgba(255,255,255,.08);
  border-left:5px solid var(--red);
  padding:26px 24px;
}
.testi p.quote{ font-size:18px; color:var(--tan); font-style:italic; margin:0 0 14px; }
.testi .who{ font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel); }
.stars{ color:var(--red); letter-spacing:2px; margin-bottom:10px; }

/* ---------- CTA BAND ---------- */
.cta-band{
  background:linear-gradient(120deg, var(--pine-darker), var(--black));
  border-top:6px solid var(--red);
  border-bottom:6px solid var(--red);
  text-align:center;
  padding:70px 24px;
}
.cta-band h2{ font-size:clamp(28px,5vw,48px); }
.cta-band p{ color:var(--tan-dim); font-size:18px; max-width:600px; margin:0 auto 28px; }

/* ---------- FOOTER ---------- */
footer{
  background:var(--black);
  color:var(--steel);
  padding:60px 0 24px;
  border-top:6px solid var(--red);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:36px;
  margin-bottom:40px;
}
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-col h4{ color:var(--white); font-size:16px; margin-bottom:14px; }
.footer-col a, .footer-col p{ color:var(--steel); font-size:15px; display:block; margin-bottom:8px; }
.footer-col a:hover{ color:var(--red); }
.footer-brand{ display:flex; align-items:center; gap:10px; }
.footer-logo{ width:26px; height:26px; object-fit:contain; flex-shrink:0; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:20px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:13px; color:var(--steel);
  font-family:var(--font-mono);
}
.legal-note{
  font-size:12.5px; color:var(--steel); line-height:1.6; max-width:900px;
}

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-header{
  background:linear-gradient(160deg, var(--pine-darker), var(--pine));
  border-bottom:6px solid var(--red);
  padding:64px 0 48px;
  position:relative;
}
.page-header::after{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(135deg, rgba(0,0,0,.08) 0 2px, transparent 2px 30px);
}
.page-header .container{ position:relative; z-index:2; }
.breadcrumb{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--steel); margin-bottom:14px;
}
.breadcrumb .accent{ color:var(--red); }
.page-header h1{ font-size:clamp(34px,5.5vw,58px); }
.page-header p{ color:var(--tan-dim); font-size:18px; max-width:640px; }
.page-header-title-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.page-header-logo{ width:173px; height:auto; object-fit:contain; flex-shrink:0; }

/* ---------- FORMS ---------- */
.form-row{ margin-bottom:20px; }
.form-row label{
  display:block; font-family:var(--font-mono); font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; margin-bottom:8px; color:var(--tan);
}
.form-row input, .form-row select, .form-row textarea{
  width:100%; background:var(--pine-darker); border:2px solid rgba(255,255,255,.15);
  color:var(--white); padding:12px 14px; font-family:var(--font-body); font-size:16px;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{
  outline:none; border-color:var(--red);
}
.form-2col{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:600px){ .form-2col{ grid-template-columns:1fr; } }

/* ---------- TABLE (schedule/pricing) ---------- */
.table-wrap{ overflow-x:auto; }
table.tactical{ width:100%; border-collapse:collapse; }
table.tactical th{
  background:var(--red); color:var(--white); text-align:left;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  padding:12px 14px;
}
table.tactical td{
  padding:14px; border-bottom:1px solid rgba(255,255,255,.08);
  color:var(--tan); font-size:15.5px;
}
table.tactical tr:hover td{ background:rgba(255,255,255,.03); }

/* ---------- TOAST ---------- */
#toast{
  position:fixed; bottom:24px; right:24px;
  background:var(--red); color:var(--white);
  border:2px solid var(--black); box-shadow:var(--shadow-hard);
  font-family:var(--font-mono); font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; font-size:13px;
  padding:14px 20px; z-index:999;
  transform:translateY(150%); transition:transform .25s ease;
}
#toast.show{ transform:translateY(0); }

/* ---------- CART PAGE ---------- */
.cart-item{
  display:grid; grid-template-columns:80px 1fr auto auto auto;
  gap:16px; align-items:center;
  padding:18px 0; border-bottom:1px solid rgba(255,255,255,.1);
}
@media (max-width:700px){ .cart-item{ grid-template-columns:60px 1fr; row-gap:8px; } }
.cart-thumb{
  width:80px; height:80px;
  background:linear-gradient(160deg, var(--pine-darker), var(--pine));
  border:2px solid var(--red);
  display:flex; align-items:center; justify-content:center;
}
.cart-thumb svg{ width:60%; height:60%; color:var(--tan); }
.qty-box{ display:flex; align-items:center; gap:8px; }
.qty-box button{
  width:28px; height:28px; background:var(--pine-darker); color:var(--white);
  border:1px solid var(--tan); font-weight:700;
}
.qty-box input{
  width:44px; text-align:center; background:var(--pine-darker); color:var(--white);
  border:1px solid rgba(255,255,255,.2); padding:6px;
}
.remove-link{ color:var(--red); font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.cart-summary{
  background:var(--pine-dark); border:1px solid rgba(255,255,255,.1); border-top:4px solid var(--red);
  padding:26px; position:sticky; top:110px;
}
.summary-row{ display:flex; justify-content:space-between; margin-bottom:12px; font-size:16px; color:var(--tan-dim); }
.summary-row.total{ font-size:22px; color:var(--white); font-family:var(--font-mono); font-weight:700; border-top:1px dashed rgba(255,255,255,.2); padding-top:14px; margin-top:6px; }
.empty-cart{ text-align:center; padding:80px 20px; color:var(--tan-dim); }

/* ---------- SHIPPING TIME NOTICE ---------- */
.ship-note{
  display:flex; align-items:center; gap:10px;
  background:rgba(107,142,35,.18); border:1px solid var(--olive-drab); border-radius:3px;
  padding:12px 14px; margin:16px 0; font-size:14.5px; color:var(--white); font-weight:600; line-height:1.4;
}
.ship-note span[data-icon]{ display:inline-flex; width:20px; height:20px; color:var(--olive-drab); flex-shrink:0; }
.ship-note span[data-icon] svg{ width:20px; height:20px; }

/* ---------- ALERT BANNER ---------- */
.alert{
  background:rgba(187,10,30,.12); border:1px solid var(--red); border-left:5px solid var(--red);
  padding:16px 20px; font-size:15px; color:var(--tan); margin-bottom:30px;
}
.alert strong{ color:var(--white); }

/* ---------- MISC ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.divider{
  height:2px; background:repeating-linear-gradient(90deg, var(--red) 0 16px, transparent 16px 28px);
  margin:50px 0;
}
