/* ============================================================
   everythingreps — WooCommerce styling
   Shop archive · product cards · single product · cart · checkout · account
   Built on WooCommerce default markup (no block-cart assumptions).
   ============================================================ */

.er-woo { padding: clamp(14px, 2vw, 26px) 0 clamp(48px, 7vw, 88px); }

/* WooCommerce pages: drop GeneratePress's white content box + padding so the
   site's light --background shows through (the prototype has no white card). */
.woocommerce-page .site-content,
.woocommerce-page #primary,
.woocommerce-page .content-area,
.woocommerce-page .inside-article,
.woocommerce-page .entry-content,
.woocommerce-page article.post,
.woocommerce-page article.product {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.woocommerce-page .inside-article { padding-left: 0 !important; padding-right: 0 !important; }

/* page intro band (archive title / account / cart headers) */
.woocommerce-products-header { margin-bottom: clamp(24px, 3vw, 40px); }
.woocommerce-products-header__title,
.entry-title { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 3.4vw, 2.7rem); letter-spacing: -0.045em; margin: 0 0 6px; }
.term-description, .woocommerce-result-count { color: hsl(var(--muted-foreground)); }

/* toolbar */
.woocommerce-ordering select,
.woocommerce-ordering .orderby { height: 44px; border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--surface)); padding: 0 14px; font-family: var(--font-sans); color: hsl(var(--ink)); }

