/* ==========================================================================
   SHOP — single product page, cart, checkout and account.
   Loaded after the page baseline and WooCommerce's own stylesheets, in the approved gold / ivory / espresso theme.
   ========================================================================== */

.glow-shop-main { background: var(--color-secondary); }

/* ---------- shared bits ---------- */
.shop-crumbs { background: var(--color-bg-white); border-bottom: 1px solid var(--color-border); padding: 16px 0; }
.shop-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; }
.shop-crumbs li + li::before { content: "/"; margin-right: 10px; color: var(--color-accent); }
.shop-crumbs a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--color-border); transition: color .25s; }
.shop-crumbs a:hover { color: var(--color-accent); }
.shop-crumbs [aria-current] { color: var(--color-text-medium); }

.shop-hero { background: var(--color-primary); color: var(--color-text-inverse); padding: clamp(36px, 5vw, 64px) 0; border-bottom: 1px solid rgba(207,134,112,.35); }
.shop-hero .breadcrumb { margin-bottom: 18px; }
.shop-hero .breadcrumb ol { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; }
.shop-hero .breadcrumb li + li::before { content: "/"; margin-right: 10px; color: var(--color-accent); }
.shop-hero .breadcrumb a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(207,134,112,.5); }
.shop-hero .breadcrumb a:hover { color: var(--color-accent); }
.shop-hero .eyebrow { display: block; margin-bottom: 14px; color: var(--color-accent); }
.shop-hero h1 { font-size: var(--text-h1); line-height: 1.12; }

