/* Hallmark · component scope: existing Maison shell; no macrostructure change. */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R5 V3 */
html { background: var(--armu-v2-surface); }
.armu-appearance { position: relative; order: 3; color: var(--armu-v2-ink); }
.armu-appearance > summary { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; cursor: pointer; list-style: none; }
.armu-appearance > summary::-webkit-details-marker { display: none; }
.armu-appearance > summary:hover { color: var(--armu-v2-gold); }
.armu-appearance > summary:active { background: var(--armu-v2-paper); }
.armu-appearance__panel { position: absolute; right: 0; top: calc(100% + 8px); width: 264px; max-width: calc(100vw - 40px); padding: 20px; background: var(--armu-v2-surface); border: 1px solid var(--armu-v2-rule-2); z-index: 100; }
.armu-appearance__panel p { display: flex; justify-content: space-between; margin: 0 0 12px; font: 500 15px/1.5 var(--armu-v2-body); }
.armu-appearance__panel p span { color: var(--armu-v2-ink-2); font-weight: 400; }
.armu-appearance__panel button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 0; background: transparent; color: var(--armu-v2-ink); font: 400 15px/1.5 var(--armu-v2-body); cursor: pointer; box-shadow: none; }
.armu-appearance__panel button span { visibility: hidden; }
.armu-appearance__panel button[aria-pressed="true"] { background: var(--armu-v2-paper); font-weight: 600; }
.armu-appearance__panel button[aria-pressed="true"] span { visibility: visible; }
.armu-appearance__panel button:hover { color: var(--armu-v2-gold); }
.armu-appearance__panel button:active { background: var(--armu-v2-paper-2); }
.armu-appearance__panel button:disabled { opacity: .55; cursor: not-allowed; }
.armu-appearance__panel small { display: block; margin-top: 12px; font: 400 14px/1.5 var(--armu-v2-body); color: var(--armu-v2-ink-2); }
.armu-appearance :is(button, summary):focus-visible { outline: 2px solid var(--armu-v2-focus); outline-offset: 3px; }
.armu-appearance-mobile { display: none; }
@media (max-width: 700px) {
 .armu-v2-site-header__tools > .armu-appearance { display: none; }
 .armu-appearance-mobile { display: block; padding-block: 12px; border-top: 1px solid var(--armu-v2-rule); }
 .armu-appearance-mobile .armu-appearance > summary { justify-content: flex-start; gap: 12px; width: auto; }
 .armu-appearance-mobile .armu-appearance > summary span { display: inline; }
 .armu-appearance-mobile .armu-appearance__panel { position: static; width: 100%; max-width: none; margin-top: 8px; }
}

/* Product-detail galleries retain white mattes; card frames follow the page below. */
body.armu-v2-site :is(.armu-v2-card__image, .armu-v2-card__media, .armu-v2-related__image, .armu-v2-product-card__media, .armu-maison-category__image, .armu-v2-category-card__image, .woocommerce-product-gallery__image, .flex-control-thumbs li) { background: var(--armu-v2-white) !important; }
body.armu-v2-site .armu-v2-notice { color: var(--armu-v2-on-deep); }
body.armu-v2-site .armu-maison-help { background: var(--armu-v2-deep); color: var(--armu-v2-on-deep); }
body.armu-v2-site :is(.armu-v2-button--solid, .single_add_to_cart_button) { color: var(--armu-v2-on-action) !important; }
body.armu-v2-site .armu-search {
 --armu-search-paper: var(--armu-v2-surface); --armu-search-paper-2: var(--armu-v2-paper);
 --armu-search-photo: var(--armu-v2-white); --armu-search-ink: var(--armu-v2-ink);
 --armu-search-muted: var(--armu-v2-ink-2); --armu-search-rule: var(--armu-v2-rule);
 --armu-search-border: var(--armu-v2-rule-2); --armu-search-accent: var(--armu-v2-gold);
 --armu-search-focus: var(--armu-v2-focus); --armu-search-error: var(--armu-v2-error);
 --armu-search-deep: var(--armu-v2-action); --armu-search-deep-2: var(--armu-v2-action);
 --armu-search-deep-3: var(--armu-v2-ink); --armu-search-on-deep: var(--armu-v2-on-action);
 --armu-search-font: var(--armu-v2-body);
}
body.armu-v2-site .armu-search .armu-search__results :is(a.active, a:hover, a:focus-visible) { color: var(--armu-v2-ink); }
body.armu-v2-site .wc-block-components-notice-banner { background: var(--armu-v2-paper) !important; color: var(--armu-v2-ink) !important; border: 1px solid var(--armu-v2-rule-2) !important; border-radius: 0 !important; font: 400 15px/1.5 var(--armu-v2-body); }
body.armu-v2-site .wc-block-components-notice-banner > svg { background: transparent !important; fill: var(--armu-v2-ink-2) !important; }
body.armu-v2-site .wc-block-components-notice-banner.is-error { border-color: var(--armu-v2-error) !important; }
body.armu-v2-site .wc-block-components-notice-banner.is-error > svg { fill: var(--armu-v2-error) !important; }
body.armu-v2-site .wc-block-components-notice-banner.is-success > svg { fill: var(--armu-v2-success) !important; }

