/* ConventionCalendar — light + dark via data-cc-appearance
   Brand: #FCFCFA · #B0CCE2 · #FECC83 · #FE4119 · #340701 · #96938C · #EEEAE7 */

body:has(.cc-site) {
    height: auto !important;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
}

.cc-site {
    --cc-near-white: #fcfcfa;
    --cc-soft-blue: #b0cce2;
    --cc-soft-peach: #fecc83;
    --cc-orange: #fe4119;
    --cc-brown: #340701;
    --cc-warm-gray: #96938c;
    --cc-light-gray: #eeeae7;

    --cc-bg: var(--cc-near-white);
    --cc-bg-elevated: #ffffff;
    --cc-bg-muted: #f4f1ee;
    --cc-bg-hero: linear-gradient(145deg, #8a867f 0%, #96938c 42%, #a8a49c 100%);
    --cc-bg-hero-glow: radial-gradient(ellipse 70% 55% at 78% 22%, rgba(254, 204, 131, 0.28), transparent 60%);
    --cc-text: #4f433d;
    --cc-text-muted: #7a736c;
    --cc-text-soft: #a39c94;
    --cc-heading: var(--cc-brown);
    --cc-border: #e6e0d9;
    --cc-border-strong: #d5cdc3;
    --cc-accent: var(--cc-orange);
    --cc-accent-hover: #e03512;
    --cc-accent-soft: rgba(254, 65, 25, 0.1);
    --cc-accent-text: #c93310;
    --cc-link: var(--cc-orange);
    --cc-link-hover: #c93310;
    --cc-on-accent: #ffffff;
    --cc-nav-bg: rgba(252, 252, 250, 0.92);
    --cc-nav-border: rgba(230, 224, 217, 0.95);
    --cc-card-shadow: 0 1px 2px rgba(52, 7, 1, 0.04), 0 10px 28px -16px rgba(52, 7, 1, 0.14);
    --cc-card-shadow-hover: 0 8px 28px -12px rgba(52, 7, 1, 0.18);
    --cc-success: #2f7d4a;
    --cc-success-bg: rgba(47, 125, 74, 0.1);
    --cc-success-border: rgba(47, 125, 74, 0.28);
    --cc-danger: #c93310;
    --cc-danger-bg: rgba(254, 65, 25, 0.1);
    --cc-danger-border: rgba(254, 65, 25, 0.28);
    --cc-info-bg: rgba(176, 204, 226, 0.28);
    --cc-info-border: rgba(176, 204, 226, 0.75);
    --cc-info-text: var(--cc-brown);
    --cc-chip-bg: rgba(176, 204, 226, 0.35);
    --cc-chip-text: var(--cc-brown);
    --cc-chip-accent-bg: rgba(254, 204, 131, 0.55);
    --cc-added-bg: rgba(176, 204, 226, 0.45);
    --cc-added-text: var(--cc-brown);
    --cc-input-bg: #ffffff;
    --cc-radius: 0.85rem;
    --cc-radius-lg: 1.25rem;
    --cc-radius-pill: 999px;
    --cc-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --cc-max: 1200px;
    --cc-header-h: 5rem;
    --cc-topbar-h: 2.35rem;
    --cc-on-hero: #fcfcfa;
    --cc-on-hero-muted: rgba(252, 252, 250, 0.9);
    --cc-glass: rgba(255, 255, 255, 0.16);
    --cc-glass-border: rgba(255, 255, 255, 0.28);
    --cc-topbar-bg: linear-gradient(90deg, #d7e8f4 0%, #b0cce2 48%, #c9dceb 100%);
    --cc-topbar-text: #24384a;
    --cc-footer-bg: #2a120c;
    --cc-footer-text: rgba(252, 252, 250, 0.72);
    --cc-footer-heading: #fcfcfa;
    --cc-footer-border: rgba(252, 252, 250, 0.1);
    --cc-control-h: 2.25rem;
    --cc-control-h-sm: 2rem;
    --cc-control-fs: 0.8125rem;
    --cc-control-fs-sm: 0.75rem;
    --cc-control-px: 0.75rem;
    --cc-control-radius: 0.6rem;
    --cc-control-border-w: 1px;
    --cc-select-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23340701' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");

    color: var(--cc-text);
    background: var(--cc-bg);
    font-family: var(--cc-font);
    font-feature-settings: "ss01" on, "cv11" on;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

html[data-cc-appearance="dark"] .cc-site,
.cc-site[data-appearance="dark"] {
    --cc-bg: #0c111b;
    --cc-bg-elevated: #141b28;
    --cc-bg-muted: #1a2333;
    --cc-bg-hero: linear-gradient(145deg, #3f3c38 0%, #4a4742 45%, #5c5852 100%);
    --cc-bg-hero-glow: radial-gradient(ellipse 70% 55% at 72% 18%, rgba(56, 189, 248, 0.22), transparent 58%);
    --cc-text: #c5cedc;
    --cc-text-muted: #8b96a8;
    --cc-text-soft: #657084;
    --cc-heading: #f2f5fa;
    --cc-border: #243044;
    --cc-border-strong: #334155;
    --cc-accent: #38bdf8;
    --cc-accent-hover: #7dd3fc;
    --cc-accent-soft: rgba(56, 189, 248, 0.14);
    --cc-accent-text: #7dd3fc;
    --cc-link: #38bdf8;
    --cc-link-hover: #7dd3fc;
    --cc-on-accent: #0c111b;
    --cc-nav-bg: rgba(12, 17, 27, 0.9);
    --cc-nav-border: rgba(36, 48, 68, 0.95);
    --cc-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.28), 0 14px 36px -16px rgba(0, 0, 0, 0.5);
    --cc-card-shadow-hover: 0 8px 28px rgba(0, 0, 0, 0.38);
    --cc-success: #34d399;
    --cc-success-bg: rgba(52, 211, 153, 0.12);
    --cc-success-border: rgba(52, 211, 153, 0.28);
    --cc-danger: #f87171;
    --cc-danger-bg: rgba(248, 113, 113, 0.14);
    --cc-danger-border: rgba(248, 113, 113, 0.32);
    --cc-info-bg: rgba(56, 189, 248, 0.12);
    --cc-info-border: rgba(56, 189, 248, 0.28);
    --cc-info-text: #bae6fd;
    --cc-chip-bg: rgba(56, 189, 248, 0.14);
    --cc-chip-text: #bae6fd;
    --cc-chip-accent-bg: rgba(125, 211, 252, 0.16);
    --cc-added-bg: rgba(56, 189, 248, 0.16);
    --cc-added-text: #bae6fd;
    --cc-input-bg: #141b28;
    --cc-on-hero: #f8fbff;
    --cc-on-hero-muted: rgba(248, 251, 255, 0.86);
    --cc-glass: rgba(255, 255, 255, 0.1);
    --cc-glass-border: rgba(255, 255, 255, 0.2);
    --cc-topbar-bg: linear-gradient(90deg, #16324a 0%, #1e4a6b 50%, #1a3d58 100%);
    --cc-topbar-text: #d7ebf8;
    --cc-footer-bg: #080c14;
    --cc-footer-text: rgba(197, 206, 220, 0.78);
    --cc-footer-heading: #f2f5fa;
    --cc-footer-border: rgba(36, 48, 68, 0.9);
    --cc-select-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c5cedc' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

.cc-site a { color: inherit; text-decoration: none; }
.cc-site a.cc-btn--primary,
.cc-site a.cc-btn--primary:hover,
.cc-site a.cc-btn--primary:focus,
.cc-site a.sr-btn--primary,
.cc-site a.sr-btn--primary:hover,
.cc-site a.sr-btn--primary:focus {
    color: var(--cc-on-accent);
}
.cc-site a.cc-btn--ghost,
.cc-site a.cc-btn--ghost:hover,
.cc-site a.sr-btn--ghost,
.cc-site a.sr-btn--ghost:hover {
    color: var(--cc-heading);
}
.cc-site a.cc-btn--soft,
.cc-site a.cc-btn--soft:hover,
.cc-site a.cc-btn--soft:focus {
    color: var(--cc-brown);
}
.cc-site a.cc-btn--on-hero,
.cc-site a.cc-btn--on-hero:hover,
.cc-site a.cc-btn--on-hero:focus {
    color: var(--cc-brown);
}
.cc-site a.cc-btn--on-hero-ghost,
.cc-site a.cc-btn--on-hero-ghost:hover,
.cc-site a.cc-btn--on-hero-ghost:focus {
    color: var(--cc-on-hero);
}
.cc-site .cc-footer a.cc-btn--primary,
.cc-site .cc-footer a.cc-btn--primary:hover,
.cc-site .cc-footer a.cc-btn--primary:focus {
    color: var(--cc-on-accent);
}
.cc-site .cc-footer a.cc-btn--ghost,
.cc-site .cc-footer a.cc-btn--ghost:hover,
.cc-site .cc-footer a.cc-btn--ghost:focus {
    color: #fcfcfa;
}

.cc-site .cc-panel__prose a,
.cc-site .cc-detail-list a,
.cc-site .cc-event__contacts a,
.cc-site .cc-form-aside__empty a,
.cc-site .cc-notice a,
.cc-site .cc-empty a:not(.cc-btn),
.cc-site .cc-link-more {
    color: var(--cc-link);
}

.cc-site .cc-panel__prose a:hover,
.cc-site .cc-detail-list a:hover,
.cc-site .cc-event__contacts a:hover,
.cc-site .cc-form-aside__empty a:hover,
.cc-site .cc-notice a:hover,
.cc-site .cc-empty a:not(.cc-btn):hover,
.cc-site .cc-link-more:hover {
    color: var(--cc-link-hover);
}

.cc-site img { max-width: 100%; height: auto; }

.cc-container,
.container {
    width: min(100% - 2rem, var(--cc-max));
    margin-inline: auto;
}

/* ——— Top bar ——— */
.cc-topbar {
    background: var(--cc-topbar-bg);
    color: var(--cc-topbar-text);
    min-height: var(--cc-topbar-h);
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 500;
}

.cc-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: min(100% - 2rem, var(--cc-max));
    margin-inline: auto;
    padding: 0.45rem 0;
}

.cc-topbar__message {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cc-topbar__message span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-topbar__link {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-weight: 700;
    color: inherit;
    opacity: 0.92;
    white-space: nowrap;
}

.cc-topbar__link:hover { opacity: 1; text-decoration: underline; }

/* ——— Header ——— */
.cc-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: linear-gradient(90deg, #ffffff 0%, #fbfbfa 45%, #f7f6f4 100%);
    backdrop-filter: blur(18px) saturate(1.3);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border-bottom: 0;
    min-height: var(--cc-header-h);
    overflow: visible;
}

.cc-header::after {
    content: "";
    display: block;
    height: 3px;
    width: 100%;
    background: url("../img/cc-bar.png") center / 100% 100% no-repeat;
    pointer-events: none;
}

html[data-cc-appearance="dark"] .cc-header,
.cc-site[data-appearance="dark"] .cc-header {
    background: linear-gradient(90deg, #151b27 0%, #121824 45%, #0f141f 100%);
}

.cc-header.is-mega-open::after {
    opacity: 0;
}

.cc-header__inner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    height: var(--cc-header-h);
}

.cc-brand {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
    color: var(--cc-heading);
    font-weight: 800;
}

.cc-brand:hover { color: var(--cc-heading); }
.cc-brand__name span { color: var(--cc-accent); }
.cc-brand__mark { border-radius: 0.4rem; }

.cc-brand__logo {
    display: block;
    width: 190px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.cc-brand__logo--sm { height: 1.85rem; width: auto; }
.cc-brand__logo--footer {
    width: min(100%, 180px);
    max-width: 180px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

@media (min-width: 992px) {
    .cc-brand__logo--footer {
        width: 240px;
        max-width: 240px;
    }
}

/* Header logo — small devices (nav collapses; free space for actions) */
@media (max-width: 991.98px) {
    .cc-site {
        --cc-header-h: 3.75rem;
    }

    .cc-brand__logo {
        width: 124px;
    }

    .cc-header__inner {
        gap: 0.65rem;
    }
}

@media (max-width: 639px) {
    .cc-site {
        --cc-header-h: 3.25rem;
    }

    .cc-brand__logo {
        width: 100px;
    }

    .cc-brand__logo--sm {
        height: 1.45rem;
    }

    .cc-auth-brand img,
    .cc-auth-brand .cc-brand__logo,
    .cc-brand__logo--auth {
        width: 132px;
    }
}

@media (max-width: 380px) {
    .cc-brand__logo {
        width: 88px;
    }
}

html[data-cc-appearance="dark"] .cc-brand__logo,
.cc-site[data-appearance="dark"] .cc-brand__logo {
    filter: brightness(0) invert(1);
    opacity: 0.96;
}

html[data-cc-appearance="dark"] .cc-brand__logo--footer,
.cc-site[data-appearance="dark"] .cc-brand__logo--footer {
    filter: brightness(0) invert(1);
}

.cc-nav {
    display: none;
    align-items: center;
    gap: 0.15rem;
    margin-left: 0.5rem;
}

.cc-nav__item {
    position: relative;
    display: flex;
    align-items: center;
}

.cc-site .cc-nav a.cc-nav__link,
.cc-site .cc-nav button.cc-nav__link {
    position: relative;
    color: var(--cc-text-muted);
    text-decoration: none;
    font-weight: 400;
    font-size: 0.9rem;
    letter-spacing: -0.01em;
    padding: 0.65rem 0.8rem;
    border-radius: 0.55rem;
    transition: color 0.15s ease, background 0.15s ease;
    border: 0;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    line-height: 1.2;
    appearance: none;
    -webkit-appearance: none;
}

.cc-site .cc-nav a.cc-nav__link:hover,
.cc-site .cc-nav button.cc-nav__link:hover,
.cc-site .cc-nav .cc-nav__item.is-open > .cc-nav__link {
    color: var(--cc-heading);
    background: rgba(255, 255, 255, 0.55);
}

.cc-site .cc-nav a.cc-nav__link.is-active,
.cc-site .cc-nav button.cc-nav__link.is-active {
    color: var(--cc-heading);
}

.cc-site .cc-nav a.cc-nav__link.is-active::after,
.cc-site .cc-nav button.cc-nav__link.is-active::after,
.cc-site .cc-nav .cc-nav__item.is-open > .cc-nav__link::after {
    content: "";
    position: absolute;
    left: 0.85rem;
    right: 0.85rem;
    bottom: 0.2rem;
    height: 2px;
    border-radius: 2px;
    background: var(--cc-accent);
}

.cc-nav__caret {
    font-size: 0.7rem;
    color: inherit;
    opacity: 0.75;
    transition: transform 0.18s ease;
}

.cc-nav__item.is-open .cc-nav__caret {
    transform: rotate(180deg);
}

/* ——— Explore mega menu (Cvent-style full width) ——— */
.cc-mega {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 120;
    background: var(--cc-bg-elevated);
    border-bottom: 1px solid var(--cc-border);
    box-shadow: 0 28px 48px -28px rgba(52, 7, 1, 0.28);
    padding: 1.75rem 0 1.85rem;
    transform-origin: top center;
    animation: cc-mega-in 0.18s ease;
}

.cc-mega[hidden] {
    display: none !important;
}

@keyframes cc-mega-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.cc-mega__inner {
    width: min(100% - 2rem, var(--cc-max));
    margin-inline: auto;
}

.cc-mega__cols {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem 1.75rem;
}

.cc-mega__heading {
    margin: 0 0 0.85rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}

.cc-mega__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.2rem;
}

.cc-mega__list--compact {
    gap: 0.05rem;
}

.cc-mega__link {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.55rem 0.55rem;
    border-radius: 0.65rem;
    color: var(--cc-heading);
    transition: background 0.15s ease;
}

.cc-mega__link:hover {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}

.cc-mega__link strong {
    display: block;
    font-size: 0.92rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.25;
}

.cc-mega__link small {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.78rem;
    color: var(--cc-text-muted);
    font-weight: 400;
    line-height: 1.35;
}

.cc-mega__link-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.55rem;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: rgba(176, 204, 226, 0.35);
    color: var(--cc-brown);
    font-size: 0.95rem;
}

html[data-cc-appearance="dark"] .cc-mega__link-icon,
.cc-site[data-appearance="dark"] .cc-mega__link-icon {
    background: rgba(56, 189, 248, 0.14);
    color: #bae6fd;
}

.cc-mega__link--row {
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.cc-mega__link--row em {
    font-style: normal;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--cc-text-muted);
    background: var(--cc-bg-muted);
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
    min-width: 1.6rem;
    text-align: center;
}

.cc-mega__more {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.75rem;
    padding: 0.35rem 0.55rem;
    font-size: 0.875rem;
    font-weight: 650;
    color: var(--cc-link);
    border-radius: 0.45rem;
}

.cc-mega__more:hover {
    color: var(--cc-link-hover);
    background: var(--cc-accent-soft);
}

.cc-mega__empty {
    margin: 0;
    color: var(--cc-text-muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.cc-mega__plan {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cc-border);
}

.cc-mega__col--feature {
    display: flex;
}

.cc-mega__feature {
    width: 100%;
    border-radius: 1rem;
    padding: 1.25rem 1.2rem;
    background:
        linear-gradient(160deg, rgba(176, 204, 226, 0.42) 0%, rgba(254, 204, 131, 0.28) 55%, rgba(238, 234, 231, 0.9) 100%);
    border: 1px solid rgba(176, 204, 226, 0.55);
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

html[data-cc-appearance="dark"] .cc-mega__feature,
.cc-site[data-appearance="dark"] .cc-mega__feature {
    background: linear-gradient(160deg, rgba(56, 189, 248, 0.14) 0%, rgba(14, 165, 233, 0.08) 55%, rgba(20, 27, 40, 0.95) 100%);
    border-color: rgba(56, 189, 248, 0.22);
}

.cc-mega__feature-label {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cc-accent-text);
}

.cc-mega__feature strong {
    font-size: 1.15rem;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    line-height: 1.25;
}

.cc-mega__feature p {
    margin: 0;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
    line-height: 1.55;
    flex: 1;
}

.cc-mega__feature .cc-btn {
    margin-top: 0.35rem;
    align-self: flex-start;
}

.cc-drawer__group {
    display: grid;
    gap: 0.15rem;
}

.cc-drawer__group-toggle {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.55rem;
    border: 0;
    background: transparent;
    color: var(--cc-heading);
    font-weight: 650;
    font-size: 0.9375rem;
    padding: 0.72rem 0.8rem;
    border-radius: 0.75rem;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    letter-spacing: -0.01em;
    transition: background 0.15s ease, color 0.15s ease;
}

.cc-drawer__group-toggle:hover,
.cc-drawer__group-toggle.is-active {
    background: var(--cc-bg-muted);
}

.cc-drawer__group-label {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-width: 0;
    flex: 1 1 auto;
}

.cc-drawer__group-label > i {
    width: 1.15rem;
    flex: 0 0 auto;
    margin-top: 0.12rem;
    font-size: 1.05rem;
    color: var(--cc-text-muted);
    text-align: center;
    transition: color 0.15s ease;
}

.cc-drawer__group-toggle:hover .cc-drawer__group-label > i,
.cc-drawer__group-toggle.is-active .cc-drawer__group-label > i,
.cc-drawer__group.is-open .cc-drawer__group-label > i {
    color: var(--cc-accent);
}

.cc-drawer__group-caret {
    flex: 0 0 auto;
    margin-top: 0.28rem;
    font-size: 0.78rem;
    color: var(--cc-text-muted);
    transition: transform 0.2s ease, color 0.15s ease;
}

.cc-drawer__group.is-open .cc-drawer__group-caret {
    transform: rotate(180deg);
    color: var(--cc-heading);
}

.cc-drawer__group-panel {
    display: grid;
    gap: 0.1rem;
    margin: 0.1rem 0 0.25rem 1.05rem;
    padding: 0.2rem 0 0.2rem 0.85rem;
    border-left: 2px solid color-mix(in srgb, var(--cc-border) 70%, var(--cc-accent) 30%);
}

.cc-drawer__group-panel[hidden] {
    display: none !important;
}

.cc-drawer__sublink {
    display: grid;
    gap: 0.1rem;
    color: var(--cc-heading);
    text-decoration: none;
    padding: 0.52rem 0.7rem;
    border-radius: 0.55rem;
    letter-spacing: -0.01em;
    transition: background 0.15s ease, color 0.15s ease;
}

.cc-drawer__sublink .cc-drawer__link-title {
    font-size: 0.875rem;
    font-weight: 650;
}

.cc-drawer__sublink .cc-drawer__link-sub {
    font-size: 0.68rem;
}

.cc-drawer__sublink:hover {
    background: var(--cc-bg-muted);
}

.cc-drawer__sublink.is-active {
    background: color-mix(in srgb, var(--cc-accent-soft) 80%, transparent);
}

.cc-drawer__sublink.is-active .cc-drawer__link-title {
    color: var(--cc-accent-text);
}

.cc-drawer__link.is-active .cc-drawer__link-sub,
.cc-drawer__group-toggle.is-active .cc-drawer__link-sub {
    color: color-mix(in srgb, var(--cc-accent-text) 72%, var(--cc-text-muted));
}

.cc-header__actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.cc-auth-links {
    display: none;
    align-items: center;
    gap: 0.4rem;
}

.cc-auth-icon {
    display: inline-grid;
}

.cc-icon-btn {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: var(--cc-radius-pill);
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    color: var(--cc-heading);
    display: inline-grid;
    place-items: center;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.cc-icon-btn:hover {
    border-color: var(--cc-border-strong);
    background: var(--cc-bg-muted);
    color: var(--cc-accent);
}

.cc-icon-btn--sm { width: 2rem; height: 2rem; font-size: 0.85rem; }

[data-cc-theme-toggle] .bi-sun-fill { display: none; }
html[data-cc-appearance="dark"] [data-cc-theme-toggle] .bi-moon-stars-fill { display: none; }
html[data-cc-appearance="dark"] [data-cc-theme-toggle] .bi-sun-fill { display: inline-block; }

/* ——— Buttons ——— */
.cc-btn,
.cc-site .sr-btn,
.cc-site a.sr-btn,
.cc-site button.sr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    box-sizing: border-box;
    width: auto;
    height: auto;
    min-height: 0;
    max-height: none;
    flex: 0 0 auto;
    align-self: center;
    border-radius: 0.65rem;
    border: 1px solid transparent;
    font-weight: 650;
    font-size: 0.875rem;
    letter-spacing: -0.01em;
    padding: 0.55rem 1.05rem;
    text-decoration: none;
    cursor: pointer;
    line-height: 1.2;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.cc-btn:active,
.cc-site .sr-btn:active { transform: translateY(1px); }

.cc-btn--primary,
.cc-site .sr-btn--primary {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--cc-accent) 86%, #fff) 0%,
        var(--cc-accent) 42%,
        color-mix(in srgb, var(--cc-accent) 88%, #000) 100%
    );
    color: var(--cc-on-accent);
    border-color: color-mix(in srgb, var(--cc-accent) 72%, #1a0502);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 1px 2px rgba(52, 7, 1, 0.08),
        0 10px 22px -12px color-mix(in srgb, var(--cc-accent) 70%, transparent);
    font-weight: 700;
}

.cc-btn--primary:hover,
.cc-site .sr-btn--primary:hover {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--cc-accent) 78%, #fff) 0%,
        var(--cc-accent-hover) 55%,
        color-mix(in srgb, var(--cc-accent-hover) 90%, #000) 100%
    );
    color: var(--cc-on-accent);
    border-color: color-mix(in srgb, var(--cc-accent-hover) 78%, #1a0502);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        0 2px 4px rgba(52, 7, 1, 0.1),
        0 14px 28px -12px color-mix(in srgb, var(--cc-accent) 75%, transparent);
}

.cc-btn--primary:focus-visible,
.cc-site .sr-btn--primary:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--cc-accent) 55%, transparent);
    outline-offset: 2px;
}

.cc-btn--primary:active,
.cc-site .sr-btn--primary:active {
    box-shadow:
        inset 0 1px 2px rgba(52, 7, 1, 0.18),
        0 1px 2px rgba(52, 7, 1, 0.06);
}

.cc-btn--ghost,
.cc-site .sr-btn--ghost {
    background: transparent;
    border-color: var(--cc-border);
    color: var(--cc-heading);
}

.cc-btn--ghost:hover,
.cc-site .sr-btn--ghost:hover {
    background: var(--cc-bg-muted);
    border-color: var(--cc-border-strong);
    color: var(--cc-heading);
}

.cc-btn.is-subscribed,
.cc-btn.is-subscribed:hover {
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, #dbeafe 30%);
    border-color: color-mix(in srgb, var(--cc-border) 50%, #93c5fd 50%);
    color: var(--cc-heading);
    cursor: default;
}

.cc-btn.is-liked,
.cc-btn.is-liked:hover {
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, #fecdd3 30%);
    border-color: color-mix(in srgb, var(--cc-border) 50%, #fda4af 50%);
    color: #be123c;
}

.cc-btn.is-favorited,
.cc-btn.is-favorited:hover {
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, #fde68a 30%);
    border-color: color-mix(in srgb, var(--cc-border) 50%, #fbbf24 50%);
    color: var(--cc-brown);
}

.cc-btn--soft {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--cc-soft-peach) 78%, #fff) 0%,
        var(--cc-soft-peach) 38%,
        color-mix(in srgb, var(--cc-soft-peach) 62%, #e8a23a) 100%
    );
    border-color: color-mix(in srgb, #c47a12 42%, var(--cc-border));
    color: var(--cc-brown);
    font-weight: 700;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 1px 2px rgba(52, 7, 1, 0.06),
        0 10px 22px -14px rgba(232, 162, 58, 0.55);
}

.cc-btn--soft:hover {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--cc-soft-peach) 55%, #fff) 0%,
        color-mix(in srgb, var(--cc-soft-peach) 70%, #e8a23a) 48%,
        color-mix(in srgb, #d99220 70%, var(--cc-soft-peach)) 100%
    );
    border-color: color-mix(in srgb, #a8640c 48%, var(--cc-border));
    color: var(--cc-brown);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 2px 4px rgba(52, 7, 1, 0.08),
        0 14px 28px -12px rgba(232, 162, 58, 0.62);
}

.cc-btn--soft:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--cc-soft-peach) 70%, #c47a12);
    outline-offset: 2px;
}

.cc-btn--soft:active {
    box-shadow:
        inset 0 1px 2px rgba(52, 7, 1, 0.12),
        0 1px 2px rgba(52, 7, 1, 0.05);
}

.cc-btn--on-hero,
a.cc-btn--on-hero {
    background: var(--cc-near-white);
    color: var(--cc-brown);
    box-shadow: 0 8px 22px -12px rgba(0, 0, 0, 0.35);
}

.cc-btn--on-hero:hover,
a.cc-btn--on-hero:hover {
    background: #fff;
    color: var(--cc-brown);
}

.cc-btn--on-hero-ghost,
a.cc-btn--on-hero-ghost {
    background: var(--cc-glass);
    border-color: var(--cc-glass-border);
    color: var(--cc-on-hero);
}

.cc-btn--on-hero-ghost:hover,
a.cc-btn--on-hero-ghost:hover {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.cc-btn--sm,
.cc-site .sr-btn--sm { padding: 0.42rem 0.85rem; font-size: 0.8125rem; border-radius: 0.55rem; }

.cc-btn--lg,
.cc-site .sr-btn--lg {
    gap: 0.5rem;
    min-height: 2.85rem;
    padding: 0.72rem 1.35rem;
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    border-radius: 0.8rem;
}

.cc-btn--lg.cc-btn--soft,
.cc-btn--lg.cc-btn--primary {
    padding-inline: 1.45rem;
}

.cc-btn--lg i {
    font-size: 1em;
    line-height: 1;
    opacity: 0.95;
}
.cc-btn--block,
.cc-site .sr-btn--block {
    width: 100%;
    align-self: stretch;
    white-space: normal;
}

.cc-btn--added {
    background: var(--cc-added-bg);
    color: var(--cc-added-text);
    border-color: transparent;
}

.cc-btn--added:hover { filter: brightness(0.98); color: var(--cc-added-text); }

.cc-btn--danger {
    background: transparent;
    border-color: var(--cc-danger-border);
    color: var(--cc-danger);
}

.cc-btn--danger:hover { background: var(--cc-danger-bg); color: var(--cc-danger); }

/* ——— Account ——— */
.cc-account { position: relative; }

.cc-account__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    border-radius: var(--cc-radius-pill);
    padding: 0.2rem 0.55rem 0.2rem 0.2rem;
    cursor: pointer;
    color: var(--cc-heading);
    max-width: 11rem;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.cc-account__toggle:hover,
.cc-account__toggle[aria-expanded="true"] {
    border-color: var(--cc-border-strong);
    background: var(--cc-bg-muted);
}

.cc-account__avatar {
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    object-fit: cover;
    background: var(--cc-bg-muted);
}

.cc-account__avatar--lg { width: 2.4rem; height: 2.4rem; }

.cc-account__meta {
    display: none;
    min-width: 0;
}

.cc-account__name {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 6.5rem;
}

.cc-account__caret {
    font-size: 0.7rem;
    color: var(--cc-text-muted);
    margin-right: 0.15rem;
}

.cc-account__menu {
    width: min(17rem, 90vw);
    padding: 0.5rem;
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow-hover);
    margin-top: 0.25rem !important;
}

.cc-account__menu-head {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    padding: 0.55rem 0.5rem 0.75rem;
    border-bottom: 1px solid var(--cc-border);
    margin-bottom: 0.35rem;
}

.cc-account__menu-head strong {
    display: block;
    color: var(--cc-heading);
    font-size: 0.9rem;
}

.cc-account__menu-head span {
    display: block;
    color: var(--cc-text-muted);
    font-size: 0.75rem;
    word-break: break-all;
}

.cc-account__menu-list { display: grid; gap: 0.1rem; }

.cc-account__item {
    display: flex !important;
    align-items: center;
    gap: 0.6rem;
    border-radius: 0.55rem;
    padding: 0.55rem 0.6rem !important;
    color: var(--cc-heading) !important;
    font-weight: 600;
    font-size: 0.875rem;
}

.cc-account__item i { color: var(--cc-text-muted); font-size: 1rem; }
.cc-account__item:hover,
.cc-account__item:focus {
    background: var(--cc-bg-muted) !important;
}

.cc-account__menu-foot {
    margin-top: 0.35rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--cc-border);
}

.cc-account__signout {
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 0;
    background: transparent;
    color: var(--cc-danger);
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.55rem 0.6rem;
    border-radius: 0.55rem;
    cursor: pointer;
}

.cc-account__signout:hover { background: var(--cc-danger-bg); }

/* ——— Cart ——— */
.cc-cart { position: relative; }

.cc-cart__toggle { position: relative; }

.cc-cart__badge {
    position: absolute;
    top: -0.15rem;
    right: -0.15rem;
    min-width: 1.15rem;
    height: 1.15rem;
    border-radius: 999px;
    background: var(--cc-accent);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    display: grid;
    place-items: center;
    padding: 0 0.25rem;
}

html[data-cc-appearance="dark"] .cc-cart__badge,
.cc-site[data-appearance="dark"] .cc-cart__badge {
    color: #0c111b;
}

.cc-cart__badge.is-empty { display: none; }

.cc-cart__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.5rem);
    width: min(22rem, 92vw);
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    box-shadow: var(--cc-card-shadow-hover);
    padding: 0.85rem;
    z-index: 50;
}

/*
 * Mobile/tablet: cart sits left of theme/auth/menu. Anchoring the panel to the
 * cart button (right:0) pushes a ~92vw panel off the left edge. Anchor to the
 * full actions cluster / viewport instead.
 */
@media (max-width: 991.98px) {
    .cc-header__actions {
        position: relative;
    }

    .cc-cart {
        position: static;
    }

    .cc-cart__panel {
        position: absolute;
        top: calc(100% + 0.4rem);
        right: 0;
        left: auto;
        width: min(22rem, calc(100vw - 1.25rem));
        max-width: calc(100vw - 1.25rem);
        z-index: 120;
    }
}

@media (max-width: 639px) {
    .cc-cart__panel {
        position: fixed;
        top: calc(var(--cc-header-h, 3.25rem) + 0.45rem);
        left: max(0.65rem, env(safe-area-inset-left, 0px));
        right: max(0.65rem, env(safe-area-inset-right, 0px));
        width: auto;
        max-width: none;
        max-height: min(70vh, calc(100dvh - var(--cc-header-h, 3.25rem) - 1.25rem));
        display: flex;
        flex-direction: column;
        overflow: hidden;
        box-shadow:
            0 1px 2px rgba(52, 7, 1, 0.06),
            0 18px 40px -16px rgba(52, 7, 1, 0.28);
    }

    .cc-cart__panel[hidden] {
        display: none !important;
    }

    .cc-cart__items {
        flex: 1 1 auto;
        max-height: none;
        min-height: 0;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }
}

.cc-cart__head { display: flex; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.75rem; }
.cc-cart__head strong { display: block; color: var(--cc-heading); }
.cc-cart__head span { color: var(--cc-text-muted); font-size: 0.8rem; }
.cc-cart__items { max-height: 16rem; overflow: auto; display: grid; gap: 0.55rem; }
.cc-cart__foot {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--cc-border);
    display: grid;
    gap: 0.45rem;
}

.cc-cart-item { display: grid; grid-template-columns: 2.5rem 1fr auto; gap: 0.55rem; align-items: center; }
.cc-cart-item__thumb {
    width: 2.5rem; height: 2.5rem; border-radius: 0.55rem; overflow: hidden;
    background: var(--cc-bg-muted); display: grid; place-items: center;
}
.cc-cart-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cc-cart-item__thumb--city { color: var(--cc-accent); }
.cc-cart-item__name { color: var(--cc-heading); font-weight: 700; text-decoration: none; font-size: 0.88rem; }
.cc-cart-item__name:hover { color: var(--cc-link); }
.cc-cart-item__loc { margin: 0; font-size: 0.75rem; color: var(--cc-text-muted); }
.cc-cart-item__remove { border: 0; background: transparent; color: var(--cc-text-muted); cursor: pointer; }
.cc-cart-item__remove:hover { color: var(--cc-danger); }
.cc-cart-empty { text-align: center; padding: 1rem 0.5rem; color: var(--cc-text-muted); }
.cc-cart-empty__actions { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; margin-top: 0.65rem; }

/* ——— Drawer ——— */
.cc-drawer {
    position: fixed;
    inset: 0;
    z-index: 200;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.22s ease, visibility 0.22s ease;
    visibility: hidden;
}

.cc-drawer.is-open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}

.cc-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(52, 7, 1, 0.5);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.cc-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(21.5rem, 92vw);
    height: 100%;
    max-height: 100dvh;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding:
        max(0.85rem, env(safe-area-inset-top, 0px))
        max(0.9rem, env(safe-area-inset-right, 0px))
        max(0.9rem, env(safe-area-inset-bottom, 0px))
        0.9rem;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--cc-bg-elevated) 92%, var(--cc-soft-peach) 8%) 0%, var(--cc-bg-elevated) 9rem),
        var(--cc-bg-elevated);
    border-left: 1px solid color-mix(in srgb, var(--cc-border) 80%, transparent);
    box-shadow:
        -18px 0 48px rgba(52, 7, 1, 0.16),
        -2px 0 0 color-mix(in srgb, var(--cc-accent) 12%, transparent);
    transform: translateX(100%);
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    outline: none;
}