/* ---- product grid ---- */
/* archive cells that hold the homepage .prod card: strip the default li chrome */
ul.products li.product.er-card-cell { background: none !important; border: none !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; display: flex !important; overflow: visible; }
ul.products li.product.er-card-cell:hover { transform: none; box-shadow: none; }
ul.products li.product.er-card-cell > .prod { width: 100%; flex: 1; }
ul.products li.product.er-card-cell > .prod .prod__body { flex: 1 1 auto; display: flex; flex-direction: column; }
ul.products li.product.er-card-cell > .prod .prod__foot { margin-top: auto; }
ul.products li.product.er-card-cell::before,
ul.products li.product.er-card-cell::after { content: none !important; }
ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 22px; margin: 0; padding: 0; list-style: none; }
ul.products::before, ul.products::after { content: none !important; }
ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.6); border-radius: var(--radius-lg); padding: 14px; box-shadow: var(--shadow-xs); transition: transform var(--duration-base) var(--ease-out-quart), box-shadow var(--duration-base); position: relative; display: flex; flex-direction: column; }
ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
ul.products li.product a img { border-radius: var(--radius-md); background: hsl(var(--surface-muted)); margin-bottom: 12px; aspect-ratio: 1; object-fit: cover; }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-display); font-weight: 600; font-size: 1rem; letter-spacing: -0.02em; padding: 0 2px; margin: 0 0 4px; color: hsl(var(--ink)); line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em; }--ink)); }
ul.products li.product .price { padding: 0 2px; margin-bottom: 12px; font-weight: 700; font-size: 1.02rem; color: hsl(var(--ink)); font-variant-numeric: tabular-nums; }
ul.products li.product .price del { color: hsl(var(--muted-foreground)); font-weight: 400; margin-right: 6px; }
ul.products li.product .star-rating { margin: 6px 2px; font-size: 0.8em; color: hsl(var(--ink)); }
ul.products li.product .button,
ul.products li.product .added_to_cart { display: inline-flex; align-items: center; justify-content: center; height: 44px; margin-top: auto; width: 100%; border-radius: var(--radius-md); background: hsl(var(--ink)); color: #fff; font-weight: 600; font-size: 0.9rem; border: none; transition: background var(--duration-base); }
ul.products li.product .button:hover { background: hsl(var(--ink) / 0.88); color: #fff; }

/* badges */
.er-badge { position: absolute; top: 20px; left: 20px; z-index: 2; display: inline-flex; align-items: center; height: 24px; padding: 0 11px; border-radius: var(--radius-full); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.er-badge--sale { background: hsl(var(--ink)); color: #fff; }
.onsale { position: absolute; top: 20px; left: 20px; z-index: 2; background: hsl(var(--ink)); color: #fff; border-radius: var(--radius-full); min-height: 0; min-width: 0; padding: 4px 11px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin: 0; line-height: 1.4; }

/* breadcrumb (matches the prototype .crumb) */
.single-product .woocommerce-breadcrumb { font-size: 0.78rem; color: hsl(var(--muted-foreground)); margin: 0 0 22px; }
.single-product .woocommerce-breadcrumb a { color: hsl(var(--muted-foreground)); text-decoration: none; }
.single-product .woocommerce-breadcrumb a:hover { color: hsl(var(--ink)); }

/* ---- single product (PDP) — matches the everythingreps prototype ---- */
.single-product div.product { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(28px, 4vw, 56px); align-items: start; }

/* custom gallery: fixed-ratio main image + thumbnail grid (mirrors prototype) */
.single-product div.product .pdp-gallery { display: flex; flex-direction: column; gap: 14px; }
.single-product div.product .pdp-main { position: relative; aspect-ratio: 1 / 1; border-radius: var(--radius-3xl); overflow: hidden; background: hsl(var(--surface-muted)); }
.single-product div.product .pdp-main__img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; }
.single-product div.product .pdp-zoom { position: absolute; right: 14px; bottom: 14px; z-index: 3; width: 42px; height: 42px; border-radius: var(--radius-full); border: none; background: hsl(var(--cta-dark) / 0.78); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background var(--duration-fast), transform var(--duration-fast); }
.single-product div.product .pdp-zoom:hover { background: hsl(var(--cta-dark)); transform: scale(1.06); }
.single-product div.product .pdp-zoom svg { width: 18px !important; height: 18px !important; max-width: none !important; flex: none !important; stroke: #fff !important; }
/* full-screen lightbox */
.er-zoom { position: fixed; inset: 0; z-index: 240; background: hsl(var(--cta-dark) / 0.92); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: clamp(16px, 4vw, 56px); opacity: 0; pointer-events: none; transition: opacity var(--duration-base) var(--ease-out-quart); }
.er-zoom.is-open { opacity: 1; pointer-events: auto; }
.er-zoom__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-md); box-shadow: var(--shadow-lg); }
.er-zoom__close { position: absolute; top: clamp(12px, 2vw, 22px); right: clamp(12px, 2vw, 22px); width: 48px; height: 48px; border-radius: var(--radius-full); border: none; background: hsl(0 0% 100% / 0.14); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--duration-fast); z-index: 2; }
.er-zoom__close:hover { background: hsl(0 0% 100% / 0.26); }
.er-zoom__close svg { width: 24px !important; height: 24px !important; max-width: none !important; stroke: #fff !important; }
.er-zoom__arw { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: var(--radius-full); border: none; background: hsl(0 0% 100% / 0.14); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--duration-fast); z-index: 2; }
.er-zoom__arw:hover { background: hsl(0 0% 100% / 0.26); }
.er-zoom__arw svg { width: 24px !important; height: 24px !important; max-width: none !important; stroke: #fff !important; }
.er-zoom__arw--prev { left: clamp(12px, 3vw, 36px); }
.er-zoom__arw--next { right: clamp(12px, 3vw, 36px); }
.er-zoom__arw[hidden] { display: none; }
.single-product div.product .pdp-main__tag { position: absolute; top: 16px; left: 16px; z-index: 2; }
.single-product div.product .pdp-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.single-product div.product .pdp-thumb { aspect-ratio: 1; border-radius: var(--radius-md); overflow: hidden; border: 2px solid transparent; cursor: pointer; background: hsl(var(--surface-muted)); padding: 0; transition: border-color .15s ease; }
.single-product div.product .pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.single-product div.product .pdp-thumb.is-sel { border-color: hsl(var(--ink)); }
.single-product div.product .pdp-thumb:hover { border-color: hsl(var(--ink) / 0.4); }
.single-product .onsale { background: hsl(var(--ink)); color: #fff; border-radius: var(--radius-full); min-height: 0; min-width: 0; padding: 5px 13px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; top: 16px; left: 16px; margin: 0; }

/* summary column */
.single-product div.product .entry-summary,
.single-product div.product .summary { width: auto !important; float: none !important; margin: 0 !important; }
.single-product div.product .pdp-info__brand { font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: hsl(var(--muted-foreground)); font-weight: 600; margin-bottom: 8px; }
.single-product div.product .product_title { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.9rem, 3.4vw, 2.7rem); letter-spacing: -0.04em; line-height: 1.0; margin: 0 0 14px; text-wrap: balance; }
.single-product .woocommerce-product-rating { margin: 0 0 16px; display: flex; align-items: center; gap: 10px; font-size: 0.88rem; }
.single-product .woocommerce-product-rating .star-rating { color: hsl(var(--ink)); font-size: 0.95em; margin: 0; }
.single-product .woocommerce-product-rating .woocommerce-review-link { color: hsl(var(--muted-foreground)); text-decoration: none; }
.single-product .woocommerce-product-rating .woocommerce-review-link:hover { color: hsl(var(--ink)); }
.single-product div.product p.price,
.single-product div.product span.price { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; font-family: var(--font-display); font-weight: 700; font-size: 2.1rem; color: hsl(var(--ink)); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; margin: 0 0 4px; }
.single-product div.product p.price del,
.single-product div.product span.price del { font-family: var(--font-sans); font-weight: 500; font-size: 1.05rem; color: hsl(var(--muted-foreground)); opacity: 1; }
.single-product div.product p.price ins,
.single-product div.product span.price ins { text-decoration: none; }
.pdp-saveline { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; font-size: 0.84rem; color: hsl(var(--muted-foreground)); }
.pdp-save { font-size: 0.74rem; font-weight: 700; color: hsl(var(--success)); background: hsl(160 60% 90%); padding: 3px 9px; border-radius: var(--radius-full); }
.single-product .woocommerce-product-details__short-description { color: hsl(var(--muted-foreground)); line-height: 1.65; margin: 0 0 24px; max-width: 52ch; }

/* size / variation dropdown */
.single-product .variations { margin: 0 0 6px; border: none; }
.single-product .variations th { text-align: left; padding: 0 0 10px; font-size: 0.92rem; font-weight: 600; color: hsl(var(--ink)); vertical-align: middle; }
.single-product .variations td { padding: 0 0 16px; }
.single-product .variations select { width: 100%; height: 52px; border-radius: var(--radius-md); border: 1.5px solid hsl(var(--line) / 0.85); padding: 0 16px; background: hsl(var(--surface)); font-size: 0.95rem; font-weight: 600; color: hsl(var(--ink)); }
.single-product .variations select:hover { border-color: hsl(var(--ink) / 0.45); }
.single-product .reset_variations { font-size: 0.8rem; color: hsl(var(--muted-foreground)); }

/* buy row: qty + add to cart side by side, buy-now full width below */
.single-product div.product form.cart:not(.variations_form),
.single-product div.product form.variations_form .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 22px 0 0; }
.single-product div.product form.variations_form { margin: 22px 0 0; }
.single-product div.product form.variations_form .single_variation_wrap { width: 100%; }
.single-product div.product form.variations_form .woocommerce-variation-price .price { font-size: 1.6rem; margin: 0 0 14px; }
.single-product div.product form.cart .quantity { height: 54px; display: inline-flex; align-items: center; border: 1.5px solid hsl(var(--line) / 0.85); border-radius: var(--radius-md); overflow: hidden; }
.single-product div.product form.cart .quantity .er-qtybtn { width: 42px; height: 52px; border: none; background: transparent; color: hsl(var(--ink)); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; padding: 0; }
.single-product div.product form.cart .quantity .er-qtybtn:hover { background: hsl(var(--ink) / 0.07); }
.single-product div.product form.cart .quantity .er-qtybtn svg { width: 16px; height: 16px; }
.single-product .quantity input.qty { height: 52px; width: 58px; border: none; background: transparent; text-align: center; font-weight: 700; font-size: 1rem; -moz-appearance: textfield; }
.single-product .quantity input.qty::-webkit-outer-spin-button,
.single-product .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product div.product form.cart .single_add_to_cart_button { flex: 1 1 200px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 54px; padding: 0 26px; border-radius: var(--radius-md); background: hsl(var(--ink)); color: #fff; font-weight: 600; font-size: 1rem; border: none; float: none; transition: background var(--duration-base); }
.single-product div.product form.cart .single_add_to_cart_button:hover { background: hsl(var(--ink) / 0.88) !important; color: #fff !important; box-shadow: none !important; }
.single-product div.product form.cart .pdp-buynow { flex: 1 1 100%; display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 54px; border-radius: var(--radius-md); background: transparent; color: hsl(var(--ink)); border: 1.5px solid hsl(var(--ink) / 0.22); font-weight: 600; font-size: 1rem; cursor: pointer; transition: border-color var(--duration-base), background var(--duration-base); }
.single-product div.product form.cart .pdp-buynow:hover { border-color: hsl(var(--ink)); background: hsl(var(--ink) / 0.04); }

/* quality control options */
.pdp-qc { flex: 1 1 100%; margin: 0; order: -1; }
.pdp-qc__title { font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; letter-spacing: -0.02em; margin: 0 0 12px; }
.pdp-qc__title span { font-weight: 500; font-size: 0.85rem; color: hsl(var(--muted-foreground)); }
.pdp-qc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pdp-qc__opt { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; padding: 10px 16px; border-radius: var(--radius-md); border: 1.5px solid hsl(var(--line) / 0.85); background: hsl(var(--surface)); color: hsl(var(--ink)); text-align: center; cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.pdp-qc__opt:hover { border-color: hsl(var(--ink) / 0.45); }
.pdp-qc__opt.is-sel { background: hsl(var(--ink)); color: #fff; border-color: hsl(var(--ink)); }
.pdp-qc__opt input { position: absolute; opacity: 0; pointer-events: none; }
.pdp-qc__opt span { line-height: 1.3; font-size: 0.9rem; }
.pdp-qc__opt b { display: block; font-weight: 700; font-size: 0.92rem; }
.pdp-qc__opt small { display: block; margin-top: 3px; font-weight: 500; font-size: 0.76rem; opacity: 0.78; }
.pdp-qc__err { color: hsl(var(--destructive)); font-size: 0.82rem; font-weight: 600; margin: 10px 0 0; }
@media (max-width: 600px) { .pdp-qc__grid { grid-template-columns: 1fr; } }

/* trust row */
.pdp-trust { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin: 26px 0 0; padding: 22px 0 0; border-top: 1px solid hsl(var(--line) / 0.7); }
.pdp-trust__i { display: flex; align-items: center; gap: 10px; font-size: 0.86rem; color: hsl(var(--muted-foreground)); }
.pdp-trust__i svg { width: 18px; height: 18px; color: hsl(var(--ink)); flex: none; }

/* SKU / meta */
.single-product .product_meta { margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid hsl(var(--line) / 0.7); font-size: 0.82rem; color: hsl(var(--muted-foreground)); line-height: 1.7; }
.single-product .product_meta a { color: hsl(var(--ink)); text-decoration: none; }
.single-product .product_meta a:hover { text-decoration: underline; }

/* tabs + related span the full width below the 2-col gallery/summary grid */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .up-sells,
.single-product div.product > .related,
.single-product div.product > .woocommerce-product-gallery + .summary ~ .woocommerce-tabs,
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells { grid-column: 1 / -1; }
.single-product .related.products > h2,
.single-product .upsells.products > h2 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.6rem, 2.8vw, 2.1rem); letter-spacing: -0.04em; margin: 0 0 24px; }
.single-product .woocommerce-tabs { margin-top: clamp(36px, 5vw, 56px); }
.single-product .related, .single-product .upsells { margin-top: clamp(40px, 6vw, 72px); }

/* product tabs */
.single-product div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid hsl(var(--line)); display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 28px; }
.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs::after { content: none; display: none; }
.single-product div.product .woocommerce-tabs ul.tabs li { background: transparent !important; border: none !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; }
.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after { content: none !important; border: none !important; box-shadow: none !important; }
.single-product div.product .woocommerce-tabs ul.tabs li a { display: inline-block; padding: 12px 14px; font-family: var(--font-display); font-weight: 600; font-size: 1rem; letter-spacing: -0.01em; color: hsl(var(--muted-foreground)); text-transform: none; }
.single-product div.product .woocommerce-tabs ul.tabs li a:hover { color: hsl(var(--ink)); }
.single-product div.product .woocommerce-tabs ul.tabs li.active a { color: hsl(var(--ink)); box-shadow: inset 0 -2px 0 hsl(var(--ink)); }
.single-product .woocommerce-tabs .panel { margin: 0; padding: 0; }
.single-product .woocommerce-tabs .panel h2 { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.03em; margin: 0 0 14px; }
.single-product .woocommerce-tabs .panel p { color: hsl(var(--muted-foreground)); line-height: 1.75; }

/* ====== PDP ACCORDION (Description / Sizing / Shipping / Reviews) ====== */
.pdp-acc { margin: 26px 0 0; padding: 4px 0 0; border-top: 1px solid hsl(var(--line) / 0.7); }
.pdp-acc__item { border-bottom: 1px solid hsl(var(--line) / 0.7); }
.pdp-acc__h { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: none; border: none; padding: 18px 0; cursor: pointer; font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; letter-spacing: -0.02em; color: hsl(var(--ink)); text-align: left; }
.pdp-acc__h:hover, .pdp-acc__h:focus, .pdp-acc__h:active { background: none !important; box-shadow: none !important; color: hsl(var(--ink)); outline: none; }
.pdp-acc__h svg { width: 19px; height: 19px; flex: none; transition: transform var(--duration-base, .3s) var(--ease-out-quart, ease); }
.pdp-acc__h.is-open svg { transform: rotate(45deg); }
.pdp-acc__b { overflow: hidden; max-height: 0; transition: max-height var(--duration-slow, .45s) var(--ease-out-quint, ease); }
.pdp-acc__bi { padding: 0 0 20px; }
.pdp-acc__bi > :first-child { margin-top: 0; }
.pdp-acc__bi p, .pdp-acc__bi ul, .pdp-acc__bi li { color: hsl(var(--muted-foreground)); font-size: 0.94rem; line-height: 1.7; }
.pdp-acc__bi p { margin: 0 0 14px; }
.pdp-acc__bi h2, .pdp-acc__bi h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; letter-spacing: -0.02em; color: hsl(var(--ink)); margin: 0 0 10px; }
.pdp-acc__bi b, .pdp-acc__bi strong { color: hsl(var(--ink)); font-weight: 600; }
.pdp-acc__bi a { color: hsl(var(--ink)); text-decoration: underline; text-underline-offset: 2px; }
.pdp-rev-agg { display: flex; align-items: center; gap: 9px; font-size: 0.92rem; color: hsl(var(--ink)); font-weight: 600; margin: 0 0 16px; }
.pdp-rev-agg .star-rating { color: hsl(var(--ink)); margin: 0; font-size: 0.9em; }
.pdp-rev { padding: 14px 0; border-top: 1px solid hsl(var(--line) / 0.55); }
.pdp-rev__h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.pdp-rev__h b { color: hsl(var(--ink)); font-weight: 700; font-size: 0.9rem; }
.pdp-rev__verified { font-size: 0.7rem; font-weight: 600; color: hsl(var(--success)); background: hsl(160 60% 90%); padding: 2px 8px; border-radius: var(--radius-full); }
.pdp-rev__h .star-rating { color: hsl(var(--ink)); margin: 0; font-size: 0.8em; }
.pdp-rev p { margin: 0; color: hsl(var(--muted-foreground)); font-size: 0.9rem; line-height: 1.6; }

/* ====== PDP custom size dropdown (USA = UK = EU) ====== */
.single-product .variations.er-size-hidden { display: none; }
.pdp-sizes { margin: 0 0 16px; }
.pdp-sizes__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pdp-sizes__head .pdp-sizes__label { font-size: 0.92rem; font-weight: 600; color: hsl(var(--ink)); }
.pdp-sizes__head .pdp-sizes__label .picked { color: hsl(var(--muted-foreground)); font-weight: 500; }
.pdp-sizes__guide { font-size: 0.82rem; color: hsl(var(--muted-foreground)); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; background: none !important; border: none !important; padding: 0 !important; }
.pdp-sizes__guide:hover, .pdp-sizes__guide:focus { color: hsl(var(--ink)); background: none !important; box-shadow: none !important; }
.pdp-sizes__guide:hover { color: hsl(var(--ink)); }
.pdp-size-trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 52px; padding: 0 18px; border-radius: var(--radius-md); border: 1.5px solid hsl(var(--line) / 0.85); background: hsl(var(--surface)) !important; font-size: 0.95rem; font-weight: 600; color: hsl(var(--ink)) !important; cursor: pointer; transition: border-color .15s ease; }
.pdp-size-trigger:hover, .pdp-size-trigger:focus, .pdp-size-trigger:active { border-color: hsl(var(--ink) / 0.45); background: hsl(var(--surface)) !important; color: hsl(var(--ink)) !important; box-shadow: none !important; outline: none; }
.pdp-size-trigger.is-open { border-color: hsl(var(--ink)); background: hsl(var(--surface)) !important; }
.pdp-size-trigger .is-placeholder { color: hsl(var(--muted-foreground)); font-weight: 500; }
.pdp-size-trigger svg { width: 18px; height: 18px; color: hsl(var(--muted-foreground)); flex: none; transition: transform .2s ease; }
.pdp-size-trigger.is-open svg { transform: rotate(180deg); }
.pdp-size-list { margin-top: 8px; border: 1.5px solid hsl(var(--line) / 0.85); border-radius: var(--radius-md); overflow: hidden; background: hsl(var(--surface)); }
.pdp-size-list[hidden] { display: none; }
.pdp-size-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; background: none !important; border: none; border-bottom: 1px solid hsl(var(--line) / 0.6); font-size: 0.9rem; font-weight: 600; color: hsl(var(--ink)) !important; text-align: left; cursor: pointer; transition: background .12s ease; }
.pdp-size-row:focus { outline: none; box-shadow: none !important; }
.pdp-size-row:last-child { border-bottom: none; }
.pdp-size-row:hover:not(:disabled) { background: hsl(var(--surface-muted)) !important; }
.pdp-size-row.is-sel { background: hsl(var(--ink) / 0.05) !important; }
.pdp-size-row.is-sel svg { width: 17px; height: 17px; color: hsl(var(--ink)); flex: none; }
.pdp-size-row.is-out { opacity: 0.55; cursor: not-allowed; }
.pdp-size-row.is-out span { text-decoration: line-through; }
.pdp-size-row em { font-style: normal; font-size: 0.74rem; font-weight: 700; color: hsl(var(--muted-foreground)); white-space: nowrap; }