/* Password visibility is a field control, not a primary form action. */
body.armu-v2-site #primary .password-input .show-password-input { width: 44px; min-width: 44px; min-height: 44px !important; height: calc(100% - 2px); padding: 0 !important; right: 1px; background: transparent !important; color: var(--armu-v2-ink) !important; border: 0 !important; }
body.armu-v2-site #primary .password-input .show-password-input:hover { background: var(--armu-v2-paper-2) !important; }
html[data-theme="dark"] body.armu-v2-site .show-password-input::before { filter: brightness(0) invert(1); opacity: .92; }

/* Legacy theme colors must follow the same semantic palette on native forms. */
html[data-theme="dark"] body.armu-v2-site {
 --wp--preset--color--base: var(--armu-v2-surface);
 --wp--preset--color--contrast: var(--armu-v2-ink);
}
html[data-theme="dark"] .arm-flow-page {
 --flow-bg: var(--armu-v2-surface); --flow-panel: var(--armu-v2-paper); --flow-panel-soft: var(--armu-v2-paper-2);
 --flow-text: var(--armu-v2-ink); --flow-muted: var(--armu-v2-ink-2); --flow-line: var(--armu-v2-rule); --flow-line-strong: var(--armu-v2-rule-2); --flow-gold: var(--armu-v2-gold);
}
html[data-theme="dark"] body.armu-v2-site :is(input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, select, .select2-selection, .select2-dropdown) { background-color: var(--armu-v2-surface) !important; color: var(--armu-v2-ink) !important; border-color: var(--armu-v2-rule-2) !important; }
html[data-theme="dark"] body.armu-v2-site :is(input, textarea)::placeholder { color: var(--armu-v2-ink-2) !important; opacity: 1; }
html[data-theme="dark"] body.armu-v2-site :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--armu-v2-gold); }
html[data-theme="dark"] body.armu-v2-site :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) { background: var(--armu-v2-paper) !important; color: var(--armu-v2-ink) !important; border-color: var(--armu-v2-rule-2) !important; }
html[data-theme="dark"] body.armu-v2-site .woocommerce-error { color: var(--armu-v2-error) !important; }
html[data-theme="dark"] body.armu-v2-site :is(.armu-v2-search-dialog, .armu-v2-header-search__panel, .armu-maison-menu-panel) { background: var(--armu-v2-surface); color: var(--armu-v2-ink); }
html[data-theme="dark"] body.armu-v2-site .armu-v2-search-dialog::backdrop { background: var(--armu-v2-overlay); }
html[data-theme="dark"] body.armu-v2-site .armu-v2-site-footer { background: var(--armu-v2-paper); color: var(--armu-v2-ink); }
/* The crest already has transparency: multiply would erase it on dark paper. */
html[data-theme="dark"] body.armu-v2-site .armu-maison-footer__crest { mix-blend-mode: normal; }
html[data-theme="dark"] body.armu-v2-site :is(.armu-maison-gallery-caption, .armu-maison-contact) { background: var(--armu-v2-deep); color: var(--armu-v2-on-deep); }
@media (max-width: 760px) {
 .armu-v2-site-header__tools { gap: 8px; }
 .armu-appearance > summary { min-width: 36px; }
}
@media (max-width: 480px) {
 .armu-v2-site-header__bar { column-gap: 8px; }
 .armu-v2-site-header__tools { gap: 4px; }
 .armu-v2-header-account { display: none; }
 .armu-appearance { order: 1; }
 .armu-appearance__panel { position: fixed; top: 108px; right: 20px; }
}
@media (prefers-reduced-motion: reduce) {
 .armu-appearance *, .xoo-wsc-markup * { transition: none !important; animation: none !important; }
}

