/* Bootstrap overrides for Disciplined Veteran Outreach */

:root {
  /* Military-inspired palette (subtle, modern) */
  --dv-olive: #2f5d3a; /* field green */
  --dv-brass: #b08d57; /* brass */
  --dv-ink: #0f172a;
  --dv-paper: #f6f5f0;
  /* “Glass” surfaces (tweak alpha for readability vs. camo visibility) */
  --dv-surface: rgba(246, 245, 240, 0.9);
  --dv-surface-soft: rgba(246, 245, 240, 0.82);
  --dv-surface-strong: rgba(246, 245, 240, 0.94);

  --bs-body-bg: var(--dv-paper);
  --bs-body-bg-rgb: 246, 245, 240;
  --bs-body-color: var(--dv-ink);
  --bs-body-color-rgb: 15, 23, 42;
  --bs-tertiary-bg: #eeede6;

  --bs-border-color: rgba(15, 23, 42, 0.14);
  --bs-border-color-translucent: rgba(15, 23, 42, 0.12);

  --bs-primary: var(--dv-olive);
  --bs-primary-rgb: 47, 93, 58;
  --bs-link-color: var(--dv-olive);
  --bs-link-hover-color: #24472c;
  --dv-accent: var(--dv-brass);
  --bs-border-radius: 1rem;
  --bs-border-radius-lg: 1.25rem;
  --bs-border-radius-xl: 1.5rem;

  /* Watermark intensity */
  --dv-wm: 0.18;
}

.dv-body {
  background:
    /* subtle lighting overlay (avoid “dot” blobs) */
    linear-gradient(135deg, rgba(15, 23, 42, 0.04), rgba(47, 93, 58, 0.08) 45%, rgba(176, 141, 87, 0.08)),
    /* camo tile (SVG) */
    url("/static/images/camo_tile.svg"),
    var(--bs-body-bg);
  background-size: auto, 900px 900px, auto;
  background-repeat: no-repeat, repeat, no-repeat;
  background-attachment: fixed, fixed, scroll;
}

.dv-navbar {
  background-color: rgba(var(--bs-body-bg-rgb), 0.94) !important;
  backdrop-filter: blur(10px);
}

.dv-shell {
  position: relative;
  z-index: 1;
}

/* Keep “glass” only on readable surfaces (cards/headers/callouts), not as one large page block. */
.dv-shell-main::before {
  content: none;
}

.dv-pagehead {
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.12);
  border-radius: var(--bs-border-radius-xl);
  background: var(--dv-surface);
  backdrop-filter: blur(8px);
  padding: 1rem;
}
@media (min-width: 992px) {
  .dv-pagehead {
    padding: 1.25rem 1.5rem;
  }
}

.dv-card {
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.12);
  background: var(--dv-surface);
  backdrop-filter: blur(8px);
}

.dv-card .card-footer {
  border-top-color: rgba(var(--bs-body-color-rgb), 0.10) !important;
}

.dv-callout {
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.12);
  border-left-width: 4px;
  border-radius: var(--bs-border-radius-xl);
  background: var(--dv-surface-soft);
  padding: 0.9rem 1rem;
}

.dv-callout-info {
  border-left-color: rgba(47, 93, 58, 0.65);
}

.form-label {
  font-weight: 650;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.25rem rgba(47, 93, 58, 0.18);
  border-color: rgba(47, 93, 58, 0.55);
}

.dv-watermarks {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.dv-wm {
  position: absolute;
  opacity: var(--dv-wm);
  filter: grayscale(1) contrast(1.15) brightness(0.98) drop-shadow(0 10px 20px rgba(0, 0, 0, 0.12));
  mix-blend-mode: soft-light;
  width: clamp(200px, 20vw, 360px);
  max-height: 34vh;
  height: auto;
  object-fit: contain;
}

.dv-wm-secondary {
  opacity: calc(var(--dv-wm) * 0.55);
  filter: grayscale(1) contrast(1.06) brightness(0.99) blur(0.3px);
  width: clamp(150px, 14vw, 260px);
  max-height: 26vh;
}

.dv-wm-tertiary {
  opacity: calc(var(--dv-wm) * 0.4);
  filter: grayscale(1) contrast(1.03) brightness(1) blur(0.6px);
  width: clamp(120px, 11vw, 220px);
  max-height: 20vh;
}

.wm-army { top: 24px; left: 24px; transform: rotate(-10deg); }
.wm-navy { top: 24px; right: 24px; transform: rotate(10deg); }
.wm-marines { bottom: 24px; left: 24px; transform: rotate(8deg); }
.wm-airforce { bottom: 24px; right: 24px; transform: rotate(-8deg); }
.wm-spaceforce { top: 50%; left: 24px; transform: translateY(-50%) rotate(-12deg); opacity: calc(var(--dv-wm) * 0.85); width: clamp(180px, 18vw, 320px); }
.wm-coastguard { top: 50%; right: 24px; transform: translateY(-50%) rotate(12deg); opacity: calc(var(--dv-wm) * 0.85); width: clamp(180px, 18vw, 320px); }

.wm-army-2 { top: 18%; left: 22%; transform: rotate(14deg); }
.wm-navy-2 { top: 22%; right: 26%; transform: rotate(-14deg); }
.wm-marines-2 { bottom: 18%; left: 28%; transform: rotate(-10deg); }
.wm-airforce-2 { bottom: 22%; right: 22%; transform: rotate(10deg); }
.wm-spaceforce-2 { top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-18deg); opacity: 0.045; }
.wm-coastguard-2 { top: 52%; left: 72%; transform: translateY(-50%) rotate(18deg); opacity: 0.045; }