/* related "from $X" price */
.single-product .related .prod__price { flex-direction: row; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.single-product .related .prod__price small { font-size: 0.72rem; font-weight: 500; color: hsl(var(--muted-foreground)); }
.single-product .related .prod__price del { font-size: 0.82rem; }
.single-product .related .add-btn { padding: 0 22px; }

/* ---- cart ---- */
.woocommerce-cart table.cart { border: 1px solid hsl(var(--line) / 0.7); border-radius: var(--radius-lg); border-collapse: separate; overflow: hidden; }
.woocommerce-cart table.cart thead th { background: hsl(var(--surface-muted)); font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; color: hsl(var(--muted-foreground)); padding: 16px; }
.woocommerce-cart table.cart td { padding: 16px; vertical-align: middle; }
.woocommerce-cart table.cart img { width: 64px; border-radius: var(--radius-sm); }
.cart_totals h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.03em; }
.cart-collaterals .cart_totals { border: 1px solid hsl(var(--line) / 0.7); border-radius: var(--radius-lg); padding: 22px; background: hsl(var(--card)); }

/* ---- buttons (global WooCommerce) ---- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt {
  border-radius: var(--radius-md); background: hsl(var(--ink)); color: #fff; font-weight: 600;
  padding: 13px 24px; border: none; transition: background var(--duration-base); line-height: 1.2;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover { background: hsl(var(--ink) / 0.88); color: #fff; }
.woocommerce .button.wc-backward, .woocommerce a.button.outline { background: transparent; color: hsl(var(--ink)); border: 1px solid hsl(var(--ink) / 0.22); }

/* ---- form fields (checkout / account / coupon) ---- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"] {
  border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--surface));
  padding: 12px 14px; font-family: var(--font-sans); font-size: 0.95rem; min-height: 48px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { outline: none; border-color: hsl(var(--ink)); box-shadow: 0 0 0 3px hsl(var(--ink) / 0.07); }

/* ============================================================
   CHECKOUT — v3 "clean commerce" (mirrors the redesigned prototype).
   2-col: Contact + Shipping address left, order-summary card right
   (items → coupon → shipment → total → payment group → Place Order → assure).
   NOTE: the 6px-corner / --line-border rule is CHECKOUT-ONLY by design —
   every selector is scoped under .woocommerce-checkout (body class).
   ============================================================ */
.woocommerce-checkout .co-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: clamp(28px, 4vw, 48px); align-items: start; width: 100%; max-width: 1160px; margin-inline: auto; padding: clamp(20px, 3vw, 40px) clamp(16px, 5vw, 28px) clamp(40px, 6vw, 80px); box-sizing: border-box; }
.woocommerce-checkout .co-main { min-width: 0; }
/* section headers */
.woocommerce-checkout .co-sec { margin: 0 0 36px; }
.woocommerce-checkout .co-sec:last-child { margin-bottom: 0; }
.woocommerce-checkout .co-sec__h { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.woocommerce-checkout .co-sec__h h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; letter-spacing: -0.01em; margin: 0; text-transform: none; }
.woocommerce-checkout .co-sub { margin: -10px 0 16px; font-size: 0.88rem; color: hsl(var(--muted-foreground)); }
/* login toggle info bar (coupon toggle is removed by theme.js) */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login-toggle { margin-bottom: 20px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { padding: 15px 18px; margin: 0; border: 1px solid hsl(var(--line)); border-left: 3px solid hsl(var(--ink)); border-radius: 6px; background: hsl(var(--surface-muted)); font-size: 0.92rem; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before { content: none; }
/* field grid: email/phone, first/last, city/state pair up; the rest span */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.woocommerce-checkout .form-row { margin: 0; padding: 0; }
.woocommerce-checkout form p.form-row { margin: 0 !important; }
.woocommerce-checkout #customer_details .form-row,
.woocommerce-checkout #customer_details p.form-row { margin: 0 !important; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper > .form-row { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce-checkout .form-row-wide,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row { grid-column: 1 / -1; }
.woocommerce-checkout .form-row label { display: block; font-size: 0.83rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: hsl(var(--ink)); margin: 0 0 6px; }
.woocommerce-checkout .woocommerce-billing-fields .form-row label,
.woocommerce-checkout .woocommerce-shipping-fields .form-row label { font-weight: 400; }
.woocommerce-checkout .form-row .required { color: hsl(var(--destructive)); border: 0; text-decoration: none; }
.woocommerce-checkout .form-row .optional { color: hsl(var(--muted-foreground)); font-weight: 400; }
.woocommerce-checkout .woocommerce-input-wrapper { width: 100%; }
.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row textarea { width: 100%; height: 46px; min-height: 46px; box-sizing: border-box; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); padding: 0 14px; font-family: var(--font-sans); font-size: 0.95rem; color: hsl(var(--ink)); box-shadow: var(--shadow-xs); margin: 0; transition: border-color var(--duration-fast), box-shadow var(--duration-fast); }
.woocommerce-checkout form .form-row textarea { height: auto; min-height: 0; padding: 12px 14px; }
.woocommerce-checkout form .form-row input.input-text:focus,
.woocommerce-checkout form .form-row textarea:focus { outline: none; border-color: hsl(var(--ink)); box-shadow: 0 0 0 3px hsl(var(--ink) / 0.12); }
/* country/state dropdowns (select2 + native fallback) */
.woocommerce-checkout .select2-container .select2-selection--single { height: 46px; min-height: 46px; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); box-shadow: var(--shadow-xs); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding: 0 40px 0 14px; font-size: 0.95rem; color: hsl(var(--ink)); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; right: 8px; }
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single { border-color: hsl(var(--ink)); box-shadow: 0 0 0 3px hsl(var(--ink) / 0.12); }
.woocommerce-checkout form .form-row select { width: 100%; height: 46px; box-sizing: border-box; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); padding: 0 14px; font-family: var(--font-sans); font-size: 0.95rem; line-height: normal; color: hsl(var(--ink)); margin: 0; }
/* select2 (country/state) vertical centering — flex beats any inherited line-height so the label sits centered, not high */
.woocommerce-checkout .select2-container--default .select2-selection--single { display: flex; align-items: center; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: normal; }
/* optional fields (company / apartment / order notes): plain rows sorted to the
   END of the grid (priorities 110-130 — WC's address-i18n.js re-sorts rows and
   flattens wrappers), hidden until the toggle opens. ID selectors on purpose:
   the same JS also rewrites row CLASSES from locale data. */
.woocommerce-checkout .co-sec--details .woocommerce-billing-fields__field-wrapper:not(.er-opt-open) #billing_company_field,
.woocommerce-checkout .co-sec--details .woocommerce-billing-fields__field-wrapper:not(.er-opt-open) #billing_address_2_field,
.woocommerce-checkout .co-sec--details .woocommerce-billing-fields__field-wrapper:not(.er-opt-open) #order_comments_field { display: none !important; }
.woocommerce-checkout .co-opt-toggle { display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box; margin-top: 14px; padding: 13px 15px; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); font-family: var(--font-sans); font-size: 0.88rem; font-weight: 500; color: hsl(var(--muted-foreground)); cursor: pointer; text-align: left; box-shadow: none; }
.woocommerce-checkout .co-opt-toggle:hover,
.woocommerce-checkout .co-opt-toggle:focus { color: hsl(var(--ink)); background: hsl(var(--surface)); border-color: hsl(var(--line)); }
.woocommerce-checkout .co-opt-toggle::before { content: "+"; font-size: 1.1rem; line-height: 1; }
.woocommerce-checkout .co-opt-toggle[aria-expanded="true"]::before { content: "\2013"; }
/* email+phone / city+state pair up by ID — address-i18n.js rewrites the
   form-row-first/-last placement classes from locale data on load */
.woocommerce-checkout #billing_email_field { grid-column: 1 / 2; }
.woocommerce-checkout #billing_phone_field { grid-column: 2 / 3; }
/* city / state / postcode stay full-width (WC's default locale class) — pinning
   them to columns broke countries where state is hidden (city stranded at half
   width) or where postcode sorts before city (priority varies per country). */