.cc-drawer.is-open .cc-drawer__panel {
    transform: none;
}

.cc-drawer__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
    padding-bottom: 0.95rem;
    margin-bottom: 0.35rem;
    border-bottom: 1px solid var(--cc-border);
}

.cc-drawer__close {
    flex-shrink: 0;
}

.cc-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0.55rem 0 0.75rem;
    -webkit-overflow-scrolling: touch;
}

.cc-drawer__nav {
    display: grid;
    gap: 0.2rem;
}

.cc-drawer__link {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    color: var(--cc-heading);
    text-decoration: none;
    font-weight: 650;
    font-size: 0.9375rem;
    letter-spacing: -0.01em;
    padding: 0.72rem 0.8rem;
    border-radius: 0.75rem;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.cc-drawer__link > i {
    width: 1.15rem;
    flex: 0 0 auto;
    margin-top: 0.12rem;
    font-size: 1.05rem;
    color: var(--cc-text-muted);
    text-align: center;
    transition: color 0.15s ease;
}

.cc-drawer__link-text {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
    flex: 1 1 auto;
}

.cc-drawer__link-title {
    display: block;
    font-weight: 700;
    font-size: 0.9375rem;
    letter-spacing: -0.015em;
    color: inherit;
    line-height: 1.25;
}

.cc-drawer__link-sub {
    display: block;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0;
    color: var(--cc-text-muted);
}

.cc-drawer__link:hover {
    background: var(--cc-bg-muted);
}

.cc-drawer__link:hover > i {
    color: var(--cc-accent);
}

.cc-drawer__link.is-active {
    background: color-mix(in srgb, var(--cc-accent-soft) 88%, transparent);
    color: var(--cc-accent-text);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cc-accent) 18%, transparent);
}

.cc-drawer__link.is-active > i {
    color: var(--cc-accent);
}

.cc-drawer__count {
    margin-left: auto;
    background: var(--cc-accent);
    color: #fff;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.12rem 0.42rem;
}

.cc-drawer__foot {
    flex-shrink: 0;
    display: grid;
    gap: 0.7rem;
    margin-top: auto;
    padding-top: 0.95rem;
    border-top: 1px solid var(--cc-border);
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--cc-bg-muted) 45%, transparent));
}

.cc-drawer__user {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.65rem 0.7rem;
    border-radius: 0.85rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg);
    color: inherit;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.cc-drawer__user:hover {
    background: var(--cc-bg-muted);
    border-color: var(--cc-border-strong);
}

.cc-drawer__user-avatar {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--cc-bg-muted);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--cc-border) 70%, transparent);
}

.cc-drawer__user-meta {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.cc-drawer__user-meta strong {
    font-size: 0.9rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    color: var(--cc-heading);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cc-drawer__user-meta span {
    font-size: 0.75rem;
    color: var(--cc-text-muted);
    font-weight: 550;
}

.cc-drawer__user > .bi-chevron-right {
    flex-shrink: 0;
    font-size: 0.85rem;
    color: var(--cc-text-muted);
}

.cc-drawer__auth {
    display: grid;
    gap: 0.45rem;
}

.cc-menu-btn__bars { display: grid; gap: 3px; }
.cc-menu-btn__bars span { width: 1rem; height: 2px; background: currentColor; border-radius: 2px; }

/* ——— Main / Footer ——— */
.cc-main { flex: 1; }

.cc-footer {
    margin-top: auto;
    background: var(--cc-footer-bg);
    color: var(--cc-footer-text);
    padding: 3.25rem 0 1.35rem;
}

.cc-footer__top {
    display: grid;
    gap: 2.25rem;
}

.cc-footer__brand p {
    margin: 1rem 0 0;
    max-width: 26rem;
    line-height: 1.65;
}

.cc-footer__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.25rem;
}

.cc-footer__cta .cc-btn--primary {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 1px 2px rgba(0, 0, 0, 0.18),
        0 12px 26px -12px rgba(254, 65, 25, 0.65);
}

.cc-footer__cta .cc-btn--ghost {
    background: rgba(252, 252, 250, 0.08);
    border-color: rgba(252, 252, 250, 0.38);
    color: #fcfcfa;
}

.cc-footer__cta .cc-btn--ghost:hover {
    background: rgba(252, 252, 250, 0.16);
    border-color: rgba(252, 252, 250, 0.55);
    color: #fff;
}

.cc-footer__cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.cc-footer h4 {
    color: var(--cc-footer-heading);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 0.85rem;
    font-weight: 800;
}

.cc-footer__links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.5rem;
}

.cc-footer__links a {
    color: var(--cc-footer-text);
    text-decoration: none;
    font-weight: 500;
}

.cc-footer__links a:hover { color: #fff; }

.cc-footer__bottom {
    margin-top: 2.5rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--cc-footer-border);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    font-size: 0.82rem;
}

.cc-footer__note { opacity: 0.8; }

/* Scroll to top */
.cc-scroll-top {
    position: fixed;
    right: 1.15rem;
    /* Sit above Joy chat FAB (52px + gap) */
    bottom: 5.25rem;
    z-index: 40;
    width: 2.85rem;
    height: 2.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cc-border-strong);
    border-radius: var(--cc-radius-pill);
    background: var(--cc-bg-elevated);
    color: var(--cc-heading);
    box-shadow: var(--cc-card-shadow-hover);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.55rem) scale(0.94);
    transition:
        opacity 0.22s ease,
        transform 0.22s ease,
        visibility 0.22s ease,
        background 0.18s ease,
        color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}
.cc-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.cc-scroll-top:hover {
    background: var(--cc-accent);
    border-color: var(--cc-accent);
    color: var(--cc-on-accent);
    box-shadow: 0 10px 28px -12px rgba(254, 65, 25, 0.55);
}
.cc-scroll-top:focus-visible {
    outline: 2px solid var(--cc-accent);
    outline-offset: 3px;
}
.cc-scroll-top i {
    font-size: 1.15rem;
    line-height: 1;
}
html[data-cc-appearance="dark"] .cc-scroll-top,
.cc-site[data-appearance="dark"] .cc-scroll-top {
    background: var(--cc-bg-elevated);
    border-color: var(--cc-border-strong);
    color: var(--cc-heading);
}
html[data-cc-appearance="dark"] .cc-scroll-top:hover,
.cc-site[data-appearance="dark"] .cc-scroll-top:hover {
    background: var(--cc-accent);
    border-color: var(--cc-accent);
    color: var(--cc-on-accent);
}
@media (min-width: 960px) {
    .cc-scroll-top {
        right: 1.5rem;
        bottom: 5.5rem;
        width: 3rem;
        height: 3rem;
    }
}

/* ——— Homepage hero ——— */
.cc-hero-home {
    position: relative;
    overflow: hidden;
    background: var(--cc-bg-hero);
    color: var(--cc-on-hero);
    padding: 3.5rem 0 3.75rem;
}

.cc-hero-home__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.cc-hero-home__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.14) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(ellipse 85% 75% at 50% 40%, #000 25%, transparent 78%);
    opacity: 0.85;
}

/* Light riding the hero grid lines */
.cc-hero-home__grid-light {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    -webkit-mask-image:
        linear-gradient(#000 1px, transparent 1px),
        linear-gradient(90deg, #000 1px, transparent 1px);
    mask-image:
        linear-gradient(#000 1px, transparent 1px),
        linear-gradient(90deg, #000 1px, transparent 1px);
    -webkit-mask-size: 42px 42px, 42px 42px;
    mask-size: 42px 42px, 42px 42px;
    -webkit-mask-repeat: repeat, repeat;
    mask-repeat: repeat, repeat;
    clip-path: ellipse(85% 75% at 50% 40%);
    opacity: 0.9;
}

.cc-hero-home__grid-light::before,
.cc-hero-home__grid-light::after {
    content: "";
    position: absolute;
    inset: -25%;
    background-repeat: no-repeat;
    will-change: transform;
}

.cc-hero-home__grid-light::before {
    background-image: linear-gradient(
        90deg,
        transparent 0%,
        transparent 40%,
        rgba(214, 220, 226, 0.14) 46%,
        rgba(214, 220, 226, 0.62) 50%,
        rgba(254, 204, 131, 0.48) 52%,
        rgba(214, 220, 226, 0.18) 56%,
        transparent 62%,
        transparent 100%
    );
    filter: drop-shadow(0 0 5px rgba(214, 220, 226, 0.28));
    animation: cc-hero-home-light-x 9s ease-in-out infinite;
}

.cc-hero-home__grid-light::after {
    background-image: linear-gradient(
        180deg,
        transparent 0%,
        transparent 40%,
        rgba(200, 214, 224, 0.12) 46%,
        rgba(200, 214, 224, 0.52) 50%,
        rgba(176, 204, 226, 0.42) 53%,
        rgba(200, 214, 224, 0.14) 58%,
        transparent 64%,
        transparent 100%
    );
    filter: drop-shadow(0 0 4px rgba(176, 204, 226, 0.28));
    animation: cc-hero-home-light-y 12s ease-in-out infinite;
    animation-delay: -4s;
    opacity: 0.8;
}

@keyframes cc-hero-home-light-x {
    0% { transform: translate3d(-35%, 0, 0); }
    100% { transform: translate3d(35%, 0, 0); }
}

@keyframes cc-hero-home-light-y {
    0% { transform: translate3d(0, -35%, 0); }
    100% { transform: translate3d(0, 35%, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .cc-hero-home__grid-light::before,
    .cc-hero-home__grid-light::after {
        animation: none;
        opacity: 0;
    }
}

.cc-hero-home__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(8px);
    animation: cc-float 12s ease-in-out infinite;
}

.cc-hero-home__orb--a {
    width: 22rem;
    height: 22rem;
    top: -8rem;
    right: -4rem;
    background: radial-gradient(circle, rgba(254, 204, 131, 0.45), transparent 68%);
}

.cc-hero-home__orb--b {
    width: 18rem;
    height: 18rem;
    bottom: -7rem;
    left: -3rem;
    background: radial-gradient(circle, rgba(176, 204, 226, 0.4), transparent 70%);
    animation-delay: -4s;
}

.cc-hero-home__orb--c {
    width: 12rem;
    height: 12rem;
    top: 35%;
    left: 42%;
    background: radial-gradient(circle, rgba(254, 65, 25, 0.18), transparent 70%);
    animation-delay: -7s;
}

@keyframes cc-float {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(12px, -18px, 0) scale(1.05); }
}

.cc-hero-home__inner {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 2.25rem;
    align-items: center;
}

.cc-hero-home__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 1rem;
    padding: 0.35rem 0.8rem;
    border-radius: var(--cc-radius-pill);
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cc-hero-home h1 {
    margin: 0 0 1rem;
    font-size: clamp(2.05rem, 4.4vw, 3.15rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    font-weight: 800;
    color: var(--cc-on-hero);
    max-width: 14ch;
}

.cc-hero-home__lead {
    margin: 0 0 1.5rem;
    font-size: 1.05rem;
    color: var(--cc-on-hero-muted);
    max-width: 34rem;
    line-height: 1.65;
}

.cc-hero-home__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 1.75rem;
}

.cc-hero-home__stats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    max-width: 28rem;
}

.cc-hero-home__stats li {
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(6px);
}

.cc-hero-home__stats strong {
    display: block;
    font-size: 0.92rem;
    color: #fff;
    margin-bottom: 0.15rem;
}

.cc-hero-home__stats span {
    display: block;
    font-size: 0.75rem;
    color: var(--cc-on-hero-muted);
}

a.cc-hero-home__visual,
.cc-hero-home__visual {
    display: none;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    justify-self: end;
    width: 100%;
    max-width: none;
}

.cc-hero-home__frame {
    position: relative;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
    transform: scale(1.12);
    transform-origin: center right;
    transition: transform 0.25s ease;
}

a.cc-hero-home__visual:hover .cc-hero-home__frame,
a.cc-hero-home__visual:focus-visible .cc-hero-home__frame {
    transform: scale(1.16);
}

a.cc-hero-home__visual:focus-visible {
    outline: 2px solid rgba(254, 204, 131, 0.85);
    outline-offset: 6px;
    border-radius: 0.75rem;
}

.cc-hero-home__frame img {
    display: block;
    width: 100%;
    height: auto;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
}

/* Legacy hero (other pages may reuse) */
.cc-hero {
    background: var(--cc-bg-hero);
    color: var(--cc-on-hero);
    padding: 3.5rem 0 3rem;
    position: relative;
    overflow: hidden;
}
.cc-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--cc-bg-hero-glow);
    pointer-events: none;
}
.cc-hero__grid { position: relative; z-index: 1; display: grid; gap: 2rem; align-items: center; }
.cc-eyebrow {
    display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 0.82rem;
    background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.22);
    padding: 0.35rem 0.75rem; border-radius: 999px; margin-bottom: 1rem;
}
.cc-hero h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; font-weight: 800; margin: 0 0 1rem; color: var(--cc-on-hero); }
.cc-hero h1 em { font-style: normal; color: var(--cc-soft-peach); }
.cc-hero__lead { font-size: 1.05rem; color: var(--cc-on-hero-muted); max-width: 34rem; margin: 0 0 1.5rem; }
.cc-hero__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.cc-hero__panel { display: none; }
.cc-hero__panel-card {
    background: var(--cc-glass); border: 1px solid var(--cc-glass-border);
    border-radius: var(--cc-radius-lg); padding: 1.5rem; backdrop-filter: blur(8px);
}
.cc-hero__panel-label { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.8; margin-bottom: 0.35rem; }
.cc-hero__panel-card strong { display: block; font-size: 1.25rem; margin-bottom: 0.5rem; }
.cc-hero__panel-card p { margin: 0; opacity: 0.85; }

/* ——— Sections ——— */
.cc-section { padding: 3.25rem 0; }
.cc-section--muted { background: var(--cc-bg-muted); }

.cc-section__label {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cc-accent-text);
    margin-bottom: 0.45rem;
}

.cc-section__head { margin-bottom: 1.75rem; }
.cc-section__head--center { text-align: center; max-width: 40rem; margin-inline: auto; margin-bottom: 1.75rem; }
.cc-section__head--row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}
.cc-section__head h2,
.cc-section h2 {
    color: var(--cc-heading);
    margin: 0 0 0.4rem;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    letter-spacing: -0.02em;
    font-weight: 800;
}
.cc-section__lead { color: var(--cc-text-muted); margin: 0; max-width: 36rem; }

.cc-link-more {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 1.25rem;
    color: var(--cc-link);
    font-weight: 700;
    text-decoration: none;
    font-size: 0.9rem;
}
.cc-link-more--sm { margin-top: 0.85rem; font-size: 0.85rem; }
.cc-link-more:hover { color: var(--cc-link-hover); }

/* Featured destination tiles */
.cc-dest-featured {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.cc-dest-tile {
    position: relative;
    display: block;
    border-radius: 1rem;
    overflow: hidden;
    aspect-ratio: 3 / 2;
    background: var(--cc-bg-muted);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 14px 30px -18px rgba(52, 7, 1, 0.18);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.cc-dest-tile:hover {
    box-shadow:
        0 12px 20px -14px rgba(52, 7, 1, 0.14),
        0 24px 44px -18px rgba(52, 7, 1, 0.24);
}

.cc-dest-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.cc-dest-tile:hover img { transform: scale(1.06); }

.cc-dest-tile__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(52, 7, 1, 0.05) 20%, rgba(52, 7, 1, 0.78) 100%);
}

.cc-dest-tile__body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1rem 1.05rem 1.05rem;
    color: #fff;
    display: grid;
    gap: 0.15rem;
}

.cc-dest-tile__name {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    width: fit-content;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1.5px;
    transition: background-size 0.28s ease;
}

.cc-dest-tile:hover .cc-dest-tile__name {
    background-size: 100% 1.5px;
}

.cc-dest-tile__loc {
    font-size: 0.8rem;
    opacity: 0.88;
}

.cc-dest-tile__stat {
    margin-top: 0.35rem;
    display: inline-flex;
    width: fit-content;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Destination portal spotlight: compact 4-up */
.cc-dest-featured--portal {
    gap: 0.75rem;
}

.cc-dest-featured--portal .cc-dest-tile {
    aspect-ratio: 3 / 2;
    border-radius: 0.85rem;
}

.cc-dest-featured--portal .cc-dest-tile__body {
    padding: 0.75rem 0.85rem 0.85rem;
}

.cc-dest-featured--portal .cc-dest-tile__name {
    font-size: 0.95rem;
}

.cc-dest-featured--portal .cc-dest-tile__loc {
    font-size: 0.74rem;
}

.cc-dest-featured--portal .cc-dest-tile__stat {
    margin-top: 0.25rem;
    font-size: 0.68rem;
    padding: 0.18rem 0.45rem;
}

@media (max-width: 639px) {
    .cc-dest-featured {
        gap: 0.75rem;
    }

    .cc-dest-tile {
        aspect-ratio: 16 / 9;
        border-radius: 0.85rem;
    }

    .cc-dest-tile__body {
        padding: 0.75rem 0.8rem 0.8rem;
        gap: 0.1rem;
    }

    .cc-dest-tile__name {
        font-size: 0.95rem;
    }

    .cc-dest-tile__loc {
        font-size: 0.74rem;
    }

    .cc-dest-tile__stat {
        margin-top: 0.25rem;
        font-size: 0.66rem;
        padding: 0.16rem 0.45rem;
    }

    .cc-dest-featured--portal {
        gap: 0.6rem;
    }

    .cc-dest-featured--portal .cc-dest-tile {
        aspect-ratio: 16 / 9;
        border-radius: 0.75rem;
    }

    .cc-dest-featured--portal .cc-dest-tile__body {
        padding: 0.6rem 0.7rem 0.7rem;
    }

    .cc-dest-featured--portal .cc-dest-tile__name {
        font-size: 0.88rem;
    }

    .cc-dest-featured--portal .cc-dest-tile__loc {
        font-size: 0.7rem;
    }
}

/* Home split layout */
.cc-home-split {
    display: grid;
    gap: 1.75rem;
}

.cc-home-split__aside {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.cc-home-split__main .cc-section__head--row {
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1.15rem;
}

.cc-home-split__main .cc-section__head--row .cc-section__lead {
    margin-bottom: 0;
}

.cc-feed--home-events {
    gap: 0.9rem;
}

.cc-feed--home-events.cc-feed--grid {
    grid-template-columns: 1fr;
}
@media (min-width: 640px) {
    .cc-feed--home-events.cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 960px) {
    .cc-feed--home-events.cc-feed--grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.cc-feed--home-events.cc-feed--list {
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

.cc-feed--home-events .cc-card--event {
    border-radius: 0.9rem;
}

/* Home featured events: slightly shorter media + tighter body */
.cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__media {
    aspect-ratio: 16 / 8;
}

.cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__body {
    padding: 0.75rem 0.85rem 0.85rem;
    gap: 0.28rem;
}

.cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__title {
    font-size: 0.84rem;
}

.cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__meta {
    font-size: 0.78rem;
}

.cc-feed--home-events .cc-card--event.cc-card--list .cc-card__media {
    width: 12rem;
    flex: 0 0 12rem;
    aspect-ratio: 16 / 9;
    min-height: 0;
}

.cc-feed--home-events .cc-card--event.cc-card--list .cc-card__body {
    padding: 0.7rem 0.85rem;
}

@media (max-width: 639px) {
    .cc-feed--home-events {
        gap: 0.75rem;
    }

    .cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__media {
        aspect-ratio: 16 / 7.5;
    }

    .cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__body {
        padding: 0.65rem 0.75rem 0.75rem;
    }

    .cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__title {
        font-size: 0.8rem;
    }

    .cc-feed--home-events .cc-card--event.cc-card--grid .cc-card__meta {
        font-size: 0.74rem;
    }

    .cc-feed--home-events .cc-card--event.cc-card--list .cc-card__media {
        width: 7.5rem;
        flex: 0 0 7.5rem;
        aspect-ratio: 4 / 3;
    }
}

.cc-event-list {
    display: grid;
    gap: 0.65rem;
}

.cc-event-row {
    display: grid;
    grid-template-columns: 5.5rem 1fr auto;
    gap: 0.9rem;
    align-items: center;
    padding: 0.7rem;
    border-radius: 0.9rem;
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    box-shadow: var(--cc-card-shadow);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.cc-event-row:hover {
    border-color: var(--cc-border-strong);
    box-shadow: var(--cc-card-shadow-hover);
    transform: translateY(-1px);
}

.cc-event-row__media {
    width: 5.5rem;
    height: 4rem;
    border-radius: 0.65rem;
    overflow: hidden;
    background: var(--cc-bg-muted);
}

.cc-event-row__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cc-event-row__body {
    min-width: 0;
    display: grid;
    gap: 0.3rem;
}

.cc-event-row__title {
    color: var(--cc-heading);
    font-weight: 750;
    font-size: 0.98rem;
    letter-spacing: -0.015em;
    line-height: 1.3;
}

.cc-event-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
    color: var(--cc-text-muted);
    font-size: 0.8rem;
}

.cc-event-row__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.cc-event-row__go {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    color: var(--cc-text-muted);
    background: var(--cc-bg-muted);
    transition: background 0.15s ease, color 0.15s ease;
}

.cc-event-row:hover .cc-event-row__go {
    background: var(--cc-accent-soft);
    color: var(--cc-accent);
}

.cc-aside-panel {
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    padding: 1.15rem;
    box-shadow: var(--cc-card-shadow);
}

.cc-aside-panel h3 {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    color: var(--cc-heading);
    letter-spacing: -0.01em;
}

.cc-aside-panel p {
    margin: 0 0 1rem;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
}

.cc-aside-panel--accent {
    background: linear-gradient(160deg, rgba(176, 204, 226, 0.28), rgba(254, 204, 131, 0.18));
    border-color: rgba(176, 204, 226, 0.55);
}

html[data-cc-appearance="dark"] .cc-aside-panel--accent,
.cc-site[data-appearance="dark"] .cc-aside-panel--accent {
    background: linear-gradient(160deg, rgba(56, 189, 248, 0.12), rgba(14, 165, 233, 0.08));
    border-color: rgba(56, 189, 248, 0.22);
}

.cc-rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
}

.cc-rank-item {
    display: grid;
    grid-template-columns: 1.5rem 1fr auto;
    gap: 0.55rem;
    align-items: center;
    padding: 0.45rem 0.35rem;
    border-radius: 0.55rem;
    transition: background 0.15s ease;
}

.cc-rank-item:hover { background: var(--cc-bg-muted); }

.cc-rank-item__n {
    font-weight: 800;
    font-size: 0.8rem;
    color: var(--cc-accent-text);
}

.cc-rank-item__body strong {
    display: block;
    color: var(--cc-heading);
    font-size: 0.88rem;
}

.cc-rank-item__body span {
    display: block;
    color: var(--cc-text-muted);
    font-size: 0.75rem;
}

.cc-rank-item__count {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--cc-text-muted);
}

.cc-ad-slot {
    border-radius: var(--cc-radius);
    border: 1px dashed var(--cc-border-strong);
    background: var(--cc-bg-elevated);
    padding: 0.85rem;
}

.cc-ad-slot__label {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cc-text-soft);
    margin-bottom: 0.55rem;
}

.cc-ad-slot__box {
    min-height: 7.5rem;
    border-radius: 0.65rem;
    background:
        linear-gradient(135deg, rgba(176, 204, 226, 0.22), rgba(238, 234, 231, 0.65)),
        repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(150, 147, 140, 0.05) 8px, rgba(150, 147, 140, 0.05) 16px);
    display: grid;
    place-content: center;
    text-align: center;
    gap: 0.25rem;
    padding: 1rem;
}

.cc-ad-slot__box strong {
    color: var(--cc-heading);
    font-size: 0.92rem;
}

.cc-ad-slot__box span {
    color: var(--cc-text-muted);
    font-size: 0.8rem;
    max-width: 14rem;
}

/* How it works */
.cc-how {
    position: relative;
    overflow: hidden;
    padding: 4rem 0 4.25rem;
    background: linear-gradient(145deg, #cfc9c0 0%, #dbd5cc 42%, #e6e0d7 100%);
    color: var(--cc-text);
}
.cc-how__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.cc-how__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.55) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.55) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(ellipse 85% 75% at 50% 40%, #000 25%, transparent 78%);
    opacity: 0.95;
}
html[data-cc-appearance="dark"] .cc-how,
.cc-site[data-appearance="dark"] .cc-how {
    background: linear-gradient(145deg, #4a4742 0%, #56524c 45%, #635e57 100%);
    color: var(--cc-on-hero);
}
.cc-how__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(8px);
    animation: cc-float 12s ease-in-out infinite;
}
.cc-how__orb--a {
    width: 22rem;
    height: 22rem;
    top: -8rem;
    right: -4rem;
    background: radial-gradient(circle, rgba(254, 204, 131, 0.45), transparent 68%);
}
.cc-how__orb--b {
    width: 18rem;
    height: 18rem;
    bottom: -7rem;
    left: -3rem;
    background: radial-gradient(circle, rgba(254, 65, 25, 0.18), transparent 70%);
    animation-delay: -4s;
}
.cc-how__inner { position: relative; z-index: 1; }
.cc-how__head { max-width: 38rem; margin-bottom: 2.25rem; }
.cc-how__head .cc-section__label {
    color: var(--cc-accent-text);
}
.cc-how__head h2 {
    color: var(--cc-heading);
}
.cc-how__title-accent {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.72em;
    font-weight: 750;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--cc-accent-text);
    text-shadow: none;
}
html[data-cc-appearance="dark"] .cc-how__head .cc-section__label,
.cc-site[data-appearance="dark"] .cc-how__head .cc-section__label {
    color: var(--cc-soft-peach);
}
html[data-cc-appearance="dark"] .cc-how__head h2,
.cc-site[data-appearance="dark"] .cc-how__head h2 {
    color: var(--cc-on-hero);
}
html[data-cc-appearance="dark"] .cc-how__title-accent,
.cc-site[data-appearance="dark"] .cc-how__title-accent {
    color: #fecc83;
    text-shadow: 0 0 28px rgba(254, 204, 131, 0.35);
}
.cc-how__lead {
    margin: 0.65rem auto 0;
    max-width: 34rem;
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--cc-text-muted);
}
.cc-how__lead strong {
    color: var(--cc-heading);
    font-weight: 700;
}
html[data-cc-appearance="dark"] .cc-how__lead,
.cc-site[data-appearance="dark"] .cc-how__lead {
    color: var(--cc-on-hero-muted);
}
html[data-cc-appearance="dark"] .cc-how__lead strong,
.cc-site[data-appearance="dark"] .cc-how__lead strong {
    color: var(--cc-on-hero);
}

