:root {
    --db-navy: #1A3F64;
    --db-sky: #CFE6F3;
    --db-offwhite: #F8FAFC;
    --db-charcoal: #2B2E34;
}

html {
    scroll-behavior: smooth;
}

body {
    position: relative;
    color: var(--db-charcoal);
    background-color: var(--db-offwhite);
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-weight: 400;
    line-height: 1.65;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  letter-spacing: 0.2px;
}

.hero h1 {
  font-weight: 700;
}

section {
    padding: 110px 0;
}

/* Section heading sizing */
section h2 {
  font-size: clamp(2.2rem, 3.5vw, 2.75rem);
  line-height: 1.25;
  margin-bottom: 0.75rem;
  letter-spacing: 0.3px;
  font-weight: 700;
  color: #17385a; /* slightly softened navy */
}

/* Navbar */
.navbar {
    transition: background-color 0.35s ease, box-shadow 0.35s ease;
}

.navbar.transparent {
    background-color: transparent;
}

.navbar.scrolled {
    background-color: var(--db-navy);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.navbar-brand {
    font-weight: 600;
    letter-spacing: 0.6px;
    color: white;
}

.navbar.scrolled .navbar-brand,
.navbar.scrolled .nav-link {
    color: white !important;
}

.nav-link {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    margin-left: 0.75rem;
    color: white;
    opacity: 0.9;
}

.nav-link.active {
    opacity: 1;
    text-decoration: underline;
    text-underline-offset: 6px;
}

/* NAVBAR CTA BUTTON — always distinct */
.navbar .btn-dusty {
  background-color: var(--db-sky);
  color: var(--db-navy);
  border: 2px solid transparent;
}

/* When navbar is scrolled */
.navbar.scrolled .btn-dusty {
  background-color: #ffffff; /* clean contrast */
  color: var(--db-navy);
  border-color: rgba(207, 230, 243, 0.9);
}

/* Hover state (always clear) */
.navbar .btn-dusty:hover {
  background-color: var(--db-sky);
  color: var(--db-navy);
  transform: translateY(-1px);
}

/* Prevent ScrollSpy active styles from affecting CTA */
.navbar .btn-dusty.active,
.navbar .btn-dusty:focus {
  text-decoration: none;
  box-shadow: none;
}

/* CTA Button */
.btn {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.btn-dusty {
    background-color: var(--db-sky);
    color: var(--db-navy);
    font-weight: 600;
    border-radius: 50px;
    padding: 0.5rem 1.25rem;
}

.btn-dusty:hover {
    background-color: #b7d8eb;
    color: var(--db-navy);
}

/* HERO BACKGROUND IMAGE */
.hero {
    position: relative;
    background-image: url("../img/bg.jpeg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: white;
    overflow: hidden;
}

/* Navy overlay for readability */
.hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(26, 63, 100, 0.45); /* Dusty Broom navy */
    z-index: 1;
}
/* Semi-transparent hero text panel */
.hero-panel {
    position: relative;
    background: rgba(207, 230, 243, 0.65); /* Off-white w/ transparency */
    color: var(--db-charcoal);
    padding: 3rem 3.5rem;
    border-radius: 18px;

    /* Soft luxury depth */
    box-shadow: 
        0 20px 45px rgba(0, 0, 0, 0.15),
        inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}

/* Button contrast inside light panel */
.hero-panel .btn-dusty {
    background-color: var(--db-navy);
    color: white;
}

.hero-panel .btn-dusty:hover {
    background-color: #153451;
}

/* Mobile refinement */
@media (max-width: 768px) {
    .hero-panel {
        padding: 2.25rem 2rem;
        border-radius: 14px;
    }
}

/* Ensure content sits above overlays */
.hero .container {
    z-index: 3;
}

/* WHY section */
.why-section {
  background: #ffffff;
}

.why-panel {
  position: relative;
  border-radius: 18px;
  padding: 2.25rem 2.25rem;
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 16px 40px rgba(0,0,0,0.10);
}

.why-panel-accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 18px 18px 0 0;
  background-color: var(--db-navy);
  opacity: 0.9;
}

.why-list li {
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(26, 63, 100, 0.10);
}

.why-list li:last-child {
  border-bottom: 0;
}

.why-check {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(207, 230, 243, 0.85);
  color: var(--db-navy);
  font-weight: 700;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(26, 63, 100, 0.15);
}

.why-mini-proof {
  border-radius: 14px;
  padding: 1rem 1.25rem;
  background: rgba(207, 230, 243, 0.35);
  box-shadow: inset 0 0 0 1px rgba(26, 63, 100, 0.10);
}

/* HOW IT WORKS */
.process-section {
  background: linear-gradient(
    to bottom,
    rgba(207, 230, 243, 0.25),
    rgba(248, 250, 252, 1)
  );
}

.process-card {
  position: relative;
  border-radius: 18px;
  padding: 2.75rem 2rem 2.25rem;
  background: rgba(248, 250, 252, 0.95);
  box-shadow: 0 16px 40px rgba(0,0,0,0.10);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.process-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 48px rgba(0,0,0,0.14);
}

/* Step number */
.process-step {
  width: 56px;
  height: 56px;
  margin: 0 auto;
  border-radius: 999px;
  background: var(--db-navy);
  color: white;
  font-weight: 700;
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px rgba(26, 63, 100, 0.35);
}

/* Headings */
.process-card h5 {
  font-weight: 700;
  color: var(--db-navy);
}

/* Feature cards - Dusty Broom styling */
.feature-card {
  border: 0;
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(0,0,0,0.12);
}

.feature-card .card-title {
  color: var(--db-navy);
  font-weight: 700;
}

.feature-card .card-text {
  color: var(--db-charcoal);
  opacity: 0.9;
}

/* Simple icon pill */
.feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(207, 230, 243, 0.85); /* db-sky */
  color: var(--db-navy);
  font-size: 20px;
  box-shadow: inset 0 0 0 1px rgba(26, 63, 100, 0.15);
}