/* "Ship to a different address?" toggle */
.woocommerce-checkout #ship-to-different-address { font-family: var(--font-sans); font-size: 0.95rem; font-weight: 500; margin: 24px 0 0; }
.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; margin: 0; font-size: 0.95rem; font-weight: 500; }
.woocommerce-checkout #ship-to-different-address input { width: 16px; height: 16px; accent-color: hsl(var(--ink)); margin: 0; flex: none; }
.woocommerce-checkout .shipping_address { margin-top: 18px; }
.woocommerce-checkout .woocommerce-additional-fields { margin: 0; }
/* summary card */
.woocommerce-checkout .co-summary { position: static; align-self: start; background: hsl(var(--surface)); border: 1px solid hsl(var(--line)); border-radius: 6px; box-shadow: var(--shadow-sm); padding: 28px; }
.woocommerce-checkout .co-summary .co-label { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.01em; margin: 0 0 18px; color: hsl(var(--ink)); }
.woocommerce-checkout .co-summary .co-label small { font-family: var(--font-sans); font-weight: 500; font-size: 0.8rem; letter-spacing: 0; text-transform: none; color: hsl(var(--muted-foreground)); margin-left: auto; }
.woocommerce-checkout .co-summary .co-div { height: 1px; background: hsl(var(--line) / 0.7); margin: 22px 0; }
/* review-order table → flex rows */
.woocommerce-checkout .co-summary #order_review,
.woocommerce-checkout .co-summary table.shop_table,
.woocommerce-checkout .co-summary table.woocommerce-checkout-review-order-table { border: none !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table,
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; margin: 0; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tr { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; width: 100%; box-sizing: border-box; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table td { padding: 0; border: 0; font-size: 0.92rem; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table th { text-align: left; flex: 1 1 auto; font-weight: 500; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table td { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; flex: none; }
/* line item: 64px thumb + qty bubble + name; variation row below */
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tbody .cart_item { align-items: flex-start; flex-wrap: nowrap; padding: 0 0 14px; margin: 0 0 14px; border-bottom: 1px solid hsl(var(--line) / 0.5); }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tbody .cart_item .product-name { flex: 1 1 auto; min-width: 0; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-name { flex: 1 1 auto; text-align: left; color: hsl(var(--ink)); font-weight: 400; line-height: 1.5; white-space: normal; }
.woocommerce-checkout .co-summary .co-item { display: flex; gap: 14px; align-items: flex-start; }
.woocommerce-checkout .co-summary .co-thumb { position: relative; flex: none; }
.woocommerce-checkout .co-summary .co-thumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; border: 1px solid hsl(var(--line)); display: block; }
.woocommerce-checkout .co-summary .co-thumb__qty { position: absolute; top: -7px; right: -7px; width: 20px; height: 20px; border-radius: var(--radius-full); background: hsl(var(--ink)); color: #fff; font-style: normal; font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.woocommerce-checkout .co-summary .co-itext { flex: 1 1 auto; min-width: 0; font-size: 0.9rem; line-height: 1.45; font-weight: 500; color: hsl(var(--ink)); }
.woocommerce-checkout .co-summary .co-isize { display: block; margin-top: 3px; font-size: 0.78rem; font-weight: 400; color: hsl(var(--muted-foreground)); }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-name .variation { display: block; margin: 10px 0 0; font-size: 0.75rem; color: hsl(var(--muted-foreground)); }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-name .variation dt { display: inline; font-weight: 600; margin: 0; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-name .variation dd { display: inline; margin: 0 0 0 4px; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-name .variation dd p { display: inline; margin: 0; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table .product-total { color: hsl(var(--ink)); }
/* money rows */
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot tr { padding: 8px 0; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot td { color: hsl(var(--muted-foreground)); font-weight: 400; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot .cart-subtotal th,
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot .cart-subtotal td { color: hsl(var(--ink)); font-weight: 600; }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot .order-total { align-items: center; margin-top: 4px; padding-top: 16px; border-top: 1px solid hsl(var(--line) / 0.7); }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot .order-total th { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.02em; color: hsl(var(--ink)); }
.woocommerce-checkout .co-summary .woocommerce-checkout-review-order-table tfoot .order-total td { font-family: var(--font-display); font-weight: 700; font-size: 1.65rem; letter-spacing: -0.04em; color: hsl(var(--ink)); }
/* shipment radios */
.woocommerce-checkout .co-summary .woocommerce-shipping-totals.shipping { display: block; width: 100%; padding: 16px 0; }
.woocommerce-checkout .co-summary .woocommerce-shipping-totals.shipping th,
.woocommerce-checkout .co-summary .woocommerce-shipping-totals.shipping td { display: block; width: 100%; box-sizing: border-box; text-align: left; padding: 0; border: 0; flex: none; }
.woocommerce-checkout .co-summary .woocommerce-shipping-totals.shipping th { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; letter-spacing: -0.01em; color: hsl(var(--ink)); margin: 0 0 10px; }
.woocommerce-checkout .co-summary #shipping_method { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 8px; }
.woocommerce-checkout .co-summary #shipping_method li { width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); margin: 0; cursor: pointer; transition: border-color var(--duration-fast); }
.woocommerce-checkout .co-summary #shipping_method li:hover { border-color: hsl(var(--ink) / 0.4); }
.woocommerce-checkout .co-summary #shipping_method li:has(input:checked) { border-color: hsl(var(--ink)); box-shadow: none; }
.woocommerce-checkout .co-summary #shipping_method input.shipping_method { width: 16px; height: 16px; accent-color: hsl(var(--ink)); flex: none; margin: 0; }
.woocommerce-checkout .co-summary #shipping_method label { margin: 0; font-weight: 400; font-size: 0.9rem; color: hsl(var(--ink)); flex: 1 1 auto; cursor: pointer; }
/* coupon (relocated into the card by theme.js) */
.woocommerce-checkout .co-summary .co-coupon .co-coupon__lbl { font-family: var(--font-sans); font-weight: 500; font-size: 0.88rem; letter-spacing: 0; color: hsl(var(--ink)); margin: 0 0 8px; }
.woocommerce-checkout .co-summary .co-coupon .woocommerce-form-coupon-toggle { display: none; }
.woocommerce-checkout .co-summary .co-coupon .checkout_coupon { display: flex !important; margin: 0; padding: 0; border: 0; background: none; gap: 8px; align-items: stretch; }
.woocommerce-checkout .co-summary .co-coupon .checkout_coupon > p:not(.form-row) { display: none; }
.woocommerce-checkout .checkout_coupon { border: 0; border-radius: 0; padding: 0; margin: 0; background: none; }
.woocommerce-checkout .co-summary .co-coupon .form-row { margin: 0; padding: 0; }
.woocommerce-checkout #coupon_code { width: 100% !important; height: 44px !important; min-height: 44px !important; box-sizing: border-box !important; padding: 0 15px !important; font-size: 0.9rem !important; border: 1px solid hsl(var(--line)) !important; border-radius: 6px !important; background: hsl(var(--surface)) !important; outline: none !important; box-shadow: var(--shadow-xs) !important; }
.woocommerce-checkout #coupon_code:focus { border-color: hsl(var(--ink)) !important; box-shadow: 0 0 0 3px hsl(var(--ink) / 0.12) !important; }
.woocommerce-checkout .form-row.woocommerce-validated #coupon_code,
.woocommerce-checkout .form-row.woocommerce-invalid #coupon_code { border-color: hsl(var(--line)) !important; box-shadow: var(--shadow-xs) !important; }
.woocommerce-checkout button[name="apply_coupon"] { height: 44px !important; box-sizing: border-box !important; padding: 0 18px; white-space: nowrap; border: 1px solid hsl(var(--line)) !important; border-radius: 6px !important; background: hsl(var(--surface)) !important; color: hsl(var(--ink)) !important; font-weight: 600; font-size: 0.88rem; cursor: pointer; transition: background var(--duration-fast), border-color var(--duration-fast); }
.woocommerce-checkout button[name="apply_coupon"]:hover { border-color: hsl(var(--ink)) !important; background: hsl(var(--muted) / 0.5) !important; }
.woocommerce-checkout .checkout_coupon { width: 100% !important; }
.woocommerce-checkout .co-coupon .form-row-first,
.woocommerce-checkout .checkout_coupon .form-row-first { flex: 1 1 auto !important; width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce-checkout .co-coupon .form-row-last,
.woocommerce-checkout .checkout_coupon .form-row-last { flex: 0 0 auto !important; width: auto !important; float: none !important; margin: 0 !important; }
/* payment methods → joined group with hairline dividers */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; margin-top: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: block; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); overflow: hidden; box-shadow: var(--shadow-xs); }
.woocommerce-checkout #payment ul.payment_methods > li { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 0 12px; padding: 0 16px; min-height: 54px; margin: 0; border: 0; border-radius: 0; cursor: pointer; transition: background var(--duration-fast); }
.woocommerce-checkout #payment ul.payment_methods > li + li { border-top: 1px solid hsl(var(--line) / 0.8); }
.woocommerce-checkout #payment ul.payment_methods > li:hover { background: hsl(var(--muted) / 0.25); }
.woocommerce-checkout #payment ul.payment_methods > li:has(input[type="radio"]:checked) { background: hsl(var(--muted) / 0.5); border-color: hsl(var(--line) / 0.8); box-shadow: none; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { width: 16px; height: 16px; accent-color: hsl(var(--ink)); flex: none; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { flex: 1 1 auto; min-width: 0; margin: 0; padding: 15px 0; font-weight: 600; font-size: 0.92rem; line-height: 1.35; color: hsl(var(--ink)); display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li label .er-pm__t { display: inline-flex; align-items: center; white-space: nowrap; font-weight: 600; font-size: 0.92rem; color: hsl(var(--ink)); }
.woocommerce-checkout #payment ul.payment_methods li label .er-pm__sub { font-size: 0.8rem; font-weight: 400; color: hsl(var(--muted-foreground)); margin-left: 6px; white-space: normal; }
.woocommerce-checkout #payment ul.payment_methods li label .er-pm__t--plain { white-space: normal; font-weight: 500; }
.woocommerce-checkout #payment ul.payment_methods li label .er-badge-pill { margin-left: auto; }
.woocommerce-checkout .er-badge-pill { display: inline-flex; align-items: center; height: 18px; padding: 0 8px; border-radius: 3px; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px solid hsl(var(--line)); flex: none; }
.woocommerce-checkout .er-badge-pill--success { background: hsl(var(--success) / 0.1); color: hsl(var(--success)); border-color: hsl(var(--success) / 0.25); }
/* brand chips */
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw { display: inline-flex; align-items: center; gap: 6px; flex-wrap: nowrap; margin-left: auto; color: hsl(var(--muted-foreground)); }
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw__mark { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 24px; border: 1px solid hsl(var(--line)); border-radius: 4px; background: #fff; box-sizing: border-box; }
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw svg { height: 12px; width: auto; max-width: 32px; display: block; }
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw__mark[aria-label="visa" i] { color: #1434cb; }
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw__mark[aria-label="klarna" i] { background: #ffb3c7; border-color: #ffb3c7; color: #000; }
.woocommerce-checkout #payment ul.payment_methods li label .er-paygw__mark[aria-label="afterpay" i] { background: #b2fce4; border-color: #b2fce4; color: #000; }
/* gateway description box (kept; v3-styled) */
.woocommerce-checkout #payment .payment_box { flex: 1 1 100%; order: 99; background: hsl(var(--surface-muted)); border-radius: 6px; padding: 12px 14px; font-size: 0.78rem; line-height: 1.55; color: hsl(var(--muted-foreground)); margin: 0 0 14px; }
.woocommerce-checkout #payment .payment_box::before,
.woocommerce-checkout #payment .payment_box::after { display: none !important; content: none !important; border: 0 !important; }
.woocommerce-checkout #payment .payment_box p { margin: 0 0 6px; }
.woocommerce-checkout #payment .payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment .payment_box.payment_method_credit_card_payment { background: hsl(0 75% 97%); color: hsl(0 38% 40%); border: 1px solid hsl(0 72% 90%); }
.woocommerce-checkout #payment .payment_box.payment_method_credit_card_payment strong { color: hsl(0 62% 42%); font-weight: 700; }
/* place order */
.woocommerce-checkout .co-summary .woocommerce-terms-and-conditions-wrapper { margin: 0; font-size: 0.85rem; color: hsl(var(--muted-foreground)); }
.woocommerce-checkout .co-summary .woocommerce-privacy-policy-text { font-size: 0.78rem; line-height: 1.55; color: hsl(var(--muted-foreground)); margin: 0; }
.woocommerce-checkout .co-summary .woocommerce-privacy-policy-text p { margin: 0; }
.woocommerce-checkout .co-summary .woocommerce-privacy-policy-text a { color: hsl(var(--ink)); }
.woocommerce-checkout .co-summary .place-order { padding: 0; margin: 0; }
.woocommerce-checkout #place_order { width: 100%; height: 54px; margin-top: 16px; border: 0; border-radius: 6px; background: hsl(var(--cta-dark)); color: hsl(var(--cta-dark-foreground)); font-family: var(--font-sans); font-size: 1rem; font-weight: 600; letter-spacing: 0.01em; box-shadow: var(--shadow-sm); transition: background var(--duration-fast); }
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus { background: hsl(222 47% 18%) !important; color: hsl(var(--cta-dark-foreground)) !important; box-shadow: var(--shadow-sm); }
.woocommerce-checkout #place_order:active { transform: none; background: hsl(222 47% 8%) !important; }
/* assurance row (WhatsApp + secure) */
.woocommerce-checkout .co-assure { margin-top: 18px; padding-top: 18px; border-top: 1px solid hsl(var(--line) / 0.7); display: flex; flex-direction: column; gap: 10px; }
.woocommerce-checkout .co-help { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid hsl(var(--line)); border-radius: 6px; background: hsl(var(--surface)); text-decoration: none; transition: border-color .2s, background .2s; }
.woocommerce-checkout .co-help:hover { border-color: hsl(var(--ink) / 0.35); background: hsl(var(--muted) / 0.4); }
.woocommerce-checkout .co-help__ic { flex: none; width: 38px; height: 38px; border-radius: 8px; background: #25D366; display: flex; align-items: center; justify-content: center; }
.woocommerce-checkout .co-help__ic svg { width: 20px; height: 20px; color: #fff; }
.woocommerce-checkout .co-help__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.woocommerce-checkout .co-help__body b { font-size: 0.85rem; font-weight: 600; color: hsl(var(--ink)); }
.woocommerce-checkout .co-help__body > span { font-size: 0.76rem; color: hsl(var(--muted-foreground)); line-height: 1.4; }
.woocommerce-checkout .co-help__go { flex: none; width: 16px; height: 16px; color: hsl(var(--muted-foreground)); }
.woocommerce-checkout .co-secure2 { display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: hsl(var(--muted-foreground)); font-size: 0.78rem; width: 100%; }
.woocommerce-checkout .co-secure2 svg { width: 14px; height: 14px; flex: none; }

@media (max-width: 920px) {
  .woocommerce-checkout .co-wrap { grid-template-columns: 1fr; }
  .woocommerce-checkout .co-summary { position: static; order: 2; }
  .woocommerce-checkout .co-main { order: 1; }
}
@media (max-width: 480px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .woocommerce-checkout #billing_email_field, .woocommerce-checkout #billing_phone_field { grid-column: 1 / -1; }
}
/* phones: label text + chips don't fit one row — chips drop to their own line */
@media (max-width: 520px) {
  .woocommerce-checkout #payment ul.payment_methods > li { display: flex; flex-wrap: nowrap; align-items: center; column-gap: 10px; padding: 0 14px; min-height: 56px; }
  .woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { margin: 0; }
  .woocommerce-checkout #payment ul.payment_methods li label { padding: 15px 0; display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; }
  .woocommerce-checkout #payment ul.payment_methods li label .er-pm__sub { display: none; }
  .woocommerce-checkout #payment ul.payment_methods li label .er-paygw { margin-left: auto; margin-top: 0; }
  .woocommerce-checkout #payment ul.payment_methods li label .er-badge-pill { margin-left: auto; margin-top: 0; }
  .woocommerce-checkout #payment ul.payment_methods li label .er-paygw__mark { width: 32px; height: 22px; }
  .woocommerce-checkout #payment ul.payment_methods li label .er-paygw svg { height: 10px; }
}

/* ---- account ---- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 14px; border-radius: var(--radius-md); color: hsl(var(--ink)); font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: hsl(var(--ink)); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content { background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.7); border-radius: var(--radius-lg); padding: clamp(20px, 3vw, 32px); }

/* messages */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--radius-md); border-top: none; padding: 14px 16px 14px 44px; }
.woocommerce-message { border-left: 3px solid hsl(var(--success)); background: hsl(160 60% 95%); }
.woocommerce-info { border-left: 3px solid hsl(var(--ink)); background: hsl(var(--surface-muted)); }
.woocommerce-error { border-left: 3px solid hsl(var(--destructive)); background: hsl(0 72% 96%); }

/* ---- responsive ---- */
@media (max-width: 1024px) { ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { ul.products { grid-template-columns: repeat(2, 1fr); } .single-product div.product { grid-template-columns: 1fr; } .single-product div.product .woocommerce-product-gallery { position: static; } .single-product div.product form.cart .single_add_to_cart_button { flex-basis: 60%; } }
@media (max-width: 460px)  { ul.products { grid-template-columns: 1fr 1fr; gap: 14px; } }

/* ---- pagination ---- */
.woocommerce-pagination { margin: clamp(32px,5vw,52px) 0 0; text-align: center; }
.woocommerce-pagination ul.page-numbers { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; list-style: none; margin: 0 auto; padding: 0; border: none !important; }
.woocommerce-pagination ul.page-numbers li { margin: 0 !important; border: none !important; overflow: visible; }
.woocommerce-pagination .page-numbers { display: inline-flex !important; align-items: center; justify-content: center; min-width: 46px !important; height: 46px !important; padding: 0 13px !important; border-radius: var(--radius-md) !important; border: 1px solid hsl(var(--line) / 0.85) !important; background: transparent !important; color: hsl(var(--ink)) !important; font-weight: 600; font-size: 0.95rem !important; line-height: 1 !important; text-decoration: none; transition: border-color var(--duration-fast), background var(--duration-fast), color var(--duration-fast); }
.woocommerce-pagination .page-numbers:hover { border-color: hsl(var(--ink)) !important; }
.woocommerce-pagination .page-numbers.current { background: hsl(var(--ink)) !important; border-color: hsl(var(--ink)) !important; color: #fff !important; }
.woocommerce-pagination .page-numbers.dots { border: none !important; background: none !important; min-width: 22px; color: hsl(var(--muted-foreground)) !important; }
.woocommerce-pagination .page-numbers.next,
.woocommerce-pagination .page-numbers.prev { font-size: 1.1rem; }
/* Phones: let the row WRAP (centered) instead of overflowing off the right edge.
   With many pages (e.g. sitting on page 20) the inline row was wider than the
   screen and the current/high numbers slid out of view. Tighten so ~6 fit per row. */
@media (max-width: 480px) {
  .woocommerce-pagination ul.page-numbers { gap: 7px; }
  .woocommerce-pagination .page-numbers { min-width: 44px !important; height: 44px !important; padding: 0 10px !important; }
}


/* ====== SLIDE-OUT MINI CART DRAWER (matches prototype CartDrawer) ====== */
.er-cdrawer-scrim { position: fixed; inset: 0; background: hsl(var(--cta-dark) / 0.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: 200; opacity: 0; pointer-events: none; transition: opacity var(--duration-base) var(--ease-out-quart); }
.er-cdrawer-scrim.is-open { opacity: 1; pointer-events: auto; }
.er-cdrawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(420px, 100vw); background: hsl(var(--surface)); z-index: 210; display: flex; flex-direction: column; transform: translateX(100%); transition: transform var(--duration-slow) var(--ease-out-quart); box-shadow: -20px 0 60px hsl(var(--cta-dark) / 0.18); }
.er-cdrawer.is-open { transform: translateX(0); }
/* offset below the WP admin bar when logged in */
body.admin-bar .er-cdrawer { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar .er-cdrawer { top: 46px; } }
@media screen and (max-width: 600px) { body.admin-bar .er-cdrawer { top: 46px; } }
.er-cdrawer__sync { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.er-cdrawer__head { display: flex; align-items: center; justify-content: space-between; padding: 22px 22px 18px; border-bottom: 1px solid hsl(var(--line) / 0.7); flex: none; }
.er-cdrawer__head h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; letter-spacing: -0.03em; margin: 0; }
.er-cdrawer .icon-btn { color: hsl(var(--ink)); }
.er-cdrawer .icon-btn:hover { background: hsl(var(--ink)); }
.er-cdrawer .icon-btn:hover svg { color: #fff; }
.er-cdrawer__body { flex: 1; overflow-y: auto; padding: 8px 22px; }
.er-cdrawer__foot { border-top: 1px solid hsl(var(--line) / 0.7); padding: 20px 22px calc(20px + env(safe-area-inset-bottom, 0px)); flex: none; }
.er-cdrawer .ci { display: flex; gap: 14px; padding: 18px 0; border-bottom: 1px solid hsl(var(--line) / 0.5); }
.er-cdrawer .ci__media { width: 78px; height: 64px; flex: none; border-radius: var(--radius-md); overflow: hidden; background: hsl(var(--surface-muted)); }
.er-cdrawer .ci__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.er-cdrawer .ci__info { flex: 1; min-width: 0; }
.er-cdrawer .ci__brand { font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; color: hsl(var(--muted-foreground)); font-weight: 600; }
.er-cdrawer .ci__name { font-weight: 600; font-size: 0.95rem; letter-spacing: -0.01em; margin: 2px 0 8px; }
.er-cdrawer .ci__row { display: flex; align-items: center; justify-content: space-between; }
.er-cdrawer .qty { display: inline-flex; align-items: center; border: 1px solid hsl(var(--line) / 0.9); border-radius: var(--radius-full); }
.er-cdrawer .qty button { width: 30px; height: 30px; border: none; background: transparent; color: hsl(var(--ink)); display: flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer; }
.er-cdrawer .qty button:hover { background: hsl(var(--ink) / 0.07); }
.er-cdrawer .qty button svg { width: 14px; height: 14px; }
.er-cdrawer .qty span { min-width: 26px; text-align: center; font-weight: 600; font-size: 0.88rem; font-variant-numeric: tabular-nums; }
.er-cdrawer .ci__price { font-weight: 700; font-size: 0.98rem; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.er-cdrawer .ci__rm { background: none; border: none; color: hsl(var(--muted-foreground)); font-size: 0.76rem; padding: 0; margin-top: 6px; display: inline-flex; align-items: center; gap: 4px; text-decoration: none; cursor: pointer; }
.er-cdrawer .ci__rm:hover { color: hsl(0 72% 48%); }
.er-cdrawer .ci__rm svg { width: 12px; height: 12px; }
.er-cdrawer .cart-empty { text-align: center; padding: 60px 20px; }
.er-cdrawer .cart-empty svg { width: 40px; height: 40px; color: hsl(var(--ink) / 0.2); margin: 0 auto 16px; display: block; }
.er-cdrawer .cart-empty h4 { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; margin: 0 0 6px; }
.er-cdrawer .cart-empty p { color: hsl(var(--muted-foreground)); font-size: 0.9rem; margin: 0; }
.er-cdrawer .sub-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.er-cdrawer .sub-row span { color: hsl(var(--muted-foreground)); font-size: 0.9rem; }
.er-cdrawer .sub-row.total span, .er-cdrawer .sub-row.total b { font-size: 1.05rem; color: hsl(var(--ink)); }
.er-cdrawer .sub-row b { font-weight: 700; font-variant-numeric: tabular-nums; }
.er-cdrawer__secure { display: flex; align-items: center; justify-content: center; gap: 7px; color: hsl(var(--muted-foreground)); font-size: 0.78rem; margin-top: 14px; }
.er-cdrawer__secure svg { width: 14px; height: 14px; }
.er-cdrawer.is-busy { pointer-events: none; }
.er-cdrawer.is-busy .er-cdrawer__body { opacity: 0.55; transition: opacity var(--duration-fast); }


/* ============================================================
   MY ACCOUNT — mirrors the everythingreps prototype (account.css)
   ============================================================ */
.woocommerce-account .acct-band { margin: 0 0 clamp(24px,4vw,40px); }
.woocommerce-account .acct-band .crumb { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; color: hsl(var(--muted-foreground)); margin: 0 0 14px; }
.woocommerce-account .acct-band .crumb a { color: hsl(var(--muted-foreground)); text-decoration: none; }
.woocommerce-account .acct-band .crumb a:hover { color: hsl(var(--ink)); }
.woocommerce-account .acct-band .crumb svg { width: 14px; height: 14px; opacity: 0.5; }
.woocommerce-account .acct-band .crumb b { color: hsl(var(--ink)); font-weight: 600; }
.woocommerce-account .acct-band h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(2.1rem,4vw,3.1rem); line-height: 0.98; letter-spacing: -0.05em; margin: 0; }

/* shell: sidebar + content — ONLY on the logged-in dashboard (which has the
   MyAccount navigation). The logged-OUT login/register page is also
   body.woocommerce-account but its .woocommerce holds a single .u-columns
   node; applying the 268px grid there squeezed both forms into ~130px. Gate
   the grid on :has(navigation) and give the login page its own layout below. */
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid !important; grid-template-columns: 268px minmax(0, 1fr) !important; gap: 28px; align-items: start; width: 100%; float: none; max-width: none; }
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; float: none !important; width: auto !important; margin: 0 !important; }
body.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; float: none !important; width: auto !important; margin: 0 !important; min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }

/* ============================================================
   LOGIN / REGISTER (logged-out) — ported 1:1 from the prototype
   (account.css AuthView): two rich cards, perks, divider, Google.
   Template: woocommerce/myaccount/form-login.php
   ============================================================ */
.woocommerce-account .auth-wrap { padding: clamp(30px, 4.5vw, 52px) 0 clamp(48px, 7vw, 88px); }
.woocommerce-account .auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 940px; margin: 0 auto; align-items: start; }
.woocommerce-account .auth-grid--single { grid-template-columns: 1fr; max-width: 480px; }
.woocommerce-account .auth-card { padding: clamp(28px, 3.4vw, 42px); background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.7); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.woocommerce-account .auth-card h2 { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; letter-spacing: -0.035em; margin: 0; }
.woocommerce-account .auth-card__sub { color: hsl(var(--muted-foreground)); font-size: 0.94rem; line-height: 1.55; margin: 8px 0 24px; }
/* form fields */
.woocommerce-account .auth-card form { margin: 0; border: none; padding: 0; }
.woocommerce-account .auth-card .fgroup { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; padding: 0; }
.woocommerce-account .auth-card .fgroup label { display: block; font-size: 0.8rem; font-weight: 600; color: hsl(var(--ink)); margin: 0; white-space: normal; }
.woocommerce-account .auth-card .inp,
.woocommerce-account .auth-card input.input-text { width: 100%; box-sizing: border-box; height: 48px; padding: 0 15px; border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--background)); font-size: 0.94rem; font-family: var(--font-sans); color: hsl(var(--ink)); margin: 0; }
.woocommerce-account .auth-card .inp::placeholder { color: hsl(var(--muted-foreground) / 0.6); }
.woocommerce-account .auth-card .inp:focus,
.woocommerce-account .auth-card input.input-text:focus { outline: none; border-color: hsl(var(--ink) / 0.55); box-shadow: 0 0 0 3px hsl(var(--ink) / 0.07); }
/* password reveal — on the REGISTER form WooCommerce's own script wraps the
   field in .password-input and injects a working .show-password-input eye +
   strength meter. We only position that native eye against the 48px input
   (fixed offset so it never drifts onto the strength bar). The LOGIN password
   is a plain field (no eye), matching the prototype. Do NOT add our own eye
   markup — that produced a duplicate on register + a dead one on login. */
.woocommerce-account .auth-card .password-input { position: relative; display: block; }
.woocommerce-account .auth-card .password-input .inp,
.woocommerce-account .auth-card .password-input input.input-text { padding-right: 44px; }
.woocommerce-account .auth-card .password-input .show-password-input { position: absolute; right: 14px; top: 24px; transform: translateY(-50%); cursor: pointer; }
/* remember / forgot row */
.woocommerce-account .auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 20px; }
.woocommerce-account .checkrow { display: inline-flex; align-items: center; gap: 9px; font-size: 0.84rem; color: hsl(var(--muted-foreground)); cursor: pointer; user-select: none; margin: 0; }
.woocommerce-account .checkrow input { width: 17px; height: 17px; accent-color: hsl(var(--ink)); cursor: pointer; }
.woocommerce-account .auth-row a { font-size: 0.84rem; color: hsl(var(--ink)); font-weight: 600; text-decoration: none; }
.woocommerce-account .auth-row a:hover { text-decoration: underline; }
/* buttons */
.woocommerce-account .auth-card .btn { height: 52px; }
/* divider + google */
.woocommerce-account .auth-divider { display: flex; align-items: center; gap: 14px; margin: 22px 0; color: hsl(var(--muted-foreground)); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; }
.woocommerce-account .auth-divider::before, .woocommerce-account .auth-divider::after { content: ""; flex: 1; height: 1px; background: hsl(var(--line) / 0.8); }
.woocommerce-account .btn-google { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 50px; border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--card)); font-family: var(--font-display); font-weight: 600; font-size: 0.95rem; color: hsl(var(--ink)); text-decoration: none; transition: border-color var(--duration-fast), background var(--duration-fast); }
.woocommerce-account .btn-google:hover { border-color: hsl(var(--ink) / 0.4); background: hsl(var(--ink) / 0.02); }
.woocommerce-account .btn-google svg { width: 19px; height: 19px; }
/* register perks */
.woocommerce-account .auth-perks { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 12px; }
.woocommerce-account .auth-perks li { display: flex; align-items: flex-start; gap: 11px; font-size: 0.92rem; color: hsl(var(--ink)); line-height: 1.45; }
.woocommerce-account .auth-perks .gal__check { width: 20px; height: 20px; margin-top: 1px; flex: none; background: hsl(160 84% 30%); }
.woocommerce-account .auth-perks .gal__check svg { width: 11px; height: 11px; stroke-width: 3.2; }
.woocommerce-account .auth-note { font-size: 0.78rem; color: hsl(var(--muted-foreground)); line-height: 1.55; margin: 16px 0 0; }
.woocommerce-account .auth-note a { color: hsl(var(--ink)); }
/* Woo may inject a privacy-policy consent block inside register form */
.woocommerce-account .auth-card .woocommerce-privacy-policy-text { font-size: 0.82rem; line-height: 1.55; color: hsl(var(--muted-foreground)); margin: 4px 0 16px; }
.woocommerce-account .auth-card .woocommerce-form-login__rememberme { margin: 0; }
@media (max-width: 720px) {
  .woocommerce-account .auth-grid { grid-template-columns: 1fr; max-width: 480px; }
}

/* sidebar */
.acct-side { position: sticky; top: calc(var(--topbar-h) + 86px); display: flex; flex-direction: column; gap: 16px; float: none; width: auto; }
.acct-user { padding: 20px; display: flex; align-items: center; gap: 14px; }
.acct-ava { width: 52px; height: 52px; border-radius: var(--radius-full); background: hsl(var(--ink)); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; display: flex; align-items: center; justify-content: center; flex: none; letter-spacing: -0.02em; }
.acct-user__name { font-family: var(--font-display); font-weight: 600; font-size: 1.08rem; letter-spacing: -0.02em; line-height: 1.1; }
.acct-user__mail { font-size: 0.78rem; color: hsl(var(--muted-foreground)); margin-top: 3px; word-break: break-all; }
.acct-nav { padding: 8px; display: flex; flex-direction: column; gap: 2px; }
.acct-nav__item { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: none; border-radius: var(--radius-md); padding: 11px 13px; font-family: var(--font-sans); font-size: 0.92rem; font-weight: 500; color: hsl(var(--ink)); text-decoration: none; transition: background .15s ease, color .15s ease; }
.acct-nav__item svg { width: 19px; height: 19px; flex: none; opacity: 0.75; }
.acct-nav__item:hover { background: hsl(var(--ink) / 0.05); color: hsl(var(--ink)); }
.acct-nav__item:hover svg { opacity: 1; }
.acct-nav__item.is-active { background: hsl(var(--ink)); color: #fff; font-weight: 600; box-shadow: var(--shadow-sm); }
.acct-nav__item.is-active svg { opacity: 1; }
.acct-nav__count { margin-left: auto; font-size: 0.72rem; font-weight: 700; font-variant-numeric: tabular-nums; background: hsl(var(--ink) / 0.08); color: hsl(var(--muted-foreground)); border-radius: var(--radius-full); padding: 2px 8px; }
.acct-nav__item.is-active .acct-nav__count { background: hsl(0 0% 100% / 0.18); color: #fff; }
.acct-nav__sep { height: 1px; background: hsl(var(--line) / 0.7); margin: 6px 10px; }
.acct-nav__item--logout { color: hsl(var(--muted-foreground)); }
.acct-nav__item--logout:hover { background: hsl(var(--destructive) / 0.08); color: hsl(var(--destructive)); }
.acct-nav__item--logout:hover svg { color: hsl(var(--destructive)); }

/* dashboard */
.er-dash .eyebrow { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; }
.dash-hello { background: #0d0f14; color: #fff; border-radius: var(--radius-3xl); padding: clamp(26px,3.4vw,38px); position: relative; overflow: hidden; isolation: isolate; }
.dash-hello__mega { position: absolute; right: -2%; top: 50%; transform: translateY(-50%); font-family: var(--font-display); font-weight: 700; font-size: clamp(8rem,18vw,15rem); line-height: 1; letter-spacing: -0.06em; color: hsl(0 0% 100% / 0.05); pointer-events: none; z-index: 0; white-space: nowrap; }
.dash-hello__c { position: relative; z-index: 1; }
.dash-hello .eyebrow { color: hsl(0 0% 100% / 0.55); margin: 0 0 10px; }
.dash-hello h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.7rem,3vw,2.4rem); letter-spacing: -0.04em; margin: 0; line-height: 1; color: #fff; }
.dash-hello p { color: hsl(0 0% 100% / 0.72); font-size: 0.98rem; line-height: 1.6; margin: 12px 0 0; max-width: 50ch; }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 18px; }
.stat { padding: 18px 20px; display: flex; flex-direction: column; gap: 4px; }
.stat__ic { width: 38px; height: 38px; border-radius: var(--radius-md); background: hsl(var(--surface-muted)); color: hsl(var(--ink)); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.stat__ic svg { width: 19px; height: 19px; }
.stat__num { font-family: var(--font-display); font-weight: 700; font-size: 1.85rem; letter-spacing: -0.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.stat__label { font-size: 0.78rem; color: hsl(var(--muted-foreground)); font-weight: 500; }
.dash-block { margin-top: 26px; }
.dash-block__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.dash-block__head h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; letter-spacing: -0.025em; margin: 0; }
.qa-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.qa { display: flex; align-items: center; gap: 14px; padding: 18px 20px; text-decoration: none; color: hsl(var(--ink)); }
.qa__ic { width: 44px; height: 44px; border-radius: var(--radius-md); background: hsl(var(--ink)); color: #fff; display: flex; align-items: center; justify-content: center; flex: none; transition: transform .25s ease; }
.qa__ic svg { width: 21px; height: 21px; }
.qa:hover .qa__ic { transform: scale(1.06) rotate(-3deg); }
.qa__t { font-family: var(--font-display); font-weight: 600; font-size: 1.02rem; letter-spacing: -0.02em; display: block; }
.qa__s { font-size: 0.8rem; color: hsl(var(--muted-foreground)); margin-top: 2px; display: block; }
.qa__arrow { margin-left: auto; color: hsl(var(--muted-foreground)); transition: transform .25s ease; }
.qa__arrow svg { width: 17px; height: 17px; }
.qa:hover .qa__arrow { transform: translateX(4px); color: hsl(var(--ink)); }

/* style the default Woo tables/forms used by Orders / Downloads / Addresses / Details */
.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > form > h3,
.woocommerce-account .woocommerce-MyAccount-content legend { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.4rem,2.4vw,1.8rem); letter-spacing: -0.035em; margin: 0 0 18px; }
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table { width: 100%; border-collapse: collapse; background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.74); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-glass); }
.woocommerce-account .shop_table th { text-align: left; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; color: hsl(var(--muted-foreground)); padding: 15px 18px; border-bottom: 1px solid hsl(var(--line) / 0.7); background: hsl(var(--surface-muted) / 0.5); }
.woocommerce-account .shop_table td { padding: 16px 18px; border-bottom: 1px solid hsl(var(--line) / 0.55); font-size: 0.92rem; vertical-align: middle; }
.woocommerce-account .shop_table tr:last-child td { border-bottom: none; }
.woocommerce-account .woocommerce-orders-table__cell-order-number a { font-weight: 700; color: hsl(var(--ink)); text-decoration: none; }
.woocommerce-account .woocommerce-button,
.woocommerce-account .button { display: inline-flex; align-items: center; justify-content: center; height: 42px; padding: 0 18px; border-radius: var(--radius-md); background: hsl(var(--ink)) !important; color: #fff !important; font-weight: 600; font-size: 0.88rem; border: none; text-decoration: none; }
.woocommerce-account .woocommerce-button:hover,
.woocommerce-account .button:hover { background: hsl(var(--ink) / 0.88) !important; }
.woocommerce-account .woocommerce-orders-table__cell-order-actions { white-space: normal; }
.woocommerce-account .woocommerce-orders-table__cell-order-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button { margin: 0 !important; }
.woocommerce-account .addresses .col-1,
.woocommerce-account .addresses .col-2 { width: 50%; }
.woocommerce-account .woocommerce-Address { background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.74); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-glass); }
.woocommerce-account .woocommerce-Address address { font-style: normal; font-size: 0.94rem; line-height: 1.75; color: hsl(var(--ink)); }
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-address-fields { background: hsl(var(--card)); border: 1px solid hsl(var(--line) / 0.74); border-radius: var(--radius-lg); padding: clamp(22px,3vw,32px); box-shadow: var(--shadow-glass); max-width: 760px; }
.woocommerce-account .woocommerce-MyAccount-content label { font-size: 0.8rem; font-weight: 600; color: hsl(var(--ink)); display: block; margin-bottom: 7px; }
.woocommerce-account .woocommerce-MyAccount-content input.input-text,
.woocommerce-account .woocommerce-MyAccount-content select { height: 48px; padding: 0 15px; border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--background)); font-size: 0.94rem; color: hsl(var(--ink)); width: 100%; }
.woocommerce-account .woocommerce-MyAccount-content input.input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content select:focus { outline: none; border-color: hsl(var(--ink) / 0.55); box-shadow: 0 0 0 3px hsl(var(--ink) / 0.07); }

@media (max-width: 980px) {
  /* Collapse the account shell to one column. Must match the desktop rule's
     specificity + !important (body + :has()), or the 268px grid wins and
     squeezes the content column to a vertical sliver. Also clear the explicit
     grid-column placements so nav + content stack instead of spilling into an
     implicit 2nd column. */
  body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 1fr !important; gap: 18px; }
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content { grid-column: 1 / -1 !important; }
  .acct-side { position: static; }
  .acct-nav { flex-direction: row; flex-wrap: nowrap; gap: 4px; padding: 6px; }
  .acct-nav__item { position: relative; width: auto; flex: 1 1 0; min-width: 0; justify-content: center; padding: 12px 0; }
  .acct-nav__item .lbl { display: none; }
  .acct-nav__item svg { opacity: 0.9; }
  .acct-nav__count { position: absolute; top: 4px; left: 50%; margin-left: 4px; min-width: 15px; height: 15px; padding: 0 4px; display: flex; align-items: center; justify-content: center; border-radius: 999px; font-size: 0.6rem; line-height: 1; }
  .acct-nav__sep { display: none; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .qa-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .stat-grid { grid-template-columns: 1fr 1fr; }
}


/* ============================================================
   CART PAGE — mirrors the everythingreps prototype (cart.css)
   ============================================================ */
/* Self-guttering + width-capped (see checkout .co-wrap note above): the cart
   is shortcode-rendered without the .er-shell/.wrap wrapper, so the gutter must
   live here or the item row + price overflow the mobile viewport. */
.woocommerce-cart .cart-wrap { display: grid; grid-template-columns: 1fr 372px; gap: clamp(28px,4vw,48px); align-items: start; width: 100%; max-width: var(--shell); margin-inline: auto; padding: clamp(20px,3vw,34px) clamp(16px,5vw,28px) clamp(40px,6vw,72px); box-sizing: border-box; }
/* wpautop wraps the blank lines in the shortcode-rendered cart in stray empty
   <p>s that become DIRECT children of .cart-wrap. On desktop one lands in the
   372px summary track and pushes the summary down a row — the right column then
   reads blank (mobile is single-column, so it never surfaced there). Drop any
   stray direct-child paragraph / empty node so items + summary keep both tracks.
   The template has no legitimate empty or <p> direct child, so this is safe. */
.woocommerce-cart .cart-wrap > p,
.woocommerce-cart .cart-wrap > :empty { display: none; }
/* Belt-and-suspenders: PIN the two real cells so no stray sibling (wpautop <p>,
   a whitespace-only div, or any plugin output that the :empty/p hide above may
   not match) can steal a track and shove the summary down a row. Desktop only —
   below 920px the base grid collapses to one column (see media query) and pinning
   to col 2 would spawn a phantom track, so we scope this to ≥921px. Any stray
   auto-flows into a leftover cell (hidden if empty, harmless otherwise). */
@media (min-width: 921px) {
	.woocommerce-cart .cart-wrap > .er-cart__items { grid-column: 1; grid-row: 1; }
	.woocommerce-cart .cart-wrap > .summary { grid-column: 2; grid-row: 1; }
}
.woocommerce-cart .er-cart__items { margin: 0; }
.woocommerce-cart .cart-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid hsl(var(--line) / 0.7); }
.woocommerce-cart .cart-head h2 { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.035em; margin: 0; }
.woocommerce-cart .cart-head__count { font-size: 0.88rem; color: hsl(var(--muted-foreground)); font-weight: 500; white-space: nowrap; }
.woocommerce-cart .cart-clear { background: none; border: none; font-size: 0.82rem; font-weight: 600; color: hsl(var(--muted-foreground)); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; transition: color var(--duration-fast); }
.woocommerce-cart .cart-clear svg { width: 14px; height: 14px; }
.woocommerce-cart .cart-clear:hover { color: hsl(var(--destructive)); }

.woocommerce-cart .cart-items { display: flex; flex-direction: column; }
.woocommerce-cart .crow { display: grid; grid-template-columns: 116px 1fr auto; gap: 20px; padding: 24px 0; border-bottom: 1px solid hsl(var(--line) / 0.55); align-items: center; }
.woocommerce-cart .crow__media { width: 116px; height: 92px; border-radius: var(--radius-md); overflow: hidden; background: hsl(var(--surface-muted)); }
.woocommerce-cart .crow__media a, .woocommerce-cart .crow__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.woocommerce-cart .crow__main { min-width: 0; }
.woocommerce-cart .crow__brand { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: hsl(var(--muted-foreground)); font-weight: 600; }
.woocommerce-cart .crow__name { font-family: var(--font-display); font-weight: 600; font-size: 1.18rem; letter-spacing: -0.025em; margin: 3px 0 6px; line-height: 1.2; }
.woocommerce-cart .crow__name a { color: inherit; text-decoration: none; }
.woocommerce-cart .crow__name a:hover { text-decoration: underline; }
.woocommerce-cart .crow__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.woocommerce-cart .crow__unit { font-size: 0.84rem; color: hsl(var(--muted-foreground)); font-variant-numeric: tabular-nums; }
.woocommerce-cart .crow__rm { background: none; border: none; color: hsl(var(--muted-foreground)); font-size: 0.78rem; padding: 0; margin-top: 12px; display: inline-flex; align-items: center; gap: 5px; text-decoration: none; cursor: pointer; transition: color var(--duration-fast); }
.woocommerce-cart .crow__rm svg { width: 13px; height: 13px; }
.woocommerce-cart .crow__rm:hover { color: hsl(var(--destructive)); }
.woocommerce-cart .crow__right { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.woocommerce-cart .crow__line { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }

.woocommerce-cart .er-sr-submit { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); }
.woocommerce-cart .woocommerce-cart-form.is-busy { opacity: 0.55; pointer-events: none; transition: opacity var(--duration-fast); }
.woocommerce-cart .crow .qty { display: inline-flex; align-items: center; border: 1px solid hsl(var(--line) / 0.9); border-radius: var(--radius-full); }
.woocommerce-cart .crow .qty .er-stepbtn, .woocommerce-cart .crow .qty .er-qtybtn { -webkit-appearance: none; appearance: none; width: 32px; height: 32px; margin: 0; border: none; background: transparent; box-shadow: none; color: hsl(var(--ink)); display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer; padding: 0; }
.woocommerce-cart .crow .qty .er-stepbtn:hover, .woocommerce-cart .crow .qty .er-qtybtn:hover { background: hsl(var(--ink) / 0.07); }
.woocommerce-cart .crow .qty .er-stepbtn svg, .woocommerce-cart .crow .qty .er-qtybtn svg { width: 14px; height: 14px; flex: none; stroke: hsl(var(--ink)); }
.woocommerce-cart .crow .qty .er-qty-input { width: 38px; height: 32px; border: none; background: transparent; text-align: center; font-weight: 600; font-size: 0.9rem; font-variant-numeric: tabular-nums; color: hsl(var(--ink)); -moz-appearance: textfield; padding: 0; }
.woocommerce-cart .crow .qty .er-qty-input::-webkit-outer-spin-button,
.woocommerce-cart .crow .qty .er-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.woocommerce-cart .size-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 3px 11px; border-radius: var(--radius-full); border: 1px solid hsl(var(--line) / 0.8); background: hsl(var(--background)); font-size: 0.74rem; font-weight: 600; color: hsl(var(--muted-foreground)); }
.woocommerce-cart .size-chip p { margin: 0; }

.woocommerce-cart .cart-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; flex-wrap: wrap; }
.woocommerce-cart .cart-back { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 600; color: hsl(var(--ink)); text-decoration: none; transition: gap var(--duration-fast) var(--ease-out-quart); }
.woocommerce-cart .cart-back svg { width: 16px; height: 16px; transition: transform var(--duration-fast); }
.woocommerce-cart .cart-back:hover { gap: 11px; }
.woocommerce-cart .cart-back:hover svg { transform: translateX(-3px); }