.cc-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1.15rem;
    counter-reset: none;
}
.cc-step {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background:
        linear-gradient(165deg, rgba(255, 255, 255, 0.72), transparent 42%),
        var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius-lg);
    padding: 1.55rem 1.4rem 1.4rem;
    box-shadow: var(--cc-card-shadow);
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease;
}
.cc-step::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: var(--cc-radius-lg) 0 0 var(--cc-radius-lg);
    background: linear-gradient(180deg, var(--cc-accent) 0%, var(--cc-soft-peach) 100%);
    opacity: 0.9;
}
.cc-step:hover {
    transform: translateY(-3px);
    border-color: var(--cc-border-strong);
    box-shadow: var(--cc-card-shadow-hover);
}
.cc-step__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.15rem;
}
.cc-step__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.9rem;
    background:
        linear-gradient(145deg, rgba(254, 65, 25, 0.12), rgba(254, 204, 131, 0.22));
    color: var(--cc-accent-text);
    font-size: 1.2rem;
    box-shadow: inset 0 0 0 1px rgba(254, 65, 25, 0.1);
}
.cc-step__n {
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: 1;
    background: linear-gradient(160deg, var(--cc-accent-text), #fe6a3d 55%, #f0a84a);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    opacity: 0.95;
}
.cc-step h3 {
    color: var(--cc-heading);
    margin: 0 0 0.55rem;
    font-size: 1.12rem;
    letter-spacing: -0.015em;
    font-weight: 800;
    line-height: 1.25;
}
.cc-step p {
    margin: 0 0 1rem;
    color: var(--cc-text-muted);
    font-size: 0.95rem;
    line-height: 1.55;
    flex: 1 1 auto;
}
.cc-step__meta {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1.15rem;
    padding: 0;
}
.cc-step__meta li {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.55rem;
    border-radius: var(--cc-radius-pill);
    font-size: 0.7rem;
    font-weight: 650;
    letter-spacing: 0.01em;
    color: var(--cc-text-muted);
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
}
.cc-step__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--cc-link);
    text-decoration: none;
    transition: color 0.18s ease, gap 0.18s ease;
}
.cc-step__link i {
    font-size: 0.95rem;
    transition: transform 0.18s ease;
}
.cc-step__link:hover {
    color: var(--cc-link-hover);
    gap: 0.5rem;
}
.cc-step__link:hover i {
    transform: translateX(3px);
}

.cc-how__cta {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.15rem 1.5rem;
    padding: 1.25rem 1.4rem;
    border-radius: var(--cc-radius-lg);
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(120deg, rgba(254, 204, 131, 0.28), rgba(254, 65, 25, 0.08) 55%, rgba(255, 255, 255, 0.55)),
        var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-how__cta-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: min(100%, 16rem);
}
.cc-how__cta-copy strong {
    color: var(--cc-heading);
    font-size: 1.02rem;
    letter-spacing: -0.01em;
}
.cc-how__cta-copy span {
    color: var(--cc-text-muted);
    font-size: 0.9rem;
}
.cc-how__cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

html[data-cc-appearance="dark"] .cc-step,
.cc-site[data-appearance="dark"] .cc-step {
    background:
        linear-gradient(165deg, rgba(255, 255, 255, 0.03), transparent 42%),
        var(--cc-bg-elevated);
}
html[data-cc-appearance="dark"] .cc-step__icon,
.cc-site[data-appearance="dark"] .cc-step__icon {
    background: linear-gradient(145deg, rgba(254, 65, 25, 0.18), rgba(254, 204, 131, 0.12));
    box-shadow: inset 0 0 0 1px rgba(254, 65, 25, 0.18);
}
html[data-cc-appearance="dark"] .cc-how__cta,
.cc-site[data-appearance="dark"] .cc-how__cta {
    border-color: rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(120deg, rgba(254, 204, 131, 0.14), rgba(254, 65, 25, 0.1) 55%, rgba(20, 27, 40, 0.88)),
        var(--cc-bg-elevated);
}
html[data-cc-appearance="dark"] .cc-how__cta-copy strong,
.cc-site[data-appearance="dark"] .cc-how__cta-copy strong {
    color: var(--cc-on-hero);
}
html[data-cc-appearance="dark"] .cc-how__cta-copy span,
.cc-site[data-appearance="dark"] .cc-how__cta-copy span {
    color: var(--cc-on-hero-muted);
}

/* Generic cards / feeds (listings) */
.cc-feed { display: grid; gap: 1rem; }

/* In-feed ads span full row — never share a cell with an event card */
.cc-feed > .site-ads,
.cc-feed > .cc-feed-ad,
[data-cc-city-feed] > .site-ads,
[data-cc-city-feed] .cc-feed-ad {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
}
.cc-feed--grid { grid-template-columns: 1fr; }
.cc-feed--cols-2 { grid-template-columns: repeat(2, 1fr); }
.cc-feed--list { grid-template-columns: 1fr; }

.cc-card {
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    overflow: hidden;
    box-shadow: var(--cc-card-shadow);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}

.cc-card:hover {
    border-color: var(--cc-border-strong);
    box-shadow: var(--cc-card-shadow-hover);
}

.cc-card--list {
    flex-direction: row;
    align-items: stretch;
}

.cc-card--list .cc-card__media {
    width: 11rem;
    flex: 0 0 11rem;
    aspect-ratio: 4 / 3;
    min-height: 0;
    align-self: stretch;
    height: auto;
}

.cc-card--list .cc-card__body {
    min-width: 0;
}

.cc-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16/10;
    background: var(--cc-bg-muted);
    overflow: hidden;
}
.cc-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

/* Full image visible (contain) with soft fill behind */
.cc-card__media--contain {
    background:
        linear-gradient(180deg, rgba(52, 7, 1, 0.03), rgba(52, 7, 1, 0.08)),
        var(--cc-bg-muted);
}

.cc-card__media--contain .cc-card__media-fill {
    position: absolute;
    inset: -12%;
    width: 124%;
    height: 124%;
    object-fit: cover;
    filter: blur(22px) saturate(1.05);
    transform: scale(1.08);
    opacity: 0.55;
    pointer-events: none;
}

.cc-card__media--contain .cc-card__media-photo {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    background: transparent;
}

.cc-card--event .cc-card__media {
    aspect-ratio: 16 / 9;
}

.cc-card--event:hover .cc-card__media-photo {
    transform: scale(1.02);
}

.cc-card--event:hover .cc-card__title-link,
.cc-card--event:hover .cc-card__title a {
    background-size: 100% 1.5px;
}

.cc-card--event .cc-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
}

.cc-card--event.cc-card--grid .cc-card__title,
.cc-card--event.cc-card--grid .cc-card__title-link {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: calc(1.3em * 2);
    background-image: none;
}

.cc-card--event.cc-card--grid .cc-card__title-link {
    display: -webkit-box;
}

.cc-card--event.cc-card--grid:hover .cc-card__title-link,
.cc-card--event.cc-card--grid:hover .cc-card__title a {
    background-size: 0;
}

.cc-card--event.cc-card--list .cc-card__media {
    width: 15rem;
    flex: 0 0 15rem;
    aspect-ratio: 16 / 10;
    min-height: 0;
}

.cc-card--event.cc-card--list .cc-card__media-photo {
    padding: 0.4rem;
}

.cc-card--event.cc-card--list .cc-card__body {
    padding: 0.85rem 1rem;
    gap: 0.28rem;
}

.cc-card--event.cc-card--list .cc-card__actions {
    padding-top: 0.4rem;
}

html[data-cc-appearance="dark"] .cc-card__media--contain,
.cc-site[data-appearance="dark"] .cc-card__media--contain {
    background:
        linear-gradient(180deg, rgba(8, 12, 20, 0.2), rgba(8, 12, 20, 0.45)),
        var(--cc-bg-muted);
}

html[data-cc-appearance="dark"] .cc-card__media--contain .cc-card__media-fill,
.cc-site[data-appearance="dark"] .cc-card__media--contain .cc-card__media-fill {
    opacity: 0.4;
}
.cc-card__body { padding: 1rem 1.05rem 1.05rem; display: grid; gap: 0.35rem; flex: 1; }
.cc-card__title { margin: 0; font-size: 1.05rem; letter-spacing: -0.02em; font-weight: 750; line-height: 1.25; }
.cc-card__title a,
.cc-card__title-link {
    color: var(--cc-heading);
    text-decoration: none;
    display: inline;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1.5px;
    transition: background-size 0.28s ease, color 0.18s ease;
}
.cc-card__title a:hover,
.cc-card__title-link:hover {
    color: var(--cc-heading);
    background-size: 100% 1.5px;
}
.cc-card__meta { margin: 0; font-size: 0.85rem; color: var(--cc-text-muted); display: flex; align-items: center; gap: 0.35rem; }
.cc-card__stat { margin: 0.15rem 0 0; font-weight: 700; color: var(--cc-heading); font-size: 0.9rem; display: flex; align-items: center; gap: 0.3rem; }
.cc-card__chips { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.25rem; }
.cc-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: auto;
    padding-top: 0.65rem;
}

/* Entity cards — slightly tighter type */
.cc-card--entity .cc-card__body {
    padding: 0.85rem 0.9rem 0.9rem;
    gap: 0.28rem;
}
.cc-card--entity .cc-card__title {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
}
.cc-card--entity .cc-card__meta {
    font-size: 0.78rem;
}
.cc-card--entity .cc-card__meta i {
    font-size: 0.72rem;
}
.cc-card--entity .cc-card__stat {
    font-size: 0.8rem;
}
.cc-card--entity .cc-card__badge {
    font-size: 0.65rem;
    padding: 0.22rem 0.5rem;
}
.cc-card--entity .cc-card__actions {
    gap: 0.35rem;
    padding-top: 0.5rem;
}
.cc-card--entity .cc-card__actions .cc-btn,
.cc-card--entity .cc-card__actions .cc-btn--sm {
    font-size: 0.72rem;
    padding: 0.35rem 0.7rem;
    border-radius: 0.5rem;
}
.cc-card--entity .cc-card__actions .cc-btn i {
    font-size: 0.7rem;
}

/* Destination cards */
.cc-card--destination {
    border-radius: 1rem;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 12px 28px -18px rgba(52, 7, 1, 0.16);
}

.cc-card--destination:hover {
    border-color: rgba(176, 204, 226, 0.75);
    box-shadow:
        0 10px 18px -12px rgba(52, 7, 1, 0.12),
        0 22px 42px -18px rgba(52, 7, 1, 0.22);
}

.cc-card--destination:hover .cc-card__media img {
    transform: scale(1.05);
}

.cc-card--destination:hover .cc-card__title-link,
.cc-card--destination:hover .cc-card__title a {
    background-size: 100% 1.5px;
}

.cc-card--destination .cc-card__media {
    aspect-ratio: 16 / 10.5;
}

.cc-card--destination .cc-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(52, 7, 1, 0.28) 100%);
    pointer-events: none;
    opacity: 0.85;
}

.cc-card__badge {
    position: absolute;
    left: 0.7rem;
    bottom: 0.7rem;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(252, 252, 250, 0.92);
    color: var(--cc-brown);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.01em;
    box-shadow: 0 4px 14px rgba(52, 7, 1, 0.14);
    backdrop-filter: blur(6px);
}

html[data-cc-appearance="dark"] .cc-card--destination:hover,
.cc-site[data-appearance="dark"] .cc-card--destination:hover {
    border-color: rgba(56, 189, 248, 0.28);
    box-shadow:
        0 10px 18px -10px rgba(0, 0, 0, 0.45),
        0 22px 42px -16px rgba(0, 0, 0, 0.55);
}

html[data-cc-appearance="dark"] .cc-card__badge,
.cc-site[data-appearance="dark"] .cc-card__badge {
    background: rgba(20, 27, 40, 0.9);
    color: #f2f5fa;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.cc-card--destination.cc-card--list .cc-card__media {
    width: 11.5rem;
    min-height: 8.5rem;
}

.cc-card--destination.cc-card--list .cc-card__badge {
    left: 0.5rem;
    bottom: 0.5rem;
}

.cc-chip {
    display: inline-flex; align-items: center; border-radius: var(--cc-radius-pill); padding: 0.2rem 0.55rem;
    font-size: 0.72rem; font-weight: 700; background: var(--cc-chip-bg); color: var(--cc-chip-text);
    border: 1px solid transparent;
}
.cc-chip--on-dark { background: rgba(255,255,255,0.16); color: #fff; border-color: rgba(255,255,255,0.12); }
.cc-chip--accent { background: var(--cc-chip-accent-bg); color: var(--cc-heading); }

/* Explore (X-style feed) */
.cc-explore {
    --cc-rail-w: 15.5rem;
    --cc-aside-w: 20rem;
    --cc-sticky-top: calc(var(--cc-header-h) + 3px);
    background: var(--cc-bg);
    min-height: calc(100vh - var(--cc-sticky-top));
}
.cc-explore__frame {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-items: start;
}
@media (min-width: 992px) {
    .cc-explore__frame {
        grid-template-columns: var(--cc-rail-w) minmax(0, 1fr);
    }
}
@media (min-width: 1200px) {
    .cc-explore__frame {
        grid-template-columns: var(--cc-rail-w) minmax(0, 1fr) var(--cc-aside-w);
    }
}

.cc-explore__rail,
.cc-explore__aside {
    display: none;
}
@media (min-width: 992px) {
    .cc-explore__rail {
        display: block;
        position: sticky;
        top: var(--cc-sticky-top);
        height: calc(100vh - var(--cc-sticky-top));
        padding: 1.25rem 0.85rem 1.25rem 0;
        border-right: 1px solid var(--cc-border);
    }
}
@media (min-width: 1200px) {
    .cc-explore__aside {
        display: block;
        position: sticky;
        top: var(--cc-sticky-top);
        height: calc(100vh - var(--cc-sticky-top));
        overflow: auto;
        padding: 1.25rem 0 1.25rem 0.85rem;
        border-left: 1px solid var(--cc-border);
        scrollbar-width: thin;
    }
}

.cc-explore__rail-inner {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    height: 100%;
}
.cc-explore__rail-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cc-text-soft);
    margin: 0 0 0.4rem 0.55rem;
}
.cc-rail-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.7rem;
    border-radius: 0.65rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--cc-heading);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.cc-rail-link i {
    font-size: 1.05rem;
    width: 1.15rem;
    text-align: center;
    color: var(--cc-text-muted);
}
.cc-rail-link:hover {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}
.cc-rail-link.is-active {
    background: var(--cc-accent-soft);
    color: var(--cc-accent-text);
}
.cc-rail-link.is-active i {
    color: var(--cc-accent-text);
}
.cc-explore__rail-sep {
    height: 1px;
    margin: 0.45rem 0.55rem;
    background: var(--cc-border);
    border: 0;
}
.cc-explore__rail-foot {
    margin-top: auto;
    padding: 0.85rem 0.55rem 0.35rem;
    border-top: 1px solid var(--cc-border);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.cc-explore__rail-rfp {
    width: 100%;
    justify-content: center;
}
.cc-explore__rail-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.35rem;
    font-size: 0.72rem;
    line-height: 1.4;
    color: var(--cc-text-soft);
}
.cc-explore__rail-legal a {
    color: var(--cc-text-muted);
    font-weight: 500;
    text-decoration: none;
}
.cc-explore__rail-legal a:hover {
    color: var(--cc-accent-text);
    text-decoration: underline;
}
.cc-explore__rail-copy {
    margin: 0;
    font-size: 0.68rem;
    color: var(--cc-text-soft);
    letter-spacing: 0.01em;
}

.cc-explore__main {
    min-width: 0;
}

.cc-explore__top {
    position: sticky;
    top: var(--cc-sticky-top);
    z-index: 40;
    background: color-mix(in srgb, var(--cc-bg) 88%, transparent);
    backdrop-filter: blur(14px) saturate(1.3);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    border-bottom: 1px solid var(--cc-border);
    padding: 1rem 1rem 0.9rem;
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .cc-explore__top {
        padding: 1.15rem 1.35rem 1rem;
    }
}

.cc-explore__title-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 0.9rem;
}
.cc-explore__title-row h1,
.cc-explore__title-row h2 {
    margin: 0;
    color: var(--cc-heading);
}
.cc-explore__top h1 {
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
}
.cc-explore__subtitle {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    color: var(--cc-text-muted);
}
.cc-explore__query {
    color: var(--cc-accent-text);
    font-weight: 600;
}

.cc-explore__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}
.cc-explore__search {
    flex: 1 1 14rem;
    min-width: 12rem;
    height: var(--cc-control-h);
    min-height: var(--cc-control-h);
    box-sizing: border-box;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    background: var(--cc-input-bg);
    border: var(--cc-control-border-w) solid var(--cc-border);
    border-radius: var(--cc-control-radius);
    padding: 0 var(--cc-control-px);
    color: var(--cc-text-muted);
    box-shadow: 0 1px 2px rgba(52, 7, 1, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cc-explore__search > .bi {
    font-size: 0.85rem;
    line-height: 1;
    flex-shrink: 0;
    opacity: 0.85;
}
.cc-explore__search:focus-within {
    border-color: var(--cc-soft-blue);
    box-shadow: 0 0 0 3px rgba(176, 204, 226, 0.35);
}
.cc-explore__search input {
    border: 0;
    outline: 0;
    background: transparent;
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: 0;
    margin: 0;
    font-size: var(--cc-control-fs);
    font-weight: 400;
    line-height: 1.25;
    color: var(--cc-heading);
    -webkit-appearance: none;
    appearance: none;
}
.cc-explore__search input::placeholder {
    color: var(--cc-text-soft);
    font-size: var(--cc-control-fs);
    opacity: 1;
}
.cc-explore__clear {
    position: absolute;
    right: 0.35rem;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--cc-text-muted);
    background: var(--cc-bg-muted);
    text-decoration: none;
    flex-shrink: 0;
}
.cc-explore__clear:hover {
    color: var(--cc-heading);
}
.cc-explore__clear i {
    font-size: 0.7rem;
}
.cc-explore__sort {
    display: inline-flex;
    align-items: center;
    margin: 0;
    flex-shrink: 0;
}
.cc-explore__sort select {
    box-sizing: border-box;
    height: var(--cc-control-h);
    min-height: var(--cc-control-h);
    max-height: var(--cc-control-h);
    margin: 0;
    padding: 0 2.1rem 0 var(--cc-control-px);
    font-size: var(--cc-control-fs);
    font-weight: 500;
    line-height: calc(var(--cc-control-h) - (var(--cc-control-border-w) * 2));
    color: var(--cc-heading);
    background-color: var(--cc-input-bg);
    background-image: var(--cc-select-chevron);
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 11px 9px;
    border: var(--cc-control-border-w) solid var(--cc-border);
    border-radius: var(--cc-control-radius);
    box-shadow: 0 1px 2px rgba(52, 7, 1, 0.04);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cc-explore__sort select:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 55%, var(--cc-border));
}
.cc-explore__sort select:focus {
    border-color: var(--cc-soft-blue);
    box-shadow: 0 0 0 3px rgba(176, 204, 226, 0.35);
    outline: 0;
    background-image: var(--cc-select-chevron);
}

.cc-explore__spotlight {
    padding: 1.15rem 1rem 0.5rem;
}
@media (min-width: 768px) {
    .cc-explore__spotlight {
        padding: 1.25rem 1.35rem 0.65rem;
    }
}
.cc-explore__spotlight-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}
.cc-explore__spotlight-head h2 {
    font-size: 1.05rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    margin: 0;
}
.cc-explore__spotlight-head p {
    margin: 0.15rem 0 0;
    font-size: 0.85rem;
    color: var(--cc-text-muted);
}

/* Spotlight carousel — 2 cards per page (1 on small screens) */
.cc-spotlight-carousel {
    position: relative;
}
.cc-spotlight-carousel__frame {
    position: relative;
}
.cc-spotlight-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    cursor: grab;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}
.cc-spotlight-carousel__track::-webkit-scrollbar { display: none; }
.cc-spotlight-carousel__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}
.cc-spotlight-carousel__page {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}
@media (min-width: 640px) {
    .cc-spotlight-carousel__page {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.cc-spotlight-carousel__page .cc-card {
    min-width: 0;
    height: 100%;
}
.cc-spotlight-carousel__btn {
    position: absolute;
    top: 42%;
    z-index: 4;
    transform: translateY(-50%);
    width: 2.35rem;
    height: 2.35rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--cc-border);
    border-radius: 999px;
    background: color-mix(in srgb, var(--cc-bg-elevated) 92%, transparent);
    color: var(--cc-heading);
    box-shadow: var(--cc-card-shadow);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease, opacity 0.15s ease, color 0.15s ease;
}
.cc-spotlight-carousel__btn:hover {
    background: var(--cc-bg-elevated);
    color: var(--cc-accent-text);
}
.cc-spotlight-carousel__btn:active {
    transform: translateY(-50%) scale(0.96);
}
.cc-spotlight-carousel__btn:disabled {
    opacity: 0.28;
    pointer-events: none;
}
.cc-spotlight-carousel__btn--prev { left: 0.35rem; }
.cc-spotlight-carousel__btn--next { right: 0.35rem; }
@media (min-width: 768px) {
    .cc-spotlight-carousel__btn--prev { left: -0.35rem; }
    .cc-spotlight-carousel__btn--next { right: -0.35rem; }
}
.cc-spotlight-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 0.35rem;
    margin-top: 0.85rem;
}
.cc-spotlight-carousel__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--cc-text-soft) 55%, transparent);
    transition: width 0.2s ease, background 0.2s ease;
}
.cc-spotlight-carousel__dot.is-active {
    width: 1.15rem;
    background: var(--cc-accent);
}

.cc-feed-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem 0.35rem;
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--cc-text-soft);
}
@media (min-width: 768px) {
    .cc-feed-label {
        padding-inline: 1.35rem;
    }
}
.cc-feed-label__line {
    flex: 1;
    height: 1px;
    background: var(--cc-border);
}

.cc-explore .cc-feed {
    padding: 0.5rem 1rem 1.5rem;
}
.cc-explore [data-cc-feed].cc-feed--grid {
    grid-template-columns: 1fr;
}
@media (min-width: 640px) {
    .cc-explore [data-cc-feed].cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 768px) {
    .cc-explore .cc-feed {
        padding: 0.65rem 1.35rem 2rem;
    }
}

.cc-city__toggles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}
.cc-city__toggles-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}
.cc-view-toggle {
    display: inline-flex;
    border: 1px solid var(--cc-border);
    border-radius: 0.75rem;
    overflow: hidden;
    background: var(--cc-bg-elevated);
}
.cc-view-toggle__btn {
    border: 0;
    background: transparent;
    color: var(--cc-text-muted);
    min-width: 2.4rem;
    height: 2.2rem;
    padding: 0 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 700;
}
.cc-view-toggle__btn.is-active { background: var(--cc-accent); color: var(--cc-on-accent); }
.cc-view-toggle__text { line-height: 1; }
.cc-view-toggle--paging .cc-view-toggle__btn { min-width: auto; }

/* Mobile: one dropdown instead of all view/paging chips */
.cc-view-menu {
    display: none;
    position: relative;
}
.cc-view-menu__btn {
    gap: 0.4rem;
    min-height: 2.15rem;
    padding-inline: 0.7rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
}
.cc-view-menu__btn .bi-chevron-down {
    font-size: 0.7rem;
    opacity: 0.7;
}
.cc-view-menu__panel {
    min-width: 12.5rem;
    padding: 0.4rem;
    border: 1px solid var(--cc-border);
    border-radius: 0.85rem;
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow-hover);
}
.cc-view-menu__heading {
    margin: 0;
    padding: 0.35rem 0.65rem 0.2rem;
    font-size: 0.65rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}
.cc-view-menu__item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: var(--cc-text);
    font-size: 0.84rem;
    font-weight: 650;
    padding: 0.5rem 0.65rem;
    cursor: pointer;
}
.cc-view-menu__item i {
    width: 1rem;
    text-align: center;
    color: var(--cc-text-muted);
}
.cc-view-menu__item:hover,
.cc-view-menu__item:focus {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}
.cc-view-menu__item.is-active {
    background: color-mix(in srgb, var(--cc-soft-blue) 34%, transparent);
    color: var(--cc-heading);
}
.cc-view-menu__item.is-active i {
    color: var(--cc-accent);
}
.cc-view-menu .dropdown-divider {
    margin: 0.35rem 0.25rem;
    border-color: var(--cc-border);
    opacity: 1;
}

@media (max-width: 767.98px) {
    .cc-city__toggles-inline {
        display: none;
    }

    .cc-view-menu {
        display: block;
    }
}

@media (max-width: 520px) {
    .cc-view-toggle__text { display: none; }
    .cc-view-toggle--paging .cc-view-toggle__btn { min-width: 2.4rem; padding: 0; }
}

.cc-aside-card {
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    padding: 1.1rem 1.1rem 0.85rem;
    margin-bottom: 0.85rem;
    box-shadow: var(--cc-card-shadow);
}
.cc-aside-card h2 {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
}
.cc-aside-card--cta {
    position: relative;
    overflow: hidden;
    background: var(--cc-bg-hero);
    color: var(--cc-on-hero);
    border: 0;
    box-shadow: var(--cc-card-shadow-hover);
    padding: 1.35rem 1.2rem 1.25rem;
}
.cc-aside-card--cta h2,
.cc-aside-card--cta p {
    color: var(--cc-on-hero);
    position: relative;
    z-index: 1;
}
.cc-aside-card--cta p {
    opacity: 0.92;
    margin: 0 0 1rem;
    font-size: 0.9rem;
    line-height: 1.55;
}
.cc-aside-card--cta .cc-btn {
    position: relative;
    z-index: 1;
}
.cc-aside-card__glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 60% at 80% 0%, rgba(255, 255, 255, 0.28), transparent 55%);
    pointer-events: none;
}
.cc-aside-muted {
    color: var(--cc-text-muted);
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
}
.cc-aside-fine {
    font-size: 0.75rem;
    color: var(--cc-text-soft);
    text-align: center;
    margin: 0.5rem 0 1rem;
    line-height: 1.5;
}
.cc-trend-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cc-trend-item {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    text-decoration: none;
    padding: 0.65rem 0.35rem;
    border-radius: 0.75rem;
    color: inherit;
    transition: background 0.15s ease;
}
.cc-trend-item:hover { background: var(--cc-bg-muted); }
.cc-trend-item__rank {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 0.45rem;
    display: grid;
    place-items: center;
    font-weight: 800;
    color: var(--cc-accent-text);
    background: var(--cc-accent-soft);
    font-size: 0.75rem;
    flex-shrink: 0;
}
.cc-trend-item__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.cc-trend-item__body strong {
    display: block;
    color: var(--cc-heading);
    font-size: 0.925rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cc-trend-item__body span {
    color: var(--cc-text-muted);
    font-size: 0.78rem;
}
.cc-trend-item > .bi {
    color: var(--cc-text-soft);
    font-size: 0.85rem;
}

.cc-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
    color: var(--cc-text-muted);
}
.cc-crumbs a { color: var(--cc-text-muted); text-decoration: none; }
.cc-crumbs a:hover { color: var(--cc-link); }
.cc-crumbs--on-dark,
.cc-crumbs--on-dark a { color: rgba(252, 252, 250, 0.82); }
.cc-crumbs--on-dark a:hover { color: var(--cc-soft-peach); }

@media (max-width: 767.98px) {
    .cc-crumbs {
        display: none;
    }
}

.cc-empty { text-align: center; padding: 3rem 1rem; color: var(--cc-text-muted); }
.cc-empty--compact { padding: 2rem 1rem; background: var(--cc-bg-elevated); border: 1px solid var(--cc-border); border-radius: var(--cc-radius); }
.cc-empty h2 { color: var(--cc-heading); }
.cc-empty__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--cc-bg-muted);
    color: var(--cc-text-muted);
    font-size: 1.25rem;
}

.cc-flash,
.cc-site .alert {
    --cc-flash-pad-y: 0.7rem;
    --cc-flash-pad-x: 0.85rem;
    --cc-flash-close: 1.75rem;
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: var(--cc-flash-pad-y) var(--cc-flash-pad-x);
    border-radius: 0.85rem;
    border: 1px solid var(--cc-success-border);
    background: var(--cc-success-bg);
    color: var(--cc-success);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.4;
    box-shadow: none;
    transition: opacity 0.28s ease, transform 0.28s ease, margin 0.28s ease, padding 0.28s ease, max-height 0.28s ease, border-width 0.28s ease;
}

.cc-flash--danger,
.cc-site .alert-danger {
    background: var(--cc-danger-bg);
    border-color: var(--cc-danger-border);
    color: var(--cc-danger);
}

.cc-flash--info,
.cc-site .alert-info {
    background: var(--cc-info-bg);
    border-color: var(--cc-info-border);
    color: var(--cc-info-text);
}

.cc-flash--warning,
.cc-site .alert-warning {
    background: color-mix(in srgb, var(--cc-soft-peach) 35%, var(--cc-bg-elevated));
    border-color: color-mix(in srgb, var(--cc-soft-peach) 70%, var(--cc-border));
    color: var(--cc-heading);
}

.cc-site .alert-success {
    background: var(--cc-success-bg);
    border-color: var(--cc-success-border);
    color: var(--cc-success);
}

.cc-flash__body,
.cc-site .alert > .cc-flash__body {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    /* Optical first-line alignment with the close control */
    padding-top: calc((var(--cc-flash-close) - (0.9rem * 1.4)) / 2);
    line-height: 1.4;
}

.cc-flash__body > :first-child,
.cc-site .alert > .cc-flash__body > :first-child {
    margin-top: 0;
}

.cc-flash__body > :last-child,
.cc-site .alert > .cc-flash__body > :last-child {
    margin-bottom: 0;
}

.cc-flash__body ul,
.cc-site .alert > .cc-flash__body ul {
    margin: 0;
    padding-left: 1.1rem;
}

.cc-flash__close,
.cc-site .alert > .cc-flash__close {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: var(--cc-flash-close);
    height: var(--cc-flash-close);
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 8%, transparent);
    color: inherit;
    opacity: 0.75;
    cursor: pointer;
    line-height: 1;
    transition: opacity 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.cc-flash__close:hover,
.cc-flash__close:focus-visible,
.cc-site .alert > .cc-flash__close:hover,
.cc-site .alert > .cc-flash__close:focus-visible {
    opacity: 1;
    background: color-mix(in srgb, currentColor 14%, transparent);
    outline: none;
}

.cc-flash__close:active,
.cc-site .alert > .cc-flash__close:active {
    transform: scale(0.96);
}

.cc-flash__close i,
.cc-site .alert > .cc-flash__close i {
    font-size: 0.78rem;
    line-height: 1;
}

