/* SemarangNext unified blue visual language.
   Loaded last to normalize legacy page palettes without changing layout. */
:root {
    --palette-blue-900: #1d7bf3;
    --palette-blue-800: #2088f2;
    --palette-blue-700: #2497ef;
    --palette-blue-600: #28a4ed;
    --palette-blue-500: #4bafea;
    --palette-blue-400: #6dbce8;
    --palette-blue-300: #94cfec;
    --palette-blue-200: #bbe3f1;
    --palette-blue-100: #e5f8f5;
    --palette-action: #0e61c6;
    --palette-action-hover: #0b54ad;
    --palette-ink: #12385f;
    --brand-blue: var(--palette-blue-900);
    --brand-sky: var(--palette-blue-300);
    --brand-white: #ffffff;
    --brand-gradient: linear-gradient(135deg, var(--palette-action), #176dd8);
    --brand-gradient-soft: linear-gradient(135deg, rgba(29,123,243,.14), rgba(148,207,236,.24));
    --blue: var(--palette-blue-900);
    --cyan: var(--palette-blue-300);
    --violet: var(--palette-blue-800);
    --purple: var(--palette-blue-800);
    --pink: var(--palette-blue-400);
    --orange: var(--palette-blue-700);
    --amber: var(--palette-blue-300);
    --red: var(--palette-blue-900);
    --primary: var(--palette-blue-900);
    --accent: var(--palette-blue-300);
}

/* One shared gradient for primary frontend buttons. */
:root {
    --frontend-button-gradient:linear-gradient(120deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%);
    --frontend-button-gradient-hover:linear-gradient(120deg,#094b9c 0%,#0f6fe9 48%,#39aeea 100%);
    --frontend-button-shadow:0 12px 30px rgba(19,119,254,.28),inset 0 1px rgba(255,255,255,.22);
}

:where(button,.btn,a[class*="-btn"],a[class*="button"],a[class*="-cta"],a[class*="primary"],a[class*="load-more"],a[class*="submit"])
:not(.theme-toggle):not(.nav-toggle):not([class*="close"]):not([class*="toggle"])
:not([class*="category"]):not([class*="tab"]):not([class*="filter"])
:not([class*="icon"]):not([class*="tool"]):not([class*="control"])
:not([class*="favorite"]):not([class*="fav"]):not([class*="pagination"])
:not([class*="swiper"]):not([class*="carousel"]):not([class*="accordion"]) {
    border-color:rgba(156,217,255,.5) !important;
    border-radius:999px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:var(--frontend-button-gradient) !important;
    box-shadow:var(--frontend-button-shadow) !important;
    text-decoration:none;
    transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,background .22s ease;
}

:where(button,.btn,a[class*="-btn"],a[class*="button"],a[class*="-cta"],a[class*="primary"],a[class*="load-more"],a[class*="submit"])
:not(.theme-toggle):not(.nav-toggle):not([class*="close"]):not([class*="toggle"])
:not([class*="category"]):not([class*="tab"]):not([class*="filter"])
:not([class*="icon"]):not([class*="tool"]):not([class*="control"])
:not([class*="favorite"]):not([class*="fav"]):not([class*="pagination"])
:not([class*="swiper"]):not([class*="carousel"]):not([class*="accordion"]):hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:var(--frontend-button-gradient-hover) !important;
    box-shadow:0 16px 38px rgba(19,119,254,.38),0 0 22px rgba(84,189,245,.18) !important;
    filter:none;
    transform:translateY(-2px);
}

:where(button,.btn,a[class*="-btn"],a[class*="button"],a[class*="-cta"],a[class*="primary"],a[class*="load-more"],a[class*="submit"]):focus-visible {
    outline:3px solid #9cd9ff !important;
    outline-offset:3px;
}

:where(button,.btn,a[class*="-btn"],a[class*="button"],a[class*="-cta"],a[class*="primary"],a[class*="load-more"],a[class*="submit"]):disabled,
:where(button,.btn,a[class*="-btn"],a[class*="button"],a[class*="-cta"],a[class*="primary"],a[class*="load-more"],a[class*="submit"])[aria-disabled="true"] {
    opacity:.58;
    cursor:not-allowed;
    box-shadow:none !important;
    transform:none !important;
}

html[data-theme="dark"] {
    --bg: #061b36;
    --bg-soft: #09294d;
    --panel: rgba(9,41,77,.86);
    --panel-strong: #0b315a;
    --text: #f7fcff;
    --muted: #bbe3f1;
    --line: rgba(148,207,236,.24);
}

html[data-theme="light"] {
    --bg: #f8feff;
    --bg-soft: #e5f8f5;
    --panel: rgba(255,255,255,.9);
    --panel-strong: #ffffff;
    --text: #12385f;
    --muted: #476b87;
    --line: rgba(109,188,232,.34);
}

:where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
.smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,.explore-reference-page,
.planner-page,.trips-page,.tourism-detail-page,.sitemap-page,.city-metrics-page,.frontend-search-page) {
    --about-violet: #1d7bf3;
    --contact-violet: #1d7bf3;
    --faq-violet: #1d7bf3;
    --news-violet: #1d7bf3;
    --events-violet: #1d7bf3;
    --smart-violet: #1d7bf3;
    --culinary-violet: #1d7bf3;
    --culture-violet: #1d7bf3;
    --map-violet: #1d7bf3;
    --ex-violet: #1d7bf3;
    --ex-pink: #94cfec;
    --ex-orange: #1d7bf3;
    --planner-violet: #1d7bf3;
    --trips-violet: #1d7bf3;
    --sm-violet: #1d7bf3;
    --cm-violet: #1d7bf3;
    --violet: #1d7bf3;
    --pink: #94cfec;
    --orange: #1d7bf3;
    --red: #1d7bf3;
}

