/* Public website redesign layer: shared colors, layout, and component polish. */
:root {
    --g-primary: #0f766e;
    --g-primary-dk: #115e59;
    --g-primary-lt: #14b8a6;
    --g-navy: #172033;
    --g-navy-mid: #263348;
    --g-saffron: #d97706;
    --g-saffron-lt: #f59e0b;
    --g-green: #16a34a;
    --g-green-lt: #4ade80;
    --g-blue: #2563eb;
    --g-blue-lt: #38bdf8;
    --g-teal: #0f766e;
    --g-teal-lt: #2dd4bf;
    --g-purple: #7c3aed;
    --g-purple-lt: #a78bfa;
    --g-rose: #e11d48;
    --g-rose-lt: #fb7185;
    --g-amber: #d97706;
    --g-amber-lt: #f59e0b;
    --g-sky: #0284c7;
    --g-sky-lt: #38bdf8;
    --g-emerald: #059669;
    --g-coral: #ea580c;
    --g-bg: #f5f7fb;
    --g-surface: #ffffff;
    --g-surface-soft: #f8fbfc;
    --g-white: #ffffff;
    --g-ink: #182235;
    --g-muted: #667085;
    --g-border: #dbe3ef;
    --radius-sm: 8px;
    --radius: 10px;
    --radius-lg: 16px;
    --shadow-sm: 0 2px 8px rgba(24, 34, 53, .06);
    --shadow: 0 14px 34px rgba(24, 34, 53, .08);
    --shadow-lg: 0 22px 52px rgba(24, 34, 53, .14);
    --hn: var(--g-navy);
    --hp: var(--g-primary);
    --hw: var(--g-white);
    --hm: rgba(24,34,53,.62);
    --hb: var(--g-border);
    --hs: rgba(24,34,53,.08);
}

html {
    scroll-padding-top: 98px;
}

