:root {
    --ofhc-red: #e93e31;
    --ofhc-cyan: #34bfff;
    --ofhc-blue: #004e9d;
    --ofhc-blue-deep: #024386;
    --ofhc-navy: #012c58;
    --ofhc-primary: var(--ofhc-blue);
    --ofhc-primary-dark: var(--ofhc-navy);
    --ofhc-accent: var(--ofhc-cyan);
    --ofhc-bg-subtle: #eef8ff;
    --ofhc-border: #d7e5f1;
    --ofhc-text: #17324d;
}

body {
    color: var(--ofhc-text);
    font-family: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 1.05rem;
    line-height: 1.6;
}

h1,
h2,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5 {
    color: var(--ofhc-navy);
    font-family: "Bebas Neue", "Arial Narrow", sans-serif;
    font-weight: 400;
    letter-spacing: 0.025em;
}

h1 {
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    line-height: 1;
}

h2 {
    font-size: clamp(2rem, 3.5vw, 3rem);
}

a {
    color: var(--ofhc-blue-deep);
}

a:hover,
a:focus {
    color: var(--ofhc-navy);
}

.navbar-ofhc {
    min-height: 6.25rem;
    border-bottom: 0.3rem solid var(--ofhc-cyan);
    background-color: #fff;
    box-shadow: 0 0.4rem 1.5rem rgba(1, 44, 88, 0.08);
}

.navbar-ofhc .navbar-brand {
    margin-right: 2rem;
    padding: 0.35rem 0;
}

.brand-logo {
    display: block;
    width: auto;
    height: 5.1rem;
}

.navbar-ofhc .nav-link {
    color: var(--ofhc-navy);
    font-weight: 700;
}

.navbar-ofhc .nav-link:hover,
.navbar-ofhc .nav-link:focus,
.navbar-ofhc .nav-link.active {
    color: var(--ofhc-blue);
    text-decoration-color: var(--ofhc-red);
    text-decoration-line: underline;
    text-decoration-thickness: 0.18rem;
    text-underline-offset: 0.45rem;
}

.navbar-ofhc .navbar-toggler {
    border-color: var(--ofhc-blue);
}

.navbar-ofhc .navbar-toggler-icon {
    filter: none;
}

.sidebar-desktop-toggle {
    border: 0;
    color: var(--ofhc-navy);
}

.sidebar-desktop-toggle:hover,
.sidebar-desktop-toggle:focus {
    color: var(--ofhc-blue);
    background-color: var(--ofhc-bg-subtle);
}

.primary-sidebar {
    --bs-offcanvas-width: min(22rem, 88vw);
    background-color: var(--ofhc-navy);
    color: #fff;
}

.primary-sidebar .offcanvas-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    background-color: #fff;
}

.primary-sidebar .offcanvas-title {
    color: var(--ofhc-navy);
    font-size: 1.35rem;
    font-weight: 700;
}

.offcanvas-brand-logo {
    display: block;
    width: auto;
    height: 4.6rem;
}