/* order summary */
.woocommerce-cart .summary { position: sticky; top: calc(var(--topbar-h) + var(--header-h) + 20px); padding: 26px; }
.woocommerce-cart .summary h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.03em; margin: 0 0 18px; }
.woocommerce-cart .sum-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; font-size: 0.94rem; color: hsl(var(--muted-foreground)); }
.woocommerce-cart .sum-row b { color: hsl(var(--ink)); font-weight: 600; font-variant-numeric: tabular-nums; }
.woocommerce-cart .sum-row .free { color: hsl(var(--success)); font-weight: 700; }
.woocommerce-cart .sum-row--disc b { color: hsl(var(--success)); }
.woocommerce-cart .sum-div { height: 1px; background: hsl(var(--line) / 0.7); margin: 10px 0; }
.woocommerce-cart .sum-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 6px 0 2px; }
.woocommerce-cart .sum-total span { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; letter-spacing: -0.02em; color: hsl(var(--ink)); }
.woocommerce-cart .sum-total b { font-family: var(--font-display); font-weight: 700; font-size: 1.85rem; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; color: hsl(var(--ink)); }
.woocommerce-cart .sum-tax { font-size: 0.76rem; color: hsl(var(--muted-foreground)); margin: 2px 0 0; }

.woocommerce-cart .ship-bar { margin: 4px 0 18px; }
.woocommerce-cart .ship-bar__txt { font-size: 0.8rem; color: hsl(var(--muted-foreground)); margin: 0 0 8px; }
.woocommerce-cart .ship-bar__txt b { color: hsl(var(--ink)); font-weight: 700; }
.woocommerce-cart .ship-bar__track { height: 7px; border-radius: var(--radius-full); background: hsl(var(--ink) / 0.08); overflow: hidden; }
.woocommerce-cart .ship-bar__fill { height: 100%; border-radius: var(--radius-full); background: hsl(var(--ink)); transition: width var(--duration-slow) var(--ease-out-quint); }
.woocommerce-cart .ship-bar__fill.is-full { background: hsl(var(--success)); }