body {
    background: var(--g-bg);
    color: var(--g-ink);
    font-size: 15px;
    letter-spacing: 0;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
.g-section-title,
.g-home-hero-title {
    letter-spacing: 0;
}

a {
    color: var(--g-primary);
}

a:hover {
    color: var(--g-primary-dk);
}

.container {
    width: min(calc(100% - 1.5rem), 1180px);
    padding-left: 0;
    padding-right: 0;
}

.g-page {
    background:
        linear-gradient(180deg, #f8fbfc 0%, #f5f7fb 42%, #ffffff 100%);
    padding-top: 104px;
}

.g-topbar {
    background: linear-gradient(90deg, var(--g-navy) 0%, #134e4a 100%);
}

.g-topbar-cta {
    background: var(--g-amber);
    animation: none;
}

.g-topbar-cta:hover {
    background: #b45309;
}

.g-navbar {
    background: rgba(255,255,255,.94);
    border-bottom-color: rgba(219,227,239,.9);
    box-shadow: 0 8px 26px rgba(24,34,53,.05);
}

.g-brand-text strong {
    color: var(--g-navy);
}

.g-brand-tagline,
.g-drawer-nav a i {
    color: var(--g-primary);
}

.g-nav-link:hover {
    color: var(--g-navy);
    background: rgba(15,118,110,.07);
}

.g-nav-link.active {
    color: var(--g-primary);
    background: rgba(15,118,110,.1);
}

.g-nav-link.active::after {
    background: var(--g-amber);
}

.g-btn-primary,
.g-drawer-btn-primary {
    background: linear-gradient(135deg, var(--g-primary), var(--g-primary-dk));
    box-shadow: 0 10px 20px rgba(15,118,110,.2);
}

.g-btn-primary:hover,
.g-drawer-btn-primary:hover {
    background: linear-gradient(135deg, var(--g-primary-dk), #0f3f3a);
}

.g-btn-ghost-sm:hover,
.g-menu-btn:hover,
.g-drawer-btn-outline:hover {
    border-color: var(--g-primary);
    color: var(--g-primary);
}

.g-menu-btn:hover span {
    background: var(--g-primary);
}

.g-drawer-overlay {
    background: rgba(23,32,51,.58);
}

.g-drawer-panel {
    border-left: 1px solid var(--g-border);
}

.g-drawer-nav a.active {
    background: rgba(15,118,110,.1);
    color: var(--g-primary);
}

.g-drawer-logout-form {
    width: 100%;
}

.g-preloader {
    background: var(--g-navy);
}

.g-loader-logo {
    background: rgba(15,118,110,.16);
    border-color: rgba(45,212,191,.3);
}

.g-loader-logo::after {
    border-color: rgba(45,212,191,.18);
    border-top-color: var(--g-amber);
}

.g-loader-logo i {
    color: var(--g-teal-lt);
}

.g-section {
    padding: clamp(2.8rem, 5vw, 5rem) 0;
}

.g-section-head {
    margin-bottom: clamp(1.5rem, 3vw, 2.6rem);
}

.g-section-title {
    color: var(--g-navy);
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
    line-height: 1.15;
    padding-bottom: .7rem;
}

.g-section-title::after {
    width: 48px;
    height: 4px;
    background: linear-gradient(90deg, var(--g-primary), var(--g-amber));
}

.g-section-subtitle {
    color: var(--g-muted);
    line-height: 1.7;
}

.g-section-teal,
.g-section-blue,
.g-section-purple,
.g-section-amber,
.g-section-rose,
.g-section-green,
.g-section-warm,
.g-section-deep {
    background:
        linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.72)),
        linear-gradient(135deg, rgba(15,118,110,.08), rgba(217,119,6,.08) 48%, rgba(37,99,235,.06));
}

.g-hero-band {
    background:
        linear-gradient(135deg, rgba(23,32,51,.98) 0%, rgba(15,118,110,.94) 54%, rgba(217,119,6,.86) 100%);
    padding: clamp(3rem, 6vw, 4.8rem) 0 clamp(2.4rem, 5vw, 3.8rem);
    border-bottom: 1px solid rgba(255,255,255,.18);
}

.g-hero-band::before {
    background:
        linear-gradient(120deg, transparent 0 36%, rgba(255,255,255,.08) 36% 36.4%, transparent 36.4% 100%),
        linear-gradient(120deg, transparent 0 68%, rgba(255,255,255,.06) 68% 68.3%, transparent 68.3% 100%);
}

.g-hero-band::after {
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 100% 32px;
}

.g-hero-eyebrow,
.g-badge,
.g-pill {
    border-radius: 999px;
    letter-spacing: .04em;
}

.g-card,
.g-feature-card,
.g-stat-card,
.g-empty {
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(219,227,239,.95);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.g-card,
.g-feature-card,
.g-stat-card {
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.g-card:hover,
.g-feature-card:hover,
.g-stat-card:hover {
    border-color: rgba(15,118,110,.28);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.g-card {
    padding: clamp(1.1rem, 2vw, 1.65rem);
    overflow: hidden;
}

.g-card h1,
.g-card h2,
.g-card h3,
.g-card h4,
.g-section-title,
.g-hero-band h1 {
    overflow-wrap: anywhere;
}

.g-icon-box {
    border-radius: 12px;
}

.g-icon-box:hover {
    transform: none;
}

.g-icon-box-navy {
    background: var(--g-navy);
}

.g-icon-box-saffron,
.g-icon-box-teal,
.g-icon-box-blue,
.g-icon-box-purple,
.g-icon-box-green,
.g-icon-box-rose,
.g-icon-box-amber,
.g-icon-box-sky {
    background: color-mix(in srgb, currentColor 12%, white);
}

.g-icon-box-teal-solid {
    background: var(--g-teal);
    box-shadow: 0 10px 22px rgba(15,118,110,.22);
}

.g-icon-box-purple-solid {
    background: var(--g-purple);
    box-shadow: 0 10px 22px rgba(124,58,237,.2);
}

.g-icon-box-green-solid {
    background: var(--g-emerald);
    box-shadow: 0 10px 22px rgba(5,150,105,.2);
}

.g-icon-box-rose-solid {
    background: var(--g-rose);
    box-shadow: 0 10px 22px rgba(225,29,72,.18);
}

.g-btn,
.btn-gov-primary,
.btn-gov-outline,
.btn-gov-saffron,
.btn-gov-outline-white,
.btn-public-primary,
.btn-public-secondary {
    min-height: 44px;
    border-radius: 10px;
    justify-content: center;
    line-height: 1.2;
    text-align: center;
    box-shadow: none;
    white-space: normal;
}

.btn-gov-primary,
.btn-gov-saffron,
.btn-public-primary {
    background: linear-gradient(135deg, var(--g-primary), var(--g-primary-dk));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 12px 24px rgba(15,118,110,.22);
}

.btn-gov-primary:hover,
.btn-gov-saffron:hover,
.btn-public-primary:hover {
    background: linear-gradient(135deg, var(--g-primary-dk), #0f3f3a);
    border-color: transparent;
    box-shadow: 0 14px 28px rgba(15,118,110,.28);
    transform: translateY(-1px);
}

.btn-gov-outline,
.btn-public-secondary {
    background: rgba(255,255,255,.82);
    border-color: rgba(102,112,133,.25);
    color: var(--g-navy);
}

.btn-gov-outline:hover,
.btn-public-secondary:hover {
    background: var(--g-navy);
    border-color: var(--g-navy);
    color: #fff;
}

.g-badge-saffron {
    background: rgba(217,119,6,.12);
    color: #9a4f04;
}

.g-badge-teal {
    background: rgba(15,118,110,.12);
    color: var(--g-primary-dk);
}

.g-badge-blue {
    background: rgba(37,99,235,.1);
    color: #1d4ed8;
}

.g-badge-green {
    background: rgba(22,163,74,.12);
    color: #15803d;
}

.g-cta-strip {
    background:
        linear-gradient(135deg, #172033 0%, #134e4a 58%, #9a4f04 100%);
}

.g-cta-strip::before {
    background:
        linear-gradient(120deg, transparent 0 54%, rgba(255,255,255,.08) 54% 54.4%, transparent 54.4% 100%);
}

.form-control,
.form-select,
textarea.form-control {
    min-height: 46px;
    border-color: var(--g-border);
    border-radius: 10px;
    box-shadow: none;
}

textarea.form-control {
    min-height: 116px;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(15,118,110,.7);
    box-shadow: 0 0 0 .2rem rgba(15,118,110,.13);
}

.table-responsive {
    border: 1px solid var(--g-border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.table-responsive > .table {
    margin-bottom: 0;
}

.table th {
    color: var(--g-navy);
    white-space: nowrap;
}

.modal-content,
.alert {
    border-radius: var(--radius-lg);
}

.g-home-hero {
    background:
        linear-gradient(112deg, rgba(23,32,51,.98) 0%, rgba(19,78,74,.96) 48%, rgba(154,79,4,.9) 100%);
    border-bottom: 1px solid rgba(255,255,255,.18);
}

.g-home-hero::before {
    background:
        linear-gradient(120deg, transparent 0 44%, rgba(255,255,255,.08) 44% 44.4%, transparent 44.4% 100%),
        linear-gradient(120deg, transparent 0 62%, rgba(255,255,255,.05) 62% 62.25%, transparent 62.25% 100%);
}

.g-home-hero-title {
    font-family: var(--font-heading, 'Inter', system-ui, sans-serif);
    font-weight: 900;
    max-width: 12.5em;
}

.g-home-hero-title .text-warning,
.text-warning {
    color: #fbbf24 !important;
}

.g-home-hero-sub {
    max-width: 43rem;
}

.g-home-hero-highlights span,
.g-slider-award,
.g-slider-detail-row span {
    border-radius: 999px;
}

.g-stat-panel {
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.12);
    box-shadow: 0 24px 60px rgba(8,16,28,.24);
}

.g-image-slider-section {
    border-bottom: 0;
}

.g-image-slider-section .carousel-item::after {
    background:
        linear-gradient(90deg, rgba(10,18,30,.82) 0%, rgba(10,18,30,.48) 46%, rgba(10,18,30,.12) 100%),
        linear-gradient(0deg, rgba(0,0,0,.34) 0%, transparent 44%);
}

.g-slider-indicators .active {
    background: var(--g-amber);
}

.g-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.g-quick-card {
    border-radius: var(--radius-lg);
    border: 1px solid var(--g-border);
    border-top: 0;
    box-shadow: var(--shadow-sm);
}

.g-quick-card:hover {
    border-color: rgba(15,118,110,.26);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.g-notice-date {
    border-radius: 10px;
    background: linear-gradient(135deg, var(--g-primary), var(--g-primary-dk));
}

.g-notice-date span {
    color: rgba(255,255,255,.78);
}

.g-step-num {
    border-radius: 10px;
}

.g-footer {
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg, var(--g-navy) 0%, #134e4a 100%);
    color: rgba(226,232,240,.78);
}

.g-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(120deg, transparent 0 44%, rgba(255,255,255,.07) 44% 44.35%, transparent 44.35% 100%),
        linear-gradient(120deg, transparent 0 66%, rgba(255,255,255,.05) 66% 66.25%, transparent 66.25% 100%);
}

.g-footer > * {
    position: relative;
    z-index: 1;
}

.g-footer-wave path {
    fill: var(--g-navy);
}

.g-footer-body {
    background: linear-gradient(90deg, rgba(23,32,51,.98) 0%, rgba(19,78,74,.98) 100%);
}

.g-footer-bottom {
    background: rgba(7,18,32,.38);
    border-top-color: rgba(255,255,255,.1);
}

.g-footer-logo {
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(255,255,255,.32);
}

.g-footer-brand small,
.g-ft-badge i {
    color: #fbbf24;
}

.g-ft-badge,
.g-footer-social a,
.g-fc-icon {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.14);
}

.g-fc-icon,
.g-footer-credit a,
.g-footer-links a i {
    color: var(--g-primary-lt);
}

.g-footer-social a:hover {
    background: var(--g-primary);
    border-color: var(--g-primary);
    color: #fff;
}

.g-footer-security-icon,
.g-footer-license {
    color: var(--g-green-lt) !important;
}

@media (min-width: 1400px) {
    .container {
        width: min(calc(100% - 4rem), 1240px);
    }
}

@media (max-width: 1199px) {
    .g-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    html {
        scroll-padding-top: 76px;
    }

    .container {
        width: min(calc(100% - 1.15rem), 100%);
    }

    .g-page {
        padding-top: 72px;
    }

    .g-card,
    .g-feature-card,
    .g-stat-card,
    .g-empty {
        border-radius: 14px;
    }

    .row.g-4 {
        --bs-gutter-x: 1rem;
        --bs-gutter-y: 1rem;
    }
}

@media (max-width: 767px) {
    body {
        font-size: 14px;
    }

    .g-section {
        padding: 2.4rem 0;
    }

    .g-section-head {
        margin-bottom: 1.35rem;
    }

    .g-quick-grid {
        grid-template-columns: 1fr;
    }

    .g-hero-band,
    .g-home-hero {
        padding: 2.7rem 0 2.2rem;
    }

    .g-hero-band h1,
    .g-home-hero-title {
        font-size: clamp(1.8rem, 9vw, 2.35rem);
        line-height: 1.1;
    }

    .g-hero-band p,
    .g-home-hero-sub {
        font-size: .96rem;
        line-height: 1.6;
    }

    .g-btn,
    .btn-gov-primary,
    .btn-gov-outline,
    .btn-gov-saffron,
    .btn-gov-outline-white,
    .btn-public-primary,
    .btn-public-secondary {
        width: 100%;
        min-height: 46px;
        padding: .72rem 1rem;
    }

    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    .container {
        width: min(calc(100% - 1rem), 100%);
    }

    .g-card {
        padding: 1rem;
    }
}
