/*!
 * Xohan Commerce — WordPress, WooCommerce & Elementor integration styles
 * Author: Talukdar Galib <https://talukdargalib.pro.bd> | Copyright: Xohan Digital | License: GPL-2.0-or-later
 * Everything lives in cascade layers, so Elementor / UAE widget styles (unlayered) always win —
 * fonts, sizes, colours and spacing set in the Elementor Style tab are never fought by the theme.
 */

@layer components {
  /* ---------- WordPress core ---------- */
  .screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
  .screen-reader-text:focus { clip-path: none; height: auto; width: auto; left: 8px; top: 8px; z-index: 100000; background: var(--surface); padding: .75rem 1rem; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
  .site-main:focus { outline: none; }
  .alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
  .alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
  .aligncenter { display: block; margin-inline: auto; }
  .alignwide { width: min(100%, calc(var(--container) + 10vw)); max-width: none; margin-inline: auto; }
  .alignfull { width: 100vw; max-width: none; margin-inline: calc(50% - 50vw); }
  .wp-caption, figure.wp-block-image { max-width: 100%; margin-block: 1rem; }
  .wp-caption-text, figcaption { font-size: var(--fs-sm); color: var(--text-muted); margin-top: .4rem; }
  .sticky .post-card { border-color: var(--brand); }
  .gallery:not([data-gallery]) { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
  .entry-content > * + * { margin-top: 1rem; }
  .post-card h2.entry-title { font-size: var(--fs-lg); }
  .post-thumb { margin: 0 0 var(--space-6); border-radius: var(--radius-lg); overflow: hidden; }
  .post-thumb img { width: 100%; }
  .post-hero .entry-meta { display: flex; flex-wrap: wrap; gap: 1rem; color: var(--text-muted); font-size: var(--fs-sm); margin-top: .75rem; }
  .post-hero .post-categories, .post-hero .cat-links { display: inline-flex; gap: .4rem; list-style: none; padding: 0; margin: .5rem 0; }
  .tag-list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: var(--space-5); }
  .tag-list a { padding: .3rem .8rem; border-radius: var(--radius-full); background: var(--surface-2); font-size: var(--fs-sm); }
  .post-navigation .nav-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1rem; margin-block: var(--space-6); }
  .post-navigation a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--border); border-radius: var(--radius); }
  .post-navigation a small, .post-navigation a span { display: block; font-size: var(--fs-xs); color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
  .comments-area { margin-top: var(--space-7); }
  .comment-list { list-style: none; padding: 0; }
  .comment-list .comment-body { padding: 1rem 0; border-bottom: 1px solid var(--border); }
  .comment-form input:not([type="checkbox"]):not([type="submit"]), .comment-form textarea,
  .woocommerce form .input-text, .woocommerce form select, .woocommerce-page form .input-text, .search-form .search-field {
    width: 100%; padding: .75rem 1rem; border: 1.5px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); color: var(--text); transition: border-color var(--dur), box-shadow var(--dur);
  }
  .comment-form input:focus, .comment-form textarea:focus, .woocommerce form .input-text:focus, .woocommerce form select:focus {
    outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px color-mix(in oklch, var(--brand) 18%, transparent);
  }
  .widget { margin-bottom: var(--space-5); }
  .widget ul { list-style: none; padding: 0; }
  .widget-area .widget { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
  .site-footer .widget-title { font-size: var(--fs-base); }

  /* ---------- Buttons: WooCommerce & core buttons look like theme buttons ---------- */
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
  .wp-block-button__link, .comment-form .submit, .wp-element-button {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1.35rem;
    border-radius: var(--radius); border: 1.5px solid var(--brand); background: var(--brand); color: var(--brand-contrast);
    font-weight: 600; line-height: 1.2; cursor: pointer; transition: background var(--dur), border-color var(--dur), color var(--dur);
  }
  .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .comment-form .submit:hover { background: var(--brand-hover); border-color: var(--brand-hover); color: var(--brand-contrast); }
  .woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--accent); border-color: var(--accent); color: #111; }
  .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: #111; }
  .woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .55; cursor: not-allowed; }
  .pc-foot .button.btn-outline { background: transparent; color: var(--brand-text); }
  .pc-foot .button.btn-outline:hover { background: var(--brand); color: var(--brand-contrast); }
  [data-cart-btn="solid"] .pc-foot .button.btn-outline { background: var(--brand); color: var(--brand-contrast); }
  .pc-foot .added_to_cart { display: block; text-align: center; font-size: var(--fs-sm); margin-top: .4rem; color: var(--brand-text); }
  .pc-foot .button.loading { opacity: .7; }
  .pc-foot .button.added::after { content: "\f00c"; font: var(--fa-font-solid); margin-left: .35rem; }
  .badge-out { background: var(--text); color: var(--bg); }
  .pc-actions [aria-pressed="true"] { background: var(--brand); color: var(--brand-contrast); }
  .pc-actions [data-xc-wishlist][aria-pressed="true"] i::before, .xc-tool-btn[data-xc-wishlist][aria-pressed="true"] i::before { content: "\f004"; font-weight: 900; }

  /* ---------- Notices ---------- */
  .woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .woocommerce-notice {
    list-style: none; margin: 0 0 var(--space-5); padding: 1rem 1.25rem 1rem 3rem; border-radius: var(--radius); border: 1px solid var(--border);
    background: var(--surface); position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; justify-content: space-between;
  }
  .woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { position: absolute; left: 1.1rem; top: 1.05rem; font: var(--fa-font-solid); }
  .woocommerce-message { border-color: color-mix(in oklch, var(--success) 40%, var(--border)); background: color-mix(in oklch, var(--success) 7%, var(--surface)); }
  .woocommerce-message::before { content: "\f058"; color: var(--success); }
  .woocommerce-info { border-color: color-mix(in oklch, var(--info) 40%, var(--border)); background: color-mix(in oklch, var(--info) 7%, var(--surface)); }
  .woocommerce-info::before { content: "\f05a"; color: var(--info); }
  .woocommerce-error { border-color: color-mix(in oklch, var(--danger) 40%, var(--border)); background: color-mix(in oklch, var(--danger) 6%, var(--surface)); flex-direction: column; align-items: flex-start; }
  .woocommerce-error::before { content: "\f06a"; color: var(--danger); }

  /* ---------- Shop loop ---------- */
  .woocommerce-result-count { color: var(--text-muted); font-size: var(--fs-sm); margin: 0; }
  .woocommerce-ordering select { padding: .55rem .9rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
  .xc-woo .woocommerce-products-header { margin-bottom: var(--space-5); }
  .xc-woo .woocommerce-products-header__title { font-size: var(--fs-3xl); }
  .xc-woo .woocommerce-result-count, .xc-woo .woocommerce-ordering { margin-bottom: var(--space-5); }
  @media (min-width: 640px) { .xc-woo .woocommerce-result-count { float: left; } .xc-woo .woocommerce-ordering { float: right; } .xc-woo ul.products { clear: both; } }
  ul.products.products-grid { display: grid; }
  @media (min-width: 1024px) { ul.products.products-grid[style*="--cols"] { grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); } }
  ul.products.products-grid li.product, ul.products.carousel-track li.product { width: auto; margin: 0; float: none; }
  ul.products li.product .pc-title.woocommerce-loop-product__title { padding: 0; margin: 0; font-size: var(--fs-sm); }
  ul.products.carousel-track::before, ul.products.carousel-track::after { content: none; display: none; }
  .pc-media { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--surface-2); }
  .woocommerce-pagination { margin-top: var(--space-6); }
  .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; list-style: none; padding: 0; border: 0; }
  .woocommerce-pagination ul.page-numbers li { border: 0; }

  /* ---------- Single product ---------- */
  .single-product div.product { display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); align-items: start; }
  @media (min-width: 900px) { .single-product div.product { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
  .single-product div.product > .woocommerce-product-gallery, .single-product div.product > .summary { width: auto; float: none; margin: 0; }
  .single-product div.product > .woocommerce-tabs, .single-product div.product > .related, .single-product div.product > .upsells { grid-column: 1 / -1; }
  .woocommerce-product-gallery:not([data-gallery]) { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-2); }
  .woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; padding: .5rem; list-style: none; margin: 0; }
  .woocommerce-product-gallery .flex-control-thumbs img { border-radius: var(--radius-sm); cursor: pointer; opacity: .65; transition: opacity var(--dur); }
  .woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
  .woocommerce-product-gallery__trigger { position: absolute; top: 1rem; right: 1rem; z-index: 3; width: 40px; height: 40px; border-radius: 50%; background: var(--surface); display: grid; place-items: center; box-shadow: var(--shadow); }
  .summary .product_title { font-size: var(--fs-3xl); margin-bottom: .5rem; }
  .summary .price { font-size: var(--fs-2xl); font-weight: 700; color: var(--brand-text); margin: .75rem 0; display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
  .summary .price del { font-size: var(--fs-lg); color: var(--text-muted); font-weight: 400; }
  .summary .price ins { text-decoration: none; }
  .summary .woocommerce-product-details__short-description { color: var(--text-muted); margin-bottom: var(--space-5); }
  .xc-buy-form form.cart, .summary form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin-block: var(--space-5); }
  .xc-buy-form form.cart .quantity input.qty, .summary form.cart .quantity input.qty { width: 5rem; height: 100%; min-height: 48px; text-align: center; border: 1.5px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
  .xc-buy-form form.cart .single_add_to_cart_button, .summary form.cart .single_add_to_cart_button { flex: 1 1 200px; min-height: 48px; }
  .summary .variations { margin-bottom: 1rem; }
  .summary .variations th, .summary .variations td { padding: .4rem 0; text-align: left; }
  .summary .product_meta { display: grid; gap: .3rem; font-size: var(--fs-sm); color: var(--text-muted); border-top: 1px solid var(--border); padding-top: 1rem; margin-top: 1rem; }
  .summary .product_meta a { color: var(--text); }
  .woocommerce-product-rating { display: flex; gap: .5rem; align-items: center; font-size: var(--fs-sm); }
  .star-rating { color: var(--accent); }
  .xc-delivery-info { list-style: none; padding: 1rem 1.25rem; margin: var(--space-5) 0; display: grid; gap: .55rem; background: var(--brand-soft); border-radius: var(--radius); font-size: var(--fs-sm); }
  .xc-delivery-info i { width: 1.25rem; color: var(--brand-text); }
  .xc-order-call { font-size: var(--fs-sm); margin: 0 0 1rem; }
  .xc-order-call a { font-weight: 700; color: var(--brand-text); }
  .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; padding: 0; margin: 0 0 var(--space-5); border-bottom: 1px solid var(--border); }
  .woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
  .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
  .woocommerce-tabs ul.tabs li a { display: block; padding: .8rem 1.1rem; font-weight: 600; color: var(--text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
  .woocommerce-tabs ul.tabs li.active a { color: var(--brand-text); border-color: var(--brand); }
  .woocommerce-tabs .panel { line-height: 1.75; }
  .related.products > h2, .upsells.products > h2 { font-size: var(--fs-2xl); margin-bottom: var(--space-5); }

  /* ---------- Cart & checkout (classic) ---------- */
  .woocommerce table.shop_table { border: 1px solid var(--border); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--surface); width: 100%; }
  .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .9rem 1rem; border-top: 1px solid var(--border); text-align: left; vertical-align: middle; }
  .woocommerce table.shop_table thead th { border-top: 0; background: var(--surface-2); font-size: var(--fs-sm); }
  .woocommerce table.shop_table img { width: 64px; border-radius: var(--radius-sm); }
  .woocommerce table.shop_table .product-remove a { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: var(--danger); }
  .woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout:not(.xc-checkout) #order_review { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
  .woocommerce .coupon { display: flex; gap: .5rem; flex-wrap: wrap; }
  .woocommerce .coupon .input-text { width: auto; flex: 1 1 160px; }
  .woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
  .woocommerce form .form-row label { display: block; font-weight: 600; font-size: var(--fs-sm); margin-bottom: .35rem; }
  .woocommerce form .form-row .required { color: var(--danger); text-decoration: none; }
  .woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger); }
  .woocommerce-checkout .col2-set { display: grid; gap: var(--space-5); }
  .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
  @media (min-width: 1024px) {
    .woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: var(--space-6); align-items: start; }
    .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
    .woocommerce-checkout .xc-co-side { position: sticky; top: calc(var(--sticky-offset, 0px) + 1rem); }
    .woocommerce-checkout .col2-set { grid-template-columns: 1fr; }
  }
  .wc_payment_methods { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .6rem; }
  .wc_payment_methods > li { border: 1.5px solid var(--border); border-radius: var(--radius); padding: .85rem 1rem; }
  .wc_payment_methods > li:has(input:checked) { border-color: var(--brand); background: var(--brand-soft); }
  .wc_payment_methods label { font-weight: 600; display: inline-flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
  .wc_payment_methods label img { max-height: 28px; width: auto; display: inline-block; }
  .payment_box { font-size: var(--fs-sm); color: var(--text-muted); margin-top: .5rem; }
  #place_order { width: 100%; min-height: 52px; font-size: var(--fs-lg); }
  .xc-checkout-notice { font-size: var(--fs-sm); }
  .xc-otp-row { display: flex; gap: .5rem; flex-wrap: wrap; }
  .xc-otp-row .input-text { flex: 1 1 140px; letter-spacing: .3em; }
  .xc-otp-status { display: block; font-size: var(--fs-sm); margin-top: .35rem; }
  .xc-otp-status.is-ok { color: var(--success); }
  .xc-otp-status.is-error { color: var(--danger); }
  .xc-otp.is-verified .xc-otp-row { display: none; }
  .woocommerce-order-overview { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; }
  .woocommerce-order-overview li { background: var(--surface-2); border-radius: var(--radius); padding: 1rem; font-size: var(--fs-sm); }
  .woocommerce-order-overview strong { display: block; font-size: var(--fs-base); color: var(--text); }
  .xc-tracking { margin-top: var(--space-6); padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); }

  /* ---------- My account ---------- */
  .woocommerce-account .woocommerce { display: grid; gap: var(--space-6); }
  @media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 260px minmax(0, 1fr); } }
  .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
  .woocommerce-MyAccount-navigation ul { list-style: none; padding: .5rem; margin: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
  .woocommerce-MyAccount-navigation a { display: block; padding: .7rem 1rem; border-radius: var(--radius); }
  .woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--brand-soft); color: var(--brand-text); font-weight: 600; }
  .woocommerce-account .u-columns { display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
  .woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { width: auto; float: none; }
  .woocommerce form.login, .woocommerce form.register { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); margin: 0; }

  /* ---------- Mini cart drawer ---------- */
  .widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }
  .widget_shopping_cart_content .drawer-foot { margin-top: auto; padding-inline: 0; }
  .woocommerce-mini-cart { list-style: none; padding: 0; margin: 0; }
  .mini-item .mini-title { font-size: var(--fs-sm); font-weight: 600; margin: 0; }
  .mini-item img { width: 64px; height: 64px; object-fit: cover; }
  .woocommerce-mini-cart__total { display: flex; justify-content: space-between; font-weight: 700; margin: 0; }
  .xc-empty-cart { text-align: center; padding: var(--space-7) var(--space-4); display: grid; gap: var(--space-4); justify-items: center; }
  .xc-empty-cart > i { font-size: 2.5rem; color: var(--text-muted); }

  /* ---------- Live search, quick view, wishlist (Xohan Essentials) ---------- */
  .header-search { position: relative; }
  .xc-search-results { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 60; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: .4rem; max-height: min(70vh, 480px); overflow-y: auto; }
  .xc-search-results[hidden] { display: none; }
  .xc-search-results a { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .5rem; border-radius: var(--radius-sm); }
  .xc-search-results a:hover, .xc-search-results a[aria-selected="true"] { background: var(--brand-soft); }
  .xc-search-results img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius-sm); }
  .xc-search-results .xc-sr-title { font-size: var(--fs-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .xc-search-results .xc-sr-price { font-size: var(--fs-sm); color: var(--brand-text); font-weight: 700; }
  .xc-search-results .xc-sr-all { display: block; text-align: center; font-weight: 600; color: var(--brand-text); }
  .xc-search-results .xc-sr-empty { padding: .9rem; color: var(--text-muted); font-size: var(--fs-sm); }
  dialog.xc-modal { border: 0; border-radius: var(--radius-xl); padding: 0; width: min(920px, 94vw); max-height: 90vh; background: var(--surface); color: var(--text); box-shadow: var(--shadow-lg); }
  dialog.xc-modal::backdrop { background: rgb(0 0 0 / .55); }
  .xc-qv-body { padding: var(--space-6); display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); }
  @media (min-width: 760px) { .xc-qv-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
  .xc-qv-body img { width: 100%; border-radius: var(--radius-lg); background: var(--surface-2); }
  .xc-modal-close { position: absolute; top: .75rem; right: .75rem; width: 40px; height: 40px; border-radius: 50%; background: var(--surface-2); display: grid; place-items: center; z-index: 2; }
  .xc-wishlist-empty { text-align: center; padding: var(--space-7) 0; }
  /* Page colour presets (Page design → Colour preset) are all dark enough for white text. */
  [data-theme] { --brand-on: #ffffff; }
  .xc-mode-form { max-width: 460px; margin-inline: auto; }
  .xc-mode-form .wpcf7-form { border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
  .hs-card img { width: 56px; height: 56px; object-fit: cover; }
  .deal-banner > img { width: min(280px, 34%); height: auto; }
  .buy-box > img { width: 100%; height: auto; }
  .xc-buy-form .stock { margin: 0 0 .5rem; font-size: var(--fs-sm); }
  /* Comments */
  .comment-respond { margin-top: var(--space-6); padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
  .comment-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
  .comment-form > p { grid-column: 1 / -1; margin: 0 0 1rem; }
  .comment-form .comment-form-author, .comment-form .comment-form-email { grid-column: auto; }
  .comment-form label { display: block; font-weight: 600; font-size: var(--fs-sm); margin-bottom: .35rem; }
  .comment-form .comment-form-cookies-consent { display: flex; gap: .5rem; align-items: center; } .comment-form .comment-form-cookies-consent label { display: inline; font-weight: 400; margin: 0; }
  .comment-form .comment-notes, .comment-form .logged-in-as { font-size: var(--fs-sm); color: var(--text-muted); }
  @media (max-width: 600px) { .comment-form { grid-template-columns: 1fr; } }
  .comment-list { list-style: none; padding: 0; display: grid; gap: 1rem; } .comment-list .comment-body { padding: 1rem 1.25rem; border-radius: var(--radius); background: var(--bg-alt); }
  .comment-list .avatar { border-radius: 50%; float: left; margin-right: .75rem; }
  /* Single product: Buy Now / WhatsApp / call buttons */
  .summary form.cart .xc-buy-now, .xc-buy-form form.cart .xc-buy-now { flex: 1 1 160px; min-height: 48px; background: var(--brand); color: var(--brand-contrast); border-color: var(--brand); }
  .summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
  .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 160px; min-height: 48px; }
  @media (max-width: 600px) {
    .summary form.cart .xc-buy-now, .summary form.cart .single_add_to_cart_button { flex: 1 1 calc(50% - .5rem); }
    .summary form.cart .quantity { flex: 0 0 100%; }
    .summary form.cart .quantity:has(.xc-qty-btn) { justify-content: space-between; }
  }
  .summary form.cart .single_add_to_cart_button:has(~ .xc-buy-now) { background: var(--surface); color: var(--text); border: 1.5px solid var(--border-strong); }
  .xc-order-alt { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: .25rem 0 1rem; }
  .xc-order-alt .xc-wa-order { background: #25d366; color: #fff; border-color: #25d366; }
  .xc-order-alt .xc-wa-order:hover { background: #1ebe5b; }
  .xc-order-alt .btn { min-height: 44px; justify-content: center; }
  @media (max-width: 480px) { .xc-order-alt { grid-template-columns: 1fr; } }
  .xc-product-crumbs { margin-bottom: var(--space-4); }
  /* Compact product lists: neutralise WooCommerce widget floats / clearfix cells. */
  .mini-prod::before, .mini-prod::after { display: none !important; }
  .mini-prod img { float: none !important; width: 80px !important; height: 80px; object-fit: cover; margin: 0 !important; }
  .mini-prod > div { min-width: 0; }
  /* Compare */
  .xc-no-compare [data-xc-compare] { display: none !important; }
  .xc-compare-empty { text-align: center; padding: var(--space-7) 0; }
  .xc-compare-empty > i, .xc-wishlist-empty > i { font-size: 2.5rem; color: var(--brand-text); margin-bottom: var(--space-3); display: block; }
  .xc-compare[aria-busy="true"] { opacity: .6; }
  .xc-compare .table-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
  .xc-compare .compare-table, .elementor-widget-xohan-compare .compare-table { width: 100%; border-collapse: collapse; margin: 0; }
  .compare-table thead th:first-child, .compare-table tbody th { text-align: left; background: var(--bg-alt); font-weight: 700; width: 180px; }
  .compare-table .cmp-product { vertical-align: top; }
  .compare-table .cmp-img { display: block; }
  .compare-table .cmp-name { display: block; font-weight: 700; color: var(--text); margin-bottom: .6rem; line-height: 1.35; }
  .compare-table .price { color: var(--brand-text); font-weight: 800; }
  .compare-table .price del { color: var(--text-muted); font-weight: 400; font-size: .85em; }
  .compare-table .rating, .compare-table .price { justify-content: center; }
  .compare-table .in-stock { color: var(--success, #047857); font-weight: 700; }
  .compare-table .out-of-stock { color: var(--danger, #b91c1c); font-weight: 700; }
  .compare-table .muted { color: var(--text-muted); }
  .cmp-remove { width: 36px; height: 36px; border-radius: 50%; display: inline-grid; place-items: center; color: var(--text-muted); }
  .cmp-remove:hover, .cmp-remove:focus-visible { background: var(--danger-soft, #fee2e2); color: var(--danger, #b91c1c); }
  .xc-single-tools { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-block: var(--space-3); }
  .xc-tool-btn { display: inline-flex; align-items: center; gap: .45rem; font-size: var(--fs-sm); font-weight: 600; color: var(--text-muted); padding: .25rem 0; }
  .xc-tool-btn:hover, .xc-tool-btn[aria-pressed="true"] { color: var(--brand-text); }
  /* Brands */
  .brand-az { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--space-5); }
  .brand-row .brand-logo { gap: .35rem; text-align: center; padding: .75rem; }
  .brand-logo { display: flex; flex-direction: column; align-items: center; justify-content: center; }
  .brand-logo img { max-height: 48px; width: auto; object-fit: contain; }
  .brand-logo i { font-size: 1.35rem; }
  .brand-logo .b-count { font-size: var(--fs-xs); font-weight: 500; color: var(--text-muted); }
  .xc-brands-tall-yes .brand-logo { height: 120px; }
  .xc-brands-gray-yes .brand-logo img { filter: grayscale(1); opacity: .75; transition: filter var(--dur), opacity var(--dur); }
  .xc-brands-gray-yes .brand-logo:hover img { filter: none; opacity: 1; }
  .brand-row [id] { scroll-margin-top: 140px; }

  /* ---------- Elementor ---------- */
  .elementor-widget-container > .products-grid { margin: 0; }
  .elementor-page .site-main > .container:empty { display: none; }
  .xc-section-title .elementor-heading-title { text-wrap: balance; }
}

@layer pages {
  /* Woo blocks (Cart/Checkout blocks) — brand colour for primary actions. */
  .wc-block-components-button:not(.is-link) { background: var(--brand); color: var(--brand-contrast); border-radius: var(--radius); }
  .wc-block-components-button:not(.is-link):hover { background: var(--brand-hover); }
}

@layer components {
  .m-nav .menu-item-has-children { position: relative; }
  .m-nav .menu-item-has-children > a { padding-right: 2.75rem; }
  .m-sub-toggle { position: absolute; right: 0; top: .35rem; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: var(--radius-sm); }
  .m-sub-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
  .m-nav .sub-menu { list-style: none; padding-left: 1rem; }
}

@layer components {
  .nav-list > .has-mega { position: static; }
  .primary-nav .container { position: relative; }
  .nav-list > .has-mega > .mega { left: 50%; transform: translate(-50%, 8px); grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
  .nav-list > .has-mega:hover > .mega, .nav-list > .has-mega:focus-within > .mega { transform: translate(-50%, 0); }
  .mega .mega-col h5 { margin: 0 0 .35rem; }
  .mega .mega-col h5 a { font-weight: 700; padding: .4rem .8rem; }
}

@layer components {
  .footer-legal { display: flex; flex-wrap: wrap; gap: 1rem; }
  .footer-legal li { list-style: none; display: inline; }
  :is(.newsletter, .xc-mode-form) .wpcf7 { width: 100%; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: stretch; background: var(--surface); border-radius: var(--radius-full); padding: .35rem; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form > p, :is(.newsletter, .xc-mode-form) .wpcf7-form > div:not(.wpcf7-response-output):not(.xes-hp) { margin: 0; display: contents; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form label { flex: 1 1 200px; margin: 0; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form-control-wrap { display: block; flex: 1 1 200px; min-width: 0; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form br, :is(.newsletter, .xc-mode-form) .wpcf7-response-output:empty, .newsletter .hidden-fields-container { display: none !important; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form label.screen-reader-text { flex: 0 0 auto; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form input[type="email"] { width: 100%; border: 0; background: transparent; padding: .8rem 1.1rem; color: var(--text); font: inherit; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form input[type="email"]:focus { outline: none; }
  :is(.newsletter, .xc-mode-form) .wpcf7-form input[type="submit"] { background: var(--accent); color: #111; border: 0; border-radius: var(--radius-full); padding: .8rem 1.5rem; font-weight: 700; cursor: pointer; }
  :is(.newsletter, .xc-mode-form) .wpcf7-spinner { display: none !important; }
  :is(.newsletter, .xc-mode-form) .wpcf7-response-output { flex-basis: 100%; margin: .25rem .75rem !important; border: 0 !important; padding: 0 !important; color: var(--text); font-size: var(--fs-sm); }
  @media (max-width: 560px) { :is(.newsletter, .xc-mode-form) .wpcf7-form { border-radius: var(--radius-lg); } :is(.newsletter, .xc-mode-form) .wpcf7-form input[type="submit"] { width: 100%; } }
}

@layer components {
  /* WooCommerce's clearfix pseudo-elements would become empty grid cells. */
  ul.products::before, ul.products::after, .woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; display: none !important; }
  .pc-badges .onsale, .pc-badges .badge { position: static; inset: auto; margin: 0; min-width: 0; min-height: 0; line-height: 1.4; }
  .single-product div.product > .onsale, .single-product .woocommerce-product-gallery ~ .onsale, .single-product span.onsale {
    position: absolute; top: 1rem; left: 1rem; right: auto; z-index: 4; margin: 0; min-width: 0; min-height: 0; line-height: 1.4;
    padding: .3rem .75rem; border-radius: var(--radius-full); background: var(--danger); color: #fff; font-size: var(--fs-xs); font-weight: 700;
  }
  .single-product div.product { position: relative; }
}

@layer components {
  /* Elementor single-product template: WooCommerce's 48% float widths must not apply inside containers. */
  .xc-product-template .woocommerce-product-gallery, .xc-product-template .summary, .elementor .summary, .elementor .woocommerce-product-gallery { width: auto !important; float: none !important; margin: 0; }
  .single-product div.product.xc-product-template, .single-product div.product.xc-single-product { display: block; }
  .xc-single-product .product-layout > .gallery, .xc-single-product .product-layout > .summary { width: auto; float: none; margin: 0; }
  .xc-single-product .gallery .gallery-main { width: auto; display: block; margin: 0; }
  .xc-single-product .gallery { opacity: 1 !important; }
}

/* =====================================================================
   WooCommerce classic Cart / Checkout / Account — Xohan design
   (works with the shortcode pages the demo sets up; Blocks pages keep Woo's own layout)
   ===================================================================== */
@layer pages {
  /* Fields: one field per .form-row (theme .form-row is a multi-column helper elsewhere). */
  .woocommerce form .form-row { display: block; grid-template-columns: none; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none; width: auto; }
  .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper,
  .woocommerce-address-fields__field-wrapper, .woocommerce-EditAccountForm { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
  .woocommerce-billing-fields__field-wrapper > *, .woocommerce-shipping-fields__field-wrapper > *, .woocommerce-additional-fields__field-wrapper > *, .woocommerce-address-fields__field-wrapper > * { grid-column: 1 / -1; }
  .woocommerce-billing-fields__field-wrapper > .form-row-first, .woocommerce-billing-fields__field-wrapper > .form-row-last,
  .woocommerce-shipping-fields__field-wrapper > .form-row-first, .woocommerce-shipping-fields__field-wrapper > .form-row-last,
  .woocommerce-address-fields__field-wrapper > .form-row-first, .woocommerce-address-fields__field-wrapper > .form-row-last { grid-column: auto; }
  @media (max-width: 600px) { .woocommerce-billing-fields__field-wrapper > *, .woocommerce-shipping-fields__field-wrapper > *, .woocommerce-address-fields__field-wrapper > * { grid-column: 1 / -1 !important; } }
  .woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { width: 100%; }
  .woocommerce form .form-row .woocommerce-input-wrapper { display: block; }
  .woocommerce form .form-row label .optional { font-weight: 400; color: var(--text-muted); }
  .woocommerce form textarea { min-height: 96px; }

  /* Checkout: two columns, cards. */
  .woocommerce-checkout #customer_details { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
  .woocommerce-checkout #customer_details h3, .woocommerce-checkout #order_review_heading { font-size: var(--fs-lg); display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; }
  .woocommerce-checkout .woocommerce-billing-fields > h3::before { content: "\f007"; font: var(--fa-font-solid, 900 1em/1 "Font Awesome 7 Free"); color: var(--brand-text); }
  .woocommerce-checkout #order_review_heading::before { content: "\f290"; font: var(--fa-font-solid, 900 1em/1 "Font Awesome 7 Free"); color: var(--brand-text); }
  .woocommerce-checkout .woocommerce-additional-fields { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px dashed var(--border); }
  .woocommerce-checkout #ship-to-different-address { font-size: var(--fs-base); margin-top: var(--space-4); }
  .woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; }
  /* Checkout layout: cards on the left, summary on the right. */
  .xc-checkout .xc-co-main { display: grid; gap: var(--space-5); min-width: 0; }
  .xc-checkout .xc-co-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
  .xc-checkout .xc-co-card > h3 { font-size: var(--fs-lg); display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; }
  .xc-checkout .xc-co-card > h3 i { color: var(--brand-text); }
  .xc-checkout .xc-ship-hint { margin: .75rem 0 0; font-size: var(--fs-xs); color: var(--text-muted); display: flex; gap: .4rem; align-items: center; }
  .xc-checkout .xc-ship-methods .pay-option input { margin: 0; }
  .xc-checkout .xc-pay-card #payment { margin: 0; }
  .xc-checkout .xc-pay-card ul.payment_methods { margin: 0; }
  .xc-checkout .xc-co-side { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); min-width: 0; }
  .xc-checkout .xc-co-side #order_review_heading { padding: 0; border: 0; background: none; margin: 0 0 .5rem; }
  .xc-checkout .xc-co-side #order_review { border: 0; padding: 0; border-radius: 0; background: none; position: static; }
  .xc-checkout #order_review td.product-name { display: flex; align-items: center; gap: .75rem; font-size: var(--fs-sm); }
  .xc-checkout .xc-review-thumb { position: relative; flex: 0 0 48px; }
  .xc-checkout .xc-review-thumb img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius-sm); background: var(--surface-2); border: 1px solid var(--border); }
  .xc-checkout .xc-review-qty { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--text-muted); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
  .xc-checkout .xc-review-name { min-width: 0; }
  .xc-checkout .xc-review-name dl.variation { margin: .2rem 0 0; font-size: var(--fs-xs); color: var(--text-muted); }
  .xc-checkout .xc-place-order { margin: var(--space-4) 0 0; padding: 0; }
  .xc-checkout .xc-place-order .secure-note { text-align: center; margin-top: .75rem; }
  .woocommerce-checkout #order_review table.shop_table { border: 0; border-radius: 0; background: transparent; }
  .woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: .7rem 0; background: transparent; }
  .woocommerce-checkout #order_review table.shop_table thead { display: none; }
  .woocommerce-checkout #order_review table.shop_table tbody tr:first-child td { border-top: 0; }
  .woocommerce-checkout #order_review .order-total th, .woocommerce-checkout #order_review .order-total td { font-size: var(--fs-lg); font-weight: 800; }
  .woocommerce-checkout #order_review .order-total .amount { color: var(--brand-text); }
  .woocommerce-checkout #order_review .product-total { text-align: right; }
  .woocommerce-checkout #order_review tfoot td { text-align: right; }
  .woocommerce-checkout #order_review #shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; text-align: left; }
  .woocommerce-checkout #order_review #shipping_method li { display: flex; gap: .5rem; align-items: center; }
  .woocommerce-checkout #payment { background: transparent; border-radius: 0; margin-top: var(--space-4); }
  .woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0; }
  .woocommerce-checkout #payment div.payment_box { background: var(--surface-2); color: var(--text-muted); border-radius: var(--radius); margin: .6rem 0 0; padding: .75rem 1rem; }
  .woocommerce-checkout #payment div.payment_box::before { display: none; }
  .woocommerce-checkout #payment div.form-row { padding: 0; margin-top: var(--space-4); }
  .woocommerce-checkout .woocommerce-privacy-policy-text { font-size: var(--fs-xs); color: var(--text-muted); }
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row { display: block; }
  .woocommerce-checkout .woocommerce-form__label-for-checkbox { display: inline-flex !important; gap: .5rem; align-items: flex-start; font-weight: 500 !important; }
  .woocommerce-checkout #place_order { width: 100%; min-height: 52px; font-size: var(--fs-base); background: var(--brand); color: var(--brand-contrast); border-radius: var(--radius); }
  .woocommerce-checkout #place_order:hover { background: var(--brand-hover); }
  .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 1rem; }
  .woocommerce-checkout form.checkout_coupon { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; padding: var(--space-4); border: 1px dashed var(--border-strong); border-radius: var(--radius); margin-bottom: var(--space-4); }
  .woocommerce-checkout form.checkout_coupon p:not(.form-row) { flex-basis: 100%; margin: 0; }
  .woocommerce-checkout form.checkout_coupon .form-row { margin: 0; }
  .woocommerce-checkout form.checkout_coupon .form-row-first { flex: 1 1 200px; }

  /* Cart: items left, summary right. */
  @media (min-width: 1024px) {
    .woocommerce-cart .woocommerce:has(.woocommerce-cart-form) { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-6); align-items: start; }
    .woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .checkout-steps, .woocommerce-cart .woocommerce > .xc-cart-suggest { grid-column: 1 / -1; }
    .woocommerce-cart .cart-collaterals { position: sticky; top: calc(var(--sticky-offset, 0px) + 1rem); }
  }
  .woocommerce-cart .cart-collaterals, .woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; }
  .woocommerce-cart .cart_totals h2 { font-size: var(--fs-lg); margin: 0 0 .75rem; }
  .woocommerce-cart .cart_totals table.shop_table { border: 0; border-radius: 0; background: transparent; }
  .woocommerce-cart .cart_totals table.shop_table th, .woocommerce-cart .cart_totals table.shop_table td { padding: .65rem 0; background: transparent; font-size: var(--fs-sm); }
  .woocommerce-cart .cart_totals table.shop_table tr:first-child th, .woocommerce-cart .cart_totals table.shop_table tr:first-child td { border-top: 0; }
  .woocommerce-cart .cart_totals td { text-align: right; }
  .woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { font-size: var(--fs-lg); font-weight: 800; }
  .woocommerce-cart .cart_totals .order-total .amount { color: var(--brand-text); }
  .woocommerce-cart .cart_totals #shipping_method { list-style: none; margin: 0; padding: 0; }
  .woocommerce-cart .wc-proceed-to-checkout { padding: .5rem 0 0; }
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex; justify-content: center; align-items: center; gap: .5rem; width: 100%; min-height: 52px; background: var(--brand); color: var(--brand-contrast); border-radius: var(--radius); font-weight: 700; font-size: var(--fs-base); }
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button::before { content: "\f023"; font: var(--fa-font-solid, 900 1em/1 "Font Awesome 7 Free"); }
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--brand-hover); }
  .woocommerce-cart table.cart .product-thumbnail img { width: 64px; height: 64px; object-fit: cover; background: var(--surface-2); }
  .woocommerce-cart table.cart .product-name a { font-weight: 600; color: var(--text); }
  .woocommerce-cart table.cart .quantity .qty { width: 5rem; min-height: 40px; text-align: center; border: 1.5px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
  .woocommerce-cart table.cart td.actions { padding: 1rem; background: var(--bg-alt); }
  .woocommerce-cart table.cart td.actions { text-align: left; }
  @media (min-width: 769px) {
    .woocommerce-cart table.cart td.actions .coupon { float: left; }
    .woocommerce-cart table.cart td.actions .xc-continue { float: right; margin-left: .5rem; }
    .woocommerce-cart table.cart td.actions > .button[name="update_cart"] { float: right; }
  }
  @media (max-width: 768px) {
    .woocommerce-cart table.cart td.actions { display: grid !important; gap: .6rem; }
    .woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: nowrap; gap: .5rem; }
    .woocommerce-cart table.cart td.actions .coupon .button { white-space: nowrap; flex: 0 0 auto; }
    .woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1 1 0; min-width: 0 !important; width: 0; }
    .woocommerce-cart table.cart td.actions > * { float: none !important; width: 100%; margin: 0 !important; justify-content: center; }
    .woocommerce-cart table.cart td.actions::before { display: none; }
  }
  .woocommerce-cart .xc-cart-suggest { padding-bottom: 0; }
  .woocommerce-cart .xc-cart-suggest .section-head h2 { font-size: var(--fs-2xl); }
  .woocommerce-cart .cart_totals .xc-secure-row td { text-align: center; border: 0; padding-top: 0; }
  .woocommerce-cart .cart_totals .xc-secure-row .secure-note { margin: 0; }
  .checkout-steps a { color: inherit; }
  .woocommerce-cart table.cart td.actions .coupon { float: left; border: 0; padding: 0; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { min-height: 44px; min-width: 200px; border: 1.5px solid var(--border-strong); border-radius: var(--radius); padding: 0 .9rem; background: var(--surface); }
  .woocommerce-cart table.cart td.actions > .button { float: right; background: transparent; color: var(--text); border: 1.5px solid var(--border-strong); }
  .woocommerce-cart table.cart td.actions > .button:disabled { opacity: .5; }
  @media (max-width: 768px) { .woocommerce-cart table.cart td.actions .coupon, .woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; } }

  /* My account: centred login / register card when logged out. */
  .woocommerce-account:not(.logged-in) .woocommerce { max-width: 980px; margin-inline: auto; }
  .woocommerce-account:not(.logged-in) .woocommerce > h2 { text-align: center; }
  .woocommerce-account:not(.logged-in) .woocommerce:not(:has(.u-columns)) { max-width: 520px; }
  .woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); padding: var(--space-6); margin: 0; box-shadow: var(--shadow-sm); }
  .woocommerce form.login .form-row, .woocommerce form.register .form-row { display: block; }
  .woocommerce form.login .woocommerce-form-login__rememberme { display: inline-flex; gap: .5rem; align-items: center; font-weight: 500; margin-bottom: .75rem; }
  .woocommerce form.login .woocommerce-form-login__submit, .woocommerce form.register .woocommerce-form-register__submit { width: 100%; min-height: 48px; float: none; margin: 0; }
  .woocommerce form.login .lost_password { margin: 1rem 0 0; text-align: center; font-size: var(--fs-sm); }
  .woocommerce .password-input { display: block; position: relative; }
  /* Logged-in account: nav + content. */
  @media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--space-6); align-items: start; } }
  .woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
  .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: .5rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
  .woocommerce-MyAccount-navigation a { display: block; padding: .65rem .9rem; border-radius: var(--radius); font-weight: 600; color: var(--text-muted); }
  .woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--brand-soft); color: var(--brand-text); }
  .woocommerce-MyAccount-content { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); padding: var(--space-5); }
}