.woocommerce-cart .coupon { display: flex; gap: 8px; margin: 16px 0 4px; }
.woocommerce-cart .coupon .inp { flex: 1; height: 46px; min-width: 0; padding: 0 14px; border-radius: var(--radius-md); border: 1px solid hsl(var(--input)); background: hsl(var(--background)); font-size: 0.92rem; color: hsl(var(--ink)); }
.woocommerce-cart .coupon .btn { height: 46px; flex: none; }
.woocommerce-cart .coupon-hint { font-size: 0.8rem; color: hsl(var(--muted-foreground)); margin: 8px 0 0; }
.woocommerce-cart .coupon-hint b { color: hsl(var(--ink)); font-weight: 700; }

.woocommerce-cart .summary .btn--solid { margin-top: 18px; height: 54px; font-size: 1rem; }
.woocommerce-cart .sum-secure { display: flex; align-items: center; justify-content: center; gap: 7px; color: hsl(var(--muted-foreground)); font-size: 0.78rem; margin-top: 14px; }
.woocommerce-cart .sum-secure svg { width: 14px; height: 14px; }
.woocommerce-cart .sum-pay { display: flex; gap: 7px; justify-content: center; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px solid hsl(var(--line) / 0.6); }
.woocommerce-cart .sum-pay .pay { height: 26px; padding: 0 10px; border: 1px solid hsl(var(--line) / 0.8); border-radius: 6px; display: inline-flex; align-items: center; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.02em; color: hsl(var(--muted-foreground)); }

