/**
 * Theme application layer, every Ready theme inherits kit tokens on ALL chrome.
 * Never fade / bleach copy, CTAs, or links into the background.
 */

/* , ,  Hard visibility contract , ,  */
body.atelier,
body.atelier main,
body.atelier main *:not(script):not(style):not(input):not(textarea),
body.atelier .hx,
body.atelier .hx *:not(input),
body.atelier .an-btn,
body.atelier .ui-btn,
body.atelier a,
body.atelier .an-reveal,
body.atelier .an-reveal:not(.is-in) {
  opacity: 1 !important;
  visibility: visible !important;
}
/* Merch hover swaps are allowed; keep them explicit */
body.atelier .an-product__img--b { opacity: 0 !important; }
body.atelier .an-product:hover .an-product__img--b { opacity: 1 !important; }
body.atelier .an-product:hover .an-product__img--a { opacity: 0 !important; }
body.atelier .an-product__quick { opacity: 0 !important; }
body.atelier .an-product:hover .an-product__quick { opacity: 1 !important; }
body.atelier .an-product__cue,
body.atelier .an-product__social,
body.atelier .an-product__invite {
  opacity: 1 !important;
  visibility: visible !important;
}
body.atelier .brand-loader-portal.is-done,
body.atelier .brand-loader-portal[hidden] {
  opacity: 0 !important;
  visibility: hidden !important;
}

/*
 * Native radios inside styled chips MUST stay visually hidden on every theme.
 * (Previous global opacity:1 was forcing browser radios on top of Size/Color labels.)
 */
body.atelier .an-chip,
body.atelier .chip,
body.atelier label.an-chip,
body.atelier .an-check {
  position: relative !important;
}
body.atelier .an-chip > input[type="radio"],
body.atelier .an-chip > input[type="checkbox"],
body.atelier .chip > input[type="radio"],
body.atelier .chip > input[type="checkbox"],
body.atelier .an-check > input[type="checkbox"],
body.atelier .an-chips input[type="radio"],
body.atelier .an-shipopt > input[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  accent-color: transparent !important;
}