.sidebar-nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.sidebar-nav-link {
    display: block;
    padding: 0.9rem 0.75rem;
    border-left: 0.25rem solid transparent;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

.sidebar-nav-link:hover,
.sidebar-nav-link:focus,
.sidebar-nav-link.active {
    border-left-color: var(--ofhc-cyan);
    background-color: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.sidebar-submenu-toggle {
    flex: 0 0 3rem;
    align-self: stretch;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 1.35rem;
}

.sidebar-submenu-toggle span {
    display: inline-block;
    transition: transform 0.2s ease;
}

.sidebar-submenu-toggle[aria-expanded="true"] span {
    transform: rotate(180deg);
}

.sidebar-child-link {
    padding-left: 1.75rem;
    font-size: 0.95rem;
    font-weight: 400;
}

.sidebar-hours {
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.hero {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ofhc-border);
    background: linear-gradient(135deg, #fff 0%, #eef8ff 62%, #d7f3ff 100%);
    padding: clamp(2.5rem, 6vw, 5rem);
}

.hero::after {
    position: absolute;
    right: -5rem;
    bottom: -8rem;
    width: 20rem;
    height: 20rem;
    border: 2.5rem solid rgba(52, 191, 255, 0.18);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.hero > * {
    position: relative;
    z-index: 1;
}

.btn-ofhc-primary {
    border-color: var(--ofhc-blue);
    background-color: var(--ofhc-blue);
    color: #fff;
    font-weight: 700;
}

.btn-ofhc-primary:hover {
    border-color: var(--ofhc-navy);
    background-color: var(--ofhc-navy);
    color: #fff;
}

.card-service,
.card-provider,
.card-location {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ofhc-border);
    border-top: 0.3rem solid var(--ofhc-cyan);
    border-radius: 0.75rem;
    box-shadow: 0 0.6rem 1.5rem rgba(1, 44, 88, 0.07);
}

.card-service:hover,
.card-provider:hover,
.card-location:hover {
    border-top-color: var(--ofhc-red);
    box-shadow: 0 0.8rem 2rem rgba(1, 44, 88, 0.12);
    transform: translateY(-0.15rem);
}

.card-service,
.card-provider,
.card-location {
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.hours-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    font-size: 0.85rem;
}

.hours-indicator.status-open { background: #e6f4ea; color: #1e7e34; }
.hours-indicator.status-closing { background: #fff3cd; color: #8a6100; }
.hours-indicator.status-closed { background: #fbe7e7; color: #a12222; }
.hours-indicator.status-opens { background: #e9eef8; color: #1c3f8f; }

.hours-indicator .dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: currentColor;
}

.site-footer {
    border-top: 0.35rem solid var(--ofhc-red);
    background-color: var(--ofhc-navy);
    color: #eef5f4;
    padding: 2.5rem 0;
}

.site-footer a {
    color: #eef5f4;
}

.footer-logo {
    width: auto;
    height: 6rem;
    padding: 0.35rem;
    border-radius: 0.5rem;
    background: #fff;
}

.minimal-header {
    border-bottom: 0.25rem solid var(--ofhc-cyan) !important;
    box-shadow: 0 0.3rem 1rem rgba(1, 44, 88, 0.06);
}

.minimal-brand img {
    width: auto;
    height: 5.2rem;
}

.breadcrumb a {
    color: var(--ofhc-blue-deep);
    font-weight: 600;
}

.alert-info {
    --bs-alert-color: var(--ofhc-navy);
    --bs-alert-bg: #e6f7ff;
    --bs-alert-border-color: #9de2ff;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--ofhc-cyan);
    box-shadow: 0 0 0 0.25rem rgba(52, 191, 255, 0.25);
}

.form-check-input:checked {
    border-color: var(--ofhc-blue);
    background-color: var(--ofhc-blue);
}

.provider-hub-header {
    background: linear-gradient(135deg, #fff 0%, #eef8ff 100%);
}

.provider-hub-photo-wrap {
    min-height: 20rem;
}

.provider-hub-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.provider-section {
    padding: 1.5rem;
    border: 1px solid #dfe5eb;
    border-radius: 0.75rem;
    background: #fff;
}

.provider-schedule-table th:first-child {
    min-width: 7rem;
}

.provider-portal-nav .nav-link.active {
    background-color: var(--ofhc-navy);
}

.provider-portal .card {
    border-color: #dfe5eb;
}

@media (max-width: 991.98px) {
    .navbar-ofhc {
        min-height: 5rem;
    }

    .brand-logo {
        height: 4rem;
    }
}

@media (max-width: 575.98px) {
    .brand-logo,
    .minimal-brand img {
        height: 3.5rem;
    }

    .footer-brand {
        align-items: flex-start !important;
    }

    .footer-logo {
        height: 4.5rem;
    }

    .provider-hub-photo-wrap {
        min-height: auto;
    }

    .provider-hub-photo {
        max-height: 24rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .card-service,
    .card-provider,
    .card-location {
        transition: none;
    }
}

.provider-schedule-summary {
    white-space: pre-line;
    line-height: 1.8;
}
