/* VQ NEXUS 2.2.9.1 - Theme surface system for public pages.
   Rule: every surface owns its foreground. NEVER inherit light text from a dark ancestor
   onto a white card. Booking modal theme remains independent of page theme. */
body.vq2290-public-light {
  color-scheme:light;
  --vq-surface:#ffffff; --vq-card:#ffffff; --vq-subtle:#f4f7fd;
  --vq-visual:#ffffff; --vq-visual-ink:#14283d;
  --vq-ink:#17243b; --vq-heading:#10233e; --vq-muted:#556983;
  --vq-link:#1558b5; --vq-border:#dce5f1;
  --vq-price:#b41b25; --vq-price-bg:#fff9e9; --vq-price-label:#805108;
  --vq-positive:#176840; --vq-warning:#794900; --vq-warning-bg:#fff8e8;
  --vq-control-bg:#ffffff; --vq-control-ink:#17243b;
}
body.vq2290-public-dark {
  color-scheme:dark;
  --vq-surface:#15233a; --vq-card:#202f48; --vq-subtle:#263854;
  --vq-visual:#ffffff; --vq-visual-ink:#16243a;
  --vq-ink:#e6edf9; --vq-heading:#f4f7ff; --vq-muted:#bbcae1;
  --vq-link:#9ec4ff; --vq-border:#405575;
  --vq-price:#ffce7e; --vq-price-bg:#363425; --vq-price-label:#ffe5ac;
  --vq-positive:#9ee7bf; --vq-warning:#ffe3a1; --vq-warning-bg:#343425;
  --vq-control-bg:#263a58; --vq-control-ink:#f0f6ff;
}
/* The translucent technology wallpaper is visible between sections. */
body.vq2290-public-dark {color:var(--vq-ink);background-color:#0c1728}
body.vq2290-public-dark :is(.v1-detail-container,.vq-directory-page) {color:var(--vq-ink);background-color:transparent}
/* Main solid surfaces: detail top, article, related results, category pages, search, booking. */
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-detail-top,.v1-article-section,.v1-related,.v1-category-list,
 .vq-directory-section,.v2250-search-panel,.booking-page,
 .v1-detail-container .v2244-booking-success,
 .v1-product-layout,.v1-product-detail,.v1-service-detail,
 .v1-related-section,.v1-related-products,.search-page
) {
 background:var(--vq-surface)!important;
 color:var(--vq-ink)!important;
 border-color:var(--vq-border)!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-article-body,.v1-article-content,.v1-detail-info) {color:var(--vq-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-detail-info h1,.v1-article-section>h2,.v1-article-body h2,.v1-article-body h3,
 .v1-related-head h1,.v1-related-head h2,.v1-category-list h1,
 .vq-directory-section-head h2,.v2250-search-heading h1,
 .booking-page h1,.booking-page h2,.v1-detail-container .v2244-booking-success h1
){color:var(--vq-heading)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-detail-lead,.v1-related-head p,.v1-article-body p,
 .v1-article-body li,.v1-article-body strong,.v1-article-body table,
 .vq-directory-section-head p,.v2244-success-lead,.v2244-success-lead strong
){color:var(--vq-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-related-head p,.v1-related-service p,.v1-breadcrumb,
 .v1-related-head p,.vq-directory-section-head p,.vq-directory-card small,
 .v1-related-service p,.v2250-search-options label
){color:var(--vq-muted)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-breadcrumb a,.v1-related-head>a,.v1-article-body a,
 .v1-related-service h3 a,.v1-related-product>strong,
 .vq-directory-card strong,.v1-category-link>strong,.v218-child-card>strong,
 .v2250-results .v1-search-row strong
){color:var(--vq-link)!important}
/* Related products and category tiles are solid cards in both modes. */
body:is(.vq2290-public-light,.vq2290-public-dark) :is(
 .v1-related-product,.v1-related-service,.v1-category-link,.v218-child-card,
 .vq-directory-card,.v1-search-row,.v2250-results .v1-search-row,
 .v2250-search-tools,.v2250-view-buttons,.v2250-search-count
){background:var(--vq-card)!important;color:var(--vq-ink)!important;border-color:var(--vq-border)!important}
body.vq2290-public-dark :is(.vq-directory-card,.v1-related-service,.v2250-results .v1-search-row):hover {
 background:#2a3d59!important;border-color:#6a89b3!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-related-service>i,.vq-directory-small-icon){background:var(--vq-subtle)!important}
/* The product photography keeps a WHITE plate even in dark mode. Text outside it stays light. */
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-detail-visual,.v1-related-thumb){background:var(--vq-visual)!important;color:var(--vq-visual-ink)!important}
body.vq2290-public-dark .v1-related-thumb{border-radius:10px}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-detail-noimage {color:var(--vq-visual-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-small-price,.v1-detail-price){
 background:var(--vq-price-bg)!important;color:var(--vq-price)!important;border-color:#d99c35!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-small-price b,.v1-detail-price strong){color:var(--vq-price)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-small-price span,.v1-detail-price span){color:var(--vq-price-label)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-detail-warning,.reference-warning,.v1-note){
 background:var(--vq-warning-bg)!important;color:var(--vq-warning)!important;border-color:#8c7045!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-detail-warning>strong,.v1-detail-warning p){color:var(--vq-warning)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-detail-benefits,
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-detail-benefits>span{color:var(--vq-positive)!important}
/* Editor-generated rich article elements follow the article theme; image captions may stay on a
   light photographic mat, so they are explicitly dark and do not inherit the page's foreground. */
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-article-body :is(blockquote,pre,table th){background:var(--vq-subtle)!important;color:var(--vq-ink)!important;border-color:var(--vq-border)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-article-body :is(td,th){border-color:var(--vq-border)!important;color:var(--vq-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-article-body figure.article-media{background:#f8faff!important;border-color:#d6deed!important;color:#344761!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-article-body figure.article-media figcaption{color:#4b607d!important}
/* Directory hero is an intentionally dark gradient even in light mode. */
body:is(.vq2290-public-light,.vq2290-public-dark) .vq-directory-hero h1{color:#fff!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .vq-directory-hero p{color:#e3edff!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .vq-directory-hero .vq-directory-count{color:#fff!important}
/* Inputs and select options never inherit low-contrast placeholder colors. */
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-detail-container :is(input:not([type=checkbox]),textarea,select),
body:is(.vq2290-public-light,.vq2290-public-dark) .v2250-search-panel :is(input:not([type=checkbox]),textarea,select){
 color:var(--vq-control-ink)!important;background:var(--vq-control-bg)!important;border-color:var(--vq-border)!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) .v1-detail-container :is(input,textarea)::placeholder,
body:is(.vq2290-public-light,.vq2290-public-dark) .v2250-search-panel :is(input,textarea)::placeholder{color:var(--vq-muted)!important;opacity:1}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v2250-search-tools label,.v2250-search-options label){color:var(--vq-ink)!important}
/* Booking controls, summary, progress and success are themable independent from the promotional site. */
body:is(.vq2290-public-light,.vq2290-public-dark) .booking-fields label{color:var(--vq-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .booking-context,
body:is(.vq2290-public-light,.vq2290-public-dark) .v2244-success-code,
body:is(.vq2290-public-light,.vq2290-public-dark) .v2244-success-secondary{
 background:var(--vq-subtle)!important;color:var(--vq-ink)!important;border-color:var(--vq-border)!important;
}
body:is(.vq2290-public-light,.vq2290-public-dark) .v2244-success-code :is(span,strong,small){color:var(--vq-ink)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v2244-success-kicker{color:var(--vq-positive)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) .v2244-success-lead{color:var(--vq-muted)!important}
body:is(.vq2290-public-light,.vq2290-public-dark) :is(.v1-detail-primary,.v2244-success-primary,.booking-form-actions button){color:#fff!important}
/* Booking modal: separate theme flag, so dark modal is usable on a LIGHT page as well. */
body.vq2290-modal-dark #v2BookingModal .v2-booking-dialog{color:#e6edf9!important;background:#15233a!important;border-color:#405575!important}
body.vq2290-modal-dark #v2BookingModal :is(.v2-booking-heading,.booking-fields label,.v2-booking-form){color:#e6edf9!important}
body.vq2290-modal-dark #v2BookingModal :is(.v2-booking-heading small,.booking-form-actions span){color:#bbcae1!important}
body.vq2290-modal-dark #v2BookingModal .booking-context{background:#263854!important;color:#e6edf9!important;border-color:#405575!important}
body.vq2290-modal-dark #v2BookingModal :is(input,textarea,select){background:#263a58!important;color:#f0f6ff!important;border-color:#526783!important}
body.vq2290-modal-dark #v2BookingModal :is(input,textarea)::placeholder{color:#b8c8de!important}
body.vq2290-modal-dark #v2BookingModal :is(.v2-booking-heading h2,.booking-fields label){color:#f0f6ff!important}
body.vq2290-modal-dark #v2BookingModal .booking-form-actions button{color:#ffffff!important}
/* A modal configured to light stays light even over a dark detail page. */
body.vq2290-modal-light #v2BookingModal .v2-booking-dialog{background:#fff!important;color:#17243b!important}
body.vq2290-modal-light #v2BookingModal .booking-fields label{color:#34435d!important}
body.vq2290-modal-light #v2BookingModal :is(input,textarea){background:#fff!important;color:#17243b!important;border-color:#cbd5e1!important}
body.vq2290-modal-light #v2BookingModal .booking-context{background:#f0f5ff!important;color:#17243b!important}
/* Strong focus rings remain visible on dark cards. */
body.vq2290-public-dark .v1-detail-container :is(a,button,input,select,textarea):focus-visible{outline:2px solid #a1c6ff;outline-offset:3px}
@media (max-width:720px){body.vq2290-public-dark .v1-related-product{border-radius:12px}}
