:root {
    --brand-orange: #ff7a00;
    --brand-teal: #0f6d75;
    --brand-slate: #13202b;
    --brand-sand: #f7efe1;
    --text-main: #1d2833;
    --bg-radial-1: #fff6db;
    --bg-radial-2: #dcecf4;
    --bg-grad-start: #f8fafb;
    --bg-grad-end: #eef3f6;
    --card-bg: rgba(255, 255, 255, 0.78);
    --card-border: rgba(19, 32, 43, 0.08);
    --card-shadow: rgba(14, 33, 53, 0.08);
    --nav-bg: rgba(255, 255, 255, 0.75);
    --muted-text: #4e6170;
    --chip-bg: rgba(255, 255, 255, 0.8);
    --chip-text: #1f2e3b;
    --chip-border: rgba(19, 32, 43, 0.2);
}

html.theme-dark,
body.theme-dark {
    --text-main: #e8eef3;
    --brand-slate: #d6e2eb;
    --bg-radial-1: #1d2f3b;
    --bg-radial-2: #1f2a3d;
    --bg-grad-start: #0f1720;
    --bg-grad-end: #111a26;
    --card-bg: rgba(24, 33, 47, 0.82);
    --card-border: rgba(218, 228, 236, 0.12);
    --card-shadow: rgba(0, 0, 0, 0.35);
    --nav-bg: rgba(17, 24, 35, 0.85);
    --muted-text: #b9c6d1;
    --chip-bg: rgba(26, 36, 49, 0.92);
    --chip-text: #e5edf3;
    --chip-border: rgba(201, 216, 227, 0.25);
}

body {
    color: var(--text-main);
    font-family: "Segoe UI", "Trebuchet MS", sans-serif;
    background:
        radial-gradient(circle at 12% 15%, var(--bg-radial-1) 0%, var(--bg-radial-1) 15%, transparent 45%),
        radial-gradient(circle at 90% 0%, var(--bg-radial-2) 0%, var(--bg-radial-2) 12%, transparent 40%),
        linear-gradient(165deg, var(--bg-grad-start) 0%, var(--bg-grad-end) 100%);
    min-height: 100vh;
}

.container {
    max-width: min(1600px, 96vw) !important;
}

a {
    color: inherit;
}

.site-shell {
    -webkit-backdrop-filter: blur(1px);
    backdrop-filter: blur(1px);
}

.site-title {
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: 0.03em;
    display: inline-block;
    padding-bottom: 0.08em;
    color: var(--brand-slate);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .site-title {
        background: linear-gradient(90deg, var(--brand-teal), var(--brand-orange));
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
    }
}

.site-subtitle {
    color: #3d505f;
    font-size: clamp(1rem, 2vw, 1.3rem);
}

.glass-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 1rem;
    box-shadow: 0 10px 28px var(--card-shadow);
    height: auto !important;
}

.hero-photo {
    width: min(100%, 260px);
    border-radius: 1.2rem;
    border: 4px solid transparent;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(125deg, var(--brand-teal), var(--brand-orange)) border-box;
    box-shadow: 0 10px 30px rgba(10, 28, 44, 0.2);
}

.section-heading {
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    color: var(--brand-slate);
}

.table-shell {
    overflow-x: auto;
}

.table {
    --bs-table-color: var(--text-main);
    --bs-table-bg: transparent;
    --bs-table-striped-color: var(--text-main);
    --bs-table-striped-bg: rgba(16, 36, 52, 0.05);
    --bs-table-hover-color: var(--text-main);
    --bs-table-hover-bg: rgba(255, 122, 0, 0.09);
    --bs-table-border-color: var(--card-border);
}