/* Hide Bootstrap’s default dismiss control when our close is present */
.cc-site .alert.alert-dismissible {
    padding-right: var(--cc-flash-pad-x);
}

.cc-site .alert > .btn-close {
    display: none;
}

.cc-flash.is-leaving,
.cc-site .alert.is-leaving {
    opacity: 0;
    transform: translateY(-0.35rem);
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    max-height: 0;
    overflow: hidden;
    border-width: 0;
    pointer-events: none;
}

.cc-feed-footer {
    padding: 0.5rem 1rem 2.5rem;
    text-align: center;
    color: var(--cc-text-muted);
}
.cc-feed-sentinel { height: 1px; }
.cc-feed-loading {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.75rem 1rem;
}
.cc-feed-loading[hidden],
.cc-feed-end[hidden],
.cc-feed-sentinel[hidden] {
    display: none !important;
}
.cc-feed-end {
    margin: 0;
    color: var(--cc-text-soft);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.cc-spinner {
    width: 1.1rem; height: 1.1rem; border: 2px solid var(--cc-border); border-top-color: var(--cc-accent);
    border-radius: 50%; display: inline-block; animation: cc-spin 0.7s linear infinite; vertical-align: middle; margin-right: 0.35rem;
}
@keyframes cc-spin { to { transform: rotate(360deg); } }

/* Explore page: no site footer — rail holds legal links */
.cc-site:has(.cc-explore) .cc-footer {
    display: none;
}
.cc-site:has(.cc-explore) .cc-main {
    background: var(--cc-bg);
}

/* City */
.cc-city { padding: 0 0 3rem; }
.cc-city__body { padding-top: 1.5rem; display: grid; gap: 1.25rem; }

.cc-city-header {
    position: relative;
    padding-top: 1.25rem;
}

.cc-city[data-header-layout="split"] .cc-city-header--cover { display: none; }
.cc-city[data-header-layout="cover"] .cc-city-header--split { display: none; }

.cc-city-header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 0.85rem;
}
.cc-city-header__top .cc-crumbs {
    margin: 0;
    min-width: 0;
}
.cc-city-header__tools {
    flex: 0 0 auto;
    margin-left: auto;
}
.cc-city-header__tools .cc-entity-layout-toggle {
    border-color: var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-city-header__tools .cc-entity-layout-toggle__btn {
    color: var(--cc-text-muted);
}
.cc-city-header__tools .cc-entity-layout-toggle__btn:hover {
    color: var(--cc-heading);
    background: var(--cc-bg-muted);
}
.cc-city-header__tools .cc-entity-layout-toggle__btn.is-active {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, #fff);
    box-shadow: none;
}

.cc-city-tabs-bar {
    margin-top: 1rem;
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-bg-elevated));
    border-top: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
}
.cc-city-tabs-bar .cc-entity-tabs {
    min-height: 2.9rem;
}
.cc-city-tabs-bar .cc-entity-tabs__tab {
    color: var(--cc-text-muted);
    min-width: 6.5rem;
    padding: 0.85rem 1.15rem 0.8rem;
}
.cc-city-tabs-bar .cc-entity-tabs__tab:hover {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-bg-elevated) 80%, transparent);
}
.cc-city-tabs-bar .cc-entity-tabs__tab.is-active {
    color: var(--cc-heading);
    background: transparent;
}
.cc-city-tabs-bar .cc-entity-tabs__tab.is-active::after {
    background: linear-gradient(90deg, var(--cc-soft-peach) 0%, var(--cc-orange) 55%, #ff6a3d 100%);
    box-shadow: 0 0 12px rgba(254, 65, 25, 0.35);
}

.cc-city-venues-placeholder {
    min-height: 14rem;
}
.cc-city-venues-placeholder__card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
    padding: 1.35rem 1.4rem;
    border-radius: 1.15rem;
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(165deg, color-mix(in srgb, var(--cc-soft-blue) 16%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 52%),
        var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-city-venues-placeholder__icon {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border-radius: 0.85rem;
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, #fff);
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 40%, var(--cc-border));
    color: var(--cc-heading);
    font-size: 1.2rem;
}
.cc-city-venues-placeholder__copy h2 {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
}
.cc-city-venues-placeholder__copy p {
    margin: 0.4rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Split header layout helpers (stretch reasserted after .cc-city__layout below). */
.cc-city-header__layout .cc-city__main,
.cc-city-header__layout .cc-city__side {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.cc-city-header__layout .cc-city__main > *,
.cc-city-header__layout .cc-city__side > * {
    flex: 1 1 auto;
    width: 100%;
}

.cc-city-header__mobile-title {
    display: none;
    margin: 0 0 0.85rem;
}

.cc-city-header__mobile-title h1 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
    color: var(--cc-heading);
}

.cc-city-header__mobile-loc {
    margin: 0.3rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.85rem;
    line-height: 1.35;
}

.cc-city-slide__city-info {
    display: none;
}

/* City info offcanvas (mobile header side) */
.cc-city-info {
    position: fixed;
    inset: 0;
    z-index: 1080;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.cc-city-info.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
}

.cc-city-info__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(52, 7, 1, 0.48);
}

.cc-city-info__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(22rem, 92vw);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem;
    background: var(--cc-bg-elevated);
    box-shadow: -12px 0 40px rgba(52, 7, 1, 0.18);
    transform: translateX(100%);
    transition: transform 0.22s ease;
    overflow: auto;
    outline: none;
}

.cc-city-info.is-open .cc-city-info__panel {
    transform: none;
}

.cc-city-info__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-shrink: 0;
}

.cc-city-info__head strong {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--cc-heading);
}

.cc-city-info__body {
    min-height: 0;
    flex: 1;
}

.cc-city-info__body .cc-city-intro {
    min-height: 0;
    height: auto;
    box-shadow: none;
}

.cc-city-info__body .cc-city-intro__title {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
    color: var(--cc-heading);
}

html.cc-city-info-open,
html.cc-city-info-open body {
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .cc-city-header--split > .cc-container.cc-city-header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 0.55rem;
        row-gap: 0.55rem;
    }

    .cc-city-header__top {
        display: contents;
        margin-bottom: 0;
    }

    .cc-city-header__top > .cc-crumbs {
        display: none;
    }

    .cc-city-header__tools {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .cc-city-header__mobile-title {
        display: block;
        grid-column: 1;
        grid-row: 1;
        margin: 0;
        min-width: 0;
        align-self: center;
    }

    .cc-city-header__layout {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-city-header__side {
        display: block;
    }

    .cc-city-header--split .cc-city-header__side .cc-city-intro {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0;
        padding: 0.65rem 0 0;
        border: 0;
        box-shadow: none;
        background: transparent;
        gap: 0;
        border-radius: 0;
    }

    .cc-city-header--split .cc-city-header__side .cc-city-intro > *:not(.cc-city-intro__actions) {
        display: none !important;
    }

    .cc-city-header--split .cc-city-header__side .cc-city-intro__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
        margin-top: 0;
    }

    .cc-city-header--split .cc-city-header__side .cc-city-intro__actions .cc-btn {
        flex: 1 1 calc(50% - 0.45rem);
        width: auto;
        min-width: 0;
        justify-content: center;
    }

    .cc-city-slide__city-info {
        display: none;
    }

    .cc-city-header__layout .cc-city__side > * {
        flex: 0 0 auto;
    }
}

/* City split header carousel — fixed band (same as entity media / RFP).
   height:100% chains collapse when slides are absolute-filled; use explicit px. */
.cc-city-header--split .cc-city-carousel,
.cc-city-header--split .cc-city-carousel__frame,
.cc-city-header--split .cc-city-carousel--empty .cc-city-carousel__empty,
.cc-city-header--split .cc-city-intro {
    height: 400px;
    min-height: 400px;
    max-height: 400px;
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .cc-city-header--split .cc-city-carousel,
    .cc-city-header--split .cc-city-carousel__frame,
    .cc-city-header--split .cc-city-carousel--empty .cc-city-carousel__empty {
        height: min(400px, 58vw);
        min-height: min(400px, 58vw);
        max-height: min(400px, 58vw);
    }
}

.cc-city-carousel__frame {
    position: relative;
    border-radius: 1.25rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    box-shadow: var(--cc-card-shadow);
}

.cc-city-header--split .cc-city-carousel__track {
    height: 100%;
    grid-auto-columns: 100%;
    align-items: stretch;
}

.cc-city-header--split .cc-city-slide {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    align-self: stretch;
    border-radius: 0;
}

.cc-city-header--split .cc-city-slide__media {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block;
}

.cc-city-header--split .cc-city-slide__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center;
}

/* Generic carousel/intro floor (split header overrides above with 400px). */
.cc-city-carousel,
.cc-city-carousel__frame,
.cc-city-intro {
    min-height: clamp(18rem, 42vw, 24rem);
}

.cc-city-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    height: 100%;
    align-items: stretch;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    cursor: grab;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}

.cc-city-carousel__track::-webkit-scrollbar { display: none; }

.cc-city-carousel__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.cc-city-carousel__btn {
    position: absolute;
    top: 50%;
    z-index: 4;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.48);
    color: #fff;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}

.cc-city-carousel__btn:hover {
    background: rgba(0, 0, 0, 0.68);
    color: #fff;
}

.cc-city-carousel__btn:active {
    transform: translateY(-50%) scale(0.96);
}

.cc-city-carousel__btn:disabled {
    opacity: 0.28;
    pointer-events: none;
}

.cc-city-carousel__btn--prev { left: 0.85rem; }
.cc-city-carousel__btn--next { right: 0.85rem; }

/* Carousel dots removed — arrows only */

.cc-city-carousel--empty .cc-city-carousel__empty,
.cc-city-carousel__empty {
    height: 100%;
    min-height: inherit;
    display: grid;
    place-content: center;
    gap: 0.65rem;
    text-align: center;
    padding: 2rem;
    color: var(--cc-text-muted);
    border: 1px dashed var(--cc-border);
    border-radius: 1.25rem;
    background: var(--cc-bg-elevated);
}

.cc-city-carousel__empty i {
    font-size: 1.75rem;
    opacity: 0.7;
}

.cc-city-carousel__empty p {
    margin: 0;
    max-width: 18rem;
}

.cc-city-slide {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    max-height: none;
    align-self: stretch;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    isolation: isolate;
    background: var(--cc-bg-muted);
}

.cc-city-slide__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.cc-city-slide__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.55s ease;
    user-select: none;
    pointer-events: none;
}

.cc-city-slide:hover .cc-city-slide__img {
    transform: scale(1.04);
}

.cc-city-slide__badge {
    position: absolute;
    top: 0.9rem;
    left: 0.9rem;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, #c62828 0%, #e53935 50%, #ff6659 100%);
    border: 1px solid rgba(255, 255, 255, 0.35);
    padding: 0.32rem 0.65rem 0.32rem 0.5rem;
    border-radius: var(--cc-radius-pill);
    box-shadow: 0 8px 22px -6px rgba(229, 57, 53, 0.65);
}

.cc-city-slide__foot {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 1.1rem 1.15rem 1.55rem;
    background: linear-gradient(180deg, transparent 0%, rgba(12, 10, 9, 0.55) 28%, rgba(12, 10, 9, 0.88) 100%);
    color: #fff;
}

.cc-city-slide__copy {
    min-width: 0;
    flex: 1 1 12rem;
}

.cc-city-slide__name {
    display: block;
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #fff;
    text-decoration: none;
}

.cc-city-slide__name:hover {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.cc-city-slide__address {
    margin: 0.35rem 0 0;
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.875rem;
    line-height: 1.35;
}

.cc-city-slide__address span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-city-slide__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

/* City intro panel */
.cc-city-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    padding: 1.35rem 1.35rem 1.45rem;
    border-radius: 1.25rem;
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(165deg, color-mix(in srgb, var(--cc-soft-blue) 18%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 48%),
        var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}

.cc-city-intro h1,
.cc-city-intro__title {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
    color: var(--cc-heading);
}

.cc-city-intro__loc {
    margin: 0.35rem 0 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--cc-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.cc-city-intro__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin: 0.85rem 0 1rem;
}

.cc-city-intro__stat {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 45%, var(--cc-border));
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--cc-soft-blue) 22%, #fff) 0%, color-mix(in srgb, var(--cc-bg-muted) 80%, #fff) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.cc-city-intro__stat:last-child {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 50%, var(--cc-border));
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--cc-soft-peach) 28%, #fff) 0%, color-mix(in srgb, var(--cc-bg-muted) 75%, #fff) 100%);
}

.cc-city-intro__stat-icon {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 35%, transparent);
    color: var(--cc-heading);
    font-size: 0.95rem;
    flex-shrink: 0;
}

.cc-city-intro__stat:last-child .cc-city-intro__stat-icon {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 45%, transparent);
}

.cc-city-intro__stat-body {
    min-width: 0;
    display: grid;
    gap: 0.05rem;
}

.cc-city-intro__stat-value {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.cc-city-intro__stat-label {
    color: var(--cc-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
}

.cc-city-intro__actions {
    display: grid;
    gap: 0.55rem;
    margin-top: auto;
}

.cc-city-intro__actions .cc-btn {
    width: 100%;
    justify-content: center;
}

.cc-city-intro--panel {
    gap: 0.75rem;
}

.cc-city-intro__venues {
    margin-top: 0.35rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--cc-border);
    display: grid;
    gap: 0.65rem;
}

.cc-city-intro__venues-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.cc-city-intro__venues-head h3 {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--cc-heading);
}

.cc-city-intro__venues-head span {
    min-width: 1.5rem;
    height: 1.5rem;
    display: inline-grid;
    place-items: center;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--cc-soft-blue) 35%, var(--cc-bg-muted));
    color: var(--cc-heading);
    font-size: 0.72rem;
    font-weight: 800;
}

.cc-city-intro__venue-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

.cc-city-intro__venue-card {
    display: grid;
    grid-template-columns: 2.75rem 1fr auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.cc-city-intro__venue-card:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 55%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-blue) 12%, var(--cc-bg-elevated));
    color: inherit;
}

.cc-city-intro__venue-media {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.55rem;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
    color: var(--cc-text-muted);
    flex-shrink: 0;
}

.cc-city-intro__venue-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cc-city-intro__venue-body {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}

.cc-city-intro__venue-body strong {
    font-size: 0.88rem;
    font-weight: 750;
    color: var(--cc-heading);
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-city-intro__venue-body span {
    font-size: 0.75rem;
    color: var(--cc-text-muted);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-city-intro__venue-card > .bi {
    color: var(--cc-text-soft);
    font-size: 0.85rem;
}



.cc-btn:disabled,
.cc-btn[disabled] {
    opacity: 0.62;
    cursor: not-allowed;
}

.cc-city__venues-head { margin-bottom: 0.85rem; }
.cc-city__venues h2 { color: var(--cc-heading); font-size: 1.1rem; margin: 0 0 0.25rem; }
.cc-city__venues-lead { margin: 0; color: var(--cc-text-muted); font-size: 0.9rem; }
.cc-city__venues .cc-explore__title-row { margin-bottom: 0.85rem; }
.cc-city__venues h2 { margin: 0; color: var(--cc-heading); font-size: 1.15rem; }
.cc-feed--city-venues.cc-feed--grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}
@media (min-width: 640px) {
    .cc-feed--city-venues.cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1100px) {
    .cc-feed--city-venues.cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.cc-city__events .cc-explore__title-row { margin-bottom: 0.85rem; }
.cc-city__events h2 { margin: 0; color: var(--cc-heading); font-size: 1.15rem; }
.cc-city__events .cc-explore__toolbar { margin-bottom: 1.35rem; }

/* City page 8/4 layout */
.cc-city__layout {
    display: grid;
    gap: 1.25rem;
    align-items: start;
}

/* After .cc-city__layout so stretch wins on split headers */
.cc-city__layout.cc-city-header__layout,
.cc-city-header--split .cc-city__layout {
    align-items: stretch;
}

.cc-city__main { min-width: 0; }
.cc-city__side { min-width: 0; }

.cc-city-aside {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.cc-aside-panel--market {
    padding-bottom: 1rem;
}

.cc-aside-market__sub {
    margin: 0.85rem 0 0.45rem;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}

.cc-aside-market__sub:first-of-type {
    margin-top: 0.15rem;
}

.cc-aside-market__reasons {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.cc-aside-market__reasons li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.4;
    color: var(--cc-text);
}

.cc-aside-market__num {
    flex: 0 0 auto;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--cc-accent-soft);
    color: var(--cc-accent);
    font-size: 0.7rem;
    font-weight: 750;
    line-height: 1;
}

.cc-aside-market__metrics {
    margin: 0;
    display: grid;
    gap: 0.4rem;
}

.cc-aside-market__metric {
    display: grid;
    gap: 0.1rem;
    padding: 0.45rem 0.55rem;
    border-radius: 0.55rem;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
}

.cc-aside-market__metric dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--cc-text-muted);
    line-height: 1.3;
}

.cc-aside-market__metric dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cc-heading);
    line-height: 1.35;
}

.cc-aside-market__more {
    margin-top: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

.cc-aside-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.cc-aside-panel__head h3 {
    margin: 0;
}

.cc-aside-panel__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
    font-size: 0.75rem;
    font-weight: 750;
}

.cc-aside-panel__lead {
    margin: 0 0 0.85rem;
    color: var(--cc-text-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.cc-venue-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.cc-city-aside .cc-venue-row {
    display: grid;
    grid-template-columns: 2.6rem 1fr auto;
    gap: 0.65rem;
    align-items: center;
    padding: 0.45rem;
    border-radius: 0.75rem;
    border: 1px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.cc-city-aside .cc-venue-row:hover {
    background: var(--cc-bg-muted);
    border-color: var(--cc-border);
}

.cc-city-aside .cc-venue-row__media {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.55rem;
    overflow: hidden;
    background: var(--cc-bg-muted);
    display: grid;
    place-items: center;
    color: var(--cc-text-muted);
}

.cc-city-aside .cc-venue-row__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-city-aside .cc-venue-row__body {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}

.cc-city-aside .cc-venue-row__body strong {
    color: var(--cc-heading);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-city-aside .cc-venue-row__body span {
    color: var(--cc-text-muted);
    font-size: 0.7rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-city-aside .cc-venue-row__go {
    color: var(--cc-text-muted);
    font-size: 0.75rem;
}

/* Event listings (list/grid + page/month paging) */
.cc-listing {
    display: grid;
    gap: 1.25rem;
}

.cc-listing-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
}

.cc-listing-pager--month {
    width: 100%;
}

.cc-listing-pager--pages .cc-pagination {
    margin-top: 0;
}

.cc-month-pager {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    width: 100%;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--cc-border);
    border-radius: 999px;
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}

.cc-month-pager__side {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.35rem;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    color: var(--cc-heading);
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}

.cc-month-pager__side--prev { justify-self: start; }
.cc-month-pager__side--next { justify-self: end; }

.cc-month-pager__side:hover {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}

.cc-month-pager__side.is-disabled,
.cc-month__nav-btn.is-disabled {
    opacity: 0.4;
    pointer-events: none;
    cursor: default;
    color: var(--cc-text-muted);
}

.cc-month-pager__center {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.55rem 0.75rem;
    min-width: 0;
    text-align: center;
}

.cc-month-pager__current {
    display: grid;
    justify-items: center;
    gap: 0.08rem;
    text-align: center;
    min-width: 0;
}

.cc-month-pager__label {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    line-height: 1.15;
}

.cc-month-pager__meta {
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--cc-text-muted);
    line-height: 1.2;
}

.cc-explore__this-month {
    flex-shrink: 0;
    height: var(--cc-control-h);
    min-height: var(--cc-control-h);
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

@media (max-width: 560px) {
    .cc-month-pager {
        border-radius: 1rem;
        gap: 0.45rem 0.5rem;
        padding: 0.4rem;
    }

    .cc-month-pager__side {
        padding-inline: 0.6rem;
        font-size: 0.8rem;
    }

    .cc-month-pager__side span { display: none; }

    .cc-month-pager__label { font-size: 0.92rem; }
}

.cc-pagination {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
}

.cc-pagination__list {
    list-style: none;
    margin: 0;
    padding: 0.35rem;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: 999px;
    box-shadow: var(--cc-card-shadow);
}

.cc-pagination__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.7rem;
    border-radius: 999px;
    border: 1px solid transparent;
    color: var(--cc-heading);
    background: transparent;
    font-weight: 700;
    font-size: 0.875rem;
    line-height: 1;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cc-pagination__link--nav {
    min-width: auto;
    padding-inline: 0.85rem;
    color: var(--cc-text-muted);
    font-weight: 650;
}

.cc-pagination__link--dots {
    min-width: 1.75rem;
    color: var(--cc-text-muted);
    font-weight: 600;
    cursor: default;
}

.cc-pagination__item.is-active .cc-pagination__link {
    background: var(--cc-accent);
    border-color: var(--cc-accent);
    color: var(--cc-on-accent);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--cc-accent) 28%, transparent);
}

.cc-pagination__item.is-disabled .cc-pagination__link {
    color: var(--cc-text-muted);
    opacity: 0.55;
    cursor: default;
}

.cc-pagination__item:not(.is-disabled):not(.is-active) .cc-pagination__link:hover {
    background: var(--cc-bg-muted);
    border-color: var(--cc-border);
    color: var(--cc-heading);
}

.cc-pagination__item.is-active .cc-pagination__link:hover {
    background: var(--cc-accent-hover);
    border-color: var(--cc-accent-hover);
    color: var(--cc-on-accent);
}

@media (max-width: 480px) {
    .cc-pagination__nav-label { display: none; }
    .cc-pagination__list { border-radius: 1rem; width: 100%; }
}

/* Monthly calendar */
.cc-month {
    display: grid;
    gap: 1.25rem;
}

.cc-month__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.cc-month__nav {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.cc-month__nav-btn {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 0.6rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    color: var(--cc-heading);
    display: grid;
    place-items: center;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.cc-month__nav-btn:hover {
    background: var(--cc-bg-muted);
    border-color: var(--cc-border-strong);
    color: var(--cc-heading);
}

.cc-month__label {
    margin: 0;
    min-width: 9.5rem;
    text-align: center;
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--cc-heading);
    letter-spacing: -0.02em;
}

.cc-month__grid {
    border: 1px solid var(--cc-border);
    border-radius: 1rem;
    overflow: hidden;
    background: var(--cc-bg-elevated);
}

.cc-month__weekdays,
.cc-month__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.cc-month__weekday {
    padding: 0.55rem 0.35rem;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
    background: var(--cc-bg-muted);
    border-bottom: 1px solid var(--cc-border);
}

.cc-month__day {
    min-height: 6.5rem;
    padding: 0.4rem;
    border-right: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
}

.cc-month__day:nth-child(7n) {
    border-right: 0;
}

.cc-month__day.is-outside {
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, transparent);
    opacity: 0.72;
}

.cc-month__day.is-today {
    background: color-mix(in srgb, var(--cc-soft-blue) 22%, var(--cc-bg-elevated));
}

.cc-month__day-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 750;
    color: var(--cc-heading);
}

.cc-month__day.is-today .cc-month__day-num {
    background: var(--cc-accent);
    color: var(--cc-on-accent);
}

.cc-month__day-events {
    list-style: none;
    margin: 0.3rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.18rem;
}

.cc-month__day-events a {
    display: block;
    padding: 0.15rem 0.3rem;
    border-radius: 0.3rem;
    background: color-mix(in srgb, var(--cc-soft-blue) 35%, transparent);
    color: var(--cc-heading);
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: none;
}

.cc-month__day-events a:hover {
    background: color-mix(in srgb, var(--cc-soft-blue) 55%, transparent);
    color: var(--cc-heading);
}

.cc-month__more {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--cc-text-muted);
}

.cc-month__list-head h4 {
    margin: 0 0 0.85rem;
    color: var(--cc-heading);
    font-size: 0.98rem;
}

.cc-entity-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.cc-entity-chip {
    display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.85rem;
    border-radius: var(--cc-radius-pill); background: var(--cc-bg-muted); border: 1px solid var(--cc-border);
    color: var(--cc-heading); text-decoration: none; font-weight: 600; font-size: 0.85rem;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.cc-entity-chip__logo {
    width: 1.35rem; height: 1.35rem; border-radius: 0.35rem; object-fit: cover;
    background: var(--cc-bg-elevated);
}
.cc-entity-chip:hover {
    border-color: var(--cc-soft-blue); background: var(--cc-info-bg); color: var(--cc-heading);
    box-shadow: var(--cc-card-shadow);
}

.cc-entity__hero {
    --cc-hero-h: 18.25rem; /* ~292px base / small phones */
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    height: var(--cc-hero-h);
    min-height: var(--cc-hero-h);
    max-height: var(--cc-hero-h);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: visible;
    background-color: #1a1410;
}
/* Mobile: compact band so title/CTAs stay above the fold */
@media (max-width: 575.98px) {
    .cc-entity__hero {
        --cc-hero-h: 17rem; /* 13.25rem + 60px */
    }
}
@media (min-width: 576px) and (max-width: 767.98px) {
    .cc-entity__hero {
        --cc-hero-h: 19.25rem; /* 15.5rem + 60px */
    }
}
@media (min-width: 768px) {
    .cc-entity__hero {
        --cc-hero-h: clamp(20rem, 42vh, 26rem);
    }
}
@media (min-width: 1200px) {
    .cc-entity__hero {
        --cc-hero-h: clamp(22rem, 46vh, 30rem);
    }
}
/* Dedicated media layer — sharper cover than CSS background-image alone */
.cc-entity__hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    background-color: #1a1410;
    background-image: var(--cc-hero-image, none);
    background-size: cover;
    background-position: center 32%;
    background-repeat: no-repeat;
    clip-path: inset(0);
}
.cc-entity__hero-img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    transform: translate(-50%, -50%) scale(1.04);
    object-fit: cover;
    object-position: center 32%;
    display: block;
    font-size: 0;
    color: transparent;
    pointer-events: none;
    user-select: none;
}
.cc-entity__hero-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(12, 8, 6, 0.42) 0%, rgba(12, 8, 6, 0.08) 28%, transparent 48%),
        linear-gradient(0deg, rgba(8, 5, 4, 0.9) 0%, rgba(8, 5, 4, 0.48) 38%, rgba(8, 5, 4, 0.14) 68%, transparent 100%);
}
.cc-entity__hero-main {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding-bottom: 0.65rem;
    width: 100%;
}
.cc-entity__hero-content {
    display: grid;
    gap: 0.35rem;
    padding: 0.85rem 0 0.25rem;
}
@media (min-width: 768px) {
    .cc-entity__hero-main {
        padding-bottom: 0.85rem;
    }
    .cc-entity__hero-content {
        padding: 1.25rem 0 0.4rem;
    }
}
.cc-entity__hero-content .cc-crumbs {
    margin-bottom: 0;
}
.cc-entity__identity-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.25rem;
    flex-wrap: wrap;
}
.cc-entity__identity {
    display: flex;
    gap: 1rem;
    align-items: center;
    min-width: 0;
    flex: 1 1 16rem;
}
.cc-entity__identity-text { min-width: 0; }
.cc-entity__logo {
    width: 4rem;
    height: 4rem;
    border-radius: 0.75rem;
    object-fit: cover;
    background: #fff;
    flex-shrink: 0;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.35);
}
.cc-entity__subtitle {
    margin: 0 0 0.3rem;
    font-size: clamp(0.72rem, 1.2vw, 0.88rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.3;
    opacity: 0.88;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
    color: inherit;
}
.cc-entity__subtitle--surface {
    opacity: 1;
    text-shadow: none;
    color: var(--cc-text-muted);
    letter-spacing: 0.03em;
}
.cc-entity__identity h1 {
    margin: 0;
    font-size: clamp(1.05rem, 2vw, 1.45rem);
    line-height: 1.15;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.cc-entity__loc,
.cc-entity__tagline {
    margin: 0.35rem 0 0;
    opacity: 0.92;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}
.cc-entity__actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-left: auto;
}
.cc-entity__body { padding: 1.5rem 0 3rem; }
.cc-entity__events .cc-explore__title-row { margin-bottom: 0.85rem; }
.cc-entity__events h2 { margin: 0; color: var(--cc-heading); font-size: 1.15rem; }
.cc-entity__events .cc-explore__toolbar { margin-bottom: 1.35rem; }

/* Full-bleed glass tab bar over hero footer */
.cc-entity__hero-bar {
    position: relative;
    z-index: 3;
    width: 100%;
    flex: 0 0 auto;
    background: linear-gradient(
        180deg,
        rgba(10, 7, 6, 0.08) 0%,
        rgba(8, 5, 4, 0.32) 100%
    );
    backdrop-filter: blur(18px) saturate(1.12);
    -webkit-backdrop-filter: blur(18px) saturate(1.12);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: none;
}
.cc-entity-tabs {
    display: flex;
    align-items: stretch;
    gap: 0.15rem;
    min-height: 3.15rem;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.cc-entity-tabs::-webkit-scrollbar { display: none; }
.cc-entity-tabs__tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    flex: 0 0 auto;
    min-width: 7.5rem;
    padding: 0.95rem 1.35rem 0.9rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.18s ease, background 0.18s ease;
}
.cc-entity-tabs__tab::after {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0;
    height: 2.5px;
    border-radius: 999px 999px 0 0;
    background: transparent;
    transform: scaleX(0.55);
    opacity: 0;
    transition: opacity 0.18s ease, transform 0.18s ease, background 0.18s ease;
}
.cc-entity-tabs__tab:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}
.cc-entity-tabs__tab.is-active {
    color: #fff;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 100%);
}
.cc-entity-tabs__tab.is-active::after {
    opacity: 1;
    transform: scaleX(1);
    background: linear-gradient(90deg, var(--cc-soft-peach) 0%, var(--cc-orange) 55%, #ff6a3d 100%);
    box-shadow: 0 0 16px rgba(254, 65, 25, 0.55);
}
.cc-entity-tabs__tab i {
    font-size: 13px;
    line-height: 1;
    opacity: 0.9;
    margin: 0;
    translate: 0 0.5px;
}

/* Header layout toggle + split mode */
.cc-entity-layout-toggle {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem;
    gap: 0.15rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.cc-entity-header--split .cc-entity-layout-toggle {
    border-color: var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-entity-layout-toggle__btn {
    appearance: none;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.78);
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.cc-entity-header--split .cc-entity-layout-toggle__btn {
    color: var(--cc-text-muted);
}
.cc-entity-layout-toggle__btn:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
}
.cc-entity-header--split .cc-entity-layout-toggle__btn:hover {
    color: var(--cc-heading);
    background: var(--cc-bg-muted);
}
.cc-entity-layout-toggle__btn.is-active {
    color: var(--cc-brown);
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.16);
}
.cc-entity-header--split .cc-entity-layout-toggle__btn.is-active {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, #fff);
    box-shadow: none;
}

.cc-entity[data-header-layout="cover"] .cc-entity-header--split { display: none; }
.cc-entity[data-header-layout="split"] .cc-entity-header--cover { display: none; }

.cc-entity-header--split {
    padding-top: 1.15rem;
}
.cc-entity-header__split-inner {
    position: relative;
    display: grid;
    gap: 0.85rem;
}
.cc-entity-header__split-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}
.cc-entity-header__split-top .cc-crumbs {
    margin: 0;
    min-width: 0;
}
.cc-entity-header__split-tools {
    flex: 0 0 auto;
    margin-left: auto;
}
/* Must beat .cc-city__layout { align-items: start } (same element, later rule). */
.cc-city__layout.cc-entity-header__split-layout {
    align-items: stretch;
}