/* CONTACT SECTION */
.contact-section {
  background: linear-gradient(
    to bottom,
    rgba(26, 63, 100, 0.92),
    rgba(26, 63, 100, 0.92)
  );
  color: white;
}

.contact-panel,
.contact-form-card {
  border-radius: 18px;
  padding: 2.25rem;
  height: 100%;
}

/* Left panel */
.contact-panel {
  position: relative;
  background: rgba(248, 250, 252, 0.92);
  color: var(--db-charcoal);
  box-shadow: 0 18px 44px rgba(0,0,0,0.18);
}

.contact-panel-accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 18px 18px 0 0;
  background-color: var(--db-navy);
  opacity: 0.9;
}

.contact-badge {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(207, 230, 243, 0.9);
  color: var(--db-navy);
  font-weight: 800;
}

/* Direct links */
.contact-link {
  color: var(--db-navy);
  text-decoration: none;
  font-weight: 600;
}

.contact-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Right form card */
.contact-form-card {
  background: rgba(248, 250, 252, 0.22); /* lighter */
  border: 1px solid rgba(207, 230, 243, 0.35);
  box-shadow: 0 18px 44px rgba(0,0,0,0.22);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Form controls */
.contact-form-card .form-label {
  color: #ffffff;
  font-weight: 700;
}

.contact-form-card .form-control,
.contact-form-card .form-select,
.contact-form-card textarea {
  border-radius: 14px;
  border: 1px solid rgba(207, 230, 243, 0.25);
  background: rgba(255, 255, 255, 0.98);
}

.contact-form-card .form-control:focus,
.contact-form-card .form-select:focus,
.contact-form-card textarea:focus {
  border-color: rgba(207, 230, 243, 0.7);
  box-shadow: 0 0 0 0.2rem rgba(207, 230, 243, 0.25);
}

.contact-form-card .form-text,
.contact-form-card p {
  color: rgba(255, 255, 255, 0.85);
}

/* Honeypot field (anti-spam) */
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Button size polish */
.btn-lg {
  border-radius: 999px;
  padding: 0.75rem 1.5rem;
}

footer {
    background-color: var(--db-navy);
    color: white;
}
