/* Maison Levane v5.2 (LOCAL PREVIEW ONLY): fixes from preview-v5.1/visual-qa/VISUAL-QA.md */

/* P2-6: Grand card uses the whole-bottle composite, no zoom crop */
.ml51-card--grand .ml4-card__media img{transform:none;object-position:50% 50%}

/* P1-3: Grand empty-select swatch dot only shows once a scent is set */
.ml4-grand__select .ml4-swatch:not(.is-set){visibility:hidden}

/* P2-5: true 88x110 cart thumbnail at every width (Woo block mobile grid otherwise squeezes it) */
.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row{grid-template-columns:88px minmax(0,1fr) auto!important}
.wc-block-cart table.wc-block-cart-items td.wc-block-cart-item__image{width:88px!important;min-width:88px;max-width:88px;padding-right:0}
.wc-block-cart table.wc-block-cart-items td.wc-block-cart-item__image a,.wc-block-cart table.wc-block-cart-items td.wc-block-cart-item__image img{display:block;width:88px!important;max-width:88px!important;height:110px!important;aspect-ratio:auto}

/* P2-7: PDP notes + details aligned to the gallery / buy-box columns */
.ml52-pdp-more .ml4-wrap,.ml52-pdp-more .ml4-wrap--narrow{max-width:none;padding-inline:0;margin:0}
.ml52-pdp-more>div>section{padding-block:var(--s5)}
@media (min-width:1024px){
	.ml52-pdp-more{display:grid;grid-template-columns:7fr 5fr;gap:var(--s6);align-items:start;border-top:1px solid var(--line)}
	.ml52-pdp-more .ml51-notes{border-top:0}
	.ml52-pdp-more>div>section{border-top:0}
	.ml52-pdp-more .ml51-notes--all .ml4-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* P2-9: cross-sells on mobile show exactly 2 cards (never 3 with an orphan) */
@media (max-width:767px){.ml4-related .ml4-grid--3>:nth-child(n+3){display:none}}

/* P2-10: no wraps at 360 */
@media (max-width:399px){
	.ml51-discover{letter-spacing:.1em;font-size:.625rem;white-space:nowrap}
	.ml4-picker__opt{font-size:.75rem;white-space:nowrap;letter-spacing:0}
	.ml4-info dd{overflow-wrap:normal}
	.ml4-info dd a{font-size:.875rem;white-space:nowrap}
}
@media (max-width:399px){
	.ml5-hero .ml4-btn,.ml5-hero .wp-element-button{white-space:nowrap;padding-inline:.9rem;letter-spacing:.1em}
	.ml4-pdp .single_add_to_cart_button{white-space:nowrap;letter-spacing:.08em;padding-inline:.6rem}
}

/* v5.3: cart block height reserve (CLS) */
@media (min-width:1024px){
 .wp-block-woocommerce-cart{min-height:var(--ml53-cart-h,400px)}
 .wp-block-woocommerce-cart.is-loading,.wp-block-woocommerce-cart .wc-block-components-sidebar-layout{min-height:var(--ml53-cart-h,400px)}
}
/* v5.3: checkout labels above fields */
.wc-block-checkout .wc-block-components-text-input{margin-top:14px}
.wc-block-checkout .wc-block-components-text-input label{position:static!important;transform:none!important;display:block;margin:0 0 6px;font-size:13px;line-height:1.3;letter-spacing:.02em;max-width:none;white-space:normal;left:auto;top:auto}
.wc-block-checkout .wc-block-components-text-input input[type],.wc-block-checkout .wc-block-components-text-input.is-active input[type]{padding:12px 14px!important;min-height:48px;height:auto}
.wc-block-checkout .wc-block-components-text-input input::placeholder{opacity:0}
/* v5.3: the free-shipping bar starts [hidden] and is filled by JS, pushing the cart down ~82px; reserve its box instead */
.ml4-ship[hidden]{display:block;visibility:hidden}
.ml4-ship__msg{min-height:1.5em}
/* v5.3: label order (label is after the input in Woo markup) */
.wc-block-checkout .wc-block-components-text-input{display:flex;flex-direction:column}
.wc-block-checkout .wc-block-components-text-input label{order:-1}
.wc-block-checkout .wc-block-components-text-input .wc-block-components-validation-error{order:3}
