/* Site theme overrides — Digital Forensics Limited
   Loaded after theme.min.css; overrides Phoenix/Bootstrap tokens with a
   navy / cyan security & forensics palette and Space Grotesk + IBM Plex
   Sans type. */

:root,
[data-bs-theme="light"] {
  /* brand tokens */
  --site-navy: #0b1b2b;
  --site-navy-deep: #071018;
  --site-steel: #4f7a94;
  --site-cyan: #22c8d1;
  --site-bg: #f7f9fa;
  --site-muted: #eef2f4;
  --site-border: #dbe2e6;

  /* remap Phoenix primary to our navy so text-primary / btn-primary / border-primary / bg-primary all follow the new brand */
  --phoenix-primary: var(--site-navy);
  --phoenix-primary-rgb: 11, 27, 43;
  --phoenix-primary-text-emphasis: var(--site-navy);
  --phoenix-primary-bg-subtle: var(--site-muted);
  --phoenix-primary-border-subtle: var(--site-border);
  --phoenix-link-color: var(--site-steel);
  --phoenix-link-color-rgb: 79, 122, 148;
  --phoenix-link-hover-color: var(--site-navy);

  --phoenix-body-bg: var(--site-bg);
  --phoenix-body-bg-rgb: 247, 249, 250;
  --phoenix-emphasis-color: var(--site-navy);
  --phoenix-heading-color: var(--site-navy);
  --phoenix-body-color: #2c3640;

  --phoenix-font-sans-serif: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --site-font-display: "Space Grotesk", "IBM Plex Sans", sans-serif;
}

body {
  font-family: var(--phoenix-font-sans-serif);
  color: var(--phoenix-body-color);
}

h1, h2, h3, h4, .fs-1, .fs-2, .fs-3 {
  font-family: var(--site-font-display);
  color: var(--site-navy);
  font-weight: 700;
}

/* ---- Section kicker / divider ---- */
.eyebrow {
  display: inline-block;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--site-steel);
  margin-bottom: 0.75rem;
}

.cyan-rule {
  display: block;
  width: 3rem;
  height: 2px;
  background: var(--site-cyan);
  margin: 0.5rem 0 1.25rem;
  border: 0;
}

/* ---- Layout helpers ---- */
.site-section { padding-top: 5rem; padding-bottom: 5rem; }
.site-section-tight { padding-top: 3.5rem; padding-bottom: 3.5rem; }

.site-hero {
  background: var(--site-navy-deep);
  background-image: radial-gradient(circle at 85% 15%, rgba(34, 200, 209, 0.12), transparent 45%);
  color: #fff;
  padding: 5rem 0;
  position: relative;
}
.site-hero .eyebrow { color: var(--site-cyan); }
.site-hero h1, .site-hero h2 { color: #fff; }
.site-hero p { color: rgba(255,255,255,0.78); }

/* ---- Buttons ---- */
.btn-site-primary,
.btn-site-primary:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--site-navy);
  color: #fff;
  border: 1px solid var(--site-navy);
  padding: 0.75rem 1.75rem;
  font-weight: 600;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.btn-site-primary:hover { background: var(--site-navy-deep); border-color: var(--site-navy-deep); color: #fff; }

.btn-site-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.5);
  padding: 0.75rem 1.75rem;
  font-weight: 600;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.btn-site-outline:hover { background: rgba(255,255,255,0.1); border-color: #fff; color: #fff; }

.btn-site-outline-navy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--site-navy);
  border: 1px solid var(--site-navy);
  padding: 0.75rem 1.75rem;
  font-weight: 600;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.btn-site-outline-navy:hover { background: var(--site-navy); color: #fff; }

.btn-site-cyan {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--site-cyan);
  color: var(--site-navy-deep);
  border: 1px solid var(--site-cyan);
  padding: 0.75rem 1.75rem;
  font-weight: 600;
  border-radius: 2px;
  text-decoration: none;
  transition: filter 0.15s ease;
}
.btn-site-cyan:hover { filter: brightness(0.92); color: var(--site-navy-deep); }

/* ---- Cards ---- */
.site-card {
  background: #fff;
  border: 1px solid var(--site-border);
  border-radius: 2px;
  padding: 2rem;
  height: 100%;
  overflow: hidden;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.site-card:hover { box-shadow: 0 12px 32px rgba(7, 16, 24, 0.08); border-color: var(--site-steel); }

.site-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 1px solid var(--site-border);
  color: var(--site-cyan);
  font-size: 1.35rem;
  margin-bottom: 1.25rem;
}

/* ---- Stats strip ---- */
.site-stats {
  background: var(--site-navy);
  color: #fff;
}
.site-stats .stat-value {
  font-family: var(--site-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--site-cyan);
  margin-bottom: 0.25rem;
}
.site-stats .stat-label {
  color: rgba(255,255,255,0.75);
  font-size: 0.875rem;
}

