/* Brand identity follows the current site's body data-brand across every route. */
body[data-brand="bank"] {
  --brand-ink: #172f51;
  --brand-muted: #526781;
  --brand-accent: #275cb7;
  --brand-hover: #19458f;
  --brand-canvas: #f0f5fc;
  --brand-surface: #ffffff;
  --brand-soft: #e3ecfa;
  --brand-border: #cddbef;
  --brand-nav: #132d52;
  --brand-nav-hover: #28476f;
  --brand-highlight: #c6dcff;
  --brand-overlay: #101f3c80;
}
body[data-brand="aurelia"] {
  --brand-ink: #123f45;
  --brand-muted: #466a6e;
  --brand-accent: #08717a;
  --brand-hover: #04545c;
  --brand-canvas: #f0f8f6;
  --brand-surface: #fbfffd;
  --brand-soft: #dcefeb;
  --brand-border: #bbd9d5;
  --brand-nav: #074d55;
  --brand-nav-hover: #12636c;
  --brand-highlight: #b5f1e5;
  --brand-overlay: #073e4880;
}
body[data-brand="maison_vale"] {
  --brand-ink: #482338;
  --brand-muted: #7a5568;
  --brand-accent: #852d51;
  --brand-hover: #64203d;
  --brand-canvas: #fcf4f7;
  --brand-surface: #fffafb;
  --brand-soft: #f3dfe7;
  --brand-border: #e1c4d1;
  --brand-nav: #491a30;
  --brand-nav-hover: #682741;
  --brand-highlight: #f9c8d9;
  --brand-overlay: #38152880;
}

/* Shared components use the active brand, including forms, dialogs and receipts. */
body[data-brand]:not([data-brand="admin"]) {
  --ink: var(--brand-ink);
  --muted: var(--brand-muted);
  --border: var(--brand-border);
  --cream: var(--brand-canvas);
  background: var(--brand-canvas);
  color: var(--brand-ink);
  accent-color: var(--brand-accent);
}
body[data-brand]:not([data-brand="admin"]) :where(.bank-site, .hotel-site, .retail-site) {
  --ink: var(--brand-ink);
  --muted: var(--brand-muted);
  --border: var(--brand-border);
  background: var(--brand-canvas);
  color: var(--brand-ink);
}
body[data-brand]:not([data-brand="admin"]) :where(a, button, input, select, summary):focus-visible {
  outline-color: var(--brand-accent);
}
body[data-brand]:not([data-brand="admin"]) :where(.eyebrow, .small-label, .text-link, .sidebar-bottom > .icon) {
  color: var(--brand-accent);
}
body[data-brand]:not([data-brand="admin"]) .text-link:hover { color: var(--brand-hover); }
body[data-brand]:not([data-brand="admin"]) :where(.button.dark, .button.brown) {
  background: var(--brand-accent);
  color: #fff;
}
body[data-brand]:not([data-brand="admin"]) :where(.button.dark, .button.brown):hover { background: var(--brand-hover); }
body[data-brand]:not([data-brand="admin"]) .button.outline {
  background: transparent;
  border-color: var(--brand-border);
  color: var(--brand-accent);
}
body[data-brand]:not([data-brand="admin"]) :where(.button.outline:hover, .icon-button:hover) { background: var(--brand-soft); }
body[data-brand]:not([data-brand="admin"]) :where(.pill.green, .pill.tan, .premium-badge, .mini-round, .info-emblem) {
  color: var(--brand-accent);
  background: var(--brand-soft);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) :where(.account-summary, .offer-card, .partner-card, .flight-section, .room-card, .order-summary, .confirmation-card, .transaction-results article, .modal) {
  background: var(--brand-surface);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) :where(.benefit-strip, .public-benefit-strip, .consent-intro, .prefill-note, .saved-card, .payment-connect, .summary-benefit, .mode-status, .claims-details, .admin-entry, .metric-grid > span) {
  background: var(--brand-soft);
  border-color: var(--brand-border);
  color: var(--brand-ink);
}
body[data-brand]:not([data-brand="admin"]) :where(.benefit-strip > span, .benefit-strip small, .benefit-strip > div > .icon, .consent-intro > .icon, .partner-perks span, .consent-promise, .radio-selected, .payment-connect > .icon) {
  color: var(--brand-accent);
}
body[data-brand]:not([data-brand="admin"]) :where(.heading-description, .account-summary > div > span, .account-summary > div > small, .account-summary strong > span, .account-summary strong > small, .offer-state, .card-caption, .room-features, .room-rate > small, .room-rate > div > span, .rate-note, .rating span, .gallery-caption, .breadcrumb-link, .product-delivery, .product-color small, .product-copy > details > p, .product-price s, .price-lines, .checkout-form label, .saved-card > div > span, .checkout-terms, .summary-note, .total-line small, .confirmation-total, .confirmation-note, .friction-summary, .transaction-results p, .modal-description, .modal-fineprint, .consent-option small, .control-label, .control-hint, .control-consents small, .timeline-event p, .timeline-event small, .claims-details > p, .admin-entry small, .metric-grid small) {
  color: var(--brand-muted);
}
body[data-brand]:not([data-brand="admin"]) :where(.room-rate strong, .product-price strong, .modal > h2, .consent-option strong, .timeline-event strong, .control-consents > h3, .control-consents > div > span, .timeline > h3, .claims-details > summary) { color: var(--brand-ink); }
body[data-brand]:not([data-brand="admin"]) :where(.price-lines > .discount, .confirmation-actions .text-link, .transaction-results small, .recovery-note, .control-consents .text-link) { color: var(--brand-accent); }
body[data-brand]:not([data-brand="admin"]) :where(.checkout-form input, .control-label select, .claims-details pre) {
  color: var(--brand-ink);
  background: var(--brand-surface);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) .checkout-form input:focus { border-color: var(--brand-accent); }
