/* ============================================================
   Opulence 2026 · WooCommerce
   Shop archive · single product (PDP) · cart · checkout.
   Mapped from brief/product-page-prototype.html and
   brief/basket-checkout-prototype.html to the theme tokens.
   ============================================================ */

.woo-wrap { padding: 40px 30px 70px; }
.woo-phero {
    background: var(--forest-deep); color: var(--cream);
    padding: 48px 0; border-bottom: 1px solid var(--line-soft);
}
.woo-phero .crumb,
.woo-phero .crumb a { color: rgba(246, 242, 232, .7); }
.woo-phero .eyebrow.on-dark,
.woo-phero .eyebrow { color: var(--gold-2); }
.woo-phero .eyebrow::before { background: var(--gold-2); }
.woo-phero h1 { color: var(--cream); font-size: clamp(2rem, 4vw, 3rem); margin-top: 10px; }

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border: 1px solid var(--line); background: #fff; padding: 14px 18px;
    font-size: .88rem; list-style: none; margin-bottom: 20px; border-left: 3px solid var(--gold);
}
.woocommerce-error { border-left-color: var(--burgundy); }
.woocommerce-message { border-left-color: var(--stock-in); }
/* WooCommerce core renders an absolutely-positioned icon via ::before that
   overlays the text here (we use a coloured left border instead). Suppress it. */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; content: none; }

/* ===== STOVE SHOPPING ROUTES (Review P2-05) ===== */
/* Compact "ways to shop" rail placed above the legacy SEO prose so the key
   shopping routes are the first thing a customer meets on the stoves archive. */