/* Finition: shared geometry and semantic colors at the legacy/V2 boundary. */
body.armu-v2-site .armu-v2-site-header__tools { display:flex; align-items:center; }
body.armu-v2-site :is(.armu-v2-header-cart__link,.armu-v2-header-account,.armu-v2-header-search__summary) { align-items:center; }
body.armu-v2-site .armu-v2-newsletter__button,
body.armu-v2-site .armu-v2-skip-link { background:var(--armu-v2-action)!important; color:var(--armu-v2-on-action)!important; }
body.armu-v2-site .armu-v2-skip-link:not(:focus-visible) { transform:translateY(-200%)!important; clip-path:inset(50%); overflow:hidden; }
body.armu-v2-site #primary :is(.badge-qualite-amelioree,.badge-qualite-amelioree-single,.badge-plus-vendus,.armu-v2-card__sale,.onsale) {
 background:var(--armu-v2-action)!important; color:var(--armu-v2-on-action)!important;
 border:1px solid var(--armu-v2-action)!important; border-radius:0!important; box-shadow:none!important;
 font:500 14px/1.4 var(--armu-v2-body)!important; text-shadow:none!important;
}
body.armu-v2-site #primary :is(.badge-qualite-amelioree,.badge-qualite-amelioree-single,.badge-plus-vendus) { padding:6px 10px!important; max-width:calc(100% - 24px); white-space:normal; }
body:is(.armu-v2-cart,.armu-v2-checkout) .arm-flow-step,
body:is(.armu-v2-cart,.armu-v2-checkout) .arm-flow-step:is(.is-active,.is-complete) {
 background:var(--armu-v2-surface)!important; border:0!important; border-radius:0!important;
 color:var(--armu-v2-ink-2)!important; text-transform:none; letter-spacing:0;
}
body:is(.armu-v2-cart,.armu-v2-checkout) .arm-flow-step > :is(span,a) { background:transparent!important; }
body:is(.armu-v2-cart,.armu-v2-checkout) .arm-flow-step > :is(span,a)::before {
 background:var(--armu-v2-surface)!important; border-color:var(--armu-v2-rule-2)!important; color:var(--armu-v2-ink)!important;
}
body:is(.armu-v2-cart,.armu-v2-checkout) .arm-flow-step.is-active > :is(span,a)::before {
 background:var(--armu-v2-action)!important; border-color:var(--armu-v2-action)!important; color:var(--armu-v2-on-action)!important;
}
body.armu-v2-site .armu-v2-catalog-hero { width:100%; margin-inline:0; background:var(--armu-v2-surface)!important; }
body.armu-v2-site .armu-v2-catalog-hero > .armu-v2-catalog__page { box-sizing:border-box; width:min(var(--armu-v2-page),100%); margin-inline:auto; }
/* Only the frame is themed. White areas inside product photographs stay intact. */
body.armu-v2-site #primary .armu-v2-card__media { background:var(--armu-v2-white)!important; }
html[data-theme="dark"] body.armu-v2-site #primary .armu-v2-card__media { background:var(--armu-v2-paper-2)!important; }
body.armu-v2-site #primary .armu-v2-card__media img.armu-v2-card__image { background:transparent!important; }

body.armu-v2-site .armu-v2-site-footer .armu-v2-newsletter__copy p { color:var(--armu-v2-ink-2)!important; }

/* Recommendations use the whole product layout, including owner cross-sells. */
body.armu-v2-product #primary #main > div.product[id^="product-"] > .armu-v2-related { grid-column:1 / -1!important; width:100%!important; max-width:none!important; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .armu-v2-related .armu-v2-card__media { background:var(--armu-v2-white)!important; }
html[data-theme="dark"] body.armu-v2-product #primary #main > div.product[id^="product-"] > .armu-v2-related .armu-v2-card__media { background:var(--armu-v2-paper-2)!important; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .armu-v2-related .armu-v2-card__image { background:transparent!important; }
/* Native up-sells keep their products and use the same responsive card grid. */
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products { grid-column:1 / -1; width:100%; padding-block:56px 0; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products > h2 { font:400 clamp(32px,4vw,56px)/1.12 var(--armu-v2-display)!important; color:var(--armu-v2-ink)!important; border:0!important; margin:0 0 32px!important; padding:0!important; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; width:100%; gap:32px 24px; margin:0; padding:0; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products::before,
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products::after { content:none; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products > li.product { width:100%!important; margin:0!important; float:none!important; }
body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products > li.product img { width:100%!important; height:auto!important; aspect-ratio:1!important; object-fit:contain!important; object-position:center; background:var(--armu-v2-white)!important; }
html[data-theme="dark"] body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products > li.product img { background:var(--armu-v2-paper-2)!important; }
@media(max-width:700px) {
 body.armu-v2-product #primary #main > div.product[id^="product-"] > .up-sells.products ul.products { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px 16px; }
}