/* , ,  Token-driven chrome (overrides cream-on-light leftovers) , ,  */
body.atelier {
  color: var(--ink);
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-deep, var(--bg)) 100%);
}
body.atelier a:not(.an-btn):not(.ui-btn):not(.an-bag-cta):not(.an-product):not(.an-cat-tile):not(.hx-app__sku):not(.hx-cat__cell):not(.hx-bloom__float):not(.hx-fast__sku):not(.hx-film__still):not(.hx-craft__swatches a):not(.an-footer__logo):not(.an-switcher__chip):not(.an-switcher__brand):not(.an-local a) {
  color: inherit;
}
/* Lab chrome must never pick up storefront palette, Shopify green stripe */
body.atelier .an-switcher,
body.atelier .an-switcher a,
body.atelier .an-switcher button,
body.atelier .an-switcher select,
body.atelier .an-switcher .an-switcher__label,
body.atelier .an-switcher label#an-theme-picker-label {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}
body.atelier .an-switcher .an-picker__trigger,
body.atelier .an-switcher .an-picker__value,
body.atelier .an-switcher .an-picker__panel,
body.atelier .an-switcher .an-picker__panel button,
body.atelier .an-switcher .an-picker__input {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
body.atelier .an-switcher__chip {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
body.atelier .an-switcher__chip.is-on {
  background: #ffffff !important;
  color: #004c3f !important;
  -webkit-text-fill-color: #004c3f !important;
  border-color: #ffffff !important;
}
body.atelier .an-kicker { color: var(--kicker, var(--ink)); opacity: 1 !important; }
/* On dark media, kicker stays white, never washed ink */
body.atelier .an-kicker--on-dark { color: var(--on-dark, #fff) !important; opacity: 1 !important; }
/* Body copy on PAGE surfaces, never paint dark/colored bands (those use white) */
body.atelier .an-lead:not(.an-news .an-lead):not(.an-cta-band .an-lead):not(.an-sale-banner .an-lead),
body.atelier .an-footer__tag,
body.atelier .an-press__label,
body.atelier .an-footer-cta__lead,
body.atelier .an-desire .an-lead,
body.atelier .an-complete .an-lead,
body.atelier .an-fomo .an-lead {
  color: var(--ink) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--ink);
}
/* Page chrome only, never override type sitting on dark sale/news/topbar surfaces */
body.atelier.scheme-light main .an-section .an-lead,
body.atelier.scheme-light main .an-section p:not(.an-kicker),
body.atelier.scheme-light .an-product__meta h3,
body.atelier.scheme-light .an-product__meta .an-price span,
body.atelier.scheme-light .an-fomo__body h3 a,
body.atelier.scheme-light .an-complete__meta h3,
body.atelier.scheme-light .an-footer-cta .an-lead {
  color: var(--on-light, #141210) !important;
}
body.atelier.scheme-dark main .an-section:not(.an-dest):not(.an-mosaic) .an-lead,
body.atelier.scheme-dark main .an-section:not(.an-dest):not(.an-mosaic) p:not(.an-kicker),
body.atelier.scheme-dark .an-product__meta h3,
body.atelier.scheme-dark .an-product__meta .an-price span,
body.atelier.scheme-dark .an-fomo__body h3 a,
body.atelier.scheme-dark .an-complete__meta h3,
body.atelier.scheme-dark .an-footer-cta .an-lead,
body.atelier.scheme-dark .an-footer-cta .an-h2 {
  color: var(--on-dark, #ffffff) !important;
}
/* Photography overlay frames ONLY → white type. Light desk / twin / swiss stay dark. */
body.atelier.scheme-light .hx:has(.hx__media) :is(.hx__frame, .hx__thumb-top, .hx__mast) :is(.hx__chip, .hx__brand, .hx__line, .hx__sub, .hx__proof, .hx__stamp),
body.atelier.scheme-dark .hx:has(.hx__media) :is(.hx__frame, .hx__thumb-top, .hx__mast) :is(.hx__chip, .hx__brand, .hx__line, .hx__sub, .hx__proof, .hx__stamp),
body.atelier.scheme-light .an-dest__body,
body.atelier.scheme-light .an-dest__body *:not(.an-btn):not(.ui-btn):not(.an-btn__label),
body.atelier.scheme-dark .an-dest__body,
body.atelier.scheme-dark .an-dest__body *:not(.an-btn):not(.ui-btn):not(.an-btn__label) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
body.atelier .hx:not(:has(.hx__media)) :is(.hx__chip, .hx__brand, .hx__line, .hx__sub, .hx__proof, .hx__stamp),
body.atelier .hx :is(.hx__twin-copy, .hx__swiss-cell--type, .hx__split-copy) :is(.hx__chip, .hx__brand, .hx__line, .hx__sub, .hx__proof, .hx__stamp) {
  color: #141210 !important;
  -webkit-text-fill-color: #141210 !important;
}
/* Re-assert white type on dark ecommerce bands after scheme rules */
body.atelier .an-topbar p,
body.atelier .an-news p,
body.atelier .an-sale-banner p,
body.atelier .an-cta-band--urgency p,
body.atelier .an-cta-band--urgency .an-h2,
body.atelier .an-sale-banner .an-h2 {
  color: var(--on-dark, #fff) !important;
}
/* Page headings only, NEVER blanket-paint h1/h2 (heroes use those tags) */
body.atelier .an-h2,
body.atelier .an-footer__brand,
body.atelier .an-buy h1,
body.atelier .an-section h2,
body.atelier .an-section h3,
body.atelier .an-block h2,
body.atelier .an-block h3 {
  color: var(--ink) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--ink);
}
body.atelier .an-btn__label {
  opacity: 1 !important;
  visibility: visible !important;
}
/* Destination panels sit on photos, white type always */
body.atelier .an-dest__body,
body.atelier .an-dest__title,
body.atelier .an-dest__meta,
body.atelier .an-dest .an-kicker--on-dark {
  color: var(--on-dark, #fff) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #fff;
}

/*
 * Contrast law (non-negotiable):
 * - Light page background → dark text (--ink / --on-light)
 * - Dark page background → white/cream text (--ink / --on-dark)
 * - Dark or bright colored bars (topbar, news, sale, marquee) → WHITE text always
 * - Solid CTA fill → label = inkOn(fill) via --cta-fg
 */
body.atelier {
  --cta-bg: var(--ink);
  --cta-fg: var(--on-ink, var(--bg));
  --cta-border: var(--ink);
  --link: var(--ink);
  --on-dark: #ffffff;
  --on-light: #141210;
}
body.atelier.scheme-light { color: var(--on-light, #141210); }
body.atelier.scheme-dark { color: var(--on-dark, #ffffff); }

/* Dark / colored brand surfaces, always white type, never page --ink */
body.atelier .an-topbar,
body.atelier .an-news,
body.atelier .an-marquee,
body.atelier .an-sale-banner,
body.atelier .an-cta-band--urgency,
body.atelier .an-convert-dock__cta,
body.atelier [data-surface="dark"] {
  color: var(--on-dark, #fff) !important;
}
body.atelier .an-topbar a,
body.atelier .an-topbar p,
body.atelier .an-topbar span,
body.atelier .an-news .an-h2,
body.atelier .an-news p,
body.atelier .an-news .an-kicker,
body.atelier .an-news a:not(.an-btn),
body.atelier .an-marquee span,
body.atelier .an-sale-banner .an-h2,
body.atelier .an-sale-banner p,
body.atelier .an-sale-banner .an-lead,
body.atelier .an-sale-banner .an-kicker,
body.atelier .an-cta-band--urgency .an-h2,
body.atelier .an-cta-band--urgency .an-lead,
body.atelier .an-cta-band--urgency .an-kicker {
  color: var(--on-dark, #fff) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: currentColor;
}
/* Ghost buttons on dark colored bands stay white-outlined */
body.atelier .an-sale-banner .an-btn--ghost,
body.atelier .an-sale-banner .an-btn--ghost-dark,
body.atelier .an-cta-band--urgency .an-btn--ghost,
body.atelier .an-cta-band--urgency .an-btn--ghost-dark,
body.atelier .an-news .an-btn--ghost,
body.atelier .an-news .an-btn--ghost-dark {
  color: var(--on-dark, #fff) !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
  background: transparent !important;
}
body.atelier .an-sale-banner .an-btn--ghost .an-btn__label,
body.atelier .an-sale-banner .an-btn--ghost-dark .an-btn__label,
body.atelier .an-cta-band--urgency .an-btn--ghost .an-btn__label,
body.atelier .an-cta-band--urgency .an-btn--ghost-dark .an-btn__label {
  color: var(--on-dark, #fff) !important;
}
body.atelier .an-btn,
body.atelier .ui-btn,
body.atelier .an-bag-cta,
body.atelier .an-convert-dock__cta {
  opacity: 1 !important;
}
/* Never inherit parent band color onto labels (causes white-on-white / dark-on-dark) */
body.atelier .an-btn--solid,
body.atelier .ui-btn--solid,
body.atelier .an-bag-cta {
  background: var(--cta-bg) !important;
  color: var(--cta-fg) !important;
  border-color: var(--cta-border) !important;
  -webkit-text-fill-color: var(--cta-fg) !important;
}
body.atelier .an-btn--solid .an-btn__label,
body.atelier .ui-btn--solid .an-btn__label,
body.atelier .an-bag-cta {
  color: var(--cta-fg) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--cta-fg) !important;
}
body.atelier .an-btn--ghost,
body.atelier .an-btn--ghost-dark,
body.atelier .ui-btn--ghost,
body.atelier .ui-btn--ghost-ink,
body.atelier .ui-btn--outline {
  background: transparent !important;
  color: var(--ink) !important;
  border-color: color-mix(in srgb, var(--ink) 55%, transparent) !important;
}
body.atelier .an-btn--ghost .an-btn__label,
body.atelier .an-btn--ghost-dark .an-btn__label {
  color: var(--ink) !important;
  opacity: 1 !important;
}
/* On dark media surfaces, allow light ghost */
body.atelier .hx--film .ui-btn--ghost,
body.atelier .hx--noir .ui-btn--ghost,
body.atelier .hx--fast .ui-btn--ghost,
body.atelier .an-news .an-btn--ghost,
body.atelier .an-dest__panel .an-btn--ghost,
body.atelier .an-cinema .an-btn--ghost,
body.atelier .an-look .an-btn--ghost {
  color: #f4efe6 !important;
  border-color: rgba(244, 239, 230, 0.7) !important;
}
body.atelier .an-btn--sale,
body.atelier .ui-btn--sale {
  background: var(--sale) !important;
  border-color: var(--sale) !important;
  color: #fff !important;
}
body.atelier .an-btn--sale .an-btn__label {
  color: #fff !important;
  opacity: 1 !important;
}
body.atelier .ui-btn--rose {
  background: var(--moss) !important;
  border-color: var(--moss) !important;
  color: #fff !important;
}

/* Links on page chrome, NEVER force ink onto image overlays (dest/mosaic/hero/cards) */
body.atelier .an-nav a:not(:hover):not(:focus-visible):not(:active),
body.atelier .an-util,
body.atelier .an-footer a:not(.an-btn),
body.atelier .an-drawer a,
body.atelier .an-review footer a,
body.atelier .an-journal a,
body.atelier main a:not(.an-btn):not(.ui-btn):not(.an-bag-cta):not(.an-product):not(.an-cats__tile):not(.an-switcher__chip):not(.an-local a):not(.an-dest__panel):not(.an-mosaic__hero):not(.an-mosaic__tile):not(.an-card):not(.hx__still):not(.an-fomo__media):not(.an-filter):not(.ui-chip):not(.an-chip):not(.chip):not(.hx__actions a) {
  color: var(--link, var(--ink)) !important;
  opacity: 1 !important;
}
/* Selected filters/chips own their own contrast (never inherit page ink on ink fill) */
body.atelier .an-filter.is-on,
body.atelier .ui-chip.is-on,
body.atelier .an-filters button.is-on {
  background: var(--cta-bg, var(--ink)) !important;
  color: var(--cta-fg, var(--on-ink, #fff)) !important;
  border-color: var(--cta-border, var(--ink)) !important;
  -webkit-text-fill-color: var(--cta-fg, var(--on-ink, #fff)) !important;
  opacity: 1 !important;
}
body.atelier .an-nav__sale:not(:hover):not(:focus-visible):not(:active) {
  color: var(--sale) !important;
  opacity: 1 !important;
}

/* Header / nav / utils */
body.atelier .an-header {
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
body.atelier .an-nav a,
body.atelier .an-util,
body.atelier .an-logo__theme,
body.atelier .an-menu-btn {
  color: var(--ink);
  opacity: 1;
}
body.atelier .an-bag-cta {
  background: var(--cta-bg, var(--ink));
  color: var(--cta-fg, var(--on-ink)) !important;
  border-color: var(--cta-border, var(--ink));
}
/* Topbar may be brand-colored by niche skins, type stays white */
body.atelier .an-topbar {
  color: var(--on-dark, #fff) !important;
}
body.atelier .an-topbar a { color: var(--on-dark, #fff) !important; }

/* Sections */
body.atelier .an-section,
body.atelier .an-rail-block {
  border-top: 1px solid var(--line);
  color: var(--ink);
}
body.atelier .an-product {
  color: var(--ink);
  background: transparent;
}
body.atelier .an-product__meta h3 { color: var(--ink); }
body.atelier .an-price span { color: var(--ink); }
body.atelier .an-price s { color: var(--muted); }
body.atelier .an-review {
  background: color-mix(in srgb, var(--bg) 94%, var(--ink));
  border: 1px solid var(--line);
  color: var(--ink);
}
body.atelier .an-press {
  border-block: 1px solid var(--line);
  background: transparent;
}
body.atelier .an-press__mark { color: var(--ink); }
body.atelier .an-marquee {
  border-color: transparent;
  color: var(--on-dark, #fff) !important;
}
body.atelier .an-marquee__track span { color: var(--on-dark, #fff) !important; opacity: 1 !important; }
body.atelier .an-news {
  border: 0;
  color: var(--on-dark, #fff) !important;
}
body.atelier .an-news .an-h2,
body.atelier .an-news p,
body.atelier .an-news a:not(.an-btn) { color: var(--on-dark, #fff) !important; opacity: 1 !important; }
/* News inverted solid only, never wash sale/ghost to white fill */
body.atelier .an-news .an-btn--solid,
body.atelier .an-news .ui-btn--solid {
  border-color: #ffffff !important;
  background: #ffffff !important;
  color: #141210 !important;
  -webkit-text-fill-color: #141210 !important;
}
body.atelier .an-news .an-btn--solid .an-btn__label,
body.atelier .an-news .ui-btn--solid .an-btn__label {
  color: #141210 !important;
  -webkit-text-fill-color: #141210 !important;
}
body.atelier .an-news .an-btn--sale,
body.atelier .an-news .an-btn--sale .an-btn__label {
  background: var(--sale) !important;
  border-color: var(--sale) !important;
  color: var(--on-sale, #ffffff) !important;
  -webkit-text-fill-color: var(--on-sale, #ffffff) !important;
}
body.atelier .an-footer {
  background: color-mix(in srgb, var(--bg) 92%, var(--ink));
  color: var(--ink);
  border-top: 1px solid var(--line);
}
body.atelier .an-footer a { color: inherit; }
body.atelier .an-manifesto {
  background: color-mix(in srgb, var(--moss) 10%, var(--bg));
  color: var(--ink) !important;
  border-color: var(--line);
}
body.atelier .an-manifesto blockquote,
body.atelier .an-manifesto p,
body.atelier .an-manifesto__text {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  opacity: 1 !important;
}
body.atelier .an-proof-band {
  background: color-mix(in srgb, var(--moss) 14%, var(--bg));
  color: var(--ink);
  border: 1px solid var(--line);
}
body.atelier .an-cta-band[data-surface="light"] {
  border-color: var(--line);
  color: var(--ink);
}
body.atelier .an-cta-band[data-surface="dark"],
body.atelier .an-cta-band--urgency,
body.atelier .an-sale-banner {
  border-color: transparent;
  color: #ffffff !important;
}
body.atelier .an-drawer {
  background: var(--bg);
  color: var(--ink);
}
body.atelier .an-drawer a { color: var(--ink); }

/* ALL heroes sit on photography, white type only (scrims in theme-overlay-type.css) */
body.atelier .hx--bleed,
body.atelier .hx--film,
body.atelier .hx--street,
body.atelier .hx--proof,
body.atelier .hx--gallery,
body.atelier .hx--catalog,
body.atelier .hx--bloom,
body.atelier .hx--linen,
body.atelier .hx--craft,
body.atelier .hx--noir,
body.atelier .hx--fast,
body.atelier .hx--app {
  color: #ffffff !important;
}
body.atelier .hx-app__sheet,
body.atelier .hx-app__sheet a,
body.atelier .hx-app__dock a,
body.atelier .hx-app__dock-cta {
  color: #fff !important;
}