.stove-routes {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 0.9rem;
    margin: 0 0 1.5rem;
}
.stove-routes__label {
    font-family: var(--font-body, sans-serif);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-muted, #6b6459);
}
.stove-routes__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.stove-route {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--color-border, #e6e2da);
    border-radius: 999px;
    font-size: 0.88rem;
    color: var(--color-ink, #211d18);
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.stove-route:hover {
    border-color: var(--color-gold, #b3892f);
}
.stove-route--primary {
    background: var(--color-forest, #14261b);
    border-color: var(--color-forest, #14261b);
    color: #fff;
    font-weight: 600;
}
.stove-route--primary::before {
    content: "\25CF"; /* live-stock dot */
    color: #7fbf7f;
    font-size: 0.7em;
    margin-right: 0.4rem;
}
.stove-route--primary:hover {
    background: #1c3427;
    color: #fff;
}
.stove-route--brand {
    font-weight: 600;
}

/* ===== CATEGORY INTRO (collapsible SEO landing content) ===== */
.cat-intro {
    position: relative;
    max-width: 1180px;
    margin: 30px auto 40px;
    /* padding: 0 30px; */
}
.cat-intro-body {
    position: relative;
    overflow: hidden;
    transition: max-height .45s var(--ease);
}
/* Collapsed: clamp to roughly the first banner row, keeping products in view. */
.cat-intro.is-collapsed .cat-intro-body {
    max-height: 260px;
}
.cat-intro.is-expanded .cat-intro-body {
    max-height: none;
}

/* Fade overlay hinting at truncated content while collapsed. */
.cat-intro-fade {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 44px;
    height: 90px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--cream, #fff));
    opacity: 1;
    transition: opacity .3s var(--ease);
}
.cat-intro.is-expanded .cat-intro-fade { opacity: 0; }
/* No toggle needed (short content) → hide fade + button entirely. */
.cat-intro.no-toggle .cat-intro-fade,
.cat-intro.no-toggle .cat-intro-toggle { display: none; }

/* Toggle button */
.cat-intro-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 16px;
    padding: 9px 18px;
    background: none;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-family: var(--body);
    font-size: .78rem;
    letter-spacing: .04em;
    color: var(--forest);
    cursor: pointer;
    transition: border-color .25s, color .25s, background .25s;
}
.cat-intro-toggle:hover {
    border-color: var(--gold);
    color: var(--gold-text);
}
.cat-intro-toggle-less { display: none; }
.cat-intro.is-expanded .cat-intro-toggle-more { display: none; }
.cat-intro.is-expanded .cat-intro-toggle-less { display: inline; }
.cat-intro-chevron { transition: transform .3s var(--ease); }
.cat-intro.is-expanded .cat-intro-chevron { transform: rotate(180deg); }

/* ----- Editorial landing-page content styling ----- */
.landingPageContainer > h2 {
    font-family: var(--display, var(--body));
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--forest-deep);
    margin: 0 0 24px;
    line-height: 1.2;
}
.landingPageContainer h3 {
    font-size: 1.15rem;
    color: var(--forest-deep);
    margin: 0 0 10px;
}
.landingPageContainer h3 a { color: inherit; text-decoration: none; }
.landingPageContainer h3 a:hover { color: var(--gold-text); }
.landingPageContainer p {
    font-size: .92rem;
    line-height: 1.75;
    color: var(--ink);
    margin: 0 0 16px;
}
.landingPageContainer a { color: var(--gold-text); }
.landingPageContainer a u { text-decoration: none; }
.landingPageContainer a:hover { text-decoration: underline; }

/* Alternating image/text feature banners */
.landingPageHeaderBanner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 34px;
    margin: 0 0 32px;
}
.landingPageHeaderBannerImgContainer img {
    width: 100%;
    height: 100%;
    max-height: 300px;
    object-fit: cover;
    border: 1px solid var(--line);
    display: block;
}
.landingPageHeaderBannerTextContainer { min-width: 0; }

/* Free-flowing prose blocks */
.landingPageContent {
    /* max-width: 760px; */
    margin: 0 auto 26px;
}
.landingPageContent .imgRow {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}
.landingPageContent .imgRow img {
    flex: 1 1 320px;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--line);
}
.landingPageContent .imgRow br { display: none; }

@media (max-width: 760px) {
    .landingPageHeaderBanner {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    /* Keep image first even when markup places text first on odd rows. */
    .landingPageHeaderBanner .landingPageHeaderBannerImgContainer { order: -1; }
    .cat-intro.is-collapsed .cat-intro-body { max-height: 220px; }
}

/* ===== SHOP ARCHIVE ===== */
.woocommerce-result-count { font-size: .82rem; color: var(--muted); margin-bottom: 16px; }
.woocommerce-ordering { margin-bottom: 22px; }
.woocommerce-ordering select {
    border: 1px solid var(--line); background: #fff; padding: 10px 14px;
    font-family: var(--body); font-size: .84rem; color: var(--ink); border-radius: var(--radius);
}

ul.products {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
/* Neutralise WooCommerce's float-clearfix pseudo-elements, which otherwise
   become stray grid items and consume the first/last cells. */
.woocommerce .products ul::before,
.woocommerce .products ul::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    content: none; display: none;
}
ul.products li.product.card {
    background: #fff; border: 1px solid var(--line); float: none; width: auto; margin: 0;
    transition: transform .35s var(--ease), box-shadow .35s; display: flex; flex-direction: column;
}
ul.products li.product.card:hover { transform: translateY(-4px); box-shadow: var(--elev); }
ul.products li.product a { text-decoration: none; }
ul.products li.product a.woocommerce-LoopProduct-link { display: block; }

.card-img {
    position: relative; aspect-ratio: 1; width: 100%; height: auto;
    background: #fff;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.card-img img { width: 100%; height: 100%; object-fit: contain; margin: 0; }
.card-badge { position: absolute; top: 12px; right: 12px; z-index: 2; }
.card-badge .badge {
    background: rgba(20, 18, 15, .78); color: #fff; border-color: transparent;
    backdrop-filter: blur(2px); box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
}
.card-badge .badge-in { color: #a9e8c4; }
.card-badge .badge-order { color: #d8d3cc; }

.card-b { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.card-brand {
    font-size: .6rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--gold-text); margin-bottom: 5px; font-weight: 500;
}
ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--display); font-size: 1.25rem; font-weight: 500;
    padding: 0; margin: 0 0 9px; color: var(--ink); line-height: 1.2;
}
ul.products li.product .price {
    font-size: .86rem; color: var(--forest); margin: 0 0 14px; font-weight: 500;
}
ul.products li.product .price del { color: var(--muted); font-weight: 400; margin-right: 6px; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button { margin-top: auto; }

/* Pagination */
.woocommerce-pagination { margin-top: 40px; }
.woocommerce-pagination ul { display: flex; gap: 8px; justify-content: center; list-style: none; padding: 0; border: none; }
.woocommerce-pagination ul li { border: none; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--line);
    background: #fff; color: var(--forest); font-size: .85rem; transition: .25s;
}
.woocommerce-pagination ul li a:hover,
.woocommerce-pagination ul li span.current {
    border-color: var(--gold); background: var(--forest-deep); color: var(--cream);
}

/* ===== SEARCH RESULTS ===== */
.search-results .search-result-count { margin-bottom: 22px; }
.search-empty {
    text-align: center; max-width: 520px; margin: 40px auto 20px;
    padding: 48px 30px; background: var(--cream-2); border: 1px solid var(--line-soft);
    border-radius: var(--radius);
}
.search-empty h2 { font-family: var(--display); font-size: 1.8rem; color: var(--forest); margin-bottom: 12px; }
.search-empty p { color: var(--muted); margin-bottom: 24px; }
.search-empty__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.search-results .pagination,
.search-results .navigation.pagination { margin-top: 40px; }
.search-results .nav-links { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.search-results .nav-links .page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--line);
    background: #fff; color: var(--forest); font-size: .85rem; transition: .25s;
}
.search-results .nav-links .page-numbers.current,
.search-results .nav-links a.page-numbers:hover {
    border-color: var(--gold); background: var(--forest-deep); color: var(--cream);
}

/* ===== BUTTONS (Woo -> theme) ===== */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    font-family: var(--body); font-weight: 500; font-size: .82rem; letter-spacing: .06em;
    text-transform: uppercase; padding: 15px 26px; border: 1px solid var(--gold);
    background: var(--gold); color: var(--forest-deep); border-radius: var(--radius);
    transition: all .35s var(--ease); cursor: pointer; line-height: 1;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce button.button.alt:hover { background: var(--gold-deep); color: #fff; border-color: var(--gold-deep); }
.woocommerce button.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt { background: var(--gold); border-color: var(--gold); color: var(--forest-deep); }
.woocommerce .button.btn-ghost {
    background: transparent; color: var(--forest); border-color: var(--line);
}
.woocommerce .button.btn-ghost:hover { border-color: var(--forest); background: var(--cream-2); color: var(--forest); }

/* ===== SINGLE PRODUCT (PDP) ===== */
.single-product div.product {
    display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px;
    align-items: start; padding-bottom: 20px;
}
.single-product div.product > * { min-width: 0; }
.single-product div.product .woocommerce-product-gallery { margin: 0; width: 100%; float: none; max-width: 100%; overflow: hidden; }
.single-product div.product .woocommerce-product-gallery__image img {
    border: 1px solid var(--line-soft);
    width: 100%; height: auto; display: block;
}
/* Override WooCommerce's default 48% float layout so grid columns fill fully.
   Prefixed with body.single-product + !important to beat woocommerce.css,
   which loads after this file and has equal base specificity. Only the outer
   containers are targeted so flexslider's internal track math is untouched. */
body.single-product div.product div.summary,
body.woocommerce-page div.product div.summary,
body.single-product #content div.product div.summary,
body.woocommerce-page #content div.product div.summary,
body.single-product div.product div.images,
body.woocommerce-page div.product div.images,
body.single-product #content div.product div.images,
body.woocommerce-page #content div.product div.images,
body.single-product div.product .woocommerce-product-gallery,
body.woocommerce-page div.product .woocommerce-product-gallery {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}
.single-product div.product .onsale {
    position: absolute; top: 14px; left: 14px; z-index: 5;
    background: var(--burgundy); color: var(--cream); min-height: 0; min-width: 0;
    border-radius: 2px; padding: 6px 12px; font-size: .62rem; letter-spacing: .1em;
    text-transform: uppercase; font-weight: 500; line-height: 1.4; margin: 0;
}

.single-product div.product .product_title {
    font-size: clamp(2.1rem, 4vw, 3rem); margin-bottom: 12px; padding: 0;
}
.single-product div.product .woocommerce-product-details__short-description {
    font-family: var(--display); font-size: 1.25rem; font-style: italic;
    color: var(--forest); margin-bottom: 20px;
}
.single-product div.product p.price,
.single-product div.product span.price {
    color: var(--forest); font-family: var(--display); font-size: 2.4rem;
    margin-bottom: 20px; display: block;
}
.single-product div.product p.price del { font-size: 1.3rem; color: var(--muted); margin-right: 10px; }
.single-product div.product p.price ins { text-decoration: none; }
.single-product .price .woocommerce-Price-currencySymbol { font-size: .7em; }

.single-product div.product form.cart {
    border: 1px solid var(--line); background: #fff; padding: 24px; margin-bottom: 22px;
}
.single-product div.product form.cart .quantity { margin-right: 12px; }
.single-product div.product form.cart .quantity input.qty {
    width: 64px; height: 52px; border: 1px solid var(--line); text-align: center;
    font-family: var(--body); background: #fff; color: var(--ink);
}
.single-product div.product form.cart .single_add_to_cart_button {
    padding: 18px 30px; font-size: .86rem;
}
.single-product div.product .variations { width: 100%; margin-bottom: 16px; }
.single-product div.product .variations th {
    font-size: .66rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--gold-text); font-weight: 500; text-align: left; padding: 10px 12px 10px 0;
}
.single-product div.product .variations td select {
    border: 1px solid var(--line); background: #fff; padding: 12px 14px;
    font-family: var(--body); color: var(--ink); border-radius: var(--radius); min-width: 220px;
}
.single-product div.product .product_meta {
    font-size: .8rem; color: var(--muted); margin-top: 8px;
    border-top: 1px solid var(--line-soft); padding-top: 16px;
}
.single-product div.product .product_meta > span { display: block; margin-bottom: 5px; }
.single-product div.product .product_meta a { color: var(--gold-text); }

.single-product div.product .stock.in-stock,
.single-product div.product .stock.available-on-backorder {
    font-size: .58rem; letter-spacing: .09em; text-transform: uppercase;
    padding: 6px 11px; display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid rgba(78, 140, 99, .5); background: rgba(78, 140, 99, .12);
    color: #2f6a48; border-radius: 2px; font-weight: 500; margin-bottom: 14px;
}
.single-product div.product .stock.out-of-stock {
    color: #5a554f; border-color: rgba(107, 101, 96, .4); background: rgba(107, 101, 96, .1);
}

/* Product tabs */
.woocommerce-tabs { grid-column: 1 / -1; margin-top: 30px; }
.woocommerce-tabs ul.tabs {
    border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap;
    gap: 0; margin: 0 0 34px; padding: 0; list-style: none;
}
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li {
    background: none; border: none; margin: 0 0 -1px; padding: 0; border-radius: 0;
}
.woocommerce-tabs ul.tabs li a {
    border-bottom: 2px solid transparent; padding: 14px 24px; display: block;
    font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
    color: var(--muted); font-weight: 500;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--forest); border-bottom-color: var(--gold); }
.woocommerce-tabs .panel { font-size: .95rem; color: var(--muted); }
.woocommerce-tabs .panel h2 { font-size: 1.6rem; color: var(--forest); margin-bottom: 14px; }
.woocommerce-tabs table.shop_attributes {
    width: 100%; border-collapse: collapse; font-size: .88rem;
    background: #fff; border: 1px solid var(--line);
}
.woocommerce-tabs table.shop_attributes th,
.woocommerce-tabs table.shop_attributes td {
    text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--line-soft);
}
.woocommerce-tabs table.shop_attributes th {
    font-size: .62rem; letter-spacing: .12em; text-transform: uppercase;
    color: var(--muted); font-weight: 500; background: var(--cream-2); width: 40%;
}