.wm-army-3 { top: 8%; left: 46%; transform: translateX(-50%) rotate(-20deg); }
.wm-navy-3 { top: 72%; left: 50%; transform: translateX(-50%) rotate(16deg); }
.wm-marines-3 { top: 38%; left: 50%; transform: translateX(-50%) rotate(-8deg); }
.wm-airforce-3 { top: 56%; left: 18%; transform: rotate(20deg); }
.wm-spaceforce-3 { top: 30%; right: 18%; transform: rotate(-22deg); }
.wm-coastguard-3 { bottom: 10%; right: 46%; transform: translateX(50%) rotate(10deg); }

@media (max-width: 768px) {
  .dv-body {
    background-attachment: scroll, scroll, scroll;
  }

  /* Keep all 6 visible on mobile, but smaller + lighter to avoid clutter */
  .dv-wm {
    opacity: calc(var(--dv-wm) * 0.7);
    width: clamp(120px, 26vw, 180px);
    max-height: 22vh;
    filter: grayscale(1) contrast(1.12) brightness(0.92);
  }
  .wm-spaceforce,
  .wm-coastguard {
    opacity: calc(var(--dv-wm) * 0.6);
  }

  .dv-wm-secondary {
    display: none;
  }

  .dv-wm-tertiary {
    display: none;
  }
}

.dv-brand-name {
  font-weight: 800;
  letter-spacing: 0.2px;
}

.dv-brand-sub {
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.22px;
  text-transform: uppercase;
  color: var(--bs-secondary-color);
}

.dv-skip-link {
  position: absolute;
  left: 1rem;
  top: 0.75rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.75rem;
  background: var(--bs-body-bg);
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.15);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-180%);
  z-index: 1031;
}
.dv-skip-link:focus {
  transform: translateY(0);
}

.dv-hero {
  position: relative;
  overflow: hidden;
  background:
    url("/static/images/camo_tile.svg"),
    linear-gradient(135deg, rgba(47, 93, 58, 0.12), rgba(15, 23, 42, 0.06)),
    var(--bs-card-bg);
  background-size: 720px 720px, auto, auto;
  background-repeat: repeat, no-repeat, no-repeat;
  background-position: 0 0, 0 0, 0 0;
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.12);
}

.dv-hero::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 6px;
  background: linear-gradient(90deg, rgba(47, 93, 58, 0.95), rgba(176, 141, 87, 0.85));
  opacity: 0.85;
  z-index: 2;
}

.dv-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--dv-surface-strong), var(--dv-surface-soft));
  backdrop-filter: blur(10px);
  z-index: 0;
}

.dv-hero > .card-body {
  position: relative;
  z-index: 1;
}

.btn-primary {
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: #24472c;
  --bs-btn-hover-border-color: #24472c;
}

.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: rgba(var(--bs-primary-rgb), 0.55);
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
}

.dv-footer {
  background: var(--dv-surface-soft);
  backdrop-filter: blur(10px);
}

.dv-excerpt {
  position: relative;
  max-height: 10rem;
  overflow: hidden;
  color: var(--bs-body-color);
}
.dv-excerpt::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3rem;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--dv-surface-strong));
}
.dv-excerpt p {
  margin-bottom: 0.5rem;
}
.dv-excerpt ul {
  margin-bottom: 0.5rem;
  padding-left: 1.25rem;
}
.dv-excerpt li {
  margin-bottom: 0.25rem;
}

.dv-prose {
  color: var(--bs-body-color);
  line-height: 1.7;
}
.dv-prose p {
  margin-bottom: 1rem;
}
.dv-prose ul {
  padding-left: 1.25rem;
  margin-bottom: 1rem;
}
.dv-prose li {
  margin-bottom: 0.25rem;
}
.dv-prose pre {
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.12);
  background: var(--bs-tertiary-bg);
  overflow-x: auto;
}
.dv-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.95em;
}

.dv-readmore.is-expanded .dv-readmore-excerpt {
  display: none;
}

.dv-readmore-toggle .dv-less {
  display: none;
}
.dv-readmore-toggle[aria-expanded="true"] .dv-more {
  display: none;
}
.dv-readmore-toggle[aria-expanded="true"] .dv-less {
  display: inline;
}

@media (prefers-reduced-motion: reduce) {
  .dv-skip-link {
    transition: none;
  }
}