.cc-entity-header__split-layout .cc-city__main,
.cc-entity-header__split-layout .cc-city__side {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.cc-entity-header__split-layout .cc-city__main > *,
.cc-entity-header__split-layout .cc-city__side > * {
    flex: 1 1 auto;
    width: 100%;
}

.cc-entity-header__split-layout .cc-city__main > .cc-entity-media {
    flex: 0 0 auto;
    height: 400px;
    min-height: 400px;
    max-height: 400px;
}
.cc-entity-header__split-bar {
    margin-top: 1rem;
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-bg-elevated));
    border-top: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
}
.cc-entity-header__split-bar .cc-entity-tabs {
    min-height: 2.9rem;
}
.cc-entity-header__split-bar .cc-entity-tabs__tab {
    color: var(--cc-text-muted);
    min-width: 6.5rem;
    padding: 0.85rem 1.15rem 0.8rem;
}
.cc-entity-header__split-bar .cc-entity-tabs__tab:hover {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-bg-elevated) 80%, transparent);
}
.cc-entity-header__split-bar .cc-entity-tabs__tab.is-active {
    color: var(--cc-heading);
    background: transparent;
}
.cc-entity-header__split-bar .cc-entity-tabs__tab.is-active::after {
    background: linear-gradient(90deg, var(--cc-soft-peach) 0%, var(--cc-orange) 55%, #ff6a3d 100%);
    box-shadow: 0 0 12px rgba(254, 65, 25, 0.35);
}

/* Entity split media carousel — fixed band so cover images fill the card */
.cc-entity-media,
.cc-entity-media__frame,
.cc-entity-intro {
    height: 400px;
    min-height: 400px;
    max-height: 400px;
}

.cc-entity-header--split .cc-entity-media {
    display: block;
    width: 100%;
    margin: 0;
}

.cc-entity-header--split .cc-entity-media__frame {
    height: 400px !important;
    min-height: 400px !important;
    max-height: 400px !important;
}

.cc-entity-header--split .cc-entity-media__track {
    height: 100% !important;
    min-height: 100% !important;
    grid-auto-columns: 100%;
    align-items: stretch;
}

.cc-entity-header--split .cc-entity-media__slide {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    position: relative;
    align-self: stretch;
}

.cc-entity-header--split .cc-entity-media__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center;
}

.cc-entity-header__mobile-title {
    display: none;
    margin: 0 0 0.75rem;
}

.cc-entity-header__mobile-title h1 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
    color: var(--cc-heading);
}

.cc-entity-header__mobile-loc {
    margin: 0.3rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

@media (max-width: 991.98px) {
    .cc-entity-header__split-inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 0.55rem;
        row-gap: 0.55rem;
    }

    .cc-entity-header__split-top {
        display: contents;
    }

    .cc-entity-header__split-top > .cc-crumbs {
        display: none;
    }

    .cc-entity-header__split-tools {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .cc-entity-header__mobile-title {
        display: block;
        grid-column: 1;
        grid-row: 1;
        margin: 0;
        min-width: 0;
        align-self: center;
    }

    .cc-entity-header__split-layout {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-entity-media,
    .cc-entity-media__frame {
        height: min(270px, 52vw);
        min-height: min(270px, 52vw);
        max-height: min(270px, 52vw);
    }

    .cc-entity-header--split .cc-entity-header__side .cc-entity-intro {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0;
        padding: 0.65rem 0 0;
        border: 0;
        box-shadow: none;
        background: transparent;
        gap: 0;
        border-radius: 0;
        justify-content: flex-start;
    }

    .cc-entity-header--split .cc-entity-header__side .cc-entity-intro > *:not(.cc-entity-intro__actions),
    .cc-entity-header--split .cc-entity-intro__top,
    .cc-entity-header--split .cc-entity-intro__chips,
    .cc-entity-header--split .cc-entity-intro__stats {
        display: none !important;
    }

    .cc-entity-header--split .cc-entity-header__side .cc-entity-intro__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        margin-top: 0;
    }

    .cc-entity-header--split .cc-entity-header__side .cc-entity-intro__actions .cc-btn {
        flex: 1 1 calc(50% - 0.4rem);
        width: auto;
        min-width: 0;
        justify-content: center;
        padding: 0.4rem 0.65rem;
        font-size: 0.78rem;
        gap: 0.3rem;
        border-radius: 0.55rem;
    }

    .cc-entity-header__split-layout .cc-city__side > * {
        flex: 0 0 auto;
    }

    .cc-entity-media__btn {
        width: 2.1rem;
        height: 2.1rem;
        font-size: 0.9rem;
    }

    .cc-entity-header__split-bar .cc-entity-tabs {
        min-height: 2.45rem;
    }

    .cc-entity-header__split-bar .cc-entity-tabs__tab {
        min-width: 0;
        padding: 0.65rem 0.85rem 0.6rem;
        font-size: 0.82rem;
    }
}
.cc-entity-media__frame {
    position: relative;
    border-radius: 1.25rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    box-shadow: var(--cc-card-shadow);
}
.cc-entity-media__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    height: 100%;
    align-items: stretch;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    cursor: grab;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}
.cc-entity-media__track::-webkit-scrollbar { display: none; }
.cc-entity-media__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}
.cc-entity-media__slide {
    margin: 0;
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 100%;
    max-height: none;
    align-self: stretch;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    overflow: hidden;
    background: var(--cc-bg-muted);
}
.cc-entity-media__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
    user-select: none;
    pointer-events: none;
}
.cc-entity-media__btn {
    position: absolute;
    top: 50%;
    z-index: 4;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.48);
    color: #fff;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
}
.cc-entity-media__btn:hover { background: rgba(0, 0, 0, 0.68); color: #fff; }
.cc-entity-media__btn:disabled { opacity: 0.28; pointer-events: none; }
.cc-entity-media__btn--prev { left: 0.85rem; }
.cc-entity-media__btn--next { right: 0.85rem; }
/* Media dots removed — arrows only */

/* Entity split intro panel */
.cc-entity-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.85rem;
    padding: 1.35rem 1.35rem 1.45rem;
    border-radius: 1.25rem;
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(165deg, color-mix(in srgb, var(--cc-soft-blue) 18%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 48%),
        var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-entity-intro__top {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}
.cc-entity-intro__logo {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 0.75rem;
    object-fit: cover;
    background: #fff;
    border: 1px solid var(--cc-border);
    flex-shrink: 0;
}
.cc-entity-intro__copy { min-width: 0; }
.cc-entity-intro h1 {
    margin: 0;
    font-size: clamp(0.95rem, 1.45vw, 1.15rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.2;
    color: var(--cc-heading);
}
.cc-entity-intro__loc {
    margin: 0.3rem 0 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--cc-text-muted);
    font-size: 0.85rem;
    line-height: 1.35;
}
.cc-entity-intro__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.cc-entity-intro__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 750;
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, transparent);
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 40%, var(--cc-border));
}
.cc-entity-intro__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}
.cc-entity-intro__stat {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 45%, var(--cc-border));
    background: linear-gradient(145deg, color-mix(in srgb, var(--cc-soft-blue) 22%, #fff) 0%, color-mix(in srgb, var(--cc-bg-muted) 80%, #fff) 100%);
}
.cc-entity-intro__stat:last-child {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 50%, var(--cc-border));
    background: linear-gradient(145deg, color-mix(in srgb, var(--cc-soft-peach) 28%, #fff) 0%, color-mix(in srgb, var(--cc-bg-muted) 75%, #fff) 100%);
}
.cc-entity-intro__stat-icon {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 35%, transparent);
    color: var(--cc-heading);
    font-size: 0.95rem;
}
.cc-entity-intro__stat-body { min-width: 0; display: grid; gap: 0.05rem; }
.cc-entity-intro__stat-value {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.cc-entity-intro__stat-label {
    color: var(--cc-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
}
.cc-entity-intro__actions {
    display: grid;
    gap: 0.55rem;
    margin-top: auto;
}
.cc-entity-intro__actions .cc-btn {
    width: 100%;
    justify-content: center;
}

/* Entity profile body */
.cc-entity-profile__stack { display: grid; gap: 1rem; }
.cc-entity-profile__highlights {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}
.cc-entity-profile__highlights li {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    color: var(--cc-heading);
    font-size: 0.92rem;
    line-height: 1.4;
}
.cc-entity-profile__highlights i { color: var(--cc-success); margin-top: 0.1rem; }
.cc-entity-profile__tablist {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 0.85rem;
    padding: 0.25rem;
    border-radius: 0.85rem;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
}
.cc-entity-profile__tab {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--cc-text-muted);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 750;
    padding: 0.5rem 0.75rem;
    border-radius: 0.65rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.cc-entity-profile__tab:hover { color: var(--cc-heading); background: color-mix(in srgb, var(--cc-bg-elevated) 80%, transparent); }
.cc-entity-profile__tab.is-active {
    color: var(--cc-heading);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-entity-profile__tab-count {
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    font-size: 0.68rem;
    font-weight: 800;
    background: color-mix(in srgb, var(--cc-soft-blue) 40%, var(--cc-bg-muted));
    color: var(--cc-heading);
}
.cc-entity-profile__pane[hidden] { display: none !important; }
.cc-entity-profile__specs {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.65rem;
}
.cc-entity-profile__specs > div {
    padding: 0.65rem 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}
.cc-entity-profile__specs dt {
    margin: 0 0 0.2rem;
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}
.cc-entity-profile__specs dd {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--cc-heading);
}
.cc-entity-profile__amenities {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.45rem;
}
.cc-entity-profile__amenities li {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.88rem;
    color: var(--cc-heading);
}
.cc-entity-profile__amenities i { color: var(--cc-accent); }
.cc-entity-profile__rooms { display: grid; gap: 0.75rem; }
.cc-entity-profile__room {
    padding: 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}
.cc-entity-profile__room h4 {
    margin: 0 0 0.35rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.95rem;
    color: var(--cc-heading);
}
.cc-entity-profile__room p {
    margin: 0 0 0.55rem;
    font-size: 0.88rem;
    color: var(--cc-text);
    line-height: 1.45;
}
.cc-entity-profile__room dl {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    gap: 0.45rem;
}
.cc-entity-profile__room dt {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cc-text-muted);
}
.cc-entity-profile__room dd {
    margin: 0.1rem 0 0;
    font-size: 0.85rem;
    font-weight: 650;
    color: var(--cc-heading);
}
.cc-entity-profile__hours {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}
.cc-entity-profile__hours li {
    display: grid;
    grid-template-columns: 7rem 1fr;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
    padding: 0.45rem 0.55rem;
    border-radius: 0.55rem;
    background: var(--cc-bg-muted);
}
.cc-entity-profile__hours li.is-closed { opacity: 0.72; }
.cc-entity-profile__hours strong { color: var(--cc-heading); font-size: 0.88rem; }
.cc-entity-profile__hours span { color: var(--cc-text); font-size: 0.88rem; }
.cc-entity-profile__hours em {
    grid-column: 1 / -1;
    font-style: normal;
    font-size: 0.78rem;
    color: var(--cc-text-muted);
}
.cc-entity-profile__sub {
    margin: 0.85rem 0 0.4rem;
    font-size: 0.92rem;
    color: var(--cc-heading);
}
.cc-entity-profile__gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.5rem;
}
.cc-entity-profile__gallery-item {
    aspect-ratio: 1;
    border-radius: 0.65rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}
.cc-entity-profile__gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.cc-entity-profile__link-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    color: inherit;
    text-decoration: none;
}
.cc-entity-profile__link-card:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 55%, var(--cc-border));
    color: inherit;
}
.cc-entity-profile__link-card strong {
    display: block;
    color: var(--cc-heading);
    font-size: 0.92rem;
}
.cc-entity-profile__link-card small {
    display: block;
    color: var(--cc-text-muted);
    font-size: 0.78rem;
    margin-top: 0.1rem;
}
.cc-entity-profile__map {
    border-radius: 0.85rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
}
.cc-entity-profile__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--cc-border);
}
.cc-entity-profile__social a {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
    text-decoration: none;
}
.cc-entity-profile__social a:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 50%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-blue) 18%, var(--cc-bg-elevated));
}
.cc-entity-profile__related {
    display: grid;
    gap: 1.75rem;
    margin-top: 1.75rem;
}
.cc-entity-profile__related h2 {
    margin: 0;
    color: var(--cc-heading);
    font-size: 1.15rem;
}

.cc-entity-aside__prose {
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--cc-text);
    max-height: 14rem;
    overflow: auto;
}

.cc-entity-aside__details {
    margin: 0;
    display: grid;
    gap: 0.45rem;
}

.cc-entity-aside__details > div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    column-gap: 0.65rem;
    row-gap: 0.15rem;
    min-width: 0;
    padding: 0.65rem 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: 0 1px 2px rgba(52, 7, 1, 0.03);
}

.cc-entity-aside__details dt {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0.05rem 0 0;
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    border-radius: 0.5rem;
    border: 1px solid color-mix(in srgb, var(--cc-border) 80%, var(--cc-soft-blue));
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-soft-blue) 12%);
    color: var(--cc-text-muted);
    font-size: 0;
    line-height: 0;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 400;
    overflow: hidden;
}

.cc-entity-aside__details dt i {
    font-size: 0.88rem;
    line-height: 1;
}

.cc-entity-aside__details dd {
    grid-column: 2;
    margin: 0;
    min-width: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--cc-text);
    font-weight: 400;
    letter-spacing: 0;
}

.cc-entity-aside__details a {
    color: var(--cc-text);
    text-decoration: none;
    font-weight: 400;
}

.cc-entity-aside__details a:hover {
    color: var(--cc-link);
}

.cc-entity-aside__details .cc-profile-reveal {
    font-size: 0.8125rem;
    font-weight: 500;
}

.cc-profile-reveal {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--cc-link);
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
}

.cc-profile-reveal:hover {
    color: var(--cc-link-hover);
    text-decoration: underline;
}

.cc-contact-modal__dialog {
    max-width: 28rem;
    width: calc(100% - 1.5rem);
}

@media (min-width: 576px) {
    .cc-contact-modal__dialog {
        max-width: 32rem;
    }
}

.cc-contact-modal .modal-header {
    justify-content: flex-end;
    min-height: 0;
    padding-bottom: 0.15rem !important;
}

.cc-contact-modal .modal-body {
    padding-top: 0.15rem !important;
}

.cc-contact-modal__hero {
    text-align: center;
    padding: 0 0.25rem 1.15rem;
}

.cc-contact-modal__icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    display: grid;
    place-items: center;
    border-radius: 1rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--cc-accent) 18%, transparent), color-mix(in srgb, var(--cc-soft-blue) 28%, transparent));
    color: var(--cc-accent);
    font-size: 1.35rem;
    border: 1px solid color-mix(in srgb, var(--cc-accent) 22%, var(--cc-border));
    box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--cc-accent) 55%, transparent);
}

.cc-contact-modal__icon--mail {
    background: linear-gradient(145deg, rgba(16, 185, 129, 0.16), rgba(16, 185, 129, 0.06));
    color: #059669;
    border-color: rgba(16, 185, 129, 0.22);
    box-shadow: 0 10px 24px -14px rgba(16, 185, 129, 0.45);
}

.cc-contact-modal__kicker {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}

.cc-contact-modal__title {
    margin: 0 0 0.4rem;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    line-height: 1.25;
}

.cc-contact-modal__hint {
    margin: 0 auto;
    max-width: 24rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--cc-text-muted);
}

.cc-contact-modal__card {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted, color-mix(in srgb, var(--cc-bg) 92%, var(--cc-heading)));
    margin-bottom: 1rem;
}

.cc-contact-modal__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cc-text-muted);
}

.cc-contact-modal__row {
    display: grid;
    gap: 0.65rem;
    justify-items: stretch;
}

.cc-contact-modal__value {
    min-width: 0;
    font-size: 1.02rem;
    font-weight: 750;
    color: var(--cc-heading) !important;
    word-break: break-word;
    line-height: 1.3;
    text-decoration: none !important;
    text-align: center;
}

.cc-contact-modal__value:hover {
    color: var(--cc-link) !important;
}

.cc-contact-modal__copy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    color: var(--cc-heading);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cc-contact-modal__copy:hover {
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, transparent);
    border-color: color-mix(in srgb, var(--cc-accent) 35%, var(--cc-border));
    color: var(--cc-accent);
}

.cc-contact-modal__copy.is-copied {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.35);
    color: #059669;
}

.cc-contact-modal__actions {
    display: grid;
    gap: 0.5rem;
}

@media (max-width: 991.98px) {
    .cc-entity__hero-main {
        padding-bottom: 0.45rem;
    }

    .cc-entity__hero-content {
        padding-top: 0.55rem;
        gap: 0.3rem;
    }

    .cc-entity__logo {
        width: 2.65rem;
        height: 2.65rem;
        border-radius: 0.55rem;
    }

    .cc-entity__identity-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.45rem 0.65rem;
    }

    .cc-entity__identity {
        grid-column: 1;
        grid-row: 1;
        flex: none;
        gap: 0.55rem;
        min-width: 0;
    }

    .cc-entity__identity-row > .cc-entity-layout-toggle {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        flex-shrink: 0;
    }

    .cc-entity__identity h1 {
        font-size: 0.95rem;
    }

    .cc-entity__subtitle {
        font-size: 0.68rem;
    }

    .cc-entity__loc,
    .cc-entity__tagline {
        font-size: 0.8rem;
    }

    .cc-entity__actions {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        margin-left: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.4rem;
    }

    .cc-entity__actions .cc-btn {
        width: 100%;
        min-width: 0;
        min-height: 2.1rem;
        justify-content: center;
        padding: 0.38rem 0.55rem;
        font-size: 0.76rem;
        gap: 0.28rem;
        border-radius: 0.55rem;
        white-space: nowrap;
    }

    .cc-entity-tabs {
        min-height: 2.35rem;
        gap: 0;
    }

    .cc-entity-tabs__tab {
        flex: 1 1 0;
        min-width: 0;
        gap: 0.28rem;
        padding: 0.55rem 0.55rem 0.5rem;
        font-size: 11px;
        letter-spacing: 0.01em;
    }

    .cc-entity-tabs__tab::after {
        left: 0.45rem;
        right: 0.45rem;
        height: 2px;
    }

    .cc-entity-tabs__tab i {
        font-size: 11px;
    }

    .cc-entity-media,
    .cc-entity-media__frame,
    .cc-entity-media__slide {
        min-height: min(270px, 52vw);
    }

    .cc-entity-header--split .cc-entity-header__side .cc-entity-intro {
        min-height: 0;
    }

    .cc-entity-intro__stats {
        grid-template-columns: 1fr;
    }
}

.cc-panel {
    background: var(--cc-bg-elevated); border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius); padding: 1.25rem; box-shadow: var(--cc-card-shadow);
}
.cc-panel h2 { margin: 0 0 0.75rem; color: var(--cc-heading); font-size: 1.1rem; }
.cc-panel__lead { font-size: 1.05rem; color: var(--cc-heading); margin: 0 0 0.75rem; }
.cc-panel__prose { color: var(--cc-text); line-height: 1.65; }
.cc-panel--sticky {
    position: sticky;
    top: calc(var(--cc-header-h, 4.5rem) + 1rem);
    align-self: start;
    max-height: calc(100vh - var(--cc-header-h, 4.5rem) - 2rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    z-index: 1;
}

.cc-event { padding: 0 0 3rem; }
.cc-event[data-header-layout="split"] .cc-event-header--cover { display: none; }
.cc-event[data-header-layout="cover"] .cc-event-header--split { display: none; }

.cc-event-header--split {
    padding-top: 1.15rem;
}
.cc-event-header__split-inner {
    display: grid;
    gap: 0.85rem;
}
.cc-event-header__split-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}
.cc-event-header__split-top .cc-crumbs {
    margin: 0;
    min-width: 0;
}
.cc-event-header__split-tools {
    flex: 0 0 auto;
    margin-left: auto;
}
.cc-event-header__split-tools .cc-entity-layout-toggle {
    border-color: var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}
.cc-event-header__split-tools .cc-entity-layout-toggle__btn {
    color: var(--cc-text-muted);
}
.cc-event-header__split-tools .cc-entity-layout-toggle__btn:hover {
    color: var(--cc-heading);
    background: var(--cc-bg-muted);
}
.cc-event-header__split-tools .cc-entity-layout-toggle__btn.is-active {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-blue) 28%, #fff);
    box-shadow: none;
}
/* Must beat .cc-city__layout { align-items: start } (same element, later rule). */
.cc-city__layout.cc-event-header__split-layout {
    align-items: stretch;
}
.cc-event-header__split-layout .cc-city__main,
.cc-event-header__split-layout .cc-city__side {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}
.cc-event-header__split-layout .cc-city__main > *,
.cc-event-header__split-layout .cc-city__side > * {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
}
.cc-event-header__split-bar {
    margin-top: 1rem;
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-bg-elevated));
    border-top: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
}
.cc-event-header__split-bar .cc-entity-tabs {
    min-height: 2.9rem;
}
.cc-event-header__split-bar .cc-entity-tabs__tab {
    color: var(--cc-text-muted);
    min-width: 6.5rem;
    padding: 0.85rem 1.15rem 0.8rem;
}
.cc-event-header__split-bar .cc-entity-tabs__tab:hover {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-bg-elevated) 80%, transparent);
}
.cc-event-header__split-bar .cc-entity-tabs__tab.is-active {
    color: var(--cc-heading);
    background: transparent;
}
.cc-event-header__split-bar .cc-entity-tabs__tab.is-active::after {
    background: linear-gradient(90deg, var(--cc-soft-peach) 0%, var(--cc-orange) 55%, #ff6a3d 100%);
    box-shadow: 0 0 12px rgba(254, 65, 25, 0.35);
}

.cc-event-intro {
    gap: 1.1rem;
    padding: 1.45rem 1.4rem 1.5rem;
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-soft-blue) 12%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 42%),
        var(--cc-bg-elevated);
}
.cc-event-intro__head {
    display: grid;
    gap: 0.45rem;
    min-width: 0;
}
/* Fill split column height; frame grows so the image covers the full media area. */
.cc-event .cc-entity-media {
    height: 100%;
    min-height: 400px;
    max-height: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.cc-event .cc-entity-media__frame {
    position: relative;
    flex: 1 1 auto;
    height: auto;
    min-height: 400px;
    max-height: none;
    width: 100%;
    overflow: hidden;
}
.cc-event .cc-entity-media__track {
    position: absolute;
    inset: 0;
    height: 100% !important;
    min-height: 100% !important;
    width: 100%;
    grid-auto-columns: 100%;
    align-items: stretch;
}
.cc-event .cc-entity-media__slide {
    position: relative;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    align-self: stretch;
    overflow: hidden;
}
.cc-event .cc-entity-media__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center;
}
.cc-event .cc-entity-media__dots {
    display: none;
}
.cc-event .cc-entity-intro.cc-event-intro {
    height: 100%;
    min-height: 400px;
    max-height: none;
}
.cc-event-media__chips {
    margin: 0;
    flex: 0 0 auto;
    flex-wrap: wrap;
}
.cc-event-intro h1 {
    margin: 0;
    font-size: clamp(0.95rem, 1.4vw, 1.15rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--cc-heading);
}

/* Event detail — small screens: fixed media height + tighter type */
@media (max-width: 991.98px) {
    /* Stacked columns: don't stretch main to intro height (empty gap under image). */
    .cc-city__layout.cc-event-header__split-layout {
        align-items: start;
    }

    .cc-event-header__split-layout .cc-city__main,
    .cc-event-header__split-layout .cc-city__side {
        height: auto;
        min-height: 0;
        align-self: start;
    }

    .cc-event-header__split-layout .cc-city__main > *,
    .cc-event-header__split-layout .cc-city__side > * {
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
    }

    .cc-event .cc-entity-media {
        height: auto;
        min-height: 0;
        max-height: none;
        flex: 0 0 auto;
        gap: 0.5rem;
    }

    .cc-event .cc-entity-media__frame {
        flex: 0 0 auto;
        height: min(270px, 52vw) !important;
        min-height: min(270px, 52vw) !important;
        max-height: min(270px, 52vw) !important;
    }

    .cc-event .cc-entity-media__track,
    .cc-event .cc-entity-media__slide {
        height: 100% !important;
        min-height: 100% !important;
    }

    .cc-event .cc-entity-media__img {
        object-fit: cover !important;
    }

    .cc-event .cc-entity-intro.cc-event-intro {
        height: auto;
        min-height: 0;
        max-height: none;
        flex: 0 0 auto;
    }

    /* Cover header: title + layout toggle, then compact action buttons */
    .cc-event-header--cover .cc-entity__identity-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.4rem 0.5rem;
    }

    .cc-event-header--cover .cc-entity__identity {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }

    .cc-event-header--cover .cc-entity__identity-row > .cc-entity-layout-toggle {
        grid-column: 2;
        grid-row: 1;
    }

    .cc-event-header--cover .cc-entity__actions {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        max-width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
        margin-left: 0;
    }

    .cc-event-header--cover .cc-entity__actions .cc-btn {
        flex: 1 1 calc(33.333% - 0.35rem);
        width: auto;
        min-width: 0;
        max-width: 100%;
        min-height: 2rem;
        justify-content: center;
        padding: 0.32rem 0.4rem;
        font-size: 0.68rem;
        gap: 0.22rem;
        border-radius: 0.5rem;
        white-space: nowrap;
    }

    .cc-event-header--cover .cc-entity__actions .cc-btn i {
        font-size: 0.9em;
        flex-shrink: 0;
    }

    .cc-event-header--cover .cc-entity__actions .cc-btn span {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .cc-event-intro {
        padding: 1.1rem 1rem 1.15rem;
        gap: 0.85rem;
    }

    .cc-event-intro h1 {
        font-size: 0.95rem;
    }

    .cc-event-intro__subtitle {
        font-size: 0.8rem;
        line-height: 1.4;
    }

    .cc-event-intro__card {
        padding: 0.55rem 0.65rem;
        column-gap: 0.55rem;
        grid-template-columns: 1.65rem 1fr;
    }

    .cc-event-intro__card-icon {
        width: 1.65rem;
        height: 1.65rem;
        font-size: 0.78rem;
    }

    .cc-event-intro__card-text {
        font-size: 0.75rem;
        line-height: 1.3;
    }

    .cc-event-intro .cc-entity-intro__actions > .cc-btn,
    .cc-event-intro__actions > .cc-btn {
        min-height: 2.15rem;
        padding-inline: 0.85rem;
        font-size: 0.8rem;
    }

    .cc-event-header__split-bar .cc-entity-tabs__tab {
        min-width: 0;
        padding: 0.75rem 0.7rem 0.7rem;
        font-size: 0.78rem;
    }

    .cc-event__body {
        padding-top: 1.1rem;
    }

    .cc-event .cc-panel {
        padding: 1rem;
    }

    .cc-event .cc-panel h2,
    .cc-event .cc-panel__head h2 {
        font-size: 0.95rem;
    }

    .cc-event .cc-panel__lead {
        font-size: 0.9rem;
    }

    .cc-event .cc-panel__prose {
        font-size: 0.875rem;
        line-height: 1.55;
    }

    .cc-event .cc-detail-list dt {
        font-size: 0.7rem;
    }

    .cc-event .cc-detail-list dd {
        font-size: 0.85rem;
    }

    .cc-event-hotels {
        padding: 0.9rem 0.95rem 1rem;
    }

    .cc-event-hotels__head h2 {
        font-size: 0.95rem;
    }

    .cc-event-hotels__lead {
        font-size: 0.8rem;
    }

    .cc-event-related h2 {
        font-size: 0.98rem;
    }

    .cc-event-sidebar__section h2,
    .cc-event-sidebar__section h3 {
        font-size: 0.88rem;
    }

    .cc-event-sidebar__when-date {
        font-size: 0.92rem;
    }

    .cc-event-sidebar__when-time {
        font-size: 0.8rem;
    }

    .cc-event-header--cover.cc-entity__hero {
        height: 270px;
        min-height: 270px;
    }

    .cc-event-header--cover .cc-entity__identity h1 {
        font-size: clamp(1rem, 4.2vw, 1.2rem);
    }

    .cc-event-header--cover .cc-entity__loc,
    .cc-event-header--cover .cc-entity__tagline {
        font-size: 0.8rem;
    }
}
.cc-event-intro__subtitle {
    margin: 0;
    color: var(--cc-text-muted);
    font-size: 0.88rem;
    line-height: 1.45;
}
.cc-event-intro__chip--accent {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-peach) 34%, transparent);
    border-color: color-mix(in srgb, var(--cc-soft-peach) 50%, var(--cc-border));
}
.cc-event-intro__meta {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.15rem;
}
.cc-event-intro__card {
    display: grid;
    grid-template-columns: 1.85rem 1fr;
    align-items: center;
    column-gap: 0.65rem;
    min-width: 0;
    padding: 0.65rem 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: 0 1px 2px rgba(52, 7, 1, 0.03);
}
.cc-event-intro__card-icon {
    width: 1.85rem;
    height: 1.85rem;
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    border-radius: 0.5rem;
    border: 1px solid color-mix(in srgb, var(--cc-border) 80%, var(--cc-soft-blue));
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-soft-blue) 12%);
    color: var(--cc-text-muted);
    font-size: 0.88rem;
    line-height: 1;
}
.cc-event-intro__card-icon .bi {
    display: block;
    line-height: 1;
}
.cc-event-intro__card:last-child .cc-event-intro__card-icon {
    border-color: color-mix(in srgb, var(--cc-border) 80%, var(--cc-soft-peach));
    background: color-mix(in srgb, var(--cc-bg-muted) 70%, var(--cc-soft-peach) 14%);
    color: var(--cc-text-muted);
}
.cc-event-intro__card-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
    min-width: 0;
    color: var(--cc-text);
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
}
.cc-event-intro__when-date {
    display: block;
    color: var(--cc-heading);
    font-weight: 500;
    line-height: 1.35;
}
.cc-event-intro__when-time {
    display: block;
    color: var(--cc-text-muted);
    font-size: 0.92em;
    font-weight: 400;
}
.cc-event-intro__card-text a {
    color: var(--cc-text);
    text-decoration: none;
    font-weight: 400;
}
.cc-event-intro__card-text a:hover {
    color: var(--cc-link);
}
.cc-event-intro .cc-entity-intro__actions,
.cc-event-intro__actions {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.15rem;
    padding-top: 0.15rem;
}
.cc-event-intro .cc-entity-intro__actions > .cc-btn,
.cc-event-intro__actions > .cc-btn {
    width: 100%;
    justify-content: center;
}
.cc-event-more {
    position: relative;
    width: 100%;
}
.cc-event-more__toggle {
    width: 100%;
    justify-content: center;
}
.cc-event-more__caret {
    font-size: 0.7rem;
    opacity: 0.75;
}
.cc-event-more__menu {
    min-width: 12.5rem;
    padding: 0.35rem;
    border: 1px solid var(--cc-border);
    border-radius: 0.85rem;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 16px 36px -18px rgba(52, 7, 1, 0.28);
}
.cc-event-more__item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    color: var(--cc-heading);
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.cc-event-more__item:hover,
.cc-event-more__item:focus {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}
.cc-event-more__item i {
    font-size: 1rem;
    opacity: 0.9;
}
.cc-event-more__item.is-added {
    color: var(--cc-brown);
}
.cc-event-more__item.is-liked {
    color: #be123c;
}
.cc-event-more__item.is-favorited {
    color: var(--cc-brown);
}

