/* =====================================================================
   VETERANS DAY theme - 11 November
   Army olive, khaki and brass with the flag's red and blue. Dog tags hang
   from the navbar; in the hero three service members salute a waving
   flag against a warm glow, on a camouflage texture; now and then a jet
   formation flies over trailing red, white and blue smoke. A camouflage
   band and gold stars edge the footer.
   Page content is untouched. Active only while <html data-festival="veterans">.
   ===================================================================== */

/* ---------- 1. Tokens: olive, khaki, brass, flag red and blue ---------- */
html[data-festival="veterans"] {
  --bm-primary:   #2c331d;
  --bm-blue:      #4b5d23;   /* links & accents - army olive */
  --bm-blue-600:  #3c4a1c;
  --bm-gold:      #c9a227;   /* brass */
  --bm-navy-soft: #5d6b33;

  --bm-bg:        #f8f6ee;
  --bm-light:     #f2efe2;
  --bm-surface:   #efeadb;
  --bm-border:    #e1dbc6;
  --bm-muted:     #5d5f52;
  --bm-ink:       #1b1d14;

  --bm-grad-hero: radial-gradient(1000px 520px at 85% 100%, rgba(201,162,39,.22), transparent 60%),
                  radial-gradient(900px 500px at 0% 0%, rgba(75,93,35,.12), transparent 55%);
  --bm-grad-blue: linear-gradient(135deg, #3c4a1c 0%, #4b5d23 55%, #66792f 100%);   /* olive buttons */
  --bm-grad-navy: linear-gradient(160deg, #1b1f12 0%, #2c331d 55%, #3c4a1c 100%);   /* olive-black panels */
  --bm-grad-gold: linear-gradient(135deg, #c9a227 0%, #ecd27a 100%);
  --bm-grad-cta:  linear-gradient(120deg, #1b1f12 0%, #3c4a1c 45%, #1b3a7a 75%, #b22234 100%);

  --bm-shadow-blue: 0 20px 50px rgba(75,93,35,.28);
}

html[data-festival="veterans"][data-bs-theme="dark"] {
  --bm-blue:    #b5c77a;
  --bm-blue-600:#d0dd9e;
  --bm-gold:    #e6c45a;

  --bm-bg:      #0d0f0a;
  --bm-light:   #13160e;
  --bm-card:    #171a11;
  --bm-surface: #11130c;
  --bm-border:  #2a2e1f;
  --bm-ink:     #f3f2ea;
  --bm-muted:   #b0ae9c;

  --bm-grad-hero: radial-gradient(1000px 520px at 85% 100%, rgba(230,196,90,.18), transparent 60%),
                  radial-gradient(900px 500px at 0% 0%, rgba(181,199,122,.08), transparent 55%);
}

/* Headline accent: flag red, brass, olive */
html[data-festival="veterans"] .bm-text-gradient {
  background-image: linear-gradient(100deg, #b22234 0%, #b22234 25%, #c9a227 55%, #4b5d23 85%, #4b5d23 100%);
}
html[data-festival="veterans"][data-bs-theme="dark"] .bm-text-gradient {
  background-image: linear-gradient(100deg, #ff5c6e 0%, #ff5c6e 22%, #e6c45a 55%, #b5c77a 85%, #b5c77a 100%);
}

/* ---------- 2. Hard-coded blues in style.css that would clash ---------- */
html[data-festival="veterans"] .btn-bm-primary,
html[data-festival="veterans"] .bm-leadform-fields .btn-bm-primary { box-shadow: 0 10px 24px rgba(75,93,35,.32); }
html[data-festival="veterans"] .btn-bm-primary:hover { box-shadow: 0 0 0 4px rgba(201,162,39,.25), 0 18px 40px rgba(75,93,35,.4); }
html[data-festival="veterans"] .btn-bm-gold,
html[data-festival="veterans"] .btn-bm-gold:hover { color: #1b1d14; box-shadow: 0 10px 24px rgba(201,162,39,.32); }

html[data-festival="veterans"] .bm-navbar .nav-link.active { background: rgba(75,93,35,.12); }
html[data-festival="veterans"] .bm-navbar .dropdown-item:hover { background: rgba(75,93,35,.08); }
html[data-festival="veterans"][data-bs-theme="dark"] .bm-navbar { background: rgba(13,15,10,.86); }

html[data-festival="veterans"] .bm-card:hover,
html[data-festival="veterans"] .bm-step:hover,
html[data-festival="veterans"] .bm-stack-card:hover { border-color: rgba(201,162,39,.55); }

html[data-festival="veterans"] .bm-hero2-glow,
html[data-festival="veterans"] .bm-demo-hero-glow {
  background:
    radial-gradient(50% 55% at 22% 0%, rgba(75,93,35,.14), transparent 70%),
    radial-gradient(40% 45% at 85% 100%, rgba(201,162,39,.2), transparent 70%);
}
html[data-festival="veterans"] .bm-hero2-blob.b1,
html[data-festival="veterans"] .bm-demo-blob.b1 { background: radial-gradient(circle, rgba(75,93,35,.24), transparent 70%); }
html[data-festival="veterans"] .bm-hero2-blob.b2,
html[data-festival="veterans"] .bm-demo-blob.b2 { background: radial-gradient(circle, rgba(178,34,52,.16), transparent 70%); }
html[data-festival="veterans"] .bm-hero2-blob.b3 { background: radial-gradient(circle, rgba(201,162,39,.2), transparent 70%); }

html[data-festival="veterans"] .bm-ind-hero::before {
  background: radial-gradient(900px 420px at 78% 110%, rgba(201,162,39,.28), transparent 62%),
              radial-gradient(700px 380px at 8% -10%, rgba(75,93,35,.3), transparent 60%);
}
html[data-festival="veterans"] .bm-metric-band::before,
html[data-festival="veterans"] .bm-cta::before {
  background: radial-gradient(600px 300px at 90% 0%, rgba(201,162,39,.26), transparent 60%);
}

/* Icon tiles, chips and tags across the pages */
html[data-festival="veterans"] .bm-card-icon,
html[data-festival="veterans"] .bm-feature-row .fic,
html[data-festival="veterans"] .bm-req-head i,
html[data-festival="veterans"] .bm-token-arrow,
html[data-festival="veterans"] .bm-hero-badge,
html[data-festival="veterans"] .bm-solve-tag.is-answer,
html[data-festival="veterans"] .bm-doc-main code,
html[data-festival="veterans"] .bm-thanks-counter,
html[data-festival="veterans"] .bm-mega-foot:hover { background: rgba(75,93,35,.1); }
html[data-festival="veterans"][data-bs-theme="dark"] .bm-card-icon,
html[data-festival="veterans"][data-bs-theme="dark"] .bm-feature-row .fic,
html[data-festival="veterans"][data-bs-theme="dark"] .bm-hero-badge { background: rgba(181,199,122,.12); }
html[data-festival="veterans"] .bm-hero-badge,
html[data-festival="veterans"] .bm-thanks-counter { border-color: rgba(201,162,39,.45); }
html[data-festival="veterans"] .bm-card-icon { box-shadow: 0 8px 18px -8px rgba(75,93,35,.4); }
html[data-festival="veterans"] .bm-card:hover .bm-card-icon { background: linear-gradient(135deg, #1b3a7a, #b22234); color: #fff; box-shadow: 0 12px 26px -8px rgba(178,34,52,.5); }
html[data-festival="veterans"] .bm-chip:hover { background: rgba(201,162,39,.12); }
html[data-festival="veterans"] .bm-step-num,
html[data-festival="veterans"] .bm-stack-icon,
html[data-festival="veterans"] .bm-tl-dot,
html[data-festival="veterans"] .bm-doc-rail-cta { box-shadow: 0 10px 22px -10px rgba(75,93,35,.75); }
html[data-festival="veterans"] .bm-step:hover .bm-step-num { box-shadow: 0 16px 30px -10px rgba(75,93,35,.85); }

html[data-festival="veterans"] .bm-leadform-bar,
html[data-festival="veterans"] .bm-thanks-mark { background: linear-gradient(90deg, #3c4a1c, #4b5d23 40%, #1b3a7a 75%, #b22234); }

/* Live-payments map: olive dots, red and brass pings */
html[data-festival="veterans"] .bm-worldmap-canvas {
  --map-dot: rgba(75,93,35,.45); --map-line: rgba(201,162,39,.38);
  --map-3d-side: rgba(27,31,18,.92); --map-3d-top-a: #4b5d23; --map-3d-top-b: #9aab5e;
  --map-ping: #b22234; --map-ping-gold: #c9a227;
}
html[data-festival="veterans"][data-bs-theme="dark"] .bm-worldmap-canvas {
  --map-dot: rgba(181,199,122,.45); --map-line: rgba(230,196,90,.3);
  --map-3d-side: rgba(10,12,6,.95); --map-3d-top-a: #5d6b33; --map-3d-top-b: #d0dd9e;
  --map-ping: #ff5c6e; --map-ping-gold: #e6c45a; --map-ping-halo: #0d0f0a;
}

/* Home hero canvas (js/hero-bg.js): map dots, payment arcs and volume line */
html[data-festival="veterans"] .bm-hero2-map { --hero-bg-a: 201,162,39; --hero-bg-b: 120,140,70; }

::selection { background: rgba(201,162,39,.32); }

/* Footer and olive panels: warm light text */
html[data-festival="veterans"] .bm-footer,
html[data-festival="veterans"] .bm-footer-about,
html[data-festival="veterans"] .bm-footer-links a,
html[data-festival="veterans"] .bm-legal-row a,
html[data-festival="veterans"] .bm-navy-bg p { color: #e2e0d2; }
html[data-festival="veterans"] .bm-footer-links a:hover,
html[data-festival="veterans"] .bm-legal-row a:hover { color: #ecd27a; }
html[data-festival="veterans"] .bm-footer-heading { color: #ffffff; }
html[data-festival="veterans"] .bm-badge { color: #f1efe4; }
html[data-festival="veterans"] .bm-badge i { color: #e6c45a; }
html[data-festival="veterans"] .bm-footer-bottom p { color: #aaa894; }
html[data-festival="veterans"] .bm-footer-badges { border-color: rgba(255,255,255,.14); }
html[data-festival="veterans"] .bm-navy-bg { color: #f1efe4; }
html[data-festival="veterans"] .bm-cta p { color: #f1efe4; }

/* ---------- 3. Navbar: a camouflage edge and dog tags hanging from it ---------- */
html[data-festival="veterans"] .bm-navbar { border-bottom-color: rgba(75,93,35,.5); }
html[data-festival="veterans"] .bm-navbar::after {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 6px;
  pointer-events: none;
  background: url("images/camo.svg") 0 0 / 80px 80px;
  box-shadow: 0 3px 8px rgba(0,0,0,.15);
}
.bm-vt-tags { position: absolute; left: 0; right: 0; top: calc(100% + 4px); height: 0; pointer-events: none; }
.bm-vt-tag {
  position: absolute; top: 0; width: 22px; height: 56px;
  transform-origin: 50% 0;
  animation: vtSwing 4.5s ease-in-out infinite;
  filter: drop-shadow(0 3px 3px rgba(0,0,0,.25));
}
.bm-vt-tag img { display: block; width: 100%; height: 100%; }

/* Section eyebrows: a small red star */
html[data-festival="veterans"] .bm-eyebrow::before {
  width: 13px; height: 13px; background: #b22234;
  clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
html[data-festival="veterans"][data-bs-theme="dark"] .bm-eyebrow::before { background: #ff5c6e; }

/* Cards: a camouflage stripe slides along the top edge on hover. */
html[data-festival="veterans"] .bm-card { background-image: url("images/camo.svg"); background-size: 0 4px; background-repeat: no-repeat; background-position: 0 0; transition: background-size .45s ease, transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
html[data-festival="veterans"] .bm-card:hover { background-size: 100% 4px; }

/* ---------- 4. Hero: salute scene, camouflage texture ---------- */
html[data-festival="veterans"] .bm-hero2,
html[data-festival="veterans"] .bm-page-hero,
html[data-festival="veterans"] .bm-ind-hero,
html[data-festival="veterans"] .bm-demo-hero { position: relative; overflow: hidden; }

/* Hero content must sit above the scene. */
html[data-festival="veterans"] .bm-page-hero > .container,
html[data-festival="veterans"] .bm-demo-hero > .container { position: relative; z-index: 2; }

.bm-vt-camo {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("images/camo.svg") 0 0 / 220px 220px;
  opacity: .12;
  -webkit-mask-image: linear-gradient(100deg, transparent 40%, #000 85%);
  mask-image: linear-gradient(100deg, transparent 40%, #000 85%);
}
[data-bs-theme="dark"] .bm-vt-camo { opacity: .1; }

.bm-vt-salute {
  position: absolute; z-index: 1; pointer-events: none;
  right: 4%; bottom: 0; width: clamp(300px, 28vw, 430px); aspect-ratio: 380 / 212;
}
.bm-vt-salute img { position: relative; display: block; width: 100%; height: 100%; }
.bm-vt-salute .dk { display: none; }
[data-bs-theme="dark"] .bm-vt-salute .lt { display: none; }
[data-bs-theme="dark"] .bm-vt-salute .dk { display: block; }
/* Warm glow behind the scene, like the sun going down */
.bm-vt-salute::before {
  content: ""; position: absolute; left: -15%; right: -15%; bottom: -30%; height: 120%;
  background: radial-gradient(closest-side, rgba(255,196,90,.55), rgba(255,140,60,.2) 55%, transparent);
}
[data-bs-theme="light"] .bm-vt-salute::before {
  background: radial-gradient(closest-side, rgba(255,190,90,.45), rgba(255,160,80,.15) 55%, transparent);
}
/* The home hero has the lead form on the right: the scene sits in the gutter */
.bm-hero2 .bm-vt-salute { display: none; }
.bm-hero2.vt-placed .bm-vt-salute { display: block; right: auto; left: var(--vt-left); width: var(--vt-w); }

/* ---------- 5. Jet flyover (built by veterans.js) ---------- */
.bm-vt-flyover { position: absolute; left: 0; top: 0; will-change: transform; }
.bm-vt-jet { position: absolute; width: 60px; height: 38px; }
.bm-vt-jet img { position: relative; display: block; width: 100%; height: 100%; z-index: 1; }
.bm-vt-jet::before {   /* smoke trail */
  content: ""; position: absolute; right: 52px; top: 50%; height: 9px; width: 46vw; margin-top: -4.5px;
  border-radius: 9px; filter: blur(2.5px);
  background: linear-gradient(90deg, transparent, var(--smoke) 85%);
}
.bm-vt-jet.red   { --smoke: rgba(220,40,60,.85); }
.bm-vt-jet.white { --smoke: rgba(255,255,255,.95); }
.bm-vt-jet.blue  { --smoke: rgba(40,80,190,.85); }
[data-bs-theme="light"] .bm-vt-jet.white::before { filter: blur(2.5px) drop-shadow(0 0 2px rgba(0,0,0,.25)); }

/* ---------- 6. Footer: camouflage band with gold stars ---------- */
html[data-festival="veterans"] .bm-footer { position: relative; }
html[data-festival="veterans"] .bm-footer::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 14px;
  pointer-events: none;
  background: url("images/camo.svg") 0 0 / 120px 120px;
}
html[data-festival="veterans"] .bm-footer::after {
  content: "\2605  \2605  \2605  \2605  \2605"; position: absolute; left: 0; right: 0; top: 14px;
  text-align: center; font-size: 15px; letter-spacing: 6px; line-height: 22px;
  color: #e6c45a; pointer-events: none;
}

@keyframes vtSwing { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
.fx-off .bm-vt-tag { animation: none; }

/* ---------- 7. Small screens + reduced motion ---------- */
@media (max-width: 767.98px) {
  .bm-vt-salute { width: 190px; right: 2%; opacity: .9; }
  .bm-vt-tag { width: 16px; height: 41px; }
}

@media (prefers-reduced-motion: reduce) {
  .bm-vt-tag { animation: none !important; }
}