/* empty state */
.woocommerce-cart .cart-empty-page { max-width: 460px; margin: clamp(28px,5vw,64px) auto; text-align: center; padding: clamp(36px,5vw,56px) clamp(24px,4vw,44px); }
.woocommerce-cart .cart-empty-page__ic { width: 76px; height: 76px; border-radius: var(--radius-full); background: hsl(var(--surface-muted)); color: hsl(var(--ink) / 0.55); display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; }
.woocommerce-cart .cart-empty-page__ic svg { width: 34px; height: 34px; }
.woocommerce-cart .cart-empty-page h2 { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; letter-spacing: -0.035em; margin: 0 0 10px; }
.woocommerce-cart .cart-empty-page p { color: hsl(var(--muted-foreground)); font-size: 1rem; line-height: 1.6; margin: 0 0 26px; }

/* cross-sell */
.woocommerce-cart .xsell { padding: clamp(20px,3vw,30px) 0 clamp(40px,6vw,72px); }
.woocommerce-cart .xsell__head { margin: 0 0 24px; }
.woocommerce-cart .xsell__head h2 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.6rem,2.8vw,2.1rem); letter-spacing: -0.04em; margin: 0; }
.woocommerce-cart .xsell__head p { color: hsl(var(--muted-foreground)); font-size: 0.98rem; margin: 10px 0 0; }

