/*
Theme Name:     Jouelanity Precision
Theme URI:      https://jouelanity.com/
Description:    GMC-compliant WooCommerce theme for Jouelanity, a curated US-based watch retailer. Sticky header, mega menu, quick view, slide-out mini cart, wishlist, product compare, hero sections, product grids, full trust pages, and Google Merchant Center US compliance out of the box (privacy, terms, shipping, returns, contact, schema.org Store + Organization + WebSite markup with brand/gtin/mpn fallback, addressRegion, areaServed). Operated by Veltrix Group Corporation, Waskom, TX, United States.
Author:         Jouelanity (Veltrix Group Corporation)
Author URI:     https://jouelanity.com/
Version:        2.3.17
Text Domain:    precision-watch
License:        GNU General Public License v2 or later
License URI:    http://www.gnu.org/licenses/gpl-2.0.html
Tags:           e-commerce, woocommerce, watches, luxury, minimalist, sticky-header, gmc-ready, schema-org, custom-logo, custom-menu, threaded-comments, translation-ready, block-styles, wide-blocks
*/

/* =========================================================
   1. CSS VARIABLES - Phong cách Luxury / Watch Store
   ========================================================= */
:root {
    --pw-color-primary: #1a1a1a;          /* Đen sang trọng */
    --pw-color-secondary: #b8956a;        /* Warm gold accent */
    --pw-color-accent: #8a6d3b;           /* Vàng đậm */
    --pw-color-bg: #ffffff;
    --pw-color-bg-alt: #f5f3ef;           /* Beige nhẹ */
    --pw-color-text: #1a1a1a;
    --pw-color-text-light: #6b6b6b;
    --pw-color-border: #e5e2dc;
    --pw-color-dark: #0a0a0a;
    --pw-color-sale: #c0392b;

    --pw-font-heading: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --pw-font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;
    --pw-font-accent: 'Cormorant Garamond', serif;

    --pw-transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --pw-transition-slow: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    --pw-container-width: 1440px;
    --pw-container-padding: 40px;

    --pw-header-height: 90px;
    --pw-header-height-sticky: 70px;
}

/* =========================================================
   2. RESET & BASE
   ========================================================= */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0 !important;
    padding: 0 !important;
}

body {
    font-family: var(--pw-font-body);
    color: var(--pw-color-text);
    background: var(--pw-color-bg);
    font-size: 15px;
    line-height: 1.7;
    font-weight: 400;
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

/* Force every full-width wrapper to reach the viewport edge.
   Without these resets the body's default 8px UA margin and any inherited
   page wrapper width clip header/footer/hero — visible as a cream "frame"
   around the dark footer on mobile. */
.pw-header,
.pw-footer,
.pw-newsletter,
.pw-hero,
.pw-features,
#page,
.site,
.site-header,
.site-footer,
main#content,
.site-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--pw-font-heading);
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.2;
    color: var(--pw-color-primary);
    margin: 0 0 0.5em;
}

h1 { font-size: clamp(2.5rem, 5vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.75rem); }
h3 { font-size: clamp(1.5rem, 2.5vw, 2.5rem); }
h4 { font-size: clamp(1.25rem, 2vw, 1.75rem); }

a {
    color: var(--pw-color-primary);
    text-decoration: none;
    transition: var(--pw-transition);
}
a:hover { color: var(--pw-color-secondary); }

img { max-width: 100%; height: auto; display: block; }

.pw-container {
    max-width: var(--pw-container-width);
    margin: 0 auto;
    padding: 0 var(--pw-container-padding);
}

.pw-section { padding: 100px 0; }

/* Section eyebrow text */
.pw-eyebrow {
    display: inline-block;
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin-bottom: 16px;
}

/* =========================================================
   3. BUTTONS
   ========================================================= */
.pw-btn,
.button,
button.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 36px;
    font-family: var(--pw-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    background: var(--pw-color-primary);
    color: #fff;
    border: 1px solid var(--pw-color-primary);
    border-radius: 0;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: var(--pw-transition);
}

.pw-btn::before,
.woocommerce a.button::before,
.button::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: var(--pw-color-secondary);
    transition: var(--pw-transition);
    z-index: 0;
}

.pw-btn:hover::before,
.woocommerce a.button:hover::before,
.button:hover::before { left: 0; }

.pw-btn span, .button span { position: relative; z-index: 1; }

.pw-btn:hover,
.woocommerce a.button:hover,
.button:hover {
    background: var(--pw-color-primary);
    color: #fff;
    border-color: var(--pw-color-secondary);
}

.pw-btn--outline {
    background: transparent;
    color: var(--pw-color-primary);
}
.pw-btn--outline:hover { color: #fff; }

.pw-btn--light {
    background: #fff;
    color: var(--pw-color-primary);
    border-color: #fff;
}

/* Hover-text-swap effect (như site mẫu: "View More / View More") */
.pw-btn-swap {
    position: relative;
    overflow: hidden;
    display: inline-flex;
    flex-direction: column;
    height: 18px;
    line-height: 18px;
}
.pw-btn-swap span {
    display: block;
    transition: transform 0.4s cubic-bezier(0.7, 0, 0.3, 1);
}
.pw-btn-swap:hover span { transform: translateY(-100%); }

/* =========================================================
   4. TOP BAR
   ========================================================= */
.pw-topbar {
    background: var(--pw-color-dark);
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 0;
    overflow: hidden;
}

.pw-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.pw-topbar__message {
    flex: 1;
    min-width: 0;
    text-align: center;
    opacity: 0.95;
}

.pw-topbar__ticker {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
}

.pw-topbar__track {
    display: flex;
    width: max-content;
    animation: pw-topbar-marquee 34s linear infinite;
    will-change: transform;
}

.pw-topbar__group {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.pw-topbar__item {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 28px;
    color: #fff;
}

.pw-topbar__dot {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    color: rgba(255,255,255,0.35);
    font-size: 14px;
    letter-spacing: 0;
}

@keyframes pw-topbar-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .pw-topbar__track {
        animation: none;
        transform: none;
    }
}

.pw-topbar__socials,
.pw-topbar__locator {
    display: flex;
    gap: 16px;
}

.pw-topbar a { color: #fff; opacity: 0.7; }
.pw-topbar a:hover { opacity: 1; color: var(--pw-color-secondary); }

/* =========================================================
   5. HEADER & STICKY
   ========================================================= */
.pw-header {
    position: relative;
    background: #fff;
    border-bottom: 1px solid var(--pw-color-border);
    z-index: 100;
    transition: var(--pw-transition);
}

.pw-header__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: var(--pw-header-height);
    gap: 24px;
}

.pw-header__logo {
    grid-column: 2;
    text-align: center;
}
.pw-header__logo img { max-height: 50px; width: auto; margin: 0 auto; }

.pw-header__nav { grid-column: 1; }
.pw-header__tools {
    grid-column: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 28px;
}

.pw-header__tool {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pw-cart-count {
    background: var(--pw-color-secondary);
    color: #fff;
    font-size: 10px;
    width: 18px; height: 18px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0;
}

/* Sticky header */
.pw-header--sticky {
    position: fixed;
    top: 0; left: 0; right: 0;
    transform: translateY(-100%);
    box-shadow: 0 4px 30px rgba(0,0,0,0.06);
}
.pw-header--sticky.is-visible { transform: translateY(0); }
.pw-header--sticky .pw-header__inner { height: var(--pw-header-height-sticky); }
.pw-header--sticky .pw-topbar {
    border-bottom: 0;
}

/* Header on dark hero (transparent variant) */
.pw-header--transparent {
    position: absolute;
    top: 0; left: 0; right: 0;
    background: transparent;
    border-bottom-color: rgba(255,255,255,0.1);
}
.pw-header--transparent .pw-menu > li > a,
.pw-header--transparent .pw-header__tool { color: #fff; }

/* =========================================================
   6. MAIN MENU + MEGA MENU
   ========================================================= */
.pw-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 36px;
}

.pw-menu > li { position: relative; }

.pw-menu > li > a {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 12px 0;
    display: block;
    position: relative;
}

.pw-menu > li > a::after {
    content: '';
    position: absolute;
    bottom: 8px; left: 0;
    width: 0; height: 1px;
    background: var(--pw-color-secondary);
    transition: var(--pw-transition);
}
.pw-menu > li:hover > a::after,
.pw-menu > li.current-menu-item > a::after,
.pw-menu > li.current_page_item > a::after {
    width: 100%;
}

.pw-menu > li.current-menu-item > a,
.pw-menu > li.current_page_item > a {
    color: var(--pw-color-secondary);
    font-weight: 700;
}

/* Dropdown */
.pw-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 16px 0;
    position: absolute;
    top: 100%; left: -20px;
    min-width: 220px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0,0,0,0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: var(--pw-transition);
    z-index: 50;
}

.pw-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pw-menu .sub-menu a {
    display: block;
    padding: 10px 24px;
    font-size: 13px;
    letter-spacing: 0.05em;
    text-transform: none;
    color: var(--pw-color-text);
}
.pw-menu .sub-menu a:hover {
    color: var(--pw-color-secondary);
    padding-left: 30px;
}

/* Mega menu */
.pw-menu .pw-mega {
    position: absolute;
    top: 100%; left: 50%;
    transform: translateX(-50%) translateY(10px);
    width: min(1100px, 95vw);
    background: #fff;
    box-shadow: 0 30px 80px rgba(0,0,0,0.1);
    padding: 40px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    opacity: 0;
    visibility: hidden;
    transition: var(--pw-transition);
    z-index: 50;
}

.pw-menu li:hover > .pw-mega {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.pw-mega__title {
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--pw-color-border);
}

.pw-mega__list { list-style: none; padding: 0; margin: 0; }
.pw-mega__list li { margin-bottom: 8px; }
.pw-mega__list a { font-size: 13px; color: var(--pw-color-text); }
.pw-mega__list a:hover { color: var(--pw-color-secondary); padding-left: 6px; }

.pw-mega__banner {
    position: relative;
    overflow: hidden;
}
.pw-mega__banner img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}
.pw-mega__banner:hover img { transform: scale(1.05); }

/* Mobile menu */
.pw-menu-toggle {
    display: none;
    background: none;
    border: 0;
    padding: 8px;
    cursor: pointer;
}
.pw-menu-toggle span {
    display: block;
    width: 24px; height: 1.5px;
    background: var(--pw-color-primary);
    margin: 5px 0;
    transition: var(--pw-transition);
}

@media (max-width: 1024px) {
    .pw-menu-toggle { display: block; }
    .pw-header__nav {
        position: fixed;
        top: 0; left: 0;
        width: 100%; height: 100vh;
        background: #fff;
        padding: 80px 32px 32px;
        transform: translateX(-100%);
        transition: transform 0.4s ease;
        z-index: 99;
        overflow-y: auto;
    }
    .pw-header__nav.is-open { transform: translateX(0); }
    .pw-menu { flex-direction: column; align-items: flex-start; gap: 0; }
    .pw-menu > li { width: 100%; border-bottom: 1px solid var(--pw-color-border); }
    .pw-menu .sub-menu, .pw-menu .pw-mega {
        position: static;
        opacity: 1; visibility: visible;
        transform: none;
        box-shadow: none;
        display: none;
        width: 100%;
        padding: 0 0 16px 16px;
    }
    .pw-menu li.is-expanded > .sub-menu,
    .pw-menu li.is-expanded > .pw-mega { display: block; }
}

/* =========================================================
   7. HERO SLIDER (Parallax)
   ========================================================= */
.pw-hero {
    position: relative;
    height: 100vh;
    min-height: 700px;
    overflow: hidden;
    background: #000;
}

.pw-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.2s ease;
}
.pw-hero__slide.is-active { opacity: 1; }

.pw-hero__bg {
    position: absolute;
    inset: -10%;
    background-size: cover;
    background-position: center;
    transform: scale(1.1);
    transition: transform 8s ease-out;
    will-change: transform;
}
.pw-hero__slide.is-active .pw-hero__bg { transform: scale(1); }

.pw-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%);
}

.pw-hero__content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 0 var(--pw-container-padding);
    max-width: var(--pw-container-width);
    margin: 0 auto;
    color: #fff;
}

.pw-hero__eyebrow {
    color: var(--pw-color-secondary);
    font-size: 12px;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    margin-bottom: 24px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s ease 0.3s;
}

.pw-hero__title {
    color: #fff;
    font-size: clamp(3rem, 8vw, 8rem);
    font-weight: 400;
    line-height: 0.95;
    margin: 0 0 32px;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    opacity: 0;
    transform: translateY(40px);
    transition: all 1s ease 0.5s;
}

.pw-hero__cta {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s ease 0.8s;
}

.pw-hero__slide.is-active .pw-hero__eyebrow,
.pw-hero__slide.is-active .pw-hero__title,
.pw-hero__slide.is-active .pw-hero__cta {
    opacity: 1;
    transform: translateY(0);
}

/* Hero pagination */
.pw-hero__pagination {
    position: absolute;
    bottom: 40px; left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 5;
}
.pw-hero__bullet {
    width: 40px; height: 2px;
    background: rgba(255,255,255,0.3);
    border: 0;
    cursor: pointer;
    transition: var(--pw-transition);
}
.pw-hero__bullet.is-active { background: var(--pw-color-secondary); }

/* =========================================================
   8. PRODUCT GRID + CARDS
   ========================================================= */
.pw-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 40px 24px;
}

ul.products,
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 40px 24px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
.woocommerce ul.products li.product { width: 100% !important; margin: 0 !important; clear: none !important; }

/* WooCommerce injects ::before / ::after pseudos on ul.products for its
   legacy float clear-fix. When the ul is `display: grid`, those pseudos
   become invisible grid items that occupy a cell, shifting the first row
   right by one cell. Neutralise them. */
ul.products::before,
ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    content: none !important;
    display: none !important;
}

@media (max-width: 1024px) {
    .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 24px 12px !important; }
}

@media (min-width: 1025px) {
    .woocommerce ul.products.columns-1,
    .woocommerce ul.products.pw-products-grid--columns-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
    .woocommerce ul.products.columns-2,
    .woocommerce ul.products.pw-products-grid--columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .woocommerce ul.products.columns-3,
    .woocommerce ul.products.pw-products-grid--columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    .woocommerce ul.products.columns-4,
    .woocommerce ul.products.pw-products-grid--columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.pw-products-grid--columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
    .woocommerce ul.products.columns-6,
    .woocommerce ul.products.pw-products-grid--columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}

.woocommerce ul.products.pw-products-grid--list,
.woocommerce ul.products.pw-products-grid--list-boxed {
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: 1100px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.woocommerce ul.products.pw-products-grid--list li.product .pw-product,
.woocommerce ul.products.pw-products-grid--list-boxed li.product .pw-product {
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    text-align: left;
}

.woocommerce ul.products.pw-products-grid--list-boxed li.product .pw-product {
    border: 1px solid var(--pw-color-border);
    padding: 22px;
}

@media (max-width: 768px) {
    .woocommerce ul.products.pw-products-grid--list li.product .pw-product,
    .woocommerce ul.products.pw-products-grid--list-boxed li.product .pw-product {
        display: block;
        text-align: center;
    }
}

.pw-product {
    position: relative;
    background: #fff;
    text-align: center;
    overflow: hidden;
}

.pw-product__media {
    position: relative;
    overflow: hidden;
    background: var(--pw-color-bg-alt);
    aspect-ratio: 1 / 1;
    margin-bottom: 20px;
}

.pw-product__media img,
.woocommerce ul.products li.product a img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: var(--pw-transition-slow);
    margin: 0 !important;
}

.pw-product__media-hover {
    position: absolute; inset: 0;
    opacity: 0;
    transition: var(--pw-transition-slow);
}
.pw-product:hover .pw-product__media-hover { opacity: 1; }
.pw-product:hover .pw-product__media img { transform: scale(1.06); }

/* Badges (sale / new) */
.pw-product__badges {
    position: absolute;
    top: 16px; left: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 2;
}
.pw-product__badge,
.woocommerce span.onsale {
    display: inline-block;
    padding: 6px 12px;
    background: var(--pw-color-primary);
    color: #fff;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border-radius: 0;
    line-height: 1;
    margin: 0;
    min-height: auto;
    min-width: auto;
    position: static;
}
.pw-product__badge--sale,
.woocommerce span.onsale { background: var(--pw-color-sale); }
.pw-product__badge--new { background: var(--pw-color-secondary); }

/* Floating actions on hover */
.pw-product__actions {
    position: absolute;
    top: 16px; right: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    z-index: 2;
    opacity: 0;
    transform: translateX(20px);
    transition: var(--pw-transition);
}
.pw-product:hover .pw-product__actions {
    opacity: 1;
    transform: translateX(0);
}

.pw-product__action {
    width: 42px; height: 42px;
    background: #fff;
    border: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: var(--pw-transition);
}
.pw-product__action:hover {
    background: var(--pw-color-primary);
    color: #fff;
}
.pw-product__action svg { width: 18px; height: 18px; }