.cc-event__body { padding-top: 1.5rem; }
.cc-event__layout { display: grid; gap: 1.25rem; }
.cc-event__main { display: grid; gap: 1rem; min-width: 0; }

/* Stay22 hotels embeds — card grows with embed/iframe height (no forced map height). */
.cc-event-hotels {
    display: grid;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-surface, #fff);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 14px 32px -22px rgba(52, 7, 1, 0.18);
}
.cc-event-hotels__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}
.cc-event-hotels__head h2 {
    margin: 0;
    color: var(--cc-heading);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}
.cc-event-hotels__lead {
    margin: 0.25rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.88rem;
    line-height: 1.45;
}
.cc-event-hotels__map {
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}
.cc-event-hotels__map .stay22-embed-map,
.cc-event-hotels__map iframe {
    display: block;
    width: 100%;
    border: 0;
}
.cc-event-hotels--compact {
    padding: 0.95rem 1rem 1rem;
}
.cc-event-hotels--compact .cc-event-hotels__head h2 {
    font-size: 0.98rem;
}

.cc-city-hotels {
    display: grid;
    gap: 1rem;
    padding: 1.15rem 1.25rem 1.25rem;
    border-radius: 1rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-surface, #fff);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 14px 32px -22px rgba(52, 7, 1, 0.18);
}
.cc-city-hotels__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}
.cc-city-hotels__head h2 {
    margin: 0;
    color: var(--cc-heading);
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}
.cc-city-hotels__lead {
    margin: 0.3rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}
.cc-city-hotels__frame {
    border-radius: 0.85rem;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}
.cc-city-hotels__frame .stay22-embed-map,
.cc-city-hotels__frame iframe {
    display: block;
    width: 100%;
    border: 0;
}

.cc-card--event .cc-card__actions .hotel-link,
.cc-event-slide__actions .hotel-link {
    white-space: nowrap;
}
.cc-event-related {
    display: grid;
    gap: 1rem;
    margin-top: 1.75rem;
}
.cc-event-related .cc-explore__title-row {
    align-items: baseline;
}
.cc-event-related h2 {
    margin: 0;
    color: var(--cc-heading);
    font-size: 1.15rem;
}
.cc-event__aside { min-width: 0; }

.cc-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.cc-panel__head h2 { margin: 0; }
.cc-panel__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
    color: var(--cc-text-muted);
    font-size: 0.72rem;
    font-weight: 750;
}

.cc-detail-list { margin: 0; display: grid; gap: 0.85rem; }
.cc-detail-list > div { display: grid; gap: 0.2rem; }
.cc-detail-list dt { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cc-text-muted); font-weight: 700; display: flex; align-items: center; gap: 0.3rem; }
.cc-detail-list dd { margin: 0; color: var(--cc-heading); font-weight: 400; }
.cc-detail-list a { color: var(--cc-link); }
.cc-detail-list a:hover { color: var(--cc-link-hover); }

.cc-event-sidebar { display: grid; gap: 1.15rem; }
.cc-event-sidebar__section { display: grid; gap: 0.7rem; }
.cc-event-sidebar__section + .cc-event-sidebar__section {
    padding-top: 1.05rem;
    border-top: 1px solid var(--cc-border);
}
.cc-event-sidebar__section h2,
.cc-event-sidebar__section h3 {
    margin: 0;
    color: var(--cc-heading);
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.cc-event-sidebar__when {
    display: grid;
    gap: 0.2rem;
}
.cc-event-sidebar__types {
    margin: 0.15rem 0 0;
    flex-wrap: wrap;
}
.cc-event-sidebar__when-date {
    color: var(--cc-heading);
    font-size: 1.02rem;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.3;
}
.cc-event-sidebar__when-time {
    color: var(--cc-text-muted);
    font-size: 0.88rem;
    font-weight: 600;
}
.cc-event-sidebar__hint {
    display: inline-flex;
    align-self: start;
    width: fit-content;
    margin-top: 0.15rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
    color: var(--cc-text-muted);
    font-size: 0.68rem;
    font-weight: 700;
}
.cc-event-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    color: var(--cc-text-muted);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.cc-event-badge--accent {
    color: var(--cc-heading);
    background: color-mix(in srgb, var(--cc-soft-peach) 32%, transparent);
    border-color: color-mix(in srgb, var(--cc-soft-peach) 48%, var(--cc-border));
}

.cc-event__links { display: grid; gap: 0.45rem; }
.cc-event__links .cc-btn { width: 100%; justify-content: center; }
.cc-btn--block { width: 100%; justify-content: center; }

.cc-event-venue-list,
.cc-event-file-list,
.cc-event-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}
.cc-event-venue-list__item,
.cc-event-contact-list li {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: color-mix(in srgb, var(--cc-bg-muted) 55%, transparent);
}
.cc-event-venue-list__body,
.cc-event-contact-list li {
    min-width: 0;
}
.cc-event-venue-list strong,
.cc-event-contact-list strong {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    color: var(--cc-heading);
    font-size: 0.9rem;
}
.cc-event-venue-list span,
.cc-event-contact-list__meta {
    color: var(--cc-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}
.cc-event-contact-list__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.cc-event-contact-list a,
.cc-event-venue-list a {
    color: var(--cc-link);
    text-decoration: none;
    font-size: 0.86rem;
}
.cc-event-contact-list a:hover,
.cc-event-venue-list a:hover { color: var(--cc-link-hover); }

.cc-event-file-list__link {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.55rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: color-mix(in srgb, var(--cc-bg-muted) 55%, transparent);
    color: var(--cc-heading);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 650;
}
.cc-event-file-list__link:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 45%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-blue) 12%, transparent);
    color: var(--cc-heading);
}

.cc-event-session-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
    counter-reset: cc-session;
}
.cc-event-session {
    position: relative;
    padding: 1rem 1rem 1rem 1.1rem;
    border-radius: 0.95rem;
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(165deg, color-mix(in srgb, var(--cc-soft-blue) 10%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 55%),
        var(--cc-bg-elevated);
}
.cc-event-session__top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
}
.cc-event-session__top h3 {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--cc-heading);
}
.cc-event-session__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
    color: var(--cc-text-muted);
    font-size: 0.84rem;
}
.cc-event-session__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.cc-event-session__desc {
    margin: 0.65rem 0 0;
    color: var(--cc-text);
    font-size: 0.92rem;
    line-height: 1.55;
}
.cc-event-session__people {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px dashed color-mix(in srgb, var(--cc-border) 85%, transparent);
}
.cc-event-session__people-label {
    display: block;
    margin-bottom: 0.4rem;
    color: var(--cc-text-muted);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.cc-event-session__people ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}
.cc-event-session__people li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.55rem;
    font-size: 0.88rem;
}
.cc-event-session__people strong { color: var(--cc-heading); }
.cc-event-session__people span { color: var(--cc-text-muted); }

.cc-event-people {
    display: grid;
    gap: 0.75rem;
}
.cc-event-person {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 0.95rem;
    border: 1px solid var(--cc-border);
    background: color-mix(in srgb, var(--cc-bg-muted) 40%, var(--cc-bg-elevated));
}
.cc-event-person.is-headliner {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 45%, var(--cc-border));
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-soft-peach) 16%, var(--cc-bg-elevated)) 0%, var(--cc-bg-elevated) 58%),
        var(--cc-bg-elevated);
}
.cc-event-person__avatar {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border-radius: 0.85rem;
    border: 1px solid color-mix(in srgb, var(--cc-soft-blue) 35%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-blue) 18%, transparent);
    color: var(--cc-heading);
    font-size: 1rem;
    font-weight: 800;
}
.cc-event-person__body { min-width: 0; display: grid; gap: 0.3rem; }
.cc-event-person__top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.cc-event-person__top h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--cc-heading);
}
.cc-event-person__meta {
    margin: 0;
    color: var(--cc-text-muted);
    font-size: 0.86rem;
    line-height: 1.35;
}
.cc-event-person__bio {
    margin: 0.25rem 0 0;
    color: var(--cc-text);
    font-size: 0.9rem;
    line-height: 1.55;
}
.cc-event-person__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.25rem;
}
.cc-event-person__links a {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--cc-link);
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 650;
}
.cc-event-person__links a:hover { color: var(--cc-link-hover); }

.cc-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
.cc-gallery__item { border-radius: 0.55rem; overflow: hidden; aspect-ratio: 4/3; }
.cc-gallery__item img { width: 100%; height: 100%; object-fit: cover; }

/* ——— Event info: related-data tabs under hotels ——— */
.cc-event-details-tabs .cc-entity-profile__tablist {
    margin-bottom: 1rem;
}
.cc-event-details-tabs__lead {
    margin-bottom: 1rem;
}
.cc-event-details-tabs__group + .cc-event-details-tabs__group {
    margin-top: 1.15rem;
}
.cc-event-details-tabs__subhead {
    margin: 0 0 0.65rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--cc-heading);
}
.cc-event-contact-list--cards,
.cc-event-venue-list--cards {
    display: grid;
    gap: 0.65rem;
}
.cc-event-contact-list--cards > li,
.cc-event-venue-list--cards > .cc-event-venue-list__item {
    padding: 0.85rem 0.95rem;
    border-radius: 0.75rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
}

/* ——— Event carousel (events portal) ——— */
.cc-event-carousel {
    position: relative;
    --cc-event-carousel-btn: 2.75rem;
    padding-inline: calc(var(--cc-event-carousel-btn) / 2);
}

.cc-event-carousel__viewport {
    position: relative;
    z-index: 1;
}

.cc-event-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(17rem, 85%);
    gap: 0.9rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 0.25rem 0 0.5rem;
    scrollbar-width: none;
    cursor: grab;
    outline: none;
}

.cc-event-carousel__track::-webkit-scrollbar {
    display: none;
}

.cc-event-carousel__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.cc-event-slide {
    scroll-snap-align: start;
    display: grid;
    grid-template-rows: 11.5rem 1fr;
    min-height: 100%;
    border-radius: 1rem;
    overflow: hidden;
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 18px 36px -22px rgba(52, 7, 1, 0.22);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.cc-event-slide:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 50%, var(--cc-border));
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 24px 44px -20px rgba(52, 7, 1, 0.28);
    transform: translateY(-2px);
}

.cc-event-slide__media {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--cc-bg-muted);
}

.cc-event-slide__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.cc-event-slide:hover .cc-event-slide__media img {
    transform: scale(1.05);
}

.cc-event-slide__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(52, 7, 1, 0.35) 100%);
    pointer-events: none;
}

.cc-event-slide__body {
    display: grid;
    gap: 0.55rem;
    align-content: start;
    padding: 1rem 1.05rem 1.1rem;
}

.cc-event-slide__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-event-slide__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    background: var(--cc-bg-muted);
    border: 1px solid var(--cc-border);
    color: var(--cc-text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cc-event-slide__chip--accent {
    background: color-mix(in srgb, var(--cc-accent) 12%, var(--cc-bg-elevated));
    border-color: color-mix(in srgb, var(--cc-accent) 28%, var(--cc-border));
    color: var(--cc-accent-text);
}

.cc-event-slide__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: calc(1.3em * 2);
}

.cc-event-slide__title a {
    color: var(--cc-heading);
    text-decoration: none;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

.cc-event-slide__title a:hover {
    color: var(--cc-link);
}

.cc-event-slide__meta {
    display: grid;
    gap: 0.3rem;
    color: var(--cc-text-muted);
    font-size: 0.82rem;
}

.cc-event-slide__meta span {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    line-height: 1.35;
}

.cc-event-slide__meta i {
    margin-top: 0.12rem;
    color: var(--cc-text-soft);
}

.cc-event-slide__actions {
    margin-top: 0.25rem;
}

.cc-event-carousel__btn {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: grid;
    place-items: center;
    width: var(--cc-event-carousel-btn);
    height: var(--cc-event-carousel-btn);
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--cc-border-strong) 70%, #fff);
    border-radius: 999px;
    background: #fff;
    color: var(--cc-heading);
    font-size: 1.15rem;
    line-height: 1;
    box-shadow:
        0 2px 6px rgba(52, 7, 1, 0.1),
        0 12px 28px -10px rgba(52, 7, 1, 0.35);
    cursor: pointer;
    transition: background 0.15s ease, opacity 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

html[data-cc-appearance="dark"] .cc-event-carousel__btn,
.cc-site[data-appearance="dark"] .cc-event-carousel__btn {
    background: var(--cc-bg-elevated);
    border-color: var(--cc-border-strong);
    color: #fff;
}

.cc-event-carousel__btn--prev {
    left: 0;
    transform: translate(-50%, -50%);
}

.cc-event-carousel__btn--next {
    right: 0;
    transform: translate(50%, -50%);
}

.cc-event-carousel__btn:hover:not(:disabled) {
    background: var(--cc-near-white);
    box-shadow:
        0 4px 10px rgba(52, 7, 1, 0.12),
        0 16px 32px -10px rgba(52, 7, 1, 0.4);
}

.cc-event-carousel__btn--prev:hover:not(:disabled) {
    transform: translate(-50%, -50%) scale(1.06);
}

.cc-event-carousel__btn--next:hover:not(:disabled) {
    transform: translate(50%, -50%) scale(1.06);
}

.cc-event-carousel__btn:disabled {
    opacity: 0.4;
    cursor: default;
    box-shadow: 0 2px 6px rgba(52, 7, 1, 0.08);
}

.cc-event-carousel__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.85rem;
}

.cc-event-carousel__dot {
    width: 0.5rem;
    height: 0.5rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--cc-border-strong);
    opacity: 0.5;
    cursor: pointer;
    transition: width 0.15s ease, opacity 0.15s ease, background 0.15s ease;
}

.cc-event-carousel__dot.is-active {
    width: 1.25rem;
    opacity: 1;
    background: var(--cc-accent);
}

.cc-events-portal [data-cc-feed].cc-feed--grid,
.cc-feed--events-portal.cc-feed--grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

@media (min-width: 640px) {
    .cc-event-carousel__track {
        grid-auto-columns: minmax(18rem, calc(50% - 0.45rem));
    }

    .cc-event-slide {
        grid-template-rows: 12.5rem 1fr;
    }

    .cc-events-portal [data-cc-feed].cc-feed--grid,
    .cc-feed--events-portal.cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .cc-event-carousel__track {
        grid-auto-columns: minmax(18rem, calc(33.333% - 0.6rem));
    }

    .cc-event-slide {
        grid-template-rows: 13rem 1fr;
    }

    .cc-events-portal [data-cc-feed].cc-feed--grid,
    .cc-feed--events-portal.cc-feed--grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ——— Destination portal ——— */
.cc-dest-portal {
    --cc-dest-search-h: 3.35rem;
}

.cc-dest-hero {
    position: relative;
    overflow: hidden;
    background: var(--cc-bg-hero);
    color: var(--cc-on-hero);
    padding: 3rem 0 3.25rem;
}

.cc-dest-hero__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.cc-dest-hero__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.12) 1px, transparent 1px);
    background-size: 40px 40px;
    mask-image: radial-gradient(ellipse 90% 80% at 50% 35%, #000 20%, transparent 75%);
    opacity: 0.9;
}

.cc-dest-hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(10px);
    animation: cc-float 14s ease-in-out infinite;
}

.cc-dest-hero__orb--a {
    width: 20rem;
    height: 20rem;
    top: -7rem;
    right: 8%;
    background: radial-gradient(circle, rgba(254, 204, 131, 0.42), transparent 68%);
}

.cc-dest-hero__orb--b {
    width: 16rem;
    height: 16rem;
    bottom: -6rem;
    left: 5%;
    background: radial-gradient(circle, rgba(176, 204, 226, 0.38), transparent 70%);
    animation-delay: -5s;
}

.cc-dest-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 44rem;
    margin-inline: auto;
    text-align: center;
}

.cc-dest-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 1rem;
    padding: 0.35rem 0.85rem;
    border-radius: var(--cc-radius-pill);
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-size: 0.8rem;
    font-weight: 700;
}

.cc-dest-hero h1 {
    margin: 0 0 0.75rem;
    font-size: clamp(2rem, 4.2vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    font-weight: 800;
    color: var(--cc-on-hero);
}

.cc-dest-hero__lead {
    margin: 0 auto 1.5rem;
    max-width: 34rem;
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--cc-on-hero-muted);
}

.cc-dest-search {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: stretch;
    justify-content: center;
}

.cc-dest-search__field {
    position: relative;
    flex: 1 1 16rem;
    min-width: 0;
    max-width: 32rem;
}

.cc-dest-search__field > i {
    position: absolute;
    left: 1.05rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cc-text-soft);
    font-size: 1.05rem;
    pointer-events: none;
}

.cc-dest-search__field input {
    box-sizing: border-box;
    width: 100%;
    height: var(--cc-dest-search-h);
    margin: 0;
    padding: 0 2.75rem 0 2.85rem;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(252, 252, 250, 0.96);
    color: var(--cc-heading);
    font-size: 1rem;
    font-weight: 500;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.06),
        0 18px 40px -22px rgba(52, 7, 1, 0.35);
    outline: 0;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cc-dest-search__field input::placeholder {
    color: var(--cc-text-soft);
    font-weight: 400;
}

.cc-dest-search__field input:focus {
    border-color: var(--cc-soft-blue);
    box-shadow:
        0 0 0 3px rgba(176, 204, 226, 0.45),
        0 18px 40px -22px rgba(52, 7, 1, 0.35);
}

.cc-dest-search__clear {
    position: absolute;
    right: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    color: var(--cc-text-muted);
    text-decoration: none;
}

.cc-dest-search__clear:hover {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}

.cc-dest-search__submit {
    height: var(--cc-dest-search-h);
    padding-inline: 1.35rem;
    border-radius: 999px;
    flex: 0 0 auto;
}

.cc-dest-hero__meta {
    margin: 1rem 0 0;
    font-size: 0.9rem;
    color: var(--cc-on-hero-muted);
}

.cc-dest-portal__body {
    padding-bottom: 1rem;
}

.cc-dest-portal__section {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.cc-dest-portal__section#regions {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    border-radius: var(--cc-radius-lg, 1rem);
}

@media (min-width: 960px) {
    .cc-dest-portal__section#regions {
        padding-left: 1.75rem;
        padding-right: 1.75rem;
    }
}

.cc-dest-portal__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.cc-dest-portal__sort select {
    box-sizing: border-box;
    height: 2.35rem;
    min-height: 2.35rem;
    padding: 0 2rem 0 0.75rem;
    border: 1px solid var(--cc-border);
    border-radius: 0.65rem;
    background-color: var(--cc-input-bg);
    background-image: var(--cc-select-chevron);
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 11px 9px;
    color: var(--cc-heading);
    font-size: 0.85rem;
    font-weight: 600;
    appearance: none;
    cursor: pointer;
}

.cc-dest-regions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.cc-dest-region {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.85rem;
    align-items: center;
    padding: 0.95rem 1.05rem;
    border-radius: var(--cc-radius);
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.cc-dest-region:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 55%, var(--cc-border));
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 16px 32px -20px rgba(52, 7, 1, 0.2);
    transform: translateY(-1px);
}

.cc-dest-region__rank {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--cc-text-soft);
    font-variant-numeric: tabular-nums;
}

.cc-dest-region__body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.cc-dest-region__body strong {
    color: var(--cc-heading);
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: -0.015em;
}

.cc-dest-region__body span {
    color: var(--cc-text-muted);
    font-size: 0.82rem;
}

.cc-dest-region__stat {
    display: grid;
    justify-items: end;
    gap: 0.05rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--cc-heading);
    font-variant-numeric: tabular-nums;
}

.cc-dest-region__stat small {
    font-size: 0.7rem;
    font-weight: 650;
    color: var(--cc-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.cc-dest-region__go {
    color: var(--cc-text-soft);
    font-size: 1rem;
    transition: color 0.15s ease, transform 0.15s ease;
}

.cc-dest-region:hover .cc-dest-region__go {
    color: var(--cc-accent);
    transform: translateX(2px);
}

.cc-dest-portal__pager {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
}

.cc-dest-portal [data-cc-feed].cc-feed--grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

@media (min-width: 640px) {
    .cc-dest-regions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .cc-dest-regions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-dest-hero {
        padding: 3.75rem 0 3.5rem;
    }
}

.cc-venues-page { padding: 2rem 0 3rem; }
.cc-venues-page__head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.cc-venues-page__head h1 { margin: 0; color: var(--cc-heading); }
.cc-venues-page__lead { color: var(--cc-text-muted); margin: 0.4rem 0 0; }
.cc-venues-page__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-self: center;
    gap: 0.5rem;
    flex: 0 0 auto;
}
.cc-venues-list { display: grid; gap: 0.75rem; }
.cc-venue-row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: center;
    background: var(--cc-bg-elevated);
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    padding: 0.75rem;
    box-shadow: var(--cc-card-shadow);
}
.cc-venue-row__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}
.cc-venue-row__actions form {
    display: flex;
    align-items: center;
    margin: 0;
}
.cc-venue-row__media {
    width: 70px;
    height: 70px;
    border-radius: 0.55rem;
    overflow: hidden;
    background: var(--cc-bg-muted);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.cc-venue-row__media img { width: 100%; height: 100%; object-fit: cover; }
.cc-venue-row__media--city { color: var(--cc-accent); font-size: 1.1rem; }
.cc-venues-page__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cc-border);
}
.cc-venues-page__footer p {
    margin: 0;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
}
.cc-venue-row__body h2,
.cc-site .cc-venue-row__body h2 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.25;
}
.cc-venue-row__body h2 a { color: var(--cc-heading); text-decoration: none; }
.cc-venue-row__body h2 a:hover { color: var(--cc-link); }
.cc-venue-row__body p { margin: 0.2rem 0 0; color: var(--cc-text-muted); font-size: 0.78rem; line-height: 1.4; }

/* Form */
.cc-form-page { padding: 2rem 0 3rem; }
.cc-form-page__head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.cc-form-page__lead { color: var(--cc-text-muted); margin: 0.35rem 0 0; }
.cc-form-progress { margin-bottom: 1.25rem; }
.cc-form-progress__meta { display: flex; justify-content: space-between; margin-bottom: 0.5rem; font-size: 0.85rem; }
.cc-form-progress__label { font-weight: 700; color: var(--cc-heading); }
.cc-form-progress__segments { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.35rem; }
.cc-form-progress__segment { height: 0.35rem; border-radius: 999px; background: var(--cc-border); overflow: hidden; }
.cc-form-progress__segment.is-done .cc-form-progress__fill,
.cc-form-progress__segment.is-current .cc-form-progress__fill { display: block; height: 100%; background: var(--cc-accent); width: 100%; }
.cc-form-progress__fill { display: none; }
.cc-form-layout { display: grid; gap: 1rem; }
.cc-form-card { background: var(--cc-bg-elevated); border: 1px solid var(--cc-border); border-radius: var(--cc-radius); padding: 1.25rem; }
.cc-form-aside { display: grid; gap: 1rem; }
.cc-form-aside__card { background: var(--cc-bg-elevated); border: 1px solid var(--cc-border); border-radius: var(--cc-radius); padding: 1rem; }
.cc-form-aside__card h2 { margin: 0 0 0.75rem; font-size: 1rem; color: var(--cc-heading); }
.cc-form-aside__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.55rem; }
.cc-form-aside__list a { color: var(--cc-heading); font-weight: 700; text-decoration: none; }
.cc-form-aside__list a:hover { color: var(--cc-link); }
.cc-form-aside__list span { display: block; color: var(--cc-text-muted); font-size: 0.8rem; }
.cc-form-aside__how { margin: 0; padding-left: 1.1rem; color: var(--cc-text-muted); }
.cc-form-aside__card--muted { background: var(--cc-bg-muted); }
.cc-notice {
    display: flex; gap: 0.75rem; padding: 1rem; border-radius: 0.75rem;
    background: var(--cc-info-bg); border: 1px solid var(--cc-info-border); color: var(--cc-info-text);
}
.cc-notice--compact { padding: 0.75rem; }
.cc-notice--info { background: var(--cc-info-bg); border-color: var(--cc-info-border); color: var(--cc-info-text); }
.cc-notice--success { background: var(--cc-success-bg); border-color: var(--cc-success-border); color: var(--cc-success); }
.cc-notice--danger { background: var(--cc-danger-bg); border-color: var(--cc-danger-border); color: var(--cc-danger); }
.cc-notice__title { font-weight: 700; color: inherit; margin: 0 0 0.25rem; }
.cc-form-actions,
.cc-site .sr-form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.65rem;
    margin-top: 1.25rem;
}

/* Nested classic form styles inside calendar card — kill full-page chrome. */
.cc-site .cc-form-card.rfp-form-page,
.cc-site .rfp-form-page {
    --bs-body-color: var(--cc-text);
    --bs-body-bg: var(--cc-bg-elevated);
    --bs-border-color: var(--cc-border);
    --bs-primary: var(--cc-accent);
    --bs-link-color: var(--cc-link);
    --bs-link-hover-color: var(--cc-link-hover);
    --rfp-bg: transparent;
    --rfp-bg-image: none;
    --rfp-text: var(--cc-text);
    --rfp-text-muted: var(--cc-text-muted);
    --rfp-link: var(--cc-link);
    --rfp-heading: var(--cc-heading);
    --rfp-label: var(--cc-heading);
    --rfp-accent: var(--cc-accent);
    --rfp-card-bg: var(--cc-bg-elevated);
    --rfp-card-border: var(--cc-border);
    --rfp-surface-bg: var(--cc-bg-muted);
    --rfp-mix-base: var(--cc-bg-elevated);
    --rfp-input-bg: var(--cc-input-bg);
    --rfp-input-border: var(--cc-border);
    --rfp-input-text: var(--cc-heading);
    --rfp-input-placeholder: var(--cc-text-muted);
    --rfp-input-focus: var(--cc-accent);
    --rfp-btn-bg: var(--cc-accent);
    --rfp-btn-text: #fff;
    --rfp-btn-border: var(--cc-accent);
    --rfp-btn-secondary-text: var(--cc-text);
    --rfp-btn-secondary-border: var(--cc-border);
    min-height: 0 !important;
    height: auto !important;
    width: auto;
    display: block;
    background: var(--cc-bg-elevated) !important;
    background-image: none !important;
    color: var(--cc-text);
}

/* Keep site chrome intact when form CSS is loaded on /rfp/* */
.cc-site > .cc-footer,
.cc-site .cc-footer {
    background: var(--cc-footer-bg) !important;
    color: var(--cc-footer-text);
}

.cc-site .cc-footer h4 {
    color: var(--cc-footer-heading);
}

.cc-site .cc-footer__links a {
    color: var(--cc-footer-text);
}

.cc-site .cc-footer__links a:hover {
    color: #fff;
}

.cc-site .cc-footer__cta .cc-btn--primary {
    color: #fff;
}