/* select2 (country / district dropdowns) ships unlayered CSS, so these overrides must be unlayered too. */
.woocommerce .select2-container { width: 100% !important; }
.woocommerce .select2-container .select2-selection--single { display: block; height: 48px; padding: 0; box-sizing: border-box; border: 1.5px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { display: block; line-height: 45px; padding: 0 2rem 0 .9rem; height: 45px; padding-right: 2rem; color: var(--text); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 45px; right: .5rem; }
.select2-dropdown { border-color: var(--border-strong); border-radius: var(--radius); background: var(--surface); color: var(--text); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--brand); color: var(--brand-contrast); }

/* =====================================================================
   Single product — Xohan layout (content-single-product.php)
   ===================================================================== */
@layer pages {
  .xc-single-product .product-layout { margin-bottom: var(--space-6); }
  .xc-single-product .gallery-thumbs button img { width: 100%; height: auto; display: block; }
  .xc-single-product .gallery-main .pc-badges { position: absolute; top: 1rem; left: 1rem; z-index: 2; }
  .xc-single-product .gallery-main img { aspect-ratio: 1; }
  .xc-single-product .summary .product_title { font-size: var(--fs-2xl); margin: .5rem 0; line-height: 1.2; }
  .xc-single-product .summary-meta .rating { display: inline-flex; align-items: center; gap: .1rem; color: var(--warning); }
  .xc-single-product .summary-meta .rating span { color: var(--text-muted); margin-left: .3rem; }
  .xc-single-product .summary-rating:hover span { text-decoration: underline; }
  .xc-single-product .out-of-stock { color: var(--danger); font-weight: 600; }
  .xc-single-product .price-wrap { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin: 1.25rem 0; }
  .xc-single-product .price-wrap .price { margin: 0; font-size: var(--fs-lg); color: var(--text-muted); }
  .xc-single-product .price-wrap .price ins, .xc-single-product .price-wrap .price > .amount, .xc-single-product .price-wrap .price > .woocommerce-Price-amount { font-size: var(--fs-3xl); font-weight: 800; color: var(--brand-text); text-decoration: none; }
  .xc-single-product .price-wrap .price del { font-size: var(--fs-base); }
  .xc-single-product .price-wrap .price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; line-height: 1.1; }
  .xc-single-product .price-wrap .price ins { order: -1; }
  .xc-single-product .price-wrap .price ins .amount, .xc-single-product .price-wrap .price > .amount { font-size: inherit; color: inherit; font-weight: inherit; }
  .xc-single-product .price-wrap .price ins .amount { font-size: var(--fs-3xl); }
  .xc-single-product .price-wrap .price del .amount { font-size: var(--fs-base); }
  .xc-single-product .summary-short ul { margin: .5rem 0 0; }
  .xc-single-product .summary-short p:last-child { margin-bottom: 0; }
  /* Variations */
  .xc-single-product table.variations { width: 100%; border: 0; margin: 1.25rem 0 .5rem; }
  .xc-single-product table.variations tr { display: block; margin-bottom: 1rem; position: relative; }
  .xc-single-product table.variations .reset_variations { position: absolute; top: 0; right: 0; font-size: var(--fs-sm); color: var(--text-muted); }
  .xc-single-product table.variations th, .xc-single-product table.variations td { display: block; padding: 0; border: 0; text-align: left; background: none; }
  .xc-single-product table.variations th label { font-weight: 700; font-size: var(--fs-sm); margin-bottom: .5rem; display: inline-block; }
  .xc-single-product table.variations select { min-height: 44px; min-width: 200px; border: 1.5px solid var(--border-strong); border-radius: var(--radius); padding: 0 .75rem; background: var(--surface); }
  .xc-swatch-select { display: none; }
  .xc-swatches button:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
  .xc-swatches .swatch[aria-checked="true"] { box-shadow: 0 0 0 2px var(--brand); }
  .xc-single-product .reset_variations { display: inline-block; margin-top: .5rem; font-size: var(--fs-sm); color: var(--text-muted); }
  .xc-single-product .single_variation_wrap .woocommerce-variation-price { margin-bottom: .75rem; font-weight: 700; color: var(--brand-text); }
  /* Quantity − / + */
  .quantity:has(.xc-qty-btn) { display: inline-flex; align-items: stretch; border: 1.5px solid var(--border-strong); border-radius: var(--radius); overflow: hidden; background: var(--surface); min-height: 48px; }
  .quantity .xc-qty-btn { width: 40px; font-size: 1.1rem; font-weight: 700; color: var(--text); background: transparent; border: 0; }
  .quantity .xc-qty-btn:hover { background: var(--surface-2); }
  .quantity:has(.xc-qty-btn) input.qty, .summary form.cart .quantity:has(.xc-qty-btn) input.qty, .woocommerce-cart table.cart .quantity:has(.xc-qty-btn) .qty { width: 3rem !important; min-height: 0 !important; height: auto; border: 0 !important; border-radius: 0 !important; background: transparent !important; text-align: center; font-weight: 700; -moz-appearance: textfield; appearance: textfield; padding: 0; }
  .quantity:has(.xc-qty-btn) input.qty::-webkit-inner-spin-button, .quantity:has(.xc-qty-btn) input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
  .quantity:has(input[type="hidden"]) .xc-qty-btn, .quantity:has(input[readonly]) .xc-qty-btn { display: none; }
  .quantity:has(input[type="hidden"]) { border: 0; min-height: 0; }
  .woocommerce-cart table.cart .quantity:has(.xc-qty-btn) { min-height: 40px; }
  /* Tools row, size guide */
  .xc-single-product .xc-single-tools { display: inline-flex; margin-right: 1rem; }
  .xc-size-guide-btn { padding-inline: 0; color: var(--text-muted); font-weight: 600; }
  .xc-size-guide-btn:hover { color: var(--brand-text); }
  dialog.xc-size-guide { width: min(760px, 94vw); }
  dialog.xc-modal[open] { margin: auto; position: fixed; inset: 0; }
  .xc-sg-body { padding: var(--space-6); overflow: auto; max-height: 80vh; }
  .xc-sg-body table { width: 100%; border-collapse: collapse; }
  .xc-sg-body th, .xc-sg-body td { border: 1px solid var(--border); padding: .55rem .75rem; text-align: center; }
  .xc-sg-body th { background: var(--bg-alt); }
  /* Tabs */
  .xc-single-product .woocommerce-tabs [role="tablist"] { display: flex; flex-wrap: wrap; overflow-x: auto; }
  .xc-single-product .xc-tab-panel { padding: var(--space-5) 0; max-width: 900px; }
  .xc-tab-panel.panel { border: 0; border-radius: 0; background: none; padding: 1.5rem 0 0; }
  .xc-single-product .xc-tab-panel > h2:first-child:not(.screen-reader-text) { font-size: var(--fs-xl); }
  .xc-single-product .spec-table { width: 100%; border: 1px solid var(--border); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; }
  .xc-single-product .spec-table tr:last-child th, .xc-single-product .spec-table tr:last-child td { border-bottom: 0; }
  .xc-single-product .review-summary { padding: var(--space-5); margin-bottom: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); }
  .xc-single-product .big-rating .rating { justify-content: center; color: var(--warning); display: flex; margin: .4rem 0; }
  .xc-single-product .bar-row i { color: var(--warning); }
  /* WooCommerce review list */
  .woocommerce-Reviews-title { font-size: var(--fs-lg); margin-bottom: 1rem; }
  #reviews .commentlist { list-style: none; margin: 0; padding: 0; }
  #reviews .commentlist li { padding: var(--space-4) 0; border-bottom: 1px solid var(--border); }
  #reviews .comment_container { display: grid; grid-template-columns: 46px 1fr; gap: 1rem; }
  #reviews .comment_container img.avatar { width: 46px; height: 46px; border-radius: 50%; float: none; position: static; padding: 0; border: 0; background: var(--surface-2); }
  #reviews .comment-text { margin: 0 !important; border: 0 !important; padding: 0 !important; }
  #reviews .comment-text .rating { float: none; display: flex; color: var(--warning); margin-bottom: .25rem; }
  #reviews .comment-text .meta { font-size: var(--fs-sm); color: var(--text-muted); margin: 0 0 .35rem; }
  #reviews .comment-text .meta strong { color: var(--text); }
  #reviews .comment-text .woocommerce-review__verified { color: var(--success); font-style: normal; font-weight: 600; }
  #reviews #review_form_wrapper { margin-top: var(--space-5); padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
  #reviews .comment-reply-title { font-size: var(--fs-lg); font-weight: 700; display: block; margin-bottom: 1rem; }
  #reviews .comment-form-rating .stars a { color: var(--warning); }
  /* Related / FBT */
  .xc-single-product > section .section-head { margin-bottom: var(--space-4); }
  .xc-single-product > section { padding-inline: 0; }
  /* Login / register */
  .woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper { max-width: 1040px; margin-inline: auto; }
  .xc-auth { margin-bottom: var(--space-6); }
  .xc-auth .auth-side h2 { color: #fff; font-size: var(--fs-2xl); margin: 0 0 .5rem; }
  .xc-auth .auth-side p { opacity: .85; margin: 0; }
  .xc-auth .auth-side .site-title, .xc-auth .auth-side .site-title b { color: #fff; }
  .xc-auth .auth-side ul { margin: 0; }
  .xc-auth .xc-auth-title { font-size: var(--fs-2xl); margin: 0 0 .25rem; }
  .xc-auth .seg { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .xc-auth .stack { display: grid; gap: var(--space-4); }
  .xc-auth form .form-row { margin: 0; }
  .xc-auth .input { width: 100%; }
  .xc-auth .xc-auth-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
  .xc-auth .xc-auth-row .check { display: inline-flex; align-items: center; gap: .5rem; font-weight: 500; margin: 0; }
  .xc-auth .woocommerce-privacy-policy-text { font-size: var(--fs-xs); color: var(--text-muted); }
  .xc-auth .xes-otp-status:empty { display: none; }
  .xc-auth .xes-otp-status.is-error { color: var(--danger); }
  .xc-auth .xes-otp-code { letter-spacing: .5em; font-size: var(--fs-lg); text-align: center; font-weight: 700; }
  .xc-auth .input-group { display: flex; gap: .5rem; }
  .xc-auth .input-group .input { flex: 1 1 auto; min-width: 0; }
  .xc-auth .input-group .btn { white-space: nowrap; }
  .xc-auth [role="tabpanel"][hidden] { display: none; }

  /* My Account */
  .woocommerce-account:not(.logged-in) .woocommerce:has(.xc-auth) { max-width: 1040px; }
  .woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
  .woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { content: none; display: none; }
  .xc-auth form.login, .xc-auth form.register { border: 0; padding: 0; margin: 0; border-radius: 0; }
  .woocommerce-account .xc-account-nav { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-4); }
  @media (min-width: 900px) { .woocommerce-account .xc-account-nav { position: sticky; top: calc(var(--sticky-offset, 0px) + 1rem); } }
  .woocommerce-account .xc-account-nav ul.account-nav { border: 0; padding: .25rem 0 0; background: none; border-radius: 0; margin: 0; }
  .woocommerce-account .xc-account-nav .account-nav a { display: flex; color: var(--text); font-weight: 550; }
  .woocommerce-account .xc-account-nav .account-nav .is-active a { background: var(--brand-soft); color: var(--brand-text); }
  .woocommerce-account .xc-account-nav .account-nav .is-active a i { color: var(--brand-text); }
  .woocommerce-MyAccount-content:has(> .welcome-card) { border: 0; padding: 0; background: none; display: grid; gap: var(--space-5); }
  .woocommerce-MyAccount-content .welcome-card h2 { font-size: var(--fs-xl); margin: 0 0 .25rem; }
  .woocommerce-MyAccount-content .card h3 { font-size: var(--fs-lg); margin: 0; display: flex; align-items: center; gap: .5rem; }
  .woocommerce-MyAccount-content .stat-grid { display: grid; gap: var(--space-4); }
  .woocommerce-MyAccount-content .stat-card strong .amount { font-size: inherit; }
  .woocommerce-MyAccount-content .data-table { width: 100%; }
  .woocommerce-MyAccount-content .order-progress { grid-template-columns: repeat(4, 1fr); }
  .woocommerce-MyAccount-content .empty-state { text-align: center; display: grid; gap: .75rem; justify-items: center; }
  @media (max-width: 899px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: minmax(0, 1fr); } }
  .woocommerce-MyAccount-content h2 { font-size: var(--fs-lg); }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-4); }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm > .clear { display: none; }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm > *:not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-first, .woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-last { width: auto; float: none; }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-4); margin: var(--space-3) 0 var(--space-4); }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm legend { font-weight: 700; padding: 0 .5rem; }
  .woocommerce-MyAccount-content .woocommerce-EditAccountForm em { font-size: var(--fs-xs); color: var(--text-muted); }
  @media (max-width: 600px) { .woocommerce-MyAccount-content .woocommerce-EditAccountForm { grid-template-columns: minmax(0, 1fr); } }
  .woocommerce-MyAccount-content mark { background: var(--brand-soft); color: var(--brand-text); padding: 0 .25rem; border-radius: 4px; font-weight: 600; }
  .woocommerce-MyAccount-content .xc-view-progress { margin: 0 0 var(--space-5); }
  .woocommerce-MyAccount-content .xc-view-progress .order-progress { margin-top: 0; }
  .woocommerce-MyAccount-content .woocommerce-order-details, .woocommerce-MyAccount-content .woocommerce-customer-details { margin-top: var(--space-5); }
  .woocommerce-MyAccount-content .woocommerce-customer-details .col2-set { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .woocommerce-MyAccount-content .woocommerce-customer-details .col2-set > * { width: auto; float: none; }
  .woocommerce-MyAccount-content address { font-style: normal; line-height: 1.7; color: var(--text-muted); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--space-4); }
  .woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: var(--space-4); }
  .woocommerce-MyAccount-content .woocommerce-Addresses::before, .woocommerce-MyAccount-content .woocommerce-Addresses::after { content: none; display: none; }
  .woocommerce-MyAccount-content .woocommerce-Address { width: auto; float: none; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
  .woocommerce-MyAccount-content .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .75rem; }
  .woocommerce-MyAccount-content .woocommerce-Address-title::before, .woocommerce-MyAccount-content .woocommerce-Address-title::after { content: none; display: none; }
  .woocommerce-MyAccount-content .woocommerce-Address-title h2 { margin: 0; font-size: var(--fs-base); }
  .woocommerce-MyAccount-content .woocommerce-Address-title .edit { float: none; font-size: var(--fs-sm); font-weight: 600; color: var(--brand-text); }
  .woocommerce-MyAccount-content .woocommerce-Address address { border: 0; padding: 0; }
  .woocommerce-MyAccount-content .woocommerce-orders-table .button, .woocommerce-MyAccount-content .woocommerce-orders-table .btn { min-height: 34px; padding: .35rem .9rem; font-size: var(--fs-sm); }

  /* Rewards, photo reviews, social login (Xohan Essentials) */
  .woocommerce-MyAccount-content .welcome-card .tier { min-width: 220px; display: grid; gap: .25rem; }
  .woocommerce-MyAccount-content .welcome-card .tier .bar { height: 8px; }
  .xes-points-card .xes-points-balance { font-size: var(--fs-2xl); color: var(--brand-text); }
  .xes-points-log { list-style: none; margin: .75rem 0 0; padding: 0; border-top: 1px solid var(--border); }
  .xes-points-log li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--border); font-size: var(--fs-sm); }
  .xes-points-log .is-plus { color: var(--success); }
  .xes-points-log .is-minus { color: var(--danger); }
  .xohan-points-row td { padding: .5rem 0 !important; }
  .xohan-points-toggle { display: flex; align-items: center; gap: .5rem; font-weight: 600; padding: .6rem .8rem; border: 1.5px dashed var(--brand); border-radius: var(--radius); background: var(--brand-soft); cursor: pointer; text-align: left; }
  .xohan-points-toggle input { accent-color: var(--brand); width: 1.05rem; height: 1.05rem; }
  .xes-points-note { margin: var(--space-4) 0; }
  .comment-form-photos label { display: block; font-weight: 600; margin-bottom: .35rem; }
  .comment-form-photos input[type="file"] { display: block; width: 100%; padding: .6rem; border: 1.5px dashed var(--border-strong); border-radius: var(--radius); background: var(--surface); }
  .comment-form-photos .xes-photo-hint { display: block; color: var(--text-muted); font-size: var(--fs-xs); margin-top: .35rem; }
  .xes-review-photos { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
  .xes-review-photos img { width: 84px; height: 84px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); }
  .xc-auth .xes-social-divider { display: flex; align-items: center; gap: .75rem; color: var(--text-muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .06em; }
  .xc-auth .xes-social-divider::before, .xc-auth .xes-social-divider::after { content: ""; flex: 1; height: 1px; background: var(--border); }
  .xc-auth .xes-social { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .6rem; }
  .xes-social .fa-google { color: #ea4335; }
  .xes-social .fa-facebook { color: #1877f2; }

  /* Thank-you page */
  .woocommerce-order-received .xc-woo, .woocommerce-order-received .entry-content > .woocommerce { max-width: 880px; margin-inline: auto; }
  .xc-order-hero { text-align: center; background: none; border: 0; padding: 0; margin: 0 0 var(--space-5); display: block; }
  .xc-order-hero::before { display: none; }
  .xc-order-hero h1 { font-size: var(--fs-3xl); margin: 0 0 .5rem; }
  .woocommerce-order ul.woocommerce-order-overview { list-style: none; margin: 0 0 var(--space-5); padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); overflow: hidden; }
  .woocommerce-order ul.woocommerce-order-overview::before, .woocommerce-order ul.woocommerce-order-overview::after { display: none; }
  .woocommerce-order ul.woocommerce-order-overview li { float: none; margin: 0; padding: 1rem 1.25rem; border: 0; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
  .woocommerce-order ul.woocommerce-order-overview li + li { border-left: 1px dashed var(--border-strong); }
  .woocommerce-order ul.woocommerce-order-overview li strong { display: block; margin-top: .25rem; font-size: var(--fs-base); text-transform: none; letter-spacing: 0; color: var(--text); }
  @media (max-width: 600px) { .woocommerce-order ul.woocommerce-order-overview li + li { border-left: 0; border-top: 1px dashed var(--border-strong); } }
  .woocommerce-order .xc-eta { margin-bottom: var(--space-5); }
  .woocommerce-order .woocommerce-order-details, .woocommerce-order .woocommerce-customer-details { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); margin-bottom: var(--space-5); }
  .woocommerce-order .woocommerce-order-details__title, .woocommerce-order .woocommerce-column__title { font-size: var(--fs-lg); margin: 0 0 1rem; }
  .woocommerce-order .woocommerce-customer-details .col2-set { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .woocommerce-order .woocommerce-customer-details .col2-set > * { width: auto; float: none; }
  .woocommerce .col2-set::before, .woocommerce .col2-set::after, .woocommerce-page .col2-set::before, .woocommerce-page .col2-set::after { content: none; display: none; }
  .woocommerce-order .woocommerce-customer-details address { border: 0; padding: 0; font-style: normal; color: var(--text-muted); line-height: 1.7; }
  .xc-order-actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: var(--space-5); }
  .woocommerce-order-received .checkout-steps { margin-bottom: var(--space-5); }
  @media print {
    .site-header, .site-footer, .topbar, .xc-order-actions, .checkout-steps, .fab-stack, .mobile-nav, .newsletter, .page-hero, .xc-cookie, #cookie-banner { display: none !important; }
    .woocommerce-order .woocommerce-order-details, .woocommerce-order .woocommerce-customer-details { border: 0; padding: 0; }
  }

  /* Track order */
  .status-completed { background: color-mix(in oklch, var(--success) 15%, transparent); color: var(--success); }
  .status-xc-shipped { background: var(--accent-soft); color: var(--accent-strong); }
  .status-on-hold { background: color-mix(in oklch, var(--warning) 18%, transparent); color: oklch(0.5 0.13 70); }
  .status-xc-returned { background: color-mix(in oklch, #8b5cf6 15%, transparent); color: #7c3aed; }
  .status-failed, .status-refunded { background: color-mix(in oklch, var(--danger) 15%, transparent); color: var(--danger); }

  .xes-track { max-width: 820px; margin-inline: auto; }
  .xes-track-form .form-row { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .xes-track-result h2 { font-size: var(--fs-2xl); margin: 0; }
  .xes-track-result .timeline { margin: var(--space-4) 0; }
  .xes-track-items { list-style: none; padding: 0; margin: 0 0 var(--space-4); border-top: 1px solid var(--border); }
  .xes-track-items li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--border); font-size: var(--fs-sm); }
  .xes-track-items .is-total { font-weight: 800; border-bottom: 0; }
  .xes-track-result .status { white-space: nowrap; }

  /* WooCommerce block cart & checkout */
  .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: inherit; }
  .wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--brand) !important; color: var(--brand-contrast) !important; border-radius: var(--radius) !important; border: 0 !important; min-height: 50px; font-weight: 700; }
  .wc-block-components-button:not(.is-link):hover { background: var(--brand-hover) !important; }
  .wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select, .wc-block-components-textarea { border-radius: var(--radius) !important; border-color: var(--border-strong) !important; }
  .wc-block-components-text-input.is-active input:focus, .wc-block-components-text-input input:focus { border-color: var(--brand) !important; box-shadow: 0 0 0 2px var(--brand-soft) !important; }
  .wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--brand) !important; border-radius: var(--radius); }
  .wc-block-components-radio-control__input:checked { border-color: var(--brand) !important; }
  .wc-block-components-radio-control__input:checked::before { background: var(--brand) !important; }
  .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--brand); border-color: var(--brand); }
  .wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar { min-width: 0; }
  .wc-block-components-totals-wrapper, .wp-block-woocommerce-checkout-order-summary-block, .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block { border-radius: var(--radius-lg); }
  .wp-block-woocommerce-checkout-order-summary-block { border: 1px solid var(--border) !important; background: var(--surface); }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-product-price__value.is-discounted { color: var(--brand-text); }
  .xc-block-free-ship .free-ship { max-width: 100%; }
  .xc-otp-block { border: 1.5px solid var(--brand); background: var(--brand-soft); border-radius: var(--radius-lg); padding: var(--space-4) var(--space-5); margin: 0 0 var(--space-5); display: grid; gap: .6rem; }
  .xc-otp-block[hidden] { display: none; }
  .xc-otp-block .xc-otp-title { font-size: var(--fs-base); margin: 0; display: flex; gap: .5rem; align-items: center; }
  .xc-otp-block .xc-otp-row { display: flex; gap: .5rem; flex-wrap: wrap; }
  .xc-otp-block .input-text { flex: 1 1 200px; min-height: 44px; border: 1.5px solid var(--border-strong); border-radius: var(--radius); padding: 0 .9rem; background: var(--surface); }
  .xc-otp-block .button { min-height: 44px; padding: 0 1.1rem; border-radius: var(--radius); background: var(--brand); color: var(--brand-contrast); font-weight: 700; border: 0; }
  .xc-otp-block .xc-otp-status:empty { display: none; }
  .xc-otp-block .xc-otp-status { margin: 0; font-size: var(--fs-sm); font-weight: 600; }
  .xc-otp-block .xc-otp-status.is-ok { color: var(--success); }
  .xc-otp-block .xc-otp-status.is-error { color: var(--danger); }
  .xc-otp-block #xc_otp_phone { letter-spacing: normal; }
  .xc-otp-block #xc_otp_code { letter-spacing: .3em; }
  .xc-otp-block .xc-otp-help { margin: 0; font-size: var(--fs-xs); color: var(--text-muted); }
  .xc-otp-block.is-verified .input-text#xc_otp_code, .xc-otp-block.is-verified [data-xc-otp-verify] { display: none; }

  /* Shop filters */
  .shop-sidebar-head { display: none; }
  .shop-sidebar .xc-filter { display: flex; justify-content: space-between; align-items: center; gap: .5rem; color: var(--text); font-weight: 500; text-decoration: none; }
  .shop-sidebar .xc-filter > span:first-child { display: flex; align-items: center; gap: .55rem; min-width: 0; }
  .shop-sidebar .xc-check { width: 1rem; height: 1rem; flex: 0 0 1rem; border: 1.5px solid var(--border-strong); border-radius: 4px; display: grid; place-items: center; background: var(--surface); transition: background var(--dur), border-color var(--dur); }
  .shop-sidebar .xc-filter-radio .xc-check { border-radius: 50%; }
  .shop-sidebar .xc-filter.is-on .xc-check { background: var(--brand); border-color: var(--brand); }
  .shop-sidebar .xc-filter.is-on .xc-check::after { content: ""; width: .32rem; height: .55rem; border: solid var(--brand-contrast); border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
  .shop-sidebar .xc-filter-radio.is-on .xc-check::after { width: .4rem; height: .4rem; border: 0; border-radius: 50%; background: var(--brand-contrast); transform: none; }
  .shop-sidebar .xc-filter:hover { color: var(--brand-text); }
  .shop-sidebar .xc-filter-nav.is-on { color: var(--brand-text); font-weight: 700; }
  .shop-sidebar .xc-filter-back { color: var(--text-muted); font-size: var(--fs-xs); }
  .shop-sidebar .rating { display: inline-flex; gap: 1px; color: var(--warning, #f59e0b); font-size: var(--fs-xs); }
  .shop-sidebar a.swatch { display: inline-block; }
  .shop-sidebar .size-opts a { min-width: 44px; padding: .45rem .7rem; border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-size: var(--fs-sm); font-weight: 600; text-align: center; color: var(--text); }
  .shop-sidebar .size-opts a:hover, .shop-sidebar .size-opts a.is-active { border-color: var(--brand); color: var(--brand-text); background: var(--brand-soft); }
  .xc-woo .shop-toolbar .woocommerce-result-count { float: none; margin: 0; font-size: var(--fs-sm); color: var(--text-muted); }
  .xc-woo .shop-toolbar .woocommerce-ordering { float: none; margin: 0; }
  .xc-woo .shop-toolbar .woocommerce-ordering select { padding: .5rem 2rem .5rem .75rem; border: 1px solid var(--border); border-radius: var(--radius); background-color: var(--surface); font-size: var(--fs-sm); min-height: 38px; }
  .xc-woo .shop-toolbar .flex { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
  .xc-woo .active-filters .chip.is-active { border-color: var(--brand); color: var(--brand-text); background: var(--brand-soft); }
  .xc-woo .shop-main > .woocommerce-products-header, .xc-woo .shop-main > .term-description { margin-bottom: var(--space-4); }
  @media (max-width: 992px) {
    .xc-woo .with-sidebar { grid-template-columns: minmax(0, 1fr); }
    .shop-sidebar { display: grid !important; position: fixed !important; inset: 0 auto 0 0; z-index: 1001; width: min(340px, 88vw); overflow-y: auto; overscroll-behavior: contain; background: var(--bg); padding: var(--space-4); align-content: start; transform: translateX(-105%); visibility: hidden; transition: transform var(--dur), visibility 0s linear var(--dur); box-shadow: var(--shadow-lg); }
    .shop-sidebar.is-open { transform: none; visibility: visible; transition: transform var(--dur); }
    .shop-sidebar-head { display: flex; justify-content: space-between; align-items: center; font-size: var(--fs-lg); position: sticky; top: calc(-1 * var(--space-4)); background: var(--bg); padding: .25rem 0 .5rem; z-index: 1; }
    .xc-filter-overlay { position: fixed; inset: 0; z-index: 1000; background: rgb(0 0 0 / .5); }
    body.xc-filters-open { overflow: hidden; }
  }
  @media (min-width: 993px) { .xc-filter-overlay { display: none; } }

  /* Sticky buy bar */
  .sticky-buy.is-hidden { transform: translateY(110%); }
  @media (max-width: 768px) { .fab-stack { transition: transform var(--dur); } body.has-sticky-buy:has(.sticky-buy:not(.is-hidden)) .fab-stack { transform: translateY(-76px); } }
  .sticky-buy { transition: transform var(--dur); }
  @media (max-width: 768px) { body.has-sticky-buy .site-footer { padding-bottom: 80px; } }
}

/* =====================================================================================
 * Xohan Commerce 1.4 — layout fixes (gallery, mini-cart, cart totals, mobile).
 * Author: Talukdar Galib <https://talukdargalib.pro.bd> · Copyright: Xohan Digital
 * Important declarations are deliberate here: they keep the layout right even when a caching /
 * optimisation plugin loads WooCommerce's CSS outside the theme's cascade layers.
 * ===================================================================================== */

/* WooCommerce !important rules that sit in the vendor layer can only be beaten inside that layer. */
@layer vendor {
  body #cart-drawer .woocommerce-mini-cart a.remove,
  body .widget_shopping_cart .cart_list li a.remove.remove-btn { color: var(--text-muted) !important; font-size: 14px !important; width: 32px !important; height: 32px !important; line-height: 32px !important; }
  body #cart-drawer .woocommerce-mini-cart a.remove:hover { color: #b91c1c !important; background: #fee2e2 !important; }
  body.woocommerce-cart table.cart td.product-remove a.remove { color: var(--text-muted) !important; }
  body.woocommerce-cart table.cart td.product-remove a.remove:hover { color: #b91c1c !important; background: #fee2e2 !important; }
  body.woocommerce-cart table.shop_table_responsive tr td:not([data-title])::before,
  body.woocommerce-cart table.shop_table_responsive tr td[data-title=""]::before,
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-remove::before,
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-name::before { content: none !important; display: none !important; }
  @media (max-width: 768px) {
    body.woocommerce-cart table.cart tr.cart_item td { text-align: left !important; }
    body.woocommerce-cart table.cart .product-thumbnail { display: block !important; }
  }
}

@layer pages {
  /* ---- Product gallery: never the "all thumbnails" look of WooCommerce's slider-less gallery. ---- */
  .gallery.woocommerce-product-gallery { float: none !important; width: auto !important; opacity: 1 !important; margin: 0 !important; position: sticky !important; }
  @media (max-width: 900px) { .gallery.woocommerce-product-gallery { position: static !important; } }
  .gallery.woocommerce-product-gallery > .gallery-main.woocommerce-product-gallery__image { width: auto !important; display: block !important; float: none !important; margin: 0 !important; }
  .gallery.woocommerce-product-gallery > .gallery-thumbs button { width: auto !important; }
  .gallery.woocommerce-product-gallery img { max-width: 100%; }
  /* WooCommerce's own gallery markup (other templates / plugins) without slider scripts: first image big, others as a strip. */
  .woocommerce-product-gallery:not(.gallery) { opacity: 1 !important; }
  .woocommerce-product-gallery:not(.gallery) .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: 0; }
  .woocommerce-product-gallery:not(.gallery) .woocommerce-product-gallery__image { width: auto !important; float: none !important; margin: 0 !important; display: block !important; }
  .woocommerce-product-gallery:not(.gallery) .woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; }
  .woocommerce-product-gallery:not(.gallery) .woocommerce-product-gallery__image img { width: 100%; height: auto; border-radius: var(--radius); }

  /* ---- Product page columns: immune to WooCommerce's float / 48% layout. ---- */
  .woocommerce div.product .xc-single-grid > div.summary, .woocommerce div.product .xc-single-grid > .gallery, .xc-single-product div.summary, .xc-single-product .gallery.images, .xc-product-template div.summary { float: none !important; width: auto !important; margin: 0; }
  .woocommerce div.product form.cart .button, .woocommerce div.product form.cart .button.alt, .woocommerce div.product .xc-buy-now { background-color: var(--btn-bg, var(--brand)) !important; color: var(--brand-contrast) !important; }
  .woocommerce div.product form.cart .single_add_to_cart_button { background-color: var(--surface) !important; color: var(--text) !important; border: 1.5px solid var(--border-strong) !important; }
  .woocommerce div.product form.cart .single_add_to_cart_button:hover { border-color: var(--brand) !important; color: var(--brand-text) !important; }

  /* ---- WhatsApp / Call to order: always the full width of the buy box, never sticking out. ---- */
  .xc-order-alt { width: 100%; max-width: 100%; box-sizing: border-box; margin-inline: 0 !important; padding: 0 !important; clear: both; flex: 1 1 100%; grid-column: 1 / -1; }
  .xc-order-alt .btn { width: 100%; min-width: 0; margin: 0 !important; box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* ---- Mini-cart drawer: thumbnail | details | small remove button; footer always visible. ---- */
  #cart-drawer .drawer-panel { overflow: hidden; height: 100%; height: 100dvh; }
  #cart-drawer .drawer-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; padding-bottom: 0; }
  #cart-drawer .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
  #cart-drawer .mini-item { display: grid !important; grid-template-columns: 64px minmax(0, 1fr) 32px; gap: .75rem; align-items: start; padding: .85rem 0 !important; margin: 0 !important; position: relative; }
  #cart-drawer .mini-item > img { width: 64px !important; height: 64px !important; object-fit: cover; float: none !important; margin: 0 !important; border-radius: var(--radius-sm); grid-column: 1; grid-row: 1; }
  #cart-drawer .mini-item > div { grid-column: 2; grid-row: 1; min-width: 0; }
  #cart-drawer .mini-item .mini-title { font-size: var(--fs-sm); font-weight: 600; line-height: 1.35; margin: 0 0 .25rem; }
  #cart-drawer .mini-item .mini-title a { color: var(--text); }
  #cart-drawer .mini-item a.remove { position: static !important; grid-column: 3; grid-row: 1; display: grid !important; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--surface-2); color: var(--text-muted) !important; font-size: 14px !important; text-decoration: none; }
  #cart-drawer .mini-item a.remove:hover, #cart-drawer .mini-item a.remove:focus-visible { background: #fee2e2; color: #b91c1c !important; }
  #cart-drawer .widget_shopping_cart_content .drawer-foot { position: sticky; bottom: 0; margin-top: auto; background: var(--surface); padding: .85rem 0 calc(1rem + env(safe-area-inset-bottom)); z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
  #cart-drawer .drawer-foot .sum-row { grid-column: 1 / -1; display: flex; justify-content: space-between; margin: 0; font-weight: 700; }
  #cart-drawer .drawer-foot .btn { min-height: 46px; justify-content: center; margin: 0; }
  #cart-drawer .drawer-foot .btn.checkout { background: var(--brand); color: var(--brand-contrast); border-color: var(--brand); }

  /* ---- Cart: totals stay beside the products and stop before "You might also like". ---- */
  @media (min-width: 1024px) {
    .woocommerce-cart .woocommerce:has(.xc-cart-layout) { display: block; }
    .woocommerce-cart .xc-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-6); align-items: start; }
    .woocommerce-cart .xc-cart-layout > .woocommerce-cart-form { grid-column: 1; }
    .woocommerce-cart .xc-cart-layout > .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--sticky-offset, 0px) + 1rem); }
    .woocommerce-cart .xc-cart-layout > :not(.woocommerce-cart-form):not(.cart-collaterals) { grid-column: 1 / -1; }
  }
  .woocommerce-cart .xc-cart-suggest { clear: both; margin-top: var(--space-6); }

  /* ---- Mobile cart: each product is a card (photo, name, price, quantity, remove). ---- */
  @media (max-width: 768px) {
    .woocommerce-cart table.cart, .woocommerce-cart table.cart tbody { display: block; border: 0; background: transparent; }
    .woocommerce-cart table.cart thead { display: none; }
    .woocommerce-cart table.cart tr.cart_item { display: grid !important; grid-template-columns: 72px minmax(0, 1fr) 36px; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub"; gap: .35rem .75rem; padding: .9rem; margin: 0 0 .75rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
    .woocommerce-cart table.cart tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; }
    .woocommerce-cart table.cart tr.cart_item td::before { float: none !important; font-weight: 400; color: var(--text-muted); margin-right: .35rem; }
    .woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; display: block !important; }
    .woocommerce-cart table.cart td.product-thumbnail img { width: 72px; height: 72px; border-radius: var(--radius); }
    .woocommerce-cart table.cart td.product-name { grid-area: name; font-size: var(--fs-sm); }
    .woocommerce-cart table.cart td.product-remove { grid-area: remove; justify-self: end; }
    .woocommerce-cart table.cart td.product-remove a.remove { display: grid !important; place-items: center; width: 32px !important; height: 32px !important; border-radius: 50%; background: var(--surface-2); color: var(--text-muted) !important; font-size: 18px !important; text-decoration: none; }
    .woocommerce-cart table.cart td.product-price { grid-area: price; font-size: var(--fs-sm); }
    .woocommerce-cart table.cart td.product-quantity { grid-area: qty; }
    .woocommerce-cart table.cart td.product-quantity::before, .woocommerce-cart table.cart td.product-price::before { display: none !important; }
    .woocommerce-cart table.cart td.product-subtotal { grid-area: sub; align-self: center; justify-self: end; font-weight: 700; }
    .woocommerce-cart table.cart td.product-subtotal::before { display: none !important; }
    .woocommerce-cart table.cart tr:not(.cart_item) { display: block; }
    .woocommerce-cart table.cart tr:not(.cart_item) td { display: block; border-radius: var(--radius-lg); }
  }

  /* ---- Elementor: grid-like Xohan widgets always take the full width of their column (no overlap). ---- */
  .e-con :is(.elementor-widget-xohan-product-grid, .elementor-widget-xohan-product-tabs-grid, .elementor-widget-xohan-product-list, .elementor-widget-xohan-posts, .elementor-widget-xohan-brands, .elementor-widget-xohan-product-categories, .elementor-widget-xohan-coupons, .elementor-widget-xohan-kits, .elementor-widget-xohan-spotlight, .elementor-widget-xohan-testimonials, .elementor-widget-xohan-image-cards, .elementor-widget-xohan-icon-cards, .elementor-widget-xohan-guide-cards, .elementor-widget-xohan-features, .elementor-widget-xohan-stats, .elementor-widget-xohan-steps, .elementor-widget-xohan-faq, .elementor-widget-xohan-store-locator, .elementor-widget-xohan-insta-grid, .elementor-widget-xohan-lookbook, .elementor-widget-xohan-compare, .elementor-widget-xohan-wishlist, .elementor-widget-xohan-sitemap, .elementor-widget-xohan-product-related, .elementor-widget-xohan-product-fbt, .elementor-widget-xohan-archive-products, .elementor-widget-xohan-icon-links, .elementor-widget-xohan-deal-banner, .elementor-widget-xohan-promo-card, .elementor-widget-xohan-cta-banner, .elementor-widget-xohan-buy-box, .elementor-widget-xohan-product-tabs, .elementor-widget-xohan-story, .elementor-widget-xohan-consult) { width: 100%; max-width: 100%; }

  /* ---- Newsletter: normal-height e-mail box on phones; hidden on cart & checkout. ---- */
  @media (max-width: 768px) {
    .newsletter .wpcf7-form :is(.wpcf7-form-control-wrap, label), :is(.newsletter, .xc-mode-form) .wpcf7-form :is(.wpcf7-form-control-wrap, label) { flex: 0 0 auto !important; }
    .newsletter .wpcf7-form input[type="email"], .newsletter form input[type="email"] { background: #fff !important; border-radius: var(--radius-full); min-height: 48px; height: auto; }
    .newsletter .wpcf7-form { background: transparent; padding: 0; flex-direction: column; }
  }
  body:is(.woocommerce-cart, .woocommerce-checkout) .xc-newsletter-band, body:is(.woocommerce-cart, .woocommerce-checkout) .newsletter-band { display: none !important; }

  /* ---- Mobile bottom bar & floating buttons never cover the footer or form fields. ---- */
  @media (max-width: 768px) {
    body:has(.bottom-nav) .site-footer { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
    body.has-sticky-buy:has(.sticky-buy) .site-footer { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
    .fab-stack .float-btn, .fab-stack > a, .fab-stack > button { width: 46px; height: 46px; }
    body.xc-typing .fab-stack, body.xc-footer-in .fab-stack { opacity: 0; pointer-events: none; transform: translateY(12px); }
    body:is(.single-product, .woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .fab-stack .fab-wa { display: none; }
    .fab-stack { transition: opacity var(--dur), transform var(--dur); }
  }

  /* ---- Mobile spacing, tabs, OTP, login, payment logos, category cards. ---- */
  @media (max-width: 768px) {
    .section { padding-block: var(--space-6); }
    .section-sm { padding-block: var(--space-5); }
    .woocommerce-tabs ul.tabs, .xc-tabs [role="tablist"], .tabs [role="tablist"] { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
    .woocommerce-tabs ul.tabs::-webkit-scrollbar, .tabs [role="tablist"]::-webkit-scrollbar { display: none; }
    .woocommerce-tabs ul.tabs li, .tabs [role="tablist"] > * { flex: 0 0 auto; white-space: nowrap; scroll-snap-align: start; }
    .xc-otp-row { flex-wrap: nowrap; }
    .xc-otp-row .input-text { flex: 1 1 0; min-width: 0; }
    .xc-otp-row .button, .xc-otp-row button { flex: 0 0 auto; white-space: nowrap; }
    .auth-wrap { min-height: 0 !important; grid-template-columns: 1fr; }
    .auth-form { justify-content: flex-start !important; padding: var(--space-5); }
  }
  .xc-payments .pay-list, .footer-pay .pay-list { gap: .5rem; }
  @media (max-width: 480px) {
    .xc-payments .pay-list, .footer-pay .pay-list { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); width: 100%; }
    .xc-payments .pay-logo, .footer-pay .pay-logo { width: 100% !important; height: 44px !important; padding: 5px 6px; }
    .cat-card-body h3 { font-size: 1rem; line-height: 1.25; overflow-wrap: normal; word-break: normal; }
    .cat-card-body { gap: .5rem; }
  }

  /* ---- Footer credit ---- */
  .xc-credit { margin: 0; opacity: .85; }
  .xc-credit .fa-heart { color: #f43f5e; margin-inline: .15em; }
  @media (prefers-reduced-motion: no-preference) { .xc-credit .fa-heart { animation: xc-beat 1.6s ease-in-out infinite; } }
  @keyframes xc-beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.25); } 30% { transform: scale(1); } }
  .xc-footer-bottom .elementor-widget-text-editor p { margin: 0; }
  .xc-footer-bottom .elementor-widget-text-editor .elementor-widget-container, .xc-footer-bottom .elementor-text-editor { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; }

  /* ---- Mobile hamburger: big, easy to tap. ---- */
  .menu-toggle, [data-drawer-open="menu-drawer"] { min-width: 44px; min-height: 44px; }
  .menu-toggle i, .menu-toggle svg, [data-drawer-open="menu-drawer"] i { font-size: 22px !important; width: 22px; height: 22px; }
}

/* ==========================================================================
   1.4.1 front-end fixes — Talukdar Galib · Xohan Digital
   Cart drawer, drawers motion, mobile bottom bars, gallery, checkout checkbox,
   header search drop-down, single-product buttons.
   ========================================================================== */
@layer pages {
  /* ---- Drawers: slide + fade in sync, and animate the close as well. ---- */
  .drawer { --xc-drawer-dur: 280ms; --xc-drawer-ease: cubic-bezier(.32, .72, 0, 1); transition: visibility 0s linear var(--xc-drawer-dur); }
  .drawer.is-open { transition-delay: 0s; }
  .drawer .drawer-backdrop { transition: opacity var(--xc-drawer-dur) ease; }
  .drawer .drawer-panel { transition: transform var(--xc-drawer-dur) var(--xc-drawer-ease); will-change: transform; overscroll-behavior: contain; box-shadow: var(--shadow-lg); }
  html.xc-lock, html.xc-lock body { overflow: hidden; }
  html.xc-lock body { padding-right: var(--xc-sbw, 0px); }
  @media (prefers-reduced-motion: reduce) { .drawer, .drawer .drawer-backdrop, .drawer .drawer-panel { transition-duration: 1ms; } }

  /* ---- Cart drawer: fixed head, scrolling list, footer always at the bottom, even padding. ---- */
  #cart-drawer .drawer-panel { height: 100%; max-height: 100dvh; }
  #cart-drawer .drawer-body.xc-cart-body { flex: 1 1 auto; min-height: 0; padding: 0; display: flex; flex-direction: column; overflow: hidden; }
  #cart-drawer .xc-cart-body > .widget_shopping_cart_content { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  #cart-drawer .xc-cart-body .woocommerce-mini-cart { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: .25rem 1.25rem !important; margin: 0 !important; display: block !important; align-content: start; }
  #cart-drawer .xc-cart-body .mini-item + .mini-item { border-top: 1px solid var(--border); }
  #cart-drawer .xc-cart-body .free-ship { margin: .5rem 1.25rem 0; }
  #cart-drawer .xc-cart-body .widget_shopping_cart_content .drawer-foot { position: static; margin-top: auto; padding: .85rem 1.25rem calc(1rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--border); background: var(--surface); }
  #cart-drawer .xc-cart-body .xc-empty-cart { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 2rem 1.25rem; text-align: center; }
  /* Removing an item: instant feedback while WooCommerce updates the cart. */
  #cart-drawer .mini-item { transition: opacity 200ms ease; }
  #cart-drawer .mini-item.is-removing { opacity: .45; pointer-events: none; }
  #cart-drawer .mini-item.is-removing a.remove::before { content: ""; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: xc-spin .7s linear infinite; }
  #cart-drawer .mini-item.is-removing a.remove i { display: none; }
  #cart-drawer .widget_shopping_cart_content.is-busy .drawer-foot { opacity: .6; pointer-events: none; }
  #cart-drawer .blockUI.blockOverlay { background: transparent !important; }
  @keyframes xc-spin { to { transform: rotate(360deg); } }

  /* ---- Mobile bottom bars: one fixed height, safe area added separately, no jumps between pages. ---- */
  @media (max-width: 768px) {
    .bottom-nav { --xc-bar-h: 60px; height: calc(var(--xc-bar-h) + env(safe-area-inset-bottom)); align-items: stretch; box-sizing: border-box; }
    .bottom-nav a { height: var(--xc-bar-h); padding: 0; justify-content: center; line-height: 1.2; }
    .sticky-buy { --xc-bar-h: 60px; height: calc(var(--xc-bar-h) + env(safe-area-inset-bottom)); padding: 8px 1rem calc(8px + env(safe-area-inset-bottom)); align-items: stretch; box-sizing: border-box; }
    .sticky-buy .btn { min-height: 0; height: 44px; align-self: center; }
    /* Product pages: the menu bar shows while the buy buttons are on screen; the buy bar replaces it after. */
    body.has-sticky-buy:has(.sticky-buy.is-hidden) .bottom-nav { display: grid; }
    body.has-sticky-buy:has(.sticky-buy.is-hidden) .sticky-buy { visibility: hidden; }
    .sticky-buy.is-hidden { transform: none; }
    body:has(.bottom-nav) .site-footer, body.has-sticky-buy .site-footer { padding-bottom: calc(60px + 1rem + env(safe-area-inset-bottom)); }
    body.has-sticky-buy .fab-stack, body:has(.bottom-nav) .fab-stack { bottom: calc(60px + 1rem + env(safe-area-inset-bottom)); }
    body.has-sticky-buy:has(.sticky-buy:not(.is-hidden)) .fab-stack { transform: none; }
  }

  /* ---- Product gallery: a product with one image uses the full width. ---- */
  .gallery[data-gallery].is-single, .gallery[data-gallery]:not(:has(.gallery-thumbs)) { grid-template-columns: minmax(0, 1fr); }

  /* ---- Checkout: checkboxes line up with the first line of their text and are easy to tap. ---- */
  .woocommerce-checkout .woocommerce-form__label-for-checkbox,
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox { display: flex !important; align-items: flex-start; gap: .6rem; line-height: 1.5; }
  .woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"],
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; margin: calc((1.5em - 20px) / 2) 0 0 !important; accent-color: var(--brand); position: static; }
  .woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text { line-height: 1.5; }
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .required { margin-left: .15rem; }

  /* ---- Header search: let the suggestions drop-down out of the rounded box. ---- */
  .header-search { position: relative; overflow: visible; }
  .header-search > :first-child { border-top-left-radius: var(--radius-full); border-bottom-left-radius: var(--radius-full); }
  .header-search > button[type="submit"], .header-search > .search-submit { border-top-right-radius: var(--radius-full); border-bottom-right-radius: var(--radius-full); }
  .header-search .xc-search-results { z-index: 120; }
  .site-header:has(.xc-search-results:not([hidden]):not(:empty)) { z-index: 140; }

  /* ---- Single product: buttons in one row for every product type. ---- */
  .summary form.variations_form .single_variation_wrap { flex: 1 1 100%; min-width: 0; }
  .summary .woocommerce-variation-add-to-cart { width: 100%; }
  .summary .woocommerce-variation-add-to-cart .xc-buy-now { flex: 1 1 160px; }
  .summary form.cart .xc-buy-now[disabled], .summary form.cart .xc-buy-now.is-disabled { opacity: .55; cursor: not-allowed; }
  .summary form.cart .single_add_to_cart_button.loading { opacity: .7; pointer-events: none; }
  .xc-atc-notice { margin: 0 0 1rem; }
}