.pw-product__quick-view {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: var(--pw-color-primary);
    color: #fff;
    padding: 14px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    transform: translateY(100%);
    transition: var(--pw-transition);
    text-align: center;
    cursor: pointer;
    border: 0;
}
.pw-product:hover .pw-product__quick-view { transform: translateY(0); }

/* Product info */
.pw-product__cat,
.woocommerce ul.products li.product .product_cat,
.woocommerce ul.products li.product .posted_in {
    display: block;
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    margin-bottom: 8px;
}

.pw-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--pw-font-heading);
    font-size: 22px !important;
    font-weight: 400 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: var(--pw-color-primary);
    letter-spacing: 0;
}

.pw-product__price,
.woocommerce ul.products li.product .price {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--pw-color-primary) !important;
    letter-spacing: 0.05em;
    margin: 0 !important;
}
.woocommerce ul.products li.product .price del { color: var(--pw-color-text-light); opacity: 0.6; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { background: transparent; color: var(--pw-color-sale); text-decoration: none; }

/* =========================================================
   9. SECTION HEADINGS
   ========================================================= */
.pw-section-head {
    text-align: center;
    margin-bottom: 60px;
}
.pw-section-head__title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
}
.pw-section-head__subtitle {
    color: var(--pw-color-text-light);
    font-size: 14px;
    letter-spacing: 0.08em;
}

/* =========================================================
   10. FEATURE STRIP (Payment / Delivery / Returns)
   ========================================================= */
.pw-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 60px 0;
    border-top: 1px solid var(--pw-color-border);
    border-bottom: 1px solid var(--pw-color-border);
}

.pw-feature {
    display: flex;
    align-items: center;
    gap: 20px;
}

.pw-feature__icon {
    width: 56px; height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pw-color-secondary);
    flex-shrink: 0;
}
.pw-feature__icon svg { width: 32px; height: 32px; stroke-width: 1.2; }

.pw-feature__title {
    font-family: var(--pw-font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin: 0 0 4px;
}
.pw-feature__text {
    font-size: 13px;
    color: var(--pw-color-text-light);
    margin: 0;
}

@media (max-width: 768px) {
    .pw-features { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}

/* =========================================================
   11. SLIDE-OUT MINI CART
   ========================================================= */
.pw-mini-cart {
    position: fixed;
    top: 0; right: 0;
    width: min(450px, 100vw);
    height: 100vh;
    background: #fff;
    box-shadow: -20px 0 60px rgba(0,0,0,0.12);
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(0.7, 0, 0.3, 1);
    z-index: 999;
    display: flex;
    flex-direction: column;
}
.pw-mini-cart.is-open { transform: translateX(0); }

.pw-mini-cart__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    visibility: hidden;
    transition: var(--pw-transition);
    z-index: 998;
}
.pw-mini-cart__overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.pw-mini-cart__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 32px;
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-mini-cart__title {
    font-family: var(--pw-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin: 0;
}
.pw-mini-cart__close {
    background: none; border: 0;
    width: 32px; height: 32px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pw-mini-cart__body {
    flex: 1;
    overflow-y: auto;
    padding: 24px 32px;
}

.pw-mini-cart__item {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-mini-cart__item img { width: 80px; height: 80px; object-fit: cover; }
.pw-mini-cart__item-name {
    font-family: var(--pw-font-heading);
    font-size: 18px;
    margin: 0 0 4px;
}
.pw-mini-cart__item-meta {
    font-size: 12px;
    color: var(--pw-color-text-light);
}

.pw-mini-cart__foot {
    padding: 24px 32px;
    border-top: 1px solid var(--pw-color-border);
}
.pw-mini-cart__total {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    font-size: 14px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.pw-mini-cart__total strong { color: var(--pw-color-secondary); }
.pw-mini-cart__actions { display: grid; gap: 8px; }
.pw-mini-cart__actions .button { width: 100%; }

.pw-mini-cart__empty {
    text-align: center;
    padding: 60px 24px;
    color: var(--pw-color-text-light);
}

/* =========================================================
   12. QUICK VIEW MODAL
   ========================================================= */
.pw-quickview {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    opacity: 0;
    visibility: hidden;
    transition: var(--pw-transition);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.pw-quickview.is-open { opacity: 1; visibility: visible; }

.pw-quickview__inner {
    background: #fff;
    width: 100%;
    max-width: 1100px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    transform: scale(0.95);
    transition: var(--pw-transition);
}
.pw-quickview.is-open .pw-quickview__inner { transform: scale(1); }

.pw-quickview__close {
    position: absolute;
    top: 20px; right: 20px;
    width: 40px; height: 40px;
    background: #fff;
    border: 1px solid var(--pw-color-border);
    border-radius: 50%;
    cursor: pointer;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pw-quickview__close:hover {
    background: var(--pw-color-primary);
    color: #fff;
}

.pw-quickview__body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}
.pw-quickview__images { background: var(--pw-color-bg-alt); }
.pw-quickview__images img { width: 100%; height: 100%; object-fit: cover; }
.pw-quickview__content { padding: 60px 50px; }

@media (max-width: 768px) {
    .pw-quickview__body { grid-template-columns: 1fr; }
    .pw-quickview__content { padding: 32px 24px; }
}

/* =========================================================
   13. SINGLE PRODUCT - GALLERY ZOOM + VARIATIONS
   ========================================================= */
.woocommerce div.product {
    padding: 60px 0;
}

.woocommerce div.product div.images {
    width: 50% !important;
    float: left;
}
.woocommerce div.product div.summary {
    width: 45% !important;
    float: right;
    padding-left: 20px;
}

@media (max-width: 768px) {
    .woocommerce div.product div.images,
    .woocommerce div.product div.summary {
        width: 100% !important;
        float: none;
        padding-left: 0;
    }
}

/* Gallery thumbnails */
.woocommerce div.product .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
    margin-top: 8px !important;
}
.woocommerce div.product .flex-control-thumbs li {
    width: 100% !important;
    margin: 0 !important;
    list-style: none;
}
.woocommerce div.product .flex-control-thumbs img {
    opacity: 0.6;
    transition: var(--pw-transition);
    cursor: pointer;
    border: 1px solid transparent;
}
.woocommerce div.product .flex-control-thumbs img.flex-active,
.woocommerce div.product .flex-control-thumbs img:hover {
    opacity: 1;
    border-color: var(--pw-color-secondary);
}

/* Product summary */
.woocommerce div.product .product_title {
    font-size: 2.5rem !important;
    margin-bottom: 16px !important;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-size: 24px !important;
    color: var(--pw-color-secondary) !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em;
    margin-bottom: 24px !important;
}

.woocommerce div.product .woocommerce-product-rating {
    margin-bottom: 16px !important;
}
.woocommerce .star-rating span::before { color: var(--pw-color-secondary); }

.woocommerce-product-details__short-description {
    color: var(--pw-color-text-light);
    margin-bottom: 32px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--pw-color-border);
}

/* Variation swatches */
.woocommerce div.product form.cart .variations {
    margin-bottom: 24px;
    border: 0;
}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
    display: block;
    padding: 0;
    background: transparent;
}
.woocommerce div.product form.cart .variations label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block;
}

.pw-swatches { display: flex; gap: 8px; flex-wrap: wrap; }
.pw-spiece {
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--pw-color-border);
    background: #fff;
    cursor: pointer;
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: var(--pw-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pw-swatch:hover { border-color: var(--pw-color-primary); }
.pw-spiece.is-active {
    background: var(--pw-color-primary);
    color: #fff;
    border-color: var(--pw-color-primary);
}
.pw-swatch--color {
    width: 32px; height: 32px;
    min-width: auto;
    padding: 0;
    border-radius: 50%;
    position: relative;
}
.pw-swatch--color.is-active::after {
    content: '';
    position: absolute;
    inset: -4px;
    border: 1px solid var(--pw-color-primary);
    border-radius: 50%;
}

/* Quantity */
.quantity {
    display: inline-flex !important;
    align-items: center;
    border: 1px solid var(--pw-color-border);
    margin-right: 12px;
}
.quantity input.qty {
    width: 50px !important;
    height: 50px !important;
    text-align: center;
    border: 0 !important;
    background: transparent;
    font-size: 14px;
    -moz-appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.pw-qty-btn {
    width: 50px; height: 50px;
    border: 0;
    background: transparent;
    font-size: 18px;
    cursor: pointer;
    color: var(--pw-color-text-light);
}

.woocommerce div.product form.cart .button {
    height: 52px;
    padding: 0 40px;
}

/* Product meta */
.product_meta {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--pw-color-border);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}
.product_meta > span { display: block; margin-bottom: 6px; }
.product_meta a { color: var(--pw-color-primary); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    border: 0;
    border-bottom: 1px solid var(--pw-color-border);
    padding: 0;
    margin: 0 0 32px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 16px 28px !important;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    border-bottom: 1px solid transparent;
    margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--pw-color-primary);
    border-bottom-color: var(--pw-color-secondary);
}

/* Zoom hint */
.pw-zoom-hint {
    position: absolute;
    bottom: 16px; right: 16px;
    background: rgba(0,0,0,0.7);
    color: #fff;
    padding: 8px 12px;
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    pointer-events: none;
}

/* =========================================================
   14. CATEGORY BANNERS
   ========================================================= */
.pw-cats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
}
.pw-cat {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    color: #fff;
    text-decoration: none;
}
.pw-cat__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.8s ease;
}
.pw-cat:hover .pw-cat__img { transform: scale(1.08); }
.pw-cat::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 50%, rgba(0,0,0,0.7) 100%);
}
.pw-cat__content {
    position: absolute;
    bottom: 32px; left: 32px; right: 32px;
    z-index: 2;
    color: #fff;
}
.pw-cat__eyebrow {
    font-size: 10px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    opacity: 0.8;
    color: #fff;
}
.pw-cat__title {
    font-size: 28px;
    color: #fff;
    margin: 8px 0 0;
}

@media (max-width: 768px) {
    .pw-cats { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   15. NEWSLETTER POPUP & FOOTER
   ========================================================= */
.pw-newsletter {
    background: var(--pw-color-dark);
    color: #fff;
    padding: 80px 0;
    text-align: center;
}
.pw-newsletter h2 {
    color: #fff;
    text-transform: uppercase;
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    letter-spacing: 0.1em;
    margin-bottom: 32px;
}
.pw-newsletter form {
    display: flex;
    max-width: 500px;
    margin: 0 auto;
    border-bottom: 1px solid rgba(255,255,255,0.3);
    padding-bottom: 4px;
}
.pw-newsletter input[type="email"] {
    flex: 1;
    background: transparent;
    border: 0;
    color: #fff;
    padding: 12px 0;
    font-size: 14px;
    letter-spacing: 0.05em;
}
.pw-newsletter input[type="email"]::placeholder { color: rgba(255,255,255,0.5); }
.pw-newsletter button {
    background: transparent;
    border: 0;
    color: #fff;
    padding: 12px 0;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    cursor: pointer;
}
.pw-newsletter button:hover { color: var(--pw-color-secondary); }

.pw-footer,
.pw-footer.site-footer {
    background: var(--pw-color-dark) !important;
    color: #ffffff !important;
    padding: 80px 0 32px;
}
.pw-footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 48px;
    margin-bottom: 60px;
}
.pw-footer h3,
.pw-footer h4,
.pw-footer h5,
.pw-footer h6,
.pw-footer .pw-footer__col h6,
.pw-footer .widget-title {
    color: #ffffff !important;
    font-family: var(--pw-font-body) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.25em !important;
    text-transform: uppercase !important;
    margin-bottom: 24px !important;
    opacity: 1 !important;
}
.pw-footer p,
.pw-footer .pw-footer__col p,
.pw-footer .pw-footer__about p {
    color: #ffffff !important;
    opacity: 0.85 !important;
    line-height: 1.7;
}
.pw-footer ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.pw-footer ul li,
.pw-footer .pw-footer__col ul li {
    margin-bottom: 12px !important;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    list-style: none !important;
}
.pw-footer a,
.pw-footer ul li a,
.pw-footer .pw-footer__col ul li a,
.pw-footer .menu-item a,
.pw-footer nav a,
.site-footer .pw-footer__col a {
    color: #ffffff !important;
    opacity: 0.75 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: var(--pw-transition);
    border: 0 !important;
}
.pw-footer a:hover,
.pw-footer ul li a:hover,
.pw-footer .pw-footer__col ul li a:hover,
.pw-footer .menu-item a:hover,
.pw-footer nav a:hover,
.site-footer .pw-footer__col a:hover {
    color: var(--pw-color-secondary) !important;
    opacity: 1 !important;
}
.pw-footer__logo img {
    max-height: 40px;
    margin-bottom: 24px;
    filter: invert(1);
}
.pw-footer__logo a,
.pw-footer__logo a:hover {
    color: #ffffff !important;
    opacity: 1 !important;
    text-decoration: none !important;
}

/* Social links in footer */
.pw-footer__social a,
.pw-footer .pw-footer__social a {
    color: #ffffff !important;
    opacity: 0.85 !important;
    font-size: 12px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
}
.pw-footer__social a:hover,
.pw-footer .pw-footer__social a:hover {
    color: var(--pw-color-secondary) !important;
    opacity: 1 !important;
}

/* Bottom bar */
.pw-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.15);
    padding-top: 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    font-size: 12px;
    letter-spacing: 0.05em;
    color: #ffffff !important;
}
.pw-footer__bottom span {
    color: #ffffff !important;
    opacity: 0.7;
}
.pw-footer__bottom a {
    color: #ffffff !important;
    opacity: 0.7;
}
.pw-footer__bottom a:hover {
    color: var(--pw-color-secondary) !important;
    opacity: 1 !important;
}

/* Payment icons */
.pw-footer__payments {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #ffffff !important;
}
.pw-footer__payments svg {
    transition: var(--pw-transition);
    flex-shrink: 0;
    color: #ffffff;
    opacity: 0.85;
}
.pw-footer__payments svg:hover {
    color: var(--pw-color-secondary);
    opacity: 1;
}

/* Newsletter section */
.pw-newsletter,
section.pw-newsletter {
    background: var(--pw-color-dark) !important;
    color: #ffffff !important;
}
.pw-newsletter h2 {
    color: #ffffff !important;
}
.pw-newsletter input[type="email"] {
    color: #ffffff !important;
}
.pw-newsletter input[type="email"]::placeholder {
    color: rgba(255,255,255,0.6) !important;
}
.pw-newsletter button {
    color: #ffffff !important;
}
.pw-newsletter p a {
    color: rgba(255,255,255,0.6) !important;
}
.pw-newsletter p a:hover {
    color: var(--pw-color-secondary) !important;
}

@media (max-width: 768px) {
    .pw-footer__grid { grid-template-columns: 1fr 1fr; }
    .pw-footer__bottom {
        flex-direction: column;
        gap: 20px;
        text-align: center;
    }
    .pw-footer__payments { justify-content: center; }
}