.cc-site .cc-footer__cta .cc-btn--ghost {
    background: rgba(252, 252, 250, 0.08);
    color: #fff;
    border-color: rgba(252, 252, 250, 0.22);
}
.cc-site .rfp-form-page a:not(.cc-btn):not(.sr-btn):not(.btn) { color: var(--cc-link); }
.cc-site .rfp-form-page a:not(.cc-btn):not(.sr-btn):not(.btn):hover { color: var(--cc-link-hover); }
.cc-site .rfp-form-page .form-control,
.cc-site .rfp-form-page .form-select,
.cc-site .cc-form-card .form-control,
.cc-site .cc-form-card .form-select,
.cc-site .form-control,
.cc-site .form-select {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: var(--cc-control-h) !important;
    min-height: var(--cc-control-h) !important;
    max-height: var(--cc-control-h) !important;
    padding: 0 var(--cc-control-px) !important;
    font-size: var(--cc-control-fs);
    font-weight: 400;
    line-height: calc(var(--cc-control-h) - (var(--cc-control-border-w) * 2));
    color: var(--cc-heading);
    background-color: var(--cc-input-bg);
    border: var(--cc-control-border-w) solid var(--cc-border);
    border-radius: var(--cc-control-radius);
    box-shadow: 0 1px 2px rgba(52, 7, 1, 0.04);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

/* Keep Bootstrap input-groups (date pickers) on one row */
.cc-site .input-group,
.cc-site .rfp-date-wrap {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    position: relative;
}
.cc-site .input-group > .form-control,
.cc-site .input-group > .form-select,
.cc-site .input-group > .rfp-date-input,
.cc-site .rfp-date-wrap > .form-control,
.cc-site .rfp-date-wrap > .rfp-date-input,
.cc-site .rfp-date-wrap > .flatpickr-input {
    position: relative;
    flex: 1 1 auto !important;
    width: 1% !important;
    min-width: 0 !important;
    max-width: 100%;
}
.cc-site .input-group > .form-control:not(:last-child),
.cc-site .rfp-date-wrap > .form-control:not(:last-child),
.cc-site .rfp-date-wrap > .rfp-date-input:not(:last-child),
.cc-site .rfp-date-wrap > .flatpickr-input:not(:last-child) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.cc-site .input-group > .input-group-text,
.cc-site .rfp-date-wrap > .input-group-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto !important;
    min-width: 2.5rem;
    margin: 0;
    white-space: nowrap;
}
.cc-site .input-group > .input-group-text:not(:first-child),
.cc-site .rfp-date-wrap > .input-group-text:not(:first-child) {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-left: 0 !important;
}
.cc-site .rfp-date-wrap .input-group-text {
    background: var(--cc-input-bg);
    cursor: pointer;
}
.cc-site .rfp-date-wrap:focus-within .form-control,
.cc-site .rfp-date-wrap:focus-within .input-group-text {
    border-color: var(--cc-soft-blue);
}
.cc-site .rfp-form-page .form-select,
.cc-site .cc-form-card .form-select,
.cc-site .form-select {
    padding-right: 2.15rem !important;
    background-color: var(--cc-input-bg);
    background-image: var(--cc-select-chevron);
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 11px 9px;
}
.cc-site .rfp-form-page .form-control::placeholder,
.cc-site .cc-form-card .form-control::placeholder,
.cc-site .form-control::placeholder {
    color: var(--cc-text-soft);
    font-size: var(--cc-control-fs);
    opacity: 1;
}
.cc-site .rfp-form-page .form-control:hover,
.cc-site .rfp-form-page .form-select:hover,
.cc-site .cc-form-card .form-control:hover,
.cc-site .cc-form-card .form-select:hover,
.cc-site .form-control:hover,
.cc-site .form-select:hover {
    border-color: color-mix(in srgb, var(--cc-soft-blue) 55%, var(--cc-border));
}
.cc-site .rfp-form-page .form-control:focus,
.cc-site .rfp-form-page .form-select:focus,
.cc-site .cc-form-card .form-control:focus,
.cc-site .cc-form-card .form-select:focus,
.cc-site .form-control:focus,
.cc-site .form-select:focus {
    border-color: var(--cc-soft-blue);
    box-shadow: 0 0 0 3px rgba(176, 204, 226, 0.35);
    background-color: var(--cc-input-bg);
    color: var(--cc-heading);
    outline: 0;
}
.cc-site .rfp-form-page .form-select:focus,
.cc-site .cc-form-card .form-select:focus,
.cc-site .form-select:focus {
    background-image: var(--cc-select-chevron);
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 11px 9px;
}
.cc-site .rfp-form-page textarea.form-control,
.cc-site .cc-form-card textarea.form-control,
.cc-site textarea.form-control {
    height: auto !important;
    min-height: 5.25rem !important;
    max-height: none !important;
    padding: 0.55rem var(--cc-control-px) !important;
    line-height: 1.45;
    resize: vertical;
}
.cc-site .rfp-form-page .form-control-sm,
.cc-site .rfp-form-page .form-select-sm,
.cc-site .cc-form-card .form-control-sm,
.cc-site .cc-form-card .form-select-sm,
.cc-site .form-control-sm,
.cc-site .form-select-sm {
    height: var(--cc-control-h-sm) !important;
    min-height: var(--cc-control-h-sm) !important;
    max-height: var(--cc-control-h-sm) !important;
    padding: 0 0.65rem !important;
    font-size: var(--cc-control-fs-sm);
    line-height: calc(var(--cc-control-h-sm) - (var(--cc-control-border-w) * 2));
}
.cc-site .rfp-form-page .form-select-sm,
.cc-site .cc-form-card .form-select-sm,
.cc-site .form-select-sm {
    padding-right: 1.9rem !important;
    background-position: right 0.55rem center;
    background-size: 10px 8px;
}
.cc-site .rfp-form-page .input-group-text,
.cc-site .cc-form-card .input-group-text,
.cc-site .input-group-text {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--cc-control-h) !important;
    height: var(--cc-control-h) !important;
    max-height: var(--cc-control-h) !important;
    padding: 0 var(--cc-control-px) !important;
    font-size: var(--cc-control-fs);
    line-height: calc(var(--cc-control-h) - (var(--cc-control-border-w) * 2));
    background-color: var(--cc-bg-muted);
    border-color: var(--cc-border);
    color: var(--cc-text-muted);
}
.cc-site .rfp-form-page label,
.cc-site .cc-form-card label {
    color: var(--cc-heading);
    font-size: 0.75rem;
    font-weight: 600;
}
.cc-site .rfp-form-page .text-muted,
.cc-site .cc-form-card .text-muted {
    color: var(--cc-text-muted) !important;
}
.cc-site .rfp-form-page .alert-success {
    background: var(--cc-success-bg); border-color: var(--cc-success-border); color: var(--cc-success);
}
.cc-site .rfp-form-page .alert-danger,
.cc-site .cc-flash.sr-flash--danger,
.cc-site .cc-flash.cc-flash--danger {
    background: var(--cc-danger-bg); border-color: var(--cc-danger-border); color: var(--cc-danger);
}
.cc-site .rfp-form-page .btn-primary {
    background: var(--cc-accent); border-color: var(--cc-accent); color: var(--cc-on-accent);
}
.cc-site .rfp-form-page .btn-primary:hover {
    background: var(--cc-accent-hover); border-color: var(--cc-accent-hover); color: var(--cc-on-accent);
}

/* —— Site auth (login / register) —— */
.cc-auth-page {
    position: relative;
    isolation: isolate;
    padding: 2.5rem 1.25rem 3.5rem;
    min-height: calc(100vh - var(--cc-header-h) - 10rem);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.cc-auth-page__glow {
    position: absolute;
    inset: -20% -10% auto;
    height: 28rem;
    z-index: -1;
    background:
        radial-gradient(ellipse 55% 70% at 50% 0%, color-mix(in srgb, var(--cc-accent) 18%, transparent), transparent 70%),
        radial-gradient(ellipse 40% 50% at 18% 30%, color-mix(in srgb, var(--cc-soft-blue) 35%, transparent), transparent 68%),
        radial-gradient(ellipse 36% 46% at 82% 24%, color-mix(in srgb, var(--cc-soft-peach) 28%, transparent), transparent 70%);
    pointer-events: none;
}

.cc-auth-shell {
    width: 100%;
    max-width: 24.5rem;
    margin-inline: auto;
}

.cc-auth-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.15rem;
    line-height: 0;
}

.cc-auth-brand img,
.cc-auth-brand .cc-brand__logo,
.cc-brand__logo--auth {
    width: 170px;
    height: auto;
    object-fit: contain;
}

.cc-auth-card.cc-form-card {
    width: 100%;
    max-width: 24.5rem;
    margin-inline: auto;
    padding: 1.5rem 1.35rem 1.4rem;
    border-radius: 1.15rem;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.04),
        0 18px 40px -22px rgba(52, 7, 1, 0.22);
}

@media (min-width: 480px) {
    .cc-auth-card.cc-form-card {
        padding: 1.75rem 1.65rem 1.6rem;
    }
}

.cc-auth-card__head {
    margin-bottom: 1.25rem;
    text-align: center;
}

.cc-auth-card__head h1 {
    margin: 0 0 0.4rem;
    font-size: clamp(1.35rem, 2.4vw, 1.55rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--cc-heading);
    line-height: 1.2;
}

.cc-auth-card__lead {
    margin: 0 auto;
    max-width: 20rem;
    color: var(--cc-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.cc-auth-form {
    display: grid;
    gap: 0.95rem;
}

.cc-auth-field .form-label {
    font-size: 0.82rem;
    font-weight: 650;
    margin-bottom: 0.35rem;
}

.cc-auth-field__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.cc-auth-link {
    border: 0;
    background: none;
    padding: 0;
    color: var(--cc-accent-text);
    font-size: 0.78rem;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}

.cc-auth-link:hover {
    text-decoration: underline;
    color: var(--cc-accent-hover);
}

.cc-auth-field--check {
    margin-top: -0.15rem;
}

.cc-auth-hint {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--cc-text-soft);
}

.cc-auth-submit,
.cc-auth-alt {
    width: 100%;
}

.cc-auth-submit {
    margin-top: 0.15rem;
}

.cc-auth-card__foot {
    margin: 1.15rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--cc-border);
    text-align: center;
    font-size: 0.875rem;
    color: var(--cc-text-muted);
}

.cc-auth-card__foot a {
    color: var(--cc-accent-text) !important;
    font-weight: 700;
}

.cc-auth-card__foot a:hover {
    text-decoration: underline;
}

.cc-auth-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1rem 0;
    color: var(--cc-text-soft);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-auth-divider::before,
.cc-auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--cc-border);
}

.cc-auth-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: 1rem 0 0;
    color: var(--cc-text-soft);
    font-size: 0.78rem;
    font-weight: 550;
    text-align: center;
}

.cc-auth-trust i {
    color: var(--cc-accent-text);
    font-size: 0.85rem;
}

.cc-auth-page--register {
    align-items: stretch;
    min-height: calc(100vh - var(--cc-header-h) - var(--cc-topbar-h, 2.35rem) - 4rem);
}

.cc-auth-page--split {
    padding-inline: 1.25rem;
}

.cc-auth-split {
    width: min(100%, 68rem);
    margin-inline: auto;
    display: grid;
    gap: 1.35rem;
    align-items: stretch;
}

.cc-auth-split:not(:has(.cc-auth-showcase)) {
    grid-template-columns: minmax(22rem, 24.5rem);
    justify-content: center;
}

.cc-auth-split__form {
    width: 100%;
    display: flex;
    align-items: center;
}

.cc-auth-page--split .cc-auth-shell {
    margin-inline: 0;
    width: 100%;
}

.cc-auth-split__showcase {
    width: 100%;
    min-width: 0;
}

.cc-auth-split__showcase.cc-event-showcase--sized {
    width: var(--cc-event-showcase-width, 100%);
    max-width: 100%;
    flex: 0 0 auto;
}

/* Immersive poster panel — no nested card */
.cc-auth-showcase {
    position: relative;
    height: 100%;
    min-height: 100%;
    border-radius: 1.5rem;
    overflow: hidden;
    isolation: isolate;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.06),
        0 28px 56px -24px rgba(52, 7, 1, 0.42);
}

.cc-auth-showcase.is-sized {
    flex: 0 0 auto;
    width: var(--cc-event-showcase-width, 100%);
    height: var(--cc-event-showcase-height, auto);
    min-height: var(--cc-event-showcase-height, 0);
    max-height: var(--cc-event-showcase-height, none);
    align-self: center;
}

.cc-auth-showcase__stage {
    position: absolute;
    inset: 0;
}

.cc-auth-event {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.1rem 1.1rem 3.4rem;
    opacity: 0;
    visibility: hidden;
    transform: scale(1.04);
    filter: blur(8px);
    pointer-events: none;
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.7s ease,
        visibility 0s linear 0.7s;
    z-index: 1;
    color: #fcfcfa;
}

.cc-auth-event.is-active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    filter: blur(0);
    pointer-events: auto;
    transition-delay: 0s;
    z-index: 3;
}

.cc-auth-event.is-leaving {
    opacity: 0;
    visibility: visible;
    transform: scale(1.03);
    filter: blur(5px);
    transition-delay: 0s;
    z-index: 2;
}

.cc-auth-event__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    background: #2a120c;
}

.cc-auth-event__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.12);
    transition: transform 5.4s ease-out;
}

.cc-auth-event.is-active .cc-auth-event__bg img {
    transform: scale(1);
}

.cc-auth-event__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(20, 8, 4, 0.42) 0%, rgba(20, 8, 4, 0.12) 38%, rgba(20, 8, 4, 0.2) 55%, rgba(20, 8, 4, 0.88) 100%),
        radial-gradient(ellipse 80% 55% at 50% 100%, rgba(254, 65, 25, 0.22), transparent 62%);
}

.cc-auth-event__top,
.cc-auth-event__content {
    position: relative;
    z-index: 2;
}

.cc-auth-event__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
}

.cc-auth-event__live {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.32rem 0.7rem;
    border-radius: var(--cc-radius-pill);
    background: rgba(252, 252, 250, 0.14);
    border: 1px solid rgba(252, 252, 250, 0.22);
    backdrop-filter: blur(10px);
    color: #fcfcfa;
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-auth-event__live i {
    color: #fecc83;
    font-size: 0.85rem;
}

.cc-auth-event__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    justify-content: flex-end;
}

.cc-auth-event__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    border-radius: var(--cc-radius-pill);
    background: rgba(252, 252, 250, 0.16);
    border: 1px solid rgba(252, 252, 250, 0.18);
    color: #fcfcfa;
    font-size: 0.68rem;
    font-weight: 700;
    backdrop-filter: blur(8px);
}

.cc-auth-event__chip--accent {
    background: color-mix(in srgb, var(--cc-soft-peach) 78%, transparent);
    border-color: transparent;
    color: var(--cc-brown);
}

.cc-auth-event__content {
    display: grid;
    gap: 0.45rem;
    max-width: 22rem;
}

.cc-auth-event__kicker {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(252, 252, 250, 0.72);
}

.cc-auth-event__name {
    margin: 0;
    font-size: clamp(1.2rem, 2.4vw, 1.55rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.18;
    color: #fcfcfa;
    text-wrap: balance;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-auth-event__name a {
    color: inherit;
    text-decoration: none;
}

.cc-auth-event__name a:hover {
    color: #fecc83;
}

.cc-auth-event__meta {
    list-style: none;
    margin: 0.15rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.28rem;
}

.cc-auth-event__meta li {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    color: rgba(252, 252, 250, 0.86);
    font-size: 0.82rem;
    line-height: 1.35;
}

.cc-auth-event__meta i {
    margin-top: 0.12rem;
    color: #fecc83;
    font-size: 0.88rem;
    flex-shrink: 0;
}

.cc-auth-event__link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.45rem;
    width: fit-content;
    padding: 0.48rem 0.9rem;
    border-radius: var(--cc-radius-pill);
    background: color-mix(in srgb, var(--cc-soft-peach) 78%, #e8a23a 22%);
    color: var(--cc-brown) !important;
    font-size: 0.8rem;
    font-weight: 750;
    text-decoration: none;
    box-shadow: 0 8px 20px -12px rgba(0, 0, 0, 0.55);
    transition: transform 0.2s ease, background 0.2s ease;
}

.cc-auth-event__link:hover {
    background: color-mix(in srgb, var(--cc-soft-peach) 55%, #d99220 45%);
    color: var(--cc-brown) !important;
    transform: translateY(-1px);
}

.cc-auth-showcase__chrome {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.55rem 0.85rem;
    padding: 0.85rem 1.1rem 1rem;
    background: linear-gradient(180deg, transparent, rgba(12, 6, 4, 0.55));
}

.cc-auth-showcase__progress {
    grid-column: 1 / -1;
    position: relative;
    height: 2px;
    border-radius: var(--cc-radius-pill);
    background: rgba(252, 252, 250, 0.18);
    overflow: hidden;
}

.cc-auth-showcase__bar {
    display: block;
    height: 100%;
    width: 100%;
    transform-origin: left center;
    transform: scaleX(0);
    background: linear-gradient(90deg, #fecc83, #fe4119);
    border-radius: inherit;
}

.cc-auth-showcase__bar.is-running {
    animation: cc-auth-showcase-progress var(--cc-auth-showcase-duration, 5000ms) linear forwards;
}

@keyframes cc-auth-showcase-progress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

.cc-auth-showcase__dots {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.cc-auth-showcase__dot {
    width: 0.45rem;
    height: 0.45rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(252, 252, 250, 0.35);
    cursor: pointer;
    transition: width 0.25s ease, background 0.25s ease, transform 0.2s ease;
}

.cc-auth-showcase__dot:hover {
    transform: scale(1.15);
    background: rgba(252, 252, 250, 0.65);
}

.cc-auth-showcase__dot.is-active {
    width: 1.2rem;
    background: #fecc83;
}

.cc-auth-showcase__all {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: rgba(252, 252, 250, 0.9) !important;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.cc-auth-showcase__all:hover {
    color: #fecc83 !important;
}

@media (min-width: 900px) {
    .cc-auth-page--split {
        padding-block: 2.5rem 3rem;
    }

    .cc-auth-split {
        grid-template-columns: minmax(26rem, 36rem) minmax(22rem, 24.5rem);
        justify-content: center;
        gap: 3rem;
        align-items: stretch;
    }

    .cc-auth-split__showcase,
    .cc-auth-split__form {
        display: flex;
        min-height: 100%;
    }

    .cc-auth-split__showcase {
        align-items: center;
    }

    .cc-auth-showcase {
        flex: 0 0 auto;
        width: 100%;
        height: 80%;
        min-height: 0;
        max-height: none;
        align-self: center;
    }

    .cc-auth-event {
        padding: 1.15rem 1.15rem 3.4rem;
    }
}

@media (max-width: 899px) {
    .cc-auth-split__showcase {
        order: -1;
    }

    .cc-auth-showcase {
        min-height: 22rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-auth-event,
    .cc-auth-event__bg img,
    .cc-auth-showcase__dot,
    .cc-auth-showcase__bar,
    .cc-auth-event__link {
        transition: none !important;
        animation: none !important;
    }

    .cc-auth-event {
        filter: none;
        transform: none;
    }
}

.cc-site .modal-content {
    border: 1px solid var(--cc-border);
    border-radius: 1rem;
    box-shadow: var(--cc-card-shadow-hover);
}

.cc-site .modal-title {
    color: var(--cc-heading);
    font-weight: 750;
}

.cc-site .modal .nav-pills .nav-link {
    color: var(--cc-text-muted);
    font-weight: 650;
    font-size: 0.85rem;
}

.cc-site .modal .nav-pills .nav-link.active {
    background: var(--cc-accent);
    color: var(--cc-on-accent);
}

/* Responsive */
@media (min-width: 640px) {
    .cc-auth-links { display: inline-flex; }
    .cc-auth-icon { display: none; }
    .cc-account__meta { display: block; }
    .cc-feed--grid { grid-template-columns: repeat(2, 1fr); }
    .cc-explore [data-cc-feed].cc-feed--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-dest-portal [data-cc-feed].cc-feed--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-dest-featured { grid-template-columns: repeat(2, 1fr); }
    .cc-dest-featured--portal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
        align-items: stretch;
    }
    .cc-step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 2.85rem;
        left: calc(100% + 0.15rem);
        width: calc(1.35rem - 0.3rem);
        height: 2px;
        background: linear-gradient(90deg, rgba(254, 65, 25, 0.45), rgba(254, 204, 131, 0.75));
        border-radius: 999px;
        pointer-events: none;
        z-index: 2;
    }
    .cc-how__cta {
        padding: 1.4rem 1.65rem;
    }
    .cc-gallery { grid-template-columns: repeat(3, 1fr); }
    .cc-footer__top { grid-template-columns: 1.3fr 1fr; }
}

@media (min-width: 960px) {
    .cc-nav { display: flex; }
    .cc-menu-btn { display: none; }
    .cc-header { overflow: visible; }
    .cc-hero__grid { grid-template-columns: 1.2fr 0.8fr; }
    .cc-hero__panel { display: block; }
    .cc-hero-home__inner { grid-template-columns: 1.05fr 0.95fr; }
    a.cc-hero-home__visual,
    .cc-hero-home__visual { display: block; }
    .cc-feed--grid { grid-template-columns: repeat(3, 1fr); }
    .cc-explore [data-cc-feed].cc-feed--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-dest-portal [data-cc-feed].cc-feed--grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-dest-featured { grid-template-columns: repeat(3, 1fr); }
    .cc-dest-featured--portal { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-home-split { grid-template-columns: minmax(0, 1fr) 19.5rem; align-items: start; }
    .cc-event__layout { grid-template-columns: 1fr 20rem; align-items: start; }
    .cc-event-header__split-layout { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); }
    .cc-form-layout { grid-template-columns: 1fr 18rem; align-items: start; }
    .cc-city__layout { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); }
    .cc-city__side {
        position: sticky;
        top: calc(var(--cc-header-h, 4.5rem) + 1rem);
        align-self: start;
        max-height: calc(100vh - var(--cc-header-h, 4.5rem) - 2rem);
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        z-index: 1;
    }
}

@media (min-width: 1200px) {
    .cc-city__layout { grid-template-columns: minmax(0, 1fr) 22rem; }
}

@media (max-width: 639px) {
    .cc-topbar__link { display: none; }
    .cc-event-row { grid-template-columns: 4.5rem 1fr; }
    .cc-event-row__go { display: none; }
    .cc-event-row__media { width: 4.5rem; height: 3.4rem; }
    .cc-footer__cols { grid-template-columns: 1fr 1fr; }
    .cc-hero-home__stats { grid-template-columns: 1fr; max-width: none; }
    .cc-feed--home-events.cc-feed--grid { grid-template-columns: 1fr; }
    .cc-card--list .cc-card__media {
        width: 7.25rem;
        flex: 0 0 7.25rem;
        aspect-ratio: 1 / 1;
    }
    .cc-card--event.cc-card--list .cc-card__media,
    .cc-feed--home-events .cc-card--event.cc-card--list .cc-card__media {
        width: 8.5rem;
        flex: 0 0 8.5rem;
        aspect-ratio: 4 / 3;
    }
    .cc-card--list .cc-card__chips { display: none; }
    .cc-card--list .cc-card__actions { display: none; }
    .cc-month__day {
        min-height: 3.5rem;
        padding: 0.25rem;
    }
    .cc-month__day-events,
    .cc-month__more {
        display: none;
    }
    .cc-month__day.has-events .cc-month__day-num {
        box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--cc-soft-blue) 70%, transparent);
    }

    /* Smaller heading scale on phones — beat Bootstrap + local clamps */
    .cc-site h1,
    .cc-site h1.display-1,
    .cc-site h1.display-2,
    .cc-site h1.display-3,
    .cc-site h1.display-4,
    .cc-site h1.display-5,
    .cc-site h1.display-6,
    .cc-site .cc-entity__identity h1,
    .cc-site .cc-entity-header__mobile-title h1,
    .cc-site .cc-city-header__mobile-title h1,
    .cc-site .cc-entity-intro h1,
    .cc-site .cc-city-intro h1,
    .cc-site .cc-event-intro h1,
    .cc-site .cc-hero h1,
    .cc-site .cc-hero-home h1,
    .cc-site .cc-explore__top h1,
    .cc-site .cc-explore__title-row h1,
    .cc-site .cc-dest-hero h1,
    .cc-site .cc-news-article__header h1 {
        font-size: 0.95rem !important;
        line-height: 1.2 !important;
    }

    .cc-site h2,
    .cc-site .cc-section__head h2,
    .cc-site .cc-section h2,
    .cc-site .cc-panel h2,
    .cc-site .cc-entity__events h2,
    .cc-site .cc-city__events h2,
    .cc-site .cc-city__venues h2,
    .cc-site .cc-feed-head h2,
    .cc-site .cc-explore__title-row h2,
    .cc-site .cc-explore__top h2 {
        font-size: 0.9rem !important;
        line-height: 1.25 !important;
    }

    .cc-site h3 { font-size: 0.85rem !important; }
    .cc-site h4 { font-size: 0.8125rem !important; }
    .cc-site h5 { font-size: 0.75rem !important; }
    .cc-site h6 { font-size: 0.7rem !important; }

    /* Smaller buttons on phones */
    .cc-site {
        --cc-control-h: 2rem;
        --cc-control-h-sm: 1.85rem;
        --cc-control-fs: 0.75rem;
        --cc-control-fs-sm: 0.7rem;
        --cc-control-px: 0.65rem;
    }

    .cc-btn,
    .cc-site .sr-btn,
    .cc-site a.sr-btn,
    .cc-site button.sr-btn {
        gap: 0.3rem;
        font-size: 0.78rem;
        padding: 0.42rem 0.8rem;
        border-radius: 0.55rem;
    }

    .cc-btn--sm,
    .cc-site .sr-btn--sm {
        padding: 0.32rem 0.65rem;
        font-size: 0.72rem;
        border-radius: 0.5rem;
    }

    .cc-btn--lg,
    .cc-site .sr-btn--lg {
        min-height: 2.45rem;
        padding: 0.52rem 1rem;
        font-size: 0.82rem;
        border-radius: 0.65rem;
    }

    .cc-btn--lg.cc-btn--soft,
    .cc-btn--lg.cc-btn--primary {
        padding-inline: 1.1rem;
    }

    /* Footer type (beats generic .cc-site h4 on phones) */
    .cc-footer {
        padding: 2.25rem 0 1.1rem;
        font-size: 0.8rem;
    }

    .cc-footer__brand p {
        margin-top: 0.75rem;
        font-size: 0.8rem;
        line-height: 1.5;
    }

    .cc-footer h4,
    .cc-site .cc-footer h4 {
        font-size: 0.68rem;
        margin-bottom: 0.65rem;
        letter-spacing: 0.07em;
    }

    .cc-footer__links {
        gap: 0.35rem;
    }

    .cc-footer__links a {
        font-size: 0.78rem;
    }

    .cc-footer__bottom {
        margin-top: 1.5rem;
        padding-top: 0.9rem;
        font-size: 0.72rem;
    }

    .cc-footer-compact__nav a {
        min-height: 1.75rem;
        padding: 0.22rem 0.55rem;
        font-size: 0.74rem;
    }

    .cc-footer-compact__meta {
        font-size: 0.7rem;
    }
}

/* Social role first-visit prompt */
.cc-role-prompt {
    position: fixed;
    z-index: 1080;
    right: 1rem;
    bottom: 1rem;
    width: min(24.5rem, calc(100vw - 2rem));
    opacity: 0;
    transform: translateY(0.85rem) scale(0.98);
    transition: opacity 0.28s ease, transform 0.28s ease;
    pointer-events: none;
}

.cc-role-prompt.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.cc-role-prompt__card {
    border-radius: 1.15rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.06),
        0 24px 48px -20px rgba(52, 7, 1, 0.35);
    padding: 1rem 1rem 0.85rem;
}

.cc-role-prompt__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.cc-role-prompt__badge {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--cc-soft-peach) 55%, white);
    color: var(--cc-brown);
    font-size: 1.05rem;
}

.cc-role-prompt__close {
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--cc-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.cc-role-prompt__close:hover {
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
}

.cc-role-prompt__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--cc-heading);
    line-height: 1.25;
}

.cc-role-prompt__copy {
    margin: 0.35rem 0 0.85rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--cc-text-muted);
}

.cc-role-prompt__roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
    max-height: min(18rem, 42vh);
    overflow: auto;
    padding-right: 0.2rem;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--cc-warm-gray) 55%, transparent) transparent;
}

.cc-role-prompt__roles::-webkit-scrollbar {
    width: 4px;
}

.cc-role-prompt__roles::-webkit-scrollbar-track {
    background: transparent;
}

.cc-role-prompt__roles::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--cc-warm-gray) 55%, transparent);
    border-radius: 999px;
}

.cc-role-prompt__roles::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--cc-warm-gray) 80%, transparent);
}

.cc-role-prompt__role {
    appearance: none;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg);
    border-radius: 0.8rem;
    padding: 0.65rem 0.7rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    min-width: 0;
}

.cc-role-prompt__role:hover,
.cc-role-prompt__role:focus-visible {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 70%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-peach) 22%, white);
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cc-soft-peach) 35%, transparent);
}

.cc-role-prompt__role.is-selected {
    border-color: color-mix(in srgb, var(--cc-orange) 55%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-peach) 40%, white);
}

.cc-role-prompt__role:disabled {
    opacity: 0.65;
    cursor: default;
}

.cc-role-prompt__role-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--cc-heading);
    line-height: 1.25;
}

.cc-role-prompt__role-desc {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.6875rem;
    line-height: 1.3;
    color: var(--cc-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cc-role-prompt__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.75rem;
    min-height: 1.5rem;
}

.cc-role-prompt__skip {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--cc-text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0;
}

.cc-role-prompt__skip:hover {
    color: var(--cc-heading);
    text-decoration: underline;
}

.cc-role-prompt__status {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--cc-success);
}

.cc-role-prompt__status.is-error {
    color: var(--cc-danger);
}

@media (max-width: 560px) {
    .cc-role-prompt {
        right: 0.65rem;
        left: 0.65rem;
        bottom: 0.65rem;
        width: auto;
    }

    .cc-role-prompt__roles {
        grid-template-columns: 1fr;
        max-height: min(16rem, 38vh);
    }
}


/* Error pages (404 / 500) — flex-fill only; avoid min-height≈100vh on main (header+footer made a phantom scrollbar) */
.cc-error-page {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-height: 0;
    padding: 2.5rem 0 3rem;
}

body:has(.cc-site .cc-error-page) {
    height: auto !important;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
}

.cc-site:has(.cc-error-page) {
    min-height: 100vh;
    min-height: 100dvh;
}

.cc-error {
    position: relative;
    max-width: 34rem;
    margin-inline: auto;
    text-align: center;
    padding: 2.5rem 1.5rem 2rem;
}

.cc-error__glow {
    position: absolute;
    inset: -20% -10% auto;
    height: 14rem;
    background: radial-gradient(ellipse 70% 60% at 50% 40%, color-mix(in srgb, var(--cc-accent) 28%, transparent), transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.cc-error__badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    padding: 0.3rem 0.75rem;
    margin-bottom: 1.15rem;
    border-radius: var(--cc-radius-pill);
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    color: var(--cc-accent-text);
    background: var(--cc-accent-soft);
    border: 1px solid color-mix(in srgb, var(--cc-accent) 22%, var(--cc-border));
}

.cc-error__icon {
    position: relative;
    z-index: 1;
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 1.25rem;
    display: grid;
    place-items: center;
    border-radius: 1.15rem;
    font-size: 1.85rem;
    color: var(--cc-accent-text);
    background: linear-gradient(165deg, color-mix(in srgb, var(--cc-accent-soft) 90%, #fff), var(--cc-accent-soft));
    border: 1px solid color-mix(in srgb, var(--cc-accent) 20%, var(--cc-border));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 10px 28px rgba(52, 7, 1, 0.08);
}

.cc-error h1 {
    position: relative;
    z-index: 1;
    margin: 0 0 0.65rem;
    font-size: clamp(1.45rem, 3.2vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--cc-heading);
}

.cc-error__lead {
    position: relative;
    z-index: 1;
    margin: 0 auto 1.5rem;
    max-width: 28rem;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--cc-text-muted);
}

.cc-error__actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.cc-error__actions .cc-btn {
    min-width: 9.5rem;
}

.cc-error__hint {
    position: relative;
    z-index: 1;
    margin: 0;
    font-size: 0.82rem;
    color: var(--cc-text-soft);
    line-height: 1.45;
}

.cc-footer--compact {
    padding-block: 1.35rem 1.15rem;
    border-top: 1px solid color-mix(in srgb, var(--cc-footer-border) 80%, transparent);
}

.cc-footer-compact__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}

.cc-footer-compact__brand {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.cc-footer-compact__brand .cc-brand__logo--footer {
    height: 2rem;
    width: auto;
}

.cc-footer-compact__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.cc-footer-compact__nav a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.3rem 0.7rem;
    border-radius: var(--cc-radius-pill);
    color: var(--cc-footer-text);
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: color 0.12s ease, background 0.12s ease, border-color 0.12s ease;
}

.cc-footer-compact__nav a:hover {
    color: #fff;
    background: rgba(252, 252, 250, 0.08);
    border-color: rgba(252, 252, 250, 0.14);
}

.cc-footer-compact__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem 1rem;
    margin-top: 1rem;
    padding-top: 0.95rem;
    border-top: 1px solid var(--cc-footer-border);
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--cc-footer-text) 88%, transparent);
}

