/* Native Woo blocks remain the transaction. This shell carries GlamRoom's rhythm. */
.shop-page :is(.content-page, .checkout-page-main) {
 min-height: 0;
 padding-block: clamp(1.5rem, 4vw, 3.5rem) clamp(3rem, 6vw, 6rem);
}
.commerce-intro { margin-bottom: clamp(1.5rem, 3vw, 3rem); }
.commerce-steps { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; margin-bottom: 1.25rem; font-size: 0.875rem; }
/* Short labels such as "Shop" measured 35.2px wide against the project's 44px
   target baseline; give every step the same minimum on both axes. */
.commerce-steps > * { display: inline-flex; justify-content: center; align-items: center; min-width: 2.75rem; min-height: 2.75rem; color: var(--text-muted); }
.commerce-steps a { text-decoration-thickness: 1px; text-underline-offset: 0.25em; }
.commerce-steps [aria-current] { color: var(--graphite); border-bottom: 2px solid var(--gold-text); font-weight: 600; }
.shop-page .commerce-intro h1 { max-width: none; margin: 0; font-size: 2.5rem; font-weight: 300; line-height: 1.15; letter-spacing: -0.03em; text-wrap: balance; }
.commerce-intro p { max-width: 48ch; margin: 1rem 0 0; color: var(--text-muted); }
.commerce-contact-hint { font-size: 0.875rem; }
.commerce-collection { display: flex; align-items: center; gap: 0.875rem; margin-top: 1.5rem; font-size: 0.875rem; color: var(--text-muted); }
.commerce-collection .ui-icon { flex: none; width: 1.5rem; height: 1.5rem; color: var(--gold-text); }
.shop-page :is(.wc-block-cart, .wc-block-checkout) { font-size: 1rem; }
.shop-page .wc-block-components-sidebar-layout .wc-block-components-main { width: 61%; }
.shop-page .wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 34%; padding: clamp(1.25rem, 2.5vw, 2rem); background: var(--frost-bright); border-top: 2px solid var(--graphite); }
.shop-page .wc-block-cart__totals-title { font-size: 1.125rem; font-weight: 500; text-transform: none; }
.shop-page .wc-block-components-totals-footer-item { padding-block: 1.25rem; font-size: 1.125rem; }
.shop-page .wc-block-components-totals-item__value { font-variant-numeric: tabular-nums; white-space: nowrap; }
.shop-page .wc-block-cart__submit-container { padding-top: 0.75rem; }
.shop-page :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) { font-size: 1rem; min-height: 3.5rem; }
.shop-page table.wc-block-cart-items { border-top: 1px solid var(--line-strong); }
.shop-page table.wc-block-cart-items th { padding-block: 1rem; font-weight: 500; }
.shop-page table.wc-block-cart-items td { padding-block: 1.5rem; }
.shop-page table.wc-block-cart-items .wc-block-cart-item__image { width: 7rem; padding-right: 0; }
.shop-page .wc-block-cart-item__image img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.shop-page .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product .wc-block-components-product-name { display: inline-block; font-size: 1.125rem; font-weight: 500; line-height: 1.45; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.shop-page .wc-block-components-product-metadata { color: var(--text-muted); font-size: 0.875rem; line-height: 1.5; }
.shop-page .wc-block-cart-item__quantity { margin-top: 1rem; gap: 0.75rem; }
.shop-page .wc-block-components-quantity-selector { border-radius: 0; background: var(--frost-bright); }
.shop-page .wc-block-components-quantity-selector::after { border-radius: 0; border-color: var(--line-strong); }
.shop-page .wc-block-components-sale-badge { padding: 0.2rem 0.4rem; border: 1px solid var(--line); background: transparent; color: var(--text-muted); font-size: 0.875rem; }
.shop-page .wc-block-cart-item__total { font-size: 1.125rem; }
.shop-page .wc-block-components-checkout-step { padding-bottom: 2.25rem; }
.shop-page .wc-block-components-checkout-step__heading { margin-bottom: 0.5rem; }
.shop-page .wc-block-components-checkout-step__title { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 500; letter-spacing: -0.02em; }
.shop-page .wc-block-components-checkout-step__description { color: var(--text-muted); font-size: 0.875rem; }
.shop-page .wc-block-components-checkout-step__content { min-width: 0; }
.shop-page .wc-block-components-text-input input,
.shop-page .wc-block-components-combobox-control input { background: var(--frost-bright); border-color: var(--line-strong); min-height: 3.5rem; caret-color: var(--graphite); }
.shop-page .wc-block-components-text-input input:focus { outline: 2px solid var(--gold-text); outline-offset: 2px; box-shadow: none; }
.shop-page .wc-block-components-text-input input[aria-invalid="true"] { border-color: #9b2c2c; }
.shop-page .wc-block-components-button:not(:disabled):hover { background: var(--graphite-soft); }
.shop-page .wc-block-components-button:disabled { opacity: 0.55; cursor: default; }
.shop-page .wc-block-checkout__use-address-for-billing { display: none; }
/* Woo requires a country code to resolve its schema. The studio's DE default is
   technical context for collection; the buyer has no country/address question. */
.shop-page .wc-block-components-address-form__country { display: none; }
.shop-page .wc-block-components-address-form__address_2-hidden-input { margin: 0; }
.shop-page .wc-block-components-address-form :is(.wc-block-components-address-form__state, .wc-block-components-address-form__phone) { flex-basis: 100%; }
.shop-page .wc-blocks-components-select__select { padding-inline-end: 3rem; }
.shop-page .wc-block-components-address-form__address_2-toggle { display: inline-flex; align-items: center; margin-block: 0; padding-block: 0.25rem; text-underline-offset: 0.2em; }
.shop-page .wc-block-components-radio-control-accordion-option { border-radius: 0; }
.shop-page .wc-block-components-radio-control__option { min-height: 3.5rem; }
.shop-page .wc-block-components-radio-control__label { font-weight: 500; }
.shop-page .wc-block-components-radio-control-accordion-content { color: var(--text-muted); font-size: 0.9375rem; line-height: 1.6; }
.shop-page .wc-block-components-order-summary { border: 0; border-radius: 0; }
.shop-page .wc-block-components-order-summary-item { padding-block: 1.25rem; }
.shop-page .wc-block-components-order-summary-item__image img { object-fit: contain; }
.shop-page .wc-block-components-order-summary-item__description { min-width: 0; }
.shop-page .wc-block-components-order-summary-item__description h3 { font-weight: 500; line-height: 1.4; }
.shop-page .wc-block-components-checkout-order-summary__title { font-size: 1.125rem; font-weight: 500; }
.shop-page .wc-block-components-checkout-order-summary__title-price { font-variant-numeric: tabular-nums; }
.shop-page .wc-block-checkout__terms { font-size: 0.875rem; color: var(--text-muted); line-height: 1.6; }
.shop-page .wc-block-components-notice-banner { border-radius: 0; font-size: 1rem; }
.shop-page .wc-block-components-notice-banner:focus { outline: 2px solid var(--gold-text); outline-offset: 3px; }
.shop-page :is(.commerce-steps a, .commerce-empty a, .wc-block-components-address-form__address_2-toggle):focus-visible { outline: 2px solid var(--gold-text); outline-offset: 3px; }
.commerce-empty { display: grid; grid-template-columns: minmax(6rem, 0.35fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); padding-block: clamp(2rem, 5vw, 5rem); border-block: 1px solid var(--line); }
.commerce-empty-mark { display: grid; place-items: center; aspect-ratio: 1; background: var(--frost-bright); }
.commerce-empty-mark .ui-icon { width: 30%; height: 30%; color: var(--gold-text); }
.commerce-empty h2 { max-width: 24ch; margin: 0; font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 450; line-height: 1.15; letter-spacing: -0.03em; text-wrap: balance; }
.commerce-empty p { max-width: 45ch; margin: 1rem 0 1.5rem; color: var(--text-muted); }
@media (max-width: 1023px) {
 .shop-page .wc-block-components-sidebar-layout :is(.wc-block-components-main, .wc-block-components-sidebar) { width: 100%; }
 .shop-page .wc-block-components-sidebar-layout .wc-block-components-sidebar { margin-top: 1.5rem; }
 .shop-page .wc-block-checkout .wc-block-components-sidebar { margin-top: 0; margin-bottom: 1.75rem; }
}
@media (max-width: 767px) {
 .shop-page .commerce-intro h1 { font-size: 2rem; }
 .commerce-steps { column-gap: 1rem; margin-bottom: 1rem; }
 .shop-page .wc-block-components-checkout-step { padding-bottom: 1.75rem; }
 .shop-page .wc-block-components-sidebar-layout .wc-block-components-sidebar { padding: 1rem; }
 .commerce-empty { grid-template-columns: 1fr; gap: 1.5rem; }
 .commerce-empty-mark { width: 5rem; }
 .commerce-empty .button { width: 100%; }
}
/* Woo responds to its container, which can be compact at desktop zoom too. */
.shop-page .wc-block-cart:is(.is-small, .is-mobile, .is-medium) table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 4.5rem minmax(0, 1fr); }
.shop-page .wc-block-cart:is(.is-small, .is-mobile, .is-medium) table.wc-block-cart-items .wc-block-cart-item__image { width: 100%; }

/* A static action preserves the total above it at short heights and 200% zoom. */
.shop-page .wc-block-cart .wc-block-cart__submit-container--sticky { display: block; position: fixed; inset: auto 0 0; width: 100%; padding: 0.75rem max(1.25rem, env(safe-area-inset-left)) max(0.75rem, env(safe-area-inset-bottom)); border-top: 1px solid var(--line-strong); background: var(--frost-bright); box-shadow: none; z-index: 100; }
.shop-page .wc-block-cart .wc-block-cart__submit-container--sticky .wc-block-cart__submit-button { max-width: 30rem; margin-inline: auto; }
.shop-page .wc-block-cart .wc-block-cart__submit-container--sticky::before { content: none; }
.shop-page .wc-block-cart-item__remove-link:focus { outline: 2px solid var(--gold-text); outline-offset: 3px; }
.shop-page .wc-block-components-order-summary-item__description .wc-block-components-product-name { font-size: 1rem; }

/* Follow Woo's own 700px container transition, including zoom and tablet widths.
   Forcing its desktop structure into one column puts the summary after submit. */
@container (min-width: 700px) {
 .shop-page .wc-block-checkout .wc-block-components-main { width: 59%; }
 .shop-page .wc-block-checkout .wc-block-components-sidebar { width: 37%; margin-top: 0; }
}
@container (max-width: 699px) {
 .shop-page .wc-block-checkout :is(.wc-block-components-main, .wc-block-components-sidebar) { width: 100%; }
}
/* Keep a complete product name above its line total, even in a narrow summary. */
.shop-page .wc-block-components-order-summary-item { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 0.6rem 1rem; }
.shop-page .wc-block-components-order-summary-item__image { grid-column: 1; grid-row: 1 / span 2; width: 3rem; margin: 0; padding: 0; }
.shop-page .wc-block-components-order-summary-item__description { grid-column: 2; grid-row: 1; width: auto; padding: 0; }
.shop-page .wc-block-components-order-summary-item__total-price { grid-column: 2; grid-row: 2; width: auto; padding: 0; text-align: left; align-items: flex-start; }

/* Receipt keeps the same quiet, narrow collection flow, including email verification. */
.commerce-confirmation { max-width: 52rem; margin-inline: auto; }
.commerce-confirmation h1 { margin: 0 0 1.25rem; font-size: 2.5rem; font-weight: 300; line-height: 1.15; letter-spacing: -0.03em; }
.commerce-confirmation h2 { margin: 2.5rem 0 1rem; font-size: 1.25rem; font-weight: 500; }
.commerce-confirmation p { max-width: 60ch; font-size: 1rem; line-height: 1.65; }
.commerce-confirmation :is(.wc-block-order-confirmation-summary, .wp-block-woocommerce-order-confirmation-summary) { margin-block: 2rem; padding-block: 1.5rem; border-block: 1px solid var(--line); }
.commerce-confirmation table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.commerce-confirmation :is(th, td) { padding: 1rem 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.commerce-confirmation :is(th, td):last-child { padding-left: 1rem; }
.commerce-confirmation :is(input, button) { min-height: 3rem; border-radius: 0; font: inherit; }
.commerce-confirmation input { width: 100%; max-width: 28rem; padding: 0.75rem 1rem; border: 1px solid var(--line-strong); background: var(--frost-bright); }
.commerce-confirmation button { padding: 0.75rem 1.25rem; background: var(--graphite); color: var(--frost-bright); border: 0; cursor: pointer; }
.commerce-confirmation :is(input,button):focus-visible { outline: 2px solid var(--gold-text); outline-offset: 3px; }
@media (max-width: 767px) { .commerce-confirmation h1 { font-size: 2rem; } }

/* Checkout keeps the full collection instructions, with shorter gaps before input. */
.shop-page .checkout-page-main { padding-block-start: clamp(1rem, 2vw, 2rem); }
.checkout-page-main .commerce-steps { margin-bottom: 0.5rem; }
.checkout-page-main .commerce-intro { margin-bottom: 1.25rem; }
.checkout-page-main .commerce-intro p { margin-top: 0.75rem; }
@media (max-width: 767px) {
 .shop-page .checkout-page-main .wc-block-checkout .wc-block-components-sidebar { padding-block: 0.5rem; margin-bottom: 1.25rem; }
}