/* Jouelanity simple GMC footer, matched to the Bitaswissy policy footer. */
.pw-footer .pw-container {
    max-width: 1600px;
}
.pw-footer-simple {
    display: grid;
    grid-template-columns: minmax(260px, 1.25fr) minmax(170px, 0.9fr) minmax(240px, 1fr) minmax(180px, 0.85fr);
    gap: clamp(36px, 6vw, 120px);
    align-items: start;
}
.pw-footer-contact {
    display: grid;
    gap: 22px;
    align-content: start;
}
.pw-footer-contact__item,
.pw-footer .pw-footer-contact__item {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
    gap: 16px;
    max-width: 390px;
    margin: 0 !important;
    color: #ffffff !important;
    opacity: 1 !important;
    text-decoration: none !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.45;
}
.pw-footer-contact__item svg {
    width: 26px;
    height: 26px;
    margin-top: 1px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.pw-footer-contact__item:hover {
    color: var(--pw-color-secondary) !important;
}
.pw-footer-contact__legal,
.pw-footer .pw-footer-contact__legal {
    margin: 8px 0 0 44px !important;
    max-width: 340px;
    color: rgba(255,255,255,0.72) !important;
    opacity: 1 !important;
    font-size: 14px;
    line-height: 1.6;
}
.pw-footer-column h3,
.pw-footer .pw-footer-column h3 {
    margin: 0 0 26px !important;
    color: #ffffff !important;
    font-family: var(--pw-font-heading) !important;
    font-size: clamp(26px, 2vw, 34px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.pw-footer-column ul,
.pw-footer .pw-footer-column ul {
    display: grid;
    gap: 15px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.pw-footer-column li,
.pw-footer .pw-footer-column li {
    margin: 0 !important;
}
.pw-footer-column a,
.pw-footer .pw-footer-column a {
    display: inline-block !important;
    margin: 0 !important;
    color: rgba(255,255,255,0.9) !important;
    opacity: 1 !important;
    text-decoration: none !important;
    border: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.35;
}
.pw-footer-column a:hover {
    color: var(--pw-color-secondary) !important;
}
.pw-footer__bottom {
    margin-top: clamp(54px, 7vw, 96px);
    padding-right: 96px;
}
.pw-footer__payments svg {
    width: auto;
    height: 22px;
    opacity: 0.82;
}
.pw-footer__payments svg[aria-label="Mastercard"] {
    height: 26px;
}

@media (max-width: 1024px) {
    .pw-footer-simple {
        grid-template-columns: 1fr 1fr;
        gap: 44px 54px;
    }
}

@media (max-width: 640px) {
    .pw-footer,
    .pw-footer.site-footer {
        padding: 54px 0 30px;
    }
    .pw-footer__bottom {
        padding-right: 0;
    }
    .pw-footer-simple {
        grid-template-columns: 1fr;
        gap: 34px;
    }
    .pw-footer-contact__item,
    .pw-footer .pw-footer-contact__item {
        font-size: 16px !important;
    }
    .pw-footer-contact__legal,
    .pw-footer .pw-footer-contact__legal {
        margin-left: 42px !important;
    }
    .pw-footer-column ul,
    .pw-footer .pw-footer-column ul {
        gap: 12px;
    }
}

/* =========================================================
   16. WISHLIST + COMPARE
   ========================================================= */
.pw-wishlist-table,
.pw-compare-table {
    width: 100%;
    border-collapse: collapse;
}
.pw-wishlist-table th, .pw-wishlist-table td,
.pw-compare-table th, .pw-compare-table td {
    padding: 16px;
    border-bottom: 1px solid var(--pw-color-border);
    text-align: left;
}
.pw-wishlist-table th, .pw-compare-table th {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    background: var(--pw-color-bg-alt);
}

/* Heart icon active state */
.pw-action-wishlist.is-active { background: var(--pw-color-sale); color: #fff; }
.pw-action-wishlist.is-active svg { fill: currentColor; }

/* =========================================================
   17. UTILITIES & ANIMATIONS
   ========================================================= */
.pw-fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s ease, transform 1s ease;
}
.pw-fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.pw-text-center { text-align: center; }
.pw-mt-0 { margin-top: 0 !important; }
.pw-mb-0 { margin-bottom: 0 !important; }

/* Standard pages and blog templates */
.pw-page-hero {
    padding: 72px 0 56px;
    background: var(--pw-color-bg-alt);
    text-align: center;
}
@media (max-width: 768px) {
    .pw-page-hero {
        padding: 44px 0 32px;
    }
    .pw-page-hero h1 {
        font-size: clamp(1.6rem, 6vw, 2.4rem);
    }
}
.pw-page-hero h1 {
    max-width: 980px;
    margin: 0 auto;
}
.pw-page-hero p,
.pw-page-desc {
    max-width: 720px;
    margin: 18px auto 0;
    color: var(--pw-color-text-light);
}
.pw-page-section {
    padding: 88px 0;
}
.pw-content {
    max-width: 980px;
    margin: 0 auto;
}
.pw-content > * + * {
    margin-top: 1.2em;
}
.pw-content h2,
.pw-content h3 {
    margin-top: 1.4em;
}
.pw-content ul,
.pw-content ol {
    padding-left: 1.35em;
}
.pw-single-image {
    margin-top: 70px;
}
.pw-single-image img {
    width: 100%;
    max-height: 720px;
    object-fit: cover;
}
.pw-post-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 24px;
}
.pw-post-card {
    background: #fff;
}
.pw-post-card__image {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--pw-color-bg-alt);
}
.pw-post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--pw-transition-slow);
}
.pw-post-card:hover .pw-post-card__image img {
    transform: scale(1.05);
}
.pw-post-card__body {
    padding: 24px 0 0;
}
.pw-post-card h2 {
    font-size: clamp(1.4rem, 2vw, 2rem);
}
.pw-post-meta,
.pw-link {
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
}
.pw-post-meta {
    color: var(--pw-color-secondary);
    margin-bottom: 12px;
}
.pw-link {
    display: inline-block;
    margin-top: 12px;
    border-bottom: 1px solid currentColor;
}
.pw-pagination {
    margin-top: 46px;
    text-align: center;
}
.pw-page-hero--error {
    min-height: 58vh;
    display: flex;
    align-items: center;
}

@media (max-width: 1024px) {
    .pw-post-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .pw-page-hero { padding: 92px 0 56px; }
    .pw-page-section { padding: 62px 0; }
    .pw-post-list { grid-template-columns: 1fr; }
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--pw-color-bg-alt); }
::-webkit-scrollbar-thumb { background: var(--pw-color-secondary); }
::-webkit-scrollbar-thumb:hover { background: var(--pw-color-accent); }

/* Loader.
   pointer-events: none — the preloader is decorative only and must NEVER
   intercept clicks. Earlier versions blocked the menu when window.load
   was delayed by slow Google Fonts / images and JS hadn't yet added the
   .is-hidden class. */
.pw-preloader {
    position: fixed;
    inset: 0;
    background: var(--pw-color-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    pointer-events: none;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}
.pw-preloader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.pw-preloader__spinner {
    width: 40px; height: 40px;
    border: 2px solid var(--pw-color-border);
    border-top-color: var(--pw-color-secondary);
    border-radius: 50%;
    animation: pw-spin 0.8s linear infinite;
}
@keyframes pw-spin { to { transform: rotate(360deg); } }

/* =========================================================
   FIX PACK — TYPOGRAPHY & RESPONSIVE OVERRIDES
   These rules win over earlier ones because they're loaded last
   and use selectors that don't depend on a `.woocommerce` ancestor
   (the homepage shortcode-rendered grid doesn't have it).
   ========================================================= */

/* Product card title — guaranteed match on homepage AND shop */
ul.products li.product .woocommerce-loop-product__title,
.pw-product .woocommerce-loop-product__title,
li.product .woocommerce-loop-product__title,
.pw-product__title {
    font-family: var(--pw-font-heading);
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: var(--pw-color-primary);
    letter-spacing: 0;
    text-transform: none;
}

/* Category line above title */
ul.products li.product .pw-product__cat,
.pw-product .pw-product__cat,
.pw-product__cat {
    display: block;
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin-bottom: 6px;
}
ul.products li.product .pw-product__cat a,
.pw-product .pw-product__cat a {
    color: inherit;
}

/* Price — match without .woocommerce ancestor */
ul.products li.product .price,
.pw-product .price,
li.product .price {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--pw-color-primary) !important;
    letter-spacing: 0.05em;
    margin: 0 !important;
}

/* Add-to-cart on card */
ul.products li.product .button,
.pw-product .button {
    margin-top: 14px;
}

/* Card info wrapper spacing */
.pw-product__info {
    padding: 4px 0 0;
    text-align: center;
}
.pw-product__info > * + * { margin-top: 6px; }

/* Grid column variants — work without .woocommerce ancestor */
@media (min-width: 1025px) {
    ul.products.columns-1, ul.products.pw-products-grid--columns-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
    ul.products.columns-2, ul.products.pw-products-grid--columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    ul.products.columns-3, ul.products.pw-products-grid--columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    ul.products.columns-4, ul.products.pw-products-grid--columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
    ul.products.columns-5, ul.products.pw-products-grid--columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
    ul.products.columns-6, ul.products.pw-products-grid--columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}
@media (max-width: 1024px) {
    ul.products { grid-template-columns: repeat(3, 1fr) !important; gap: 30px 18px !important; }
}
@media (max-width: 768px) {
    ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 22px 12px !important; }
    ul.products li.product .woocommerce-loop-product__title,
    .pw-product .woocommerce-loop-product__title { font-size: 16px !important; }
}
@media (max-width: 420px) {
    ul.products { gap: 18px 10px !important; }
    ul.products li.product .woocommerce-loop-product__title,
    .pw-product .woocommerce-loop-product__title { font-size: 15px !important; }
    .pw-product__media { margin-bottom: 12px; }
    ul.products li.product .price,
    .pw-product .price { font-size: 13px !important; }
}

/* =========================================================
   GENERIC GRID UTILITY (replaces inline style on homepage)
   ========================================================= */
.pw-grid { display: grid; gap: 32px; }
.pw-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pw-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pw-grid--center { align-items: center; }
.pw-grid--align-stretch { align-items: stretch; }
.pw-grid--gap-sm { gap: 24px; }
.pw-grid--gap-md { gap: 48px; }
.pw-grid--gap-lg { gap: 80px; }

.pw-grid__media--portrait { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.pw-grid__panel--alt {
    background: var(--pw-color-bg-alt);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 60px;
}

.pw-section--alt { background: var(--pw-color-bg-alt); }

@media (max-width: 960px) {
    .pw-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pw-grid--gap-lg { gap: 48px; }
    .pw-grid__panel--alt { padding: 56px 32px; }
}
@media (max-width: 720px) {
    .pw-grid--2,
    .pw-grid--3 { grid-template-columns: minmax(0, 1fr) !important; }
    .pw-grid--gap-lg,
    .pw-grid--gap-md { gap: 32px !important; }
    .pw-grid__media--portrait { aspect-ratio: 16 / 11; }
    .pw-grid__panel--alt { padding: 40px 24px; }
}

/* =========================================================
   GLOBAL TYPOGRAPHY — softer scale on tablet/mobile
   ========================================================= */
@media (max-width: 960px) {
    .pw-section { padding: 72px 0; }
    .pw-container { padding: 0 24px; }
}
@media (max-width: 640px) {
    body { font-size: 14px; }
    h1 { font-size: clamp(1.85rem, 7vw, 2.6rem) !important; }
    h2 { font-size: clamp(1.55rem, 6vw, 2.25rem) !important; }
    h3 { font-size: clamp(1.3rem, 5vw, 1.75rem) !important; }
    .pw-section { padding: 56px 0; }
    .pw-container { padding: 0 16px; }
    .pw-section-head { margin-bottom: 36px; }
    .pw-section-head__title { font-size: clamp(1.6rem, 6vw, 2.25rem) !important; }
    .pw-newsletter h2 { font-size: clamp(1.5rem, 6vw, 2rem) !important; }
}

/* Header tools — collapse text labels on small screens */
@media (max-width: 640px) {
    .pw-header__tool span:not(.pw-cart-count) { display: none; }
    .pw-topbar__socials,
    .pw-topbar__locator { display: none; }
    .pw-topbar__inner { justify-content: center; }
    .pw-header__inner { gap: 12px; }
}

/* Homepage product loop floating action buttons — hide on touch */
@media (hover: none) and (pointer: coarse) {
    .pw-product__actions { opacity: 1; transform: none; }
}

/* Footer grid responsive */
.pw-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 48px;
}
@media (max-width: 960px) {
    .pw-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 540px) {
    .pw-footer__grid { grid-template-columns: 1fr; gap: 32px; }
    .pw-footer__bottom { flex-direction: column; gap: 16px; text-align: center; }
}

/* =========================================================
   GMC FIX PACK 1.1.0
   ========================================================= */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-family: var(--pw-font-body);
    letter-spacing: 0;
}

h1, h2, h3, h4, h5, h6 {
    letter-spacing: 0;
}

.pw-hero {
    min-height: 620px;
}

.pw-hero__title {
    font-size: 7rem !important;
    line-height: 0.92 !important;
}

.pw-section-head__title,
.pw-page-hero h1 {
    font-size: 3.75rem !important;
}

li.product > .woocommerce-loop-product__title {
    display: none !important;
}

li.product .pw-product__info .woocommerce-loop-product__title {
    display: block !important;
}

ul.products li.product .woocommerce-loop-product__title,
.pw-product .woocommerce-loop-product__title {
    font-size: 1.35rem !important;
    line-height: 1.22 !important;
    min-height: 0;
}

.pw-product__media {
    aspect-ratio: 1 / 1;
    background: #f4f2ee;
}

.pw-product__media img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}

.pw-products-grid--list .pw-product__media,
.pw-products-grid--list-boxed .pw-product__media {
    margin-bottom: 0;
}

.pw-shop-page {
    width: 100%;
}

.pw-policy,
.pw-demo-page {
    max-width: 1080px;
    margin: 0 auto;
}

.pw-policy h2,
.pw-demo-page h2 {
    font-size: 3rem !important;
    margin-bottom: 24px;
}

.pw-policy h3 {
    font-family: var(--pw-font-body);
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-top: 32px;
}

.pw-policy p,
.pw-policy li,
.pw-demo-page p {
    color: var(--pw-color-text-light);
}

.pw-policy-contact {
    margin-top: 38px;
    padding: 28px;
    background: var(--pw-color-bg-alt);
}

.pw-demo-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.85fr);
    gap: 70px;
    align-items: center;
}

.pw-demo-media {
    min-height: 520px;
    background:
        linear-gradient(rgba(0,0,0,0.02), rgba(0,0,0,0.02)),
        url("https://images.unsplash.com/photo-1524592094714-0f0654e20314?auto=format&fit=crop&w=1000&q=80") center/cover;
}

.pw-demo-stats,
.pw-demo-cards,
.pw-demo-contact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 70px;
}

.pw-demo-stats div,
.pw-demo-cards article,
.pw-demo-contact div {
    border: 1px solid var(--pw-color-border);
    padding: 30px;
    background: #fff;
}

.pw-demo-stats strong {
    display: block;
    font-family: var(--pw-font-heading);
    font-size: 3rem;
    font-weight: 400;
}

.pw-demo-stats span,
.pw-demo-contact a {
    color: var(--pw-color-text-light);
}

.pw-demo-timeline {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--pw-color-border);
}

.pw-demo-timeline article {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 32px;
    padding: 34px 0;
    border-bottom: 1px solid var(--pw-color-border);
}

.pw-demo-timeline strong {
    font-family: var(--pw-font-heading);
    font-size: 2.4rem;
    font-weight: 400;
}

.pw-demo-faq details {
    border-bottom: 1px solid var(--pw-color-border);
    padding: 22px 0;
}

.pw-demo-faq summary {
    cursor: pointer;
    font-family: var(--pw-font-heading);
    font-size: 1.45rem;
}

.pw-demo-coming {
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
    padding: 80px 20px;
}

.pw-menu .sub-menu .sub-menu {
    left: 100%;
    top: 0;
}

@media (max-width: 1180px) {
    .pw-menu { gap: 24px; }
    .pw-header__tools { gap: 18px; }
    .pw-hero__title { font-size: 5.6rem !important; }
}

@media (max-width: 960px) {
    .pw-header__inner {
        grid-template-columns: auto 1fr auto;
        height: 76px;
    }
    .pw-header__logo {
        grid-column: 2;
    }
    .pw-header__nav {
        grid-column: 1;
    }
    .pw-header__tools {
        grid-column: 3;
    }
    .pw-hero {
        height: auto;
        min-height: 560px;
    }
    .pw-hero__title {
        font-size: 4.2rem !important;
    }
    .pw-section-head__title,
    .pw-page-hero h1 {
        font-size: 2.6rem !important;
    }
    .pw-demo-split,
    .pw-demo-stats,
    .pw-demo-cards,
    .pw-demo-contact {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .pw-demo-media {
        min-height: 360px;
    }
}

@media (max-width: 640px) {
    .pw-hero {
        min-height: 500px;
    }
    .pw-hero__title {
        font-size: 3rem !important;
    }
    .pw-hero__content {
        padding-top: 80px;
    }
    .pw-section-head__title,
    .pw-page-hero h1,
    .pw-policy h2,
    .pw-demo-page h2 {
        font-size: 2rem !important;
    }
    ul.products,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .pw-product__actions {
        right: 8px;
        top: 8px;
        gap: 6px;
    }
    .pw-product__action {
        width: 34px;
        height: 34px;
    }
    .pw-demo-timeline article {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .pw-policy-contact,
    .pw-demo-stats div,
    .pw-demo-cards article,
    .pw-demo-contact div {
        padding: 22px;
    }
}

@media (max-width: 420px) {
    ul.products li.product .woocommerce-loop-product__title,
    .pw-product .woocommerce-loop-product__title {
        font-size: 1rem !important;
    }
    .pw-btn,
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button {
        padding: 14px 18px;
        min-width: 0;
        width: 100%;
    }
}

/* =========================================================
   NAVBAR, MOBILE MENU, CART/CHECKOUT FIX PACK 1.2.0
   ========================================================= */
.pw-header {
    background: #fff;
}

.pw-header__inner {
    position: relative;
}

.pw-header__nav {
    min-width: 0;
}

.pw-header__logo a,
.pw-header__logo strong {
    color: var(--pw-color-primary);
    text-decoration: none;
}

.pw-header__logo strong {
    display: inline-block;
    font-family: var(--pw-font-heading);
    font-size: clamp(24px, 2vw, 32px) !important;
    font-weight: 400;
    letter-spacing: 0 !important;
    line-height: 1;
}

.pw-menu {
    gap: clamp(22px, 2vw, 38px);
    white-space: nowrap;
}

.pw-menu > li > a {
    letter-spacing: 0.14em;
    padding: 18px 0;
}

.pw-menu .sub-menu {
    min-width: 240px;
    padding: 18px 0;
    border: 1px solid rgba(0,0,0,0.06);
}

.pw-menu .sub-menu a {
    padding: 11px 24px;
}

.pw-header__tools {
    gap: clamp(14px, 1.6vw, 26px);
}

.pw-header__tool {
    min-width: 34px;
    min-height: 34px;
    justify-content: center;
    color: var(--pw-color-primary);
}

.pw-header__tool svg,
.pw-menu-toggle svg {
    flex: 0 0 auto;
}

.pw-menu-toggle {
    grid-column: 1;
    position: relative;
    z-index: 1002;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
}

.pw-menu-toggle span {
    width: 24px;
}

.pw-menu-toggle.is-active span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
}

.pw-menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.pw-menu-toggle.is-active span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
}

