/* Virtual brands share layout and interaction while keeping their own palette. */
body[data-virtual-brand]{
  --paper:var(--v-paper);--cream:var(--v-surface);--ivory:var(--v-paper);--white:var(--v-surface);
  --ink:var(--v-ink);--muted:var(--v-muted);--line:var(--v-line);
  --clay:var(--v-primary);--blue:var(--v-primary);--burgundy:var(--v-primary);--pink:var(--v-soft);
  --mono-white:var(--v-surface);--mono-light-gray:var(--v-line);--mono-gray:var(--v-muted);--mono-black:var(--v-ink);--mono-image-filter:none;
  background:var(--v-paper);color:var(--v-ink)
}
body[data-virtual-brand] img{filter:none}
body[data-virtual-brand] :is(button,a,input,select,summary):focus-visible{outline-color:var(--v-primary)}
body[data-virtual-brand] :is(.demo-bar,.demo-line){background:var(--v-primary);color:#fff}
body[data-virtual-brand] :is(.site-header,.header,body>header){background:var(--v-paper);border-color:var(--v-line)}
body[data-virtual-brand] .eyebrow{color:var(--v-primary)}
body[data-virtual-brand] .button{background:var(--v-primary);border-color:var(--v-primary);color:#fff}
body[data-virtual-brand] .button:hover{background:var(--v-dark);border-color:var(--v-dark);color:#fff}
body[data-virtual-brand] .button.dark{background:var(--v-dark);border-color:var(--v-dark);color:#fff}
body[data-virtual-brand] :is(.button.light,.button.pale){background:var(--v-soft);border-color:var(--v-soft);color:var(--v-primary)}
body[data-virtual-brand] :is(.button.light,.button.pale):hover{background:var(--v-surface);border-color:var(--v-primary);color:var(--v-primary)}
body[data-virtual-brand] .button.outline{background:transparent;border-color:var(--v-primary);color:var(--v-primary)}
body[data-virtual-brand] .button.outline:hover{background:var(--v-soft);border-color:var(--v-primary);color:var(--v-primary)}
body[data-virtual-brand] :is(.nav-cta,.book-link,.text-link,.text-button,.detail-link){color:var(--v-primary);border-color:var(--v-primary)}
body[data-virtual-brand] :is(.site-header,.header) nav a:hover{color:var(--v-primary)}
body[data-virtual-brand] :is(input,select){accent-color:var(--v-primary)}
body[data-virtual-brand] :is(input,select):focus-visible{border-color:var(--v-primary)}
body[data-virtual-brand] :is(.day-options button[aria-pressed=true],.day-tabs button.active){background:var(--v-primary);border-color:var(--v-primary);color:#fff}
body[data-virtual-brand] :is(.form-error,.form-message){color:#A12624}
body[data-virtual-brand]:not([data-virtual-brand="nail"]) footer{background:var(--v-dark);color:#fff}
body[data-virtual-brand]:not([data-virtual-brand="nail"]) footer :is(p,small,.footer-bottom,.footer-bottom a,.brand-caption){color:#E3E5E1}
body[data-virtual-brand] :is(footer,.result) :is(button,a):focus-visible{outline-color:var(--v-accent)}

/* Café: warm paper, espresso controls and a quiet olive accent. */
body[data-virtual-brand="cafe"] .hero .eyebrow{color:#fff}
body[data-virtual-brand="cafe"] .hero .button{background:var(--v-paper);border-color:var(--v-paper);color:var(--v-primary)}
body[data-virtual-brand="cafe"] .hero .button:hover{background:var(--v-surface);border-color:var(--v-surface)}
body[data-virtual-brand="cafe"] .pickup-feature{background:var(--v-primary);color:#fff}
body[data-virtual-brand="cafe"] .feature-copy :is(.eyebrow,p,.simple-list,.light-text){color:#F0E6D9}
body[data-virtual-brand="cafe"] .visit{background:var(--v-soft)}
body[data-virtual-brand="cafe"] .visit-info :is(dd,dl>div){color:var(--v-muted);border-color:var(--v-line)}
body[data-virtual-brand="cafe"] .menu-filters button.selected{background:var(--v-primary);border-color:var(--v-primary);color:#fff}
body[data-virtual-brand="cafe"] .photo-label{background:color-mix(in srgb,var(--v-paper) 90%,transparent);color:var(--v-ink)}
body[data-virtual-brand="cafe"] .cart-trigger{border-color:var(--v-primary);color:var(--v-primary)}
body[data-virtual-brand="cafe"] .toast{background:var(--v-primary);color:#fff}

/* Fitness: cobalt makes actions clear; lime is reserved for large dark-area accents. */
body[data-virtual-brand="gym"] :is(.hero,.coach-section){background:var(--v-dark);color:#fff}
body[data-virtual-brand="gym"] :is(.hero .eyebrow,.hero h1 em,.coach-section .eyebrow,.coach-card span,.footer-top p){color:var(--v-accent)}
body[data-virtual-brand="gym"] :is(.hero-bottom p,.coach-section>div>p:not(.eyebrow),.coach-card p){color:#D1DBEC}
body[data-virtual-brand="gym"] .club-strip{background:var(--v-primary);color:#fff}
body[data-virtual-brand="gym"] :is(.programs,.visit-section,#membership-terms){background:var(--v-soft)}
body[data-virtual-brand="gym"] :is(#program-panel>p:not(.eyebrow),dd){color:var(--v-muted)}
body[data-virtual-brand="gym"] :is(.program-tabs,dl>div){border-color:var(--v-line)}
body[data-virtual-brand="gym"] :is(.plan.featured,#trial-summary){background:var(--v-soft);border-color:var(--v-primary)}
body[data-virtual-brand="gym"] #trial-form{background:var(--v-surface)}
body[data-virtual-brand="gym"] #trial-summary :is(p,dd){color:var(--v-ink)}
body[data-virtual-brand="gym"] .plan-ribbon{background:var(--v-primary);color:#fff}
body[data-virtual-brand="gym"] .toast{background:var(--v-primary);color:#fff}
body[data-virtual-brand="gym"] :is(.hero,.coach-section) :is(button,a):focus-visible{outline-color:var(--v-accent)}

/* Ceramics: cobalt details on ivory, with clay appearing in soft sections. */
body[data-virtual-brand="workshop"] .story-split{background:var(--v-soft)}
body[data-virtual-brand="workshop"] :is(.package-note,.complete-summary){background:var(--v-soft);color:var(--v-primary)}
body[data-virtual-brand="workshop"] .wide-class .eyebrow{color:#fff}
body[data-virtual-brand="workshop"] .wide-class .button.light{background:var(--v-paper);border-color:var(--v-paper);color:var(--v-primary)}
body[data-virtual-brand="workshop"] .choice:has(input:checked){border-color:var(--v-primary)}

/* Nail: plum controls, a pale blush story and a light footer for the dark logo. */
body[data-virtual-brand="nail"] :is(.salon-story,.booking-aside,.complete-summary,footer){background:var(--v-soft)}
body[data-virtual-brand="nail"] footer{color:var(--v-primary)}
body[data-virtual-brand="nail"] footer :is(p,small){color:var(--v-muted)}
body[data-virtual-brand="nail"] .booking-banner{background:var(--v-primary);color:#fff}
body[data-virtual-brand="nail"] .booking-banner :is(.eyebrow,p:not(.eyebrow)){color:#F7E7ED}
body[data-virtual-brand="nail"] .booking-banner .button.pale{background:var(--v-surface);border-color:var(--v-surface);color:var(--v-primary)}
body[data-virtual-brand="nail"] .hero figcaption{background:color-mix(in srgb,var(--v-paper) 90%,transparent);color:var(--v-primary)}
body[data-virtual-brand="nail"] :is(.booking-aside .specs>div,.first-care){border-color:var(--v-line)}
body[data-virtual-brand="nail"] footer a:focus-visible{outline-color:var(--v-primary)}

/* Product, coaching, floral and skincare demos share their existing interaction shell. */
body[data-demo][data-virtual-brand] .story{background:var(--v-soft)}
body[data-demo][data-virtual-brand] .booking-section{background:var(--v-soft)}
body[data-demo][data-virtual-brand] .booking-aside{background:var(--v-surface)}
body[data-demo][data-virtual-brand] :is(.field input,.field select){border-color:var(--v-line);background:var(--v-surface);color:var(--v-ink)}
body[data-demo][data-virtual-brand] :is(.principles article,.faq details,.process-strip){border-color:var(--v-line)}
body[data-demo][data-virtual-brand] :is(.menu-card,.menu-card a){border-color:var(--v-primary)}
body[data-demo][data-virtual-brand] :is(.menu-card>span,.menu-card .price,.menu-card a){color:var(--v-primary)}
body[data-demo][data-virtual-brand] .result{background:var(--v-dark);color:#fff}
body[data-demo][data-virtual-brand] .result :is(.result-copy,.specs dt){color:#E3E5E1}
body[data-demo][data-virtual-brand] .result .specs :is(dd,.total dt){color:#fff}
body[data-demo][data-virtual-brand] .result .specs>div{border-color:color-mix(in srgb,var(--v-surface) 30%,transparent)}
body[data-demo][data-virtual-brand] .result .button.outline{color:#fff;border-color:#fff}
body[data-demo][data-virtual-brand] .result .button.outline:hover{background:var(--v-surface);color:var(--v-primary)}
body[data-demo][data-virtual-brand] .result .button.light{background:var(--v-surface);border-color:var(--v-surface);color:var(--v-primary)}
body[data-virtual-brand="roastery"] .hero h1{color:var(--v-primary)}
body[data-virtual-brand="floral"] .hero h1{color:var(--v-primary)}
body[data-demo="pt"][data-virtual-brand="pt"] .hero{background:var(--v-dark);color:#fff}
body[data-demo="pt"][data-virtual-brand="pt"] .hero-copy>p:not(.eyebrow){color:#E8DCD5}
body[data-demo="pt"][data-virtual-brand="pt"] .hero .eyebrow{color:var(--v-accent)}
body[data-demo="pt"][data-virtual-brand="pt"] .hero .button{background:var(--v-primary);border-color:var(--v-primary);color:#fff}
body[data-demo="pt"][data-virtual-brand="pt"] .hero .button:hover{background:var(--v-surface);border-color:var(--v-surface);color:var(--v-primary)}
body[data-demo="pt"][data-virtual-brand="pt"] .hero :is(button,a):focus-visible{outline-color:var(--v-accent)}
body[data-demo="skincare"][data-virtual-brand="skincare"] .story{background:var(--v-dark);color:#fff}
body[data-demo="skincare"][data-virtual-brand="skincare"] .story .eyebrow{color:var(--v-accent)}
