/*!
 * 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 { 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 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 [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 { width: auto; margin: 0; float: 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 { 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); }
  .summary form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin-block: var(--space-5); }
  .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); }
  .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 #order_review, .woocommerce-checkout-review-order { 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, 1.4fr) minmax(0, 1fr); gap: var(--space-6); align-items: start; }
    .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
    .woocommerce-checkout #customer_details { grid-column: 1; }
    .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; }
    .woocommerce-checkout #order_review_heading { grid-row: 1; margin: 0; }
    .woocommerce-checkout #order_review { grid-row: 2; 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 Essential) ---------- */
  .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; }

  /* ---------- 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; }
  .newsletter .wpcf7 { width: 100%; }
  .newsletter .wpcf7-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: stretch; background: var(--surface); border-radius: var(--radius-full); padding: .35rem; }
  .newsletter .wpcf7-form > p, .newsletter .wpcf7-form > div:not(.wpcf7-response-output) { margin: 0; display: contents; }
  .newsletter .wpcf7-form label { flex: 1 1 200px; margin: 0; }
  .newsletter .wpcf7-form-control-wrap { display: block; }
  .newsletter .wpcf7-form input[type="email"] { width: 100%; border: 0; background: transparent; padding: .8rem 1.1rem; color: var(--text); font: inherit; }
  .newsletter .wpcf7-form input[type="email"]:focus { outline: none; }
  .newsletter .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; }
  .newsletter .wpcf7-spinner { display: none; }
  .newsletter .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) { .newsletter .wpcf7-form { border-radius: var(--radius-lg); } .newsletter .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 { display: block; }
}
