:root{
  --brand:        #2a6f97;  /* calm blue */
  --brand-2:      #1c2f4a;  /* deep slate blue */
  --accent:       #6c757d;  /* neutral */
  --ink:          #222222;  /* text */
  --subtle-ink:   #6b6b6b;
  --bg:           #ffffff;
  --bg-alt:       #f8f9fa;
  --radius:       14px;
  --shadow:       0 6px 18px rgba(0,0,0,.06);
}

html,body{
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--ink); background: var(--bg);
}

.section-title{ font-weight:700; margin-bottom:.75rem; }

.navbar-brand{ color: var(--brand-2); }
.nav-link{ font-weight:500; }
.nav-link:hover{ color: var(--brand); }

.btn-primary{
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand-2);
  --bs-btn-hover-border-color: var(--brand-2);
  --bs-btn-focus-shadow-rgb: 28,47,74;
}

.card{ border-radius: var(--radius); box-shadow: var(--shadow); }
.card .card-title{ margin-bottom:.5rem; }

.hero { min-height: clamp(360px, 55vh, 640px); overflow: clip; }
.hero-img{ height: clamp(360px, 55vh, 640px); object-fit: cover; display:block; }
.hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 10%, rgba(0,0,0,.5) 55%, rgba(0,0,0,.8) 100%);
}
.hero-content{
  position:absolute; inset:0; display:flex; align-items:flex-end;
  padding: clamp(1rem, 3vw, 3rem) 0;
  color:#fff;
}
.hero-content .btn{ box-shadow: 0 4px 12px rgba(0,0,0,.25); }

a{ text-decoration: none; }
a:hover{ text-decoration: underline; }

.object-fit-cover{ object-fit: cover; width:100%; height:100%; }

/* Utility */
.caption { font-size:.875rem; color: var(--subtle-ink); }

/* Focus visible for accessibility */
:focus-visible{ outline: 3px solid var(--brand); outline-offset: 2px; }
.hero-overlay { z-index: 1; }
.hero-content { z-index: 2; }
