:root {
    color-scheme: light;
    --kinomos-font: "Manrope", sans-serif;
}

html,
body {
    font-family: var(--kinomos-font);
    font-weight: 400;
}

body :is(button, input, select, textarea) {
    font-family: var(--kinomos-font);
    font-weight: 500;
}

body :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--kinomos-font);
    font-weight: 700;
}

body :is(label, button, nav a, .btn, [role="button"]) {
    font-weight: 500;
}

body :is(strong, b) {
    font-weight: 600;
}

:root[data-theme="dark"] { color-scheme: dark; }
#main-header .theme-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 38px; width: 38px; height: 38px; padding: 8px;
    border: 1px solid #dce8e1; border-radius: 50%; background: #f1f6f3; color: #1e5359;
    margin-left: auto; margin-right: 12px; cursor: pointer;
    transition: background 180ms ease, transform 180ms ease;
}
#main-header .theme-toggle:hover { background: #e1ede5; transform: rotate(-12deg); }
#main-header .theme-toggle:focus-visible { outline: 2px solid #428676; outline-offset: 3px; }
#main-header .theme-toggle .theme-sun { display: none; }
[data-theme="dark"] #main-header .theme-toggle .theme-moon { display: none; }
[data-theme="dark"] #main-header .theme-toggle .theme-sun { display: block; }
.theme-toggle-floating {
    position: fixed; top: 16px; right: 16px; z-index: 1200;
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; padding: 9px;
    border: 1px solid #dce8e1; border-radius: 50%; background: #f1f6f3; color: #1e5359;
    cursor: pointer; box-shadow: 0 4px 14px rgba(22, 62, 57, .12);
    transition: background 180ms ease, transform 180ms ease;
}
.theme-toggle-floating svg { width: 22px; height: 22px; }
.theme-toggle-floating:hover { background: #e1ede5; transform: rotate(-12deg); }
.theme-toggle-floating:focus-visible { outline: 2px solid #428676; outline-offset: 3px; }
.theme-toggle-floating .theme-sun { display: none; }
[data-theme="dark"] .theme-toggle-floating { background: #253b31; border-color: #3b5347; color: #e0ece5; }
[data-theme="dark"] .theme-toggle-floating .theme-moon { display: none; }
[data-theme="dark"] .theme-toggle-floating .theme-sun { display: block; }
@media (prefers-reduced-motion: reduce) { .theme-toggle-floating { transition: none; } .theme-toggle-floating:hover { transform: none; } }
[data-theme="dark"] body,
[data-theme="dark"] .home-page-content,
[data-theme="dark"] .directory-search { background: #101c19 !important; color: #e1ece5; }
/* The header originally has an inline !important white background. */
[data-theme="dark"] #main-header { background-color: #172823 !important; border-bottom: 1px solid #2c4138; }
[data-theme="dark"] #main-header a,
[data-theme="dark"] #main-header button { color: #e0ece5 !important; }
[data-theme="dark"] #main-header .theme-toggle { background: #253b31; border-color: #3b5347; }
[data-theme="dark"] #main-header .bg-white { background: #172823 !important; }
[data-theme="dark"] .home-page-content :is(.featured-listings-section,.popular-categories-section,.article-section,.community-preview-section,.content-creators-section,.explore-locations-section,.business-help-section),
[data-theme="dark"] .community-connect-section-revamped { background: #101c19 !important; }
[data-theme="dark"] .home-page-content :is(.featured-card,.category-card,.welcome-section,.article-card,.community-card,.creator-card,.explore-card),
[data-theme="dark"] .directory-search :is(.business-card,.search-form),
[data-theme="dark"] .cute-modal { background: #1a2b24 !important; border-color: #30463a !important; color: #dce8df; box-shadow: none; }
[data-theme="dark"] .home-page-content :is(.featured-title,.featured-name,.category-content h5,.welcome-title,.business-help-title),
[data-theme="dark"] .directory-search :is(.search-title,.card-title,.search-field label),
[data-theme="dark"] .modal-title { color: #d7eee1; }
[data-theme="dark"] .home-page-content :is(.featured-description,.featured-info,.featured-subtitle,.category-content p,.welcome-subtitle,.business-help-desc),
[data-theme="dark"] .directory-search :is(.business-description,.card-meta,.rating-count),
[data-theme="dark"] .modal-message { color: #a7bdb0; }
[data-theme="dark"] .home-page-content :is(.featured-label,.featured-category,.directory-browse-link) { color: #99c8b3; }
[data-theme="dark"] .home-page-content :is(.featured-image-container,.featured-placeholder),
[data-theme="dark"] .directory-search .card-img-placeholder { background: #263f32; color: #a2ccb5; }
[data-theme="dark"] .home-page-content .featured-tag,
[data-theme="dark"] .directory-search :is(.business-featured-badge,.business-verified-badge,.view-details-btn,.recent-search) { background: #284638; color: #b5dcc6; }
[data-theme="dark"] .directory-search :is(input,select,.location-button,.scroll-results-button) { background: #15251e; color: #e1ece5; border-color: #365041; }
[data-theme="dark"] .directory-search input::placeholder { color: #97aea0; }
[data-theme="dark"] .directory-search .card-meta { border-color: #30463a; }
[data-theme="dark"] .mobile-bottom-nav { background: rgba(20,35,28,.72); border-color: #627c6959; box-shadow: 0 7px 28px #0003; }
[data-theme="dark"] .mobile-bottom-nav__item { color: #a7bcb0; }
[data-theme="dark"] .mobile-bottom-nav__item:is(.is-active,:hover) { background: #4b715b45; color: #d0eddb; }
[data-theme="dark"] .mobile-bottom-nav__item:focus-visible { outline-color: #b5dcc6; }
@supports not (backdrop-filter: blur(1px)) { [data-theme="dark"] .mobile-bottom-nav { background: #1a2b24; } }
@media (min-width: 768px) { #main-header .theme-toggle { margin-left: 16px; margin-right: 0; } }
@media (prefers-reduced-motion: reduce) { #main-header .theme-toggle { transition: none; } #main-header .theme-toggle:hover { transform: none; } }
/* Shared surfaces used by account, listing and navigation templates. */
[data-theme="dark"] :is(.bg-white,.bg-gray-50,.bg-gray-100,.card,.modal-content,.dropdown-menu) { background-color: #1a2b24 !important; color: #dce8df; border-color: #30463a; }
[data-theme="dark"] :is(.text-gray-900,.text-gray-800,.text-gray-700,.text-dark) { color: #dce8df !important; }
[data-theme="dark"] :is(.text-gray-600,.text-gray-500,.text-muted) { color: #a7bdb0 !important; }
[data-theme="dark"] :is(.form-control,.form-select) { background-color: #15251e; color: #e1ece5; border-color: #365041; }