body a:not([class*="danger"]):not([class*="delete"]) { text-decoration-color: rgba(29,123,243,.35); }
body a:not([class*="btn"]):not([class*="button"]):hover { color: #1d7bf3; }

/* Header, menu text, and navigation line */
.site-header {
    background: rgba(6,27,54,.9) !important;
    border-bottom-color: rgba(109,188,232,.3) !important;
    box-shadow: 0 8px 26px rgba(2,20,43,.22) !important;
}
.site-header.scrolled { background: rgba(6,27,54,.97) !important; }
.brand .brand-tagline { color: #bbe3f1 !important; }
.main-nav a { color: #bbe3f1 !important; text-shadow: none !important; }
.main-nav a:hover,.main-nav a.active { color: #ffffff !important; }
.main-nav a::after {
    background: linear-gradient(90deg,#1d7bf3,#28a4ed,#94cfec) !important;
    box-shadow: 0 3px 12px rgba(40,164,237,.36) !important;
}
.icon-button,.lang-button,.theme-toggle,.nav-toggle {
    border-color: rgba(148,207,236,.32) !important;
    color: #e5f8f5 !important;
    background: rgba(109,188,232,.1) !important;
    box-shadow: none !important;
}
.icon-button:hover,.lang-button:hover,.theme-toggle:hover,.nav-toggle:hover {
    border-color: #6dbce8 !important;
    color: #ffffff !important;
    background: rgba(109,188,232,.2) !important;
}
.login-button {
    border: 1px solid #4bafea !important;
    color: #ffffff !important;
    background: linear-gradient(135deg,#0e61c6,#176dd8) !important;
    box-shadow: 0 8px 20px rgba(29,123,243,.28) !important;
}
.login-button:hover { color:#ffffff !important; background:#0b54ad !important; }
.theme-toggle .sun { color:#09294d !important; background:#94cfec !important; box-shadow:none !important; }
.nav-toggle span { background:#e5f8f5 !important; }

[data-theme="light"] .site-header {
    background: rgba(255,255,255,.94) !important;
    border-bottom-color: #bbe3f1 !important;
    box-shadow: 0 8px 24px rgba(29,123,243,.09) !important;
}
[data-theme="light"] .site-header.scrolled { background:rgba(255,255,255,.985) !important; }
[data-theme="light"] .brand .brand-tagline { color:#476b87 !important; }
[data-theme="light"] .main-nav a { color:#365d7d !important; }
[data-theme="light"] .main-nav a:hover,[data-theme="light"] .main-nav a.active { color:#1d7bf3 !important; }
[data-theme="light"] .icon-button,[data-theme="light"] .lang-button,
[data-theme="light"] .theme-toggle,[data-theme="light"] .nav-toggle {
    border-color:#bbe3f1 !important;
    color:#12385f !important;
    background:#f8feff !important;
}
[data-theme="light"] .icon-button:hover,[data-theme="light"] .lang-button:hover,
[data-theme="light"] .theme-toggle:hover,[data-theme="light"] .nav-toggle:hover {
    border-color:#6dbce8 !important;
    color:#1d7bf3 !important;
    background:#e5f8f5 !important;
}
[data-theme="light"] .theme-toggle .moon { color:#ffffff !important; background:#1d7bf3 !important; }
[data-theme="light"] .theme-toggle .sun { color:#365d7d !important; background:transparent !important; }
[data-theme="light"] .nav-toggle span { background:#12385f !important; }

/* Footer surfaces, separator lines, and readable copy */
.site-footer {
    border-top-color:rgba(109,188,232,.3) !important;
    color:#f7fcff !important;
    background-color:#061b36 !important;
}
.site-footer::before {
    opacity:.22 !important;
    background-image:linear-gradient(rgba(6,27,54,.84),rgba(6,27,54,.94)) !important;
}
.site-footer h3,.site-footer .visitor-stat strong { color:#ffffff !important; }
.site-footer p,.site-footer a,.site-footer .footer-copyright,
.site-footer .visitor-stat span,.site-footer .footer-visitors small { color:#bbe3f1 !important; }
.site-footer a:hover { color:#94cfec !important; }
.footer-visitors { border-color:rgba(148,207,236,.28) !important; background:rgba(109,188,232,.08) !important; }
.visitor-stat { border-bottom-color:rgba(148,207,236,.2) !important; }
[data-theme="light"] .site-footer { color:#12385f !important; background-color:#e5f8f5 !important; }
[data-theme="light"] .site-footer::before {
    opacity:.3 !important;
    background-image:linear-gradient(rgba(229,248,245,.84),rgba(229,248,245,.94)) !important;
}
[data-theme="light"] .site-footer h3,[data-theme="light"] .site-footer .visitor-stat strong { color:#12385f !important; }
[data-theme="light"] .site-footer p,[data-theme="light"] .site-footer a,
[data-theme="light"] .site-footer .footer-copyright,[data-theme="light"] .site-footer .visitor-stat span,
[data-theme="light"] .site-footer .footer-visitors small { color:#476b87 !important; }
[data-theme="light"] .site-footer a:hover { color:#1d7bf3 !important; }
[data-theme="light"] .footer-visitors { border-color:#bbe3f1 !important; background:rgba(255,255,255,.66) !important; }

/* Page-specific controls: Home, Culinary, Smart City, Events, and News. */
:where(.btn-explore,.live-atlas-btn,.culinary-search-box button,.culinary-load-more,
.culinary-contribute-open,.smart-primary,.smart-cta-primary,.smart-wifi-locate,
.events-search button,.events-load-more,.event-contribution-cta>button,.event-contribution-submit,
.event-auth-form>button,.news-search button,.news-newsletter button) {
    border-color:transparent !important;
    color:#ffffff !important;
    background:linear-gradient(135deg,#0e61c6,#176dd8) !important;
    box-shadow:0 9px 22px rgba(14,97,198,.24) !important;
}
:where(.btn-explore,.live-atlas-btn,.culinary-search-box button,.culinary-load-more,
.culinary-contribute-open,.smart-primary,.smart-cta-primary,.smart-wifi-locate,
.events-search button,.events-load-more,.event-contribution-cta>button,.event-contribution-submit,
.event-auth-form>button,.news-search button,.news-newsletter button):hover {
    color:#ffffff !important;
    background:#0b54ad !important;
    box-shadow:0 12px 26px rgba(14,97,198,.3) !important;
}

:where(.view-all-link,.news-read,.news-article-body>a,.events-section-head>a,
.culinary-section-head>a,.smart-head a) {
    color:#1d7bf3 !important;
    text-decoration-color:#94cfec !important;
}
:where(.view-all-link,.news-read,.news-article-body>a,.events-section-head>a,
.culinary-section-head>a,.smart-head a):hover { color:#0e61c6 !important; }

:where(.smart-cta-secondary,.news-filter-button,.fullscreen-btn,.close-popup-btn) {
    border-color:#6dbce8 !important;
    color:#12385f !important;
    background:#bbe3f1 !important;
    box-shadow:none !important;
}
:where(.smart-cta-secondary,.news-filter-button,.fullscreen-btn,.close-popup-btn):hover {
    border-color:#2497ef !important;
    color:#ffffff !important;
    background:#2497ef !important;
}

:where(.events-status-tabs>a,.smart-wifi-map-card [data-wifi-filter]) {
    --tone:#1d7bf3 !important;
}
:where(.events-status-tabs>a,.smart-wifi-map-card [data-wifi-filter]).active,
:where(.smart-wifi-map-card [data-wifi-filter]).is-active {
    border-color:#2497ef !important;
    color:#12385f !important;
    background:#bbe3f1 !important;
    box-shadow:0 7px 18px rgba(29,123,243,.12) !important;
}
[data-theme="dark"] :where(.events-status-tabs>a,.smart-wifi-map-card [data-wifi-filter]).active,
[data-theme="dark"] :where(.smart-wifi-map-card [data-wifi-filter]).is-active {
    color:#ffffff !important;
    background:#1d7bf3 !important;
}

:where(.culinary-fav,.news-bookmark) {
    border-color:#bbe3f1 !important;
    color:#1d7bf3 !important;
    background:#ffffff !important;
}
:where(.culinary-fav,.news-bookmark):hover,
:where(.culinary-fav,.news-bookmark).active,
:where(.culinary-fav,.news-bookmark).saved {
    border-color:#1d7bf3 !important;
    color:#ffffff !important;
    background:#1d7bf3 !important;
}

[data-theme="dark"] :where(.smart-cta-secondary,.news-filter-button,.fullscreen-btn,.close-popup-btn) {
    border-color:#6dbce8 !important;
    color:#e5f8f5 !important;
    background:rgba(109,188,232,.12) !important;
}

:where(input,select,textarea):focus,
:where(input,select,textarea):focus-visible {
    border-color: #1d7bf3 !important;
    outline: 3px solid rgba(148,207,236,.34) !important;
    outline-offset: 1px;
    box-shadow: 0 0 0 4px rgba(29,123,243,.08) !important;
}

:where(button,a,[role="button"]):focus-visible {
    outline: 3px solid #94cfec !important;
    outline-offset: 3px;
}

:where(.btn-primary,.btn-accent,.primary-cta,[class$="-primary"],[class*="-primary "],
[class$="-send"],[class$="-load-more"],.ai-floating-btn,.chat-widget-toggle) {
    border-color: transparent !important;
    color: #ffffff !important;
    background: var(--brand-gradient) !important;
    box-shadow: 0 10px 26px rgba(29,123,243,.24) !important;
}

:where(.btn-outline-primary,.btn-secondary,[class$="-secondary"],[class*="-secondary "]) {
    border-color:#6dbce8 !important;
    color:#12385f !important;
    background:#bbe3f1 !important;
    box-shadow:none !important;
}
:where(.btn-outline-primary,.btn-secondary,[class$="-secondary"],[class*="-secondary "]):hover {
    border-color:#2497ef !important;
    color:#ffffff !important;
    background:#2497ef !important;
}
[data-theme="dark"] :where(.btn-outline-primary,.btn-secondary,[class$="-secondary"],[class*="-secondary "]) {
    border-color:#6dbce8 !important;
    color:#e5f8f5 !important;
    background:rgba(109,188,232,.12) !important;
}

:where(.btn-primary,.btn-accent,.primary-cta,[class$="-primary"],[class*="-primary "],
[class$="-send"],[class$="-load-more"]):hover {
    color: #ffffff !important;
    filter: saturate(1.05) brightness(.97);
    box-shadow: 0 14px 30px rgba(29,123,243,.3) !important;
}

:where(.badge,.tag,[class*="-tag"],[class*="-badge"],[class*="-pill"].active,
[aria-current="page"]):not(.trip-status) {
    --tag: #1d7bf3 !important;
    --tone: #1d7bf3 !important;
}

:where([class*="category"],[class*="filter"],[class*="tab"]).active:not(.category-chip),
:where([class*="category"],[class*="filter"],[class*="tab"]).is-active:not(.category-chip) {
    --tone: #1d7bf3 !important;
    --cat: #1d7bf3 !important;
    border-color: #1d7bf3 !important;
}

:where(.pagination,.culture-pagination) :where(.active,[aria-current="page"]),
:where(.page-item.active) .page-link {
    border-color: #1d7bf3 !important;
    color: #ffffff !important;
    background: #1d7bf3 !important;
}

:where(.explore-title-gradient,.culture-city-title,.sitemap-hero-copy h1 em,
.culinary-hero-copy h1>span:last-child,[class*="title-gradient"],[class*="gradient-text"]) {
    color: transparent !important;
    background-image: linear-gradient(90deg, #1d7bf3, #94cfec 72%, #ffffff) !important;
    background-clip: text !important;
    -webkit-background-clip: text !important;
}

:where(.category-container)::before,
:where([class*="timeline"])::after,
:where([class*="progress"])>i {
    background-image: linear-gradient(90deg, #1d7bf3, #94cfec, #ffffff) !important;
}

:where(.page-header.bg-primary,.city-map-hero,.trip-detail-hero,.trips-form-hero) {
    color:#ffffff !important;
    background-color:#0e61c6 !important;
    background-image:linear-gradient(120deg,#0b54ad,#1d7bf3) !important;
}

:where(.alert-danger,.text-danger,[class*="-error"],[class*="-danger"]) {
    --danger: #1d7bf3;
    border-color: rgba(29,123,243,.34) !important;
    color: #1d7bf3 !important;
}

:where(button,a)[class*="danger"] {
    border-color: transparent !important;
    color: #ffffff !important;
    background:linear-gradient(135deg,#0e61c6,#176dd8) !important;
}

[style*="--tone"]:not(.smart-service-trigger):not(.culinary-category):not([style*="--event-tone"]),[data-inline-style*="--tone"]:not(.smart-service-trigger):not(.culinary-category):not([data-inline-style*="--event-tone"]) { --tone: #1d7bf3 !important; }
[style*="--tag"],[data-inline-style*="--tag"] { --tag: #1d7bf3 !important; }
[style*="--cat"]:not(.category-chip),[data-inline-style*="--cat"]:not(.category-chip) { --cat: #1d7bf3 !important; }
[style*="--sector-tone"],[data-inline-style*="--sector-tone"] { --sector-tone: #1d7bf3 !important; }
[style*="--rec-color"],[data-inline-style*="--rec-color"] { --rec-color: #1d7bf3 !important; }
[style*="--place-color"] { --place-color: #1d7bf3 !important; }
[style*="--marker-color"] { --marker-color: #1d7bf3 !important; }

::selection { color: #ffffff; background: #1d7bf3; }

/* Remove legacy purple/violet accents from every rendered frontend page. */
:root,
:where(.culture-page,.explore-reference-page,.culinary-page,.events-page,.news-page,.smart-page,
.sitemap-page,.frontend-search-page,.error-404-page,.city-map-page,.city-metrics-page) {
    --violet:#1377fe !important;
    --purple:#1377fe !important;
    --culture-violet:#1377fe !important;
    --ex-violet:#1377fe !important;
    --cul-violet:#1377fe !important;
    --ev-violet:#1377fe !important;
    --n-purple:#1377fe !important;
    --smart-violet:#1377fe !important;
    --sm-violet:#1377fe !important;
    --e404-purple:#1377fe !important;
    --ab-purple:#1377fe !important;
    --ct-purple:#1377fe !important;
    --cd-violet:#1377fe !important;
    --fq-purple:#1377fe !important;
    --login-purple:#1377fe !important;
    --map-violet:#1377fe !important;
    --reg-purple:#1377fe !important;
    --cm-violet:#1377fe !important;
    --td-violet:#1377fe !important;
    --pp-violet:#1377fe !important;
    --trip-violet:#1377fe !important;
}
:where([class*="text-purple"],[class*="text-violet"]) { color:#1377fe !important; }
:where([class*="bg-purple"],[class*="bg-violet"]) { background-color:#1377fe !important; background-image:none !important; }
:where([class*="border-purple"],[class*="border-violet"]) { border-color:#9cd9ff !important; }
:where([class*="shadow-purple"],[class*="shadow-violet"]) { --tw-shadow-color:rgba(19,119,254,.28) !important; box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow) !important; }
:where([class*="from-purple"],[class*="from-violet"]) { --tw-gradient-from:#1377fe var(--tw-gradient-from-position) !important; --tw-gradient-to:rgba(19,119,254,0) var(--tw-gradient-to-position) !important; }
:where([class*="via-purple"],[class*="via-violet"]) { --tw-gradient-to:rgba(156,217,255,0) var(--tw-gradient-to-position) !important; --tw-gradient-stops:var(--tw-gradient-from),#9cd9ff var(--tw-gradient-via-position),var(--tw-gradient-to) !important; }
:where([class*="to-purple"],[class*="to-violet"]) { --tw-gradient-to:#9cd9ff var(--tw-gradient-to-position) !important; }
:where([class*="hover:text-purple"]:hover,[class*="hover:text-violet"]:hover,[class*="group-hover:text-purple"],[class*="group-hover:text-violet"]) { color:#0e61c6 !important; }

/* Components with hard-coded legacy accents. */
:where(.culture-spark,.explore-reference-copy .spark,.events-hero-copy h1 i,
.category-heading span,.section-head a,.text-link,.frontend-search-eyebrow,
.frontend-search-hero form>i,.frontend-search-heading small,.frontend-search-card small,
.frontend-search-card span,.sitemap-hero-copy>span,.sitemap-section>header small) {
    color:#1377fe !important;
}
:where(.frontend-search-hero button,.frontend-search-heading>span,.frontend-search-empty a,
.error-404-primary,.smart-wifi-marker,.smart-wifi-legend i) {
    border-color:transparent !important;
    color:#fff !important;
    background:#1377fe !important;
    background-image:none !important;
}
:where(.frontend-search-card>div,.culture-placeholder,.events-placeholder,.events-pop-placeholder) {
    color:#1377fe !important;
    background:linear-gradient(135deg,rgba(19,119,254,.13),rgba(156,217,255,.22)) !important;
}
:where(.smart-radar-shape,.smart-service-list>a>i,.smart-project-list em i,.smart-phone,
.city-map-tugu-marker span,.city-map-transit-action .city-map-route-code,
.culinary-osm-marker,.sitemap-primary-grid>a>i:first-child) {
    border-color:#9cd9ff !important;
    color:#fff !important;
    background:#1377fe !important;
    background-image:none !important;
}
:where(.error-404-plane,.error-404-content h1 em,.error-404-status>span,
.about-reference-eyebrow,.about-reference-intro>span,.about-reference-section-head>span,
.about-reference-partners>div>span,.about-reference-app div>span) { color:#1377fe !important; }

/* Subtle square grid shared by the main frontend content pages. */
:where(.news-page,.city-map-page,.about-reference-page,.faq-reference-page,
.planner-page,.contact-reference-page,.sitemap-page) {
    position:relative;
    isolation:isolate;
    --frontend-grid-line:rgba(29,123,243,.09);
}
:where(.news-page,.city-map-page,.about-reference-page,.faq-reference-page,
.planner-page,.contact-reference-page,.sitemap-page)::before {
    position:absolute;
    z-index:0;
    inset:0;
    opacity:.34;
    pointer-events:none;
    background-image:
        linear-gradient(var(--frontend-grid-line) 1px,transparent 1px),
        linear-gradient(90deg,var(--frontend-grid-line) 1px,transparent 1px);
    background-size:82px 82px;
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.92) 48%,transparent 74%);
    mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.92) 48%,transparent 74%);
    content:"";
}
[data-theme="dark"] :where(.news-page,.city-map-page,.about-reference-page,.faq-reference-page,
.planner-page,.contact-reference-page,.sitemap-page) {
    --frontend-grid-line:rgba(156,217,255,.1);
}
[data-theme="dark"] :where(.news-page,.city-map-page,.about-reference-page,.faq-reference-page,
.planner-page,.contact-reference-page,.sitemap-page)::before { opacity:.28; }

@media (max-width:720px) {
    :where(.news-page,.city-map-page,.about-reference-page,.faq-reference-page,
    .planner-page,.contact-reference-page,.sitemap-page)::before {
        opacity:.26;
        background-size:64px 64px;
        -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.82) 42%,transparent 68%);
        mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.82) 42%,transparent 68%);
    }
}

/* Shared rhythm for the primary frontend page headers. */
:where(.culture-page,.explore-reference-page,.culinary-page,.news-page,.city-map-page) {
    margin-top: 60px !important;
}
:where(.culinary-page,.events-page,.smart-page) {
    padding-top: 0 !important;
}
:where(.culture-hero,.explore-reference-hero,.culinary-ref-hero,.events-ref-hero,.news-hero,.smart-hero,.city-map-hero) {
    min-height: 390px !important;
    padding: 28px 0 24px !important;
}
:where(.events-ref-hero,.smart-hero) {
    margin-top: 60px !important;
}
:where(.culture-wrap,.explore-reference-wrap,.culinary-wrap,.events-wrap,.news-wrap,.smart-wrap,.city-map-wrap) {
    width: min(calc(100% - 48px), 1210px) !important;
}
:where(.culture-crumb,.explore-reference-breadcrumb,.culinary-crumb,.events-crumb,.news-crumb,.smart-crumb,.city-map-crumb) {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: .7rem !important;
    margin: 0 !important;
    padding: .35rem 0 2rem !important;
    font-size: .75rem !important;
    line-height: 1.4;
    font-weight: 700;
}
:where(.culture-crumb,.explore-reference-breadcrumb,.culinary-crumb,.events-crumb,.news-crumb,.smart-crumb,.city-map-crumb) > i {
    opacity: .55;
    font-size: .55rem;
}
:where(.culture-crumb,.explore-reference-breadcrumb,.culinary-crumb,.events-crumb,.news-crumb,.smart-crumb,.city-map-crumb) a {
    color: inherit;
    text-decoration: none;
}
:where(.culture-hero-grid,.explore-reference-hero-grid,.culinary-hero-grid,.news-hero-grid,.smart-hero-grid) {
    position: relative;
    z-index: 2;
    grid-template-columns: minmax(0, 540px) 1fr 230px !important;
    gap: 2rem !important;
    align-items: center;
}
:where(.culture-hero-copy,.explore-reference-copy,.culinary-hero-copy,.events-hero-copy,.news-hero-copy,.smart-hero-copy,.city-map-hero-copy) {
    max-width: 540px;
}
:where(.culture-hero-copy h1,.explore-reference-copy h1,.culinary-hero-copy h1,.events-hero-copy h1,.news-hero h1,.smart-hero-copy h1,.city-map-hero h1) {
    margin: 0 0 1.2rem !important;
    font-size: clamp(2.8rem, 6vw, 4.8rem) !important;
    line-height: .98 !important;
    font-weight: 800;
    letter-spacing: -.045em !important;
}
:where(.culture-hero-copy p,.explore-reference-copy p,.culinary-hero-copy p,.events-hero-copy p,.news-hero-copy > p,.smart-hero-copy p,.city-map-hero-copy > p:not(.city-map-eyebrow)) {
    max-width: 520px;
    margin: 0 0 1.4rem !important;
    font-size: .94rem !important;
    line-height: 1.8 !important;
    font-weight: 600;
}
:where(.explore-reference-search,.culinary-search-row,.events-search) {
    width: 100%;
    max-width: 540px !important;
}
:where(.explore-reference-search-box,.culinary-search-box,.events-search label,.news-search label) {
    min-height: 52px !important;
    border-radius: 999px !important;
    backdrop-filter: blur(20px);
}
.news-search {
    width: 100%;
    max-width: 540px;
    margin-top: 0 !important;
    gap: .75rem !important;
}
.news-search label {
    flex: 1;
    width: auto !important;
    height: 52px !important;
}
:where(.explore-reference-search-box,.culinary-search-box,.events-search label,.news-search label):focus-within {
    border-color: rgba(29,123,243,.48) !important;
    box-shadow: 0 0 0 4px rgba(29,123,243,.1), 0 16px 38px rgba(18,73,133,.14) !important;
}
:where(.culture-hero,.explore-reference-hero,.culinary-ref-hero,.events-ref-hero,.news-hero,.smart-hero)::before {
    filter: blur(2px) saturate(1.02);
    transform: scale(1.015);
    -webkit-mask-image: radial-gradient(ellipse 94% 96% at 62% 44%,#000 55%,rgba(0,0,0,.82) 76%,transparent 100%);
    mask-image: radial-gradient(ellipse 94% 96% at 62% 44%,#000 55%,rgba(0,0,0,.82) 76%,transparent 100%);
}

/* Maps and News use the same light, image-fade hero language as other indexes. */
.city-map-hero {
    isolation: isolate;
    color: var(--map-navy) !important;
    background: radial-gradient(circle at 78% 25%,rgba(29,123,243,.12),transparent 30rem),var(--bg) !important;
}
.city-map-hero::before {
    z-index: -1 !important;
    inset: -18px -24px -28px 31% !important;
    opacity: .86;
    background: linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 80%,transparent) 24%,transparent 62%),linear-gradient(180deg,transparent 52%,var(--bg) 100%),url("../images/banner/map.webp") center/cover no-repeat !important;
    filter: blur(2px) saturate(1.02);
    transform: scale(1.02);
    -webkit-mask-image: radial-gradient(ellipse 93% 96% at 62% 44%,#000 55%,rgba(0,0,0,.82) 76%,transparent 100%);
    mask-image: radial-gradient(ellipse 93% 96% at 62% 44%,#000 55%,rgba(0,0,0,.82) 76%,transparent 100%);
}
.city-map-hero::after { display: none; }
[data-theme="dark"] .city-map-hero::before { opacity: .58; filter: blur(3px) saturate(.92) brightness(.8); }
.city-map-crumb { color: var(--map-muted) !important; }
.city-map-crumb a,.city-map-crumb b { color: var(--map-navy) !important; }
.city-map-hero-grid {
    grid-template-columns: minmax(0,540px) 1fr 300px !important;
    gap: 2rem !important;
}
.city-map-eyebrow { margin-bottom: .7rem !important; color: #1d7bf3 !important; }
.city-map-hero h1 { color: var(--map-navy) !important; font-family: "Plus Jakarta Sans",Inter,sans-serif !important; }
.city-map-hero-copy > p:not(.city-map-eyebrow) { color: var(--map-muted) !important; }
.city-map-search {
    width: 100%;
    max-width: 540px !important;
    min-height: 52px;
    padding: 4px 5px 4px 18px !important;
    align-items: center;
    border: 1px solid var(--map-line) !important;
    border-radius: 999px !important;
    background: var(--map-panel) !important;
    box-shadow: var(--map-shadow);
    backdrop-filter: blur(20px);
}
.city-map-search > i { margin: 0 12px 0 0 !important; color: #1d7bf3 !important; }
.city-map-search input { color: var(--map-navy) !important; font-size: .8rem; }
.city-map-search input::placeholder { color: var(--map-muted) !important; }
.city-map-search button {
    min-width: 124px;
    min-height: 42px;
    padding: 0 17px !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: linear-gradient(135deg,#0e61c6,#1d7bf3) !important;
}
.city-map-search:focus-within { border-color: rgba(29,123,243,.48) !important; box-shadow: 0 0 0 4px rgba(29,123,243,.1),0 16px 38px rgba(18,73,133,.14); }
.city-map-view-card { grid-column: 3; min-height: 220px; border-radius: 18px; }
.news-hero { isolation: isolate; background: radial-gradient(circle at 78% 25%,rgba(29,123,243,.1),transparent 30rem),var(--n-bg); }
.news-hero::before { z-index: -1; inset: -18px -24px -28px 31%; opacity: .82; filter: blur(2px) saturate(1.02); transform: scale(1.02); }
[data-theme="dark"] .news-hero::before { opacity: .56; filter: blur(3px) saturate(.92) brightness(.8); }
.news-updates { border-radius: 18px; backdrop-filter: blur(18px); }
.news-hero h1 { color:#0a315c !important; }
.news-hero h1 span {
    color:transparent !important;
    background-image:linear-gradient(90deg,#0e61c6 0%,#1377fe 48%,#9cd9ff 100%) !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
}
[data-theme="dark"] .news-hero h1 { color:#f8fbff !important; }
.news-search label {
    padding:4px 5px 4px 20px;
    border-color:rgba(29,123,243,.2) !important;
    background:rgba(255,255,255,.94) !important;
    box-shadow:0 12px 30px rgba(18,73,133,.1) !important;
}
.news-search input {
    padding:0 12px 0 0 !important;
    color:#0a315c !important;
    font-size:.8rem !important;
    caret-color:#1377fe;
}
.news-search input::placeholder { color:#71859d !important; opacity:1; }
.news-search label button {
    flex:0 0 42px;
    width:42px !important;
    height:42px !important;
    display:grid;
    place-items:center;
    border-radius:50% !important;
}
.news-filter-button {
    min-height:52px;
    padding:0 20px !important;
    border-color:#9cd9ff !important;
    color:#0e61c6 !important;
    background:#eef8ff !important;
    box-shadow:none !important;
}
.news-filter-button:hover { border-color:#1377fe !important; color:#fff !important; background:#1377fe !important; }
[data-theme="dark"] .news-search label { border-color:rgba(156,217,255,.22) !important; background:rgba(13,29,59,.92) !important; box-shadow:0 14px 34px rgba(0,0,0,.24) !important; }
[data-theme="dark"] .news-search input { color:#f8fbff !important; }
[data-theme="dark"] .news-search input::placeholder { color:#aebbd1 !important; }
[data-theme="dark"] .news-filter-button { border-color:rgba(156,217,255,.32) !important; color:#9cd9ff !important; background:rgba(19,119,254,.12) !important; }

/* Smart City header typography follows the current blue palette. */
.smart-crumb { color:var(--smart-muted) !important; }
.smart-crumb a { color:var(--smart-muted) !important; }
.smart-crumb b { color:#0a315c !important; }
.smart-hero-copy h1 { color:#0a315c !important; }
.smart-hero-copy h1 span {
    color:transparent !important;
    background-image:linear-gradient(90deg,#0e61c6 0%,#1377fe 50%,#9cd9ff 100%) !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
}
.smart-hero-copy p { color:#61708a !important; }
[data-theme="dark"] .smart-crumb b,[data-theme="dark"] .smart-hero-copy h1 { color:#f8fbff !important; }
[data-theme="dark"] .smart-hero-copy p,[data-theme="dark"] .smart-crumb,[data-theme="dark"] .smart-crumb a { color:#aebbd1 !important; }
.smart-hero-actions a:first-child {
    border:1px solid transparent !important;
    color:#fff !important;
    background:linear-gradient(135deg,#0e61c6,#1377fe) !important;
    box-shadow:0 12px 28px rgba(19,119,254,.25) !important;
}
.smart-hero-actions a:first-child:hover { color:#fff !important; background:#0b54ad !important; box-shadow:0 16px 32px rgba(19,119,254,.32) !important; }
.smart-hero-actions a:last-child {
    border-color:#9cd9ff !important;
    color:#0e61c6 !important;
    background:rgba(255,255,255,.9) !important;
    box-shadow:0 10px 24px rgba(18,73,133,.08);
}
.smart-hero-actions a:last-child:hover { border-color:#1377fe !important; color:#fff !important; background:#1377fe !important; }
[data-theme="dark"] .smart-hero-actions a:last-child { border-color:rgba(156,217,255,.32) !important; color:#9cd9ff !important; background:rgba(13,29,59,.88) !important; }
[data-theme="dark"] .smart-hero-actions a:last-child:hover { border-color:#9cd9ff !important; color:#07142d !important; background:#9cd9ff !important; }

/* Metrics hero actions keep strong contrast in both color modes. */
.city-metrics-actions a:first-child {
    border:1px solid transparent !important;
    color:#fff !important;
    background:linear-gradient(135deg,#0e61c6,#1377fe) !important;
    box-shadow:0 12px 28px rgba(19,119,254,.25) !important;
    text-shadow:0 1px 2px rgba(3,32,72,.2);
}
.city-metrics-actions a:first-child:hover { color:#fff !important; background:#0b54ad !important; transform:translateY(-2px); }
.city-metrics-actions a:first-child i { color:#fff !important; }
.city-metrics-actions a:last-child { border-color:#9cd9ff !important; color:#0e61c6 !important; background:#eef8ff !important; }
[data-theme="dark"] .city-metrics-actions a:first-child { color:#fff !important; background:linear-gradient(135deg,#0b54ad,#1377fe) !important; }
[data-theme="dark"] .city-metrics-actions a:last-child { border-color:rgba(156,217,255,.34) !important; color:#c9ecff !important; background:rgba(19,119,254,.12) !important; }

/* Homepage primary actions and event states. */
.home-page :where(.btn-explore,.live-atlas-btn) {
    border-color:rgba(156,217,255,.55) !important;
    color:#fff !important;
    background:linear-gradient(120deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%) !important;
    box-shadow:0 12px 30px rgba(19,119,254,.32),inset 0 1px rgba(255,255,255,.24) !important;
}
.home-page :where(.btn-explore,.live-atlas-btn):hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background:linear-gradient(120deg,#094b9c 0%,#0f6fe9 48%,#39aeea 100%) !important;
    box-shadow:0 16px 38px rgba(19,119,254,.4),0 0 22px rgba(84,189,245,.2) !important;
}
.home-page :where(.btn-explore,.live-atlas-btn):focus-visible { outline:3px solid #9cd9ff !important; outline-offset:3px; }
.home-page .view-all-link,.home-page .view-all-link:hover { color:#fff !important; }
.home-page .event-item-link:hover { color:#fff !important; background:rgba(19,119,254,.2) !important; }
.home-page .event-item-link:hover :where(.event-info strong,.event-info span,.event-time strong,.event-time small,.event-arrow) { color:#fff !important; }
.home-page .event-list a:hover {
    border-color:#54bdf5 !important;
    color:var(--text) !important;
    background:color-mix(in srgb,var(--panel-strong) 88%,#9cd9ff 12%) !important;
    box-shadow:0 10px 24px rgba(19,119,254,.14);
}
.home-page .event-list a:hover :where(b,small) { color:inherit !important; }
.home-page .event-list time {
    border:1px solid rgba(19,119,254,.2);
    color:#0e61c6 !important;
    background:rgba(19,119,254,.11) !important;
}
.home-page .event-list time strong { color:#0e61c6 !important; }
[data-theme="dark"] .home-page .event-list a:hover { color:#f8fbff !important; background:rgba(19,119,254,.16) !important; }
[data-theme="dark"] .home-page .event-list time { border-color:rgba(156,217,255,.24); color:#9cd9ff !important; background:rgba(19,119,254,.18) !important; }
[data-theme="dark"] .home-page .event-list time strong { color:#c9ecff !important; }

/* Proportional media treatment for the left historical timeline card. */
.home-page .left-panel .image-card {
    min-height:0 !important;
    margin-top:2rem !important;
    padding-top:0 !important;
    overflow:hidden !important;
}
.home-page .left-panel .image-card::before { display:none !important; }
.home-page .left-panel .image-card-image {
    width:100% !important;
    height:clamp(210px,23vw,280px);
    margin:0 !important;
    overflow:hidden;
    border-radius:15px 15px 0 0 !important;
    background:linear-gradient(145deg,#dff2ff,#9cd9ff);
}
.home-page .left-panel .image-card-image img {
    display:block;
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center bottom;
}
.home-page .left-panel .image-card-content {
    padding:1.25rem 1.4rem 1.4rem !important;
    background:linear-gradient(135deg,#082852,#0e61c6) !important;
}
[data-theme="dark"] .home-page .left-panel .image-card-image { background:linear-gradient(145deg,#102244,#0e61c6); }

/* Explore planner CTA mirrors the homepage Explore Semarang button. */
#explore-itinerary-button {
    min-height:48px;
    padding:0 24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    border:1px solid rgba(156,217,255,.55) !important;
    border-radius:999px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:var(--frontend-button-gradient) !important;
    box-shadow:var(--frontend-button-shadow) !important;
    font-size:.82rem;
    font-weight:800;
    text-decoration:none;
}
#explore-itinerary-button:hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:var(--frontend-button-gradient-hover) !important;
    box-shadow:0 16px 38px rgba(19,119,254,.38),0 0 22px rgba(84,189,245,.18) !important;
    transform:translateY(-2px);
}
#explore-itinerary-button:focus-visible { outline:3px solid #9cd9ff !important; outline-offset:3px; }
#explore-itinerary-button i { color:#fff !important; transition:transform .22s ease; }
#explore-itinerary-button:hover i { transform:translateX(3px); }

/* Culture CTAs mirror the homepage Explore Semarang button. */
:is(#culture-explore-button,#culture-start-button) {
    min-height:48px;
    padding:0 24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    border:1px solid rgba(156,217,255,.55) !important;
    border-radius:999px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:var(--frontend-button-gradient) !important;
    box-shadow:var(--frontend-button-shadow) !important;
    font-size:.82rem;
    font-weight:800;
    text-decoration:none;
    transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
:is(#culture-explore-button,#culture-start-button):hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:var(--frontend-button-gradient-hover) !important;
    box-shadow:0 16px 38px rgba(19,119,254,.38),0 0 22px rgba(84,189,245,.18) !important;
    transform:translateY(-2px);
}
:is(#culture-explore-button,#culture-start-button):focus-visible { outline:3px solid #9cd9ff !important; outline-offset:3px; }
:is(#culture-explore-button,#culture-start-button) i { color:#fff !important; transition:transform .22s ease; }
:is(#culture-explore-button,#culture-start-button):hover i:last-child { transform:translateX(3px); }

/* Culinary recommendation CTA mirrors the homepage Explore Semarang button. */
#culinary-recommend-button {
    min-height:48px;
    border:1px solid rgba(156,217,255,.55) !important;
    border-radius:14px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:var(--frontend-button-gradient) !important;
    box-shadow:var(--frontend-button-shadow) !important;
    font-weight:800;
    text-shadow:none;
}
#culinary-recommend-button > span {
    color:#fff !important;
    background:rgba(255,255,255,.16) !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}
#culinary-recommend-button > i { color:#fff !important; }
#culinary-recommend-button:hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:var(--frontend-button-gradient-hover) !important;
    box-shadow:0 16px 38px rgba(19,119,254,.38),0 0 22px rgba(84,189,245,.18) !important;
    filter:none !important;
    transform:translateY(-2px);
}
#culinary-recommend-button:focus-visible { outline:3px solid #9cd9ff !important; outline-offset:3px; }

/* Culinary category icons retain individual semantic colors. */
.culinary-category {
    --tone:var(--culinary-tone,#1377fe) !important;
    --cat:var(--tone) !important;
}
.culinary-category > i {
    color:var(--tone) !important;
    background:color-mix(in srgb,var(--tone) 14%,transparent) !important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone) 16%,transparent);
}
.culinary-category:hover > i {
    color:#fff !important;
    background:var(--tone) !important;
    box-shadow:0 10px 22px color-mix(in srgb,var(--tone) 24%,transparent);
}
.culinary-category.active > i {
    color:#fff !important;
    background:var(--tone) !important;
    box-shadow:0 10px 24px color-mix(in srgb,var(--tone) 28%,transparent);
}

/* Keep the Culinary title crisp above the softened hero artwork. */
.culinary-hero-copy { position:relative; z-index:4 !important; isolation:isolate; }
.culinary-hero-copy h1 { position:relative; z-index:2; overflow:visible; }
.culinary-hero-copy h1 > span:last-child {
    position:relative;
    z-index:3;
    display:inline-block;
    padding:.04em .08em .08em 0;
    color:transparent !important;
    background-image:linear-gradient(90deg,#0e61c6 0%,#1377fe 55%,#54bdf5 100%) !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
    filter:none !important;
    text-shadow:none !important;
}
[data-theme="dark"] .culinary-hero-copy h1 > span:last-child {
    background-image:linear-gradient(90deg,#54bdf5 0%,#9cd9ff 58%,#fff 100%) !important;
}

/* Community CTA typography follows the current blue palette. */
.culinary-page .culinary-cta-eyebrow {
    border-color:rgba(19,119,254,.24) !important;
    color:#0e61c6 !important;
    background:rgba(19,119,254,.1) !important;
}
.culinary-page .culinary-cta-copy h2 {
    color:#0c315c !important;
}
.culinary-page .culinary-cta-copy h2 em {
    color:transparent !important;
    background-image:linear-gradient(100deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%) !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
}
[data-theme="dark"] .culinary-page .culinary-cta-eyebrow {
    border-color:rgba(156,217,255,.28) !important;
    color:#9cd9ff !important;
    background:rgba(19,119,254,.18) !important;
}
[data-theme="dark"] .culinary-page .culinary-cta-copy h2 {
    color:#f4f9ff !important;
}
[data-theme="dark"] .culinary-page .culinary-cta-copy h2 em {
    background-image:linear-gradient(100deg,#54bdf5 0%,#9cd9ff 58%,#fff 100%) !important;
}

/* Featured Culinary place: balanced editorial card across all breakpoints. */
.culinary-page .culinary-hero-grid {
    grid-template-columns:minmax(0,540px) minmax(24px,1fr) minmax(260px,300px) !important;
}
.culinary-page .culinary-feature-card {
    position:relative;
    isolation:isolate;
    min-height:270px;
    padding:1.35rem;
    border:1px solid rgba(255,255,255,.42) !important;
    border-radius:22px;
    justify-content:flex-end;
    color:#fff !important;
    background:var(--feature-image,linear-gradient(135deg,#0b54ad,#54bdf5)) center/cover no-repeat !important;
    box-shadow:0 24px 55px rgba(13,65,126,.24),inset 0 1px 0 rgba(255,255,255,.2) !important;
    transform:translateZ(0);
    transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.culinary-page .culinary-feature-card::before {
    position:absolute;
    z-index:-1;
    inset:0;
    border-radius:inherit;
    background:linear-gradient(180deg,rgba(3,22,48,.04) 8%,rgba(3,22,48,.22) 42%,rgba(3,18,42,.94) 100%);
    content:"";
}
.culinary-page .culinary-feature-card::after {
    position:absolute;
    z-index:-1;
    inset:8px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:16px;
    pointer-events:none;
    content:"";
}
.culinary-page .culinary-feature-card:hover {
    border-color:rgba(156,217,255,.75) !important;
    box-shadow:0 30px 68px rgba(13,65,126,.32),inset 0 1px 0 rgba(255,255,255,.25) !important;
    transform:translateY(-5px);
}
.culinary-page .culinary-feature-card > span {
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:.38rem;
    margin-bottom:.55rem;
    padding:.36rem .56rem;
    border:1px solid rgba(156,217,255,.38);
    border-radius:999px;
    color:#dff4ff !important;
    background:rgba(19,119,254,.32);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    backdrop-filter:blur(10px);
    font-size:.58rem;
    letter-spacing:.065em;
}
.culinary-page .culinary-feature-card > span i { color:#9cd9ff !important; }
.culinary-page .culinary-feature-card h2 {
    max-width:100%;
    margin:0 0 .48rem;
    color:#fff !important;
    font-size:clamp(1.2rem,1.8vw,1.55rem);
    line-height:1.18;
    letter-spacing:-.025em;
    text-wrap:balance;
}
.culinary-page .culinary-feature-card p {
    display:-webkit-box;
    max-width:31ch;
    margin:0 0 .9rem;
    overflow:hidden;
    color:rgba(239,248,255,.84) !important;
    font-size:.7rem;
    line-height:1.6;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.culinary-page .culinary-feature-card a {
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:.42rem;
    min-height:36px;
    padding:.48rem .72rem;
    border:1px solid rgba(255,255,255,.24);
    border-radius:11px;
    color:#fff !important;
    background:linear-gradient(120deg,#0b54ad,#1377fe 58%,#54bdf5) !important;
    box-shadow:0 10px 22px rgba(4,35,78,.3);
    font-size:.65rem;
    transition:transform .2s ease,filter .2s ease;
}
.culinary-page .culinary-feature-card a:hover {
    color:#fff !important;
    filter:brightness(1.08);
    transform:translateX(3px);
}
[data-theme="dark"] .culinary-page .culinary-feature-card {
    border-color:rgba(156,217,255,.28) !important;
    box-shadow:0 26px 62px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.12) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card::before {
    background:linear-gradient(180deg,rgba(2,12,29,.08) 5%,rgba(2,12,29,.36) 45%,rgba(2,10,25,.97) 100%);
}

@media (max-width:640px) {
    .home-page .left-panel .image-card-image { height:clamp(190px,58vw,250px); }
}

@media (max-width: 1160px) {
    :where(.culture-hero-grid,.explore-reference-hero-grid,.culinary-hero-grid,.news-hero-grid,.smart-hero-grid) {
        grid-template-columns: minmax(0,1fr) 230px !important;
    }
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) minmax(250px,285px) !important;
    }
    .culinary-page .culinary-feature-card { grid-column:2; }
}

@media (max-width: 720px) {
    :where(.culture-page,.explore-reference-page,.culinary-page,.news-page,.city-map-page) { margin-top: 56px !important; }
    :where(.events-ref-hero,.smart-hero) { margin-top: 56px !important; }
    :where(.culture-hero,.explore-reference-hero,.culinary-ref-hero,.events-ref-hero,.news-hero,.smart-hero,.city-map-hero) {
        min-height: auto !important;
        padding: 18px 0 24px !important;
    }
    :where(.culture-wrap,.explore-reference-wrap,.culinary-wrap,.events-wrap,.news-wrap,.smart-wrap,.city-map-wrap) {
        width: min(calc(100% - 26px),1210px) !important;
    }
    :where(.culture-crumb,.explore-reference-breadcrumb,.culinary-crumb,.events-crumb,.news-crumb,.smart-crumb,.city-map-crumb) {
        padding: .25rem 0 1.4rem !important;
        font-size: .7rem !important;
    }
    :where(.culture-hero-grid,.explore-reference-hero-grid,.culinary-hero-grid,.news-hero-grid,.smart-hero-grid) {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }
    .culinary-page .culinary-feature-card {
        display:flex !important;
        grid-column:1;
        min-height:230px;
        width:100%;
        max-width:560px;
        padding:1.2rem;
    }
    :where(.culture-hero-copy,.explore-reference-copy,.culinary-hero-copy,.events-hero-copy,.news-hero-copy,.smart-hero-copy,.city-map-hero-copy) {
        max-width: none;
    }
    :where(.culture-hero-copy h1,.explore-reference-copy h1,.culinary-hero-copy h1,.events-hero-copy h1,.news-hero h1,.smart-hero-copy h1,.city-map-hero h1) {
        margin-bottom: .9rem !important;
        font-size: clamp(2.35rem, 12vw, 3rem) !important;
        line-height: 1.02 !important;
    }
    :where(.culture-hero-copy p,.explore-reference-copy p,.culinary-hero-copy p,.events-hero-copy p,.news-hero-copy > p,.smart-hero-copy p,.city-map-hero-copy > p:not(.city-map-eyebrow)) {
        margin-bottom: 1.1rem !important;
        font-size: .82rem !important;
        line-height: 1.7 !important;
    }
    :where(.explore-reference-search-box,.culinary-search-box,.events-search label,.news-search label) {
        min-height: 48px !important;
        height: 48px !important;
    }
    .news-search { display: grid; max-width: none; }
    .city-map-hero-grid { grid-template-columns: 1fr !important; }
    .city-map-view-card { display: none; }
    .city-map-search { min-height: 48px; }
    .city-map-search button { min-width: 46px; width: 46px; padding: 0 !important; }
    .city-map-search button span { display: none; }
    .city-map-hero::before,.news-hero::before { inset: 54px -24px -20px !important; opacity: .26; }
    :where(.culture-hero,.explore-reference-hero,.culinary-ref-hero,.events-ref-hero,.news-hero,.smart-hero)::before {
        filter: blur(4px) saturate(.98);
        -webkit-mask-image: linear-gradient(180deg,transparent 0,#000 22%,#000 67%,transparent 100%);
        mask-image: linear-gradient(180deg,transparent 0,#000 22%,#000 67%,transparent 100%);
    }
}

@media (max-width:420px) {
    .culinary-page .culinary-feature-card {
        min-height:215px;
        border-radius:18px;
    }
    .culinary-page .culinary-feature-card h2 { font-size:1.18rem; }
}

/* Culinary responsive rhythm: tablet, phone, and compact phone. */
@media (max-width:900px) {
    .culinary-page {
        padding-bottom:52px;
    }
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 32px),1210px) !important;
    }
    .culinary-page .culinary-ref-hero {
        padding-bottom:12px !important;
    }
    .culinary-page .culinary-layout,
    .culinary-page .culinary-left-stack,
    .culinary-page .culinary-side-stack {
        gap:1rem;
    }
    .culinary-page .culinary-popular-panel,
    .culinary-page .culinary-recommend-panel,
    .culinary-page .culinary-map-panel,
    .culinary-page .culinary-guide-panel {
        padding:1.1rem;
    }
    .culinary-page .culinary-cta {
        margin-top:1rem;
    }
}

@media (max-width:720px) {
    .culinary-page {
        padding:10px 0 42px !important;
    }
    .culinary-page .culinary-wrap,
    .culinary-page .culinary-categories,
    .culinary-page .culinary-cta {
        width:min(calc(100% - 28px),1210px) !important;
    }
    .culinary-page .culinary-ref-hero {
        padding:12px 0 10px !important;
    }
    .culinary-page .culinary-ref-hero::before {
        inset:52px -20px auto !important;
        height:300px !important;
        opacity:.28;
    }
    .culinary-page .culinary-crumb {
        padding:.2rem 0 1.1rem !important;
    }
    .culinary-page .culinary-hero-grid {
        gap:1rem !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        margin-bottom:.75rem !important;
        font-size:clamp(2.4rem,11.5vw,3.15rem) !important;
    }
    .culinary-page .culinary-hero-copy p {
        max-width:58ch;
        margin-bottom:1rem !important;
        font-size:.8rem !important;
        line-height:1.65 !important;
    }
    .culinary-page .culinary-search-row {
        max-width:none;
    }
    .culinary-page .culinary-search-box {
        min-height:48px !important;
        height:48px !important;
        padding:4px 4px 4px 15px;
    }
    .culinary-page .culinary-search-box button {
        width:40px;
        height:40px;
        flex:0 0 40px;
    }
    .culinary-page .culinary-feature-card {
        min-height:225px;
        max-width:none;
        padding:1.1rem;
    }
    .culinary-page .culinary-categories {
        margin-top:.75rem;
        padding:.58rem .62rem;
        border-radius:16px;
        scroll-padding-inline:.62rem;
        scrollbar-width:none;
    }
    .culinary-page .culinary-categories::-webkit-scrollbar { display:none; }
    .culinary-page .culinary-category-row { gap:.45rem; }
    .culinary-page .culinary-category {
        min-width:82px;
        min-height:78px;
        padding:.35rem;
        border-radius:13px;
        gap:.35rem;
    }
    .culinary-page .culinary-category > i {
        width:42px;
        height:42px;
        font-size:1.08rem;
    }
    .culinary-page .culinary-category small {
        top:.3rem;
        right:.38rem;
    }
    .culinary-page .culinary-toolbar {
        gap:.45rem;
        margin:1rem auto .75rem;
        font-size:.67rem;
    }
    .culinary-page .culinary-toolbar > div,
    .culinary-page .culinary-toolbar-actions {
        gap:.5rem;
    }
    .culinary-page .culinary-layout,
    .culinary-page .culinary-left-stack,
    .culinary-page .culinary-side-stack {
        gap:.8rem;
    }
    .culinary-page .culinary-popular-panel,
    .culinary-page .culinary-recommend-panel,
    .culinary-page .culinary-map-panel,
    .culinary-page .culinary-guide-panel {
        padding:.9rem;
        border-radius:15px;
    }
    .culinary-page .culinary-section-head {
        gap:.65rem;
        margin-bottom:.8rem;
    }
    .culinary-page .culinary-popular-grid,
    .culinary-page .culinary-recommend-grid {
        gap:.6rem;
    }
    .culinary-page .culinary-map-frame {
        height:clamp(280px,82vw,340px);
    }
    .culinary-page .culinary-cta {
        padding:1.15rem !important;
        gap:1rem;
        border-radius:18px;
    }
}

@media (max-width:520px) {
    .culinary-page .culinary-wrap,
    .culinary-page .culinary-categories,
    .culinary-page .culinary-cta {
        width:calc(100% - 20px) !important;
    }
    .culinary-page .culinary-ref-hero {
        padding-top:8px !important;
    }
    .culinary-page .culinary-crumb {
        padding-bottom:.85rem !important;
        font-size:.65rem !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:clamp(2.15rem,11.8vw,2.75rem) !important;
        line-height:1 !important;
    }
    .culinary-page .culinary-search-box input {
        font-size:.72rem;
    }
    .culinary-page .culinary-feature-card {
        min-height:205px;
        padding:1rem;
        border-radius:17px;
    }
    .culinary-page .culinary-feature-card::after {
        inset:6px;
        border-radius:12px;
    }
    .culinary-page .culinary-feature-card > span {
        margin-bottom:.4rem;
        padding:.3rem .48rem;
        font-size:.52rem;
    }
    .culinary-page .culinary-feature-card p {
        margin-bottom:.65rem;
        font-size:.64rem;
    }
    .culinary-page .culinary-category {
        min-width:76px;
        min-height:74px;
        font-size:.61rem;
    }
    .culinary-page .culinary-category > i {
        width:39px;
        height:39px;
        font-size:1rem;
    }
    .culinary-page .culinary-toolbar > div:first-child {
        align-items:flex-start;
        flex-direction:column;
    }
    .culinary-page .culinary-toolbar-actions {
        justify-content:flex-start;
    }
    .culinary-page .culinary-section-head {
        grid-template-columns:minmax(0,1fr) auto;
    }
    .culinary-page .culinary-section-head h2 {
        font-size:1rem;
    }
    .culinary-page .culinary-recommend {
        grid-template-columns:88px minmax(0,1fr);
        gap:.55rem;
        padding:.5rem;
    }
    .culinary-page .culinary-recommend > img,
    .culinary-page .culinary-rec-placeholder {
        width:88px;
        height:100px;
    }
    .culinary-page .culinary-map-stats {
        grid-template-columns:minmax(0,1fr);
    }
    .culinary-page .culinary-cta-copy > p {
        margin:.7rem 0 1rem;
    }
}

@media (max-width:360px) {
    .culinary-page .culinary-wrap,
    .culinary-page .culinary-categories,
    .culinary-page .culinary-cta {
        width:calc(100% - 16px) !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:2.08rem !important;
    }
    .culinary-page .culinary-feature-card {
        min-height:195px;
        padding:.85rem;
    }
    .culinary-page .culinary-popular-panel,
    .culinary-page .culinary-recommend-panel,
    .culinary-page .culinary-map-panel,
    .culinary-page .culinary-guide-panel {
        padding:.75rem;
    }
    .culinary-page .culinary-recommend {
        grid-template-columns:minmax(0,1fr);
    }
    .culinary-page .culinary-recommend > img,
    .culinary-page .culinary-rec-placeholder {
        width:100%;
        height:155px;
    }
    .culinary-page .culinary-cta {
        padding:.9rem !important;
    }
}

/* Culinary header: final small-screen composition overrides. */
@media (max-width:720px) {
    .culinary-page .culinary-ref-hero {
        overflow:visible;
    }
    .culinary-page .culinary-ref-hero::before {
        inset:38px -14px auto 18% !important;
        height:245px !important;
        background-position:68% center !important;
        filter:blur(5px) saturate(.95) !important;
        -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 78%,transparent 100%);
        mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 78%,transparent 100%);
        pointer-events:none;
    }
    .culinary-page .culinary-crumb {
        min-width:0;
        flex-wrap:wrap;
        gap:.45rem;
        line-height:1.4;
    }
    .culinary-page .culinary-hero-grid {
        align-items:stretch;
    }
    .culinary-page .culinary-hero-copy {
        width:100%;
        min-width:0;
        max-width:none;
        padding-inline:1px;
    }
    .culinary-page .culinary-hero-copy h1,
    .culinary-page .culinary-hero-copy h1 > span {
        overflow-wrap:normal !important;
        word-break:normal !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        max-width:12ch;
        text-wrap:balance;
    }
    .culinary-page .culinary-hero-copy h1 > span:last-child {
        max-width:100%;
        padding-right:.12em;
        white-space:nowrap;
    }
    .culinary-page .culinary-spark {
        margin-left:.22rem;
        font-size:.92rem;
        vertical-align:1.35rem;
    }
    .culinary-page .culinary-hero-copy p {
        position:relative;
        z-index:2;
        max-width:46ch;
    }
    .culinary-page .culinary-search-row,
    .culinary-page .culinary-search-box {
        position:relative;
        z-index:3;
        width:100%;
        max-width:none !important;
    }
    .culinary-page .culinary-search-box {
        box-shadow:0 12px 30px rgba(18,73,133,.14) !important;
    }
    .culinary-page .culinary-search-box input {
        width:100%;
        min-width:0;
        padding-right:.45rem;
        text-overflow:ellipsis;
    }
    .culinary-page .culinary-feature-card {
        margin-top:.1rem;
    }
}

@media (max-width:520px) {
    .culinary-page .culinary-ref-hero::before {
        inset:32px -10px auto 12% !important;
        height:215px !important;
        opacity:.22;
    }
    .culinary-page .culinary-hero-grid {
        gap:.8rem !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        max-width:11ch;
        margin-bottom:.65rem !important;
    }
    .culinary-page .culinary-spark {
        font-size:.78rem;
        vertical-align:1.12rem;
    }
    .culinary-page .culinary-hero-copy p {
        margin-bottom:.85rem !important;
        font-size:.76rem !important;
        line-height:1.58 !important;
    }
    .culinary-page .culinary-search-box {
        min-height:46px !important;
        height:46px !important;
        padding-left:13px;
    }
    .culinary-page .culinary-search-box button {
        width:38px;
        height:38px;
        flex-basis:38px;
    }
    .culinary-page .culinary-feature-card {
        min-height:190px;
        margin-top:0;
    }
    .culinary-page .culinary-feature-card h2 {
        margin-bottom:.35rem;
        font-size:1.12rem;
    }
    .culinary-page .culinary-feature-card p {
        -webkit-line-clamp:1;
    }
}

@media (max-width:360px) {
    .culinary-page .culinary-ref-hero::before {
        left:8% !important;
        height:190px !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        max-width:10.5ch;
        font-size:1.98rem !important;
    }
    .culinary-page .culinary-search-box input {
        font-size:.68rem;
    }
    .culinary-page .culinary-feature-card {
        min-height:180px;
    }
    .culinary-page .culinary-feature-card > span {
        letter-spacing:.035em;
    }
}

/* Match the proven Culture header composition on smaller screens. */
@media (max-width:900px) {
    .culinary-page {
        overflow-x:clip;
    }
    .culinary-page .culinary-ref-hero {
        padding-top:22px !important;
    }
}

@media (max-width:720px) {
    .culinary-page {
        margin-top:56px !important;
    }
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 26px),1210px) !important;
    }
    .culinary-page .culinary-ref-hero {
        min-height:auto !important;
        padding:18px 0 22px !important;
        overflow:hidden;
    }
    .culinary-page .culinary-ref-hero::before {
        inset:68px 0 auto !important;
        height:230px !important;
        opacity:.2;
        background-position:58% center !important;
        filter:blur(4px) saturate(.98) !important;
        -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 67%,transparent 100%);
        mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 67%,transparent 100%);
    }
    .culinary-page .culinary-crumb {
        gap:.5rem;
        padding:.2rem 0 1.25rem !important;
        font-size:.68rem !important;
    }
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) !important;
        gap:1rem !important;
    }
    .culinary-page .culinary-feature-card {
        display:none !important;
    }
    .culinary-page .culinary-hero-copy {
        max-width:none;
        padding-inline:0;
    }
    .culinary-page .culinary-hero-copy h1 {
        max-width:none;
        margin-bottom:14px !important;
        font-size:clamp(2.25rem,12vw,3rem) !important;
        line-height:1.02 !important;
        overflow-wrap:anywhere !important;
    }
    .culinary-page .culinary-hero-copy h1 > span:last-child {
        height:auto !important;
        min-height:0;
    }
    .culinary-page .culinary-spark {
        margin-left:.4rem;
        font-size:1rem;
        vertical-align:1.25rem;
    }
    .culinary-page .culinary-hero-copy p {
        max-width:520px;
        margin-bottom:1.1rem !important;
        font-size:.82rem !important;
        line-height:1.7 !important;
    }
    .culinary-page .culinary-search-row {
        max-width:540px !important;
    }
    .culinary-page .culinary-search-box {
        min-height:48px !important;
        height:48px !important;
    }
}

@media (max-width:420px) {
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 18px),1210px) !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:2.15rem !important;
    }
}

@media (max-width:360px) {
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 14px),1210px) !important;
        max-width:calc(100% - 14px);
    }
    .culinary-page .culinary-ref-hero {
        padding-top:14px !important;
    }
    .culinary-page .culinary-crumb {
        padding-bottom:1rem !important;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:1.95rem !important;
        letter-spacing:-.035em !important;
    }
    .culinary-page .culinary-hero-copy p {
        font-size:.78rem !important;
        line-height:1.62 !important;
    }
}

/* WiFi ownership colors must remain distinct on the Smart City map. */
.smart-wifi-marker.government,
.smart-wifi-marker:not(.public) {
    border:3px solid #fff !important;
    background:#1377fe !important;
    background-image:none !important;
    box-shadow:0 8px 20px rgba(19,119,254,.34),0 0 0 1px rgba(7,49,100,.12) !important;
}
.smart-wifi-marker.public {
    border:3px solid #fff !important;
    background:#0fa89a !important;
    background-image:none !important;
    box-shadow:0 8px 20px rgba(15,168,154,.34),0 0 0 1px rgba(4,72,67,.14) !important;
}
.smart-wifi-legend i.government,
.smart-wifi-toolbar [data-wifi-filter="government"] i {
    border:2px solid #fff !important;
    background:#1377fe !important;
    box-shadow:0 0 0 1px rgba(19,119,254,.28);
}
.smart-wifi-legend i.public,
.smart-wifi-toolbar [data-wifi-filter="public"] i {
    border:2px solid #fff !important;
    background:#0fa89a !important;
    box-shadow:0 0 0 1px rgba(15,168,154,.3);
}
.smart-wifi-result.government > i {
    border:2px solid #fff;
    background:#1377fe !important;
    box-shadow:0 5px 13px rgba(19,119,254,.25);
}
.smart-wifi-result.public > i {
    border:2px solid #fff;
    background:#0fa89a !important;
    box-shadow:0 5px 13px rgba(15,168,154,.25);
}
[data-theme="dark"] .smart-wifi-marker,
[data-theme="dark"] .smart-wifi-legend i,
[data-theme="dark"] .smart-wifi-toolbar [data-wifi-filter] i {
    border-color:#fff !important;
}

/* Smart City contribution CTA mirrors Culinary's recommendation CTA. */
.smart-page .smart-cta .smart-cta-primary {
    min-height:48px;
    padding:.35rem .55rem .35rem .4rem;
    border:1px solid rgba(156,217,255,.55) !important;
    border-radius:14px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:linear-gradient(120deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%) !important;
    box-shadow:0 14px 30px rgba(19,119,254,.28) !important;
    font-weight:850;
    text-shadow:none;
}
.smart-page .smart-cta .smart-cta-primary > span {
    color:#fff !important;
    background:rgba(255,255,255,.16) !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}
.smart-page .smart-cta .smart-cta-primary > i { color:#fff !important; }
.smart-page .smart-cta .smart-cta-primary:hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:linear-gradient(120deg,#094a99 0%,#0f6fe9 48%,#36acec 100%) !important;
    box-shadow:0 18px 36px rgba(19,119,254,.34) !important;
    filter:none !important;
    transform:translateY(-2px);
}
.smart-page .smart-cta .smart-cta-primary:focus-visible {
    outline:3px solid #9cd9ff !important;
    outline-offset:3px;
}

/* Smart City CTA title uses the same readable blue hierarchy. */
.smart-page .smart-cta-copy h2 {
    color:#0c315c !important;
}
.smart-page .smart-cta-copy h2 em {
    color:transparent !important;
    background-image:linear-gradient(100deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%) !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
}
[data-theme="dark"] .smart-page .smart-cta-copy h2 {
    color:#f4f9ff !important;
}
[data-theme="dark"] .smart-page .smart-cta-copy h2 em {
    background-image:linear-gradient(100deg,#54bdf5 0%,#9cd9ff 58%,#fff 100%) !important;
}

/* Layered performance indicator keeps the chart colorful and legible. */
.smart-page .smart-indicator-panel .smart-radar {
    filter:drop-shadow(0 14px 22px rgba(19,119,254,.16));
}
.smart-page .smart-indicator-panel .smart-radar-shape {
    border:2px solid #54bdf5 !important;
    background-color:transparent !important;
    background-image:conic-gradient(from 18deg,#1377fe 0deg,#23b8e6 72deg,#9cd9ff 145deg,#2d90f4 220deg,#0b54ad 292deg,#1377fe 360deg) !important;
    box-shadow:inset 0 0 24px rgba(255,255,255,.24),0 0 0 5px rgba(19,119,254,.07);
    opacity:.78;
}
.smart-page .smart-indicator-panel .smart-radar::before {
    border-color:rgba(84,189,245,.68) !important;
    background:rgba(156,217,255,.06);
}
.smart-page .smart-indicator-panel .smart-radar::after {
    border-color:rgba(19,119,254,.64) !important;
    background:rgba(255,255,255,.08);
}
.smart-page .smart-indicator-panel .smart-radar strong {
    min-width:58px;
    min-height:58px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.65);
    border-radius:50%;
    color:#08366c !important;
    background:rgba(255,255,255,.78);
    box-shadow:0 8px 22px rgba(7,49,100,.18);
    backdrop-filter:blur(8px);
}
.smart-page .smart-indicator-panel .smart-radar span {
    top:105px;
    color:#0b54ad !important;
    font-weight:800;
}
[data-theme="dark"] .smart-page .smart-indicator-panel .smart-radar-shape {
    opacity:.82;
    box-shadow:inset 0 0 28px rgba(255,255,255,.16),0 0 0 5px rgba(84,189,245,.08);
}
[data-theme="dark"] .smart-page .smart-indicator-panel .smart-radar strong {
    border-color:rgba(156,217,255,.55);
    color:#fff !important;
    background:rgba(7,31,65,.78);
}
[data-theme="dark"] .smart-page .smart-indicator-panel .smart-radar span {
    color:#9cd9ff !important;
}

/* Events contribution CTA mirrors Culinary's recommendation button. */
.events-page .event-contribution-cta #event-contribution-button {
    width:min(100%,230px);
    min-height:48px;
    margin-inline:auto;
    display:grid;
    grid-template-columns:22px minmax(0,1fr) 30px;
    gap:.5rem;
    padding:.35rem;
    border:1px solid rgba(156,217,255,.55) !important;
    border-radius:14px !important;
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:linear-gradient(120deg,#0b54ad 0%,#1377fe 52%,#54bdf5 100%) !important;
    box-shadow:0 14px 30px rgba(19,119,254,.28) !important;
    font-weight:850;
    text-shadow:none;
}
.events-page .event-contribution-cta #event-contribution-button > span {
    display:grid;
    width:22px;
    height:34px;
    place-items:center;
    color:#fff !important;
    background:transparent !important;
    box-shadow:none;
}
.events-page .event-contribution-cta #event-contribution-button > b {
    min-width:0;
    color:#fff !important;
    font-size:.68rem;
    line-height:1.25;
    text-align:left;
}
.events-page .event-contribution-cta #event-contribution-button > i {
    width:30px;
    height:30px;
    margin:0 !important;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.16);
    border-radius:10px;
    color:#fff !important;
    background:rgba(255,255,255,.1);
}
.events-page .event-contribution-cta #event-contribution-button:hover {
    border-color:#c9ecff !important;
    color:#fff !important;
    background-color:#0f6fe9 !important;
    background-image:linear-gradient(120deg,#094a99 0%,#0f6fe9 48%,#36acec 100%) !important;
    box-shadow:0 18px 36px rgba(19,119,254,.34) !important;
    filter:none !important;
    transform:translateY(-2px);
}
.events-page .event-contribution-cta #event-contribution-button:focus-visible {
    outline:3px solid #9cd9ff !important;
    outline-offset:3px;
}

/* Community contribution icon follows the active blue palette. */
.events-page .event-contribution-cta-icon {
    border:1px solid rgba(156,217,255,.62);
    color:#fff !important;
    background-color:#1377fe !important;
    background-image:linear-gradient(135deg,#0b54ad 0%,#1377fe 56%,#54bdf5 100%) !important;
    box-shadow:0 13px 28px rgba(19,119,254,.28),inset 0 1px 0 rgba(255,255,255,.2) !important;
}
.events-page .event-contribution-cta-icon i {
    color:#fff !important;
}
[data-theme="dark"] .events-page .event-contribution-cta-icon {
    border-color:rgba(156,217,255,.48);
    box-shadow:0 14px 30px rgba(0,0,0,.34),0 0 0 4px rgba(19,119,254,.08) !important;
}

/* Every Events category retains its own generated color. */
.events-page .events-categories > a {
    --tone:var(--event-tone,#1377fe) !important;
}
.events-page .events-categories > a > i {
    border:2px solid rgba(255,255,255,.92);
    color:#fff !important;
    background:var(--tone) !important;
    box-shadow:0 9px 20px color-mix(in srgb,var(--tone) 28%,transparent),0 0 0 1px color-mix(in srgb,var(--tone) 18%,transparent);
    transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;
}
.events-page .events-categories > a:hover > i,
.events-page .events-categories > a.active > i {
    color:#fff !important;
    background:var(--tone) !important;
    box-shadow:0 12px 26px color-mix(in srgb,var(--tone) 38%,transparent),0 0 0 2px color-mix(in srgb,var(--tone) 15%,transparent);
    transform:scale(1.08);
}
.events-page .events-categories > a:hover,
.events-page .events-categories > a.active {
    border-color:color-mix(in srgb,var(--tone) 42%,var(--ev-line)) !important;
    background:color-mix(in srgb,var(--tone) 8%,var(--ev-panel)) !important;
}
[data-theme="dark"] .events-page .events-categories > a > i {
    border-color:rgba(255,255,255,.82);
    box-shadow:0 10px 22px color-mix(in srgb,var(--tone) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--tone) 25%,transparent);
}

/* Culinary featured panel adopts Home's weather-card glass composition. */
.culinary-page .culinary-feature-card {
    min-height:285px;
    display:block;
    padding:1.25rem;
    border:1px solid rgba(255,255,255,.2) !important;
    border-radius:20px;
    color:#fff !important;
    background:rgba(5,22,50,.82) !important;
    box-shadow:0 22px 50px rgba(7,32,70,.28) !important;
    backdrop-filter:blur(20px);
}
.culinary-page .culinary-feature-card::before {
    z-index:-2;
    opacity:.3;
    background:linear-gradient(180deg,rgba(5,22,50,.42),rgba(5,22,50,.94)),var(--feature-image,linear-gradient(135deg,#1377fe,#54bdf5)) center/cover no-repeat;
}
.culinary-page .culinary-feature-card::after {
    z-index:-1;
    inset:0;
    border:0;
    border-radius:inherit;
    background:linear-gradient(145deg,rgba(255,255,255,.08),transparent 45%,rgba(19,119,254,.08));
}
.culinary-page .culinary-feature-main {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:.85rem;
    margin-bottom:.9rem;
    padding-bottom:.9rem;
    border-bottom:1px solid rgba(255,255,255,.12);
}
.culinary-page .culinary-feature-main > span {
    display:grid;
    width:48px;
    height:48px;
    flex:0 0 48px;
    place-items:center;
    border:1px solid rgba(156,217,255,.3);
    border-radius:15px;
    color:#fff !important;
    background:linear-gradient(135deg,#0b54ad,#1377fe 58%,#54bdf5);
    box-shadow:0 10px 24px rgba(19,119,254,.3);
    font-size:1.15rem;
}
.culinary-page .culinary-feature-main small,
.culinary-page .culinary-feature-main strong {
    display:block;
}
.culinary-page .culinary-feature-main small {
    margin-bottom:.2rem;
    color:#9cd9ff;
    font-size:.53rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.culinary-page .culinary-feature-main strong {
    color:#fff;
    font-size:.9rem;
    letter-spacing:.01em;
}
.culinary-page .culinary-feature-place {
    position:relative;
    z-index:1;
    margin-bottom:.85rem;
    padding-bottom:.85rem;
    border-bottom:1px solid rgba(255,255,255,.12);
    text-align:center;
}
.culinary-page .culinary-feature-place > i {
    margin-bottom:.4rem;
    color:#54bdf5 !important;
    font-size:.85rem;
}
.culinary-page .culinary-feature-place h2 {
    margin:0 0 .35rem;
    color:#fff !important;
    font-size:1.05rem;
    line-height:1.28;
}
.culinary-page .culinary-feature-place p {
    display:-webkit-box;
    margin:0 auto;
    overflow:hidden;
    color:rgba(255,255,255,.68) !important;
    font-size:.62rem;
    line-height:1.5;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.culinary-page .culinary-feature-card > a {
    position:relative;
    z-index:1;
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.45rem;
    padding:.45rem .7rem;
    border:1px solid rgba(156,217,255,.24);
    border-radius:11px;
    color:#fff !important;
    background:rgba(19,119,254,.2) !important;
    box-shadow:none;
    backdrop-filter:blur(10px);
}
.culinary-page .culinary-feature-card > a i:first-child {
    color:#9cd9ff !important;
}
.culinary-page .culinary-feature-card > a i:last-child {
    margin-left:auto;
}
.culinary-page .culinary-feature-card > a:hover {
    border-color:rgba(156,217,255,.52) !important;
    background:#1377fe !important;
    transform:translateY(-1px);
}
[data-theme="light"] .culinary-page .culinary-feature-card {
    background:rgba(8,31,67,.84) !important;
    box-shadow:0 18px 42px rgba(35,66,112,.22) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card {
    background:rgba(3,15,36,.88) !important;
    box-shadow:0 22px 52px rgba(0,0,0,.42) !important;
}

@media (max-width:1160px) and (min-width:721px) {
    .culinary-page .culinary-feature-card {
        min-height:270px;
        padding:1rem;
    }
    .culinary-page .culinary-feature-main {
        gap:.65rem;
        margin-bottom:.7rem;
        padding-bottom:.7rem;
    }
    .culinary-page .culinary-feature-main > span {
        width:42px;
        height:42px;
        flex-basis:42px;
    }
    .culinary-page .culinary-feature-place {
        margin-bottom:.7rem;
        padding-bottom:.7rem;
    }
}

/* Culinary featured panel follows Culture's compact side-card pattern. */
.culinary-page .culinary-feature-card {
    min-height:0;
    display:block;
    padding:1.35rem;
    border:1px solid rgba(255,255,255,.2) !important;
    border-radius:18px;
    color:#fff !important;
    background:rgba(9,19,42,.84) !important;
    box-shadow:0 34px 90px rgba(35,57,106,.25) !important;
    backdrop-filter:blur(18px);
}
.culinary-page .culinary-feature-card::before,
.culinary-page .culinary-feature-card::after {
    display:none;
}
.culinary-page .culinary-feature-card > span {
    display:inline-flex;
    align-items:center;
    gap:.38rem;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    color:#9cd9ff !important;
    background:transparent !important;
    box-shadow:none;
    backdrop-filter:none;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.culinary-page .culinary-feature-card > span i {
    color:#54bdf5 !important;
}
.culinary-page .culinary-feature-card > h2 {
    max-width:none;
    margin:.65rem 0;
    color:#fff !important;
    font-size:1.05rem;
    line-height:1.35;
    letter-spacing:0;
}
.culinary-page .culinary-feature-card > p {
    display:-webkit-box;
    max-width:none;
    margin:0 0 .9rem;
    overflow:hidden;
    color:rgba(255,255,255,.78) !important;
    font-size:.72rem;
    line-height:1.7;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}
.culinary-page .culinary-feature-card > a {
    width:auto;
    min-height:0;
    display:inline-flex;
    padding:0;
    border:0;
    border-radius:0;
    color:#9cd9ff !important;
    background:transparent !important;
    box-shadow:none;
    backdrop-filter:none;
    font-size:.72rem;
    font-weight:800;
}
.culinary-page .culinary-feature-card > a i {
    color:inherit !important;
}
.culinary-page .culinary-feature-card > a:hover {
    border:0 !important;
    color:#fff !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:translateX(3px);
}
[data-theme="light"] .culinary-page .culinary-feature-card {
    background:rgba(9,19,42,.84) !important;
    box-shadow:0 34px 90px rgba(35,57,106,.25) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card {
    border-color:rgba(156,217,255,.22) !important;
    background:rgba(5,15,34,.9) !important;
    box-shadow:0 30px 80px rgba(0,0,0,.38) !important;
}

@media (max-width:1160px) and (min-width:721px) {
    .culinary-page .culinary-feature-card {
        min-height:0;
        padding:1.2rem;
    }
}

/* Reference-matched Culinary feature image card. */
.culinary-page .culinary-hero-grid {
    grid-template-columns:minmax(0,540px) minmax(20px,1fr) minmax(245px,280px) !important;
}
.culinary-page .culinary-feature-card {
    position:relative;
    isolation:isolate;
    width:100%;
    min-height:0;
    aspect-ratio:1.06/1;
    padding:0;
    overflow:hidden;
    border:5px solid #fff !important;
    border-radius:24px;
    color:#fff !important;
    background:var(--feature-image,linear-gradient(135deg,#1377fe,#9cd9ff)) center/cover no-repeat !important;
    box-shadow:0 20px 32px rgba(25,22,18,.25) !important;
    backdrop-filter:none;
}
.culinary-page .culinary-feature-card::before {
    display:block;
    z-index:0;
    inset:0;
    opacity:1;
    border-radius:0;
    background:linear-gradient(180deg,transparent 34%,rgba(13,12,9,.08) 48%,rgba(15,13,9,.78) 76%,rgba(13,12,8,.96) 100%);
    content:"";
}
.culinary-page .culinary-feature-card::after {
    display:none;
}
.culinary-page .culinary-feature-card > a.culinary-feature-link {
    position:absolute;
    z-index:2;
    inset:0;
    width:100%;
    min-height:0;
    display:block;
    padding:0;
    border:0;
    border-radius:0;
    color:#fff !important;
    background:transparent !important;
    box-shadow:none !important;
    text-decoration:none;
    backdrop-filter:none;
}
.culinary-page .culinary-feature-content {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    padding:.85rem .9rem .82rem;
}
.culinary-page .culinary-feature-content h2 {
    max-width:12ch;
    margin:0 0 .38rem;
    color:#fff !important;
    font-size:clamp(1.08rem,1.65vw,1.3rem);
    font-weight:700;
    line-height:1.05;
    letter-spacing:-.045em;
    text-wrap:balance;
    text-shadow:0 2px 12px rgba(0,0,0,.32);
}
.culinary-page .culinary-feature-content > p {
    display:-webkit-box;
    margin:0 0 .62rem;
    overflow:hidden;
    color:rgba(255,255,255,.76) !important;
    font-size:.56rem;
    line-height:1.5;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.culinary-page .culinary-feature-meta {
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.55rem;
}
.culinary-page .culinary-feature-meta > div {
    min-width:0;
    display:flex;
    align-items:center;
    gap:.28rem;
    overflow:hidden;
}
.culinary-page .culinary-feature-meta span {
    max-width:90px;
    flex:0 1 auto;
    padding:.31rem .48rem;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    color:#fff !important;
    background:rgba(255,255,255,.14);
    backdrop-filter:blur(10px);
    font-size:.58rem;
    line-height:1;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.culinary-page .culinary-feature-views {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    color:#fff;
    font-size:.58rem;
    white-space:nowrap;
}
.culinary-page .culinary-feature-views i {
    color:#fff !important;
    font-size:.7rem;
}
.culinary-page .culinary-feature-card:hover {
    border-color:#fff !important;
    box-shadow:0 30px 48px rgba(25,22,18,.34) !important;
    transform:translateY(-4px);
}
.culinary-page .culinary-feature-card:hover .culinary-feature-link {
    transform:none;
}
[data-theme="light"] .culinary-page .culinary-feature-card,
[data-theme="dark"] .culinary-page .culinary-feature-card {
    border-color:#fff !important;
    background:var(--feature-image,linear-gradient(135deg,#1377fe,#9cd9ff)) center/cover no-repeat !important;
}

@media (max-width:1160px) and (min-width:721px) {
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) minmax(235px,265px) !important;
    }
    .culinary-page .culinary-feature-card {
        min-height:0;
        padding:0;
        border-width:5px !important;
        border-radius:25px;
    }
    .culinary-page .culinary-feature-content {
        padding:.9rem .9rem .8rem;
    }
    .culinary-page .culinary-feature-content h2 {
        margin-bottom:.65rem;
        font-size:1.28rem;
    }
    .culinary-page .culinary-feature-meta span:nth-child(n+3) {
        display:none;
    }
}

@media (max-width:420px) {
    .events-page .event-contribution-cta #event-contribution-button {
        width:min(100%,220px);
        grid-template-columns:20px minmax(0,1fr) 28px;
        gap:.4rem;
        min-height:46px;
    }
    .events-page .event-contribution-cta #event-contribution-button > span {
        width:20px;
        height:32px;
    }
    .events-page .event-contribution-cta #event-contribution-button > i {
        width:28px;
        height:28px;
    }
}

/* Culinary feature content visibility and responsive presentation. */
.culinary-page .culinary-feature-content {
    z-index:3;
    padding:.95rem 1rem .9rem;
}
.culinary-page .culinary-feature-content h2 {
    max-width:14ch;
    margin-bottom:.42rem;
    font-size:clamp(1.15rem,1.7vw,1.34rem);
    line-height:1.08;
}
.culinary-page .culinary-feature-content > p {
    margin-bottom:.7rem;
    color:rgba(255,255,255,.9) !important;
    font-size:.66rem;
    font-weight:500;
    line-height:1.48;
    -webkit-line-clamp:2;
}
.culinary-page .culinary-feature-meta span {
    max-width:112px;
    padding:.34rem .52rem;
    border-color:rgba(255,255,255,.16);
    background:rgba(20,20,17,.42);
    font-size:.63rem;
    font-weight:600;
}
.culinary-page .culinary-feature-meta > .culinary-feature-views {
    max-width:none;
    padding:0;
    overflow:visible;
    border:0;
    color:#fff !important;
    background:transparent;
    backdrop-filter:none;
    font-size:.63rem;
    font-weight:600;
}
.culinary-page .culinary-feature-meta > .culinary-feature-views i {
    font-size:.74rem;
}

/* Soften the database image and prioritize Culinary information. */
.culinary-page .culinary-feature-card,
[data-theme="light"] .culinary-page .culinary-feature-card,
[data-theme="dark"] .culinary-page .culinary-feature-card {
    background:#071a33 !important;
}
.culinary-page .culinary-feature-card::before {
    position:absolute;
    z-index:0;
    inset:0;
    display:block;
    opacity:.58;
    background:var(--feature-image,linear-gradient(135deg,#1377fe,#9cd9ff)) center/cover no-repeat;
    filter:saturate(.86) contrast(.94);
    content:"";
}
.culinary-page .culinary-feature-card::after {
    position:absolute;
    z-index:1;
    inset:0;
    display:block;
    border-radius:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(7,26,51,.18) 0%,rgba(7,22,43,.3) 38%,rgba(6,18,35,.82) 72%,rgba(4,13,27,.98) 100%);
    content:"";
}
.culinary-page .culinary-feature-card > a.culinary-feature-link {
    z-index:2;
}
.culinary-page .culinary-feature-content {
    z-index:3;
}
[data-theme="dark"] .culinary-page .culinary-feature-card::before {
    opacity:.5;
    filter:saturate(.8) contrast(.9);
}
[data-theme="dark"] .culinary-page .culinary-feature-card::after {
    background:linear-gradient(180deg,rgba(3,13,29,.24) 0%,rgba(3,13,29,.4) 38%,rgba(2,10,23,.86) 72%,rgba(1,7,17,.99) 100%);
}

/* Match the compact information hierarchy used by the Explore hero panel. */
.culinary-page .culinary-feature-content {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:1rem 1.05rem .95rem;
}
.culinary-page .culinary-feature-eyebrow {
    display:inline-flex;
    align-items:center;
    gap:.34rem;
    margin:0 0 .52rem;
    padding:0;
    color:#63dcff !important;
    font-size:.62rem;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
}
.culinary-page .culinary-feature-eyebrow i {
    color:#63dcff !important;
    font-size:.64rem;
}
.culinary-page .culinary-feature-content h2 {
    max-width:100%;
    margin:0 0 .48rem;
    font-size:clamp(1.08rem,1.55vw,1.28rem);
    font-weight:800;
    line-height:1.25;
    letter-spacing:-.025em;
}
.culinary-page .culinary-feature-content > p {
    width:100%;
    margin:0 0 .72rem;
    color:rgba(255,255,255,.8) !important;
    font-size:.68rem;
    font-weight:500;
    line-height:1.65;
    text-wrap:pretty;
}
.culinary-page .culinary-feature-meta {
    width:100%;
    padding-top:.05rem;
}
.culinary-page .culinary-feature-meta span {
    border-color:rgba(156,217,255,.2);
    background:rgba(9,29,55,.62);
}
.culinary-page .culinary-feature-meta > .culinary-feature-views {
    color:rgba(255,255,255,.82) !important;
}
.culinary-page .culinary-feature-meta > .culinary-feature-views i {
    color:#9cd9ff !important;
}

@media (max-width:720px) {
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) !important;
    }
    .culinary-page .culinary-feature-card {
        display:block !important;
        grid-column:1;
        justify-self:center;
        width:min(100%,270px);
        min-height:0;
        margin:.35rem auto 0;
        padding:0;
        border-width:5px !important;
        border-radius:24px;
        aspect-ratio:1.06/1;
    }
    .culinary-page .culinary-feature-content {
        padding:.9rem .9rem .82rem;
    }
}

@media (max-width:420px) {
    .culinary-page .culinary-feature-card {
        width:min(100%,250px);
        border-width:4px !important;
        border-radius:21px;
    }
    .culinary-page .culinary-feature-content {
        padding:.78rem .8rem .72rem;
    }
    .culinary-page .culinary-feature-eyebrow {
        margin-bottom:.4rem;
        font-size:.56rem;
    }
    .culinary-page .culinary-feature-content h2 {
        margin-bottom:.34rem;
        font-size:1.08rem;
    }
    .culinary-page .culinary-feature-content > p {
        margin-bottom:.55rem;
        font-size:.62rem;
    }
    .culinary-page .culinary-feature-meta span,
    .culinary-page .culinary-feature-meta > .culinary-feature-views {
        font-size:.59rem;
    }
}

/*
 * Culinary feature card: keep all copy in one deterministic stacking context.
 * Historical card overrides created competing card pseudo-elements, which could
 * paint above the absolutely positioned link and hide otherwise valid DB copy.
 */
.culinary-page .culinary-feature-card::after {
    display:none !important;
    content:none !important;
}
.culinary-page .culinary-feature-card > a.culinary-feature-link {
    position:absolute !important;
    z-index:10 !important;
    inset:0 !important;
    width:auto !important;
    height:auto !important;
    min-height:100% !important;
    display:flex !important;
    align-items:flex-end !important;
    overflow:hidden !important;
    opacity:1 !important;
    visibility:visible !important;
    isolation:isolate;
}
.culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    position:absolute;
    z-index:0;
    inset:0;
    display:block;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(4,17,35,.05) 15%,rgba(4,17,35,.24) 42%,rgba(3,14,30,.86) 72%,rgba(2,10,23,.98) 100%);
    content:"";
}
.culinary-page .culinary-feature-content {
    position:relative !important;
    z-index:2 !important;
    inset:auto !important;
    width:100% !important;
    min-width:0;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
}
.culinary-page .culinary-feature-content > * {
    position:relative;
    z-index:1;
    opacity:1 !important;
    visibility:visible !important;
}
.culinary-page .culinary-feature-content h2 {
    color:#fff !important;
    text-shadow:0 2px 14px rgba(0,0,0,.72);
}
.culinary-page .culinary-feature-content > p {
    color:rgba(255,255,255,.92) !important;
    text-shadow:0 1px 10px rgba(0,0,0,.76);
}
.culinary-page .culinary-feature-eyebrow,
.culinary-page .culinary-feature-eyebrow i {
    color:#9cd9ff !important;
}
.culinary-page .culinary-feature-meta span {
    color:#fff !important;
    background:rgba(5,23,46,.82) !important;
    box-shadow:0 4px 14px rgba(0,0,0,.18);
}
.culinary-page .culinary-feature-meta > .culinary-feature-views {
    color:#fff !important;
    background:transparent !important;
    box-shadow:none;
}

/* Culinary feature color palette — adapted from Home's weather glass panel. */
.culinary-page .culinary-feature-card,
[data-theme="light"] .culinary-page .culinary-feature-card {
    border-color:rgba(255,255,255,.72) !important;
    background:linear-gradient(145deg,#102b57,#091d40) !important;
    box-shadow:0 20px 42px rgba(10,42,88,.28),0 0 0 1px rgba(156,217,255,.12) !important;
}
.culinary-page .culinary-feature-card::before,
[data-theme="light"] .culinary-page .culinary-feature-card::before {
    background:var(--feature-image,linear-gradient(135deg,#1377fe,#9cd9ff)) center/cover no-repeat;
}
.culinary-page .culinary-feature-card > a.culinary-feature-link::before,
[data-theme="light"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,rgba(16,43,87,.08) 8%,rgba(9,29,64,.28) 42%,rgba(8,28,61,.9) 74%,rgba(5,20,46,.99) 100%);
}
.culinary-page .culinary-feature-eyebrow,
.culinary-page .culinary-feature-eyebrow i {
    color:#63dcff !important;
}
.culinary-page .culinary-feature-content h2 {
    color:#fff !important;
}
.culinary-page .culinary-feature-content > p {
    color:rgba(255,255,255,.78) !important;
}
.culinary-page .culinary-feature-meta span {
    border-color:rgba(156,217,255,.24) !important;
    color:#f8fbff !important;
    background:rgba(19,119,254,.2) !important;
}
.culinary-page .culinary-feature-meta > .culinary-feature-views {
    color:rgba(255,255,255,.82) !important;
    background:transparent !important;
}
.culinary-page .culinary-feature-meta > .culinary-feature-views i {
    color:#63dcff !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card {
    border-color:rgba(156,217,255,.34) !important;
    background:linear-gradient(145deg,#0c234b,#07182f) !important;
    box-shadow:0 22px 50px rgba(1,10,27,.48),0 0 0 1px rgba(99,220,255,.1) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,rgba(7,24,47,.14) 8%,rgba(5,20,43,.38) 42%,rgba(4,17,38,.92) 74%,rgba(2,11,27,.99) 100%);
}
[data-theme="dark"] .culinary-page .culinary-feature-meta span {
    border-color:rgba(99,220,255,.22) !important;
    background:rgba(19,119,254,.24) !important;
}

/* Brighter translucent image treatment for both themes. */
.culinary-page .culinary-feature-card,
[data-theme="light"] .culinary-page .culinary-feature-card {
    border-color:rgba(255,255,255,.86) !important;
    background:linear-gradient(145deg,rgba(19,119,254,.72),rgba(77,177,246,.48) 54%,rgba(156,217,255,.34)) !important;
    box-shadow:0 20px 44px rgba(19,119,254,.2),0 8px 24px rgba(7,38,82,.18) !important;
}
.culinary-page .culinary-feature-card::before,
[data-theme="light"] .culinary-page .culinary-feature-card::before {
    opacity:.8;
    filter:saturate(1.08) brightness(1.08) contrast(.96);
}
.culinary-page .culinary-feature-card > a.culinary-feature-link::before,
[data-theme="light"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,rgba(19,119,254,.02) 0%,rgba(19,119,254,.08) 35%,rgba(10,55,112,.46) 66%,rgba(5,25,55,.9) 100%);
    backdrop-filter:blur(.7px);
    -webkit-backdrop-filter:blur(.7px);
}
[data-theme="dark"] .culinary-page .culinary-feature-card {
    border-color:rgba(156,217,255,.7) !important;
    background:linear-gradient(145deg,rgba(15,78,158,.82),rgba(19,119,254,.52) 52%,rgba(82,181,245,.3)) !important;
    box-shadow:0 22px 48px rgba(0,8,24,.42),0 0 28px rgba(19,119,254,.12) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card::before {
    opacity:.78;
    filter:saturate(1.12) brightness(1.16) contrast(.96);
}
[data-theme="dark"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,rgba(8,35,73,.02) 0%,rgba(8,35,73,.1) 34%,rgba(5,31,68,.48) 65%,rgba(2,15,35,.92) 100%);
    backdrop-filter:blur(.65px);
    -webkit-backdrop-filter:blur(.65px);
}
[data-theme="dark"] .culinary-page .culinary-feature-content > p {
    color:rgba(255,255,255,.88) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-meta span {
    border-color:rgba(156,217,255,.34) !important;
    background:rgba(8,53,113,.66) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

/* Keep the database image clearly visible in light mode. */
.culinary-page .culinary-feature-card,
[data-theme="light"] .culinary-page .culinary-feature-card {
    background:#0b2850 !important;
}
.culinary-page .culinary-feature-card::before,
[data-theme="light"] .culinary-page .culinary-feature-card::before {
    opacity:1 !important;
    background-image:var(--feature-image,linear-gradient(135deg,#1377fe,#9cd9ff)) !important;
    background-position:center !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    filter:saturate(1.06) brightness(1.06) contrast(1.02) !important;
}
.culinary-page .culinary-feature-card > a.culinary-feature-link::before,
[data-theme="light"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,transparent 0%,transparent 38%,rgba(5,27,58,.12) 52%,rgba(4,23,51,.7) 73%,rgba(3,17,39,.96) 100%) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card::before {
    opacity:.86 !important;
    filter:saturate(1.08) brightness(1.1) contrast(1) !important;
}
[data-theme="dark"] .culinary-page .culinary-feature-card > a.culinary-feature-link::before {
    background:linear-gradient(180deg,rgba(3,15,34,.04) 0%,rgba(3,15,34,.08) 38%,rgba(3,17,38,.24) 54%,rgba(2,14,32,.78) 76%,rgba(1,9,23,.98) 100%) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

/* Responsive Culinary hero composition. */
@media (max-width:960px) and (min-width:721px) {
    .culinary-page .culinary-ref-hero {
        min-height:auto;
        padding:24px 0 30px;
    }
    .culinary-page .culinary-crumb {
        gap:.55rem;
        padding:.25rem 0 1.5rem;
        font-size:.72rem;
    }
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) minmax(240px,270px) !important;
        gap:clamp(1.25rem,3vw,2rem);
        align-items:center;
    }
    .culinary-page .culinary-hero-copy h1 {
        margin-bottom:1rem;
        font-size:clamp(3rem,7vw,4rem);
    }
    .culinary-page .culinary-hero-copy p {
        margin-bottom:1.15rem;
        font-size:.86rem;
        line-height:1.7;
    }
    .culinary-page .culinary-feature-card {
        grid-column:2;
        width:100%;
        max-width:270px;
        justify-self:end;
    }
}

@media (max-width:720px) {
    .culinary-page {
        padding-top:12px;
    }
    .culinary-page .culinary-ref-hero {
        min-height:auto;
        padding:12px 0 28px;
        overflow:visible;
    }
    .culinary-page .culinary-ref-hero::before {
        inset:48px -20px auto;
        height:300px;
        opacity:.24;
        background-position:60% center;
    }
    [data-theme="dark"] .culinary-page .culinary-ref-hero::before {
        opacity:.34;
    }
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 32px),1210px);
    }
    .culinary-page .culinary-crumb {
        min-height:28px;
        gap:.5rem;
        margin:0;
        padding:0 0 1.1rem;
        font-size:.7rem;
        line-height:1.4;
    }
    .culinary-page .culinary-crumb i {
        font-size:.56rem;
    }
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) !important;
        gap:1.35rem;
        align-items:start;
    }
    .culinary-page .culinary-hero-copy h1 {
        margin:0 0 .9rem;
        font-size:clamp(2.55rem,12.5vw,3.55rem);
        line-height:1;
    }
    .culinary-page .culinary-hero-copy p {
        max-width:38rem;
        margin:0 0 1rem;
        font-size:.82rem;
        line-height:1.65;
    }
    .culinary-page .culinary-search-row {
        max-width:none;
    }
    .culinary-page .culinary-feature-card {
        display:block !important;
        grid-column:1;
        width:min(100%,360px);
        max-width:none;
        margin:.1rem auto 0;
        justify-self:center;
        aspect-ratio:1.22/1;
        border-radius:22px;
    }
    .culinary-page .culinary-feature-content {
        padding:1rem 1.05rem .95rem;
    }
    .culinary-page .culinary-feature-content h2 {
        font-size:clamp(1.12rem,5vw,1.3rem);
        line-height:1.22;
    }
    .culinary-page .culinary-feature-content > p {
        font-size:.68rem;
        line-height:1.58;
    }
}

@media (max-width:420px) {
    .culinary-page .culinary-wrap {
        width:min(calc(100% - 24px),1210px);
    }
    .culinary-page .culinary-crumb {
        padding-bottom:.9rem;
    }
    .culinary-page .culinary-hero-grid {
        gap:1.1rem;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:clamp(2.35rem,12vw,3rem);
    }
    .culinary-page .culinary-feature-card {
        width:100%;
        aspect-ratio:1.12/1;
        margin-top:.15rem;
        border-radius:20px;
    }
    .culinary-page .culinary-feature-content {
        padding:.9rem;
    }
    .culinary-page .culinary-feature-meta {
        gap:.45rem;
    }
}

/* Responsive header controls stay beside the burger instead of below the logo. */
@media (max-width:1180px) {
    .site-header {
        grid-template-columns:auto minmax(0,1fr) auto auto !important;
        grid-template-rows:auto !important;
        column-gap:.65rem !important;
    }
    .site-header .brand {
        grid-column:1;
        grid-row:1;
        min-width:0;
    }
    .site-header .main-nav {
        grid-column:auto;
        grid-row:auto;
    }
    .site-header .header-actions {
        grid-column:3 !important;
        grid-row:1 !important;
        display:flex !important;
        align-items:center;
        justify-content:flex-end !important;
        justify-self:end;
        gap:.5rem;
        min-width:0;
        padding:0 !important;
        overflow:visible !important;
    }
    .site-header .nav-toggle {
        grid-column:4;
        grid-row:1;
        justify-self:end;
        margin:0;
    }
    .site-header .header-actions .login-button {
        display:none !important;
    }
}

@media (max-width:760px) {
    .site-header {
        min-height:58px;
        grid-template-columns:minmax(0,1fr) auto auto !important;
        gap:.45rem !important;
        padding:.55rem .75rem !important;
    }
    .site-header .brand {
        grid-column:1;
        max-width:160px;
    }
    .site-header .brand img {
        width:auto;
        max-width:150px;
        height:30px;
        object-fit:contain;
    }
    .site-header .brand .brand-tagline {
        max-width:150px;
        overflow:hidden;
        font-size:.4rem;
        letter-spacing:.07em;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .site-header .header-actions {
        grid-column:2 !important;
        gap:.38rem;
    }
    .site-header .nav-toggle {
        grid-column:3;
        width:2.15rem;
        height:2.15rem;
    }
    .site-header .lang-button {
        min-width:2.6rem;
        min-height:2.15rem;
        padding:0 .65rem;
        gap:.28rem;
        font-size:.66rem;
    }
    .site-header .theme-toggle {
        width:3.15rem;
        height:2.15rem;
    }
    [data-theme="dark"] .site-header .lang-button,
    [data-theme="dark"] .site-header .theme-toggle,
    [data-theme="dark"] .site-header .nav-toggle {
        border-color:rgba(148,207,236,.32) !important;
        color:#e5f8f5 !important;
        background:rgba(109,188,232,.1) !important;
    }
    [data-theme="light"] .site-header .lang-button,
    [data-theme="light"] .site-header .theme-toggle,
    [data-theme="light"] .site-header .nav-toggle {
        border-color:#bbe3f1 !important;
        color:#12385f !important;
        background:#f8feff !important;
    }
}

@media (max-width:390px) {
    .site-header {
        gap:.32rem !important;
        padding-inline:.6rem !important;
    }
    .site-header .brand {
        max-width:132px;
    }
    .site-header .brand img {
        max-width:132px;
        height:28px;
    }
    .site-header .brand .brand-tagline {
        display:none;
    }
    .site-header .header-actions {
        gap:.3rem;
    }
    .site-header .lang-button {
        min-width:2.25rem;
        width:2.25rem;
        padding:0;
    }
    .site-header .lang-button > span {
        display:none;
    }
    .site-header .theme-toggle {
        width:2.8rem;
    }
    .site-header .nav-toggle {
        width:2.05rem;
        height:2.05rem;
        padding:.44rem;
    }
}

/* Compact Culinary feature card only on responsive layouts. */
@media (max-width:720px) {
    .culinary-page .culinary-feature-card {
        width:min(100%,290px);
        aspect-ratio:1.18/1;
        margin:.05rem auto 0;
        border-width:4px !important;
        border-radius:20px;
    }
    .culinary-page .culinary-feature-eyebrow,
    .culinary-page .culinary-feature-content > p {
        display:none !important;
    }
    .culinary-page .culinary-feature-content {
        padding:.82rem .88rem .78rem;
    }
    .culinary-page .culinary-feature-content h2 {
        margin:0 0 .55rem;
        font-size:1.08rem;
        line-height:1.22;
    }
    .culinary-page .culinary-feature-meta {
        gap:.45rem;
    }
    .culinary-page .culinary-feature-meta span,
    .culinary-page .culinary-feature-meta > .culinary-feature-views {
        font-size:.6rem;
    }
    [data-theme="light"] .culinary-page .culinary-feature-card,
    [data-theme="dark"] .culinary-page .culinary-feature-card {
        box-shadow:0 14px 30px rgba(5,30,68,.24) !important;
    }
}

@media (max-width:420px) {
    .culinary-page .culinary-feature-card {
        width:min(100%,265px);
        aspect-ratio:1.15/1;
        border-radius:18px;
    }
    .culinary-page .culinary-feature-content {
        padding:.72rem .76rem .68rem;
    }
    .culinary-page .culinary-feature-content h2 {
        margin-bottom:.48rem;
        font-size:1rem;
    }
    .culinary-page .culinary-feature-meta span,
    .culinary-page .culinary-feature-meta > .culinary-feature-views {
        font-size:.56rem;
    }
}

/* Place the compact feature card beside the Culinary title on phones. */
@media (max-width:720px) {
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) 150px !important;
        grid-template-rows:auto auto auto;
        column-gap:.9rem;
        row-gap:.85rem;
        align-items:start;
    }
    .culinary-page .culinary-hero-copy {
        display:contents;
    }
    .culinary-page .culinary-hero-copy h1 {
        grid-column:1;
        grid-row:1;
        align-self:center;
        margin:0;
        font-size:clamp(2.15rem,10.5vw,3rem);
        line-height:1;
    }
    .culinary-page .culinary-hero-copy > p {
        grid-column:1 / -1;
        grid-row:2;
        margin:0;
    }
    .culinary-page .culinary-search-row {
        grid-column:1 / -1;
        grid-row:3;
        width:100%;
        margin:0;
    }
    .culinary-page .culinary-feature-card {
        grid-column:2;
        grid-row:1;
        align-self:start;
        justify-self:end;
        width:150px;
        height:150px;
        aspect-ratio:1/1;
        margin:0;
        border-width:3px !important;
        border-radius:17px;
    }
    .culinary-page .culinary-feature-content {
        padding:.58rem .62rem .56rem;
    }
    .culinary-page .culinary-feature-content h2 {
        display:-webkit-box;
        margin:0 0 .42rem;
        overflow:hidden;
        font-size:.76rem;
        line-height:1.18;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
    }
    .culinary-page .culinary-feature-meta {
        align-items:flex-start;
        flex-direction:column;
        gap:.3rem;
    }
    .culinary-page .culinary-feature-meta span,
    .culinary-page .culinary-feature-meta > .culinary-feature-views {
        max-width:126px;
        font-size:.5rem;
    }
    .culinary-page .culinary-feature-meta span {
        padding:.25rem .4rem;
    }
    .culinary-page .culinary-feature-meta > .culinary-feature-views {
        padding:0;
    }
}

@media (max-width:380px) {
    .culinary-page .culinary-hero-grid {
        grid-template-columns:minmax(0,1fr) 142px !important;
        column-gap:.65rem;
    }
    .culinary-page .culinary-hero-copy h1 {
        font-size:clamp(1.95rem,10vw,2.3rem);
    }
    .culinary-page .culinary-feature-card {
        width:142px;
        height:142px;
        border-radius:16px;
    }
}

/* Semantic icons for every chapter in the Semarang history timeline. */
.culture-page .culture-time-visual {
    position:relative;
    overflow:hidden;
    background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 19%,var(--culture-solid)),color-mix(in srgb,var(--tone) 5%,var(--culture-solid)) 70%) !important;
}
.culture-page .culture-time-visual::before,
.culture-page .culture-time-visual::after {
    position:absolute;
    border:1px solid color-mix(in srgb,var(--tone) 22%,transparent);
    border-radius:50%;
    content:"";
}
.culture-page .culture-time-visual::before {
    top:-24px;
    right:-16px;
    width:72px;
    height:72px;
}
.culture-page .culture-time-visual::after {
    bottom:-30px;
    left:-20px;
    width:86px;
    height:86px;
}
.culture-page .culture-time-visual > i {
    position:relative;
    z-index:1;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border:1px solid color-mix(in srgb,var(--tone) 36%,transparent);
    border-radius:15px;
    color:#fff !important;
    background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 82%,#1377fe),var(--tone));
    box-shadow:0 10px 22px color-mix(in srgb,var(--tone) 27%,transparent),inset 0 1px rgba(255,255,255,.28);
    font-size:1.25rem;
    transform:rotate(-3deg);
    transition:transform .25s ease,box-shadow .25s ease;
}
.culture-page .culture-time-card:hover .culture-time-visual > i {
    box-shadow:0 14px 28px color-mix(in srgb,var(--tone) 36%,transparent),inset 0 1px rgba(255,255,255,.32);
    transform:translateY(-2px) rotate(0) scale(1.06);
}
[data-theme="dark"] .culture-page .culture-time-visual {
    background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 18%,#102244),#0c1d3b 76%) !important;
}
[data-theme="dark"] .culture-page .culture-time-visual > i {
    border-color:color-mix(in srgb,var(--tone) 55%,rgba(255,255,255,.18));
    box-shadow:0 12px 26px color-mix(in srgb,var(--tone) 24%,rgba(0,0,0,.35)),inset 0 1px rgba(255,255,255,.22);
}
@media(max-width:720px) {
    .culture-page .culture-time-visual > i {
        width:44px;
        height:44px;
        border-radius:13px;
        font-size:1.12rem;
    }
}

/* Shared Events-style category icons across frontend discovery pages. */
.events-page .events-categories > a {
    --category-tone:var(--event-tone,#1377fe);
}
.culture-page .culture-category {
    --category-tone:var(--culture-category-tone,#1377fe);
    --tone:var(--category-tone) !important;
}
.culinary-page .culinary-category {
    --category-tone:var(--culinary-tone,#1377fe);
    --tone:var(--category-tone) !important;
}
.explore-reference-page .category-chip {
    --category-tone:var(--cat,#1377fe);
}
.city-map-page .city-map-category {
    --category-tone:var(--map-category-tone,#1377fe);
}

:where(
    .events-page .events-categories > a > i,
    .culture-page .culture-category > i,
    .culinary-page .culinary-category > i,
    .explore-reference-page .category-chip .chip-icon,
    .city-map-page .city-map-category > i
) {
    width:49px;
    height:49px;
    flex:0 0 49px;
    display:grid;
    place-items:center;
    border:2px solid rgba(255,255,255,.94) !important;
    border-radius:50% !important;
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 9px 20px color-mix(in srgb,var(--category-tone) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 18%,transparent) !important;
    font-size:1.22rem;
    transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.explore-reference-page .category-chip {
    grid-template-columns:49px minmax(0,1fr);
}
.explore-reference-page .category-chip .chip-icon > i {
    color:#fff !important;
}
.city-map-page .city-map-category {
    padding:8px 13px 8px 8px;
    border-color:color-mix(in srgb,var(--category-tone) 20%,var(--map-line));
    color:var(--map-navy);
    background:var(--map-solid);
}
.city-map-page .city-map-category > i {
    width:42px;
    height:42px;
    flex-basis:42px;
    font-size:1rem;
}

:where(
    .events-page .events-categories > a:hover > i,
    .events-page .events-categories > a.active > i,
    .culture-page .culture-category:hover > i,
    .culture-page .culture-category.active > i,
    .culinary-page .culinary-category:hover > i,
    .culinary-page .culinary-category.active > i,
    .explore-reference-page .category-chip:hover .chip-icon,
    .explore-reference-page .category-chip.active .chip-icon,
    .city-map-page .city-map-category:hover > i,
    .city-map-page .city-map-category.is-active > i
) {
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 13px 27px color-mix(in srgb,var(--category-tone) 42%,transparent),0 0 0 2px color-mix(in srgb,var(--category-tone) 16%,transparent) !important;
    filter:saturate(1.12) brightness(1.04);
    transform:translateY(-2px) scale(1.07);
}
.city-map-page .city-map-category:hover,
.city-map-page .city-map-category.is-active {
    border-color:color-mix(in srgb,var(--category-tone) 48%,var(--map-line));
    color:var(--map-navy);
    background:color-mix(in srgb,var(--category-tone) 8%,var(--map-solid));
    box-shadow:0 10px 24px color-mix(in srgb,var(--category-tone) 13%,transparent);
}
.city-map-page .city-map-category span,
.city-map-page .city-map-category.is-active span {
    color:var(--category-tone);
    background:color-mix(in srgb,var(--category-tone) 12%,var(--map-solid));
}
[data-theme="dark"] :where(
    .events-page .events-categories > a > i,
    .culture-page .culture-category > i,
    .culinary-page .culinary-category > i,
    .explore-reference-page .category-chip .chip-icon,
    .city-map-page .city-map-category > i
) {
    border-color:rgba(255,255,255,.82) !important;
    box-shadow:0 10px 23px color-mix(in srgb,var(--category-tone) 38%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 28%,transparent) !important;
}
@media(max-width:720px) {
    :where(
        .events-page .events-categories > a > i,
        .culture-page .culture-category > i,
        .culinary-page .culinary-category > i,
        .explore-reference-page .category-chip .chip-icon
    ) {
        width:44px;
        height:44px;
        flex-basis:44px;
        font-size:1.08rem;
    }
    .explore-reference-page .category-chip {
        grid-template-columns:44px minmax(0,1fr);
    }
    .city-map-page .city-map-category > i {
        width:38px;
        height:38px;
        flex-basis:38px;
        font-size:.92rem;
    }
}

/* Explore and Map category panels follow the compact Events category layout. */
.explore-reference-page .category-container,
.city-map-page .city-map-categories {
    border:1px solid var(--ex-line, var(--map-line)) !important;
    border-radius:19px;
    background:var(--ex-panel, var(--map-panel)) !important;
    box-shadow:var(--ex-shadow-md, var(--map-shadow)) !important;
    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
}
.explore-reference-page .category-container {
    padding:.8rem 1rem 1rem;
}
.explore-reference-page .category-row,
.city-map-page .city-map-categories .city-map-wrap {
    display:flex;
    align-items:stretch;
    gap:.75rem;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
}
.explore-reference-page .category-row::-webkit-scrollbar,
.city-map-page .city-map-categories .city-map-wrap::-webkit-scrollbar {
    display:none;
}
.explore-reference-page .category-chip,
.city-map-page .city-map-category {
    position:relative;
    min-width:103px;
    width:103px;
    min-height:90px;
    padding:.55rem .42rem;
    display:grid;
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    align-content:center;
    justify-items:center;
    gap:.42rem;
    flex:0 0 103px;
    overflow:visible;
    border:1px solid transparent;
    border-radius:16px;
    color:var(--ex-text, var(--map-navy));
    text-align:center;
    background:transparent;
    box-shadow:none;
    scroll-snap-align:start;
}
.explore-reference-page .category-chip .chip-icon,
.city-map-page .city-map-category > i {
    width:49px;
    height:49px;
    flex-basis:49px;
    margin:0;
}
.explore-reference-page .category-chip .chip-copy {
    width:100%;
    text-align:center;
}
.explore-reference-page .category-chip .chip-copy b {
    display:block;
    overflow:hidden;
    font-size:.64rem;
    font-weight:800;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.explore-reference-page .category-chip .chip-copy small {
    display:none;
}
.explore-reference-page .category-chip > em,
.city-map-page .city-map-category > span {
    position:absolute;
    top:.38rem;
    right:.46rem;
    min-width:19px;
    margin:0;
    padding:2px 5px;
    border-radius:999px;
    color:var(--category-tone);
    background:color-mix(in srgb,var(--category-tone) 12%,var(--ex-panel, var(--map-solid)));
    font-size:.48rem;
    font-style:normal;
    font-weight:900;
    line-height:1.2;
}
.explore-reference-page .category-chip:hover,
.explore-reference-page .category-chip.active,
.city-map-page .city-map-category:hover,
.city-map-page .city-map-category.is-active {
    border-color:color-mix(in srgb,var(--category-tone) 45%,var(--ex-line, var(--map-line))) !important;
    color:var(--ex-text, var(--map-navy));
    background:color-mix(in srgb,var(--category-tone) 8%,var(--ex-panel, var(--map-panel))) !important;
    box-shadow:none;
    transform:translateY(-2px);
}
.city-map-page .city-map-categories {
    width:min(calc(100% - 48px),1210px);
    margin:18px auto 0;
    padding:.8rem 1rem;
    border-bottom:1px solid var(--map-line);
}
.city-map-page .city-map-categories .city-map-wrap {
    width:100%;
    margin:0;
}
[data-theme="dark"] .explore-reference-page .category-chip,
[data-theme="dark"] .city-map-page .city-map-category {
    color:var(--ex-text, var(--map-navy));
}

@media(max-width:720px) {
    .explore-reference-page .category-container,
    .city-map-page .city-map-categories {
        padding:.62rem;
        border-radius:16px;
    }
    .city-map-page .city-map-categories {
        width:calc(100% - 28px);
        margin-top:14px;
    }
    .explore-reference-page .category-row,
    .city-map-page .city-map-categories .city-map-wrap {
        gap:.48rem;
    }
    .explore-reference-page .category-chip,
    .city-map-page .city-map-category {
        min-width:88px;
        width:88px;
        min-height:82px;
        flex-basis:88px;
        padding:.45rem .32rem;
        border-radius:14px;
        gap:.34rem;
    }
    .explore-reference-page .category-chip .chip-icon,
    .city-map-page .city-map-category > i {
        width:44px;
        height:44px;
        flex-basis:44px;
    }
}

/* Deterministic icon/name alignment for Map category cards. */
.city-map-page .city-map-categories .city-map-wrap {
    align-items:stretch;
}
.city-map-page .city-map-category {
    width:116px;
    min-width:116px;
    min-height:104px;
    flex:0 0 116px;
    grid-template-columns:1fr;
    grid-template-rows:50px minmax(18px,auto);
    align-content:center;
    justify-items:center;
    gap:.48rem;
    padding:.62rem .5rem .55rem;
    line-height:1.2;
}
.city-map-page .city-map-category > i {
    grid-column:1;
    grid-row:1;
    align-self:center;
    justify-self:center;
    width:46px;
    height:46px;
    flex:0 0 46px;
    margin:0 !important;
    font-size:1.05rem;
}
.city-map-page .city-map-category > .city-map-category-name {
    position:static;
    grid-column:1;
    grid-row:2;
    width:100%;
    min-width:0;
    padding:0;
    overflow:hidden;
    border-radius:0;
    color:var(--map-navy);
    background:transparent;
    font-size:.7rem;
    font-weight:800;
    line-height:1.25;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.city-map-page .city-map-category > .city-map-category-count {
    position:absolute;
    z-index:2;
    top:.4rem;
    right:.45rem;
    min-width:20px;
    padding:2px 5px;
    border-radius:999px;
    color:var(--category-tone);
    background:color-mix(in srgb,var(--category-tone) 12%,var(--map-solid));
    font-size:.48rem;
    font-weight:900;
    line-height:1.25;
    text-align:center;
}
.city-map-page .city-map-category:hover > .city-map-category-name,
.city-map-page .city-map-category.is-active > .city-map-category-name {
    color:var(--map-navy);
    background:transparent;
}

@media(max-width:720px) {
    .city-map-page .city-map-category {
        width:96px;
        min-width:96px;
        min-height:91px;
        flex-basis:96px;
        grid-template-rows:44px minmax(17px,auto);
        gap:.36rem;
        padding:.52rem .38rem .45rem;
    }
    .city-map-page .city-map-category > i {
        width:42px;
        height:42px;
        flex-basis:42px;
        font-size:.96rem;
    }
    .city-map-page .city-map-category > .city-map-category-name {
        font-size:.62rem;
    }
    .city-map-page .city-map-category > .city-map-category-count {
        top:.32rem;
        right:.34rem;
        font-size:.44rem;
    }
}

@media(max-width:420px) {
    .city-map-page .city-map-category {
        width:88px;
        min-width:88px;
        min-height:86px;
        flex-basis:88px;
    }
    .city-map-page .city-map-category > .city-map-category-name {
        font-size:.58rem;
    }
}

/* Map category icon wrapper prevents Font Awesome glyph alignment conflicts. */
.city-map-page .city-map-categories .city-map-wrap {
    align-items:stretch;
    justify-content:flex-start;
}
.city-map-page .city-map-category {
    width:128px;
    min-width:128px;
    min-height:112px;
    flex:0 0 128px;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:56px 20px;
    align-content:center;
    justify-content:center;
    justify-items:center;
    gap:.45rem;
    padding:.65rem .55rem .58rem;
}
.city-map-page .city-map-category > .city-map-category-icon {
    position:relative;
    grid-column:1;
    grid-row:1;
    width:54px;
    height:54px;
    min-width:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    align-self:center;
    justify-self:center;
    padding:0;
    overflow:visible;
    border:2px solid rgba(255,255,255,.94);
    border-radius:50%;
    color:#fff;
    background:var(--category-tone);
    box-shadow:0 10px 22px color-mix(in srgb,var(--category-tone) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 20%,transparent);
    line-height:1;
    transform:none;
    transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.city-map-page .city-map-category > .city-map-category-icon > i {
    position:static;
    width:auto !important;
    height:auto !important;
    min-width:0;
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    color:#fff !important;
    background:transparent !important;
    box-shadow:none !important;
    font-size:1.18rem;
    line-height:1 !important;
    transform:none !important;
}
.city-map-page .city-map-category > .city-map-category-name {
    grid-column:1;
    grid-row:2;
    align-self:center;
    justify-self:stretch;
    font-size:.7rem;
    line-height:1.2;
}
.city-map-page .city-map-category:hover > .city-map-category-icon,
.city-map-page .city-map-category.is-active > .city-map-category-icon {
    box-shadow:0 14px 28px color-mix(in srgb,var(--category-tone) 44%,transparent),0 0 0 2px color-mix(in srgb,var(--category-tone) 18%,transparent);
    filter:saturate(1.1) brightness(1.05);
    transform:translateY(-2px) scale(1.06);
}
[data-theme="dark"] .city-map-page .city-map-category > .city-map-category-icon {
    border-color:rgba(255,255,255,.84);
    box-shadow:0 11px 24px color-mix(in srgb,var(--category-tone) 40%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 26%,transparent);
}

@media(max-width:720px) {
    .city-map-page .city-map-category {
        width:104px;
        min-width:104px;
        min-height:96px;
        flex-basis:104px;
        grid-template-rows:48px 18px;
        gap:.36rem;
        padding:.52rem .4rem .46rem;
    }
    .city-map-page .city-map-category > .city-map-category-icon {
        width:46px;
        height:46px;
        min-width:46px;
    }
    .city-map-page .city-map-category > .city-map-category-icon > i {
        font-size:1rem;
    }
    .city-map-page .city-map-category > .city-map-category-name {
        font-size:.62rem;
    }
}

@media(max-width:420px) {
    .city-map-page .city-map-category {
        width:94px;
        min-width:94px;
        min-height:91px;
        flex-basis:94px;
        grid-template-rows:44px 18px;
    }
    .city-map-page .city-map-category > .city-map-category-icon {
        width:42px;
        height:42px;
        min-width:42px;
    }
    .city-map-page .city-map-category > .city-map-category-name {
        font-size:.58rem;
    }
}

/* Events-style category icon system for News. */
.news-page .news-category,
.news-page .news-category-list > a {
    --category-tone:var(--news-category-tone,#1377fe);
    --tone:var(--category-tone) !important;
}
.news-page .news-category > i {
    width:49px;
    height:49px;
    display:grid;
    place-items:center;
    border:2px solid rgba(255,255,255,.94);
    border-radius:50%;
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 9px 20px color-mix(in srgb,var(--category-tone) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 18%,transparent);
    font-size:1.18rem;
    transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.news-page .news-category:hover,
.news-page .news-category.active {
    border-color:color-mix(in srgb,var(--category-tone) 45%,var(--n-line)) !important;
    color:var(--n-text) !important;
    background:color-mix(in srgb,var(--category-tone) 8%,var(--n-panel)) !important;
    box-shadow:none !important;
}
.news-page .news-category:hover > i,
.news-page .news-category.active > i {
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 13px 27px color-mix(in srgb,var(--category-tone) 42%,transparent),0 0 0 2px color-mix(in srgb,var(--category-tone) 16%,transparent);
    filter:saturate(1.1) brightness(1.04);
    transform:translateY(-2px) scale(1.07);
}
.news-page .news-category-list > a {
    grid-template-columns:32px minmax(0,1fr) auto;
    gap:.5rem;
}
.news-page .news-category-list > a > i {
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border:2px solid rgba(255,255,255,.92);
    border-radius:50%;
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 7px 16px color-mix(in srgb,var(--category-tone) 27%,transparent);
    font-size:.72rem;
    transition:transform .22s ease,box-shadow .22s ease;
}
.news-page .news-category-list > a:hover > i {
    box-shadow:0 9px 20px color-mix(in srgb,var(--category-tone) 38%,transparent);
    transform:scale(1.08);
}
[data-theme="dark"] .news-page .news-category > i,
[data-theme="dark"] .news-page .news-category-list > a > i {
    border-color:rgba(255,255,255,.82);
    box-shadow:0 10px 23px color-mix(in srgb,var(--category-tone) 38%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 26%,transparent);
}
@media(max-width:620px) {
    .news-page .news-category {
        min-width:92px;
        min-height:82px;
    }
    .news-page .news-category > i {
        width:44px;
        height:44px;
        font-size:1.04rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto !important; }
}

/* Unified category typography across all primary frontend discovery panels. */
:where(
    .explore-reference-page .category-chip .chip-copy b,
    .culture-page .culture-category > span,
    .city-map-page .city-map-category > .city-map-category-name,
    .culinary-page .culinary-category > span,
    .news-page .news-category > span,
    .events-page .events-categories > a > span
) {
    font-family:"Plus Jakarta Sans",Inter,sans-serif !important;
    font-size:.64rem !important;
    font-style:normal !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    letter-spacing:-.01em !important;
    text-transform:none !important;
}

:where(
    .explore-reference-page .category-chip > em,
    .city-map-page .city-map-category > .city-map-category-count,
    .culinary-page .culinary-category > small,
    .events-page .events-categories > a > small
) {
    font-family:"Plus Jakarta Sans",Inter,sans-serif !important;
    font-size:.48rem !important;
    font-style:normal !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    letter-spacing:0 !important;
}

/* Map category icons use the same solid, colorful treatment as News. */
.city-map-page .city-map-category > .city-map-category-icon {
    width:49px !important;
    height:49px !important;
    min-width:49px !important;
    border:2px solid rgba(255,255,255,.94) !important;
    border-radius:50% !important;
    color:#fff !important;
    background:var(--category-tone) !important;
    box-shadow:0 9px 20px color-mix(in srgb,var(--category-tone) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 18%,transparent) !important;
}
.city-map-page .city-map-category > .city-map-category-icon > i {
    color:#fff !important;
    font-size:1.18rem !important;
}
.city-map-page .city-map-category:hover > .city-map-category-icon,
.city-map-page .city-map-category.is-active > .city-map-category-icon {
    background:var(--category-tone) !important;
    box-shadow:0 13px 27px color-mix(in srgb,var(--category-tone) 42%,transparent),0 0 0 2px color-mix(in srgb,var(--category-tone) 16%,transparent) !important;
    filter:saturate(1.1) brightness(1.04);
    transform:translateY(-2px) scale(1.07);
}
[data-theme="dark"] .city-map-page .city-map-category > .city-map-category-icon {
    border-color:rgba(255,255,255,.82) !important;
    box-shadow:0 10px 23px color-mix(in srgb,var(--category-tone) 38%,transparent),0 0 0 1px color-mix(in srgb,var(--category-tone) 26%,transparent) !important;
}

@media(max-width:720px) {
    :where(
        .explore-reference-page .category-chip .chip-copy b,
        .culture-page .culture-category > span,
        .city-map-page .city-map-category > .city-map-category-name,
        .culinary-page .culinary-category > span,
        .news-page .news-category > span,
        .events-page .events-categories > a > span
    ) {
        font-size:.6rem !important;
    }

    .city-map-page .city-map-category > .city-map-category-icon {
        width:44px !important;
        height:44px !important;
        min-width:44px !important;
    }
    .city-map-page .city-map-category > .city-map-category-icon > i {
        font-size:1.04rem !important;
    }
}