/* Related / upsells */
.related.products,
.upsells.products { grid-column: 1 / -1; margin-top: 60px; }
.related.products > h2,
.upsells.products > h2 {
    font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.4rem);
    text-align: center; margin-bottom: 32px; color: var(--forest);
}

/* ===== CART ===== */
.woocommerce-cart .woo-main,
.woocommerce-checkout .woo-main { max-width: var(--maxw); }
.woocommerce table.shop_table {
    border: 1px solid var(--line); background: #fff; border-collapse: collapse;
    border-radius: 0; margin-bottom: 24px;
}
.woocommerce table.shop_table th {
    font-size: .62rem; letter-spacing: .12em; text-transform: uppercase;
    color: var(--muted); font-weight: 500; padding: 16px; background: var(--cream-2);
}
.woocommerce table.shop_table td { padding: 20px 16px; border-top: 1px solid var(--line-soft); }
.woocommerce table.shop_table td.product-name a { color: var(--forest); font-family: var(--display); font-size: 1.2rem; }
.woocommerce table.shop_table img { width: 72px; border: 1px solid var(--line-soft); }
.woocommerce .cart .quantity input.qty {
    width: 60px; height: 44px; border: 1px solid var(--line); text-align: center;
    background: #fff; font-family: var(--body); color: var(--ink);
}
.woocommerce a.remove {
    color: var(--burgundy) !important; font-weight: 500; border: 1px solid var(--line);
    border-radius: 50%; width: 24px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    line-height: 1; text-align: center;
}
.woocommerce a.remove:hover { background: var(--burgundy) !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; }
.cart_totals h2, .cross-sells h2 { font-family: var(--display); font-size: 1.6rem; color: var(--forest); margin-bottom: 16px; }
.woocommerce .cart_totals table.shop_table { margin-bottom: 0; }
.woocommerce .cart_totals .order-total .amount { font-family: var(--display); font-size: 1.6rem; color: var(--forest); }
.woocommerce .wc-proceed-to-checkout { padding-top: 20px; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
    display: block; width: 100%; text-align: center; padding: 18px 30px; font-size: .86rem;
}
.woocommerce .coupon .input-text {
    border: 1px solid var(--line); padding: 12px 14px; background: #fff;
    color: var(--ink); border-radius: var(--radius); text-transform: uppercase;
}