@media (max-width: 920px) {
  .woocommerce-cart .cart-wrap { grid-template-columns: 1fr; }
  .woocommerce-cart .summary { position: static; }
}
@media (max-width: 640px) {
  /* Mobile cart → card-based layout matching the app mockup (mobile/screens3.jsx):
     the "Cart" band (printed by cart.php) replaces the inline "Items" head,
     line items become rounded cards with the remove control as a top-right
     trash icon, and checkout becomes a fixed floating bottom bar. */
  .woocommerce-cart .cart-head,
  .woocommerce-cart .cart-foot { display: none; }
  .woocommerce-cart .cart-items { display: flex; flex-direction: column; gap: 12px; }

  .woocommerce-cart .crow {
    position: relative;
    grid-template-columns: 84px 1fr;
    grid-template-areas: "media main" "media right";
    gap: 4px 13px;
    padding: 12px;
    background: hsl(var(--card));
    border: 1px solid hsl(var(--line) / 0.6);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px hsl(var(--ink) / 0.04), 0 10px 26px -18px hsl(var(--ink) / 0.22);
    align-items: start;
  }
  .woocommerce-cart .crow__media { grid-area: media; width: 84px; height: 84px; border-radius: 14px; }
  .woocommerce-cart .crow__main { grid-area: main; padding-right: 24px; }
  .woocommerce-cart .crow__name { font-size: 1rem; margin: 2px 0 5px; }
  .woocommerce-cart .crow__rm {
    position: absolute; top: 10px; right: 10px; margin: 0; padding: 6px;
    font-size: 0; line-height: 0; color: hsl(var(--muted-foreground));
  }
  .woocommerce-cart .crow__rm svg { width: 18px; height: 18px; }
  .woocommerce-cart .crow__right {
    grid-area: right; align-self: end; flex-direction: row;
    align-items: center; justify-content: space-between; padding-top: 8px;
  }
  .woocommerce-cart .crow__line { font-size: 1.15rem; }

  /* summary → clean card; hide the desktop-only pay-method chips */
  .woocommerce-cart .summary { padding: 18px; border-radius: var(--radius-lg); }
  .woocommerce-cart .sum-pay { display: none; }

  /* #1: blend the "Your cart" band into the paper page. The surface-white band
     on the (greyer) paper body read as a stray white block below the title. */
  .woocommerce-cart .acct-band { background: transparent; border-bottom: none; }
  .woocommerce-cart .acct-band__inner { padding-block: 6px 14px; }

  /* #3: checkout is a normal STATIC full-width button at the end of the order
     summary — NOT a floating/fixed bar, so it never slides as the page scrolls
     (base .summary .btn--solid supplies the 18px top gap + 54px height). */
  .woocommerce-cart .sum-cta .btn--solid { width: 100%; }
}


/* ====== SIZE CHART MODAL (PDP "Size guide") ====== */
.er-size-scrim { position: fixed; inset: 0; background: hsl(var(--cta-dark) / 0.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: 220; opacity: 0; pointer-events: none; transition: opacity var(--duration-base) var(--ease-out-quart); }
.er-size-scrim.is-open { opacity: 1; pointer-events: auto; }
.er-size-modal { position: fixed; top: 50%; left: 50%; z-index: 225; width: min(760px, calc(100vw - 32px)); max-height: min(86vh, 760px); display: flex; flex-direction: column; background: hsl(var(--surface)); border-radius: var(--radius-xl, 20px); box-shadow: var(--shadow-lg); transform: translate(-50%, -48%) scale(0.98); opacity: 0; pointer-events: none; transition: opacity var(--duration-base) var(--ease-out-quart), transform var(--duration-base) var(--ease-out-quart); }
.er-size-modal.is-open { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.er-size-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 26px 18px; border-bottom: 1px solid hsl(var(--line) / 0.7); }
.er-size-modal__head h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.4rem; letter-spacing: -0.03em; margin: 0; }
.er-size-modal__head p { color: hsl(var(--muted-foreground)); font-size: 0.85rem; line-height: 1.5; margin: 6px 0 0; max-width: 46ch; }
.er-size-modal__head .icon-btn { flex: none; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-md); color: hsl(var(--ink)); background: transparent; border: none; cursor: pointer; }
.er-size-modal__head .icon-btn:hover { background: hsl(var(--ink)); }
.er-size-modal__head .icon-btn:hover svg { stroke: #fff !important; }
.er-size-modal__head .icon-btn svg { width: 20px !important; height: 20px !important; max-width: none !important; flex: none !important; stroke: hsl(var(--ink)) !important; }
.er-size-modal__body { padding: 18px 26px 26px; overflow-y: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 26px; }
.er-size-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.er-size-table th { text-align: left; font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; color: hsl(var(--muted-foreground)); padding: 8px 8px; border-bottom: 1.5px solid hsl(var(--line)); white-space: nowrap; }
.er-size-table td { padding: 8px 8px; font-size: 0.84rem; color: hsl(var(--ink)); border-bottom: 1px solid hsl(var(--line) / 0.45); }
.er-size-table tr:last-child td { border-bottom: none; }
.er-size-table__us { font-weight: 700; }
.er-size-table tbody tr:hover td { background: hsl(var(--surface-muted) / 0.6); }
body.admin-bar .er-size-modal { top: calc(50% + 16px); }
@media (max-width: 620px) {
  .er-size-modal__body { grid-template-columns: 1fr; }
  .er-size-modal__head h3 { font-size: 1.2rem; }
}
