html {
  font-size: 14px;
}

:root {
  --image-overlay-shadow: 0 2px 6px rgba(0, 0, 0, .9), 0 4px 20px rgba(0, 0, 0, .55);
  --image-overlay-shadow-soft: 0 1px 4px rgba(0, 0, 0, .85), 0 2px 12px rgba(0, 0, 0, .45);
  --site-surface: var(--bs-body-bg);
  --site-text: var(--bs-body-color);
  --site-muted: var(--bs-secondary-color);
  --site-border: var(--bs-border-color);
  --site-card-bg: var(--bs-tertiary-bg);
  --site-footer-bg: #111827;
  --site-footer-text: #f3f4f6;
  --site-footer-link: #cbd5e1;
  --site-footer-link-hover: #f8fafc;
  --site-footer-divider: #374151;
}

[data-bs-theme='dark'] {
  --site-footer-bg: #0b1220;
  --site-footer-text: #e5e7eb;
  --site-footer-link: #cbd5e1;
  --site-footer-link-hover: #ffffff;
  --site-footer-divider: #334155;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background: var(--site-surface);
  color: var(--site-text);
}

.site-header {
  background: var(--site-surface);
  border-bottom: 1px solid var(--site-border);
}

.brand {
  color: var(--site-text);
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 700;
}

.header-meta {
  color: var(--site-muted);
  font-size: 0.95rem;
}

.hero-wrap {
  background: linear-gradient(120deg, #fef9c3 0%, #e0f2fe 100%);
}

[data-bs-theme='dark'] .hero-wrap {
  background: linear-gradient(120deg, #172033 0%, #1b2d42 100%);
}

.hero-title {
  font-weight: 800;
  margin: 0;
}

.hero-subtitle {
  color: var(--site-muted);
  margin-top: 8px;
}

.section-title {
  margin-bottom: 6px;
  font-size: 1.5rem;
}

.section-subtitle,
.section-description {
  color: var(--site-muted);
}

.content-card {
  background: var(--site-card-bg);
  border: 1px solid var(--site-border);
  border-radius: 14px;
  overflow: hidden;
}

.card-media {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}

.card-title {
  font-size: 1.05rem;
  margin: 0 0 6px;
}

.card-subtitle {
  color: var(--site-muted);
  margin-bottom: 8px;
}

.card-text {
  color: var(--site-muted);
}

.image-overlay-copy {
  color: #fff;
  text-shadow: var(--image-overlay-shadow);
}

.image-overlay-copy :is(h1, h2, h3, h4, h5, h6, p, div, span, small) {
  color: inherit;
}

.image-overlay-copy-soft {
  color: rgba(255, 255, 255, .82);
  text-shadow: var(--image-overlay-shadow-soft);
}

.site-footer {
  background: var(--site-footer-bg);
  color: var(--site-footer-text);
}

.site-footer a {
  color: var(--site-footer-link);
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--site-footer-link-hover);
}

.footer-bottom {
  border-top: 1px solid var(--site-footer-divider);
  padding-top: 16px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}