@media (max-width: 640px) {
    .cc-footer-compact__row {
        flex-direction: column;
        align-items: flex-start;
    }

    .cc-footer-compact__nav {
        width: 100%;
        gap: 0.25rem;
    }

    .cc-footer-compact__nav a {
        padding-inline: 0.55rem;
    }

    .cc-footer-compact__meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Market / group city layout (public entity city owner) */
.cc-city--market .cc-city-market__hero {
    margin-bottom: 0;
}

.cc-city-market__eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
}

.cc-city-market__eyebrow--light {
    color: var(--cc-text-muted);
}

.cc-city-market__tagline {
    margin: 0.45rem 0 0;
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    max-width: 36rem;
}

.cc-city-market__split-tagline {
    margin: 0.35rem 0 0;
    font-size: 0.95rem;
    color: var(--cc-text-muted);
    line-height: 1.45;
}

.cc-city-market__intro-panel .cc-entity-intro__top {
    margin-bottom: 0.35rem;
}

.cc-city-market__intro-panel .cc-entity-intro__copy h1 {
    margin: 0;
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    line-height: 1.2;
}

.cc-city-market__body {
    padding-top: 1.5rem;
}

.cc-city-market__intro {
    margin-bottom: 1.25rem;
}

.cc-city-market__related {
    margin-top: 1.75rem;
    display: grid;
    gap: 0.85rem;
}

.cc-city-market__related-lead {
    margin: -0.25rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.95rem;
}

.cc-city-market__photos {
    margin-top: 1.25rem;
}

/* Calendar toasts */
.cc-toast-stack {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 2000;
    display: grid;
    gap: 0.65rem;
    width: min(22.5rem, calc(100vw - 2rem));
    pointer-events: none;
}
.cc-toast {
    pointer-events: auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border-radius: 1rem;
    border: 1px solid var(--cc-border);
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-bg-elevated) 88%, var(--cc-soft-blue) 12%) 0%, var(--cc-bg-elevated) 55%),
        var(--cc-bg-elevated);
    color: var(--cc-text);
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.05),
        0 18px 40px -18px rgba(52, 7, 1, 0.35);
    font-family: var(--cc-font);
    transform: translateX(0.85rem);
    opacity: 0;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
.cc-toast.is-in {
    opacity: 1;
    transform: translateX(0);
}
.cc-toast.is-out {
    opacity: 0;
    transform: translateX(0.85rem);
}
.cc-toast__icon {
    width: 2.15rem;
    height: 2.15rem;
    display: grid;
    place-items: center;
    border-radius: 0.7rem;
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-muted);
    color: var(--cc-heading);
    font-size: 1.05rem;
    line-height: 1;
}
.cc-toast__body {
    min-width: 0;
    padding-top: 0.1rem;
}
.cc-toast__title {
    margin: 0;
    color: var(--cc-heading);
    font-size: 0.92rem;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.3;
}
.cc-toast__message {
    margin: 0.2rem 0 0;
    color: var(--cc-text-muted);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
}
.cc-toast__close {
    width: 1.75rem;
    height: 1.75rem;
    display: inline-grid;
    place-items: center;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 999px;
    background: color-mix(in srgb, var(--cc-heading) 6%, transparent);
    color: var(--cc-text-muted);
    cursor: pointer;
    line-height: 1;
    transition: background 0.15s ease, color 0.15s ease;
}
.cc-toast__close:hover,
.cc-toast__close:focus-visible {
    background: color-mix(in srgb, var(--cc-heading) 12%, transparent);
    color: var(--cc-heading);
    outline: none;
}
.cc-toast__close i {
    font-size: 0.78rem;
}
.cc-toast--success {
    border-color: var(--cc-success-border);
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-bg-elevated) 82%, #d1fae5 18%) 0%, var(--cc-bg-elevated) 58%),
        var(--cc-bg-elevated);
}
.cc-toast--success .cc-toast__icon {
    border-color: var(--cc-success-border);
    background: var(--cc-success-bg);
    color: var(--cc-success);
}
.cc-toast--success .cc-toast__title {
    color: var(--cc-success);
}
.cc-toast--error {
    border-color: var(--cc-danger-border);
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-bg-elevated) 82%, #fecdd3 18%) 0%, var(--cc-bg-elevated) 58%),
        var(--cc-bg-elevated);
}
.cc-toast--error .cc-toast__icon {
    border-color: var(--cc-danger-border);
    background: var(--cc-danger-bg);
    color: var(--cc-danger);
}
.cc-toast--error .cc-toast__title {
    color: var(--cc-danger);
}
.cc-toast--info {
    border-color: var(--cc-info-border);
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-bg-elevated) 78%, var(--cc-soft-blue) 22%) 0%, var(--cc-bg-elevated) 58%),
        var(--cc-bg-elevated);
}
.cc-toast--info .cc-toast__icon {
    border-color: var(--cc-info-border);
    background: var(--cc-info-bg);
    color: var(--cc-info-text);
}
.cc-toast--warning {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 70%, var(--cc-border));
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--cc-bg-elevated) 75%, var(--cc-soft-peach) 25%) 0%, var(--cc-bg-elevated) 58%),
        var(--cc-bg-elevated);
}
.cc-toast--warning .cc-toast__icon {
    border-color: color-mix(in srgb, var(--cc-soft-peach) 70%, var(--cc-border));
    background: color-mix(in srgb, var(--cc-soft-peach) 35%, var(--cc-bg-elevated));
    color: var(--cc-heading);
}
@media (max-width: 640px) {
    .cc-toast-stack {
        top: 0.75rem;
        right: 0.75rem;
        left: 0.75rem;
        width: auto;
    }
}

/* —— Homepage destinations map —— */
.cc-home-map {
    position: relative;
    overflow: hidden;
    padding-top: 3rem;
    padding-bottom: 3.15rem;
    background: linear-gradient(145deg, #d7eaf4 0%, #e3f1f8 42%, #eef7fb 100%);
}

.cc-home-map__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.cc-home-map__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.72) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.72) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(ellipse 88% 78% at 50% 42%, #000 22%, transparent 80%);
    opacity: 0.75;
    pointer-events: none;
}

/* Soft light that rides the grid lines only */
.cc-home-map__grid-light {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
    /* Clip sheen to the same 42px grid lines */
    -webkit-mask-image:
        linear-gradient(#000 1px, transparent 1px),
        linear-gradient(90deg, #000 1px, transparent 1px);
    mask-image:
        linear-gradient(#000 1px, transparent 1px),
        linear-gradient(90deg, #000 1px, transparent 1px);
    -webkit-mask-size: 42px 42px, 42px 42px;
    mask-size: 42px 42px, 42px 42px;
    -webkit-mask-repeat: repeat, repeat;
    mask-repeat: repeat, repeat;
    /* Fade out at edges like the base grid */
    -webkit-mask-position: 0 0, 0 0;
    mask-position: 0 0, 0 0;
    opacity: 0.95;
    /* outer soft vignette so light doesn’t hit section edges hard */
    mask-mode: alpha;
    clip-path: ellipse(88% 78% at 50% 42%);
}

.cc-home-map__grid-light::before,
.cc-home-map__grid-light::after {
    content: "";
    position: absolute;
    inset: -25%;
    background-repeat: no-repeat;
    will-change: transform;
}

/* Horizontal sweep along grid rows */
.cc-home-map__grid-light::before {
    background-image: linear-gradient(
        90deg,
        transparent 0%,
        transparent 40%,
        rgba(168, 200, 218, 0.18) 46%,
        rgba(168, 200, 218, 0.72) 50%,
        rgba(148, 190, 214, 0.65) 52%,
        rgba(168, 200, 218, 0.22) 56%,
        transparent 62%,
        transparent 100%
    );
    filter: drop-shadow(0 0 5px rgba(148, 190, 214, 0.4));
    animation: cc-home-map-light-x 8s ease-in-out infinite;
}

/* Vertical sweep along grid columns */
.cc-home-map__grid-light::after {
    background-image: linear-gradient(
        180deg,
        transparent 0%,
        transparent 40%,
        rgba(156, 194, 214, 0.14) 46%,
        rgba(156, 194, 214, 0.62) 50%,
        rgba(140, 186, 210, 0.55) 53%,
        rgba(156, 194, 214, 0.16) 58%,
        transparent 64%,
        transparent 100%
    );
    filter: drop-shadow(0 0 4px rgba(140, 186, 210, 0.35));
    animation: cc-home-map-light-y 11s ease-in-out infinite;
    animation-delay: -3.5s;
    opacity: 0.85;
}

@keyframes cc-home-map-light-x {
    0% {
        transform: translate3d(-35%, 0, 0);
    }
    100% {
        transform: translate3d(35%, 0, 0);
    }
}

@keyframes cc-home-map-light-y {
    0% {
        transform: translate3d(0, -35%, 0);
    }
    100% {
        transform: translate3d(0, 35%, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-home-map__grid-light::before,
    .cc-home-map__grid-light::after {
        animation: none;
        opacity: 0;
    }
}

.cc-home-map__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(10px);
    animation: cc-float 12s ease-in-out infinite;
    pointer-events: none;
}

.cc-home-map__orb--a {
    width: 20rem;
    height: 20rem;
    top: -7rem;
    right: -3rem;
    background: radial-gradient(circle, rgba(125, 186, 220, 0.42), transparent 68%);
}

.cc-home-map__orb--b {
    width: 16rem;
    height: 16rem;
    bottom: -6rem;
    left: -2.5rem;
    background: radial-gradient(circle, rgba(176, 214, 232, 0.48), transparent 70%);
    animation-delay: -4s;
}

.cc-home-map__inner {
    position: relative;
    z-index: 1;
}

html[data-cc-appearance="dark"] .cc-home-map,
.cc-site[data-appearance="dark"] .cc-home-map {
    background: linear-gradient(145deg, #1a2f3d 0%, #223846 45%, #2a4252 100%);
}

html[data-cc-appearance="dark"] .cc-home-map__grid,
.cc-site[data-appearance="dark"] .cc-home-map__grid {
    background-image:
        linear-gradient(rgba(176, 214, 232, 0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(176, 214, 232, 0.12) 1px, transparent 1px);
    opacity: 0.9;
}

html[data-cc-appearance="dark"] .cc-home-map__grid-light::before,
.cc-site[data-appearance="dark"] .cc-home-map__grid-light::before {
    background-image: linear-gradient(
        90deg,
        transparent 0%,
        transparent 38%,
        rgba(176, 214, 232, 0.04) 44%,
        rgba(200, 235, 255, 0.35) 50%,
        rgba(120, 190, 230, 0.28) 53%,
        rgba(176, 214, 232, 0.1) 58%,
        transparent 64%,
        transparent 100%
    );
}

html[data-cc-appearance="dark"] .cc-home-map__grid-light::after,
.cc-site[data-appearance="dark"] .cc-home-map__grid-light::after {
    background-image: linear-gradient(
        180deg,
        transparent 0%,
        transparent 38%,
        rgba(176, 214, 232, 0.03) 44%,
        rgba(200, 235, 255, 0.28) 50%,
        rgba(120, 190, 230, 0.22) 53%,
        rgba(176, 214, 232, 0.08) 58%,
        transparent 64%,
        transparent 100%
    );
}

html[data-cc-appearance="dark"] .cc-home-map__orb--a,
.cc-site[data-appearance="dark"] .cc-home-map__orb--a {
    background: radial-gradient(circle, rgba(96, 165, 200, 0.28), transparent 68%);
}

html[data-cc-appearance="dark"] .cc-home-map__orb--b,
.cc-site[data-appearance="dark"] .cc-home-map__orb--b {
    background: radial-gradient(circle, rgba(56, 130, 170, 0.22), transparent 70%);
}

html[data-cc-appearance="dark"] .cc-home-map .cc-section__head h2,
.cc-site[data-appearance="dark"] .cc-home-map .cc-section__head h2 {
    color: var(--cc-on-hero);
}

html[data-cc-appearance="dark"] .cc-home-map .cc-section__lead,
.cc-site[data-appearance="dark"] .cc-home-map .cc-section__lead {
    color: var(--cc-on-hero-muted);
}

html[data-cc-appearance="dark"] .cc-home-map .cc-section__label,
.cc-site[data-appearance="dark"] .cc-home-map .cc-section__label {
    color: var(--cc-soft-peach);
}

html[data-cc-appearance="dark"] .cc-home-map .cc-link-more,
.cc-site[data-appearance="dark"] .cc-home-map .cc-link-more {
    color: var(--cc-on-hero);
}

.cc-home-map__frame {
    position: relative;
    border-radius: var(--cc-radius-lg);
    overflow: hidden; /* clip pins + popups to the map frame */
    border: 1px solid var(--cc-border);
    background: var(--cc-bg-elevated);
    box-shadow: var(--cc-card-shadow);
}

.cc-home-map__canvas {
    width: 100%;
    height: min(32rem, 70vh);
    min-height: 22rem;
    border-radius: inherit;
    overflow: hidden;
}

/* Keep Mapbox markers/popups inside the canvas (do not override overflow) */
.cc-home-map .bf-mapbox,
.cc-home-map .mapboxgl-map {
    overflow: hidden;
    border-radius: inherit;
}

.cc-home-map .mapboxgl-canvas-container,
.cc-home-map .mapboxgl-canvas {
    border-radius: inherit;
}

.cc-home-map__status {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    z-index: 4;
    max-width: min(28rem, calc(100% - 2rem));
    padding: 0.55rem 0.9rem;
    border-radius: var(--cc-radius-pill);
    background: rgba(252, 252, 250, 0.94);
    border: 1px solid var(--cc-border);
    color: var(--cc-heading);
    font-size: 0.8125rem;
    font-weight: 600;
    box-shadow: 0 8px 24px -12px rgba(52, 7, 1, 0.28);
    text-align: center;
    pointer-events: none;
}

.cc-home-map__status.is-error {
    color: var(--cc-danger);
    border-color: var(--cc-danger-border);
    background: color-mix(in srgb, var(--cc-near-white) 88%, #fecdd3 12%);
}

html[data-cc-appearance="dark"] .cc-home-map__status,
.cc-site[data-appearance="dark"] .cc-home-map__status {
    background: rgba(42, 18, 12, 0.92);
    border-color: var(--cc-footer-border);
    color: var(--cc-footer-heading);
}

html[data-cc-appearance="dark"] .cc-home-map__frame,
.cc-site[data-appearance="dark"] .cc-home-map__frame {
    border-color: rgba(252, 252, 250, 0.1);
    background: #1c100c;
}

/* Mapbox popup card (injected HTML) — vertical destination card */
.bf-mapbox .mapboxgl-popup.cc-map-popup-shell,
.cc-home-map .mapboxgl-popup.cc-map-popup-shell {
    z-index: 8;
    max-width: min(18.5rem, 92vw) !important;
}

.bf-mapbox .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-content,
.bf-mapbox .mapboxgl-popup .mapboxgl-popup-content:has(.cc-map-popup),
.cc-home-map .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-content {
    position: relative;
    padding: 0.7rem;
    padding-top: 2rem;
    border-radius: 1rem;
    overflow: visible;
    box-shadow:
        0 1px 2px rgba(52, 7, 1, 0.06),
        0 18px 40px -16px rgba(52, 7, 1, 0.38);
    border: 1px solid rgba(52, 7, 1, 0.08);
    width: 17.5rem;
    max-width: min(17.5rem, 88vw);
    background: #fff;
}

.bf-mapbox .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-close-button,
.cc-home-map .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-close-button {
    position: absolute;
    top: 0.45rem;
    right: 0.5rem;
    z-index: 3;
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(252, 252, 250, 0.96);
    color: #340701;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.7rem;
    text-align: center;
    box-shadow: 0 1px 4px rgba(52, 7, 1, 0.14);
    cursor: pointer;
}

.bf-mapbox .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-close-button:hover,
.cc-home-map .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-close-button:hover {
    background: #fff;
    color: #fe4119;
}

.bf-mapbox-popup--hover-bridge {
    pointer-events: auto;
}

.bf-mapbox .mapboxgl-popup.cc-map-popup-shell .mapboxgl-popup-tip {
    border-top-color: #fff;
}

.cc-map-popup {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: #fff;
    color: #4f433d;
    font-family: var(--cc-font, Inter, system-ui, sans-serif);
}

a.cc-map-popup__media,
.cc-map-popup__media {
    display: block;
    width: 100%;
    height: 100px;
    min-height: 100px;
    overflow: hidden;
    background: #eeeae7;
    position: relative;
    border-radius: 0.75rem;
    text-decoration: none !important;
    color: inherit;
    cursor: pointer;
}

a.cc-map-popup__media::after,
.cc-map-popup__media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 42%;
    background: linear-gradient(to top, rgba(52, 7, 1, 0.22), transparent);
    pointer-events: none;
}

.cc-map-popup__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.25s ease;
}

a.cc-map-popup__media:hover img {
    transform: scale(1.04);
}

a.cc-map-popup__media--placeholder,
.cc-map-popup__media--placeholder {
    display: grid;
    place-items: center;
    color: #fe4119;
    font-size: 1.75rem;
    background:
        radial-gradient(circle at 70% 30%, rgba(254, 204, 131, 0.55), transparent 55%),
        linear-gradient(145deg, #fde8e2 0%, #eeeae7 100%);
}

a.cc-map-popup__media--placeholder::after,
.cc-map-popup__media--placeholder::after {
    display: none;
}

.cc-map-popup__media-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #fe4119;
    font-size: 1.75rem;
}

.cc-map-popup__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
    padding: 0 0.15rem 0.1rem;
}

a.cc-map-popup__title,
.cc-map-popup__title {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #340701 !important;
    line-height: 1.2;
    text-decoration: none !important;
    cursor: pointer;
}

a.cc-map-popup__title:hover {
    color: #fe4119 !important;
}

.cc-map-popup__loc {
    margin: 0 0 0.15rem;
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    font-size: 0.78rem;
    color: #7a736c;
    line-height: 1.35;
}

.cc-map-popup__loc i {
    color: #fe4119;
    font-size: 0.75rem;
    margin-top: 0.12rem;
    flex-shrink: 0;
}

.cc-map-popup__loc span {
    min-width: 0;
    flex: 1 1 auto;
}

/* Equal side-by-side stats under address */
.cc-map-popup__stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem;
    width: 100%;
    margin: 0.25rem 0 0;
    padding: 0;
    list-style: none;
    box-sizing: border-box;
}

.cc-map-popup__stat {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    min-height: 2.65rem;
    margin: 0;
    padding: 0.5rem 0.55rem;
    box-sizing: border-box;
    background: rgba(176, 204, 226, 0.32);
    border: 1px solid rgba(176, 204, 226, 0.55);
    border-radius: 0.55rem;
    color: #340701;
}

.cc-map-popup__stat > i {
    color: #fe4119;
    font-size: 0.9rem;
    flex: 0 0 auto;
    width: 1rem;
    text-align: center;
    line-height: 1;
}

.cc-map-popup__stat-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.08rem;
    min-width: 0;
    line-height: 1.1;
}

.cc-map-popup__stat-text strong {
    display: block;
    font-size: 0.95rem;
    font-weight: 800;
    color: #340701;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.cc-map-popup__stat-text span {
    display: block;
    font-size: 0.68rem;
    font-weight: 650;
    color: #7a736c;
    text-transform: lowercase;
    line-height: 1.1;
}

a.cc-map-popup__cta,
.cc-map-popup__cta {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    margin-top: 0.65rem;
    width: 100%;
    min-height: 2.5rem;
    box-sizing: border-box;
    padding: 0.7rem 0.85rem;
    border-radius: 0.65rem;
    border: 0;
    font-size: 0.875rem;
    font-weight: 750;
    line-height: 1.2;
    color: #fff !important;
    text-decoration: none !important;
    background: #fe4119 !important;
    background-image: linear-gradient(180deg, #ff5a33 0%, #fe4119 55%, #e03512 100%) !important;
    letter-spacing: -0.01em;
    box-shadow: 0 8px 18px -10px rgba(254, 65, 25, 0.7);
    cursor: pointer;
    position: relative;
    z-index: 1;
}

a.cc-map-popup__cta:hover,
.cc-map-popup__cta:hover {
    color: #fff !important;
    filter: brightness(1.04);
}

.cc-map-popup__cta i {
    font-size: 0.75rem;
    transition: transform 0.15s ease;
}

a.cc-map-popup__cta:hover i,
.mapboxgl-popup:hover .cc-map-popup__cta i {
    transform: translateX(2px);
}

@media (max-width: 640px) {
    .cc-home-map__canvas {
        height: 22rem;
        min-height: 18rem;
    }
}

/* —— News —— */
.cc-news__feed {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
    gap: 1.25rem;
}

.cc-news-card {
    display: flex;
    flex-direction: column;
    background: var(--cc-bg-elevated, #fff);
    border: 1px solid var(--cc-border, rgba(15, 23, 42, 0.08));
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 10px 24px -18px rgba(15, 23, 42, 0.35);
}

.cc-news-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, #ffe8e1, #fff7f5);
    overflow: hidden;
}

.cc-news-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cc-news-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #fe4119;
    font-size: 1.75rem;
}

.cc-news-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 1rem 1.05rem 1.15rem;
    flex: 1;
}

.cc-news-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--cc-text-muted, #64748b);
}

.cc-news-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(254, 65, 25, 0.12);
    color: #c2410c;
    font-weight: 600;
    font-size: 0.7rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.cc-news-card__title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.35;
}

.cc-news-card__title a {
    color: inherit;
    text-decoration: none;
}

.cc-news-card__title a:hover {
    color: var(--cc-link, #fe4119);
}

.cc-news-card__excerpt {
    margin: 0;
    color: var(--cc-text-muted, #64748b);
    font-size: 0.92rem;
    line-height: 1.5;
    flex: 1;
}

.cc-news-card__more {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--cc-link, #fe4119);
    text-decoration: none;
}

.cc-news-card__more:hover {
    text-decoration: underline;
}

.cc-news-article {
    padding: 1.5rem 0 3.5rem;
}

.cc-news-article__inner {
    max-width: 48rem;
}

.cc-news-article__header h1 {
    margin: 0.35rem 0 0.75rem;
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
}

.cc-news-article__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    color: var(--cc-text-muted, #64748b);
    font-size: 0.92rem;
    margin-bottom: 0.55rem;
}

.cc-news-article__utils {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 0.85rem;
}

.cc-news-article__util {
    gap: 0.4rem;
}

.cc-news-article__util.is-copied,
.cc-news-article__utils .is-copied {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.35);
    color: #059669;
}

.cc-news-article__lead {
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.55;
    color: var(--cc-text-muted, #475569);
}

.cc-news-article__poster {
    margin: 1.5rem 0;
    border-radius: 1rem;
    overflow: hidden;
    border: 1px solid var(--cc-border, rgba(15, 23, 42, 0.08));
}

.cc-news-article__poster img {
    display: block;
    width: 100%;
    height: auto;
}

.cc-news-article__body {
    font-size: 1.05rem;
    line-height: 1.7;
}

.cc-news-article__body img {
    max-width: 100%;
    height: auto;
    border-radius: 0.75rem;
}

.cc-news-article__album {
    margin-top: 2.5rem;
}

.cc-news-article__album h2 {
    font-size: 1.15rem;
    margin-bottom: 0.85rem;
}

.cc-news-article__album-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.65rem;
}

.cc-news-article__album-grid img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0.65rem;
    border: 1px solid var(--cc-border, rgba(15, 23, 42, 0.08));
}

.cc-news-article__back {
    margin-top: 2.5rem;
}

/* —— News portal (destinations-style) —— */
.cc-news-portal .cc-news-portal__recent,
.cc-news-portal .cc-news-portal__feed.cc-feed--grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .cc-news-portal .cc-news-portal__recent,
    .cc-news-portal .cc-news-portal__feed.cc-feed--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .cc-news-portal .cc-news-portal__recent,
    .cc-news-portal .cc-news-portal__feed.cc-feed--grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.cc-news-portal .cc-news-portal__feed.cc-feed--list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cc-news-card--list {
    flex-direction: row;
    align-items: stretch;
}

.cc-news-card--list .cc-news-card__media {
    width: 11.5rem;
    min-width: 11.5rem;
    aspect-ratio: 4 / 3;
    flex-shrink: 0;
}

.cc-news-card--list .cc-news-card__body {
    justify-content: center;
}

@media (max-width: 575.98px) {
    .cc-news-card--list {
        flex-direction: column;
    }

    .cc-news-card--list .cc-news-card__media {
        width: 100%;
        min-width: 0;
        aspect-ratio: 16 / 10;
    }
}

.cc-news-notice {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0.25rem 0;
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(254, 65, 25, 0.2);
    border-radius: 1rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 247, 245, 0.98)),
        #fff;
    box-shadow:
        0 1px 0 rgba(15, 23, 42, 0.04),
        0 14px 34px -18px rgba(254, 65, 25, 0.4),
        0 10px 24px -16px rgba(15, 23, 42, 0.28);
}

.cc-news-notice--caught-up {
    border-color: rgba(16, 185, 129, 0.28);
    box-shadow:
        0 1px 0 rgba(15, 23, 42, 0.04),
        0 14px 34px -18px rgba(16, 185, 129, 0.4),
        0 10px 24px -16px rgba(15, 23, 42, 0.24);
}

.cc-news-notice--search {
    border-color: rgba(100, 116, 139, 0.28);
    box-shadow:
        0 1px 0 rgba(15, 23, 42, 0.04),
        0 14px 34px -18px rgba(100, 116, 139, 0.35),
        0 10px 24px -16px rgba(15, 23, 42, 0.22);
}

.cc-news-notice__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    background: rgba(254, 65, 25, 0.12);
    color: #fe4119;
    font-size: 1.2rem;
}

.cc-news-notice--caught-up .cc-news-notice__icon {
    background: rgba(16, 185, 129, 0.14);
    color: #059669;
}

.cc-news-notice--search .cc-news-notice__icon {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.cc-news-notice__body {
    min-width: 0;
    flex: 1;
    padding-top: 0.1rem;
}

.cc-news-notice__title {
    margin: 0 0 0.3rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--cc-heading, #0f172a);
}

.cc-news-notice__text {
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.5;
    color: var(--cc-text-muted, #64748b);
}

.cc-news-notice__body .cc-btn {
    margin-top: 0.85rem;
}

.cc-news-portal .cc-news-portal__feed:has(.cc-news-notice),
.cc-news-portal .cc-news-portal__feed.cc-feed--grid:has(.cc-news-notice),
.cc-news-portal .cc-news-portal__feed.cc-feed--list:has(.cc-news-notice) {
    display: block;
    grid-template-columns: none;
}

/* Final mobile heading override (calendar site only) */
@media (max-width: 991.98px) {
    .cc-site h1 {
        font-size: 1rem !important;
        line-height: 1.2 !important;
    }

    .cc-site h2 {
        font-size: 0.92rem !important;
        line-height: 1.25 !important;
    }
}

@media (max-width: 639px) {
    .cc-site h1 {
        font-size: 0.95rem !important;
    }

    .cc-site h2 {
        font-size: 0.88rem !important;
    }
}

/* ——— Entity/destination frontend poster settings ——— */
/* Height tokens on root (entity venue + destination). No inline poster-h. */
.cc-profile {
    --cc-profile-poster-h: 40rem;
}
.cc-profile--h-sm { --cc-profile-poster-h: 12rem; }
.cc-profile--h-md { --cc-profile-poster-h: 20rem; }
.cc-profile--h-lg { --cc-profile-poster-h: 40rem; }
.cc-profile--h-half { --cc-profile-poster-h: 50vh; }
.cc-profile--h-full { --cc-profile-poster-h: 100vh; }

/* Small devices: fixed rem bands (no vh) so title/CTAs stay above the fold */
@media (max-width: 767.98px) {
    .cc-profile--h-sm { --cc-profile-poster-h: 14rem; }
    .cc-profile--h-md { --cc-profile-poster-h: 16rem; }
    .cc-profile--h-lg { --cc-profile-poster-h: 18rem; }
    .cc-profile--h-half { --cc-profile-poster-h: 20rem; }
    .cc-profile--h-full { --cc-profile-poster-h: 22rem; }

    .cc-profile .cc-entity__hero-main {
        padding-bottom: 0.4rem;
    }

    .cc-profile .cc-entity__hero-content {
        padding-top: 0.4rem;
        padding-bottom: 0.2rem;
        gap: 0.28rem;
    }

    .cc-profile .cc-entity__logo {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: 0.5rem;
    }

    .cc-profile .cc-entity__identity h1 {
        font-size: 1.05rem;
        line-height: 1.15;
    }

    .cc-profile .cc-entity-header__banner {
        height: var(--cc-profile-poster-h, 16rem);
        max-height: 22rem;
        min-height: 12rem;
        border-radius: 0.75rem;
    }

    .cc-profile .cc-entity-header--split .cc-entity-media,
    .cc-profile .cc-entity-header--split .cc-entity-media__frame,
    .cc-profile .cc-entity-header--split .cc-entity-media__slide {
        min-height: 14rem !important;
        height: 14rem !important;
        max-height: 16rem;
    }
}

/* Cover hero: venue entity, destination root, market city shells */
.cc-profile .cc-entity__hero,
.cc-destination .cc-entity__hero,
.cc-city--market .cc-entity__hero {
    height: var(--cc-profile-poster-h, var(--cc-hero-h, 18.25rem));
    min-height: var(--cc-profile-poster-h, var(--cc-hero-h, 18.25rem));
    max-height: var(--cc-profile-poster-h, var(--cc-hero-h, 18.25rem));
}

/* Desktop: half/full fill under sticky site header */
@media (min-width: 768px) {
    .cc-profile--h-half .cc-entity__hero {
        height: calc(50vh - (var(--cc-header-h, 4.5rem) / 2));
        min-height: calc(50vh - (var(--cc-header-h, 4.5rem) / 2));
        max-height: calc(50vh - (var(--cc-header-h, 4.5rem) / 2));
    }

    .cc-profile--h-full .cc-entity__hero {
        height: calc(100vh - var(--cc-header-h, 4.5rem));
        min-height: calc(100vh - var(--cc-header-h, 4.5rem));
        max-height: calc(100vh - var(--cc-header-h, 4.5rem));
    }
}

.cc-entity-header--stacked,
.cc-entity-header--minimal {
    padding-top: 1.15rem;
    background: var(--cc-bg, #fff);
}
.cc-entity-header__stacked-inner,
.cc-entity-header__minimal-inner {
    display: grid;
    gap: 1rem;
    padding-bottom: 1rem;
}
.cc-entity-header__banner {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    height: var(--cc-profile-poster-h, 20rem);
    min-height: 12rem;
    background: #1a1410 center/cover no-repeat;
    background-image: var(--cc-hero-image);
}
.cc-entity-header__banner-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.cc-entity-header--split .cc-entity-media,
.cc-entity-header--split .cc-entity-media__frame {
    min-height: var(--cc-profile-poster-h, 18rem);
    height: var(--cc-profile-poster-h, 18rem);
}
.cc-profile--no-poster .cc-entity-header__banner {
    display: none;
}

/* Hide unused layout toggle chrome */
.cc-entity-layout-toggle { display: none !important; }