.pw-menu-close {
    display: none;
}

.pw-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.38);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0.28s ease;
    z-index: 1000;
}

.pw-menu-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

body.pw-menu-open {
    overflow: hidden;
}

@media (min-width: 1025px) {
    .pw-menu-toggle,
    .pw-menu-close,
    .pw-menu-overlay {
        display: none !important;
    }

    .pw-header__nav {
        position: static;
        transform: none;
        height: auto;
        width: auto;
        padding: 0;
        overflow: visible;
        background: transparent;
    }
}

@media (max-width: 1180px) and (min-width: 1025px) {
    .pw-header__inner {
        gap: 16px;
    }

    .pw-menu {
        gap: 18px;
    }

    .pw-menu > li > a {
        font-size: 11px;
        letter-spacing: 0.1em;
    }

    .pw-header__tools {
        gap: 12px;
    }

    .pw-header__tool span:not(.pw-cart-count) {
        display: none;
    }
}

@media (max-width: 1024px) {
    .pw-header__inner {
        grid-template-columns: 48px minmax(0, 1fr) auto !important;
        gap: 10px;
        height: 76px;
    }

    .pw-menu-toggle {
        display: inline-flex !important;
    }

    .pw-header__nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: min(420px, 88vw) !important;
        height: 100dvh !important;
        background: #fff !important;
        padding: 86px 28px 34px !important;
        transform: translateX(-105%) !important;
        transition: transform 0.36s cubic-bezier(0.7, 0, 0.3, 1) !important;
        z-index: 1001 !important;
        overflow-y: auto !important;
        box-shadow: 30px 0 80px rgba(0,0,0,0.16);
    }

    .pw-header__nav.is-open {
        transform: translateX(0) !important;
    }

    .pw-menu-close {
        display: inline-flex;
        position: absolute;
        top: 24px;
        right: 22px;
        width: 40px;
        height: 40px;
        align-items: center;
        justify-content: center;
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    .pw-menu-close span {
        position: absolute;
        width: 24px;
        height: 1.5px;
        background: var(--pw-color-primary);
    }

    .pw-menu-close span:first-child {
        transform: rotate(45deg);
    }

    .pw-menu-close span:last-child {
        transform: rotate(-45deg);
    }

    .pw-menu {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        white-space: normal;
    }

    .pw-menu > li {
        width: 100%;
        border-bottom: 1px solid var(--pw-color-border);
    }

    .pw-menu > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 58px;
        padding: 16px 0 !important;
        font-size: 13px;
        letter-spacing: 0.16em;
    }

    .pw-menu .sub-menu,
    .pw-menu .pw-mega {
        display: none;
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 0 18px 14px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        box-shadow: none !important;
        border: 0;
        background: transparent !important;
    }

    .pw-menu .sub-menu a {
        padding: 9px 0 !important;
        font-size: 14px;
    }

    .pw-menu li.is-expanded > .sub-menu,
    .pw-menu li.is-expanded > .pw-mega {
        display: block !important;
    }

    .pw-header__logo {
        grid-column: 2 !important;
        text-align: center;
    }

    .pw-header__tools {
        grid-column: 3 !important;
        gap: 8px;
    }

    .pw-header__tool {
        min-width: 38px;
        width: 38px;
        height: 38px;
        gap: 0;
    }

    .pw-header__tool span:not(.pw-cart-count) {
        display: none;
    }
}

@media (max-width: 640px) {
    .pw-topbar {
        font-size: 10px;
        padding: 8px 0;
    }

    .pw-header__inner {
        height: 68px;
        grid-template-columns: 44px minmax(0, 1fr) auto !important;
    }

    .pw-header__logo img {
        max-height: 38px;
        max-width: 150px;
    }

    .pw-header__logo strong {
        font-size: 24px !important;
    }

    .pw-header__tools .pw-search-toggle,
    .pw-header__tools .pw-wishlist-toggle {
        display: none;
    }

    .pw-header__nav {
        width: min(360px, 92vw) !important;
        padding: 78px 22px 30px !important;
    }
}

/* Cart and checkout pages */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content {
    background: #fff;
}

.woocommerce-cart .pw-content,
.woocommerce-checkout .pw-content {
    max-width: 1320px;
}

.woocommerce-cart .pw-page-section,
.woocommerce-checkout .pw-page-section {
    padding: 0;
}

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-cart main .woocommerce,
.woocommerce-checkout main .woocommerce {
    max-width: 1320px;
    margin: 0 auto;
    padding: 72px 32px 96px;
}

.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper {
    max-width: 1320px;
    margin: 0 auto;
}

.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table {
    width: 100%;
    border: 0 !important;
    border-collapse: collapse;
    background: #fff;
    font-size: 14px;
}

.woocommerce-cart table.shop_table th,
.woocommerce-checkout table.shop_table th {
    border: 0 !important;
    border-bottom: 1px solid var(--pw-color-border) !important;
    padding: 0 18px 18px !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}

.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table td,
.woocommerce-cart table.shop_table tbody th,
.woocommerce-checkout table.shop_table tbody th {
    border: 0 !important;
    border-bottom: 1px solid var(--pw-color-border) !important;
    padding: 24px 18px !important;
    vertical-align: middle;
}

.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 92px;
    height: 92px;
    object-fit: cover;
    background: var(--pw-color-bg-alt);
}

.woocommerce-cart table.shop_table .product-name a,
.woocommerce-checkout table.shop_table .product-name {
    font-family: var(--pw-font-heading);
    font-size: 1.25rem;
    color: var(--pw-color-primary);
}

.woocommerce-cart .quantity .qty,
.woocommerce .quantity .qty {
    width: 76px;
    height: 46px;
    border: 1px solid var(--pw-color-border);
    text-align: center;
    background: #fff;
}

.woocommerce-cart .actions {
    padding-top: 28px !important;
}

.woocommerce-cart .coupon {
    display: flex;
    align-items: stretch;
    gap: 10px;
    float: none !important;
}

.woocommerce-cart .coupon input.input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    min-height: 52px;
    border: 1px solid var(--pw-color-border);
    border-radius: 0;
    padding: 0 16px;
    background: #fff;
}

.woocommerce-cart .cart-collaterals {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    gap: 60px;
    margin-top: 54px;
}

.woocommerce-cart .cart_totals {
    grid-column: 2;
    width: 100% !important;
    float: none !important;
    background: var(--pw-color-bg-alt);
    padding: 34px;
}

.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
    font-family: var(--pw-font-heading);
    font-size: clamp(1.8rem, 3vw, 2.8rem) !important;
    font-weight: 400;
    letter-spacing: 0;
    margin: 0 0 24px;
}

.woocommerce-cart .cart_totals table {
    margin-bottom: 26px;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
    min-height: 52px;
    border-radius: 0 !important;
    background: var(--pw-color-primary) !important;
    color: #fff !important;
    border: 1px solid var(--pw-color-primary) !important;
    padding: 0 30px !important;
    display: inline-flex;     /* dropped !important so gateway hide-rules can win */
    align-items: center;
    justify-content: center;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.25 !important;
    white-space: normal;
    text-align: center;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover {
    background: var(--pw-color-secondary) !important;
    border-color: var(--pw-color-secondary) !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    width: 100%;
}

.woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    gap: 70px;
    align-items: start;
}

.woocommerce-checkout #customer_details {
    grid-column: 1;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
    grid-column: 2;
}

.woocommerce-checkout #order_review {
    background: var(--pw-color-bg-alt);
    padding: 34px;
    position: sticky;
    top: calc(var(--pw-header-height-sticky) + 30px);
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
}

.woocommerce-checkout .col2-set {
    display: grid;
    gap: 42px;
}

.woocommerce form .form-row {
    padding: 0;
    margin: 0 0 18px;
}

.woocommerce form .form-row label {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}

.woocommerce-checkout #payment {
    background: transparent !important;
    border-radius: 0 !important;
}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment div.form-row {
    padding: 22px 0 !important;
    border-color: var(--pw-color-border) !important;
}

@media (max-width: 960px) {
    .woocommerce-cart .entry-content,
    .woocommerce-checkout .entry-content,
    .woocommerce-cart main .woocommerce,
    .woocommerce-checkout main .woocommerce {
        padding: 54px 24px 72px;
    }

    .woocommerce-cart .cart-collaterals,
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .woocommerce-cart .cart_totals,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review,
    .woocommerce-checkout #customer_details {
        grid-column: 1;
    }

    .woocommerce-checkout #order_review {
        position: static;
    }
}

@media (max-width: 680px) {
    .woocommerce-cart .entry-content,
    .woocommerce-checkout .entry-content,
    .woocommerce-cart main .woocommerce,
    .woocommerce-checkout main .woocommerce {
        padding: 40px 16px 58px;
    }

    .woocommerce-cart table.shop_table_responsive thead {
        display: none;
    }

    .woocommerce-cart table.shop_table_responsive tr {
        display: block;
        padding: 18px 0;
        border-bottom: 1px solid var(--pw-color-border);
    }

    .woocommerce-cart table.shop_table_responsive tr td {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        border: 0 !important;
        padding: 10px 0 !important;
        text-align: right !important;
    }

    .woocommerce-cart table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--pw-color-text-light);
    }

    .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail,
    .woocommerce-cart table.shop_table_responsive tr td.product-remove,
    .woocommerce-cart table.shop_table_responsive tr td.actions {
        display: block !important;
        text-align: left !important;
    }

    .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before,
    .woocommerce-cart table.shop_table_responsive tr td.product-remove::before,
    .woocommerce-cart table.shop_table_responsive tr td.actions::before {
        content: '';
        display: none;
    }

    .woocommerce-cart .coupon {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        margin-bottom: 12px;
    }

    .woocommerce-cart .coupon input.input-text,
    .woocommerce-cart .actions .button,
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    .woocommerce #payment #place_order {
        width: 100% !important;
    }

    .woocommerce-cart .cart_totals,
    .woocommerce-checkout #order_review {
        padding: 24px 18px;
    }
}

/* =========================================================
   FIX PACK 1.2.3 — BULLETPROOF DESKTOP HEADER (logo|nav|tools in 1 row)
   The previous grid-based override fought too many legacy rules and
   collapsed onto two rows on some viewports. Switch to a flex layout
   on desktop with explicit `order:` so DOM sequence (toggle, nav, logo,
   tools) doesn't matter, and forbid wrapping.
   ========================================================= */
@media (min-width: 1025px) {
    /* Force flex on desktop — wins over the grid declaration above */
    .pw-header__inner {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: clamp(16px, 2vw, 32px) !important;
        grid-template-columns: none !important;
    }

    /* Hide everything that's only for the mobile drawer */
    .pw-menu-toggle,
    .pw-menu-close,
    .pw-menu-overlay,
    .pw-drawer-head {
        display: none !important;
    }

    /* Visual order regardless of HTML order */
    .pw-header__logo  { order: 1 !important; flex: 0 0 auto !important; min-width: 0; text-align: left !important; }
    .pw-header__nav   { order: 2 !important; flex: 1 1 auto !important; min-width: 0; display: flex !important; justify-content: center; }
    .pw-header__tools { order: 3 !important; flex: 0 0 auto !important; }

    /* Clear leftover grid-column on header items so flex order takes over */
    .pw-header__logo,
    .pw-header__nav,
    .pw-header__tools {
        grid-column: auto !important;
    }

    /* Logo — left aligned text, never centred */
    .pw-header__logo img { margin: 0 !important; }
    .pw-header__logo strong,
    .pw-header__logo a {
        display: inline-block;
        text-align: left !important;
    }

    /* Nav — flex row, no wrap */
    .pw-header__nav .pw-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: center !important;
        gap: clamp(20px, 2vw, 36px) !important;
        white-space: nowrap;
        padding: 0 !important;
        margin: 0 !important;
    }
}

/* Keep the same flex layout on the sticky header */
@media (min-width: 1025px) {
    .pw-header--sticky .pw-header__inner {
        display: flex !important;
        flex-wrap: nowrap !important;
    }
}

/* DRAWER HEAD — top bar inside the off-canvas mobile menu
   Reference: logo on left, "BAG (n)" + X on right */
.pw-drawer-head {
    display: none;
}

@media (max-width: 1024px) {
    /* Reset old drawer padding/close-positioning so the new head fits cleanly */
    .pw-header__nav {
        padding: 0 !important;
    }

    .pw-drawer-head {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 18px 20px;
        border-bottom: 1px solid var(--pw-color-border);
        background: #fff;
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .pw-drawer-head__logo a,
    .pw-drawer-head__logo strong {
        font-family: var(--pw-font-heading);
        font-size: 22px;
        line-height: 1;
        color: var(--pw-color-primary);
        text-decoration: none;
        letter-spacing: 0;
    }
    .pw-drawer-head__logo img {
        max-height: 36px;
        width: auto;
        display: block;
    }

    .pw-drawer-head__tools {
        display: inline-flex;
        align-items: center;
        gap: 14px;
    }

    .pw-drawer-head__bag {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-family: var(--pw-font-body);
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--pw-color-primary);
        text-decoration: none;
    }
    .pw-drawer-head__bag svg { width: 18px; height: 18px; }
    /* drawer head's own cart count blends with the BAG (n) text */
    .pw-drawer-head__bag .pw-cart-count {
        background: transparent;
        color: inherit;
        width: auto;
        height: auto;
        font-size: inherit;
        font-weight: inherit;
        letter-spacing: inherit;
        padding: 0;
    }

    /* Override the absolute-positioned close button — sit it inside the drawer head */
    .pw-menu-close {
        display: inline-flex !important;
        position: static !important;
        top: auto !important;
        right: auto !important;
        width: 36px;
        height: 36px;
        align-items: center;
        justify-content: center;
        border: 0;
        background: transparent;
        cursor: pointer;
        flex: 0 0 auto;
    }
    .pw-menu-close span {
        position: absolute;
        width: 22px;
        height: 1.5px;
        background: var(--pw-color-primary);
    }

    /* Menu items get their own padding now */
    .pw-menu {
        padding: 8px 20px 28px !important;
    }

    /* Force horizontal text + chevron layout on every drawer item.
       The desktop ::after rule sets position:absolute width:0 height:1px
       (hover underline) — we MUST reset all of those, not just content. */
    .pw-menu > li > a {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        min-height: 58px;
        padding: 16px 4px 16px 0 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.14em !important;
        text-transform: uppercase !important;
        color: var(--pw-color-primary) !important;
        text-decoration: none !important;
    }
    .pw-menu > li > a::after {
        content: '\203A' !important;            /* › */
        position: static !important;            /* override desktop's absolute */
        top: auto !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        width: auto !important;
        height: auto !important;
        background: transparent !important;
        font-size: 22px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        color: var(--pw-color-text-light) !important;
        margin-left: 12px !important;
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        flex: 0 0 auto !important;
    }
}

/* MOBILE: keep current grid (toggle | logo | tools), header logo
   stays centered on mobile per current design */
@media (max-width: 1024px) {
    .pw-header__logo {
        grid-column: 2 !important;
        justify-self: center !important;
        text-align: center !important;
    }
    .pw-header__logo strong {
        text-align: center !important;
    }
}

/* =========================================================
   ADD-TO-CART BUTTON — RESPONSIVE
   ========================================================= */
.woocommerce ul.products li.product .button,
ul.products li.product .button,
.pw-product .button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto;
    margin-top: 14px !important;
    padding: 13px 22px !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    text-align: center;
    min-height: 42px;
}

/* Loading/added states still readable */
.woocommerce ul.products li.product .button.loading,
.woocommerce ul.products li.product .button.added {
    opacity: 0.85;
}

@media (max-width: 768px) {
    .woocommerce ul.products li.product .button,
    ul.products li.product .button,
    .pw-product .button {
        width: 100% !important;
        padding: 12px 14px !important;
        font-size: 10.5px !important;
        letter-spacing: 0.14em !important;
        margin-top: 10px !important;
    }
}

@media (max-width: 420px) {
    .woocommerce ul.products li.product .button,
    ul.products li.product .button,
    .pw-product .button {
        padding: 11px 10px !important;
        font-size: 10px !important;
        letter-spacing: 0.1em !important;
        min-height: 38px;
    }
}