/* ===== CHECKOUT ===== */
.woocommerce-checkout .col2-set,
.woocommerce-checkout #customer_details { margin-bottom: 30px; }
.woocommerce-checkout h3 {
    font-family: var(--display); font-size: 1.5rem; color: var(--forest);
    margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line-soft);
}
.woocommerce form .form-row label {
    font-size: .62rem; letter-spacing: .12em; text-transform: uppercase;
    color: var(--gold-text); font-weight: 500; margin-bottom: 6px; display: block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection {
    border: 1px solid var(--line); padding: 12px 14px; background: #fff;
    color: var(--ink); border-radius: var(--radius); font-family: var(--body); font-size: .9rem;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { outline: none; border-color: var(--gold); }
.woocommerce-checkout #order_review_heading {
    font-family: var(--display); font-size: 1.5rem; color: var(--forest); margin-bottom: 16px;
}
.woocommerce-checkout #order_review {
    border: 1px solid var(--line); background: #fff; padding: 24px;
}
.woocommerce-checkout #order_review .order-total .amount {
    font-family: var(--display); font-size: 1.8rem; color: var(--forest);
}
.woocommerce-checkout #payment {
    background: var(--cream-2); border: 1px solid var(--line-soft); border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--line-soft); }
.woocommerce-checkout #payment div.payment_box {
    background: #fff; border: 1px solid var(--line); font-size: .84rem; color: var(--muted);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce-checkout #place_order { width: 100%; padding: 18px 30px; font-size: .9rem; }
