/* =========================
   Global / Typography
   ========================= */
:root{
  --maroon:#800000;
  --ink:#000;
  --muted:#6c757d;
  --bg-alt:#faf7f7;

  /* Weapons reel tunables */
  --weapon-speed:180ms;
  --weapon-ease:cubic-bezier(.22,.61,.36,1);
}

::-moz-selection{ background-color:var(--maroon); color:#fff; }
::selection{ background-color:var(--maroon); color:#fff; }

section h2.section-heading{ color:#000; font-size:40px; margin:0 0 15px; }
section h3.section-subheading{
  font-size:30px; font-weight:400; font-style:italic;
  margin-bottom:75px; text-transform:none;
  font-family:Droid Serif, Helvetica Neue, Helvetica, Arial, sans-serif;
}
.text-muted{ color:#868e96 !important; }

/* =========================
   Navbar
   ========================= */
#mainNav{ padding:6px 12px; }
#mainNav .navbar-brand{ display:flex; align-items:center; margin-right:16px; }
#mainNav .navbar-brand img{ height:72px; width:auto; display:block; }

@media (min-width:992px){
  #mainNav .container-fluid{ position:relative; }
  #mainNav .navbar-collapse{
    position:absolute; left:50%; transform:translateX(-50%);
    flex-grow:0; white-space:nowrap;
  }
}
@media (max-width:991.98px){
  #mainNav .navbar-collapse{ position:static; transform:none; width:100%; }
  #mainNav .navbar-nav .nav-link{ padding:.5rem 1rem; }
}
#mainNav .navbar-nav .nav-item .nav-link{
  font-size:90%; font-weight:400; padding:.75em 0; letter-spacing:1px; color:#000;
  font-family:Montserrat, Helvetica Neue, Helvetica, Arial, sans-serif;
}
#mainNav .navbar-nav .nav-item .nav-link.active,
#mainNav .navbar-nav .nav-item .nav-link:hover{ color:var(--maroon); }
#mainNav .navbar-toggler{
  font-size:12px; right:0; padding:13px; text-transform:uppercase; color:#fff; border:0;
  background-color:var(--maroon);
  font-family:Montserrat, Helvetica Neue, Helvetica, Arial, sans-serif;
}

/* =========================
   Hero/Masthead
   ========================= */
header.masthead, .masthead{
  text-align:center; color:var(--maroon);
  background-repeat:no-repeat; background-attachment:scroll;
  background-position:center 55%; background-size:cover; min-height:60vh;
}
.masthead .intro-text{ padding-top:6rem; padding-bottom:6rem; }

/* =========================
   Team
   ========================= */
.team-member h4{ color:var(--maroon); }
.img-offset-70{ object-fit:cover; object-position:70% 50%; width:160px; height:160px; display:block; }

/* =========================
   About / Cards / Practice
   ========================= */
.section-alt{ padding:64px 0; background:var(--bg-alt); }
.container-narrow{ max-width:1120px; }
.about-heading{ color:var(--maroon); }
.about-card{ border:1px solid rgba(128,0,0,.25); border-radius:14px; }
.about-card .card-body{ padding:1.34rem 1.25rem; }

.about-row{
  display:grid; grid-template-columns:56px 1fr auto; gap:.5rem;
  padding:.4rem 0; border-bottom:1px dashed #eee;
}
.about-row:last-child{ border-bottom:0; }
.about-row .day{ font-weight:700; color:var(--maroon); }
.about-row .time{ color:var(--ink); }
.tag{
  display:inline-block; font-size:.8rem; padding:.2rem .45rem; margin-left:.35rem;
  border:1px solid rgba(128,0,0,.25); border-radius:8px; color:var(--maroon); background:#fff;
}

/* Map ratio fallback */
.ratio{ position:relative; width:100%; }
.ratio::before{ display:block; content:""; padding-top:75%; }
.ratio > *{ position:absolute; inset:0; width:100%; height:100%; }
.ratio-4x3::before{ padding-top:75%; }

/* =========================
   Schedule table
   ========================= */
.schedule-table{
  width:100%; table-layout:fixed; border:5px solid var(--maroon);
  border-collapse:collapse; word-wrap:break-word;
}
.schedule-table td, .schedule-table th{
  border:none; color:#000; background:transparent;
  padding:.65rem .75rem; vertical-align:top; overflow-wrap:anywhere; word-break:break-word;
}
.schedule-table tbody tr + tr td{ border-top:2px solid #eee; }
@media (max-width:576px){
  .schedule-table{ font-size:.95rem; border-width:3px; }
  .schedule-table th, .schedule-table td{ padding:.5rem .6rem; }
}
#schedule .container{ overflow-x:hidden; }

/* =========================
   Contact
   ========================= */
#contact .section-subheading{ overflow-wrap:anywhere; word-break:break-word; }
@media (max-width:576px){ #contact .section-subheading{ font-size:1rem; } }

/* =========================
   FAQ
   ========================= */
#faq .card{ border:none; }
#faq .card-header{ background:transparent; border:0; padding:0; }
#faq .card-header .btn-link{
  color:var(--maroon); font-weight:600; text-decoration:none; display:block;
  width:100%; text-align:left; padding:.75rem 0;
}
#faq .card-header .btn-link:hover,
#faq .card-header .btn-link:focus,
#faq .card-header .btn-link.collapsed{
  color:var(--maroon); text-decoration:underline;
}
#faq .card-body{ color:#000; }
#faq .card-body a{ color:var(--maroon); }
#faq .card-body a:hover, #faq .card-body a:focus{ text-decoration:underline; }

/* =========================
   Weapons Reel (final, consolidated)
   ========================= */
.weapon-reel{
  display:flex; gap:12px; width:100%; height:420px;
}
.weapon-panel{
  display:block; width:100%; position:relative; overflow:hidden; padding:0; cursor:pointer;
  border-radius:14px; background:#000; border:1px solid rgba(128,0,0,.25);
  flex:.55 1 0;
  transition:
    flex-grow var(--weapon-speed) var(--weapon-ease),
    flex-basis var(--weapon-speed) var(--weapon-ease),
    transform var(--weapon-speed) var(--weapon-ease),
    box-shadow var(--weapon-speed) var(--weapon-ease);
}
.weapon-panel:hover{ transform:translateY(-1px); }
.weapon-panel.active{ flex:5 1 0; box-shadow:0 8px 22px rgba(0,0,0,.2); }

.weapon-video{
  position:absolute; inset:-1px;
  width:calc(100% + 2px); height:calc(100% + 2px);
  object-fit:cover; object-position:center; display:block; background:#000;
  transition:
    transform var(--weapon-speed) var(--weapon-ease),
    opacity   var(--weapon-speed) var(--weapon-ease),
    filter    var(--weapon-speed) var(--weapon-ease);
}
.weapon-panel:not(.active) .weapon-video{
  transform:translateX(-6%) scale(1.12);
  opacity:.9; filter:brightness(.85);
}
.weapon-label{
  position:absolute; left:12px; bottom:12px; z-index:2;
  padding:.35rem .6rem; border-radius:10px;
  background:rgba(0,0,0,.55); color:#fff; font-weight:700; font-size:1rem;
}
.weapon-panel:focus-visible{ outline:3px solid var(--maroon); outline-offset:2px; }

/* Mobile: stack; equal heights; disable hover effect */
@media (max-width:768px){
  .weapon-reel{ flex-direction:column; height:auto; }
  .weapon-panel,
  .weapon-panel.active{
    flex:0 0 auto; height:300px; box-shadow:none; transform:none;
  }
  .weapon-panel:hover{ transform:none; }
}

/* =========================
   Results gallery
   ========================= */
.results-card{ position:relative; display:block; border-radius:12px; overflow:hidden; margin-bottom:8px; }
.results-img{ width:100%; height:220px; object-fit:cover; display:block; }
@media (min-width:992px){ .results-img{ height:200px; } }

.results-badge{
  position:absolute; top:10px; left:10px;
  background:rgba(128,0,0,.92); color:#fff; font-weight:700;
  padding:.2rem .5rem; border-radius:8px; font-size:.85rem;
}
.results-caption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.65));
  color:#fff; padding:.6rem .7rem;
}
.results-title{ font-weight:700; font-size:.95rem; line-height:1.1; }
.results-sub{ font-size:.8rem; opacity:.9; }