/* Single product page Add to Cart button — also responsive */
.single-product .single_add_to_cart_button {
    width: auto;
    padding: 16px 32px !important;
}
@media (max-width: 640px) {
    .single-product .single_add_to_cart_button {
        width: 100% !important;
        padding: 14px 18px !important;
    }
    .single-product form.cart .quantity {
        width: 100%;
        margin-bottom: 12px;
    }
    .single-product form.cart .quantity input.qty {
        width: 100%;
    }
}

/* =========================================================
   FIX PACK 1.3.0 — HERO VIDEO + POLICY / ABOUT LAYOUT
   ========================================================= */

/* HERO VIDEO ============================================== */
.pw-hero {
    position: relative;
    height: clamp(520px, 92vh, 920px);
    overflow: hidden;
    color: #fff;
}
.pw-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.9s ease, visibility 0.9s ease;
}
.pw-hero__slide.is-active {
    opacity: 1;
    visibility: visible;
}
.pw-hero__video,
.pw-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}
.pw-hero__bg {
    background-size: cover;
    background-position: center;
}
.pw-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.18) 0%,
        rgba(0,0,0,0.42) 60%,
        rgba(0,0,0,0.55) 100%
    );
}
.pw-hero__content {
    position: relative;
    z-index: 3;
    height: 100%;
    max-width: var(--pw-container-width);
    margin: 0 auto;
    padding: 0 var(--pw-container-padding);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    gap: 18px;
}
.pw-hero__eyebrow {
    color: var(--pw-color-secondary);
    font-size: 12px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 500;
}
.pw-hero__title {
    color: #fff !important;
    font-family: var(--pw-font-heading);
    font-size: clamp(2.6rem, 7vw, 6rem) !important;
    font-weight: 400 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.01em;
    margin: 0 !important;
    max-width: 14ch;
}
.pw-hero__cta { margin-top: 12px; }
.pw-hero__pagination {
    position: absolute;
    bottom: 32px;
    left: 0;
    right: 0;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: 12px;
}
.pw-hero__bullet {
    width: 38px;
    height: 2px;
    border: 0;
    background: rgba(255,255,255,0.35);
    cursor: pointer;
    padding: 0;
    transition: background 0.3s ease, width 0.3s ease;
}
.pw-hero__bullet.is-active {
    background: #fff;
    width: 56px;
}

@media (max-width: 768px) {
    .pw-hero { height: 78vh; min-height: 480px; }
    .pw-hero__title { font-size: clamp(2rem, 9vw, 3.6rem) !important; }
    .pw-hero__content { gap: 14px; padding: 0 22px; }
}
@media (max-width: 480px) {
    .pw-hero { height: 70vh; min-height: 420px; }
    .pw-hero__eyebrow { font-size: 11px; letter-spacing: 0.22em; }
}

/* POLICY PAGE LAYOUT ====================================== */
.pw-policy {
    max-width: 880px;
    margin: 0 auto;
    padding: 80px 24px 96px;
    color: var(--pw-color-text);
    line-height: 1.75;
}
.pw-policy__head {
    text-align: center;
    border-bottom: 1px solid var(--pw-color-border);
    padding-bottom: 32px;
    margin-bottom: 40px;
}
/* Pages built from [pw_policy] / [pw_demo_page] already get a page-hero
   banner (cream bg, brand eyebrow, H1 title) rendered by page.php. The
   shortcode's own eyebrow + H2 title therefore duplicate that banner —
   hide them when the shortcode is rendered inside a standard page-content
   wrapper. The lede subtitle below stays because it carries the
   page-specific summary that the H1 doesn't. */
.pw-content .pw-policy__head .pw-eyebrow,
.pw-content .pw-policy__head h1.pw-page-title,
.pw-content .pw-policy__head h2.pw-page-title {
    display: none;
}
.pw-content .pw-policy__head {
    padding-top: 0;
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 32px;
}
/* About Us puts the eyebrow + page title inline at the top of the copy
   column rather than inside a .pw-policy__head wrapper, so we need a
   second targeted rule for it. Services / History keep their inline
   h2 because their h2 is a longer editorial subtitle, not a duplicate
   of the H1 page title. */
.pw-content .pw-demo-page--about .pw-demo-split__copy > .pw-eyebrow:first-child,
.pw-content .pw-demo-page--about .pw-demo-split__copy > h2.pw-page-title:first-of-type {
    display: none;
}

/* Pull policy/demo pages closer to the page-hero banner — the lede
   subtitle should feel like a continuation of the title, not a new
   section after 90px of whitespace. `:has()` keeps the override scoped
   so generic pages without a shortcode keep their standard spacing. */
.pw-page-section:has(> .pw-container > .pw-content > .pw-policy),
.pw-page-section:has(> .pw-container > .pw-content > .pw-demo-page) {
    padding-top: 56px;
}
.pw-policy__head .pw-eyebrow {
    color: var(--pw-color-secondary);
    margin-bottom: 12px;
}
.pw-policy__head h1,
.pw-policy__head h2.pw-page-title {
    font-size: clamp(2rem, 4.4vw, 3.4rem);
    font-weight: 400;
    margin: 0 0 18px;
    color: var(--pw-color-primary);
}
.pw-policy__lede {
    font-size: 16px;
    color: var(--pw-color-text-light);
    max-width: 640px;
    margin: 0 auto;
}
.pw-policy__section {
    margin-bottom: 36px;
}
.pw-policy__section h2 {
    font-size: 22px;
    font-weight: 500;
    color: var(--pw-color-primary);
    margin: 0 0 14px;
    letter-spacing: 0.02em;
    border-left: 3px solid var(--pw-color-secondary);
    padding-left: 14px;
}
.pw-policy__section h3 {
    font-size: 16px;
    font-weight: 600;
    margin: 18px 0 8px;
    color: var(--pw-color-primary);
}
.pw-policy__section p {
    margin: 0 0 12px;
    font-size: 15px;
}
.pw-policy__section ul {
    padding-left: 22px;
    margin: 0 0 14px;
}
.pw-policy__section ul li {
    margin-bottom: 6px;
    font-size: 15px;
}
.pw-policy__section a {
    color: var(--pw-color-secondary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pw-policy__section strong {
    color: var(--pw-color-primary);
    font-weight: 600;
    letter-spacing: 0.02em;
}
.pw-policy__note {
    background: var(--pw-color-bg-alt);
    border-left: 3px solid var(--pw-color-secondary);
    padding: 16px 20px;
    margin: 18px 0;
    font-size: 14px;
}
.pw-policy__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0;
}
.pw-policy__card {
    background: var(--pw-color-bg-alt);
    padding: 22px 20px;
    border-radius: 4px;
    text-align: left;
}
.pw-policy__card .pw-eyebrow {
    color: var(--pw-color-secondary);
    margin-bottom: 8px;
    font-size: 11px;
}
.pw-policy__card strong {
    display: block;
    font-size: 16px;
    letter-spacing: 0.04em;
    color: var(--pw-color-primary);
}
.pw-policy__card small {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: var(--pw-color-text-light);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.pw-policy-contact {
    margin-top: 48px;
    padding: 24px 22px;
    border-top: 1px solid var(--pw-color-border);
    border-bottom: 1px solid var(--pw-color-border);
    background: var(--pw-color-bg-alt);
    border-radius: 4px;
}
.pw-policy-contact h3 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--pw-color-primary);
    margin: 0 0 12px;
}
.pw-policy-contact p {
    margin: 6px 0;
    font-size: 14px;
}

@media (max-width: 720px) {
    .pw-policy { padding: 56px 18px 72px; }
    .pw-policy__head { margin-bottom: 36px; padding-bottom: 28px; }
    .pw-policy__section h2 { font-size: 19px; }
    .pw-policy__grid { grid-template-columns: 1fr; }
}

/* DEMO PAGES (About / Services / History / FAQ / Contact) === */
.pw-demo-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 72px 24px 96px;
    color: var(--pw-color-text);
}
.pw-demo-section {
    margin: 56px 0 24px;
}
.pw-demo-section h2 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 400;
    margin: 0 0 16px;
    color: var(--pw-color-primary);
}
.pw-demo-section ul { padding-left: 22px; }
.pw-demo-section ul li { margin: 6px 0; }
.pw-demo-section strong { color: var(--pw-color-primary); }

/* Split (About hero) */
.pw-demo-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    margin-bottom: 56px;
}
.pw-demo-split__copy h1,
.pw-demo-split__copy h2.pw-page-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 400;
    margin: 14px 0 24px;
    line-height: 1.1;
}
.pw-demo-split__copy p {
    color: var(--pw-color-text-light);
    margin: 0 0 16px;
    font-size: 15.5px;
    line-height: 1.7;
}
.pw-demo-split__copy a.pw-btn { margin-top: 10px; }
.pw-demo-split__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--pw-color-bg-alt);
}
.pw-demo-split__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pw-demo-media {
    background: var(--pw-color-bg-alt);
    aspect-ratio: 4 / 5;
}

@media (max-width: 880px) {
    .pw-demo-split { grid-template-columns: 1fr; gap: 32px; }
    .pw-demo-split__media { aspect-ratio: 16 / 11; }
}

/* Stats strip */
.pw-demo-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    background: var(--pw-color-bg-alt);
    padding: 32px 24px;
    margin: 32px 0 48px;
    border-radius: 4px;
}
.pw-demo-stats > div {
    text-align: center;
    padding: 8px 0;
}
.pw-demo-stats strong {
    display: block;
    font-family: var(--pw-font-heading);
    font-size: clamp(1.6rem, 3.4vw, 2.4rem);
    color: var(--pw-color-primary);
    line-height: 1;
}
.pw-demo-stats span {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}
@media (max-width: 720px) {
    .pw-demo-stats { grid-template-columns: repeat(2, 1fr); padding: 24px 18px; }
}

/* Cards (Services, Values) */
.pw-demo-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 24px 0;
}
.pw-demo-cards article {
    background: #fff;
    border: 1px solid var(--pw-color-border);
    padding: 28px 24px;
    transition: var(--pw-transition);
}
.pw-demo-cards article:hover {
    border-color: var(--pw-color-secondary);
    transform: translateY(-3px);
}
.pw-demo-cards article .pw-eyebrow {
    margin-bottom: 8px;
    color: var(--pw-color-secondary);
}
.pw-demo-cards article h3 {
    font-size: 20px;
    font-weight: 400;
    margin: 0 0 10px;
    color: var(--pw-color-primary);
}
.pw-demo-cards article p {
    color: var(--pw-color-text-light);
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
}
@media (max-width: 880px) {
    .pw-demo-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
    .pw-demo-cards { grid-template-columns: 1fr; }
}

/* Timeline (History) */
.pw-demo-timeline {
    position: relative;
    margin: 32px 0;
    padding-left: 28px;
    border-left: 1px solid var(--pw-color-border);
}
.pw-demo-timeline article {
    position: relative;
    padding: 16px 0 28px 18px;
}
.pw-demo-timeline article::before {
    content: '';
    position: absolute;
    left: -33px;
    top: 22px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--pw-color-secondary);
}
.pw-demo-timeline strong {
    display: block;
    font-family: var(--pw-font-heading);
    font-size: 26px;
    color: var(--pw-color-primary);
    line-height: 1;
    margin-bottom: 6px;
}
.pw-demo-timeline p {
    margin: 0;
    color: var(--pw-color-text-light);
    line-height: 1.7;
    max-width: 680px;
}

/* FAQ accordion */
.pw-demo-faq details {
    border-bottom: 1px solid var(--pw-color-border);
    padding: 18px 0;
    cursor: pointer;
}
.pw-demo-faq details:first-child { border-top: 1px solid var(--pw-color-border); }
.pw-demo-faq summary {
    list-style: none;
    font-family: var(--pw-font-body);
    font-size: 16px;
    font-weight: 500;
    color: var(--pw-color-primary);
    padding-right: 36px;
    position: relative;
    cursor: pointer;
}
.pw-demo-faq summary::-webkit-details-marker { display: none; }
.pw-demo-faq summary::after {
    content: '+';
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: var(--pw-color-secondary);
    line-height: 1;
    transition: transform 0.25s ease;
}
.pw-demo-faq details[open] summary::after { content: '−'; }
.pw-demo-faq details p {
    margin: 12px 0 0;
    color: var(--pw-color-text-light);
    line-height: 1.7;
    font-size: 15px;
    padding-right: 36px;
}