/* ---------- product cards (related products) ---------- */
.pgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.pgrid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pcard { display: flex; flex-direction: column; background: #34191f; color: #fbe6df; border: 1px solid rgba(207,134,112,.45); transition: transform .5s cubic-bezier(.22,.61,.36,1), box-shadow .5s, border-color .4s; }
.pcard:hover, .pcard:focus-within { transform: translateY(-6px); border-color: var(--color-accent); box-shadow: 0 26px 46px -18px rgba(0,0,0,.75); }
.pcard__media { position: relative; display: block; flex: none; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.pcard__media img { width: 100%; height: 100%; object-fit: contain; padding: 14px; transition: transform 1.1s cubic-bezier(.22,.61,.36,1); }
.pcard:hover .pcard__media img { transform: scale(1.05); }
.pcard--out .pcard__media img { opacity: .5; filter: grayscale(.6); }
.pcard__badge { position: absolute; top: 14px; left: 14px; z-index: 3; padding: 5px 12px; font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; background: var(--color-accent); color: #34191f; border-radius: 40px; }
.pcard__badge--out { background: #34191f; color: #fbe6df; }
.pcard__body { display: flex; flex-direction: column; flex: 1; padding: clamp(16px, 1.6vw, 22px); text-align: left; }
.pcard__cat { display: block; font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: var(--color-accent); }
.pcard__name { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.25; margin: 6px 0 14px; color: #fbe6df; }
.pcard__name a:hover { color: var(--color-accent); text-decoration: underline; text-underline-offset: 4px; }
.pcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(251,230,223,.22); }
.pcard__price { font-size: 20px; color: #fbe6df; }
.pcard .btn { display: inline-flex; align-items: center; justify-content: center; flex: none; min-height: 40px; padding: 0 16px; border: 1px solid var(--color-accent); border-radius: 40px; background: var(--color-accent); color: #34191f; font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.pcard .btn:hover { background: #fbe6df; border-color: #fbe6df; color: #34191f; }
.pcard .btn:disabled { background: transparent; border-color: rgba(251,230,223,.4); color: rgba(251,230,223,.65); }
.pcard :focus-visible { outline-color: var(--color-accent); }

/* ---------- single product ---------- */
.psingle { padding-block: clamp(36px, 5vw, 72px); }
.psingle__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.psingle__gallery { position: sticky; top: calc(var(--header-height, 115px) + 24px); }
.psingle__main { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; border: 1px solid var(--color-border); }
.psingle__main img { width: 100%; height: 100%; object-fit: contain; padding: clamp(16px, 3vw, 40px); }
.psingle__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 12px; }
.psingle__thumb { aspect-ratio: 1 / 1; padding: 4px; background: #fff; border: 1px solid var(--color-border); cursor: pointer; transition: border-color .25s; }
.psingle__thumb img { width: 100%; height: 100%; object-fit: contain; }
.psingle__thumb:hover, .psingle__thumb[aria-pressed="true"] { border-color: var(--color-accent); }
.psingle__summary .eyebrow { display: block; margin-bottom: 14px; color: var(--color-primary); }
.psingle__summary h1 { font-size: var(--text-h2); line-height: 1.15; text-wrap: balance; }
.psingle__price { margin-top: 16px; font-family: var(--font-heading); font-size: 32px; line-height: 1.2; color: var(--color-primary); }
.psingle__price del { margin-right: 10px; font-size: 22px; opacity: .55; }
.psingle__price ins { text-decoration: none; }
.psingle__short { margin-top: 18px; color: var(--color-text-medium); line-height: 1.8; }
.psingle__short p + p { margin-top: 12px; }
.psingle__buy { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--color-border); }
.psingle__buy form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0; }
.psingle__buy form.variations_form { display: block; }
.psingle__buy table.variations { width: 100%; margin: 0 0 18px; border: 0; border-collapse: collapse; }
.psingle__buy table.variations tr { display: block; margin-bottom: 14px; }
.psingle__buy table.variations th, .psingle__buy table.variations td { display: block; padding: 0; border: 0; text-align: left; background: none; }
.psingle__buy table.variations th label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.psingle__buy table.variations select { width: 100%; min-height: 50px; padding: 10px 14px; font: inherit; background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }
.psingle__buy table.variations select:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.psingle__buy .reset_variations { display: inline-block; margin-top: 8px; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.psingle__buy .single_variation_wrap { width: 100%; }
.psingle__buy .woocommerce-variation-price .price { display: block; margin-bottom: 14px; font-family: var(--font-heading); font-size: 24px; }
.psingle__buy .woocommerce-variation-availability p { margin-bottom: 12px; font-size: 14px; color: var(--color-text-medium); }
.psingle__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.psingle__buy .quantity .qty { width: 84px; min-height: 52px; text-align: center; font: inherit; background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }
.psingle__buy .single_add_to_cart_button { flex: 1 1 240px; min-height: 52px; }
.psingle__buy p.stock { width: 100%; margin: 0 0 6px; padding: 12px 16px; font-size: 14px; font-weight: 500; letter-spacing: .04em; background: var(--color-bg-white); border-left: 3px solid var(--color-accent); }
.psingle__buy p.stock.out-of-stock { border-left-color: var(--color-error); color: var(--color-text-dark); }
.psingle__perks { display: grid; gap: 12px; margin-top: 28px; padding: 22px 0 0; border-top: 1px solid var(--color-border); list-style: none; }
.psingle__perks li { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.psingle__perks .icon { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--color-primary); color: var(--color-accent); }
.psingle__meta { display: grid; gap: 8px; margin: 24px 0 0; font-size: 14px; }
.psingle__meta div { display: flex; gap: 12px; }
.psingle__meta dt { min-width: 84px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--color-text-medium); }
.psingle__meta dd { margin: 0; }
.psingle__meta a { text-decoration: underline; text-underline-offset: 3px; }
.psingle-desc { background: var(--proj-surface-warm, #fae8e1); }
.psingle-desc__inner { max-width: 820px; }
.psingle-desc__inner .eyebrow { display: block; margin-bottom: 14px; }
.psingle-desc__inner h2 { font-size: var(--text-h2); margin-bottom: 22px; }
.psingle-desc__body p { margin-top: 14px; font-size: 17px; line-height: 1.8; }
.glow-shop-main .section-head { max-width: 760px; margin: 0 auto clamp(30px, 4vw, 48px); text-align: center; }
.glow-shop-main .section-head .eyebrow { display: block; margin-bottom: 14px; }
.glow-shop-main .section-head h2 { font-size: var(--text-h2); }

/* ---------- cart ---------- */
.glow-shop { padding-block: clamp(36px, 5vw, 72px); }
.glow-shop .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .glow-shop .woocommerce { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(24px, 3vw, 44px); align-items: start; }
.woocommerce-cart .glow-shop .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-cart .glow-shop .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .glow-shop .cart-collaterals { grid-column: 2; width: 100%; }
.woocommerce-cart .glow-shop .cart-collaterals .cart_totals, .woocommerce-cart .glow-shop .cart-collaterals .cross-sells { float: none; width: 100%; }
.glow-shop table.shop_table { width: 100%; margin: 0; border: 1px solid var(--color-border); border-collapse: collapse; background: var(--color-bg-white); }
.glow-shop table.shop_table th { padding: 16px; background: var(--proj-surface-warm, #fae8e1); font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; text-align: left; }
.glow-shop table.shop_table td { padding: 18px 16px; border-top: 1px solid var(--color-border); vertical-align: middle; text-align: left; }
.glow-shop table.cart img { width: 88px; height: auto; background: #fff; }
.glow-shop table.cart .product-name a { font-family: var(--font-heading); font-size: 19px; line-height: 1.25; }
.glow-shop table.cart .product-name a:hover { color: var(--color-accent); text-decoration: underline; text-underline-offset: 4px; }
.glow-shop table.cart .product-name dl.variation { margin: 6px 0 0; font-size: 13px; color: var(--color-text-medium); }
.glow-shop table.cart .product-remove { width: 48px; }
.glow-shop table.cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: 20px; line-height: 1; color: var(--color-primary) !important; background: transparent; border: 1px solid var(--color-border); }
.glow-shop table.cart a.remove:hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary) !important; }
.glow-shop table.cart .quantity .qty { width: 76px; min-height: 46px; text-align: center; font: inherit; background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }
.glow-shop table.cart td.actions { padding: 18px 16px; background: var(--proj-surface-warm, #fae8e1); }
.glow-shop table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; float: left; }
.glow-shop table.cart td.actions .coupon label { display: none; }
.glow-shop table.cart td.actions .coupon .input-text { width: 200px; min-height: 46px; padding: 10px 14px; font: inherit; background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }
.glow-shop table.cart td.actions > .button { float: right; }
.glow-shop .cart_totals h2, .glow-shop .cross-sells h2 { font-size: 26px; margin-bottom: 16px; }
.glow-shop .cart_totals { padding: clamp(22px, 2.4vw, 32px); background: #34191f; color: #fbe6df; border: 1px solid rgba(207,134,112,.45); }
.glow-shop .cart_totals h2 { color: #fff; }
.glow-shop .cart_totals table.shop_table { background: transparent; border: 0; }
.glow-shop .cart_totals table.shop_table th, .glow-shop .cart_totals table.shop_table td { padding: 14px 0; background: transparent; border-top: 1px solid rgba(251,230,223,.2); color: #fbe6df; font-size: 15px; letter-spacing: 0; text-transform: none; }
.glow-shop .cart_totals table.shop_table th { font-weight: 500; width: 36%; }
.glow-shop .cart_totals .order-total td, .glow-shop .cart_totals .order-total th { font-size: 18px; color: #fff; }
.glow-shop .cart_totals a { text-decoration: underline; text-underline-offset: 3px; }
.glow-shop .cart_totals .shipping-calculator-button { color: var(--color-accent); }
.glow-shop .wc-proceed-to-checkout { padding: 18px 0 0; }
.glow-shop .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 54px; margin: 0; padding: 12px 24px; background: var(--color-accent); border: 1px solid var(--color-accent); color: #34191f; font-size: 12px; font-weight: 600; letter-spacing: .26em; }
.glow-shop .wc-proceed-to-checkout a.checkout-button:hover { background: #fbe6df; border-color: #fbe6df; color: #34191f; }
.glow-shop .cart-empty { margin: 0 0 24px; padding: 32px 28px; text-align: center; font-family: var(--font-heading); font-size: 26px; background: var(--color-bg-white); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); }
.glow-shop .return-to-shop { text-align: center; }

/* ---------- checkout ---------- */
.woocommerce-checkout .glow-shop form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: clamp(28px, 4vw, 60px); align-items: start; }
.woocommerce-checkout .glow-shop #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.woocommerce-checkout .glow-shop #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 16px; font-size: 26px; }
.woocommerce-checkout .glow-shop #order_review { grid-column: 2; grid-row: 2; }
.woocommerce-checkout .glow-shop .col2-set { display: block; width: 100%; }
.woocommerce-checkout .glow-shop .col2-set .col-1, .woocommerce-checkout .glow-shop .col2-set .col-2 { float: none; width: 100%; max-width: none; }
.glow-shop .woocommerce-billing-fields h3, .glow-shop .woocommerce-shipping-fields h3, .glow-shop .woocommerce-additional-fields h3 { margin: 0 0 20px; font-size: 26px; }
.glow-shop .woocommerce-billing-fields__field-wrapper, .glow-shop .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.glow-shop form .form-row { float: none; width: auto; margin: 0 0 18px; padding: 0; }
.glow-shop form .form-row-wide, .glow-shop form .form-row.notes, .glow-shop #billing_address_1_field, .glow-shop #billing_address_2_field { grid-column: 1 / -1; }
.glow-shop form .form-row label { display: block; margin-bottom: 6px; font-size: 13px; letter-spacing: .06em; }
.glow-shop form .form-row .required { color: var(--color-error); text-decoration: none; }
.glow-shop form .form-row input.input-text, .glow-shop form .form-row textarea, .glow-shop form .form-row select { width: 100%; min-height: 48px; padding: 10px 14px; font: inherit; color: var(--color-text-dark); background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }
.glow-shop form .form-row input.input-text:focus, .glow-shop form .form-row textarea:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; border-color: var(--color-accent); }
.glow-shop form .form-row.woocommerce-invalid input.input-text { border-color: var(--color-error); }
.glow-shop .select2-container .select2-selection--single { height: 48px; border: 1px solid var(--color-border); border-radius: 0; }
.glow-shop .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 14px; color: var(--color-text-dark); }
.glow-shop .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce-checkout .glow-shop #order_review { padding: clamp(22px, 2.4vw, 32px); background: #34191f; color: #fbe6df; border: 1px solid rgba(207,134,112,.45); }
.woocommerce-checkout .glow-shop #order_review table.shop_table { background: transparent; border: 0; }
.woocommerce-checkout .glow-shop #order_review table.shop_table th, .woocommerce-checkout .glow-shop #order_review table.shop_table td { padding: 14px 0; background: transparent; border-top: 1px solid rgba(251,230,223,.2); color: #fbe6df; font-size: 15px; letter-spacing: 0; text-transform: none; }
.woocommerce-checkout .glow-shop #order_review thead th { color: var(--color-accent); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; border-top: 0; }
.woocommerce-checkout .glow-shop #order_review .product-name { font-family: var(--font-heading); font-size: 17px; }
.woocommerce-checkout .glow-shop #order_review .order-total th, .woocommerce-checkout .glow-shop #order_review .order-total td { font-size: 18px; color: #fff; }
.woocommerce-checkout .glow-shop #payment { margin-top: 18px; background: transparent; border: 0; }
.woocommerce-checkout .glow-shop #payment ul.payment_methods { padding: 0 0 14px; border-bottom: 1px solid rgba(251,230,223,.2); list-style: none; }
.woocommerce-checkout .glow-shop #payment ul.payment_methods li { margin: 0 0 10px; }
.woocommerce-checkout .glow-shop #payment ul.payment_methods li label { color: #fff; font-weight: 500; }
.woocommerce-checkout .glow-shop #payment div.payment_box { margin: 10px 0 0; padding: 14px 16px; background: rgba(251,230,223,.08); color: #f4d6cc; border-radius: 0; font-size: 14px; }
.woocommerce-checkout .glow-shop #payment div.payment_box::before { display: none; }
.woocommerce-checkout .glow-shop #payment .form-row { padding: 16px 0 0; margin: 0; }
.woocommerce-checkout .glow-shop .woocommerce-privacy-policy-text p { font-size: 13px; color: #e3beb3; line-height: 1.6; }
.woocommerce-checkout .glow-shop .woocommerce-privacy-policy-text a { color: var(--color-accent); text-decoration: underline; }
.woocommerce-checkout .glow-shop #place_order { display: flex; width: 100%; min-height: 54px; background: var(--color-accent); border: 1px solid var(--color-accent); color: #34191f; font-size: 12px; font-weight: 600; letter-spacing: .26em; }
.woocommerce-checkout .glow-shop #place_order:hover { background: #fbe6df; border-color: #fbe6df; }
.glow-shop .woocommerce-info, .glow-shop .woocommerce-message, .glow-shop .woocommerce-error { margin-bottom: 24px; }
.glow-shop .woocommerce-form-coupon-toggle { margin-bottom: 8px; }
.glow-shop form.checkout_coupon, .glow-shop form.woocommerce-form-login { margin: 0 0 24px; padding: 22px 24px; background: var(--color-bg-white); border: 1px solid var(--color-border); border-radius: 0; }

/* ---------- order received + account ---------- */
.glow-shop .woocommerce-order ul.order_details { display: flex; flex-wrap: wrap; gap: 16px 36px; margin: 0 0 28px; padding: 22px 26px; list-style: none; background: var(--color-bg-white); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); }
.glow-shop .woocommerce-order ul.order_details li { margin: 0; padding: 0; border: 0; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--color-text-medium); }
.glow-shop .woocommerce-order ul.order_details li strong { display: block; margin-top: 4px; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--color-text-dark); }
.glow-shop .woocommerce-order h2, .glow-shop .woocommerce-customer-details h2, .glow-shop .woocommerce-order-details__title { font-size: 26px; margin: 28px 0 16px; }
.woocommerce-account .glow-shop .woocommerce { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.woocommerce-account .glow-shop .woocommerce-MyAccount-navigation, .woocommerce-account .glow-shop .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .glow-shop .woocommerce-MyAccount-navigation ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.woocommerce-account .glow-shop .woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; background: var(--color-bg-white); border: 1px solid var(--color-border); }
.woocommerce-account .glow-shop .woocommerce-MyAccount-navigation .is-active a, .woocommerce-account .glow-shop .woocommerce-MyAccount-navigation a:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.woocommerce-account .glow-shop .woocommerce > .woocommerce-notices-wrapper, .woocommerce-account .glow-shop .u-columns { grid-column: 1 / -1; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pgrid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-cart .glow-shop .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .glow-shop .woocommerce-cart-form, .woocommerce-cart .glow-shop .cart-collaterals { grid-column: 1; }
}
@media (max-width: 860px) {
	.psingle__grid { grid-template-columns: 1fr; }
	.psingle__gallery { position: static; }
	.woocommerce-checkout .glow-shop form.checkout { display: block; }
	.woocommerce-checkout .glow-shop #order_review_heading { margin-top: 32px; }
	.woocommerce-account .glow-shop .woocommerce { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.pgrid, .pgrid--four { grid-template-columns: 1fr; }
	.glow-shop .woocommerce-billing-fields__field-wrapper, .glow-shop .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	.glow-shop table.cart td.actions .coupon, .glow-shop table.cart td.actions > .button { float: none; width: 100%; }
	.glow-shop table.cart td.actions .coupon .input-text { width: 100%; }
	.glow-shop table.cart td.actions > .button { margin-top: 12px; }
	.psingle__thumbs { grid-template-columns: repeat(4, 1fr); }
}