.woocommerce-checkout .secure-note {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
    color: var(--muted); text-align: center; margin-top: 14px;
}

/* ===== ORDER RECEIVED / ACCOUNT ===== */
.woocommerce-order .woocommerce-thankyou-order-received {
    font-family: var(--display); font-size: 2rem; color: var(--forest); margin-bottom: 20px;
}
/* --- My Account: compact page header (no hero image) --- */
.account-header {
    background: var(--forest-deep); color: var(--cream);
    padding: 40px 0; border-bottom: 1px solid var(--line-soft);
}
.account-header .crumb,
.account-header .crumb a { color: rgba(246, 242, 232, .7); }
.account-header .crumb a:hover { color: var(--gold-2); }
.account-header .account-title {
    color: var(--cream); font-family: var(--display);
    font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin: 10px 0 0;
}
.account-main { padding: 40px 0 70px; }

/* --- My Account: dashboard layout ---
   Keep WooCommerce's default float layout (nav left, content right) and only
   tune the widths; a grid container here collapses the floated content width. */
.woocommerce-account .woocommerce::after { content: ""; display: table; clear: both; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: 260px; margin-right: 40px; }
.woocommerce-account .woocommerce-MyAccount-content { width: calc(100% - 300px); }

@media (max-width: 820px) {
    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        float: none; width: auto; margin: 0 0 28px;
    }
}