/* Contact grid */
.pw-demo-contact {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin: 32px 0 48px;
    padding: 32px;
    background: var(--pw-color-bg-alt);
    border-radius: 4px;
}
.pw-demo-contact > div {
    padding: 8px 0;
}
.pw-demo-contact .pw-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--pw-color-secondary);
}
.pw-demo-contact a,
.pw-demo-contact p {
    color: var(--pw-color-primary);
    font-size: 15px;
    line-height: 1.5;
    margin: 0;
}
@media (max-width: 880px) {
    .pw-demo-contact { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
    .pw-demo-contact { grid-template-columns: 1fr; padding: 24px 20px; }
}

/* Coming Soon / 404 */
.pw-demo-coming {
    text-align: center;
    padding: 96px 24px;
    max-width: 640px;
    margin: 0 auto;
}
.pw-demo-coming h1,
.pw-demo-coming h2.pw-page-title {
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    font-weight: 400;
    margin: 14px 0 18px;
}
.pw-demo-coming p {
    color: var(--pw-color-text-light);
    font-size: 16px;
    margin: 0 0 28px;
}
.pw-demo-coming form {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 24px;
}
.pw-demo-coming form input {
    flex: 1 1 240px;
    padding: 14px 18px;
    border: 1px solid var(--pw-color-border);
    background: #fff;
    font-size: 14px;
}
.pw-demo-coming form button {
    padding: 14px 28px;
    background: var(--pw-color-primary);
    color: #fff;
    border: 0;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
}

@media (max-width: 720px) {
    .pw-demo-page { padding: 48px 18px 72px; }
}

/* =========================================================
   FIX PACK 1.3.2 — KILL VIEWPORT EDGE FRAME
   The dark/grey strips on the left/right of the viewport are caused
   by either:
   (a) <html> element having a different background than <body>, so
       any time body has any horizontal margin, the html bg leaks at
       the edges, OR
   (b) <body> being narrower than viewport (UA default 8px, mobile UA
       quirks, or theme containers using max-width on body wrapper).
   We force both to be the same off-white and zero offset everywhere.
   ========================================================= */
html {
    background: var(--pw-color-bg) !important;   /* same as body — no leak */
    margin: 0 !important;
    padding: 0 !important;
}
body {
    background: var(--pw-color-bg) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
#page,
.site,
.hfeed.site {
    background: var(--pw-color-bg) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100vh;
    overflow-x: hidden;
}
main#content,
.site-content {
    background: var(--pw-color-bg) !important;
    margin: 0 !important;
    border: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Prevent any rogue horizontal scrollbar that would expose the html bg */
html, body { overflow-x: hidden; }

/* Some hosts inject inline-style padding via a wrapper — neutralise it */
body > #page,
body > .site,
body > main {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* =========================================================
   FIX PACK 1.3.3 — KILL THE TWO DARK SIDE STRIPS
   Two real culprits remain after 1.3.2:
   (1) the custom WebKit scrollbar track colour (`var(--pw-color-bg-alt)`,
       a beige) shows as a vertical strip on the right of the viewport;
   (2) `viewport-fit=cover` in <meta viewport> exposes phone notch /
       safe-area as black on the left or right edges.
   We neutralise both — track becomes transparent and we pad the html
   with the safe-area insets so colour reaches the very edges.
   ========================================================= */

/* Make scrollbar disappear visually — track and thumb match page bg */
html {
    scrollbar-width: thin;                       /* Firefox */
    scrollbar-color: rgba(0,0,0,0.18) transparent;
}
::-webkit-scrollbar { width: 6px !important; height: 6px !important; }
::-webkit-scrollbar-track {
    background: transparent !important;
    border: 0 !important;
}
::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.18) !important;
    border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(0,0,0,0.32) !important;
}

/* Cover the device safe-area (notch / rounded corners) with the page bg.
   `viewport-fit=cover` is set in header.php, which is correct, but it
   only takes effect if we explicitly fill the safe-area zones. */
html {
    padding: env(safe-area-inset-top, 0)
             env(safe-area-inset-right, 0)
             env(safe-area-inset-bottom, 0)
             env(safe-area-inset-left, 0) !important;
}
@supports (padding: max(0px)) {
    html {
        padding-left: max(0px, env(safe-area-inset-left)) !important;
        padding-right: max(0px, env(safe-area-inset-right)) !important;
    }
}

/* Belt-and-braces: force EVERY top-level wrapper to honour the white bg.
   If a plugin or page builder injects its own wrapper, the !important
   here overrides it. */
html, body, #page, .site, .hfeed, main#content, .site-content,
.site-header, .site-footer, .pw-header, .pw-footer {
    background-color: #ffffff !important;
}

/* WordPress admin bar offset adjustment — ensure no horizontal shift */
body.admin-bar {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* =========================================================
   FIX PACK 1.3.4 — SOFTER MOBILE MENU OVERLAY
   The original overlay dims at rgba(0,0,0,0.38) which reads as
   "two dark sides" beside the drawer on small screens. Drop it to
   a much subtler tint and make sure the drawer always sits above.
   ========================================================= */
.pw-menu-overlay {
    background: rgba(20, 20, 20, 0.18) !important;   /* much lighter */
    z-index: 998 !important;                          /* below drawer */
    transition: opacity 0.22s ease, visibility 0.22s ease !important;
}
.pw-menu-overlay.is-open { opacity: 1 !important; visibility: visible !important; }

/* Drawer drives a fixed stacking order regardless of legacy values */
@media (max-width: 1024px) {
    .pw-header__nav {
        z-index: 1001 !important;
        box-shadow: 24px 0 56px rgba(0,0,0,0.12) !important;
    }
    .pw-menu-toggle    { z-index: 999 !important; }
    .pw-mini-cart      { z-index: 1100 !important; }
    .pw-mini-cart__overlay { z-index: 1099 !important; }
}

/* Belt-and-braces: when the menu is closed, force the overlay invisible
   even if a stale .is-open class lingers on the element. */
.pw-menu-overlay:not(.is-open) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* And when the menu IS open, make sure no horizontal scrollbar pokes
   through and exposes the html background under the overlay. */
body.pw-menu-open {
    overflow: hidden !important;
    overscroll-behavior: contain;
}

/* =========================================================
   FIX PACK 1.3.6 — KEEP MOBILE DRAWER CLEAR OF WP ADMIN BAR
   The drawer is `position: fixed; top: 0` and the WordPress admin bar
   (when an admin is logged in) is also fixed at the top, so the bar
   covers the drawer-head (logo + BAG + ×) — the user sees the menu
   items but not the close button. Push the drawer down by the admin
   bar's height when body.admin-bar is present.
   ========================================================= */

/* Mobile drawer admin-bar offset.
   The drawer is `position: fixed; top: 0` ONLY on mobile (≤1024px).
   On desktop the same selector has `position: static`, so applying
   `top` and `height` unconditionally there leaked into the static
   layout, blew the header to ~1000px tall, and forced the user to
   scroll past empty space to reach the page content. Gate the rule
   to the mobile breakpoint where the drawer actually exists. */
@media (max-width: 1024px) {
    body.admin-bar .pw-header__nav {
        top: 32px !important;
        height: calc(100dvh - 32px) !important;
        max-height: calc(100vh - 32px) !important;
    }
    body.admin-bar .pw-menu-overlay {
        top: 32px !important;
    }
}

/* Mobile admin bar (≤782px) = 46px tall — WP core uses this breakpoint */
@media (max-width: 782px) {
    body.admin-bar .pw-header__nav {
        top: 46px !important;
        height: calc(100dvh - 46px) !important;
        max-height: calc(100vh - 46px) !important;
    }
    body.admin-bar .pw-menu-overlay {
        top: 46px !important;
    }
}

/* Mini cart should also avoid the admin bar */
body.admin-bar .pw-mini-cart { top: 32px !important; }
@media (max-width: 782px) {
    body.admin-bar .pw-mini-cart { top: 46px !important; }
}

/* =========================================================
   FIX PACK 1.3.7 — KILL OVERLAY DIM + DRAWER FULL-WIDTH
   User accepted that the dim overlay + 92vw drawer combine to look
   like a dark stripe on the right. Make the overlay literally
   transparent (drawer is alone visible) and stretch the drawer to
   100vw so nothing of the page shows behind it.
   ========================================================= */
.pw-menu-overlay,
.pw-menu-overlay.is-open {
    background: transparent !important;
}

@media (max-width: 1024px) {
    .pw-header__nav {
        width: 100vw !important;
        max-width: 100vw !important;
        box-shadow: none !important;
    }
}

/* Hero pagination — hide on mobile, the lone dot at bottom-left looked
   like a stray underline. Also center it properly on desktop in case
   anything in the cascade pushed it left. */
.pw-hero__pagination {
    left: 0 !important;
    right: 0 !important;
    justify-content: center !important;
}
@media (max-width: 768px) {
    .pw-hero__pagination { display: none !important; }
}

/* CRAFTED PIECES — visual category grid =============== */
.pw-crafted-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px 28px;
}
.pw-crafted {
    display: block;
    text-align: center;
    color: inherit;
    text-decoration: none;
    padding: 12px;
    transition: var(--pw-transition);
}
.pw-crafted:hover { transform: translateY(-4px); }
.pw-crafted__media {
    aspect-ratio: 1 / 1;
    background: var(--pw-color-bg-alt);
    overflow: hidden;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pw-crafted__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.pw-crafted:hover .pw-crafted__media img { transform: scale(1.05); }
.pw-crafted__icon {
    font-size: 56px;
    color: var(--pw-color-secondary);
    line-height: 1;
}
.pw-crafted__title {
    font-family: var(--pw-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin: 0 0 8px;
    color: var(--pw-color-primary);
}
.pw-crafted__text {
    font-size: 14px;
    color: var(--pw-color-text-light);
    margin: 0 auto;
    max-width: 240px;
    line-height: 1.55;
}

@media (max-width: 880px) {
    .pw-crafted-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
}
@media (max-width: 480px) {
    .pw-crafted-grid { gap: 18px 12px; }
    .pw-crafted__title { font-size: 11px; letter-spacing: 0.18em; }
    .pw-crafted__text { font-size: 13px; }
}

/* =========================================================
   FIX PACK 1.4.3 — CLASSIC CHECKOUT LAYOUT
   P1: order_review bị tụt xuống do grid auto-layout đặt heading +
       review vào row 2 sau khi #customer_details rất cao.
   P2: h3 trong checkout quá to → "Ship to a different address" lệch.
   P2: Sticky header/sticky review chưa trừ admin bar.
   ========================================================= */
@media (min-width: 961px) {
    .woocommerce-checkout form.checkout {
        column-gap: 70px;
        row-gap: 0;
        align-items: start;
    }

    .woocommerce-checkout #customer_details {
        grid-column: 1;
        grid-row: 1;
    }

    .woocommerce-checkout #order_review_heading {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        margin: 0 0 18px !important;
    }

    .woocommerce-checkout #order_review {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        margin-top: 68px;
        top: calc(var(--pw-header-height-sticky) + 24px);
    }

    body.admin-bar.woocommerce-checkout #order_review {
        top: calc(32px + var(--pw-header-height-sticky) + 24px);
    }
}

body.admin-bar .pw-header--sticky {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .pw-header--sticky {
        top: 46px;
    }
}

.woocommerce-checkout #ship-to-different-address {
    font-size: clamp(1.45rem, 2vw, 2rem) !important;
    line-height: 1.2;
    margin: 34px 0 18px;
}

.woocommerce-checkout #ship-to-different-address label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
    text-align: right;
    white-space: nowrap;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name {
    font-size: 16px;
    line-height: 1.45;
}

.woocommerce-checkout .woocommerce-shipping-methods {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
    text-align: left;
}

.woocommerce-checkout .woocommerce-shipping-methods li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    column-gap: 10px;
    align-items: start;
}

.woocommerce-checkout .woocommerce-shipping-methods input[type="radio"] {
    margin: 4px 0 0;
}

.woocommerce-checkout .woocommerce-shipping-methods label {
    display: block;
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
}

/* =========================================================
   FIX PACK 1.4.4 — HIDE COUPON NOTICE + DEFAULT PLACE ORDER
   The CardsShield gateway injects its own payment button via JS, so
   the stock WooCommerce Place Order button is redundant. The coupon
   "Have a coupon?" toggle is also unwanted on this build.
   ========================================================= */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-coupon,
.woocommerce-checkout .checkout_coupon,
.woocommerce-checkout .woocommerce-info.woocommerce-info {
    display: none !important;
}
/* Re-show error/success/non-coupon notices that share the same class.
   Hide ONLY the coupon-toggle notice. */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-notice {
    display: block !important;
}

/* Specificity 2-IDs to beat the legacy `.woocommerce #payment #place_order`
   rule above. Also covers the `.important-hide` class that CardsShield
   adds via JS when its iframe takes over. */
body.woocommerce-checkout.woocommerce-page #payment #place_order,
body.woocommerce-checkout .woocommerce #payment #place_order,
body.woocommerce-checkout #payment button#place_order[name="woocommerce_checkout_place_order"],
body.woocommerce-checkout #place_order.important-hide {
    display: none !important;
}
/* Keep the .place-order wrapper visible so any gateway-injected button
   (e.g. CardsShield iframe) sitting beside it is still rendered. */
.woocommerce-checkout .place-order { display: block !important; }

/* =========================================================
   FIX PACK 1.4.6 - CART COUPON + HERO VIDEO FALLBACKS
   ========================================================= */
.woocommerce-cart .coupon,
.woocommerce-cart .woocommerce-form-coupon,
.woocommerce-cart .checkout_coupon {
    display: none !important;
}

.woocommerce-cart table.shop_table td.actions {
    text-align: right !important;
}

.woocommerce-cart table.shop_table td.actions > .button {
    float: none !important;
    margin-left: auto !important;
}

/* =========================================================
   FIX PACK 1.4.9 — CART ROW + COLLATERALS + HEADER (final pass)
   Replaces the conflicting 1.4.7 + 1.4.8 blocks with one minimal,
   high-specificity rule set per user feedback. Hide the entire row
   that contains <td class="actions"> (Update cart) instead of just
   the cell, then re-anchor totals beside the product table.
   ========================================================= */
.woocommerce-cart table.shop_table tr:has(td.actions),
.woocommerce-cart table.shop_table td.actions {
    display: none !important;
}

.woocommerce-cart .cart-collaterals {
    display: flex !important;
    justify-content: flex-end;
    margin-top: 28px !important;
}

.woocommerce-cart .cart_totals {
    width: min(100%, 460px) !important;
}

.woocommerce-cart .pw-page-hero {
    padding: 44px 0 38px !important;
}

.woocommerce-cart .pw-page-hero .pw-eyebrow {
    display: none !important;
}

.woocommerce-cart .pw-page-hero h1 {
    font-size: clamp(2.3rem, 4vw, 3rem) !important;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods,
.woocommerce-cart .cart_totals .shipping-calculator-button {
    font-size: 14px;
    line-height: 1.45;
}

/* Older browsers (Safari < 15.4, Firefox < 121) ignore :has() — keep
   the cell collapse as a fallback so the row at minimum has no height. */
@supports not selector(:has(*)) {
    .woocommerce-cart table.shop_table td.actions {
        display: none !important;
    }
}

/* =========================================================
   PHASE 2 — Single product extras (1.6.0)
   ========================================================= */

/* Shipping & returns summary directly under ATC */
.pw-product-shipping {
    margin: 32px 0 28px;
    padding: 22px 24px;
    border: 1px solid var(--pw-color-border);
    background: var(--pw-color-bg-alt);
}
.pw-product-shipping__title {
    margin: 0 0 14px;
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}
.pw-product-shipping__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pw-product-shipping__list li {
    position: relative;
    padding: 6px 0 6px 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--pw-color-text);
}
.pw-product-shipping__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    width: 14px;
    height: 8px;
    border-left: 1.5px solid var(--pw-color-secondary);
    border-bottom: 1.5px solid var(--pw-color-secondary);
    transform: rotate(-45deg);
}
.pw-product-shipping__meta {
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--pw-color-border);
    font-size: 12px;
    color: var(--pw-color-text-light);
}
.pw-product-shipping__meta a {
    color: var(--pw-color-text);
    border-bottom: 1px solid currentColor;
}

/* Specifications table */
.pw-product-specs {
    margin: 32px 0;
    padding-top: 28px;
    border-top: 1px solid var(--pw-color-border);
}
.pw-product-specs__title {
    margin: 0 0 18px;
    font-family: var(--pw-font-heading);
    font-size: 20px;
    font-weight: 400;
    color: var(--pw-color-primary);
}
.pw-product-specs__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.pw-product-specs__table tr {
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-product-specs__table tr:last-child {
    border-bottom: 0;
}
.pw-product-specs__table th {
    text-align: left;
    padding: 12px 16px 12px 0;
    width: 40%;
    font-weight: 500;
    color: var(--pw-color-text-light);
    font-family: var(--pw-font-body);
    letter-spacing: 0;
    text-transform: none;
    font-size: 13px;
}
.pw-product-specs__table td {
    padding: 12px 0;
    color: var(--pw-color-primary);
}

/* =========================================================
   PHASE 2 — Shop filter sidebar
   ========================================================= */

.pw-shop-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 48px;
    align-items: flex-start;
}
.pw-shop-sidebar {
    position: sticky;
    top: calc(var(--pw-header-height-sticky, 80px) + 24px);
    align-self: flex-start;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding-right: 4px;
}
.pw-shop-sidebar__group {
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-shop-sidebar__group:last-child {
    border-bottom: 0;
}
.pw-shop-sidebar__title {
    margin: 0 0 14px;
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-primary);
}
.pw-shop-sidebar__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pw-shop-sidebar__list li {
    margin: 0;
    padding: 0;
}
.pw-shop-sidebar__list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 14px;
    color: var(--pw-color-text);
    text-decoration: none;
}
.pw-shop-sidebar__list a:hover {
    color: var(--pw-color-secondary);
}
.pw-shop-sidebar__list a.is-active {
    color: var(--pw-color-secondary);
    font-weight: 500;
}
.pw-shop-sidebar__list .pw-shop-count {
    font-size: 12px;
    color: var(--pw-color-text-light);
}
.pw-shop-sidebar__clear {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
    color: var(--pw-color-text-light);
    text-decoration: underline;
}
.pw-shop-sidebar__active {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.pw-shop-sidebar__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--pw-color-primary);
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
}
.pw-shop-sidebar__chip::after {
    content: '\00d7';
    font-size: 14px;
    line-height: 1;
}

/* Price form */
.pw-shop-price-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pw-shop-price-form__inputs {
    display: flex;
    align-items: center;
    gap: 8px;
}
.pw-shop-price-form__inputs input {
    flex: 1 1 0;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--pw-color-border);
    background: #fff;
    font-family: var(--pw-font-body);
    font-size: 13px;
    color: var(--pw-color-text);
    -moz-appearance: textfield;
}
.pw-shop-price-form__inputs input::-webkit-outer-spin-button,
.pw-shop-price-form__inputs input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.pw-shop-price-form__inputs input:focus {
    outline: none;
    border-color: var(--pw-color-primary);
}
.pw-shop-price-form__sep {
    color: var(--pw-color-text-light);
    font-size: 14px;
}
.pw-shop-price-form__submit {
    align-self: flex-start;
    padding: 8px 18px;
    border: 1px solid var(--pw-color-primary);
    background: transparent;
    color: var(--pw-color-primary);
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.pw-shop-price-form__submit:hover {
    background: var(--pw-color-primary);
    color: #fff;
}

/* Desktop: overlay + toggle + drawer close are mobile-only.
   They are emitted unconditionally so the JS drawer keeps working without
   a separate render path; here we simply hide them when the sidebar is a
   sticky column rather than a slide-up sheet. */
.pw-shop-filter-toggle,
.pw-shop-filter-overlay,
.pw-shop-sidebar__close {
    display: none;
}
@media (max-width: 900px) {
    .pw-shop-layout {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .pw-shop-filter-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 18px;
        margin: 0 0 24px;
        border: 1px solid var(--pw-color-border);
        background: #fff;
        font-size: 12px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        cursor: pointer;
    }
    .pw-shop-sidebar {
        position: fixed;
        inset: auto 0 0 0;
        top: auto;
        max-height: 80vh;
        background: #fff;
        z-index: 1050;
        padding: 24px 24px 32px;
        box-shadow: 0 -16px 48px rgba(0,0,0,0.18);
        transform: translateY(100%);
        transition: transform 0.3s ease;
        overflow-y: auto;
    }
    .pw-shop-sidebar.is-open {
        transform: translateY(0);
    }
    .pw-shop-sidebar__close {
        display: block;
        position: absolute;
        top: 14px;
        right: 14px;
        width: 36px;
        height: 36px;
        border: 0;
        background: transparent;
        cursor: pointer;
        font-size: 24px;
    }
    .pw-shop-filter-overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(20,20,20,0.32);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.25s ease, visibility 0.25s ease;
        z-index: 1049;
    }
    .pw-shop-filter-overlay.is-open {
        opacity: 1;
        visibility: visible;
    }
}

/* =========================================================
   PHASE 2 — Shop toolbar (result count + orderby)
   ========================================================= */

.pw-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 32px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-shop-toolbar .woocommerce-notices-wrapper:empty {
    display: none;
}
.pw-shop-toolbar .woocommerce-result-count {
    margin: 0;
    font-family: var(--pw-font-body);
    font-size: 13px;
    color: var(--pw-color-text-light);
}
.pw-shop-toolbar .woocommerce-ordering {
    margin: 0;
}