body[data-brand]:not([data-brand="admin"]) input { accent-color: var(--brand-accent); }
body[data-brand]:not([data-brand="admin"]) .journey-steps > span { color: var(--brand-muted); }
body[data-brand]:not([data-brand="admin"]) .journey-steps .complete { color: var(--brand-accent); }
body[data-brand]:not([data-brand="admin"]) .journey-steps .current { color: var(--brand-ink); }
body[data-brand]:not([data-brand="admin"]) .journey-steps .complete > b {
  color: var(--brand-accent);
  background: var(--brand-soft);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) .journey-steps > span + span::before { background: var(--brand-border); }
body[data-brand]:not([data-brand="admin"]) .confirmation-check:not(.cancelled) {
  color: var(--brand-accent);
  background: var(--brand-soft);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) .modal-backdrop { background: var(--brand-overlay); }
body[data-brand]:not([data-brand="admin"]) :where(.modal-close, .disconnect-button) { color: var(--brand-accent); }
body[data-brand]:not([data-brand="admin"]) :where(.consent-option, .control-consents, .timeline, .product-copy > details) { border-color: var(--brand-border); }
body[data-brand]:not([data-brand="admin"]) .timeline-icon {
  color: var(--brand-accent);
  background: var(--brand-soft);
  border-color: var(--brand-border);
}
body[data-brand]:not([data-brand="admin"]) .timeline-event::before { background: var(--brand-border); }
body[data-brand]:not([data-brand="admin"]) #toast { background: var(--brand-nav); border-color: var(--brand-accent); color: #fff; }
body[data-brand]:not([data-brand="admin"]) #toast .icon { color: var(--brand-highlight); }
body[data-brand]:not([data-brand="admin"]) .site-footer { background: var(--brand-soft); border-color: var(--brand-border); }
body[data-brand]:not([data-brand="admin"]) :where(.site-footer, .site-footer button, .footer-dot) { color: var(--brand-muted); }