.table-gradient-head {
    background: linear-gradient(90deg, var(--brand-teal), #1f4e61, var(--brand-orange));
    color: #ffffff;
}

.brand-badge {
    background: linear-gradient(120deg, #153649, #213b4c);
    color: #f7efe1;
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.badge.rounded-pill {
    border: 1px solid rgba(0, 0, 0, 0.72);
}

.usa-250-badge {
    background: linear-gradient(90deg, #b22234 0%, #f8f8f8 52%, #3c3b6e 100%);
    color: #10233a;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
}

.event-new-badge {
    background: linear-gradient(90deg, #ff8a00 0%, #ff9f1a 100%);
    color: #fff6ea;
}

.footer-note {
    color: var(--muted-text);
    font-size: 0.95rem;
}

.navbar {
    background: var(--nav-bg) !important;
    border-color: var(--card-border) !important;
}

.navbar .nav-link,
.navbar .navbar-brand {
    color: var(--text-main) !important;
}

.navbar .nav-link.active {
    color: var(--brand-orange) !important;
}

.site-announcement {
    background: linear-gradient(90deg, rgba(255, 122, 0, 0.16), rgba(15, 109, 117, 0.14));
    color: var(--brand-slate);
}

.event-schedule-box {
    min-height: 19rem;
}

.theme-toggle-btn {
    min-width: 5.2rem;
}

@media (max-width: 991.98px) {
    .navbar .navbar-nav {
        gap: 0.45rem !important;
        padding-top: 0.35rem;
        padding-bottom: 0.15rem;
    }

    .navbar .nav-link {
        padding-top: 0.4rem;
        padding-bottom: 0.4rem;
    }
}

html.theme-dark .list-group-item,
body.theme-dark .list-group-item {
    color: var(--text-main);
    border-color: rgba(218, 228, 236, 0.12);
}

html.theme-dark .text-muted,
body.theme-dark .text-muted {
    color: #a9b8c4 !important;
}

html.theme-dark .btn-outline-secondary,
body.theme-dark .btn-outline-secondary {
    color: #d8e5ef;
    border-color: rgba(216, 229, 239, 0.45);
}

html.theme-dark .table,
body.theme-dark .table {
    --bs-table-color: #e8eef3;
    --bs-table-bg: transparent;
    --bs-table-striped-color: #e8eef3;
    --bs-table-striped-bg: rgba(217, 229, 238, 0.08);
    --bs-table-hover-color: #ffffff;
    --bs-table-hover-bg: rgba(255, 122, 0, 0.2);
    --bs-table-border-color: rgba(216, 229, 239, 0.24);
}

html.theme-dark .navbar-toggler,
body.theme-dark .navbar-toggler {
    border-color: rgba(232, 238, 243, 0.65);
}

html.theme-dark .navbar-toggler-icon,
body.theme-dark .navbar-toggler-icon {
    filter: brightness(0) invert(1);
}

html.theme-dark .site-announcement,
body.theme-dark .site-announcement {
    background: linear-gradient(90deg, rgba(255, 138, 0, 0.24), rgba(15, 109, 117, 0.2));
    color: #eef5fa;
}

.hurricane-image {
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

@keyframes riseIn {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-rise {
    animation: riseIn 0.75s ease both;
}

.delay-1 {
    animation-delay: 0.08s;
}

.delay-2 {
    animation-delay: 0.16s;
}

.delay-3 {
    animation-delay: 0.24s;
}

.platform-icon {
    height: clamp(2rem, 4vw, 3.2rem);
    width: auto;
}

.listen-platforms {
    flex-wrap: wrap;
    max-width: 100%;
}

.listen-platforms > a {
    flex: 0 1 auto;
}

@media (max-width: 360px) {
    .listen-platforms {
        flex-direction: column;
    }
}

.instagram-embed-shell {
    width: 100%;
    overflow: hidden;
    border-radius: 0.8rem;
}

.instagram-embed-shell .instagram-media {
    min-width: 0 !important;
    width: 100% !important;
}

.instagram-media div[style*="color:#3897f0"] {
    display: none !important;
}

html.theme-dark .instagram-media,
body.theme-dark .instagram-media {
    background: #1a1a1a !important;
    color: #ffffff !important;
}

html.theme-dark .instagram-media div,
html.theme-dark .instagram-media p,
html.theme-dark .instagram-media span,
html.theme-dark .instagram-media a,
body.theme-dark .instagram-media div,
body.theme-dark .instagram-media p,
body.theme-dark .instagram-media span,
body.theme-dark .instagram-media a {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
}

html.theme-dark .instagram-media a,
body.theme-dark .instagram-media a {
    color: #3897f0 !important;
}

.podcast-update-item + .podcast-update-item {
    border-top: 1px solid var(--card-border);
}

.event-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.85rem;
}

.event-gallery-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.event-gallery-item {
    margin: 0;
    background: rgba(255, 255, 255, 0.28);
    border: 1px solid var(--card-border);
    border-radius: 0.85rem;
    overflow: hidden;
}

.event-gallery-item img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
}

.event-gallery-item figcaption {
    padding: 0.5rem 0.65rem;
    font-size: 0.84rem;
    color: var(--muted-text);
}

.event-photo-carousel {
    border: 1px solid var(--card-border);
    border-radius: 0.9rem;
    overflow: hidden;
}

.event-photo-carousel,
.event-photo-carousel .carousel-inner,
.event-photo-carousel .carousel-item {
    height: 100%;
}

.event-photo-carousel .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: rgba(19, 32, 43, 0.08);
}

.event-photo-carousel-small,
.event-photo-carousel-small .carousel-inner,
.event-photo-carousel-small .carousel-item {
    height: auto;
}

.event-photo-carousel-small .carousel-item img {
    height: auto;
    object-fit: contain;
    background: transparent;
}

.event-photo-carousel .carousel-control-prev,
.event-photo-carousel .carousel-control-next {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.event-photo-carousel:hover .carousel-control-prev,
.event-photo-carousel:hover .carousel-control-next,
.event-photo-carousel:focus-within .carousel-control-prev,
.event-photo-carousel:focus-within .carousel-control-next {
    opacity: 0.9;
}

.event-nav-card {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.event-nav-card .section-heading {
    font-size: 1.1rem;
}

.event-nav-card p {
    font-size: 0.96rem !important;
    line-height: 1.45;
}

.event-nav-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px var(--card-shadow);
}

.event-detail-block + .event-detail-block {
    border-top: 1px solid var(--card-border);
    padding-top: 0.85rem;
}

html.theme-dark .event-gallery-item,
body.theme-dark .event-gallery-item {
    background: rgba(15, 22, 32, 0.38);
}

html.theme-dark .accordion-item,
html.theme-dark .accordion-button,
body.theme-dark .accordion-item,
body.theme-dark .accordion-button {
    background-color: transparent;
    color: var(--text-main);
    border-color: rgba(216, 229, 239, 0.24);
}

html.theme-dark .accordion-button:not(.collapsed),
body.theme-dark .accordion-button:not(.collapsed) {
    box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 rgba(216, 229, 239, 0.24);
}

html.theme-dark .accordion-button::after,
body.theme-dark .accordion-button::after {
    filter: brightness(0) invert(1);
}