/* Custom-skinned native select for the orderby dropdown.
   We keep the WooCommerce-provided <select name="orderby" class="orderby">
   and just style it — no JS, fully accessible. */
.woocommerce-ordering .orderby,
.pw-shop-toolbar .orderby {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding: 10px 38px 10px 14px;
    border: 1px solid var(--pw-color-border);
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%23141414' stroke-width='1.5'><polyline points='1,1 5,5 9,1'/></svg>") no-repeat right 14px center;
    background-size: 10px 6px;
    color: var(--pw-color-text);
    font-family: var(--pw-font-body);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    min-width: 200px;
}
.woocommerce-ordering .orderby:focus,
.pw-shop-toolbar .orderby:focus {
    outline: none;
    border-color: var(--pw-color-primary);
}

/* =========================================================
   PHASE 2 — Shop archive grid (force 4 cards/row on desktop
   when wrapped by the .pw-shop-layout sidebar)
   ========================================================= */

@media (min-width: 1025px) {
    .pw-shop-layout .pw-shop-main ul.products,
    .pw-shop-layout .pw-shop-main .woocommerce ul.products,
    .pw-shop-main ul.products {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 32px 20px !important;
    }
}
@media (min-width: 1281px) {
    /* On very wide screens (>= 1280) sidebar is comfortable — 4 cols stays. */
    .pw-shop-layout .pw-shop-main ul.products {
        gap: 40px 24px !important;
    }
}
@media (max-width: 1024px) and (min-width: 769px) {
    .pw-shop-layout .pw-shop-main ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* =========================================================
   PHASE 2 — Back to top button
   ========================================================= */

/* Matches the slide-in gold reveal used by .pw-btn / a.button so the
   floating action button sits in the same visual language as the rest
   of the theme rather than looking like a default browser control. */
.pw-back-to-top {
    position: fixed;
    right: 32px;
    bottom: 32px;
    z-index: 1040;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--pw-color-primary);
    border-radius: 50%;
    background: #fff;
    color: var(--pw-color-primary);
    cursor: pointer;
    overflow: hidden;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.3s ease, transform 0.3s ease, color 0.25s ease, border-color 0.25s ease;
    box-shadow: 0 10px 28px rgba(20, 20, 20, 0.12);
}
.pw-back-to-top[hidden] {
    /* Native `hidden` would override `display` and kill the entry
       animation; we toggle visibility via .is-visible instead. */
    display: inline-flex !important;
}
.pw-back-to-top.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.pw-back-to-top::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--pw-color-secondary);
    transform: scale(0);
    transition: transform 0.35s ease;
    z-index: 0;
}
.pw-back-to-top svg {
    position: relative;
    z-index: 1;
    transition: transform 0.25s ease;
}
.pw-back-to-top:hover {
    color: #fff;
    border-color: var(--pw-color-secondary);
}
.pw-back-to-top:hover::before {
    transform: scale(1);
}
.pw-back-to-top:hover svg {
    transform: translateY(-2px);
}
.pw-back-to-top:focus-visible {
    outline: 2px solid var(--pw-color-secondary);
    outline-offset: 3px;
}
@media (max-width: 768px) {
    .pw-back-to-top {
        right: 18px;
        bottom: 18px;
        width: 42px;
        height: 42px;
    }
}

/* =========================================================
   PHASE 2 — Product card image hover swap
   ========================================================= */

.pw-product__media-img-wrap {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--pw-color-bg-alt);
}
.pw-product__media-img-wrap img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity 0.45s ease, transform 0.6s ease;
}
.pw-product__media-img-wrap .pw-product__media-img--secondary {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
}
.pw-product:hover .pw-product__media-img-wrap .pw-product__media-img--primary,
.pw-product:focus-within .pw-product__media-img-wrap .pw-product__media-img--primary {
    opacity: 0;
}
.pw-product:hover .pw-product__media-img-wrap .pw-product__media-img--secondary,
.pw-product:focus-within .pw-product__media-img-wrap .pw-product__media-img--secondary {
    opacity: 1;
    transform: scale(1.02);
}
/* Touch devices: skip hover swap to avoid stuck states */
@media (hover: none) {
    .pw-product__media-img-wrap .pw-product__media-img--secondary {
        display: none;
    }
}

/* =========================================================
   PHASE 2 — WooCommerce My Account page
   ========================================================= */

/* Two-column layout via explicit grid-template-areas. Auto-placement
   was unreliable because WooCommerce prepends a notices wrapper (and
   sometimes other empty wrappers) as direct children of `.woocommerce`
   — those siblings would eat the first cell and push the nav into
   col 2 / the content onto row 2. With named areas, nav and content
   always land in the right cells no matter what extra siblings exist.
   The `:has()` guard makes sure the grid only activates when the
   navigation is present (i.e. logged in) — the login/register form
   keeps its centred single-column treatment further down. */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    grid-template-areas:
        "notices notices"
        "nav     content";
    gap: 0 64px;
    align-items: flex-start;
    max-width: 1100px;
    margin: 0 auto;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
    grid-area: notices;
    margin-bottom: 24px;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty {
    display: none;
    margin: 0;
}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
    grid-area: nav;
}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
    grid-area: content;
}

/* ---- Sidebar nav ------------------------------------------------- */
.woocommerce-MyAccount-navigation {
    border-top: 1px solid var(--pw-color-border);
}
.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--pw-color-border);
}
.woocommerce-MyAccount-navigation li::before {
    content: none;
}
.woocommerce-MyAccount-navigation a {
    display: block;
    padding: 14px 4px;
    font-family: var(--pw-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-text);
    text-decoration: none;
    transition: color 0.2s ease, padding-left 0.25s ease;
}
.woocommerce-MyAccount-navigation a:hover {
    color: var(--pw-color-secondary);
    padding-left: 8px;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation-link.is-active a {
    color: var(--pw-color-secondary);
    font-weight: 600;
    padding-left: 8px;
    border-left: 2px solid var(--pw-color-secondary);
}
.woocommerce-MyAccount-navigation li:last-child a {
    color: var(--pw-color-text-light);
}

/* ---- Main content ------------------------------------------------ */
.woocommerce-MyAccount-content {
    min-width: 0;
}
.woocommerce-MyAccount-content > p:first-of-type {
    font-size: 15px;
    line-height: 1.7;
    color: var(--pw-color-text);
    padding: 18px 22px;
    background: var(--pw-color-bg-alt);
    border-left: 2px solid var(--pw-color-secondary);
    margin-bottom: 28px;
}
.woocommerce-MyAccount-content > p:first-of-type strong {
    color: var(--pw-color-primary);
}
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    font-family: var(--pw-font-heading);
    font-weight: 400;
    color: var(--pw-color-primary);
    margin: 32px 0 16px;
}
.woocommerce-MyAccount-content h2 { font-size: 28px; }
.woocommerce-MyAccount-content h3 { font-size: 20px; }
.woocommerce-MyAccount-content > h2:first-child,
.woocommerce-MyAccount-content > h3:first-child {
    margin-top: 0;
}
.woocommerce-MyAccount-content a:not(.button):not(.pw-btn) {
    color: var(--pw-color-secondary);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}
.woocommerce-MyAccount-content a:not(.button):not(.pw-btn):hover {
    border-bottom-color: currentColor;
}

/* ---- Forms (account details, edit address, lost password) -------- */
.woocommerce-account form .form-row,
.woocommerce-account form .woocommerce-address-fields__field-wrapper {
    margin-bottom: 18px;
}
.woocommerce-account form label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    font-weight: 500;
}
.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="email"],
.woocommerce-account form input[type="tel"],
.woocommerce-account form input[type="password"],
.woocommerce-account form input[type="number"],
.woocommerce-account form select,
.woocommerce-account form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--pw-color-border);
    background: #fff;
    font-family: var(--pw-font-body);
    font-size: 14px;
    color: var(--pw-color-text);
    transition: border-color 0.2s ease;
}
.woocommerce-account form input:focus,
.woocommerce-account form select:focus,
.woocommerce-account form textarea:focus {
    outline: none;
    border-color: var(--pw-color-primary);
}
.woocommerce-account form .woocommerce-form-row--first,
.woocommerce-account form .woocommerce-form-row--last {
    width: calc(50% - 8px);
    display: inline-block;
    vertical-align: top;
}
.woocommerce-account form .woocommerce-form-row--first { margin-right: 14px; }

/* Tables (orders, downloads, etc.) */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-MyAccount-downloads,
.woocommerce-account table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 24px;
    font-size: 14px;
}
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--pw-color-border);
    text-align: left;
}
.woocommerce-account table.shop_table th {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    font-weight: 500;
}

/* Login + register forms (logged-out state) */
.woocommerce-account:not(.logged-in) .woocommerce {
    display: block;
    max-width: 480px;
}
.u-columns.col2-set,
.woocommerce-form-login,
.woocommerce-form-register {
    background: #fff;
    border: 1px solid var(--pw-color-border);
    padding: 32px;
}
.woocommerce-form-login__rememberme,
.woocommerce-form-register__rememberme {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--pw-color-text-light);
}
.woocommerce-form-login__submit,
.woocommerce-form-register__submit {
    margin-top: 8px;
}

/* Mobile collapse */
@media (max-width: 900px) {
    .woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .woocommerce-MyAccount-navigation {
        order: 2;
    }
    .woocommerce-MyAccount-content {
        order: 1;
    }
    .woocommerce-account form .woocommerce-form-row--first,
    .woocommerce-account form .woocommerce-form-row--last {
        width: 100%;
        display: block;
    }
    .woocommerce-account form .woocommerce-form-row--first { margin-right: 0; }
}

/* =========================================================
   PHASE 3 — Luxury polish for inner pages
   ----------------------------------------------------------
   Homepage and shop got the "luxury" attention first. Policy,
   demo (About / Contact / FAQ / History / Services) and the
   WooCommerce account / order / cart / checkout pages need to
   feel like they belong to the same brand — bigger serif
   typography, gold accents, generous whitespace, and refined
   list / callout / table treatments.
   ========================================================= */

/* ---- Generic page-content typography upgrade ------------- */
.pw-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--pw-color-text);
}
.pw-content > h1,
.pw-content > h2,
.pw-content > h3,
.pw-content > h4,
.pw-content > h5 {
    font-family: var(--pw-font-heading);
    color: var(--pw-color-primary);
    font-weight: 400;
    line-height: 1.2;
}
.pw-content > h2 { font-size: clamp(1.8rem, 2.6vw, 2.3rem); margin: 56px 0 20px; }
.pw-content > h3 { font-size: clamp(1.3rem, 1.9vw, 1.55rem); margin: 36px 0 14px; }
.pw-content blockquote {
    margin: 28px 0;
    padding: 22px 28px;
    background: var(--pw-color-bg-alt);
    border-left: 3px solid var(--pw-color-secondary);
    font-family: var(--pw-font-heading);
    font-size: 1.1rem;
    font-style: italic;
    color: var(--pw-color-primary);
}
.pw-content hr {
    border: 0;
    height: 1px;
    background: var(--pw-color-border);
    margin: 48px auto;
    max-width: 120px;
}

/* ---- Policy pages: numbered serif headings + gold accents */
.pw-policy {
    padding-top: 0;        /* page-hero already provides top space */
    padding-bottom: 96px;
}
.pw-policy__lede {
    font-family: var(--pw-font-heading);
    font-size: 19px;
    font-style: italic;
    color: var(--pw-color-primary);
    line-height: 1.5;
    max-width: 680px;
    margin: 0 auto;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--pw-color-border);
    position: relative;
}
.pw-policy__lede strong {
    font-style: normal;
    font-family: var(--pw-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    display: block;
    margin-bottom: 10px;
}
.pw-policy__section {
    margin-bottom: 56px;
    padding-top: 8px;
}
.pw-policy__section + .pw-policy__section {
    border-top: 1px solid var(--pw-color-border);
    padding-top: 56px;
}
/* The shortcode emits the section number inline in the heading text
   ("1. Order Processing Time"). Rather than fight the markup, lean
   into it — render the heading in big serif primary, but pull the
   "1." prefix into a gold accent via ::first-line is unreliable, so
   we just style the whole heading and rely on the period to delimit
   visually. */
.pw-policy__section h2 {
    font-family: var(--pw-font-heading);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 400;
    color: var(--pw-color-primary);
    margin: 0 0 22px;
    padding: 0;
    border: 0;
    line-height: 1.25;
    letter-spacing: 0;
}
.pw-policy__section h3 {
    font-family: var(--pw-font-heading);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--pw-color-primary);
    margin: 28px 0 12px;
    letter-spacing: 0.01em;
}
.pw-policy__section p {
    font-size: 16px;
    line-height: 1.8;
    margin: 0 0 14px;
    color: var(--pw-color-text);
}
.pw-policy__section ul,
.pw-policy__section ol {
    padding-left: 0;
    list-style: none;
    margin: 8px 0 18px;
}
.pw-policy__section ul li,
.pw-policy__section ol li {
    font-size: 16px;
    line-height: 1.7;
    padding-left: 22px;
    position: relative;
    margin-bottom: 8px;
}
.pw-policy__section ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 10px;
    height: 1px;
    background: var(--pw-color-secondary);
}
.pw-policy__section ol {
    counter-reset: pw-list-item;
}
.pw-policy__section ol li {
    counter-increment: pw-list-item;
}
.pw-policy__section ol li::before {
    content: counter(pw-list-item, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0;
    font-family: var(--pw-font-heading);
    font-size: 0.85em;
    color: var(--pw-color-secondary);
    font-weight: 500;
}
.pw-policy__note {
    background: var(--pw-color-bg-alt);
    border-left: 2px solid var(--pw-color-secondary);
    padding: 20px 24px;
    margin: 24px 0;
    font-size: 15px;
    line-height: 1.7;
    border-radius: 0;
}
.pw-policy__note strong:first-child {
    display: block;
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin-bottom: 8px;
    font-weight: 600;
}
.pw-policy__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 24px 0;
}
.pw-policy__card {
    background: #fff;
    border: 1px solid var(--pw-color-border);
    padding: 28px 26px;
    border-radius: 0;
    transition: var(--pw-transition);
}
.pw-policy__card:hover {
    border-color: var(--pw-color-secondary);
    transform: translateY(-2px);
}
.pw-policy__card .pw-eyebrow {
    color: var(--pw-color-secondary);
    font-size: 11px;
    margin-bottom: 14px;
}
.pw-policy__card strong {
    font-family: var(--pw-font-heading);
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--pw-color-primary);
    line-height: 1.3;
}
.pw-policy__card small {
    color: var(--pw-color-text-light);
    margin-top: 10px;
}
.pw-policy-contact {
    margin-top: 64px;
    padding: 32px 30px;
    background: var(--pw-color-bg-alt);
    border: 0;
    border-top: 2px solid var(--pw-color-secondary);
    border-radius: 0;
}
.pw-policy-contact h3 {
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--pw-color-secondary);
    margin: 0 0 14px;
    text-transform: uppercase;
    font-weight: 600;
}
.pw-policy-contact p {
    font-size: 15px;
    margin: 6px 0;
}
.pw-policy-contact a {
    color: var(--pw-color-primary);
    border-bottom: 1px solid var(--pw-color-secondary);
}

/* ---- Policy at-a-glance summary card --------------------- */
.pw-policy-summary {
    background: var(--pw-color-bg-alt);
    border-left: 2px solid var(--pw-color-secondary);
    padding: 28px 30px 22px;
    margin: 0 0 48px;
}
.pw-policy-summary__title {
    margin: 0 0 16px;
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    font-weight: 600;
}
.pw-policy-summary__list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 32px;
}
.pw-policy-summary__list li {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pw-policy-summary__list li::before {
    content: none !important;
}
.pw-policy-summary__list li > span {
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    font-weight: 500;
}
.pw-policy-summary__list li > strong {
    font-family: var(--pw-font-heading);
    font-size: 17px;
    color: var(--pw-color-primary);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
}
.pw-policy-summary__updated {
    margin: 18px 0 0;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}
@media (max-width: 600px) {
    .pw-policy-summary__list {
        grid-template-columns: 1fr;
    }
    .pw-policy-summary {
        padding: 22px 22px 18px;
    }
}

/* ---- Demo pages: more breathing room + luxury typography */
.pw-demo-page {
    padding-top: 0;
    padding-bottom: 96px;
}
.pw-demo-section {
    margin: 64px 0 24px;
}
.pw-demo-section h2 {
    font-family: var(--pw-font-heading);
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    font-weight: 400;
    margin: 0 0 24px;
    color: var(--pw-color-primary);
    position: relative;
    padding-bottom: 18px;
}
.pw-demo-section h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40px;
    height: 1px;
    background: var(--pw-color-secondary);
}
.pw-demo-section p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--pw-color-text);
    margin: 0 0 14px;
}
.pw-demo-section ul {
    padding-left: 0;
    list-style: none;
}
.pw-demo-section ul li {
    padding-left: 22px;
    position: relative;
    line-height: 1.8;
    margin: 8px 0;
}
.pw-demo-section ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 10px;
    height: 1px;
    background: var(--pw-color-secondary);
}