/* ---- Dark / navy sections (Certifications, CTA bands) ---- */
.site-dark-section {
  background: var(--site-navy-deep);
  color: #fff;
}
.site-dark-section h2, .site-dark-section h3 { color: #fff; }
.site-dark-section p { color: rgba(255,255,255,0.75); }
.site-dark-section .site-card {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.12);
}
.site-dark-section .site-icon { border-color: rgba(255,255,255,0.18); }

.site-quote {
  font-family: var(--site-font-display);
  font-style: normal;
  font-size: 1.2rem;
  color: var(--site-navy);
  border-left: 3px solid var(--site-cyan);
  padding-left: 1.25rem;
}

/* ---- Badge chips (certifications / memberships) ---- */
.site-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--site-border);
  background: #fff;
  color: var(--site-navy);
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.5rem 1rem;
  border-radius: 2px;
  margin: 0 0.5rem 0.5rem 0;
}
.site-dark-section .site-badge {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.15);
  color: #fff;
}

/* ---- Header / navbar ---- */
.site-utility-bar {
  background: var(--site-navy-deep);
  color: rgba(255,255,255,0.8);
  font-size: 0.8125rem;
}
.site-utility-bar a { color: rgba(255,255,255,0.8); text-decoration: none; }
.site-utility-bar a:hover { color: var(--site-cyan); }

.site-navbar { background: #fff; border-bottom: 1px solid var(--site-border); }
.site-navbar .nav-link { color: var(--site-navy); font-weight: 600; font-size: 0.9rem; }
.site-navbar .nav-link:hover, .site-navbar .nav-link.active { color: var(--site-steel); }
.site-navbar .navbar-brand-text { font-family: var(--site-font-display); font-weight: 700; color: var(--site-navy); font-size: 1.05rem; }

/* ---- Footer ---- */
.site-footer { background: var(--site-navy-deep); color: rgba(255,255,255,0.7); }
.site-footer h5 { color: #fff; font-family: var(--site-font-display); }
.site-footer a { color: rgba(255,255,255,0.65); text-decoration: none; }
.site-footer a:hover { color: var(--site-cyan); }
.site-footer .fw-bolder { color: #fff; }
.site-footer .navbar-brand-text { font-family: var(--site-font-display); font-weight: 700; color: #fff; font-size: 1.05rem; }

/* ---- Data tables (about / services / portfolio) ---- */
.site-table {
  width: 100%;
  border-collapse: collapse;
}
.site-table th, .site-table td {
  border: 1px solid var(--site-border);
  padding: 0.75rem 1rem;
  text-align: left;
  vertical-align: top;
  font-size: 0.9rem;
}
.site-table th {
  background: var(--site-muted);
  color: var(--site-navy);
  font-weight: 700;
  white-space: nowrap;
}

/* ---- Color-only recolor for stock Phoenix/Bootstrap components ----
   Used as-is (unchanged layout) on login/forgot/reset-password and the
   whole /admin area. .btn-primary, .btn-outline-primary and the
   checkbox/radio "checked" state hardcode Phoenix's stock blue as
   local custom properties rather than referencing --phoenix-primary,
   so they need direct overrides to pick up the new navy brand color. */
.btn-primary,
.btn-phoenix-primary {
  --phoenix-btn-bg: var(--site-navy) !important;
  --phoenix-btn-border-color: var(--site-navy) !important;
  --phoenix-btn-hover-bg: var(--site-navy-deep) !important;
  --phoenix-btn-hover-border-color: var(--site-navy-deep) !important;
  --phoenix-btn-active-bg: var(--site-navy-deep) !important;
  --phoenix-btn-active-border-color: var(--site-navy-deep) !important;
  --phoenix-btn-disabled-bg: var(--site-navy) !important;
  --phoenix-btn-disabled-border-color: var(--site-navy) !important;
}

.btn-outline-primary {
  --phoenix-btn-color: var(--site-navy) !important;
  --phoenix-btn-border-color: var(--site-navy) !important;
  --phoenix-btn-hover-bg: var(--site-navy) !important;
  --phoenix-btn-hover-border-color: var(--site-navy) !important;
  --phoenix-btn-active-bg: var(--site-navy) !important;
  --phoenix-btn-active-border-color: var(--site-navy) !important;
  --phoenix-btn-disabled-color: var(--site-navy) !important;
  --phoenix-btn-disabled-border-color: var(--site-navy) !important;
}

.form-check-input:checked {
  background-color: var(--site-navy) !important;
  border-color: var(--site-navy) !important;
}

.form-check-input:focus {
  border-color: var(--site-steel) !important;
  box-shadow: 0 0 0 0.25rem rgba(79, 122, 148, 0.25) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--site-steel) !important;
  box-shadow: 0 0 0 0.25rem rgba(79, 122, 148, 0.15) !important;
}