.woocommerce-MyAccount-navigation {
    background: var(--cream-2); border: 1px solid var(--line-soft);
    border-radius: var(--radius); padding: 8px 20px;
}
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--line-soft);
}
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation ul li a {
    display: block; padding: 13px 0; color: var(--forest);
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
    font-weight: 500; transition: color .18s ease;
}
.woocommerce-MyAccount-navigation ul li a:hover { color: var(--gold-text); }
.woocommerce-MyAccount-navigation ul li.is-active a { color: var(--gold-text); }
.woocommerce-MyAccount-navigation ul li.is-active {
    box-shadow: inset 3px 0 0 var(--gold); padding-left: 12px; margin-left: -12px;
}

.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content .woocommerce-Address-title h3,
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 {
    font-family: var(--display); color: var(--forest); margin-bottom: 14px;
}
.woocommerce-MyAccount-content mark { background: var(--cream-2); color: var(--gold-text); padding: 0 4px; }

/* Addresses grid — keep WooCommerce's default floated columns; a grid
   container collapses each floated address to its content width. */
.woocommerce-Addresses.addresses::after { content: ""; display: table; clear: both; }
.woocommerce-Addresses.addresses .woocommerce-Address { width: calc(50% - 12px); }
@media (max-width: 640px) {
    .woocommerce-Addresses.addresses .woocommerce-Address { float: none; width: auto; }
}
.woocommerce-Address {
    background: #fff; border: 1px solid var(--line-soft);
    border-radius: var(--radius); padding: 24px;
}
.woocommerce-Address address { font-style: normal; color: var(--muted); line-height: 1.7; }

/* Login / register two-column card layout */
#customer_login.u-columns {
    display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 0;
}
@media (max-width: 640px) { #customer_login.u-columns { grid-template-columns: 1fr; } }
#customer_login .u-column1, #customer_login .u-column2 {
    background: #fff; border: 1px solid var(--line-soft);
    border-radius: var(--radius); padding: 30px; width: auto; float: none;
}
#customer_login h2 {
    font-family: var(--display); font-size: 1.5rem; color: var(--forest);
    margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid var(--line-soft);
}
.woocommerce-form-login__rememberme, .woocommerce-form-register__submit + p { color: var(--muted); }
.woocommerce-LostPassword a { color: var(--gold-text); }