/* About split: larger image, refined copy */
.pw-demo-split {
    grid-template-columns: 1fr 1.05fr;
    gap: 72px;
    margin-bottom: 72px;
}
.pw-demo-split__copy p {
    font-size: 16px;
    line-height: 1.85;
    color: var(--pw-color-text);
}
.pw-demo-split__copy p strong {
    color: var(--pw-color-primary);
    font-weight: 600;
}
.pw-demo-split__copy a.pw-btn {
    margin-top: 24px;
}
.pw-demo-split__media {
    aspect-ratio: 4 / 5;
    box-shadow: 0 22px 60px rgba(20, 20, 20, 0.08);
}

/* Cards (Our Services / Our Values) — match shop card hover */
.pw-demo-cards article {
    padding: 32px 28px;
    border-radius: 0;
}
.pw-demo-cards article:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(20, 20, 20, 0.06);
}
.pw-demo-cards article h3 {
    font-family: var(--pw-font-heading);
    font-size: 22px;
    margin-bottom: 12px;
}

/* FAQ accordion — luxury upgrade */
.pw-demo-faq {
    margin-top: 32px;
}
.pw-demo-faq details {
    padding: 22px 0;
    transition: padding 0.2s ease;
}
.pw-demo-faq details[open] {
    padding-bottom: 28px;
}
.pw-demo-faq summary {
    font-family: var(--pw-font-heading);
    font-size: 19px;
    font-weight: 400;
    color: var(--pw-color-primary);
    padding-right: 48px;
    transition: color 0.2s ease;
}
.pw-demo-faq summary:hover {
    color: var(--pw-color-secondary);
}
.pw-demo-faq summary::after {
    width: 28px;
    height: 28px;
    border: 1px solid var(--pw-color-border);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    right: 0;
    font-size: 18px;
    line-height: 1;
    transition: transform 0.3s ease, border-color 0.2s ease, color 0.2s ease;
}
.pw-demo-faq summary:hover::after {
    border-color: var(--pw-color-secondary);
    color: var(--pw-color-secondary);
}
.pw-demo-faq details[open] summary::after {
    transform: translateY(-50%) rotate(45deg);
    border-color: var(--pw-color-secondary);
    color: var(--pw-color-secondary);
}
.pw-demo-faq details p {
    font-size: 15.5px;
    line-height: 1.85;
    padding-right: 56px;
    margin-top: 14px;
}

/* Contact info grid — refined card pattern */
.pw-demo-contact {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding: 0;
    background: transparent;
    border-top: 1px solid var(--pw-color-border);
    border-bottom: 1px solid var(--pw-color-border);
    border-radius: 0;
    margin: 40px 0 56px;
}
.pw-demo-contact > div {
    padding: 28px 24px;
    border-right: 1px solid var(--pw-color-border);
    text-align: center;
}
.pw-demo-contact > div:last-child { border-right: 0; }
.pw-demo-contact .pw-eyebrow {
    font-size: 11px;
    color: var(--pw-color-secondary);
    margin-bottom: 14px;
    letter-spacing: 0.22em;
}
.pw-demo-contact a,
.pw-demo-contact p {
    font-size: 14.5px;
    color: var(--pw-color-primary);
    line-height: 1.6;
}
.pw-demo-contact a {
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}
.pw-demo-contact a:hover {
    border-bottom-color: var(--pw-color-secondary);
}
@media (max-width: 880px) {
    .pw-demo-contact {
        grid-template-columns: repeat(2, 1fr);
        border-bottom: 0;
    }
    .pw-demo-contact > div {
        border-bottom: 1px solid var(--pw-color-border);
    }
    .pw-demo-contact > div:nth-child(even) { border-right: 0; }
}

/* ---- Search modal (header search bar) -------------------- */
.pw-search-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}
.pw-search-modal[hidden] {
    display: block !important;
}
.pw-search-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}
.pw-search-modal__inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(92vw, 720px);
    transform: translate(-50%, calc(-50% - 24px));
    text-align: center;
    transition: transform 0.35s ease;
}
.pw-search-modal.is-open .pw-search-modal__inner {
    transform: translate(-50%, -50%);
}
.pw-search-modal__eyebrow {
    display: block;
    color: var(--pw-color-secondary);
    margin-bottom: 24px;
}
.pw-search-modal__form {
    display: flex;
    align-items: center;
    gap: 0;
    border-bottom: 1px solid var(--pw-color-primary);
    padding: 6px 0;
}
.pw-search-modal__input {
    flex: 1 1 auto;
    padding: 18px 0;
    border: 0;
    background: transparent;
    color: var(--pw-color-primary);
    font-family: var(--pw-font-heading);
    font-size: clamp(20px, 3.2vw, 30px);
    font-weight: 400;
    line-height: 1.2;
    outline: none;
    -webkit-appearance: none;
}
.pw-search-modal__input::placeholder {
    color: var(--pw-color-text-light);
    opacity: 0.6;
}
.pw-search-modal__submit {
    background: transparent;
    border: 0;
    color: var(--pw-color-primary);
    cursor: pointer;
    padding: 6px 8px;
    display: inline-flex;
    align-items: center;
    transition: color 0.2s ease;
}
.pw-search-modal__submit:hover {
    color: var(--pw-color-secondary);
}
.pw-search-modal__hint {
    margin: 18px 0 0;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
}
.pw-search-modal__close {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--pw-color-border);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pw-color-primary);
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease;
}
.pw-search-modal__close:hover {
    border-color: var(--pw-color-secondary);
    color: var(--pw-color-secondary);
}
@media (max-width: 640px) {
    .pw-search-modal__close {
        top: 14px;
        right: 14px;
        width: 38px;
        height: 38px;
    }
}

/* ---- Empty cart page ------------------------------------- */
.pw-cart-empty {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    padding: 0 0 32px;
}
.pw-cart-empty__lede {
    font-family: var(--pw-font-heading);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 400;
    color: var(--pw-color-primary);
    margin: 0 0 12px;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    line-height: 1.3;
}
.pw-cart-empty__hint {
    color: var(--pw-color-text-light);
    font-size: 15px;
    line-height: 1.7;
    margin: 0 auto 32px;
    max-width: 540px;
}
.pw-cart-empty__cta {
    margin: 0 0 24px;
}
.pw-cart-empty__threshold {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin: 0 0 56px;
    font-weight: 600;
}
.pw-cart-empty .pw-trust-blocks {
    margin: 0;
}

/* ---- Trust blocks (About / Contact / Cart empty) -------- */
.pw-trust-blocks {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 56px 0 64px;
    border-top: 1px solid var(--pw-color-border);
    border-bottom: 1px solid var(--pw-color-border);
}
.pw-trust-block {
    padding: 28px 22px;
    text-align: center;
    border-right: 1px solid var(--pw-color-border);
}
.pw-trust-block:last-child { border-right: 0; }
.pw-trust-block h3 {
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    margin: 0 0 10px;
    font-weight: 600;
}
.pw-trust-block p {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--pw-color-text-light);
    margin: 0;
}
@media (max-width: 880px) {
    .pw-trust-blocks {
        grid-template-columns: repeat(2, 1fr);
    }
    .pw-trust-block:nth-child(odd) { border-right: 1px solid var(--pw-color-border); }
    .pw-trust-block:nth-child(even) { border-right: 0; }
    .pw-trust-block:nth-child(-n+2) { border-bottom: 1px solid var(--pw-color-border); }
}
@media (max-width: 480px) {
    .pw-trust-blocks { grid-template-columns: 1fr; }
    .pw-trust-block { border-right: 0 !important; border-bottom: 1px solid var(--pw-color-border); }
    .pw-trust-block:last-child { border-bottom: 0; }
}

/* ---- My Account: more refined sidebar look ------------ */
.woocommerce-MyAccount-navigation {
    border-top: 2px solid var(--pw-color-primary);
}
.woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--pw-color-border);
}
.woocommerce-MyAccount-navigation a {
    padding: 16px 4px;
    font-size: 11px;
    letter-spacing: 0.22em;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation-link.is-active a {
    padding-left: 12px;
    border-left: 2px solid var(--pw-color-secondary);
    margin-left: -4px;
}
.woocommerce-MyAccount-content > p:first-of-type {
    font-family: var(--pw-font-heading);
    font-style: italic;
    font-size: 17px;
    background: var(--pw-color-bg-alt);
    padding: 22px 26px;
    border-left: 2px solid var(--pw-color-secondary);
    margin-bottom: 36px;
    line-height: 1.6;
}
.woocommerce-MyAccount-content > p:first-of-type strong {
    font-family: var(--pw-font-body);
    font-style: normal;
    font-weight: 600;
    color: var(--pw-color-primary);
}

/* ---- Cart / Checkout / Order Received — match aesthetic */
.woocommerce-cart .pw-content,
.woocommerce-checkout .pw-content,
.woocommerce-order-received .pw-content {
    font-size: 15px;
}
.woocommerce table.shop_table {
    border: 0;
    border-collapse: collapse;
    width: 100%;
}
.woocommerce table.shop_table th {
    background: transparent;
    font-family: var(--pw-font-body);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pw-color-text-light);
    padding: 18px 14px;
    border-bottom: 1px solid var(--pw-color-primary);
    font-weight: 500;
    text-align: left;
}
.woocommerce table.shop_table td {
    padding: 18px 14px;
    border-bottom: 1px solid var(--pw-color-border);
    vertical-align: middle;
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
    border-bottom: 0;
    border-top: 1px solid var(--pw-color-border);
    padding: 14px;
}
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout #order_review_heading {
    font-family: var(--pw-font-heading);
    font-size: 1.6rem;
    font-weight: 400;
    margin: 0 0 18px;
}

/* ---- Generic WooCommerce form fields (login / register / address / checkout) */
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="password"],
.woocommerce form input[type="number"],
.woocommerce form select,
.woocommerce form textarea,
.select2-container--default .select2-selection--single {
    padding: 12px 14px !important;
    border: 1px solid var(--pw-color-border) !important;
    background: #fff !important;
    font-family: var(--pw-font-body) !important;
    font-size: 14px !important;
    color: var(--pw-color-text) !important;
    border-radius: 0 !important;
    height: auto !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease !important;
}
.woocommerce form input:focus,
.woocommerce form select:focus,
.woocommerce form textarea:focus {
    border-color: var(--pw-color-primary) !important;
    outline: none !important;
}
.woocommerce-Address {
    background: var(--pw-color-bg-alt);
    padding: 24px;
    border-left: 2px solid var(--pw-color-secondary);
}
.woocommerce-Address h3 {
    font-family: var(--pw-font-heading);
    font-size: 1.3rem;
    font-weight: 400;
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.woocommerce-Address .edit {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pw-color-secondary);
    text-decoration: none;
    font-weight: 600;
}

/* Mobile tweaks */
@media (max-width: 720px) {
    .pw-policy__section h2 { font-size: 1.5rem; }
    .pw-policy__lede { font-size: 17px; }
    .pw-demo-faq summary { font-size: 17px; }
    .pw-demo-section h2 { font-size: 1.5rem; }
}

/* Jouelanity: keep product galleries in a fixed square frame without breaking Woo FlexSlider. */
body.single-product div.product div.images,
body.single-product .woocommerce div.product div.images {
    width: 48% !important;
    max-width: 500px !important;
    min-width: 0 !important;
    float: left !important;
}

body.single-product .woocommerce-product-gallery {
    --pw-product-gallery-size: 500px;
    width: var(--pw-product-gallery-size) !important;
    max-width: 100% !important;
    margin: 0 auto 28px !important;
}

body.single-product .woocommerce-product-gallery .flex-viewport {
    width: var(--pw-product-gallery-size) !important;
    max-width: 100% !important;
    height: var(--pw-product-gallery-size) !important;
    max-height: var(--pw-product-gallery-size) !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper {
    height: 100% !important;
    max-height: 100% !important;
    background: #fff !important;
}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image a {
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image a,
body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child,
body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child a {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper {
    width: var(--pw-product-gallery-size) !important;
    max-width: 100% !important;
    height: var(--pw-product-gallery-size) !important;
    max-height: var(--pw-product-gallery-size) !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.single-product .woocommerce-product-gallery__image img,
body.single-product .woocommerce-product-gallery img.wp-post-image,
body.single-product div.product div.images img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #fff !important;
    display: block !important;
}

body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
    display: none !important;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 12px !important;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #fff !important;
    border: 1px solid var(--pw-color-border) !important;
    border-radius: 10px !important;
}

@media (max-width: 768px) {
    body.single-product div.product div.images,
    body.single-product .woocommerce div.product div.images,
    body.single-product .woocommerce-product-gallery {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
    }

    body.single-product .woocommerce-product-gallery .flex-viewport,
    body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: 1 / 1 !important;
    }

    body.single-product .woocommerce-product-gallery .flex-control-thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* Jouelanity 2-tier desktop header. Keeps the existing mobile drawer intact. */
@media (min-width: 1025px) {
    body .pw-header {
        background: #fff !important;
        border-bottom: 1px solid rgba(15, 17, 20, 0.1) !important;
    }

    body .pw-header > .pw-container {
        max-width: 1720px;
    }

    body .pw-header__inner {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 0 28px !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 18px 0 0 !important;
        grid-template-columns: none !important;
    }

    body .pw-header__logo {
        order: 1 !important;
        flex: 0 0 auto !important;
        grid-column: auto !important;
        text-align: left !important;
    }

    body .pw-header__logo img {
        max-height: 68px !important;
        width: auto !important;
        margin: 0 !important;
        display: block;
    }

    body .pw-header__tools {
        order: 2 !important;
        flex: 0 0 auto !important;
        margin-left: auto !important;
        grid-column: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 24px !important;
        min-height: 54px;
    }

    body .pw-header__tool {
        min-width: 34px !important;
        min-height: 34px !important;
        color: var(--pw-color-primary) !important;
        text-decoration: none !important;
    }

    body .pw-header__nav {
        order: 3 !important;
        flex: 0 0 100% !important;
        width: 100% !important;
        grid-column: auto !important;
        display: flex !important;
        justify-content: center !important;
        margin-top: 14px !important;
        padding: 14px 0 !important;
        border-top: 1px solid rgba(15, 17, 20, 0.08) !important;
        background: linear-gradient(180deg, #ffffff 0%, #f7fbfb 100%) !important;
        position: static !important;
        transform: none !important;
        overflow: visible !important;
        box-shadow: none !important;
    }

    body .pw-header__nav .pw-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: center !important;
        gap: clamp(24px, 3vw, 52px) !important;
        width: 100%;
        white-space: nowrap !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body .pw-header__nav .pw-menu > li > a {
        padding: 7px 0 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        letter-spacing: 0.18em !important;
        text-transform: uppercase !important;
    }

    body .pw-header__nav .pw-menu > li > a::after {
        bottom: 2px !important;
        height: 2px !important;
        background: var(--pw-color-secondary) !important;
    }

    body .pw-header__nav .pw-menu > li.current-menu-item > a,
    body .pw-header__nav .pw-menu > li.current_page_item > a {
        color: var(--pw-color-secondary) !important;
        font-weight: 800 !important;
    }

    body .pw-header__nav .pw-menu > li.current-menu-item > a::after,
    body .pw-header__nav .pw-menu > li.current_page_item > a::after {
        width: 100% !important;
    }

    body .pw-header--sticky .pw-header__inner {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 18px 0 0 !important;
        gap: 0 28px !important;
        grid-template-columns: none !important;
    }

    body .pw-header--sticky .pw-header__logo img {
        max-height: 68px !important;
    }

    body .pw-header--sticky .pw-header__tools {
        min-height: 54px !important;
        gap: 24px !important;
    }

    body .pw-header--sticky .pw-header__nav {
        order: 3 !important;
        flex: 0 0 100% !important;
        width: 100% !important;
        margin-top: 14px !important;
        padding: 14px 0 !important;
        justify-content: center !important;
        border-top: 1px solid rgba(15, 17, 20, 0.08) !important;
        background: linear-gradient(180deg, #ffffff 0%, #f7fbfb 100%) !important;
        overflow: visible !important;
    }

    body .pw-header--sticky .pw-header__nav .pw-menu {
        width: 100% !important;
        justify-content: center !important;
        gap: clamp(24px, 3vw, 52px) !important;
    }
}

@media (min-width: 1025px) and (max-width: 1320px) {
    body .pw-header__tools {
        gap: 14px !important;
    }

    body .pw-header__tool span:not(.pw-cart-count) {
        display: none !important;
    }

    body .pw-header__nav .pw-menu {
        gap: clamp(16px, 2vw, 30px) !important;
    }
}