/* Keep the presenter bar neutral; the active site's chip carries its color. */
body[data-brand]:not([data-brand="admin"]) .lab-bar { background: #202830; color: #e6ebf0; }
body[data-brand]:not([data-brand="admin"]) .lab-switcher a { color: #bac5cf; }
body[data-brand]:not([data-brand="admin"]) .lab-switcher a:hover { background: #35414d; }
body[data-brand]:not([data-brand="admin"]) .lab-switcher a.active { background: var(--brand-accent); color: #fff; }
body[data-brand]:not([data-brand="admin"]) :where(.lab-admin, .lab-controls) { color: #e6ebf0; }
body[data-brand]:not([data-brand="admin"]) .lab-monogram { border-color: #627180; color: #e6ebf0; }

/* Each large masthead makes the current merchant recognizable before browsing. */
body[data-brand]:not([data-brand="admin"]) :where(.bank-nav, .hotel-nav, .retail-nav) {
  background: var(--brand-nav);
  border-color: var(--brand-nav);
  color: #fff;
}
body[data-brand]:not([data-brand="admin"]) :where(.bank-nav, .hotel-nav, .retail-nav) :where(.quiet, .text-link, .circle-link .icon) { color: var(--brand-highlight); }
body[data-brand]:not([data-brand="admin"]) :where(.bank-nav, .hotel-nav, .retail-nav) :where(a, button):focus-visible { outline-color: var(--brand-highlight); }
body[data-brand]:not([data-brand="admin"]) :where(.bank-nav, .hotel-nav, .retail-nav) .icon-button:hover { background: var(--brand-nav-hover); }

/* Alderbank — midnight navy, clear blue, crisp white. */
body[data-brand="bank"] .bank-symbol i { background: #a4c7ff; }
body[data-brand="bank"] .logo-dot { color: #8cb5fa; }
body[data-brand="bank"] .bank-nav-links a:hover { color: #b6d3ff; }
body[data-brand="bank"] .avatar { background: #315077; color: #fff; }
body[data-brand="bank"] .nav-divider { background: #425a7b; }
body[data-brand="bank"] .notification-dot { background: #90b8fd; border-color: #132d52; }
body[data-brand="bank"] .bank-sidebar { background: #e8f0fb; }
body[data-brand="bank"] .sidebar-item { color: #526781; }
body[data-brand="bank"] .sidebar-item:hover { background: #dae6f7; }
body[data-brand="bank"] .sidebar-item.selected { background: #275cb7; color: #fff; }
body[data-brand="bank"] .bank-spotlight { background: #e1ebfc; border-color: #cddbef; }
body[data-brand="bank"] .card-scene { background: radial-gradient(ellipse at 25% 20%, #f4f8ff, #b9cff0 90%); }
body[data-brand="bank"] .card-scene::after { background: #496188; }
body[data-brand="bank"] .spotlight-copy h2 em { color: #275cb7; }
.bank-offers .offer-heading { gap: 16px; margin-bottom: 14px; }
.bank-offers .offer-brand-logo {
  display: block;
  width: 216px;
  max-width: calc(100% - 24px);
  height: auto;
}
.bank-offers .offer-heading .status-dot { flex-shrink: 0; }
.credit-card {
  background: linear-gradient(118deg, #23497e 0%, #12294d 48%, #366ab0 100%);
  color: #edf4ff;
  border-color: #5077a9;
  box-shadow: 2px 13px 20px #12294d30;
}
.credit-card .card-line { border-color: #c9dcfa35; }
.credit-card .card-network-logo {
  position: absolute;
  right: 8%;
  bottom: 23%;
  width: 21%;
  height: auto;
  padding: 5px 6px;
  background: #fff;
  border-radius: 2px;
  z-index: 2;
}
.connection-bank, .mini-card { background: #132d52; color: #edf4ff; }
.connection-partner.hotel { background: #dcefeb; border-color: #bbd9d5; color: #08717a; }
.connection-partner.retail { background: #f3dfe7; border-color: #e1c4d1; color: #852d51; }

/* Aurelia — deep ocean teal, sea glass and sand. */
body[data-brand="aurelia"] .hotel-nav .button.dark { background: #b5f1e5; color: #074d55; }
body[data-brand="aurelia"] .hotel-nav .button.dark:hover { background: #d4fff5; }
body[data-brand="aurelia"] .hotel-hero-shade { background: linear-gradient(90deg, #043e4bde 0%, #054c5a83 40%, #054c5a10 78%); }
body[data-brand="aurelia"] .hotel-hero-content .eyebrow { color: #d4fff1; }
body[data-brand="aurelia"] .hotel-hero .button.cream { background: #e1faf1; color: #074d55; border-color: #d4eee7; }
body[data-brand="aurelia"] .hotel-hero .button.cream:hover { background: #fff; }
body[data-brand="aurelia"] .trip-search { background: #fbfffd; border-color: #bbd9d5; box-shadow: 0 5px 25px #064a5618; }
body[data-brand="aurelia"] .trip-search > div { border-color: #bbd9d5; }
body[data-brand="aurelia"] .trip-search label { color: #466a6e; }
body[data-brand="aurelia"] .trip-search select { color: #123f45; }
body[data-brand="aurelia"] .hotel-editorial h2 em { color: #08717a; }
body[data-brand="aurelia"] .flight-option { border-color: #bbd9d5; background: #fbfffd; }
body[data-brand="aurelia"] .flight-option.selected { border-color: #08717a; background: #dcefeb; }
body[data-brand="aurelia"] :is(.flight-option b > small, .flight-option > span > small) { color: #466a6e; }
body[data-brand="aurelia"] .flight-option b > .icon { color: #08717a; }

/* Maison Vale — oxblood, rose and warm ivory. */
body[data-brand="maison_vale"] .retail-bag span { background: #f9c8d9; color: #491a30; }
body[data-brand="maison_vale"] .retail-nav .favorite .icon { color: #f9c8d9; fill: #f9c8d940; }
body[data-brand="maison_vale"] .retail-hero { background: #5b233e; }
body[data-brand="maison_vale"] .retail-hero h1 { color: #fff8fb; }
body[data-brand="maison_vale"] .retail-hero h1 em { color: #f9c8d9; }
body[data-brand="maison_vale"] .retail-hero-copy .eyebrow { color: #f9c8d9; }
body[data-brand="maison_vale"] .retail-hero-copy > p:not(.eyebrow) { color: #f5dce6; }
body[data-brand="maison_vale"] .collection-caption { color: #f0c7d6; }
body[data-brand="maison_vale"] .retail-hero .button.brown { background: #f9c8d9; color: #491a30; }
body[data-brand="maison_vale"] .retail-hero .button.brown:hover { background: #ffe7ef; }
body[data-brand="maison_vale"] .retail-values { background: #f3dfe7; border-color: #e1c4d1; }
body[data-brand="maison_vale"] :is(.retail-values > span, .retail-values .icon) { color: #852d51; }
body[data-brand="maison_vale"] :is(.retail-welcome h2 em, .product-copy > h1 em, .product-copy > details > summary) { color: #852d51; }
body[data-brand="maison_vale"] .retail-welcome > div:last-child > p { color: #7a5568; }
body[data-brand="maison_vale"] .product-copy > h1 { color: #482338; }
body[data-brand="maison_vale"] .favorite-button { color: #852d51; background: #fff6facf; }
body[data-brand="maison_vale"] .favorite-button.saved .icon { fill: #852d5160; }

@media (max-width: 640px) {
  body[data-brand="aurelia"] .hotel-hero-shade { background: linear-gradient(90deg, #043e4be8 0%, #054c5a88 65%, #054c5a3d 100%); }
}
