/* One global VLS design layer. Only identified VLS components receive styling. */
body{
 --vls-design-ink:#163f32;--vls-design-accent:#174f3a;--vls-design-soft:#edf3e8;
 --vls-design-line:#d8e3d5;--vls-design-surface:#fffefb;--vls-design-paper:#f7f6f0;
 --vls-design-heading-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --vls-design-heading-weight:750;--vls-design-radius:24px;--vls-design-section-gap:24px;
 --vls-design-on-surface:#163f32;--vls-design-on-paper:#163f32;--vls-design-on-soft:#163f32;--vls-design-on-accent:#ffffff;
}
body:has(main.vp10),body:has(.vls-platform-city),body:has(.vf14){background:var(--vls-design-paper)}
body main.vp10,body .vls-platform-city .vlsb,body .vf14{
 --ink:var(--vls-design-on-paper);--green:var(--vls-design-accent);--green2:var(--vls-design-accent);--deep:var(--vls-design-accent);
 --line:var(--vls-design-line);--paper:var(--vls-design-paper);--vls-section-gap:var(--vls-design-section-gap);
 color:var(--vls-design-on-paper);
}
body .vls-platform{
 --vls-ink:var(--vls-design-on-paper);--vls-green:var(--vls-design-accent);
 --vls-line:var(--vls-design-line);--vls-sage:var(--vls-design-soft);--vls-cream:var(--vls-design-paper);
}
body .vls-trips{--vls-trip-green:var(--vls-design-accent);--vls-trip-cream:var(--vls-design-surface);--vls-trip-border:var(--vls-design-line);--vls-trip-sage:var(--vls-design-soft)}
body .vls-promotion-page{--vls-p-green:var(--vls-design-accent);--vls-p-deep:var(--vls-design-accent);--vls-p-cream:var(--vls-design-paper);--vls-p-line:var(--vls-design-line)}
/* These selectors intentionally outrank the legacy scoped title declarations. */
body main.vp10 :is(h1,h2,h3,h4),body .vls-platform-city .vlsb :is(h1,h2,h3,h4),
body .vf14 :is(h1,h2,h3,h4),body .vls-platform :is(h1,h2,h3,h4),
body .vls-trips :is(h2,h3,h4,h5),body .vls-member-profile :is(h2,h3,h4),
body .vls-promotion-page :is(h1,h2,h3,h4){
 font-family:var(--vls-design-heading-font)!important;font-weight:var(--vls-design-heading-weight)!important;
 color:var(--vls-design-on-paper)!important;
}
body main.vp10>.hero,body main.vp10 .panel,body main.vp10>dialog,
body .vls-platform-city .vlsb :is(.vls-panel,.vls-place,.vls-filter,.vls-hero-card,.vls-plan,.vls-occasion),
body .vf14 :is(.card,.panel,.hotel-card,.restaurant-card),
body .vls-platform :is(.vls-panel,.vls-saved-card,.vls-review-card,.vls-register-panel,.vls-signin-panel,.vls-request-card,.vls-account-view-card,.vls-operator-add-card,.vls-auth-access),
body .vls-trips :is(.vls-trip-card,.vls-trip-editor-panel,.vls-trip-panel,.vls-trips-header,.vls-trip-detail-heading,.vls-trip-place),
body .vls-promotion-page :is(.vls-promotion-form-panel,.vls-promotion-offer){
 border-color:var(--vls-design-line)!important;border-radius:var(--vls-design-radius)!important;
 background:var(--vls-design-surface)!important;color:var(--vls-design-on-surface)!important;
}
body main.vp10>.hero :is(h1,h2,h3),body main.vp10 .panel :is(h1,h2,h3),body main.vp10>dialog :is(h1,h2,h3),
body .vls-platform-city .vlsb :is(.vls-panel,.vls-place,.vls-filter,.vls-hero-card,.vls-plan,.vls-occasion) :is(h1,h2,h3),
body .vf14 :is(.card,.panel,.hotel-card,.restaurant-card) :is(h1,h2,h3),
body .vls-platform :is(.vls-panel,.vls-saved-card,.vls-review-card,.vls-register-panel,.vls-signin-panel,.vls-request-card,.vls-account-view-card,.vls-operator-add-card,.vls-auth-access) :is(h1,h2,h3),
body .vls-trips :is(.vls-trip-card,.vls-trip-editor-panel,.vls-trip-panel,.vls-trips-header,.vls-trip-detail-heading,.vls-trip-place) :is(h2,h3,h4,h5),
body .vls-promotion-page :is(.vls-promotion-form-panel,.vls-promotion-offer) :is(h1,h2,h3){color:var(--vls-design-on-surface)!important}
body main.vp10 .vls-profile-main-copy h1,body main.vp10 .panel h2,
body .vls-platform-city .vlsb .vls-place h3 a,body .vf14 :is(h1,h2,h3) a,
body .vls-trips .vls-trip-card h3 a,body .vls-trips .vls-trip-place h5 a{color:inherit!important}
body main.vp10 :is(h1,h2,h3) :is(em,strong),body .vls-platform-city .vlsb :is(h1,h2,h3) :is(em,strong),
body .vf14 :is(h1,h2,h3) :is(em,strong){font-family:inherit!important;font-weight:inherit!important;color:inherit!important}
body .vls-platform-city .vlsb .vls-place-link strong,body .vls-platform-city .vlsb .vls-occasion h2 span{color:var(--vls-design-on-surface)!important}
body .vls-platform-city .vlsb .vls-occasion-icon{color:var(--vls-design-on-soft)!important}
body main.vp10>.photo-empty,body main.vp10 .vls-profile-cuisine-tags li,
body .vls-platform-city .vlsb :is(.vls-tags span,.vls-filter-panel,.vls-cover),
body .vls-member-profile__summary-card,body .vls-trips .vls-trip-empty{
 background:var(--vls-design-soft)!important;border-color:var(--vls-design-line)!important;
 color:var(--vls-design-on-soft)!important;
}
body main.vp10>.photo-empty :is(h1,h2,h3),body .vls-trips .vls-trip-empty :is(h2,h3){color:var(--vls-design-on-soft)!important}
body main.vp10 :is(.quick,.rating-summary,.map-head),
body .vls-platform-city .vlsb :is(.vls-maphead,.vls-areas),body .vls-platform .vls-account-hero,
body .vls-promotion-page .vls-promotion-hero{
 background:var(--vls-design-accent)!important;color:var(--vls-design-on-accent)!important;
}
body main.vp10>.hero .quick :is(h1,h2,h3),body main.vp10 :is(.quick,.rating-summary,.map-head) :is(h1,h2,h3,strong,dt,dd,p,.eye),
body .vls-platform-city .vlsb .vls-maphead :is(h1,h2,h3,strong),
body .vls-platform-city .vlsb .vls-areas> :is(h1,h2,h3),
body .vls-platform-city .vlsb .vls-areas> :is(header,div:first-child) :is(h1,h2,h3),
body .vls-platform .vls-account-hero :is(h1,h2,h3),
body .vls-promotion-page .vls-promotion-hero :is(h1,h2,h3){color:var(--vls-design-on-accent)!important}
/* Nested cards establish their own foreground; an accent wrapper is not their surface. */
body .vls-platform-city .vlsb .vls-popular-grid>a,
body .vls-platform-city .vlsb .vls-popular-grid>a :is(strong,small){color:var(--vls-design-on-surface)!important}
body .vls-platform-city .vlsb .vls-popular-grid>a [aria-hidden=true]{color:var(--vls-design-on-soft)!important}
body main.vp10 .hero .actions>a:first-of-type,body main.vp10 .primary,
body .vls-platform-city .vlsb .vbtn.primary,body .vls-platform-city .vlsb button[aria-pressed=true]:not(.vegetarian):not(.options),
body .vls-platform .vls-button:not(.vls-button-outline),
body .vls-trips .vls-trip-button:not(.vls-trip-button-secondary),
body .vls-promotion-page .vls-promotion-button:not(.is-light):not(.is-outline){
 background:var(--vls-design-accent)!important;border-color:var(--vls-design-accent)!important;color:var(--vls-design-on-accent)!important;
}
body main.vp10>.hero,body main.vp10>.photo-empty,body main.vp10>.map-card{margin-bottom:var(--vls-design-section-gap)!important}
body main.vp10>.layout,body main.vp10 .layout>.stack,
body .vls-platform-city .vlsb :is(.vls-results,.vls-occasion-grid,.vls-popular-grid,.vls-plans),
body .vls-platform :is(.vls-account-view-cards,.vls-dashboard-action-grid,.vls-saved-grid),body .vls-trips .vls-trips-grid{gap:var(--vls-design-section-gap)!important}
