html {
  font-size: 14px;
}

@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 {
  margin-bottom: 60px;
}

/* Corporate feel: spacing utilities */
.py-6 {
    padding-top: 4.5rem !important;
    padding-bottom: 4.5rem !important;
}

/* Optional: soften body background slightly */
body {
    background-color: #f5f6f8;
}

.brand-title {
    font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
    font-weight: 700;
    color: #000;
    letter-spacing: 0.04em;
}

/* Optional: adjust hero title spacing on small screens */
@media (max-width: 575.98px) {
    h1.display-5 {
        font-size: 2rem;
    }
}

/* Hero with port background */
.hero-port {
    position: relative;
    min-height: 620px;
    background-image: url('/images/hero-port.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Dark overlay so white text is readable */
.hero-port-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.6),
        rgba(0, 0, 0, 0.3)
    );
}

/* Make sure text sits above overlay */
.hero-port .container {
    position: relative;
    z-index: 1;
}

/* Slightly lighter kicker text in hero */
.hero-port-kicker {
    letter-spacing: .08em;
    opacity: 0.9;
}

/* On small screens, reduce hero height and font size a bit */
@media (max-width: 575.98px) {
    .hero-port {
        min-height: 320px;
    }
    .hero-port h1.display-5 {
        font-size: 2rem;
    }
}

/* About page */
.about-hero {
    background-image:
        linear-gradient(120deg, rgba(27, 60, 138, 0.9), rgba(23, 112, 187, 0.85)),
        url('/images/hero-port.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    min-height: 400px;
}

.stats-card {
    background: #fff;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    color: #1f2937; /* ensure readable text on white */
}

.stats-card .h3,
.stats-card h3 {
    color: #111827;
}

.stats-card .small {
    color: #4b5563;
}

.timeline {
    position: relative;
    padding-left: 1.5rem;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 0.5rem;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    background: #e5e7eb;
}

.timeline-item {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    align-items: flex-start;
}

.timeline-point {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #1b3c8a;
    margin-top: 0.2rem;
    box-shadow: 0 0 0 4px rgba(27, 60, 138, 0.15);
}

.timeline-item:last-child {
    margin-bottom: 0;
}