/* Filters */
.results-filters{
  display:flex; flex-wrap:wrap; justify-content:center; margin-bottom:14px;
}
@supports (gap:1rem){
  .results-filters{ gap:12px 16px; }
  .results-filters .results-filter{ margin:0; }
}
@supports not (gap:1rem){
  .results-filters .results-filter{ margin:0 16px 12px 0; }
  .results-filters .results-filter:last-child{ margin-right:0; }
}
.results-filter.active{ background:#000; color:#fff; border-color:#000; }

/* Grid spacing */
.results-row{ margin-bottom:-20px; }
.results-row > [class^="col"],
.results-row > [class*=" col"]{ padding-bottom:20px; }

/* =========================
   Results pager (UI + state classes)
   ========================= */
.results-pager{ gap:.75rem; }
.results-page-indicator{ min-width:120px; text-align:center; }
.results-pager .btn[disabled]{ opacity:.4; pointer-events:none; }

@media (min-width:768px){
  .results-pager{ justify-content:flex-end; gap:.75rem; }
  .results-page-indicator{ order:0; margin:0 .25rem; }
}

/* Big maroon circular arrows */
.results-nav{
  --size:44px;
  width:var(--size); height:var(--size);
  border-radius:999px; border:2px solid var(--maroon);
  color:var(--maroon); background:#fff;
  font-size:22px; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  transition:transform .12s ease, background-color .12s ease, color .12s ease, box-shadow .12s ease;
  padding:0; /* override .btn padding */
}
.results-nav:hover,
.results-nav:focus{
  background:var(--maroon); color:#fff; transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.results-nav[disabled]{ opacity:.4; pointer-events:none; }

/* Classes toggled by JS */
.results-item.is-filtered-out{ display:none !important; }
.results-item.is-page-hidden{ display:none !important; }

/* --- Gallery carousel --- */
.gallery-carousel { border-radius:14px; overflow:hidden; }
.gallery-carousel .carousel-item img{
  max-height:560px;                 /* adjust to taste */
  object-fit:cover; object-position:center;
}

/* Larger maroon controls */
.gallery-control .carousel-control-prev-icon,
.gallery-control .carousel-control-next-icon{
  width:3rem; height:3rem; background-size:100% 100%;
}

/* Use custom maroon SVGs so we aren't relying on filters */
.gallery-control .carousel-control-prev-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23800000' viewBox='0 0 8 8'%3E%3Cpath d='M5.5 0l-4 4 4 4 1.5-1.5L4 4l3-2.5L5.5 0z'/%3E%3C/svg%3E");
}
.gallery-control .carousel-control-next-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23800000' viewBox='0 0 8 8'%3E%3Cpath d='M2.5 0L1 1.5 4 4 1 6.5 2.5 8l4-4-4-4z'/%3E%3C/svg%3E");
}

/* Dot indicators in maroon */
.gallery-carousel .carousel-indicators li{
  background-color:rgba(128,0,0,.35);
}
.gallery-carousel .carousel-indicators .active{
  background-color:var(--maroon);
}

#schedule .btn-primary {
  background:#800000;
  border-color:#800000;
}
#schedule .btn-primary:hover,
#schedule .btn-primary:focus {
  filter:brightness(0.9);
}

/* =========================
   Utilities
   ========================= */
.about-darktext,
.about-darktext p,
.about-darktext li{ color:#000 !important; }