/* ===== CLASSIFICATION / AVAILABILITY BADGES ===== */
.availability-info {
	display: inline-flex; align-items: center; gap: 6px; font-size: .6rem;
	letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
	padding: 6px 11px; border: 1px solid; border-radius: 2px; margin: 0 0 14px;
}
.availability-info::before { content: ""; width: 6px; height: 6px; border-radius: 50%; }
.availability-info.core-holding {
	color: #2f6a48; border-color: rgba(78, 140, 99, .5); background: rgba(78, 140, 99, .12);
}
.availability-info.core-holding::before { background: var(--stock-in); }
.availability-info.sale {
	color: var(--burgundy); border-color: rgba(141, 59, 60, .5); background: rgba(141, 59, 60, .1);
}
.availability-info.sale::before { background: var(--burgundy); }
.availability-info.special-order {
	color: #5a554f; border-color: rgba(107, 101, 96, .4); background: rgba(107, 101, 96, .1);
}
.availability-info.special-order::before { background: var(--stock-order); }
.availability-info.available-order {
	color: #8a5a12; border-color: rgba(180, 118, 42, .45); background: rgba(180, 118, 42, .1);
}
.availability-info.available-order::before { background: var(--stock-order); }

/* "Ask about lead time" enquiry link on longer-lead items (HI-037) */
.lead-time-enquire {
	display: inline-block; margin: 0 0 14px 10px; font-size: .72rem;
	letter-spacing: .04em; color: var(--burgundy); text-decoration: underline;
	text-underline-offset: 2px;
}
.lead-time-enquire:hover, .lead-time-enquire:focus { color: var(--gold-deep, #8a5a12); }
.lead-time-enquire--card {
	display: block; margin: 4px 0 0; font-size: .68rem;
}

/* Card classification chip sits under the title */
ul.products li.product .card-b .availability-info { margin-top: 2px; }

/* ===== POSTCODE DELIVERY CHECKER ===== */
.single-product .postcode {
	border: 1px solid var(--line); background: #fff; padding: 18px 20px; margin: 22px 0 0;
}
.postcode .pc-head {
	font-size: .66rem; letter-spacing: .14em; text-transform: uppercase;
	color: var(--gold-text); font-weight: 500; margin-bottom: 10px;
}
.postcode .pc-form { display: flex; gap: 8px; }
.postcode .pc-form input {
	flex: 1; border: 1px solid var(--line); padding: 12px 14px;
	font-family: var(--body); font-size: .88rem; background: #fff; color: var(--ink);
	border-radius: var(--radius);
}
.postcode .pc-form input:focus { outline: none; border-color: var(--gold); }
.postcode .pc-form .btn { white-space: nowrap; }
.postcode .pc-form .btn[aria-busy="true"] { opacity: .6; cursor: progress; }
.postcode .pc-result { margin-top: 10px; font-size: .82rem; display: none; }
.postcode .pc-result.show { display: block; }
.postcode .pc-result a { color: var(--gold-text); text-decoration: underline; }
.pc-ok { color: #2f6a48; }

/* ===== PRODUCT INSTALLATION CTAs (secondary to purchase) ===== */
.product-install-ctas {
	margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line);
}
.product-install-ctas__lead {
	font-size: .84rem; line-height: 1.5; color: var(--ink);
	margin: 0 0 12px;
}
.product-install-ctas__row {
	display: flex; flex-wrap: wrap; gap: 10px;
}
.product-install-ctas__row .btn { flex: 1 1 auto; text-align: center; }
@media (max-width: 480px) {
	.product-install-ctas__row .btn { flex: 1 1 100%; }
}

/* ===== POSTCODE GATE MODAL ===== */
.pc-gate {
	position: fixed; inset: 0; z-index: 9999;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.pc-gate[hidden] { display: none; }
.pc-gate__overlay {
	position: absolute; inset: 0; background: rgba(20, 16, 12, .55);
}
.pc-gate__dialog {
	position: relative; z-index: 1; width: 100%; max-width: 440px;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	padding: 30px 30px 28px; box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
}
.pc-gate__close {
	position: absolute; top: 12px; right: 14px; border: 0; background: none;
	font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--muted);
	padding: 4px 8px; min-height: 44px; min-width: 44px;
}
.pc-gate__close:hover { color: var(--ink); }
.pc-gate__title {
	font-size: 1.2rem; margin: 0 0 8px; color: var(--ink);
}
.pc-gate__intro {
	margin: 0 0 18px; font-size: .9rem; color: var(--muted); line-height: 1.5;
}
.pc-gate__form { display: flex; gap: 8px; }
.pc-gate__input {
	flex: 1; border: 1px solid var(--line); padding: 12px 14px;
	font-family: var(--body); font-size: .9rem; background: #fff; color: var(--ink);
	border-radius: var(--radius);
}
.pc-gate__input:focus { outline: none; border-color: var(--gold); }
.pc-gate__btn { white-space: nowrap; }
.pc-gate__btn[aria-busy="true"] { opacity: .6; cursor: progress; }
.pc-gate__result { margin-top: 14px; font-size: .84rem; display: none; }
.pc-gate__result.show { display: block; }
.pc-gate__msg { display: block; line-height: 1.5; }
.pc-gate__msg--ok { color: #2f6a48; }
.pc-gate__msg--error { color: var(--burgundy); }
.pc-gate__msg a { color: var(--gold-text); text-decoration: underline; }
.pc-gate__phone { display: block; margin-top: 6px; font-size: 1.05rem; font-weight: 600; }
.pc-gate__phone a { color: var(--ink); text-decoration: none; }
.pc-gate__contact { display: inline-flex; margin-top: 14px; text-decoration: none; }
body.pc-gate-open { overflow: hidden; }

/* ===== PRODUCT ENQUIRY MODAL ===== */
.pe-modal {
	position: fixed; inset: 0; z-index: 10000;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.pe-modal[hidden] { display: none; }
.pe-modal__overlay {
	position: absolute; inset: 0; background: rgba(20, 16, 12, .55);
}
.pe-modal__dialog {
	position: relative; z-index: 1; width: 100%; max-width: 520px;
	max-height: calc(100vh - 40px); overflow-y: auto;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	padding: 30px 30px 28px; box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
}
.pe-modal__close {
	position: absolute; top: 12px; right: 14px; border: 0; background: none;
	font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--muted);
	padding: 4px 8px; min-height: 44px; min-width: 44px;
}
.pe-modal__close:hover { color: var(--ink); }
.pe-modal__title { font-size: 1.2rem; margin: 0 0 6px; color: var(--ink); }
.pe-modal__intro { margin: 0 0 16px; font-size: .9rem; color: var(--muted); line-height: 1.5; }
.pe-modal__intro strong { color: var(--ink); }
.pe-modal__notice {
	margin: 0 0 16px; padding: 12px 14px; border-radius: var(--radius);
	font-size: .86rem; line-height: 1.5;
}
.pe-modal__notice--success { background: #eaf5ee; color: #2f6a48; font-weight: 600; display: flex; align-items: flex-start; gap: 10px; }
.pe-modal__notice--success::before { content: "\2713"; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%; background: #3e7c5a; color: #fff; font-size: .75rem; line-height: 1; }
.pe-modal__notice--error { background: #fbecec; color: var(--burgundy); }
.pe-modal__form .pe-field { margin: 0 0 14px; display: flex; flex-direction: column; gap: 6px; }
.pe-modal__form label { font-size: .82rem; font-weight: 600; color: var(--ink); }
.pe-req { color: var(--burgundy); }
.pe-modal__form input,
.pe-modal__form textarea {
	border: 1px solid var(--line); padding: 12px 14px;
	font-family: var(--body); font-size: .9rem; background: #fff; color: var(--ink);
	border-radius: var(--radius); width: 100%;
}
.pe-modal__form input:focus,
.pe-modal__form textarea:focus { outline: none; border-color: var(--gold); }
.pe-modal__form textarea { resize: vertical; }
.pe-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pe-modal__submit { margin-top: 6px; width: 100%; }
body.pe-modal-open { overflow: hidden; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1080px) {
    .single-product div.product { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
    ul.products { grid-template-columns: repeat(2, 1fr); }
    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
}
@media (max-width: 560px) {
    ul.products { grid-template-columns: 1fr; }
    .woocommerce ul.products li.product,
    ul.products li.product.card,
    .woocommerce ul.products[class*="columns-"] li.product,
    .woocommerce-page ul.products[class*="columns-"] li.product { width: 100%; }
}
