/*
Theme Name: Scarborough Bulk Buyers
Author: Jordan Simkiss & ChatGPT
Version: 5.4.2

MASTER STYLESHEET
=================
This file contains all live website styling.

SECTION GUIDE
-------------
1. Global layout, typography and buttons
2. Header and navigation
3. Homepage sections
4. Current Stock catalogue, search and filters
5. Single product pages
6. Product gallery and lightbox
7. Configurations, availability and specifications
8. Wishlist, comparison and recently viewed
9. Contact, Find Us and general pages
10. Footer
11. Responsive/mobile adjustments

Maintenance note:
Some later rules intentionally override earlier legacy rules. They have been
preserved where removing or merging them could alter the existing live layout.
*/


/* ==========================================================
   1. GLOBAL DESIGN SYSTEM
========================================================== */

:root {
    /* Brand colours */
    --sbb-primary: #d40000;
    --sbb-primary-dark: #b30000;
    --sbb-primary-deep: #a90000;
    --sbb-dark: #222222;
    --sbb-dark-soft: #333333;
    --sbb-text: #222222;
    --sbb-text-muted: #666666;
    --sbb-text-light: #777777;
    --sbb-background: #f7f7f7;
    --sbb-surface: #ffffff;
    --sbb-surface-soft: #f3f3f3;
    --sbb-border: #e5e5e5;
    --sbb-border-dark: #cccccc;

    /* Status colours */
    --sbb-success-bg: #e8f7e8;
    --sbb-success-text: #217a21;
    --sbb-warning-bg: #fff8e5;
    --sbb-warning-text: #795c00;
    --sbb-danger-bg: #fff0f0;
    --sbb-danger-text: #9b1c1c;

    /* Border radii */
    --sbb-radius-xs: 4px;
    --sbb-radius-sm: 6px;
    --sbb-radius-md: 10px;
    --sbb-radius-lg: 14px;
    --sbb-radius-xl: 18px;
    --sbb-radius-pill: 999px;

    /* Shadows */
    --sbb-shadow-xs: 0 2px 10px rgba(0, 0, 0, 0.06);
    --sbb-shadow-sm: 0 8px 20px rgba(0, 0, 0, 0.08);
    --sbb-shadow-md: 0 10px 30px rgba(0, 0, 0, 0.10);
    --sbb-shadow-lg: 0 15px 35px rgba(0, 0, 0, 0.15);
    --sbb-shadow-xl: 0 20px 50px rgba(0, 0, 0, 0.16);

    /* Spacing */
    --sbb-space-1: 4px;
    --sbb-space-2: 8px;
    --sbb-space-3: 12px;
    --sbb-space-4: 16px;
    --sbb-space-5: 20px;
    --sbb-space-6: 24px;
    --sbb-space-7: 30px;
    --sbb-space-8: 40px;
    --sbb-space-9: 50px;
    --sbb-space-10: 70px;
    --sbb-space-11: 90px;


    /* Typography */
    --sbb-font-body: Arial, Helvetica, sans-serif;
    --sbb-font-heading: Arial, Helvetica, sans-serif;
    --sbb-font-size-xs: 13px;
    --sbb-font-size-sm: 14px;
    --sbb-font-size-base: 16px;
    --sbb-font-size-lg: 18px;
    --sbb-font-size-xl: 20px;
    --sbb-heading-1: clamp(38px, 5vw, 56px);
    --sbb-heading-2: clamp(31px, 4vw, 44px);
    --sbb-heading-3: clamp(25px, 3vw, 32px);
    --sbb-heading-4: clamp(21px, 2.4vw, 25px);
    --sbb-heading-5: clamp(18px, 2vw, 21px);
    --sbb-heading-6: 16px;
    --sbb-line-height-tight: 1.12;
    --sbb-line-height-heading: 1.22;
    --sbb-line-height-body: 1.65;
    --sbb-line-height-relaxed: 1.75;
    --sbb-letter-spacing-heading: -0.02em;
    --sbb-letter-spacing-label: 0.04em;
    --sbb-readable-width: 72ch;


    /* Section rhythm */
    --sbb-section-space-desktop: 90px;
    --sbb-section-space-tablet: 70px;
    --sbb-section-space-mobile: 52px;
    --sbb-section-space-compact: 40px;
    --sbb-section-heading-gap: 50px;
    --sbb-section-heading-gap-mobile: 30px;
    --sbb-page-top-space: 70px;
    --sbb-page-bottom-space: 90px;
    --sbb-grid-gap: 30px;
    --sbb-grid-gap-large: 40px;
    --sbb-grid-gap-mobile: 20px;

    /* Layout */
    --sbb-container-wide: 1300px;
    --sbb-container-standard: 1180px;
    --sbb-container-content: 1000px;
    --sbb-container-narrow: 820px;
    --sbb-container-gutter: 5%;
    --sbb-container-gutter-tablet: 32px;
    --sbb-container-gutter-mobile: 20px;
    --sbb-container-width: var(--sbb-container-wide);
    --sbb-content-width: var(--sbb-container-content);

    /* Motion */
    --sbb-transition-fast: 0.18s ease;
    --sbb-transition: 0.28s ease;
    --sbb-transition-slow: 0.4s ease;
}

/* Reusable focus treatment */
:where(
    a,
    button,
    input,
    select,
    textarea,
    [tabindex]
):focus-visible {
    outline: 3px solid rgba(212, 0, 0, 0.22);
    outline-offset: 3px;
}

/* Standard interactive motion */
:where(a, button, input, select, textarea) {
    transition:
        color var(--sbb-transition),
        background-color var(--sbb-transition),
        border-color var(--sbb-transition),
        box-shadow var(--sbb-transition),
        transform var(--sbb-transition);
}

/* Standard surface/card treatment */
.sbb-card {
    background: var(--sbb-surface);
    border: 1px solid var(--sbb-border);
    border-radius: var(--sbb-radius-lg);
    box-shadow: var(--sbb-shadow-md);
}

/* Standard section heading treatment */
.sbb-section-heading {
    max-width: 800px;
    margin: 0 auto var(--sbb-space-9);
    text-align: center;
}

.sbb-section-heading h2 {
    margin: 0 0 var(--sbb-space-3);
    color: var(--sbb-text);
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.15;
}

.sbb-section-heading p {
    margin: 0;
    color: var(--sbb-text-muted);
    font-size: 18px;
    line-height: 1.7;
}


/* ==========================================================
   2.1 GLOBAL TYPOGRAPHY FOUNDATION
========================================================== */

/*
 * Low-specificity selectors allow existing component styling to remain in
 * control while giving unstyled WordPress content a consistent foundation.
 */

body {
    font-family: var(--sbb-font-body);
    font-size: var(--sbb-font-size-base);
    font-weight: 400;
    line-height: var(--sbb-line-height-body);
    color: var(--sbb-text);
}

:where(h1, h2, h3, h4, h5, h6) {
    margin-top: 0;
    color: var(--sbb-text);
    font-family: var(--sbb-font-heading);
    font-weight: 800;
    line-height: var(--sbb-line-height-heading);
    letter-spacing: var(--sbb-letter-spacing-heading);
    text-wrap: balance;
}

:where(h1) {
    font-size: var(--sbb-heading-1);
}

:where(h2) {
    font-size: var(--sbb-heading-2);
}

:where(h3) {
    font-size: var(--sbb-heading-3);
}

:where(h4) {
    font-size: var(--sbb-heading-4);
}

:where(h5) {
    font-size: var(--sbb-heading-5);
}

:where(h6) {
    font-size: var(--sbb-heading-6);
}

:where(p) {
    line-height: var(--sbb-line-height-body);
    text-wrap: pretty;
}

:where(
    .page-content,
    .entry-content,
    .stock-product-overview-content,
    .single-stock-description,
    .contact-information,
    .showroom-details
) :where(p, ul, ol, blockquote) {
    margin-bottom: 1em;
}

:where(
    .page-content,
    .entry-content,
    .stock-product-overview-content,
    .single-stock-description
) > :where(p, ul, ol, blockquote) {
    max-width: var(--sbb-readable-width);
}

:where(
    .page-content,
    .entry-content,
    .stock-product-overview-content,
    .single-stock-description
) > :last-child {
    margin-bottom: 0;
}

:where(ul, ol) {
    line-height: var(--sbb-line-height-body);
}

:where(
    .page-content,
    .entry-content,
    .stock-product-overview-content,
    .single-stock-description
) :where(ul, ol) {
    padding-left: 1.35em;
}

:where(
    .page-content,
    .entry-content,
    .stock-product-overview-content,
    .single-stock-description
) li + li {
    margin-top: 0.4em;
}

:where(strong, b) {
    font-weight: 700;
}

:where(em, i) {
    font-style: italic;
}

:where(small) {
    font-size: var(--sbb-font-size-sm);
    line-height: 1.5;
}

:where(abbr[title]) {
    cursor: help;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

:where(blockquote) {
    padding-left: var(--sbb-space-5);
    border-left: 4px solid var(--sbb-primary);
    color: var(--sbb-text-muted);
    font-size: var(--sbb-font-size-lg);
    line-height: var(--sbb-line-height-relaxed);
}

:where(.page-content, .entry-content) :where(a:not(.button):not([class])) {
    color: var(--sbb-primary);
    font-weight: 600;
    text-decoration-thickness: 1px;
}

:where(.page-content, .entry-content) :where(a:not(.button):not([class])):hover {
    color: var(--sbb-primary-dark);
    text-decoration-thickness: 2px;
}

:where(label, legend) {
    color: var(--sbb-text);
    font-weight: 700;
    line-height: 1.35;
}

:where(input, select, textarea, button) {
    font-family: var(--sbb-font-body);
}

::selection {
    background: rgba(212, 0, 0, 0.16);
    color: var(--sbb-text);
}

@media (max-width: 600px) {
    body {
        line-height: 1.6;
    }

    :where(h1, h2, h3, h4, h5, h6) {
        letter-spacing: -0.015em;
    }

    :where(
        .page-content,
        .entry-content,
        .stock-product-overview-content,
        .single-stock-description
    ) :where(p, ul, ol) {
        line-height: 1.65;
    }
}


/* ==========================================================
   2.2 SECTION HEADINGS
========================================================== */

/*
 * Consistent visual hierarchy for major sections.
 * Existing component-specific selectors remain free to override these rules.
 */

:where(
    .why-choose-us,
    .browse-furniture,
    .what-we-stock,
    .latest-stock,
    .testimonials,
    .current-stock-section,
    .related-stock,
    .wishlist-page,
    .compare-page,
    .contact-page,
    .find-us-page,
    .stock-product-overview,
    .stock-configurations,
    .stock-availability,
    .single-stock-description
) > :where(h2, .section-title) {
    margin: 0 0 var(--sbb-space-4);
    color: var(--sbb-text);
    font-size: clamp(30px, 3.5vw, 42px);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -0.025em;
    text-align: center;
}

:where(
    .why-choose-us,
    .browse-furniture,
    .what-we-stock,
    .latest-stock,
    .testimonials,
    .current-stock-section,
    .related-stock,
    .wishlist-page,
    .compare-page,
    .contact-page,
    .find-us-page
) > :where(p, .section-intro, .section-subtitle) {
    max-width: 760px;
    margin: 0 auto var(--sbb-space-8);
    color: var(--sbb-text-muted);
    font-size: var(--sbb-font-size-lg);
    line-height: var(--sbb-line-height-relaxed);
    text-align: center;
}

:where(
    .stock-product-overview-heading,
    .stock-configurations-heading,
    .stock-availability-heading,
    .single-stock-description-heading
) {
    margin-bottom: var(--sbb-space-5);
}

:where(
    .stock-product-overview-heading,
    .stock-configurations-heading,
    .stock-availability-heading,
    .single-stock-description-heading
) :where(h2, h3) {
    margin: 0;
    color: var(--sbb-text);
    font-size: clamp(25px, 3vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

:where(
    .stock-product-overview-eyebrow,
    .section-eyebrow,
    .section-kicker,
    .stock-configurations-eyebrow,
    .stock-availability-eyebrow
) {
    display: inline-flex;
    align-items: center;
    gap: var(--sbb-space-2);
    margin: 0 0 var(--sbb-space-2);
    color: var(--sbb-primary);
    font-size: var(--sbb-font-size-sm);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: var(--sbb-letter-spacing-label);
    text-transform: uppercase;
}

:where(
    .stock-product-overview-eyebrow,
    .section-eyebrow,
    .section-kicker,
    .stock-configurations-eyebrow,
    .stock-availability-eyebrow
)::before {
    content: "";
    width: 24px;
    height: 3px;
    flex: 0 0 auto;
    border-radius: var(--sbb-radius-pill);
    background: var(--sbb-primary);
}

:where(
    .stock-product-overview-heading,
    .stock-configurations-heading,
    .stock-availability-heading,
    .single-stock-description-heading
) :where(p, .section-subtitle) {
    max-width: 68ch;
    margin: var(--sbb-space-3) 0 0;
    color: var(--sbb-text-muted);
    font-size: var(--sbb-font-size-base);
    line-height: var(--sbb-line-height-body);
}

:where(
    .feature-card,
    .category-card,
    .stock-card,
    .testimonial-card,
    .contact-card,
    .showroom-card,
    .related-stock-card
) :where(h3, h4) {
    margin: 0 0 var(--sbb-space-2);
    color: var(--sbb-text);
    font-size: clamp(20px, 2vw, 24px);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.015em;
}

:where(
    .feature-card,
    .category-card,
    .stock-card,
    .testimonial-card,
    .contact-card,
    .showroom-card,
    .related-stock-card
) :where(h3, h4) a {
    color: inherit;
    text-decoration: none;
}

:where(
    .feature-card,
    .category-card,
    .stock-card,
    .testimonial-card,
    .contact-card,
    .showroom-card,
    .related-stock-card
) :where(h3, h4) a:hover {
    color: var(--sbb-primary);
}

:where(.page-header, .archive-header, .stock-page-header) {
    margin-bottom: var(--sbb-space-8);
    text-align: center;
}

:where(.page-header, .archive-header, .stock-page-header) :where(h1, .page-title) {
    margin: 0;
    color: var(--sbb-text);
    font-size: clamp(36px, 5vw, 54px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

:where(.page-header, .archive-header, .stock-page-header) :where(p, .page-intro) {
    max-width: 760px;
    margin: var(--sbb-space-4) auto 0;
    color: var(--sbb-text-muted);
    font-size: var(--sbb-font-size-lg);
    line-height: var(--sbb-line-height-relaxed);
}

@media (max-width: 768px) {
    :where(
        .why-choose-us,
        .browse-furniture,
        .what-we-stock,
        .latest-stock,
        .testimonials,
        .current-stock-section,
        .related-stock,
        .wishlist-page,
        .compare-page,
        .contact-page,
        .find-us-page,
        .stock-product-overview,
        .stock-configurations,
        .stock-availability,
        .single-stock-description
    ) > :where(h2, .section-title) {
        margin-bottom: var(--sbb-space-3);
    }

    :where(
        .why-choose-us,
        .browse-furniture,
        .what-we-stock,
        .latest-stock,
        .testimonials,
        .current-stock-section,
        .related-stock,
        .wishlist-page,
        .compare-page,
        .contact-page,
        .find-us-page
    ) > :where(p, .section-intro, .section-subtitle) {
        margin-bottom: var(--sbb-space-6);
        font-size: var(--sbb-font-size-base);
    }

    :where(.page-header, .archive-header, .stock-page-header) {
        margin-bottom: var(--sbb-space-6);
    }
}


/* ==========================================================
   3.1 GLOBAL VERTICAL RHYTHM
========================================================== */

/*
 * These rules use low specificity so established component-specific spacing
 * remains in control. They provide consistent defaults where no later rule
 * already defines the layout.
 */

/* Standard page-section spacing */
:where(
    .welcome,
    .features,
    .categories,
    .stock-categories,
    .testimonials,
    .latest-arrivals,
    .showroom-section,
    .related-stock,
    .contact-section,
    .find-us-section,
    .wishlist-section,
    .compare-section
) {
    padding-top: var(--sbb-section-space-desktop);
    padding-bottom: var(--sbb-section-space-desktop);
}

/* Standard page-shell spacing */
:where(
    .stock-page,
    .page-content,
    .single-stock-page,
    .wishlist-page,
    .compare-page,
    .contact-page,
    .find-us-page
) {
    padding-top: var(--sbb-page-top-space);
    padding-bottom: var(--sbb-page-bottom-space);
}

/* Keep the first and last child from adding accidental outer whitespace */
:where(
    .container,
    .page-content,
    .entry-content,
    .single-stock-details,
    .stock-product-overview-content,
    .single-stock-description
) > :first-child {
    margin-top: 0;
}

:where(
    .container,
    .page-content,
    .entry-content,
    .single-stock-details,
    .stock-product-overview-content,
    .single-stock-description
) > :last-child {
    margin-bottom: 0;
}

/* Consistent heading-to-content rhythm */
:where(
    .features,
    .categories,
    .stock-categories,
    .testimonials,
    .latest-arrivals,
    .related-stock,
    .current-stock-section
) > .container > :where(h2, .section-title):not(:last-child) {
    margin-bottom: var(--sbb-section-heading-gap);
}

/* Introductory copy should sit closer to its heading than to the content grid */
:where(
    .features,
    .categories,
    .stock-categories,
    .testimonials,
    .latest-arrivals,
    .related-stock,
    .current-stock-section
) > .container > :where(h2, .section-title) + :where(p, .section-intro, .section-subtitle) {
    margin-top: calc(var(--sbb-space-3) * -1);
    margin-bottom: var(--sbb-section-heading-gap);
}

/* Standard grid gaps where component CSS has not set a stronger value */
:where(
    .feature-grid,
    .category-grid,
    .testimonial-grid,
    .stock-products,
    .latest-stock-grid,
    .related-stock-grid,
    .wishlist-grid,
    .compare-grid
) {
    row-gap: var(--sbb-grid-gap);
    column-gap: var(--sbb-grid-gap);
}

/* Consistent vertical spacing inside common content panels */
:where(
    .feature-card,
    .testimonial-card,
    .contact-card,
    .showroom-details,
    .stock-product-content,
    .latest-stock-content,
    .single-stock-details,
    .stock-product-overview,
    .stock-configurations,
    .stock-availability,
    .single-stock-description
) > * + * {
    margin-top: var(--sbb-space-3);
}

/*
 * Explicit component margins remain authoritative. This only prevents
 * stacked zero-margin elements from appearing cramped.
 */
:where(
    .feature-card,
    .testimonial-card,
    .contact-card,
    .showroom-details,
    .stock-product-content,
    .latest-stock-content,
    .single-stock-details,
    .stock-product-overview,
    .stock-configurations,
    .stock-availability,
    .single-stock-description
) > :where(h1, h2, h3, h4, h5, h6) + :where(p, ul, ol, div) {
    margin-top: var(--sbb-space-3);
}

/* Consistent gaps for grouped controls and actions */
:where(
    .hero-buttons,
    .single-stock-actions,
    .stock-filters,
    .product-actions,
    .configuration-actions,
    .wishlist-actions,
    .compare-actions
) {
    gap: var(--sbb-space-4);
}

/* Prevent nested sections from inheriting full page-sized padding */
:where(
    .stock-detail-card,
    .stock-product-overview,
    .stock-configurations,
    .stock-availability,
    .single-stock-description,
    .contact-card,
    .showroom-details
) :where(section) {
    padding-top: 0;
    padding-bottom: 0;
}

@media (max-width: 1000px) {
    :where(
        .welcome,
        .features,
        .categories,
        .stock-categories,
        .testimonials,
        .latest-arrivals,
        .showroom-section,
        .related-stock,
        .contact-section,
        .find-us-section,
        .wishlist-section,
        .compare-section
    ) {
        padding-top: var(--sbb-section-space-tablet);
        padding-bottom: var(--sbb-section-space-tablet);
    }
}

@media (max-width: 600px) {
    :where(
        .welcome,
        .features,
        .categories,
        .stock-categories,
        .testimonials,
        .latest-arrivals,
        .showroom-section,
        .related-stock,
        .contact-section,
        .find-us-section,
        .wishlist-section,
        .compare-section
    ) {
        padding-top: var(--sbb-section-space-mobile);
        padding-bottom: var(--sbb-section-space-mobile);
    }

    :where(
        .stock-page,
        .page-content,
        .single-stock-page,
        .wishlist-page,
        .compare-page,
        .contact-page,
        .find-us-page
    ) {
        padding-top: var(--sbb-section-space-mobile);
        padding-bottom: var(--sbb-section-space-tablet);
    }

    :where(
        .features,
        .categories,
        .stock-categories,
        .testimonials,
        .latest-arrivals,
        .related-stock,
        .current-stock-section
    ) > .container > :where(h2, .section-title):not(:last-child) {
        margin-bottom: var(--sbb-section-heading-gap-mobile);
    }

    :where(
        .features,
        .categories,
        .stock-categories,
        .testimonials,
        .latest-arrivals,
        .related-stock,
        .current-stock-section
    ) > .container > :where(h2, .section-title) + :where(p, .section-intro, .section-subtitle) {
        margin-bottom: var(--sbb-section-heading-gap-mobile);
    }

    :where(
        .feature-grid,
        .category-grid,
        .testimonial-grid,
        .stock-products,
        .latest-stock-grid,
        .related-stock-grid,
        .wishlist-grid,
        .compare-grid
    ) {
        row-gap: var(--sbb-grid-gap-mobile);
        column-gap: var(--sbb-grid-gap-mobile);
    }

    :where(
        .hero-buttons,
        .single-stock-actions,
        .stock-filters,
        .product-actions,
        .configuration-actions,
        .wishlist-actions,
        .compare-actions
    ) {
        gap: var(--sbb-space-3);
    }
}


/* ==========================================================
   3.2 CONTAINER WIDTHS AND ALIGNMENT
========================================================== */

/*
 * Establishes a shared horizontal alignment system without overriding
 * intentionally narrower component layouts later in the stylesheet.
 */

/* Primary site container */
:where(.container) {
    width: min(
        calc(100% - (var(--sbb-container-gutter) * 2)),
        var(--sbb-container-wide)
    );
    max-width: var(--sbb-container-wide);
    margin-right: auto;
    margin-left: auto;
}

/* Standard-width layouts */
:where(
    .page-header,
    .archive-header,
    .stock-page-header,
    .current-stock-section > .container,
    .related-stock > .container,
    .wishlist-page > .container,
    .compare-page > .container,
    .contact-page > .container,
    .find-us-page > .container
) {
    max-width: var(--sbb-container-standard);
    margin-right: auto;
    margin-left: auto;
}

/* Reading and detail layouts */
:where(
    .entry-content,
    .page-content > .container,
    .single-stock-page > .container,
    .stock-product-overview,
    .stock-configurations,
    .stock-availability,
    .single-stock-description
) {
    width: 100%;
    max-width: var(--sbb-container-content);
    margin-right: auto;
    margin-left: auto;
}

/* Narrow editorial content */
:where(
    .entry-content > p,
    .entry-content > ul,
    .entry-content > ol,
    .entry-content > blockquote,
    .stock-product-overview-content,
    .single-stock-description > p,
    .single-stock-description > ul,
    .single-stock-description > ol
) {
    max-width: var(--sbb-container-narrow);
    margin-right: auto;
    margin-left: auto;
}

/* Keep wide grids aligned to the same page edges */
:where(
    .feature-grid,
    .category-grid,
    .stock-grid,
    .testimonial-grid,
    .stock-products,
    .latest-stock-grid,
    .showroom-grid,
    .related-stock-grid,
    .wishlist-grid,
    .compare-grid
) {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

/* Shared alignment for section headings and introductory text */
:where(
    .sbb-section-heading,
    .section-intro,
    .section-subtitle,
    .stock-page-intro,
    .page-intro
) {
    margin-right: auto;
    margin-left: auto;
}

/* Prevent full-width media from escaping its content area */
:where(
    .entry-content,
    .page-content,
    .stock-product-overview-content,
    .single-stock-description
) :where(img, video, iframe, figure) {
    max-width: 100%;
}

/* Consistent alignment for header and footer inner content */
:where(
    .site-header .header-inner,
    .footer-grid,
    .footer-bottom-inner
) {
    width: min(
        calc(100% - (var(--sbb-container-gutter) * 2)),
        var(--sbb-container-wide)
    );
    max-width: var(--sbb-container-wide);
    margin-right: auto;
    margin-left: auto;
}

/* Keep the product card centred within the product page shell */
:where(.single-stock-page .stock-detail-card) {
    margin-right: auto;
    margin-left: auto;
}

/* Avoid accidental horizontal overflow caused by full viewport widths */
:where(
    .single-stock-page,
    .stock-page,
    .page-content,
    .contact-page,
    .find-us-page,
    .wishlist-page,
    .compare-page
) {
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 1000px) {
    :where(.container) {
        width: calc(100% - (var(--sbb-container-gutter-tablet) * 2));
    }

    :where(
        .site-header .header-inner,
        .footer-grid,
        .footer-bottom-inner
    ) {
        width: calc(100% - (var(--sbb-container-gutter-tablet) * 2));
    }
}

@media (max-width: 600px) {
    :where(.container) {
        width: calc(100% - (var(--sbb-container-gutter-mobile) * 2));
    }

    :where(
        .site-header .header-inner,
        .footer-grid,
        .footer-bottom-inner
    ) {
        width: calc(100% - (var(--sbb-container-gutter-mobile) * 2));
    }

    :where(
        .entry-content,
        .page-content > .container,
        .single-stock-page > .container,
        .stock-product-overview,
        .stock-configurations,
        .stock-availability,
        .single-stock-description
    ) {
        max-width: 100%;
    }
}

/* ==========================================================
   3.3 INTERNAL CARD SPACING
========================================================== */

:root{
    --sbb-card-padding: 28px;
    --sbb-card-padding-lg: 36px;
    --sbb-card-padding-sm: 20px;
    --sbb-card-content-gap: 16px;
}

:where(
.feature-card,
.stock-card,
.stock-product-content,
.latest-stock-content,
.testimonial-card,
.contact-card,
.showroom-details,
.related-stock-card){
    padding:var(--sbb-card-padding);
}

:where(
.feature-card,
.stock-card,
.stock-product-content,
.latest-stock-content,
.testimonial-card,
.contact-card,
.showroom-details,
.related-stock-card)>*+*{
    margin-top:var(--sbb-card-content-gap);
}

:where(.stock-product-price,.latest-stock-price,.single-stock-price){
    margin-top:8px;
    margin-bottom:16px;
}

:where(.stock-view-button,.button,.single-stock-actions){
    margin-top:20px;
}

@media(max-width:600px){
:where(
.feature-card,
.stock-card,
.stock-product-content,
.latest-stock-content,
.testimonial-card,
.contact-card,
.showroom-details,
.related-stock-card){
padding:var(--sbb-card-padding-sm);
}
}


/* ==========================================================
   3.4 GRID SPACING
========================================================== */

:root {
    --sbb-grid-gap-xs: 12px;
    --sbb-grid-gap-sm: 16px;
    --sbb-grid-gap-md: 24px;
    --sbb-grid-gap-lg: 32px;
    --sbb-grid-gap-xl: 40px;
}

/* Standard card and product grids */
:where(
    .feature-grid,
    .category-grid,
    .stock-grid,
    .stock-products,
    .latest-stock-grid,
    .testimonial-grid,
    .showroom-grid,
    .related-stock-grid,
    .wishlist-grid,
    .compare-grid
) {
    gap: var(--sbb-grid-gap-lg);
    row-gap: var(--sbb-grid-gap-lg);
    column-gap: var(--sbb-grid-gap-lg);
}

/* Denser utility and filter groups */
:where(
    .stock-filter-grid,
    .stock-filters,
    .filter-options,
    .specifications-grid,
    .configuration-options,
    .stock-actions,
    .single-stock-actions,
    .compare-actions
) {
    gap: var(--sbb-grid-gap-md);
}

/* Wider visual grids */
:where(
    .what-we-stock-grid,
    .gallery-grid,
    .stock-gallery,
    .showroom-gallery
) {
    gap: var(--sbb-grid-gap-lg);
}

/* Small inline groups */
:where(
    .button-group,
    .action-group,
    .stock-card-actions,
    .wishlist-actions,
    .product-meta,
    .stock-meta
) {
    gap: var(--sbb-grid-gap-sm);
}

/* Prevent nested grids from inheriting excessive spacing */
:where(
    .feature-grid,
    .category-grid,
    .stock-grid,
    .stock-products,
    .latest-stock-grid,
    .testimonial-grid,
    .showroom-grid,
    .related-stock-grid,
    .wishlist-grid,
    .compare-grid
) :where(
    .button-group,
    .action-group,
    .stock-card-actions,
    .wishlist-actions,
    .product-meta,
    .stock-meta
) {
    gap: var(--sbb-grid-gap-sm);
}

@media (max-width: 1000px) {
    :where(
        .feature-grid,
        .category-grid,
        .stock-grid,
        .stock-products,
        .latest-stock-grid,
        .testimonial-grid,
        .showroom-grid,
        .related-stock-grid,
        .wishlist-grid,
        .compare-grid,
        .what-we-stock-grid,
        .gallery-grid,
        .stock-gallery,
        .showroom-gallery
    ) {
        gap: var(--sbb-grid-gap-md);
        row-gap: var(--sbb-grid-gap-md);
        column-gap: var(--sbb-grid-gap-md);
    }
}

@media (max-width: 600px) {
    :where(
        .feature-grid,
        .category-grid,
        .stock-grid,
        .stock-products,
        .latest-stock-grid,
        .testimonial-grid,
        .showroom-grid,
        .related-stock-grid,
        .wishlist-grid,
        .compare-grid,
        .what-we-stock-grid,
        .gallery-grid,
        .stock-gallery,
        .showroom-gallery
    ) {
        gap: var(--sbb-grid-gap-sm);
        row-gap: var(--sbb-grid-gap-sm);
        column-gap: var(--sbb-grid-gap-sm);
    }

    :where(
        .stock-filter-grid,
        .stock-filters,
        .filter-options,
        .specifications-grid,
        .configuration-options,
        .stock-actions,
        .single-stock-actions,
        .compare-actions
    ) {
        gap: var(--sbb-grid-gap-sm);
    }
}


/* ==========================================================
   3.5 FORM SPACING
========================================================== */

:root {
    --sbb-form-field-gap: 20px;
    --sbb-form-group-gap: 28px;
    --sbb-form-label-gap: 8px;
    --sbb-form-help-gap: 7px;
    --sbb-form-action-gap: 16px;
    --sbb-form-control-padding-y: 13px;
    --sbb-form-control-padding-x: 15px;
}

/* Shared spacing between form rows and field groups */
:where(
    form,
    .contact-form,
    .stock-search-form,
    .stock-filter-form,
    .sbb-form,
    .wpcf7-form
) :where(
    .form-row,
    .form-group,
    .field-group,
    .contact-form-field,
    .wpcf7-form-control-wrap
) {
    margin-bottom: var(--sbb-form-field-gap);
}

/* Labels */
:where(
    form,
    .contact-form,
    .stock-search-form,
    .stock-filter-form,
    .sbb-form,
    .wpcf7-form
) label {
    display: block;
    margin-bottom: var(--sbb-form-label-gap);
}

/* Inputs, selects and textareas */
:where(
    form,
    .contact-form,
    .stock-search-form,
    .stock-filter-form,
    .sbb-form,
    .wpcf7-form
) :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
    select,
    textarea
) {
    width: 100%;
    padding: var(--sbb-form-control-padding-y) var(--sbb-form-control-padding-x);
}

/* Textareas need slightly more breathing room */
:where(
    form,
    .contact-form,
    .sbb-form,
    .wpcf7-form
) textarea {
    min-height: 140px;
    resize: vertical;
}

/* Checkbox and radio groups */
:where(
    .checkbox-group,
    .radio-group,
    .filter-checkboxes,
    .filter-radios,
    .wpcf7-checkbox,
    .wpcf7-radio
) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
}

:where(
    .checkbox-group,
    .radio-group,
    .filter-checkboxes,
    .filter-radios,
    .wpcf7-checkbox,
    .wpcf7-radio
) label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0;
}

/* Supporting text and validation messaging */
:where(
    .form-help,
    .field-help,
    .form-description,
    .wpcf7-not-valid-tip
) {
    display: block;
    margin-top: var(--sbb-form-help-gap);
}

/* Form action rows */
:where(
    .form-actions,
    .contact-form-actions,
    .filter-actions,
    .search-actions,
    .wpcf7-form > p:last-of-type
) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sbb-form-action-gap);
    margin-top: var(--sbb-form-group-gap);
}

/* Search and filter controls should remain compact */
:where(
    .stock-search-form,
    .stock-filter-form,
    .stock-filters
) :where(
    .form-row,
    .form-group,
    .field-group
) {
    margin-bottom: 0;
}

/* Avoid excess spacing at the end of forms */
:where(
    form,
    .contact-form,
    .stock-search-form,
    .stock-filter-form,
    .sbb-form,
    .wpcf7-form
) > :last-child {
    margin-bottom: 0;
}

/* Contact Form 7 paragraph spacing */
:where(.wpcf7-form) > p {
    margin-bottom: var(--sbb-form-field-gap);
}

/* Status and response messages */
:where(
    .form-message,
    .form-success,
    .form-error,
    .wpcf7-response-output
) {
    margin-top: var(--sbb-form-group-gap);
}

/* Disabled fields retain readable spacing and appearance */
:where(
    form,
    .contact-form,
    .stock-search-form,
    .stock-filter-form,
    .sbb-form,
    .wpcf7-form
) :where(input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: 0.7;
}

@media (max-width: 600px) {
    :root {
        --sbb-form-field-gap: 16px;
        --sbb-form-group-gap: 22px;
        --sbb-form-action-gap: 12px;
        --sbb-form-control-padding-y: 12px;
        --sbb-form-control-padding-x: 13px;
    }

    :where(
        .form-actions,
        .contact-form-actions,
        .filter-actions,
        .search-actions,
        .wpcf7-form > p:last-of-type
    ) {
        align-items: stretch;
    }

    :where(
        .form-actions,
        .contact-form-actions,
        .filter-actions,
        .search-actions
    ) :where(button, .button, input[type="submit"]) {
        width: 100%;
    }

    :where(
        .checkbox-group,
        .radio-group,
        .filter-checkboxes,
        .filter-radios,
        .wpcf7-checkbox,
        .wpcf7-radio
    ) {
        gap: 10px 16px;
    }
}


/* ==========================================================
   3.6 MOBILE SPACING AUDIT
========================================================== */

/*
 * Final responsive spacing pass for phones and small tablets.
 * These rules use low-specificity selectors so existing component
 * styling remains in control wherever a deliberate exception exists.
 */

:root {
    --sbb-mobile-page-gutter: 20px;
    --sbb-mobile-section-space: 48px;
    --sbb-mobile-section-space-compact: 32px;
    --sbb-mobile-card-gap: 16px;
    --sbb-mobile-stack-gap: 14px;
    --sbb-mobile-action-gap: 12px;
}

/* Small tablets */
@media (max-width: 768px) {
    :where(
        main,
        .site-main,
        .page-content,
        .stock-page,
        .single-stock-page,
        .contact-page,
        .find-us-page,
        .wishlist-page,
        .compare-page
    ) {
        max-width: 100%;
    }

    :where(
        section,
        .homepage-section,
        .current-stock-section,
        .related-stock,
        .contact-section,
        .find-us-section
    ) {
        scroll-margin-top: 90px;
    }

    :where(
        .feature-grid,
        .category-grid,
        .stock-grid,
        .stock-products,
        .latest-stock-grid,
        .testimonial-grid,
        .showroom-grid,
        .related-stock-grid,
        .wishlist-grid,
        .compare-grid
    ) {
        align-items: stretch;
    }

    :where(
        .stock-card,
        .feature-card,
        .category-card,
        .testimonial-card,
        .related-stock-card,
        .contact-card
    ) {
        min-width: 0;
    }
}

/* Phones */
@media (max-width: 600px) {
    html {
        scroll-padding-top: 80px;
    }

    body {
        overflow-x: hidden;
    }

    :where(
        .container,
        .site-header .header-inner,
        .footer-grid,
        .footer-bottom-inner
    ) {
        width: calc(100% - (var(--sbb-mobile-page-gutter) * 2));
    }

    :where(
        .homepage-section,
        .current-stock-section,
        .related-stock,
        .contact-section,
        .find-us-section,
        .wishlist-section,
        .compare-section
    ) {
        padding-top: var(--sbb-mobile-section-space);
        padding-bottom: var(--sbb-mobile-section-space);
    }

    :where(
        .homepage-section.is-compact,
        .current-stock-section.is-compact,
        .related-stock.is-compact,
        .contact-section.is-compact,
        .find-us-section.is-compact
    ) {
        padding-top: var(--sbb-mobile-section-space-compact);
        padding-bottom: var(--sbb-mobile-section-space-compact);
    }

    :where(
        .page-header,
        .archive-header,
        .stock-page-header,
        .sbb-section-heading,
        .section-heading
    ) {
        margin-bottom: 24px;
    }

    :where(
        .feature-grid,
        .category-grid,
        .stock-grid,
        .stock-products,
        .latest-stock-grid,
        .testimonial-grid,
        .showroom-grid,
        .related-stock-grid,
        .wishlist-grid,
        .compare-grid
    ) {
        gap: var(--sbb-mobile-card-gap);
    }

    :where(
        .feature-card,
        .stock-card,
        .stock-product-content,
        .latest-stock-content,
        .testimonial-card,
        .contact-card,
        .showroom-details,
        .related-stock-card
    ) > * + * {
        margin-top: var(--sbb-mobile-stack-gap);
    }

    :where(
        .button-group,
        .action-group,
        .stock-card-actions,
        .wishlist-actions,
        .single-stock-actions,
        .compare-actions,
        .filter-actions,
        .search-actions
    ) {
        gap: var(--sbb-mobile-action-gap);
    }

    :where(
        .button-group,
        .action-group,
        .stock-card-actions,
        .wishlist-actions,
        .single-stock-actions,
        .compare-actions
    ) {
        flex-wrap: wrap;
    }

    :where(
        .stock-card-actions,
        .wishlist-actions,
        .single-stock-actions,
        .compare-actions
    ) :where(
        .button,
        button,
        input[type="submit"],
        input[type="button"]
    ) {
        max-width: 100%;
    }

    :where(
        .stock-product-title,
        .latest-stock-title,
        .related-stock-title,
        .card-title
    ) {
        overflow-wrap: anywhere;
    }

    :where(
        .stock-product-price,
        .latest-stock-price,
        .single-stock-price
    ) {
        margin-top: 6px;
        margin-bottom: 14px;
    }

    :where(
        .stock-filters,
        .stock-filter-grid,
        .filter-options,
        .configuration-options,
        .specifications-grid
    ) {
        gap: 14px;
    }

    :where(
        .entry-content,
        .stock-product-overview-content,
        .single-stock-description
    ) :where(
        p,
        ul,
        ol,
        blockquote
    ) {
        max-width: 100%;
    }

    :where(
        img,
        video,
        iframe,
        canvas,
        svg
    ) {
        max-width: 100%;
    }

    :where(
        table
    ) {
        max-width: 100%;
    }

    :where(
        .table-wrap,
        .comparison-table-wrap,
        .specifications-table-wrap
    ) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    :where(
        input,
        select,
        textarea,
        button
    ) {
        max-width: 100%;
    }

    /* Prevent iOS form zoom while retaining accessible control sizes */
    :where(
        input:not([type="checkbox"]):not([type="radio"]),
        select,
        textarea
    ) {
        font-size: 16px;
    }
}

/* Very small phones */
@media (max-width: 380px) {
    :root {
        --sbb-mobile-page-gutter: 16px;
        --sbb-mobile-section-space: 40px;
        --sbb-mobile-section-space-compact: 28px;
        --sbb-mobile-card-gap: 14px;
        --sbb-mobile-stack-gap: 12px;
    }

    :where(
        .feature-card,
        .stock-card,
        .stock-product-content,
        .latest-stock-content,
        .testimonial-card,
        .contact-card,
        .showroom-details,
        .related-stock-card
    ) {
        padding: 18px;
    }

    :where(
        .page-header,
        .archive-header,
        .stock-page-header,
        .sbb-section-heading,
        .section-heading
    ) {
        margin-bottom: 20px;
    }
}


/* ==========================================================
   PHASE 2 — STEP 4.1
   PREMIUM PRODUCT GALLERY
========================================================== */

:root {
    --sbb-gallery-radius: var(--sbb-radius-large, 22px);
    --sbb-gallery-thumb-radius: var(--sbb-radius-medium, 14px);
    --sbb-gallery-gap: 14px;
    --sbb-gallery-thumb-size: 92px;
    --sbb-gallery-active-ring: 3px;
    --sbb-gallery-background: #f6f6f6;
}

/* Main gallery shell */
:where(
    .single-stock-gallery,
    .stock-gallery,
    .product-gallery,
    .single-product-gallery
) {
    display: grid;
    gap: var(--sbb-gallery-gap);
    min-width: 0;
}

/* Main image frame */
:where(
    .stock-main-image,
    .product-main-image,
    .single-stock-main-image,
    .gallery-main-image
) {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 3;
    background: var(--sbb-gallery-background);
    border-radius: var(--sbb-gallery-radius);
    box-shadow: var(--sbb-shadow-soft, 0 12px 30px rgba(0, 0, 0, 0.08));
}

/* Main image */
:where(
    .stock-main-image,
    .product-main-image,
    .single-stock-main-image,
    .gallery-main-image
) :where(img, picture) {
    display: block;
    width: 100%;
    height: 100%;
}

:where(
    .stock-main-image,
    .product-main-image,
    .single-stock-main-image,
    .gallery-main-image
) img {
    object-fit: cover;
    object-position: center;
    transition:
        transform var(--sbb-transition-medium, 280ms ease),
        filter var(--sbb-transition-medium, 280ms ease);
}

/* Gentle premium hover treatment */
@media (hover: hover) {
    :where(
        .stock-main-image,
        .product-main-image,
        .single-stock-main-image,
        .gallery-main-image
    ):hover img {
        transform: scale(1.025);
    }
}

/* Click-to-enlarge affordance */
:where(
    .stock-main-image,
    .product-main-image,
    .single-stock-main-image,
    .gallery-main-image,
    .stock-lightbox-trigger,
    .product-lightbox-trigger
) {
    cursor: zoom-in;
}

/* Optional zoom badge */
:where(
    .stock-gallery-zoom,
    .product-gallery-zoom,
    .gallery-zoom-label
) {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 9px 13px;
    color: #111;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 999px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

/* Thumbnail rail */
:where(
    .stock-gallery-thumbnails,
    .product-gallery-thumbnails,
    .gallery-thumbnails,
    .single-stock-thumbnails
) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--sbb-gallery-thumb-size)), 1fr));
    gap: var(--sbb-gallery-gap);
    width: 100%;
}

/* Thumbnail buttons and wrappers */
:where(
    .stock-gallery-thumbnail,
    .product-gallery-thumbnail,
    .gallery-thumbnail,
    .single-stock-thumbnail
) {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 0;
    background: var(--sbb-gallery-background);
    border: 2px solid transparent;
    border-radius: var(--sbb-gallery-thumb-radius);
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.07);
    cursor: pointer;
    transition:
        transform var(--sbb-transition-fast, 180ms ease),
        border-color var(--sbb-transition-fast, 180ms ease),
        box-shadow var(--sbb-transition-fast, 180ms ease),
        opacity var(--sbb-transition-fast, 180ms ease);
}

/* Thumbnail images */
:where(
    .stock-gallery-thumbnail,
    .product-gallery-thumbnail,
    .gallery-thumbnail,
    .single-stock-thumbnail
) img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Hover and keyboard focus */
@media (hover: hover) {
    :where(
        .stock-gallery-thumbnail,
        .product-gallery-thumbnail,
        .gallery-thumbnail,
        .single-stock-thumbnail
    ):hover {
        transform: translateY(-2px);
        box-shadow: 0 9px 22px rgba(0, 0, 0, 0.11);
    }
}

:where(
    .stock-gallery-thumbnail,
    .product-gallery-thumbnail,
    .gallery-thumbnail,
    .single-stock-thumbnail
):focus-visible {
    outline: 3px solid rgba(212, 0, 0, 0.28);
    outline-offset: 3px;
}

/* Active thumbnail */
:where(
    .stock-gallery-thumbnail.is-active,
    .stock-gallery-thumbnail.active,
    .product-gallery-thumbnail.is-active,
    .product-gallery-thumbnail.active,
    .gallery-thumbnail.is-active,
    .gallery-thumbnail.active,
    .single-stock-thumbnail.is-active,
    .single-stock-thumbnail.active,
    [aria-current="true"].stock-gallery-thumbnail,
    [aria-current="true"].product-gallery-thumbnail,
    [aria-selected="true"].gallery-thumbnail
) {
    border-color: var(--sbb-red, #d40000);
    box-shadow:
        0 0 0 var(--sbb-gallery-active-ring) rgba(212, 0, 0, 0.12),
        0 8px 22px rgba(0, 0, 0, 0.1);
}

/* Gallery navigation arrows */
:where(
    .stock-gallery-prev,
    .stock-gallery-next,
    .product-gallery-prev,
    .product-gallery-next,
    .gallery-prev,
    .gallery-next
) {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    color: #111;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 50%;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
    transform: translateY(-50%);
    transition:
        transform var(--sbb-transition-fast, 180ms ease),
        background-color var(--sbb-transition-fast, 180ms ease),
        box-shadow var(--sbb-transition-fast, 180ms ease);
    cursor: pointer;
}

:where(
    .stock-gallery-prev,
    .product-gallery-prev,
    .gallery-prev
) {
    left: 16px;
}

:where(
    .stock-gallery-next,
    .product-gallery-next,
    .gallery-next
) {
    right: 16px;
}

@media (hover: hover) {
    :where(
        .stock-gallery-prev,
        .stock-gallery-next,
        .product-gallery-prev,
        .product-gallery-next,
        .gallery-prev,
        .gallery-next
    ):hover {
        background: #fff;
        box-shadow: 0 11px 28px rgba(0, 0, 0, 0.18);
    }

    :where(
        .stock-gallery-prev,
        .product-gallery-prev,
        .gallery-prev
    ):hover {
        transform: translate(-2px, -50%);
    }

    :where(
        .stock-gallery-next,
        .product-gallery-next,
        .gallery-next
    ):hover {
        transform: translate(2px, -50%);
    }
}

/* Image counter */
:where(
    .stock-gallery-count,
    .product-gallery-count,
    .gallery-image-count
) {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 11px;
    color: #fff;
    background: rgba(0, 0, 0, 0.68);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/* Lightbox shell */
:where(
    .stock-lightbox,
    .product-lightbox,
    .gallery-lightbox
) {
    padding: 28px;
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Lightbox image */
:where(
    .stock-lightbox,
    .product-lightbox,
    .gallery-lightbox
) img {
    max-width: min(94vw, 1500px);
    max-height: 88vh;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.5);
}

/* Lightbox controls */
:where(
    .stock-lightbox-close,
    .product-lightbox-close,
    .gallery-lightbox-close,
    .stock-lightbox-prev,
    .stock-lightbox-next,
    .product-lightbox-prev,
    .product-lightbox-next
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    transition:
        background-color var(--sbb-transition-fast, 180ms ease),
        transform var(--sbb-transition-fast, 180ms ease);
}

@media (hover: hover) {
    :where(
        .stock-lightbox-close,
        .product-lightbox-close,
        .gallery-lightbox-close,
        .stock-lightbox-prev,
        .stock-lightbox-next,
        .product-lightbox-prev,
        .product-lightbox-next
    ):hover {
        background: rgba(255, 255, 255, 0.22);
        transform: scale(1.05);
    }
}

/* Product layout relationship */
:where(
    .single-stock-layout,
    .single-product-layout,
    .stock-detail-grid
) {
    align-items: start;
}

/* Tablet */
@media (max-width: 900px) {
    :root {
        --sbb-gallery-thumb-size: 78px;
        --sbb-gallery-gap: 12px;
    }

    :where(
        .stock-gallery-thumbnails,
        .product-gallery-thumbnails,
        .gallery-thumbnails,
        .single-stock-thumbnails
    ) {
        grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
    }
}

/* Phones */
@media (max-width: 600px) {
    :root {
        --sbb-gallery-gap: 10px;
        --sbb-gallery-thumb-size: 70px;
    }

    :where(
        .stock-main-image,
        .product-main-image,
        .single-stock-main-image,
        .gallery-main-image
    ) {
        aspect-ratio: 1 / 1;
        border-radius: 16px;
    }

    :where(
        .stock-gallery-thumbnails,
        .product-gallery-thumbnails,
        .gallery-thumbnails,
        .single-stock-thumbnails
    ) {
        display: flex;
        gap: var(--sbb-gallery-gap);
        overflow-x: auto;
        padding: 2px 2px 8px;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    :where(
        .stock-gallery-thumbnail,
        .product-gallery-thumbnail,
        .gallery-thumbnail,
        .single-stock-thumbnail
    ) {
        flex: 0 0 var(--sbb-gallery-thumb-size);
        width: var(--sbb-gallery-thumb-size);
        scroll-snap-align: start;
        border-radius: 12px;
    }

    :where(
        .stock-gallery-prev,
        .stock-gallery-next,
        .product-gallery-prev,
        .product-gallery-next,
        .gallery-prev,
        .gallery-next
    ) {
        width: 40px;
        height: 40px;
    }

    :where(
        .stock-gallery-prev,
        .product-gallery-prev,
        .gallery-prev
    ) {
        left: 10px;
    }

    :where(
        .stock-gallery-next,
        .product-gallery-next,
        .gallery-next
    ) {
        right: 10px;
    }

    :where(
        .stock-gallery-zoom,
        .product-gallery-zoom,
        .gallery-zoom-label
    ) {
        right: 10px;
        bottom: 10px;
        min-height: 38px;
        padding: 8px 11px;
        font-size: 0.78rem;
    }

    :where(
        .stock-gallery-count,
        .product-gallery-count,
        .gallery-image-count
    ) {
        top: 10px;
        right: 10px;
    }

    :where(
        .stock-lightbox,
        .product-lightbox,
        .gallery-lightbox
    ) {
        padding: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :where(
        .stock-main-image,
        .product-main-image,
        .single-stock-main-image,
        .gallery-main-image
    ) img,
    :where(
        .stock-gallery-thumbnail,
        .product-gallery-thumbnail,
        .gallery-thumbnail,
        .single-stock-thumbnail,
        .stock-gallery-prev,
        .stock-gallery-next,
        .product-gallery-prev,
        .product-gallery-next,
        .gallery-prev,
        .gallery-next
    ) {
        transition: none;
    }
}


/* ==========================================================
   PHASE 2 — STEP 4.2
   PREMIUM PRODUCT INFORMATION
========================================================== */
:root{
 --sbb-price-size:clamp(2rem,3vw,2.8rem);
 --sbb-price-color:#d40000;
 --sbb-info-gap:28px;
 --sbb-badge-radius:999px;
}

:where(.single-stock-summary,.product-summary,.stock-product-info){
 display:grid;
 gap:var(--sbb-info-gap);
 align-content:start;
}

:where(.single-stock-title,.product_title,.stock-product-title){
 line-height:1.15;
 letter-spacing:-0.02em;
 margin:0;
}

:where(.single-stock-price,.price,.stock-price){
 font-size:var(--sbb-price-size);
 font-weight:800;
 color:var(--sbb-price-color);
 line-height:1;
 margin:.25rem 0;
}

:where(.stock-price-prefix,.price-prefix){
 display:block;
 font-size:.9rem;
 font-weight:600;
 text-transform:uppercase;
 letter-spacing:.08em;
 color:#666;
 margin-bottom:.4rem;
}

:where(.availability-badge,.stock-availability-badge,.product-status){
 display:inline-flex;
 align-items:center;
 gap:.5rem;
 padding:.55rem .95rem;
 border-radius:var(--sbb-badge-radius);
 font-weight:700;
 background:#eef7ee;
 color:#226b2d;
 width:max-content;
}

:where(.stock-configurations,.configuration-options){
 display:grid;
 gap:18px;
}

:where(.stock-specifications,.specifications-grid){
 border-top:1px solid rgba(0,0,0,.08);
 padding-top:24px;
}

:where(.single-stock-actions,.product-actions){
 display:flex;
 flex-wrap:wrap;
 gap:16px;
 padding-top:8px;
}

:where(.single-stock-actions) .button,
:where(.product-actions) .button{
 min-height:48px;
}

@media(max-width:600px){
 :root{--sbb-info-gap:22px;}
 :where(.single-stock-price,.price,.stock-price){
   font-size:clamp(1.8rem,8vw,2.3rem);
 }
 :where(.single-stock-actions,.product-actions){
   flex-direction:column;
 }
 :where(.single-stock-actions) .button,
 :where(.product-actions) .button{
   width:100%;
 }
}


/* ==========================================================
   PHASE 2 — STEP 4.3
   PREMIUM PRODUCT CARDS
========================================================== */

:root {
    --sbb-product-card-radius: 20px;
    --sbb-product-card-image-radius: 16px;
    --sbb-product-card-padding: 18px;
    --sbb-product-card-gap: 16px;
    --sbb-product-card-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    --sbb-product-card-shadow-hover: 0 20px 44px rgba(0, 0, 0, 0.13);
    --sbb-product-card-border: 1px solid rgba(0, 0, 0, 0.07);
    --sbb-product-card-image-ratio: 4 / 3;
}

/* Shared product-card shell */
:where(
    .stock-card,
    .stock-product-card,
    .latest-stock-card,
    .related-stock-card,
    .wishlist-item,
    .wishlist-card,
    .compare-item,
    .compare-card,
    .search-result-card
) {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: var(--sbb-product-card-border);
    border-radius: var(--sbb-product-card-radius);
    box-shadow: var(--sbb-product-card-shadow);
    transition:
        transform var(--sbb-transition-medium, 280ms ease),
        box-shadow var(--sbb-transition-medium, 280ms ease),
        border-color var(--sbb-transition-medium, 280ms ease);
}

/* Premium hover lift */
@media (hover: hover) {
    :where(
        .stock-card,
        .stock-product-card,
        .latest-stock-card,
        .related-stock-card,
        .wishlist-item,
        .wishlist-card,
        .compare-item,
        .compare-card,
        .search-result-card
    ):hover {
        transform: translateY(-5px);
        border-color: rgba(212, 0, 0, 0.14);
        box-shadow: var(--sbb-product-card-shadow-hover);
    }
}

/* Image wrappers */
:where(
    .stock-card-image,
    .stock-product-image,
    .latest-stock-image,
    .related-stock-image,
    .wishlist-item-image,
    .wishlist-card-image,
    .compare-item-image,
    .compare-card-image,
    .search-result-image
) {
    position: relative;
    overflow: hidden;
    width: calc(100% - (var(--sbb-product-card-padding) * 2));
    aspect-ratio: var(--sbb-product-card-image-ratio);
    margin: var(--sbb-product-card-padding) var(--sbb-product-card-padding) 0;
    background: #f4f4f4;
    border-radius: var(--sbb-product-card-image-radius);
}

/* Card images */
:where(
    .stock-card-image,
    .stock-product-image,
    .latest-stock-image,
    .related-stock-image,
    .wishlist-item-image,
    .wishlist-card-image,
    .compare-item-image,
    .compare-card-image,
    .search-result-image
) :where(img, picture) {
    display: block;
    width: 100%;
    height: 100%;
}

:where(
    .stock-card-image,
    .stock-product-image,
    .latest-stock-image,
    .related-stock-image,
    .wishlist-item-image,
    .wishlist-card-image,
    .compare-item-image,
    .compare-card-image,
    .search-result-image
) img {
    object-fit: cover;
    object-position: center;
    transition:
        transform var(--sbb-transition-medium, 280ms ease),
        filter var(--sbb-transition-medium, 280ms ease);
}

@media (hover: hover) {
    :where(
        .stock-card,
        .stock-product-card,
        .latest-stock-card,
        .related-stock-card,
        .wishlist-item,
        .wishlist-card,
        .compare-item,
        .compare-card,
        .search-result-card
    ):hover :where(
        .stock-card-image,
        .stock-product-image,
        .latest-stock-image,
        .related-stock-image,
        .wishlist-item-image,
        .wishlist-card-image,
        .compare-item-image,
        .compare-card-image,
        .search-result-image
    ) img {
        transform: scale(1.045);
    }
}

/* Card content */
:where(
    .stock-card-content,
    .stock-product-content,
    .latest-stock-content,
    .related-stock-content,
    .wishlist-item-content,
    .wishlist-card-content,
    .compare-item-content,
    .compare-card-content,
    .search-result-content
) {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--sbb-product-card-gap);
    padding: var(--sbb-product-card-padding);
}

/* Product titles */
:where(
    .stock-card-title,
    .stock-product-title,
    .latest-stock-title,
    .related-stock-title,
    .wishlist-item-title,
    .wishlist-card-title,
    .compare-item-title,
    .compare-card-title,
    .search-result-title
) {
    margin: 0;
    font-size: clamp(1.08rem, 1.5vw, 1.3rem);
    line-height: 1.25;
    letter-spacing: -0.015em;
    overflow-wrap: anywhere;
}

:where(
    .stock-card-title,
    .stock-product-title,
    .latest-stock-title,
    .related-stock-title,
    .wishlist-item-title,
    .wishlist-card-title,
    .compare-item-title,
    .compare-card-title,
    .search-result-title
) a {
    color: inherit;
    text-decoration: none;
}

/* Price styling */
:where(
    .stock-card-price,
    .stock-product-price,
    .latest-stock-price,
    .related-stock-price,
    .wishlist-item-price,
    .wishlist-card-price,
    .compare-item-price,
    .compare-card-price,
    .search-result-price
) {
    margin: 0;
    color: var(--sbb-red, #d40000);
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    font-weight: 800;
    line-height: 1.1;
}

/* Descriptions and metadata */
:where(
    .stock-card-description,
    .stock-product-description,
    .latest-stock-description,
    .related-stock-description,
    .wishlist-item-description,
    .compare-item-description,
    .search-result-description,
    .stock-card-meta,
    .stock-product-meta,
    .latest-stock-meta,
    .related-stock-meta
) {
    color: #666;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Availability and category badges */
:where(
    .stock-card-badge,
    .stock-product-badge,
    .latest-stock-badge,
    .related-stock-badge,
    .wishlist-item-badge,
    .compare-item-badge,
    .search-result-badge,
    .stock-category-badge
) {
    display: inline-flex;
    align-items: center;
    width: max-content;
    max-width: 100%;
    min-height: 30px;
    padding: 6px 10px;
    color: #555;
    background: #f2f2f2;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1;
}

/* Badges positioned over images */
:where(
    .stock-card-image,
    .stock-product-image,
    .latest-stock-image,
    .related-stock-image,
    .wishlist-item-image,
    .compare-item-image
) > :where(
    .stock-card-badge,
    .stock-product-badge,
    .latest-stock-badge,
    .related-stock-badge,
    .wishlist-item-badge,
    .compare-item-badge,
    .stock-category-badge
) {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

/* Wishlist and compare controls */
:where(
    .stock-card-wishlist,
    .stock-card-compare,
    .wishlist-toggle,
    .compare-toggle,
    .product-card-icon-button
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.11);
    transition:
        transform var(--sbb-transition-fast, 180ms ease),
        background-color var(--sbb-transition-fast, 180ms ease),
        border-color var(--sbb-transition-fast, 180ms ease);
}

@media (hover: hover) {
    :where(
        .stock-card-wishlist,
        .stock-card-compare,
        .wishlist-toggle,
        .compare-toggle,
        .product-card-icon-button
    ):hover {
        transform: translateY(-2px);
        background: #fff;
        border-color: rgba(212, 0, 0, 0.25);
    }
}

/* Card action rows */
:where(
    .stock-card-actions,
    .stock-product-actions,
    .latest-stock-actions,
    .related-stock-actions,
    .wishlist-item-actions,
    .wishlist-card-actions,
    .compare-item-actions,
    .compare-card-actions,
    .search-result-actions
) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: auto;
    padding-top: 4px;
}

/* Main card buttons */
:where(
    .stock-card-actions,
    .stock-product-actions,
    .latest-stock-actions,
    .related-stock-actions,
    .wishlist-item-actions,
    .wishlist-card-actions,
    .compare-item-actions,
    .compare-card-actions,
    .search-result-actions
) :where(
    .button,
    button,
    a
) {
    min-height: 44px;
}

/* Keep primary card action visually dominant */
:where(
    .stock-view-button,
    .view-stock-button,
    .latest-stock-button,
    .related-stock-button,
    .search-result-button
) {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
}

/* Empty image fallback */
:where(
    .stock-card-no-image,
    .stock-product-no-image,
    .latest-stock-no-image,
    .related-stock-no-image,
    .wishlist-item-no-image,
    .compare-item-no-image
) {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    color: #777;
    background:
        linear-gradient(135deg, rgba(212, 0, 0, 0.04), rgba(0, 0, 0, 0.03));
    text-align: center;
}

/* Keyboard accessibility */
:where(
    .stock-card,
    .stock-product-card,
    .latest-stock-card,
    .related-stock-card,
    .wishlist-item,
    .wishlist-card,
    .compare-item,
    .compare-card,
    .search-result-card
):focus-within {
    border-color: rgba(212, 0, 0, 0.3);
    box-shadow:
        0 0 0 4px rgba(212, 0, 0, 0.08),
        var(--sbb-product-card-shadow);
}

/* Tablet */
@media (max-width: 900px) {
    :root {
        --sbb-product-card-padding: 16px;
        --sbb-product-card-gap: 14px;
    }
}

/* Phones */
@media (max-width: 600px) {
    :root {
        --sbb-product-card-radius: 16px;
        --sbb-product-card-image-radius: 13px;
        --sbb-product-card-padding: 14px;
        --sbb-product-card-gap: 12px;
    }

    :where(
        .stock-card-actions,
        .stock-product-actions,
        .latest-stock-actions,
        .related-stock-actions,
        .wishlist-item-actions,
        .wishlist-card-actions,
        .compare-item-actions,
        .compare-card-actions,
        .search-result-actions
    ) {
        flex-direction: column;
    }

    :where(
        .stock-card-actions,
        .stock-product-actions,
        .latest-stock-actions,
        .related-stock-actions,
        .wishlist-item-actions,
        .wishlist-card-actions,
        .compare-item-actions,
        .compare-card-actions,
        .search-result-actions
    ) :where(
        .button,
        button,
        a
    ) {
        width: 100%;
    }

    :where(
        .stock-card-wishlist,
        .stock-card-compare,
        .wishlist-toggle,
        .compare-toggle,
        .product-card-icon-button
    ) {
        width: 40px;
        height: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :where(
        .stock-card,
        .stock-product-card,
        .latest-stock-card,
        .related-stock-card,
        .wishlist-item,
        .wishlist-card,
        .compare-item,
        .compare-card,
        .search-result-card
    ),
    :where(
        .stock-card-image,
        .stock-product-image,
        .latest-stock-image,
        .related-stock-image,
        .wishlist-item-image,
        .wishlist-card-image,
        .compare-item-image,
        .compare-card-image,
        .search-result-image
    ) img,
    :where(
        .stock-card-wishlist,
        .stock-card-compare,
        .wishlist-toggle,
        .compare-toggle,
        .product-card-icon-button
    ) {
        transition: none;
    }
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:var(--sbb-font-body);
    background:var(--sbb-background);
    color:var(--sbb-text);
}

html {
    scroll-behavior: smooth;
}

body {
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    text-underline-offset: 3px;
}

.container{
    width:90%;
    max-width:1300px;
    margin:auto;
}

.site-header{
    background:var(--sbb-surface);
    position:sticky;
    top:0;
    z-index:999;
    box-shadow:0 2px 15px rgba(0,0,0,.08);
}

.header-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    height:85px;
}

.site-title a{
    text-decoration:none;
    color:var(--sbb-primary);
    font-size:40px;
    font-weight:800;
}

.main-navigation ul{
    display:flex;
    list-style:none;
    gap:35px;
}

.main-navigation a{
    text-decoration:none;
    color:var(--sbb-text);
    font-weight:600;
    transition:.3s;
}

.main-navigation a:hover{
    color:var(--sbb-primary);
}

.header-phone a{
    text-decoration:none;
    background:var(--sbb-primary);
    color:white;
    padding:12px 20px;
    border-radius:6px;
    font-weight:bold;
}

/* HERO */

.hero{
    background:var(--sbb-surface);
    padding:30px 0 0;
}

.hero-content{
    max-width:850px;
    margin-bottom:25px;
}

.hero-content h1{
    font-size:58px;
    line-height:1.1;
    margin-bottom:12px;
}

.hero-content p{
    font-size:24px;
    color:#555;
    margin-bottom:25px;
}

.hero-buttons{
    display:flex;
    gap:20px;
    margin-bottom:30px;
}

.hero img{
    width:100%;
    display:block;
    border-radius:8px;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

.button{
    display:inline-block;
    background:var(--sbb-primary);
    color:var(--sbb-surface);
    text-decoration:none;
    padding:16px 34px;
    border-radius:6px;
    font-weight:700;
    transition:.3s;
}

.button:hover{
    background:#b60000;
}

.button.secondary{
    background:var(--sbb-surface);
    color:var(--sbb-primary);
    border:2px solid var(--sbb-primary);
}

.button.secondary:hover{
    background:var(--sbb-primary);
    color:var(--sbb-surface);
}

.welcome{
    background:var(--sbb-surface);
    padding:70px 0;
}

.welcome h2{
    font-size:38px;
    margin-bottom:20px;
}

.welcome p{
    font-size:20px;
    line-height:1.8;
    color:#555;
}

/* ==========================
   WHY CHOOSE US
========================== */

.features{
    background:var(--sbb-background);
    padding:80px 0;
}

.features h2{
    text-align:center;
    font-size:40px;
    margin-bottom:50px;
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.feature-card{
    background:var(--sbb-surface);
    padding:35px 25px;
    border-radius:12px;
    text-align:center;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    transition:transform .25s ease, box-shadow .25s ease;
}

.feature-card:hover{
    transform:translateY(-8px);
    box-shadow:0 15px 30px rgba(0,0,0,.15);
}

.feature-icon{
    font-size:48px;
    margin-bottom:20px;
}

.feature-card h3{
    margin-bottom:15px;
    color:var(--sbb-primary);
    font-size:24px;
}

.feature-card p{
    color:var(--sbb-text-muted);
    line-height:1.6;
}

/* ==========================
   CATEGORIES
========================== */

.categories{
    background:var(--sbb-surface);
    padding:90px 0;
}

.categories h2{
    text-align:center;
    font-size:40px;
    margin-bottom:50px;
}

.category-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

.category-card{
    display:flex;
    align-items:center;
    justify-content:center;

    width:100%;
    height:220px;

    background-color:var(--sbb-primary);
    color:var(--sbb-surface);

    text-decoration:none;

    border-radius:12px;

    font-size:28px;
    font-weight:700;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:all .3s ease;
}

.category-card:visited{
    background-color:var(--sbb-primary);
    color:var(--sbb-surface);
}

.category-card:hover{
    background-color:var(--sbb-primary-dark);
    color:var(--sbb-surface);
    transform:translateY(-8px);
    box-shadow:0 15px 30px rgba(0,0,0,.18);
}

/* ===========================
   WHAT WE STOCK
=========================== */

.stock-categories{
    padding:80px 0;
    background:var(--sbb-background);
}

.stock-categories h2{
    text-align:center;
    font-size:42px;
    margin-bottom:15px;
}

.section-intro{
    text-align:center;
    font-size:20px;
    color:var(--sbb-text-muted);
    max-width:800px;
    margin:0 auto 50px;
}

.stock-grid{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:40px;
}

.stock-card{
    width:350px;
}

.stock-card{
    background:var(--sbb-surface);
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    transition:.3s;
}

.stock-card:hover{
    transform:translateY(-8px);
}

.stock-card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.stock-card h3{
    padding:20px 20px 10px;
    font-size:24px;
}

.stock-card p{
    padding:0 20px 25px;
    color:var(--sbb-text-muted);
    line-height:1.6;
}

/* ==========================
   TESTIMONIALS
========================== */

.testimonials{
    background:var(--sbb-surface);
    padding:90px 0;
}

.testimonials h2{
    text-align:center;
    font-size:42px;
    margin-bottom:50px;
}

.testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.testimonial-card{
    background:var(--sbb-background);
    padding:35px;
    border-radius:12px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    transition:.3s;
}

.testimonial-card:hover{
    transform:translateY(-8px);
}

.stars{
    color:#f5b400;
    font-size:28px;
    margin-bottom:20px;
}

.testimonial-card p{
    color:#555;
    line-height:1.8;
    margin-bottom:25px;
    font-size:18px;
}

.testimonial-card h4{
    color:var(--sbb-primary);
    font-size:20px;
}

/* ==========================
   CTA BANNER
========================== */

.cta-banner{
    background:linear-gradient(135deg,var(--sbb-primary),var(--sbb-primary-dark));
    color:var(--sbb-surface);
    text-align:center;
    padding:130px 20px;
}

.cta-banner .container{
    max-width:950px;
    margin:0 auto;
}

.cta-banner h2{
    font-size:clamp(52px,6vw,82px);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:2px;
    line-height:1.1;
    margin-bottom:20px;
}

.cta-banner h2::after{
    content:"";
    display:block;
    width:180px;
    height:5px;
    background:var(--sbb-surface);
    margin:25px auto 0;
    border-radius:3px;
}

.cta-banner p{
    font-size:28px;
    line-height:1.7;
    max-width:800px;
    margin:45px auto;
    font-weight:300;
}

.cta-banner .button{
    display:inline-block;
    background:var(--sbb-surface);
    color:var(--sbb-primary);
    padding:20px 50px;
    border-radius:8px;
    text-decoration:none;
    font-size:22px;
    font-weight:700;
    transition:.3s;
}

.cta-banner .button:hover{
    background:var(--sbb-text);
    color:var(--sbb-surface);
    transform:translateY(-3px);
}

/* ==========================
   CURRENT STOCK PAGE
========================== */

.stock-page{
    background:var(--sbb-background);
    padding:70px 0 90px;
    min-height:600px;
}

.stock-page-title{
    text-align:center;
    font-size:48px;
    margin-bottom:15px;
}

.stock-page-intro{
    text-align:center;
    font-size:20px;
    color:var(--sbb-text-muted);
    max-width:800px;
    margin:0 auto 50px;
}

.stock-products{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.stock-product{
    background:var(--sbb-surface);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.10);
    transition:transform .25s ease, box-shadow .25s ease;
}

.stock-product:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.stock-product-image{
    width:100%;
    height:280px;
    overflow:hidden;
    background:#eee;
}

.stock-product-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.stock-product-content{
    padding:25px;
}

.stock-product-content h2{
    font-size:25px;
    margin-bottom:12px;
}

.stock-product-price{
    color:var(--sbb-primary);
    font-size:24px;
    font-weight:800;
    margin-bottom:15px;
}

.stock-product-description{
    color:var(--sbb-text-muted);
    line-height:1.6;
}

.no-stock{
    background:var(--sbb-surface);
    text-align:center;
    padding:60px 30px;
    border-radius:12px;
    box-shadow:0 8px 25px rgba(0,0,0,.08);
}

.no-stock h2{
    font-size:32px;
    margin-bottom:15px;
}

.no-stock p{
    color:var(--sbb-text-muted);
    font-size:18px;
}


/* MOBILE */

@media (max-width:900px){

    .stock-products{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width:600px){

    .stock-products{
        grid-template-columns:1fr;
    }

    .stock-page-title{
        font-size:38px;
    }

}

/* ==========================
   STOCK PRODUCT CARDS
========================== */

.stock-products{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.stock-product{
    background:var(--sbb-surface);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.10);
    transition:transform .25s ease, box-shadow .25s ease;
}

.stock-product:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 35px rgba(0,0,0,.16);
}

.stock-product-image{
    display:block;
    width:100%;
    height:300px;
    overflow:hidden;
    background:#eee;
}

.stock-product-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .3s ease;
}

.stock-product:hover .stock-product-image img{
    transform:scale(1.04);
}

.stock-product-content{
    padding:25px;
}

.stock-product-content h2{
    font-size:25px;
    margin-bottom:12px;
}

.stock-product-content h2 a{
    color:var(--sbb-text);
    text-decoration:none;
}

.stock-product-content h2 a:hover{
    color:var(--sbb-primary);
}

.stock-product-price{
    color:var(--sbb-primary);
    font-size:26px;
    font-weight:800;
    margin-bottom:12px;
}

.stock-product-availability{
    display:inline-block;
    background:#e8f7e8;
    color:#217a21;
    padding:7px 12px;
    border-radius:20px;
    font-size:14px;
    font-weight:700;
    margin-bottom:20px;
}

.stock-view-button{
    display:block;
    text-align:center;
    background:var(--sbb-primary);
    color:var(--sbb-surface);
    text-decoration:none;
    padding:13px 20px;
    border-radius:6px;
    font-weight:700;
    transition:.3s;
}

.stock-view-button:hover{
    background:var(--sbb-primary-dark);
    color:var(--sbb-surface);
}


/* ==========================
   STOCK PAGE MOBILE
========================== */

@media (max-width:900px){

    .stock-products{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width:600px){

    .stock-products{
        grid-template-columns:1fr;
    }

    .stock-product-image{
        height:260px;
    }

}

/* ==========================
   SINGLE STOCK ITEM
========================== */

.single-stock-page{
    width:100%;
    background:var(--sbb-background);
    padding:80px 0 100px;
}

.single-stock-page .container{
    width:90%;
    max-width:1300px;
    margin:0 auto;
}

.stock-detail-card{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
    gap:60px;
    align-items:start;
    background:var(--sbb-surface);
    padding:40px;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.single-stock-image{
    width:100%;
    overflow:hidden;
    background:#eee;
    border-radius:10px;
}

.single-stock-image img{
    width:100%;
    height:auto;
    display:block;
}

.single-stock-details{
    width:100%;
    padding:20px 0;
}

.single-stock-details h1{
    font-size:46px;
    line-height:1.15;
    margin:0 0 20px;
    color:var(--sbb-text);
}

.single-stock-price{
    color:var(--sbb-primary);
    font-size:34px;
    font-weight:800;
    margin-bottom:15px;
}

.single-stock-availability{
    display:inline-block;
    background:#e8f7e8;
    color:#217a21;
    padding:8px 15px;
    border-radius:20px;
    font-size:15px;
    font-weight:700;
    margin-bottom:30px;
}

.single-stock-description{
    color:#555;
    font-size:18px;
    line-height:1.8;
    margin-bottom:35px;
}

.single-stock-actions{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

.single-stock-actions .button{
    display:inline-block;
}


/* ==========================
   SINGLE STOCK MOBILE
========================== */

@media (max-width:800px){

    .stock-detail-card{
        grid-template-columns:1fr;
        gap:30px;
        padding:25px;
    }

    .single-stock-details h1{
        font-size:36px;
    }

}

/* ==========================================
   FIX SINGLE STOCK PAGE LAYOUT
========================================== */

/* Keep the normal website header layout */
.site-header .header-inner{
    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
    width:90% !important;
    max-width:1300px !important;
    height:85px !important;
    margin:0 auto !important;
}

.site-header .site-branding{
    display:block !important;
}

.site-header .main-navigation{
    display:block !important;
}

.site-header .main-navigation ul{
    display:flex !important;
    flex-direction:row !important;
    gap:35px !important;
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
}

.site-header .header-phone{
    display:block !important;
}


/* ==========================================
   SINGLE PRODUCT - VERTICAL LAYOUT
========================================== */

.single-stock-page{
    width:100% !important;
    background:var(--sbb-background) !important;
    padding:70px 0 100px !important;
}

.single-stock-page .container{
    width:90% !important;
    max-width:1000px !important;
    margin:0 auto !important;
}

.stock-detail-card{
    display:block !important;
    width:100% !important;
    background:var(--sbb-surface) !important;
    padding:40px !important;
    border-radius:14px !important;
    box-shadow:0 10px 30px rgba(0,0,0,.10) !important;
}

.single-stock-image{
    display:block !important;
    width:100% !important;
    max-width:900px !important;
    margin:0 auto 40px !important;
    background:#eee !important;
    border-radius:10px !important;
    overflow:hidden !important;
}

.single-stock-image img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
}

.single-stock-details{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    padding:0 !important;
}

.single-stock-details h1{
    font-size:48px !important;
    line-height:1.2 !important;
    margin:0 0 15px !important;
    color:var(--sbb-text) !important;
}

.single-stock-price{
    color:var(--sbb-primary) !important;
    font-size:36px !important;
    font-weight:800 !important;
    margin-bottom:15px !important;
}

.single-stock-availability{
    display:inline-block !important;
    background:#e8f7e8 !important;
    color:#217a21 !important;
    padding:8px 15px !important;
    border-radius:20px !important;
    font-size:15px !important;
    font-weight:700 !important;
    margin-bottom:30px !important;
}

.single-stock-description{
    width:100% !important;
    max-width:750px !important;
    margin:0 auto 35px !important;
    color:#555 !important;
    font-size:18px !important;
    line-height:1.8 !important;
}

.single-stock-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:15px !important;
    flex-wrap:wrap !important;
}


/* MOBILE */

@media (max-width:800px){

    .site-header .header-inner{
        height:auto !important;
        min-height:85px !important;
        flex-wrap:wrap !important;
        gap:15px !important;
        padding:15px 0 !important;
    }

    .site-header .main-navigation ul{
        gap:15px !important;
        flex-wrap:wrap !important;
    }

    .stock-detail-card{
        padding:25px !important;
    }

    .single-stock-details h1{
        font-size:36px !important;
    }

}

/* ==========================================
   FINAL FIX - SINGLE STOCK PAGE FULL WIDTH
========================================== */

.single-stock-page{
    display:block !important;
    width:100vw !important;
    max-width:none !important;
    margin:0 !important;
    padding:70px 0 100px !important;
}

.single-stock-page > .container{
    display:block !important;
    width:90% !important;
    max-width:1300px !important;
    margin:0 auto !important;
}

/* Product card */
.single-stock-page .stock-detail-card{
    display:block !important;
    width:100% !important;
    max-width:1000px !important;
    margin:0 auto !important;
}

/* Product image */
.single-stock-page .single-stock-image{
    width:100% !important;
    max-width:900px !important;
    margin:0 auto 40px !important;
}

/* Product details underneath image */
.single-stock-page .single-stock-details{
    width:100% !important;
    text-align:center !important;
}

/* Header MUST span entire page */
.site-header{
    width:100% !important;
}

.site-header .header-inner{
    width:90% !important;
    max-width:1300px !important;
    margin:0 auto !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
}

/* Stop header elements becoming columns */
.site-header .site-branding,
.site-header .main-navigation,
.site-header .header-phone{
    flex:none !important;
}

.site-header .main-navigation ul{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
}

/* ==========================
   STOCK CATEGORY FILTERS
========================== */

.stock-filters{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:45px;
}

.stock-filters a{
    background:var(--sbb-surface);
    color:var(--sbb-primary);
    border:2px solid var(--sbb-primary);
    border-radius:6px;
    padding:12px 24px;
    text-decoration:none;
    font-weight:700;
    transition:.25s ease;
}

.stock-filters a:hover,
.stock-filters a.active{
    background:var(--sbb-primary);
    color:var(--sbb-surface);
}

.page-content{
    min-height:600px;
    padding:70px 0 90px;
    background:var(--sbb-background);
}

.page-content h1{
    font-size:48px;
    margin-bottom:30px;
}

.entry-content{
    font-size:18px;
    line-height:1.8;
}

/* ==========================
   LATEST ARRIVALS
========================== */

.latest-arrivals{
    background:var(--sbb-surface);
    padding:90px 0;
}

.latest-arrivals h2{
    text-align:center;
    font-size:42px;
    margin-bottom:15px;
}

.latest-stock-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:40px;
}

.latest-stock-card{
    background:var(--sbb-background);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.10);
    transition:transform .25s ease, box-shadow .25s ease;
}

.latest-stock-card:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.latest-stock-image{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:340px;
    overflow:hidden;
    background:#f5f5f5;
}

.latest-stock-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
    transition:transform .35s ease;
}

.latest-stock-card:hover .latest-stock-image img{
    transform:scale(1.04);
}

.latest-stock-content{
    padding:25px;
}

.latest-stock-content h3{
    font-size:34px;
    line-height:1.2;
    margin-bottom:18px;
    font-weight:800;
}
.latest-stock-content h3 a{
    color:var(--sbb-text);
    text-decoration:none;
}

.latest-stock-content h3 a:hover{
    color:var(--sbb-primary);
}

.latest-stock-price{
    color:var(--sbb-primary);
    font-size:38px;
    font-weight:900;
    margin-bottom:20px;
}

.latest-stock-availability{
    display:inline-block;
    background:#e8f7e8;
    color:#217a21;
    padding:7px 12px;
    border-radius:20px;
    font-size:14px;
    font-weight:700;
    margin-bottom:20px;
}

.latest-stock-link{
    text-align:center;
    margin-top:45px;
}

@media (max-width:900px){

    .latest-stock-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width:600px){

    .latest-stock-grid{
        grid-template-columns:1fr;
    }

    .latest-stock-image{
        height:260px;
    }

}
/* ==========================
   VISIT OUR SHOWROOM
========================== */

.showroom-section{
    background:var(--sbb-background);
    padding:90px 0;
}

.showroom-grid{
    display:grid;
    grid-template-columns:1fr 1.15fr;
    gap:50px;
    align-items:stretch;
}

.showroom-details,
.showroom-map{
    background:var(--sbb-surface);
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.showroom-details{
    padding:45px;
}

.showroom-details h2{
    font-size:44px;
    margin-bottom:18px;
}

.showroom-intro{
    color:var(--sbb-text-muted);
    font-size:19px;
    line-height:1.7;
    margin-bottom:30px;
}

.showroom-contact{
    display:grid;
    gap:20px;
    margin-bottom:35px;
}

.showroom-contact p{
    color:#555;
    font-size:17px;
    line-height:1.6;
}

.showroom-contact strong{
    color:var(--sbb-text);
    font-size:19px;
}

.showroom-contact a{
    color:var(--sbb-primary);
    text-decoration:none;
    font-weight:700;
}

.opening-hours{
    margin-bottom:35px;
}

.opening-hours h3{
    font-size:25px;
    margin-bottom:18px;
}

.hours-row{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 0;
    border-bottom:1px solid var(--sbb-border);
}

.showroom-map{
    min-height:560px;
    overflow:hidden;
}

.showroom-map iframe{
    display:block;
    min-height:560px;
}

@media (max-width:850px){

    .showroom-grid{
        grid-template-columns:1fr;
    }

    .showroom-map,
    .showroom-map iframe{
        min-height:420px;
    }

}

@media (max-width:600px){

    .showroom-details{
        padding:30px 22px;
    }

    .showroom-details h2{
        font-size:36px;
    }

    .hours-row{
        flex-direction:column;
        gap:5px;
    }

}

/* ==========================
   PROFESSIONAL FOOTER
========================== */

.site-footer{
    width:100%;
    margin:0;
    background:#202020;
    color:var(--sbb-surface);
}

.footer-grid{
    display:grid;
    grid-template-columns:1.35fr .8fr 1fr 1.15fr;
    gap:55px;
    padding-top:75px;
    padding-bottom:65px;
}

.footer-column h2{
    color:var(--sbb-surface);
    font-size:30px;
    line-height:1.15;
    margin-bottom:20px;
}

.footer-column h3{
    color:var(--sbb-surface);
    font-size:21px;
    margin-bottom:22px;
}

.footer-column p,
.footer-column address{
    color:#cfcfcf;
    font-size:16px;
    line-height:1.7;
}

.footer-column address{
    font-style:normal;
    margin-bottom:18px;
}

.footer-about p{
    max-width:360px;
    margin-bottom:24px;
}

.footer-phone,
.footer-email,
.footer-directions{
    display:inline-block;
    color:var(--sbb-surface);
    text-decoration:none;
    font-weight:700;
    transition:color .25s ease;
}

.footer-phone{
    color:var(--sbb-surface);
    background:var(--sbb-primary);
    padding:13px 20px;
    border-radius:6px;
}

.footer-phone:hover{
    background:var(--sbb-primary-dark);
}

.footer-email{
    margin-top:22px;
    overflow-wrap:anywhere;
}

.footer-email:hover,
.footer-directions:hover{
    color:#ff4040;
}

.footer-links{
    list-style:none;
}

.footer-links li{
    margin-bottom:13px;
}

.footer-links a{
    color:#cfcfcf;
    text-decoration:none;
    font-weight:600;
    transition:color .25s ease;
}

.footer-links a:hover{
    color:var(--sbb-surface);
}

.footer-directions{
    color:#ff4040;
}

.footer-hours{
    display:grid;
    gap:12px;
}

.footer-hours p{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-bottom:10px;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.footer-hours strong{
    color:var(--sbb-surface);
    white-space:nowrap;
}

.footer-bottom{
    background:#151515;
    border-top:1px solid rgba(255,255,255,.1);
}

.footer-bottom-inner{
    min-height:70px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
}

.footer-bottom p{
    color:#aaa;
    font-size:14px;
}


/* FOOTER TABLET */

@media (max-width:1000px){

    .footer-grid{
        grid-template-columns:repeat(2,1fr);
        gap:45px;
    }

}


/* FOOTER MOBILE */

@media (max-width:650px){

    .footer-grid{
        grid-template-columns:1fr;
        gap:38px;
        padding-top:55px;
        padding-bottom:50px;
    }

    .footer-bottom-inner{
        min-height:auto;
        flex-direction:column;
        align-items:flex-start;
        padding-top:22px;
        padding-bottom:22px;
        gap:8px;
    }

    .footer-hours p{
        max-width:380px;
    }

}

/* ==========================
   CONTACT PAGE
========================== */

.contact-page{
    background:var(--sbb-background);
}

.contact-hero{
    background:linear-gradient(135deg,var(--sbb-primary),var(--sbb-primary-dark));
    color:var(--sbb-surface);
    text-align:center;
    padding:85px 20px;
}

.contact-hero h1{
    font-size:52px;
    line-height:1.15;
    margin-bottom:18px;
}

.contact-hero p{
    max-width:780px;
    margin:0 auto;
    font-size:21px;
    line-height:1.7;
}

.contact-main{
    padding:80px 0 100px;
}

.contact-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:45px;
    align-items:start;
}

.contact-information,
.contact-form-card{
    background:var(--sbb-surface);
    padding:42px;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.contact-information h2,
.contact-form-card h2{
    font-size:34px;
    margin-bottom:16px;
}

.contact-intro,
.contact-form-card > p{
    color:var(--sbb-text-muted);
    font-size:17px;
    line-height:1.7;
    margin-bottom:30px;
}

.contact-method{
    padding:20px 0;
    border-bottom:1px solid #e6e6e6;
}

.contact-method h3,
.contact-hours h3{
    font-size:20px;
    margin-bottom:8px;
}

.contact-method a{
    color:var(--sbb-primary);
    text-decoration:none;
    font-size:18px;
    font-weight:700;
    overflow-wrap:anywhere;
}

.contact-method address{
    color:#555;
    font-size:17px;
    line-height:1.6;
    font-style:normal;
}

.contact-hours{
    margin:28px 0 32px;
}

.contact-hours-row{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:12px 0;
    border-bottom:1px solid #e6e6e6;
}

.contact-form{
    margin-top:30px;
}

/* WPForms */

.contact-form .wpforms-container{
    margin:0;
}

.contact-form .wpforms-field{
    padding:0 0 20px;
}

.contact-form .wpforms-field-label{
    font-size:16px;
    margin-bottom:8px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea,
.contact-form select{
    width:100% !important;
    max-width:none !important;
    border:1px solid #ccc !important;
    border-radius:6px !important;
    padding:13px 14px !important;
    font:inherit !important;
    background:var(--sbb-surface) !important;
}

.contact-form textarea{
    min-height:170px;
    resize:vertical;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{
    border-color:var(--sbb-primary) !important;
    box-shadow:0 0 0 3px rgba(212,0,0,.10) !important;
    outline:none !important;
}

.contact-form button[type="submit"]{
    width:100% !important;
    min-height:52px !important;
    background:var(--sbb-primary) !important;
    color:var(--sbb-surface) !important;
    border:0 !important;
    border-radius:6px !important;
    font-size:17px !important;
    font-weight:700 !important;
    cursor:pointer !important;
}

.contact-form button[type="submit"]:hover{
    background:var(--sbb-primary-dark) !important;
}


/* CONTACT TABLET */

@media (max-width:900px){

    .contact-grid{
        grid-template-columns:1fr;
    }

}


/* CONTACT MOBILE */

@media (max-width:600px){

    .contact-hero{
        padding:65px 20px;
    }

    .contact-hero h1{
        font-size:39px;
    }

    .contact-hero p{
        font-size:18px;
    }

    .contact-main{
        padding:55px 0 75px;
    }

    .contact-information,
    .contact-form-card{
        padding:30px 22px;
    }

    .contact-hours-row{
        flex-direction:column;
        gap:5px;
    }

}

/* ==========================================
   SINGLE STOCK PRODUCT GALLERY
========================================== */

.stock-product-gallery {
    min-width: 0;
}

.stock-main-image-button {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    cursor: zoom-in;
    background: #f5f5f5;
    border: 0;
    border-radius: 12px;
}

.stock-main-image-button img {
    display: block;
    width: 100%;
    height: 520px;
    object-fit: contain;
    background: #f5f5f5;
}

.stock-image-zoom-message {
    position: absolute;
    right: 15px;
    bottom: 15px;
    padding: 8px 12px;
    color: var(--sbb-surface);
    font-size: 14px;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.72);
    border-radius: 5px;
}

.stock-gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(5, minmax(70px, 1fr));
    gap: 10px;
    margin-top: 15px;
}

.stock-gallery-thumbnail {
    display: block;
    padding: 3px;
    overflow: hidden;
    cursor: pointer;
    background: var(--sbb-surface);
    border: 2px solid transparent;
    border-radius: 8px;
}

.stock-gallery-thumbnail:hover,
.stock-gallery-thumbnail:focus {
    border-color: #777777;
}

.stock-gallery-thumbnail.is-active {
    border-color: var(--sbb-primary);
}

.stock-gallery-thumbnail img {
    display: block;
    width: 100%;
    height: 85px;
    object-fit: cover;
    border-radius: 4px;
}

.stock-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    padding: 30px;
    color: var(--sbb-text-muted);
    font-size: 18px;
    text-align: center;
    background: #f3f3f3;
    border-radius: 12px;
}

/* ==========================================
   PRODUCT LIGHTBOX
========================================== */

.stock-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 60px 80px;
    background: rgba(0, 0, 0, 0.94);
}

.stock-lightbox.is-open {
    display: flex;
}

.stock-lightbox-content {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.stock-lightbox-content img {
    display: block;
    max-width: 100%;
    max-height: 88vh;
    object-fit: contain;
}

.stock-lightbox-close,
.stock-lightbox-previous,
.stock-lightbox-next {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--sbb-surface);
    cursor: pointer;
    background: rgba(0, 0, 0, 0.5);
    border: 0;
    border-radius: 50%;
}

.stock-lightbox-close:hover,
.stock-lightbox-previous:hover,
.stock-lightbox-next:hover,
.stock-lightbox-close:focus,
.stock-lightbox-previous:focus,
.stock-lightbox-next:focus {
    background: var(--sbb-primary);
}

.stock-lightbox-close {
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    font-size: 38px;
    line-height: 1;
}

.stock-lightbox-previous,
.stock-lightbox-next {
    top: 50%;
    width: 50px;
    height: 50px;
    font-size: 28px;
    transform: translateY(-50%);
}

.stock-lightbox-previous {
    left: 20px;
}

.stock-lightbox-next {
    right: 20px;
}

body.stock-lightbox-open {
    overflow: hidden;
}

/* ==========================================
   MOBILE PRODUCT GALLERY
========================================== */

@media (max-width: 800px) {

    .stock-main-image-button img {
        height: 380px;
    }

    .stock-gallery-thumbnails {
        grid-template-columns: repeat(4, minmax(60px, 1fr));
    }

    .stock-gallery-thumbnail img {
        height: 70px;
    }

    .stock-lightbox {
        padding: 70px 15px;
    }

    .stock-lightbox-previous,
    .stock-lightbox-next {
        top: auto;
        bottom: 15px;
        transform: none;
    }

    .stock-lightbox-previous {
        left: calc(50% - 65px);
    }

    .stock-lightbox-next {
        right: calc(50% - 65px);
    }

}

@media (max-width: 480px) {

    .stock-main-image-button img {
        height: 300px;
    }

    .stock-image-zoom-message {
        right: 10px;
        bottom: 10px;
        font-size: 12px;
    }

    .stock-gallery-thumbnails {
        grid-template-columns: repeat(3, minmax(60px, 1fr));
    }

}

/* ==========================================
   PRODUCT ENQUIRY
========================================== */

.single-stock-actions .stock-enquiry-button {
    background: var(--sbb-primary);
    color: var(--sbb-surface);
    border: 2px solid var(--sbb-primary);
}

.single-stock-actions .stock-enquiry-button:hover,
.single-stock-actions .stock-enquiry-button:focus {
    background: var(--sbb-primary-deep);
    border-color: var(--sbb-primary-deep);
    color: var(--sbb-surface);
}

.product-enquiry-notice {
    max-width: 700px;
    margin: 20px auto;
    padding: 16px 20px;
    color: var(--sbb-text);
    font-size: 17px;
    text-align: center;
    background: var(--sbb-surface)4f4;
    border-left: 5px solid var(--sbb-primary);
    border-radius: 6px;
}

/* ==========================================
   RELATED STOCK PRODUCTS
========================================== */

.related-stock-section {
    margin-top: 60px;
    padding-top: 45px;
    border-top: 1px solid #dddddd;
}

.related-stock-heading {
    margin-bottom: 30px;
    text-align: center;
}

.related-stock-heading h2 {
    margin: 0 0 10px;
    color: var(--sbb-primary);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.15;
}

.related-stock-heading p {
    max-width: 650px;
    margin: 0 auto;
    color: #555555;
    font-size: 18px;
    line-height: 1.6;
}

.related-stock-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 25px;
}

.related-stock-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--sbb-surface);
    border: 1px solid #e1e1e1;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.related-stock-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.13);
}

.related-stock-image {
    display: block;
    overflow: hidden;
    background: #f3f3f3;
}

.related-stock-image img {
    display: block;
    width: 100%;
    height: 245px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.related-stock-card:hover .related-stock-image img {
    transform: scale(1.04);
}

.related-stock-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 245px;
    padding: 20px;
    color: var(--sbb-text-muted);
    text-align: center;
}

.related-stock-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 22px;
}

.related-stock-content h3 {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.3;
}

.related-stock-content h3 a {
    color: var(--sbb-text);
    text-decoration: none;
}

.related-stock-content h3 a:hover,
.related-stock-content h3 a:focus {
    color: var(--sbb-primary);
}

.related-stock-price {
    margin-bottom: 10px;
    color: var(--sbb-primary);
    font-size: 25px;
    font-weight: 800;
}

.related-stock-availability {
    display: inline-block;
    margin-bottom: 18px;
    padding: 6px 10px;
    color: #245b2d;
    font-size: 14px;
    font-weight: 700;
    background: #e8f7ea;
    border-radius: 4px;
}

.related-stock-button {
    margin-top: auto;
}

@media (max-width: 900px) {

    .related-stock-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 600px) {

    .related-stock-section {
        margin-top: 40px;
        padding-top: 35px;
    }

    .related-stock-grid {
        grid-template-columns: 1fr;
    }

    .related-stock-image img,
    .related-stock-placeholder {
        height: 260px;
    }

}

/* ==========================================
   STOCK BADGES
========================================== */

.stock-product {
    position: relative;
}

.stock-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    z-index: 10;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: auto;
    padding: 8px 14px;

    color: var(--sbb-surface);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.5px;
    text-transform: uppercase;

    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
}

.stock-badge-new {
    background: var(--sbb-primary);
}

.stock-badge-sale {
    background: #b00020;
}

.stock-badge-clearance {
    color: var(--sbb-text);
    background: #ffd400;
}

.stock-badge-featured {
    background: #333333;
}

.stock-badge::before {
    margin-right: 6px;
}

.stock-badge-new::before {
    content: "★";
}

.stock-badge-sale::before {
    content: "£";
}

.stock-badge-clearance::before {
    content: "!";
}

.stock-badge-featured::before {
    content: "◆";
}

/* ==========================================
   Product Specifications
========================================== */

.stock-specifications {
    margin: 40px 0;
}

.stock-specifications h2 {
    text-align: center;
    font-size: 2rem;
    margin-bottom: 30px;
}

.stock-specifications-list {
    max-width: 700px;
    margin: 0 auto;
    border: 1px solid var(--sbb-border);
    border-radius: 10px;
    overflow: hidden;
}

.stock-specification-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 24px;
    border-bottom: 1px solid #eee;
}

.stock-specification-row:last-child {
    border-bottom: none;
}

.stock-specification-row:nth-child(even) {
    background: #f8f8f8;
}

.stock-specification-row dt {
    font-weight: 700;
    color: var(--sbb-text);
    margin: 0;
}

.stock-specification-row dd {
    margin: 0;
    color: var(--sbb-text-muted);
    font-weight: 500;
    text-align: right;
}

/* ==========================================
   Product Highlights
========================================== */

.stock-highlights {
    max-width: 700px;
    margin: 25px auto 35px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.stock-highlight {
    background: #eef9f0;
    border: 1px solid #b8dfc1;
    border-radius: 8px;
    padding: 14px 18px;
    text-align: center;
    font-size: 1.1rem;
    color: #1f5f2d;
    font-weight: 600;
}

/* Dynamic product availability */

.stock-highlight.is-in-stock,
.stock-highlight.is-delivery {
    background: #eef9f0;
    border-color: #b8dfc1;
    color: #1f5f2d;
}

.stock-highlight.is-reserved {
    background: var(--sbb-surface)8e5;
    border-color: #ead18a;
    color: #795c00;
}

.stock-highlight.is-sold {
    background: var(--sbb-surface)0f0;
    border-color: #e4aaaa;
    color: #9b1c1c;
}

/* ==========================================
   CURRENT STOCK FILTER PANEL
========================================== */

.stock-filter-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    gap: 20px;
    align-items: end;
    margin: 0 auto 18px;
    padding: 28px;
    background: var(--sbb-surface);
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.stock-filter-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stock-filter-field label {
    color: var(--sbb-text);
    font-size: 15px;
    font-weight: 700;
}

.stock-filter-field select {
    width: 100%;
    min-height: 50px;
    padding: 0 42px 0 14px;
    color: #333333;
    font: inherit;
    font-size: 16px;
    background: var(--sbb-surface);
    border: 1px solid #cccccc;
    border-radius: 7px;
    cursor: pointer;
}

.stock-filter-field select:focus {
    border-color: var(--sbb-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(212, 0, 0, 0.10);
}

.stock-filter-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 175px;
}

.stock-filter-submit {
    width: 100%;
    min-height: 50px;
    padding: 12px 22px;
    border: 0;
    cursor: pointer;
    font-size: 16px;
}

.stock-filter-clear {
    display: block;
    color: var(--sbb-primary);
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.stock-filter-clear:hover,
.stock-filter-clear:focus {
    color: var(--sbb-primary-deep);
    text-decoration: underline;
}

.stock-results-summary {
    margin: 0 0 28px;
    color: #555555;
    font-size: 16px;
    font-weight: 700;
    text-align: right;
}

@media (max-width: 1000px) {

    .stock-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stock-filter-actions {
        min-width: 0;
    }

}

@media (max-width: 650px) {

    .stock-filter-form {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 22px 18px;
    }

    .stock-filter-actions {
        width: 100%;
    }

    .stock-results-summary {
        text-align: center;
    }

}

/* ==========================================
   STOCK CARD SPECIFICATIONS
========================================== */

.stock-card-specifications {
    margin: 18px 0;
    padding: 14px;
    background: #f8f8f8;
    border: 1px solid #ececec;
    border-radius: 10px;
}

.stock-card-specification {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 15px;
}

.stock-card-specification:not(:last-child) {
    border-bottom: 1px solid #e8e8e8;
}

.stock-card-specification-icon {
    width: 22px;
    text-align: center;
    font-size: 16px;
}

.stock-card-specification-label {
    color: var(--sbb-text-muted);
    min-width: 80px;
}

.stock-card-specification-value {
    color: var(--sbb-text);
    margin-left: auto;
    font-weight: 700;
}

/* ==========================================
   STOCK CARD SPECIFICATIONS - 2 X 2 GRID
========================================== */

.stock-card-specifications {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 20px;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.stock-card-specification {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    grid-template-areas:
        "icon label"
        "icon value";
    column-gap: 8px;
    row-gap: 2px;
    align-items: center;
    min-height: 64px;
    padding: 10px 12px;
    background: #f8f8f8;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    font-size: 14px;
}

.stock-card-specification:not(:last-child) {
    border-bottom: 1px solid #e8e8e8;
}

.stock-card-specification-icon {
    grid-area: icon;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-height: 38px;
    color: var(--sbb-primary);
    font-size: 19px;
    text-align: center;
}

.stock-card-specification-label {
    grid-area: label;
    min-width: 0;
    color: #777777;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.stock-card-specification-value {
    grid-area: value;
    margin-left: 0;
    color: var(--sbb-text);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

/* MOBILE PRODUCT COMPARISON CARDS */

@media (max-width: 420px) {

    .stock-card-specifications {
        grid-template-columns: 1fr;
    }

    .stock-card-specification {
        min-height: 58px;
    }

}

/*==================================================
SORT PRODUCTS
==================================================*/

.stock-sorting-section {
    margin: 50px 0 45px;
    text-align: center;
}

.stock-results-summary {
    font-size: 2rem;
    font-weight: 700;
    color: #444;
    margin-bottom: 35px;
}

.stock-sort-form {
    display: flex;
    justify-content: center;
}

.stock-sort-field {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.stock-sort-field label {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--sbb-text);
}

.stock-sort-field select {
    width: 360px;
    max-width: 100%;
    padding: 14px 18px;
    font-size: 1.1rem;
    font-weight: 600;
    border: 2px solid #ddd;
    border-radius: 12px;
    background: var(--sbb-surface);
    cursor: pointer;
    transition: all 0.2s ease;
}

.stock-sort-field select:hover,
.stock-sort-field select:focus {
    border-color: #d60000;
    outline: none;
}

/*==================================================
LATEST ARRIVALS - PREMIUM CARD EFFECTS
==================================================*/

.latest-stock-card {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    background: var(--sbb-surface);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.latest-stock-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
}

/*
 * Keeps the image inside the card while it enlarges.
 */
.latest-stock-image {
    display: block;
    overflow: hidden;
}

.latest-stock-image img {
    display: block;
    width: 100%;
    transition: transform 0.4s ease;
}

.latest-stock-card:hover .latest-stock-image img {
    transform: scale(1.05);
}

/*
 * Smooth product title interaction.
 */
.latest-stock-content h3 a {
    transition: color 0.2s ease;
}

.latest-stock-card:hover .latest-stock-content h3 a {
    color: var(--sbb-primary);
}

/*
 * Make the View Details button react with the card.
 */
.latest-stock-card .stock-view-button {
    transition:
        background-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.latest-stock-card:hover .stock-view-button {
    transform: translateY(-2px);
    box-shadow: 0 7px 16px rgba(212, 0, 0, 0.24);
}

/*
 * Prevent hover movement on touchscreen devices.
 */
@media (hover: none) {
    .latest-stock-card:hover {
        transform: none;
    }

    .latest-stock-card:hover .latest-stock-image img {
        transform: none;
    }

    .latest-stock-card:hover .stock-view-button {
        transform: none;
        box-shadow: none;
    }
}

/*==================================================
LATEST ARRIVALS BADGES
==================================================*/

.latest-stock-card {
    position: relative;
}

.latest-stock-card .stock-badge {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 10;
}

/*==================================================
FLOATING CONTACT PANEL
==================================================*/

.floating-contact-panel {
    position: fixed;
    right: 20px;
    bottom: 35px;
    z-index: 999;
    width: 190px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    background: var(--sbb-surface);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.18);
}

.floating-contact-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    color: var(--sbb-text);
    text-decoration: none;
    border-bottom: 1px solid #eee;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.floating-contact-link:last-child {
    border-bottom: 0;
}

.floating-contact-link:hover,
.floating-contact-link:focus {
    color: var(--sbb-surface);
    background: var(--sbb-primary);
}

.floating-contact-icon {
    display: flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    font-size: 1rem;
    color: var(--sbb-surface);
    border-radius: 50%;
    background: var(--sbb-primary);
    transition:
        color 0.2s ease,
        background-color 0.2s ease;
}

.floating-contact-link:hover .floating-contact-icon,
.floating-contact-link:focus .floating-contact-icon {
    color: var(--sbb-primary);
    background: var(--sbb-surface);
}

.floating-contact-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.floating-contact-text strong {
    font-size: 0.92rem;
}

.floating-contact-text small {
    margin-top: 3px;
    font-size: 0.72rem;
    color: var(--sbb-text-muted);
}

.floating-contact-link:hover small,
.floating-contact-link:focus small {
    color: var(--sbb-surface);
}


/*==================================================
MOBILE CONTACT BAR
==================================================*/

.mobile-contact-bar {
    display: none;
}

@media (max-width: 767px) {

    /*
     * Prevent the fixed mobile bar from covering
     * the bottom of the website.
     */
    body {
        padding-bottom: 72px;
    }

    .floating-contact-panel {
        display: none;
    }

    .mobile-contact-bar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 9999;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        min-height: 70px;
        background: var(--sbb-surface);
        border-top: 1px solid #ddd;
        box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.14);
    }

    .mobile-contact-bar a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 9px 5px;
        color: var(--sbb-text);
        text-align: center;
        text-decoration: none;
        border-right: 1px solid #eee;
    }

    .mobile-contact-bar a:last-child {
        border-right: 0;
    }

    .mobile-contact-bar a:hover,
    .mobile-contact-bar a:focus {
        color: var(--sbb-surface);
        background: var(--sbb-primary);
    }

    .mobile-contact-bar span {
        font-size: 1.25rem;
        line-height: 1;
    }

    .mobile-contact-bar strong {
        font-size: 0.78rem;
        line-height: 1.1;
    }
}

/*==================================================
STOCK SEARCH
==================================================*/

.stock-search-section {
    max-width: 950px;
    margin: 40px auto 30px;
    padding: 32px;
    text-align: center;
    background: var(--sbb-surface);
    border: 1px solid #e2e2e2;
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.stock-search-heading {
    margin-bottom: 22px;
}

.stock-search-heading h2 {
    margin: 0 0 7px;
    font-size: 1.75rem;
    color: var(--sbb-text);
}

.stock-search-heading p {
    margin: 0;
    color: var(--sbb-text-muted);
}

.stock-search-controls {
    display: flex;
    align-items: stretch;
    gap: 12px;
    max-width: 760px;
    margin: 0 auto;
}

.stock-search-controls input[type="search"] {
    flex: 1;
    min-width: 0;
    height: 56px;
    padding: 0 20px;
    font: inherit;
    font-size: 1rem;
    color: var(--sbb-text);
    background: var(--sbb-surface);
    border: 2px solid #d8d8d8;
    border-radius: 12px;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.stock-search-controls input[type="search"]:focus {
    border-color: var(--sbb-primary);
    outline: none;
    box-shadow: 0 0 0 4px rgba(212, 0, 0, 0.1);
}

.stock-search-submit {
    min-width: 150px;
    height: 56px;
    border: 0;
    cursor: pointer;
}

.stock-search-active {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 18px;
    color: #555;
}

.stock-search-clear {
    font-weight: 700;
    color: var(--sbb-primary);
    text-decoration: none;
}

.stock-search-clear:hover,
.stock-search-clear:focus {
    text-decoration: underline;
}

@media (max-width: 650px) {

    .stock-search-section {
        padding: 24px 18px;
    }

    .stock-search-controls {
        flex-direction: column;
    }

    .stock-search-submit {
        width: 100%;
    }

    .stock-search-active {
        flex-direction: column;
        gap: 8px;
    }
}

/* ==========================================
   LIVE SEARCH
========================================== */

.stock-search-form{
    position:relative;
}

.stock-live-search{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    margin-top:10px;
    background:var(--sbb-surface);
    border:1px solid #ddd;
    border-radius:12px;
    box-shadow:0 15px 40px rgba(0,0,0,.15);
    overflow:hidden;
    z-index:9999;
    display:none;
    max-height:430px;
    overflow-y:auto;
}

.stock-live-search.is-visible{
    display:block;
}

.stock-live-search-loading,
.stock-live-search-message{
    padding:20px;
    text-align:center;
    color:var(--sbb-text-muted);
    font-size:15px;
}

.stock-live-search-spinner{
    width:18px;
    height:18px;
    border:3px solid #ddd;
    border-top-color:var(--sbb-primary);
    border-radius:50%;
    display:inline-block;
    animation:sbb-spin .8s linear infinite;
    margin-right:10px;
    vertical-align:middle;
}

@keyframes sbb-spin{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

.stock-live-search-result{
    display:flex;
    gap:15px;
    padding:15px;
    text-decoration:none;
    color:var(--sbb-text);
    border-bottom:1px solid #eee;
    transition:.2s;
    align-items:center;
}

.stock-live-search-result:hover,
.stock-live-search-result.is-active{
    background:#f8f8f8;
}

.stock-live-search-image{
    width:90px;
    height:90px;
    object-fit:cover;
    border-radius:8px;
    flex-shrink:0;
}

.stock-live-search-image-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f2f2f2;
    color:#888;
    font-size:12px;
}

.stock-live-search-content{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.stock-live-search-title-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}

.stock-live-search-title{
    font-size:18px;
    color:var(--sbb-text);
}

.stock-live-search-meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    font-size:14px;
    color:var(--sbb-text-muted);
}

.stock-live-search-bottom-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.stock-live-search-price{
    font-size:20px;
    color:var(--sbb-primary);
}

.stock-live-search-availability{
    font-size:13px;
    font-weight:600;
    padding:4px 10px;
    border-radius:20px;
    background:#eee;
}

.stock-live-search-availability-in-stock{
    background:#d8f5d8;
    color:#1f7a1f;
}

.stock-live-search-availability-reserved{
    background:var(--sbb-surface)3cd;
    color:#856404;
}

.stock-live-search-availability-sold{
    background:#f8d7da;
    color:#842029;
}

.stock-live-search-badge{
    background:var(--sbb-primary);
    color:var(--sbb-surface);
    font-size:11px;
    padding:4px 8px;
    border-radius:20px;
    font-weight:600;
}

.stock-live-search-view-all{
    display:block;
    text-align:center;
    padding:16px;
    font-weight:700;
    text-decoration:none;
    color:var(--sbb-primary);
    background:#fafafa;
}

.stock-live-search-view-all:hover{
    background:#f0f0f0;
}

@media (max-width:768px){

    .stock-live-search-image{
        width:70px;
        height:70px;
    }

    .stock-live-search-title{
        font-size:16px;
    }

    .stock-live-search-price{
        font-size:18px;
    }

    .stock-live-search-bottom-row{
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
    }
}

/*==================================================
FIND US PAGE
==================================================*/

.find-us-page {
    background: #f6f6f6;
}

.find-us-hero {
    padding: 75px 0;
    color: var(--sbb-surface);
    text-align: center;
    background:
        linear-gradient(
            135deg,
            rgba(20, 20, 20, 0.96),
            rgba(65, 0, 0, 0.92)
        );
}

.find-us-hero-content {
    max-width: 850px;
    margin: 0 auto;
}

.find-us-eyebrow {
    margin: 0 0 10px;
    color: var(--sbb-primary);
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.find-us-hero .find-us-eyebrow {
    color: var(--sbb-surface);
}

.find-us-hero h1 {
    margin: 0 0 18px;
    color: var(--sbb-surface);
    font-size: clamp(2.4rem, 5vw, 4.2rem);
    line-height: 1.05;
}

.find-us-introduction {
    max-width: 700px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.15rem;
    line-height: 1.7;
}

.find-us-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 30px;
}

.find-us-hero-actions .button.secondary {
    color: var(--sbb-surface);
    border-color: var(--sbb-surface);
    background: transparent;
}

.find-us-hero-actions .button.secondary:hover {
    color: var(--sbb-text);
    background: var(--sbb-surface);
}

.find-us-main-section {
    padding: 65px 0;
}

.find-us-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
    gap: 30px;
    align-items: stretch;
}

.find-us-map-column {
    min-width: 0;
}

.find-us-map {
    height: 100%;
    min-height: 620px;
    overflow: hidden;
    background: #e7e7e7;
    border-radius: 18px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

.find-us-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 620px;
    border: 0;
}

.find-us-information-column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.find-us-information-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    padding: 25px;
    background: var(--sbb-surface);
    border: 1px solid #e1e1e1;
    border-radius: 16px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

.find-us-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    font-size: 1.45rem;
    background: var(--sbb-surface)0f0;
    border-radius: 50%;
}

.find-us-information-card h2 {
    margin: 0 0 12px;
    color: var(--sbb-text);
    font-size: 1.3rem;
}

.find-us-information-card p {
    margin: 0 0 12px;
    color: var(--sbb-text-muted);
    line-height: 1.6;
}

.find-us-information-card address {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 14px;
    color: #555;
    font-style: normal;
    line-height: 1.5;
}

.find-us-information-card address strong {
    color: var(--sbb-text);
}

.find-us-text-link,
.find-us-phone-link {
    color: var(--sbb-primary);
    font-weight: 800;
    text-decoration: none;
}

.find-us-text-link:hover,
.find-us-phone-link:hover {
    text-decoration: underline;
}

.find-us-phone-link {
    display: inline-block;
    font-size: 1.35rem;
}

.find-us-opening-hours {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.find-us-opening-hours div {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 9px;
    border-bottom: 1px solid #ededed;
}

.find-us-opening-hours div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.find-us-opening-hours span {
    color: #555;
}

.find-us-opening-hours strong {
    color: var(--sbb-text);
    text-align: right;
}

.find-us-visit-section {
    padding: 70px 0;
    background: var(--sbb-surface);
}

.find-us-section-heading {
    max-width: 750px;
    margin: 0 auto 38px;
    text-align: center;
}

.find-us-section-heading h2 {
    margin: 0 0 12px;
    color: var(--sbb-text);
    font-size: clamp(2rem, 4vw, 2.8rem);
}

.find-us-section-heading > p:last-child {
    margin: 0;
    color: var(--sbb-text-muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

.find-us-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.find-us-feature-card {
    padding: 28px 24px;
    text-align: center;
    background: var(--sbb-background);
    border: 1px solid #e6e6e6;
    border-radius: 16px;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.find-us-feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.08);
}

.find-us-feature-card > span {
    display: block;
    margin-bottom: 14px;
    font-size: 2.2rem;
}

.find-us-feature-card h3 {
    margin: 0 0 10px;
    color: var(--sbb-text);
    font-size: 1.2rem;
}

.find-us-feature-card p {
    margin: 0;
    color: var(--sbb-text-muted);
    line-height: 1.65;
}

.find-us-bottom-cta {
    padding: 55px 0;
    color: var(--sbb-surface);
    background: #202020;
}

.find-us-bottom-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.find-us-bottom-cta h2 {
    margin: 0 0 8px;
    color: var(--sbb-surface);
    font-size: 2rem;
}

.find-us-bottom-cta p {
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
}

.find-us-bottom-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.find-us-bottom-actions .button.secondary {
    color: var(--sbb-surface);
    border-color: var(--sbb-surface);
    background: transparent;
}

.find-us-bottom-actions .button.secondary:hover {
    color: var(--sbb-text);
    background: var(--sbb-surface);
}

@media (max-width: 950px) {

    .find-us-layout {
        grid-template-columns: 1fr;
    }

    .find-us-map,
    .find-us-map iframe {
        min-height: 480px;
    }

    .find-us-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .find-us-bottom-cta-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 600px) {

    .find-us-hero {
        padding: 55px 0;
    }

    .find-us-hero-actions,
    .find-us-bottom-actions {
        flex-direction: column;
        width: 100%;
    }

    .find-us-hero-actions .button,
    .find-us-bottom-actions .button {
        width: 100%;
        text-align: center;
    }

    .find-us-main-section,
    .find-us-visit-section {
        padding: 45px 0;
    }

    .find-us-map,
    .find-us-map iframe {
        min-height: 360px;
    }

    .find-us-information-card {
        grid-template-columns: 1fr;
    }

    .find-us-feature-grid {
        grid-template-columns: 1fr;
    }

    .find-us-opening-hours div {
        flex-direction: column;
        gap: 3px;
    }

    .find-us-opening-hours strong {
        text-align: left;
    }
}

/*==================================================
SBB HEADER LOGO
==================================================*/

.site-branding {
    flex-shrink: 0;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: #1f1f1f;
    text-decoration: none;
}

.site-logo:hover {
    color: #1f1f1f;
    text-decoration: none;
}

.site-logo-initials {
    display: inline-flex;
    gap: 7px;
    flex-shrink: 0;
}

.site-logo-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-radius: 8px;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 3px 8px rgba(212, 0, 0, 0.18);
}

.site-logo-name {
    color: #1f1f1f;
    font-size: clamp(1.45rem, 2.2vw, 2.25rem);
    font-weight: 800;
    line-height: 1.05;
    white-space: nowrap;
}

@media (max-width: 1100px) {

    .site-logo {
        gap: 11px;
    }

    .site-logo-box {
        width: 45px;
        height: 45px;
        font-size: 1.65rem;
    }

    .site-logo-name {
        font-size: 1.45rem;
    }
}

@media (max-width: 800px) {

    .site-logo-name {
        white-space: normal;
    }
}

@media (max-width: 600px) {

    .site-logo {
        gap: 9px;
    }

    .site-logo-initials {
        gap: 4px;
    }

    .site-logo-box {
        width: 38px;
        height: 38px;
        border-radius: 6px;
        font-size: 1.35rem;
    }

    .site-logo-name {
        font-size: 1.05rem;
        line-height: 1.15;
    }
}

@media (max-width: 420px) {

    .site-logo-name {
        max-width: 145px;
    }
}

/*==================================================
PREMIUM HEADER (PHASE 1)
==================================================*/

.site-header{
    transition:
        box-shadow .3s ease,
        background .3s ease;
}

/* Navigation */

.main-navigation ul{
    align-items:center;
    gap:45px;
}

.main-navigation li{
    position:relative;
}

.main-navigation a{

    position:relative;
    display:inline-block;

    padding:10px 0;

    font-size:18px;
    font-weight:700;
    letter-spacing:.2px;

    transition:
        color .25s ease,
        transform .25s ease;
}

/* animated underline */

.main-navigation a::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-6px;

    width:100%;
    height:3px;

    background:var(--sbb-primary);

    border-radius:10px;

    transform:scaleX(0);
    transform-origin:center;

    transition:transform .25s ease;

}

.main-navigation a:hover{

    color:var(--sbb-primary);

}

.main-navigation a:hover::after{

    transform:scaleX(1);

}

/* Active page */

.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a{

    color:var(--sbb-primary);

}

.main-navigation .current-menu-item > a::after,
.main-navigation .current_page_item > a::after,
.main-navigation .current-menu-ancestor > a::after{

    transform:scaleX(1);

}

/* Phone button */

.header-phone a{

    padding:14px 26px;

    border-radius:999px;

    box-shadow:
        0 10px 22px rgba(212,0,0,.22);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background .25s ease;

}

.header-phone a:hover{

    transform:translateY(-3px);

    background:var(--sbb-primary-dark);

    box-shadow:
        0 16px 30px rgba(212,0,0,.28);

}

/* Logo animation */

.site-logo{

    transition:transform .25s ease;

}

.site-logo:hover{

    transform:translateY(-2px);

}

.site-logo-box{

    transition:
        transform .25s ease,
        background .25s ease;

}

.site-logo:hover .site-logo-box{

    transform:translateY(-2px);

    background:#bb0000;

}

/* ==========================================
   WISHLIST — PHASE 1
========================================== */

.header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.header-wishlist-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 9px 14px;
    color: var(--sbb-text);
    background: var(--sbb-surface);
    border: 1px solid #dedede;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease;
}

.header-wishlist-link:hover,
.header-wishlist-link:focus-visible {
    color: var(--sbb-primary);
    border-color: var(--sbb-primary);
    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.header-wishlist-icon {
    color: var(--sbb-primary);
    font-size: 21px;
    line-height: 1;
}

.header-wishlist-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 23px;
    height: 23px;
    padding: 0 6px;
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.sbb-wishlist-notice {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 99999;
    max-width: min(360px, calc(100vw - 32px));
    padding: 14px 20px;
    color: var(--sbb-surface);
    background: var(--sbb-text);
    border-left: 5px solid var(--sbb-primary);
    border-radius: 8px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.24);
    font-size: 15px;
    font-weight: 700;
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition:
        opacity 0.25s ease,
        visibility 0.25s ease,
        transform 0.25s ease;
}

.sbb-wishlist-notice.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (max-width: 900px) {
    .header-actions {
        gap: 8px;
    }

    .header-wishlist-link {
        padding: 9px 11px;
    }

    .header-wishlist-text {
        display: none;
    }
}

@media (max-width: 600px) {
    .header-actions {
        width: 100%;
        justify-content: center;
    }

    .sbb-wishlist-notice {
        right: 16px;
        bottom: 16px;
        left: 16px;
        max-width: none;
        text-align: center;
    }
}

/* ==========================================
   WISHLIST PAGE
========================================== */

.wishlist-page {
    padding: 60px 0 80px;
    background: var(--sbb-background);
    min-height: 600px;
}

.wishlist-page-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
}

.wishlist-page-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    flex: 0 0 62px;
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-radius: 50%;
    font-size: 30px;
    box-shadow: 0 10px 25px rgba(212, 0, 0, 0.22);
}

.wishlist-page-header h1 {
    margin: 0 0 6px;
    color: var(--sbb-text);
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.1;
}

.wishlist-page-header p {
    margin: 0;
    color: var(--sbb-text-muted);
    font-size: 17px;
}

.wishlist-summary {
    margin-bottom: 28px;
    color: #444;
    font-size: 16px;
    font-weight: 700;
}

.wishlist-products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.wishlist-product-card {
    overflow: hidden;
    background: var(--sbb-surface);
    border: 1px solid var(--sbb-border);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.07);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.wishlist-product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 36px rgba(0, 0, 0, 0.12);
}

.wishlist-product-image {
    display: block;
    height: 260px;
    overflow: hidden;
    background: #ededed;
}

.wishlist-product-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.wishlist-product-card:hover .wishlist-product-image img {
    transform: scale(1.04);
}

.wishlist-product-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #777;
    font-weight: 700;
}

.wishlist-product-content {
    padding: 22px;
}

.wishlist-product-content h2 {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.25;
}

.wishlist-product-content h2 a {
    color: var(--sbb-text);
    text-decoration: none;
}

.wishlist-product-content h2 a:hover {
    color: var(--sbb-primary);
}

.wishlist-product-price {
    margin-bottom: 14px;
    color: var(--sbb-primary);
    font-size: 27px;
    font-weight: 900;
}

.wishlist-product-availability {
    display: inline-flex;
    align-items: center;
    margin-bottom: 18px;
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
}

.wishlist-product-availability.is-in-stock {
    color: #166534;
    background: #dcfce7;
}

.wishlist-product-availability.is-reserved {
    color: #854d0e;
    background: #fef9c3;
}

.wishlist-product-availability.is-sold {
    color: #991b1b;
    background: #fee2e2;
}

.wishlist-product-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.wishlist-view-button {
    flex: 1;
    text-align: center;
}

.wishlist-remove-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 44px;
    padding: 10px 14px;
    color: #555;
    background: var(--sbb-surface);
    border: 1px solid #d7d7d7;
    border-radius: 7px;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease;
}

.wishlist-remove-button:hover,
.wishlist-remove-button:focus-visible {
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-color: var(--sbb-primary);
}

.wishlist-empty {
    max-width: 650px;
    margin: 35px auto 0;
    padding: 55px 30px;
    background: var(--sbb-surface);
    border: 1px solid #e4e4e4;
    border-radius: 18px;
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.07);
    text-align: center;
}

.wishlist-empty-icon {
    margin-bottom: 14px;
    color: var(--sbb-primary);
    font-size: 64px;
    line-height: 1;
}

.wishlist-empty h2 {
    margin: 0 0 12px;
    color: var(--sbb-text);
    font-size: 30px;
}

.wishlist-empty p {
    margin: 0 0 24px;
    color: var(--sbb-text-muted);
    font-size: 17px;
}

@media (max-width: 950px) {
    .wishlist-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .wishlist-page {
        padding: 38px 0 60px;
    }

    .wishlist-page-header {
        align-items: flex-start;
    }

    .wishlist-page-icon {
        width: 50px;
        height: 50px;
        flex-basis: 50px;
        font-size: 24px;
    }

    .wishlist-products {
        grid-template-columns: 1fr;
    }

    .wishlist-product-image {
        height: 240px;
    }

    .wishlist-product-actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ==========================================
   CURRENT STOCK WISHLIST BUTTON
========================================== */

.stock-product {
    position: relative;
}

.stock-wishlist-button {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    color: var(--sbb-primary);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(212, 0, 0, 0.22);
    border-radius: 50%;
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.14);
    cursor: pointer;
    transition:
        color 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.stock-wishlist-button:hover,
.stock-wishlist-button:focus-visible {
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-color: var(--sbb-primary);
    box-shadow: 0 10px 25px rgba(212, 0, 0, 0.28);
    transform: translateY(-2px) scale(1.06);
}

.stock-wishlist-button.is-saved {
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-color: var(--sbb-primary);
}

.stock-wishlist-button.is-saved:hover,
.stock-wishlist-button.is-saved:focus-visible {
    background: #b80000;
    border-color: #b80000;
}

.stock-wishlist-button-icon {
    display: block;
    font-size: 29px;
    line-height: 1;
    transform-origin: center;
}

.stock-wishlist-button.is-saved .stock-wishlist-button-icon {
    animation: sbb-wishlist-heart-pop 0.35s ease;
}

@keyframes sbb-wishlist-heart-pop {
    0% {
        transform: scale(0.7);
    }

    55% {
        transform: scale(1.28);
    }

    100% {
        transform: scale(1);
    }
}

@media (max-width: 650px) {
    .stock-wishlist-button {
        top: 12px;
        right: 12px;
        width: 42px;
        height: 42px;
    }

    .stock-wishlist-button-icon {
        font-size: 26px;
    }
}

/* ==========================================
   SINGLE PRODUCT ACTION PANEL
========================================== */

.single-stock-actions {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 28px;
    overflow: hidden;
    background: var(--sbb-surface);
    border: 1px solid #dedede;
    border-radius: 14px;
    box-shadow: 0 9px 28px rgba(0, 0, 0, 0.08);
}

.single-stock-action-button {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    width: 100%;
    min-height: 58px;
    margin: 0;
    padding: 15px 20px;
    color: var(--sbb-text);
    background: var(--sbb-surface);
    border: 0;
    border-bottom: 1px solid var(--sbb-border);
    border-radius: 0;
    font: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition:
        color 0.2s ease,
        background 0.2s ease,
        padding-left 0.2s ease;
}

.single-stock-action-button:last-child {
    border-bottom: 0;
}

.single-stock-action-button:hover,
.single-stock-action-button:focus-visible {
    color: var(--sbb-primary);
    background: #fafafa;
    padding-left: 25px;
}

.single-stock-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-width: 28px;
    color: var(--sbb-primary);
    font-size: 23px;
    line-height: 1;
}

.single-stock-wishlist-button.is-saved {
    color: var(--sbb-surface);
    background: var(--sbb-primary);
}

.single-stock-wishlist-button.is-saved:hover,
.single-stock-wishlist-button.is-saved:focus-visible {
    color: var(--sbb-surface);
    background: #b80000;
}

.single-stock-wishlist-button.is-saved .single-stock-action-icon {
    color: var(--sbb-surface);
    animation: sbb-single-heart-pop 0.35s ease;
}

/*
 * Your wishlist JavaScript normally changes the short card wording
 * to “Saved”. This makes the single-product button more descriptive.
 */
.single-stock-wishlist-button.is-saved [data-wishlist-label] {
    font-size: 0;
}

.single-stock-wishlist-button.is-saved [data-wishlist-label]::after {
    content: "Saved to Wishlist";
    font-size: 16px;
}

.single-stock-call-button:hover,
.single-stock-call-button:focus-visible {
    color: #166534;
}

.single-stock-enquiry-button:hover,
.single-stock-enquiry-button:focus-visible {
    color: var(--sbb-primary);
}

.single-stock-back-button {
    color: #555;
}

@keyframes sbb-single-heart-pop {
    0% {
        transform: scale(0.7);
    }

    55% {
        transform: scale(1.3);
    }

    100% {
        transform: scale(1);
    }
}

@media (max-width: 650px) {
    .single-stock-actions {
        margin-top: 22px;
    }

    .single-stock-action-button {
        min-height: 55px;
        padding: 14px 16px;
        font-size: 15px;
    }

    .single-stock-action-button:hover,
    .single-stock-action-button:focus-visible {
        padding-left: 20px;
    }

    .single-stock-wishlist-button.is-saved [data-wishlist-label]::after {
        font-size: 15px;
    }
}

/* ==========================================
   RECENTLY VIEWED PRODUCTS
========================================== */

.recently-viewed-section {
    margin-top: 55px;
    padding-top: 45px;
    border-top: 1px solid #e3e3e3;
}

.recently-viewed-section[hidden] {
    display: none;
}

.recently-viewed-heading {
    margin-bottom: 25px;
    text-align: center;
}

.recently-viewed-heading h2 {
    margin: 0 0 8px;
    color: var(--sbb-text);
    font-size: clamp(28px, 4vw, 38px);
    line-height: 1.15;
}

.recently-viewed-heading p {
    max-width: 650px;
    margin: 0 auto;
    color: var(--sbb-text-muted);
    font-size: 16px;
}

.recently-viewed-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.recently-viewed-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--sbb-surface);
    border: 1px solid #e1e1e1;
    border-radius: 14px;
    box-shadow: 0 7px 24px rgba(0, 0, 0, 0.07);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.recently-viewed-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.11);
}

.recently-viewed-image {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #f2f2f2;
}

.recently-viewed-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.recently-viewed-card:hover .recently-viewed-image img {
    transform: scale(1.04);
}

.recently-viewed-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    color: #777;
    text-align: center;
}

.recently-viewed-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 19px;
}

.recently-viewed-content h3 {
    margin: 0 0 10px;
    font-size: 19px;
    line-height: 1.3;
}

.recently-viewed-content h3 a {
    color: var(--sbb-text);
    text-decoration: none;
}

.recently-viewed-content h3 a:hover,
.recently-viewed-content h3 a:focus-visible {
    color: var(--sbb-primary);
}

.recently-viewed-price {
    margin-bottom: 8px;
    color: var(--sbb-primary);
    font-size: 22px;
    font-weight: 800;
}

.recently-viewed-availability {
    margin-bottom: 16px;
    color: #555;
    font-size: 14px;
    font-weight: 700;
}

.recently-viewed-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: auto;
    padding: 12px 16px;
    color: var(--sbb-surface);
    background: var(--sbb-primary);
    border-radius: 8px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.recently-viewed-button:hover,
.recently-viewed-button:focus-visible {
    color: var(--sbb-surface);
    background: #b80000;
    transform: translateY(-1px);
}

@media (max-width: 1000px) {
    .recently-viewed-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .recently-viewed-section {
        margin-top: 42px;
        padding-top: 35px;
    }

    .recently-viewed-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
}

@media (max-width: 480px) {
    .recently-viewed-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================
   PRODUCT COMPARISON
========================================== */

.stock-compare-button,
.single-stock-compare-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 2px solid var(--sbb-text);
    background: var(--sbb-surface);
    color: var(--sbb-text);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.stock-compare-button {
    width: 100%;
    margin-top: 10px;
    padding: 11px 14px;
    border-radius: 8px;
}

.stock-compare-button:hover,
.stock-compare-button:focus-visible,
.single-stock-compare-button:hover,
.single-stock-compare-button:focus-visible,
.stock-compare-button.is-selected,
.single-stock-compare-button.is-selected {
    background: var(--sbb-text);
    color: var(--sbb-surface);
    transform: translateY(-1px);
}

.comparison-bar {
    position: fixed;
    z-index: 9990;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 12px 0;
    background: rgba(24, 24, 24, 0.98);
    color: var(--sbb-surface);
    box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.22);
    transform: translateY(110%);
    visibility: hidden;
    transition: transform 0.25s ease, visibility 0.25s ease;
}

.comparison-bar.is-visible {
    transform: translateY(0);
    visibility: visible;
}

body.has-comparison-bar {
    padding-bottom: 105px;
}

.comparison-bar-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 18px;
}

.comparison-bar-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.comparison-bar-heading > span { font-size: 27px; }
.comparison-bar-heading strong,
.comparison-bar-heading small { display: block; }
.comparison-bar-heading small { margin-top: 2px; color: #ccc; }

.comparison-bar-items {
    display: flex;
    gap: 10px;
    min-width: 0;
}

.comparison-bar-item {
    display: flex;
    align-items: center;
    min-width: 0;
    max-width: 230px;
    padding: 6px 8px;
    background: #333;
    border-radius: 8px;
}

.comparison-bar-item img {
    width: 42px;
    height: 42px;
    margin-right: 8px;
    border-radius: 5px;
    object-fit: cover;
}

.comparison-bar-item span {
    overflow: hidden;
    flex: 1;
    font-size: 13px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.comparison-bar-item button {
    width: 28px;
    height: 28px;
    margin-left: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--sbb-surface);
    cursor: pointer;
    font-size: 22px;
}

.comparison-bar-actions { display: flex; align-items: center; gap: 10px; }
.comparison-bar-clear { border: 0; background: transparent; color: var(--sbb-surface); cursor: pointer; text-decoration: underline; }
.comparison-bar-button { display: inline-flex; padding: 12px 18px; border-radius: 8px; background: var(--sbb-primary); color: var(--sbb-surface); font-weight: 800; text-decoration: none; white-space: nowrap; }
.comparison-bar-button:hover { background: #b80000; color: var(--sbb-surface); }
.comparison-bar-button.is-disabled { opacity: 0.55; }

.comparison-notice {
    position: fixed;
    z-index: 10000;
    top: 22px;
    left: 50%;
    max-width: calc(100% - 30px);
    padding: 13px 18px;
    border-radius: 8px;
    background: var(--sbb-text);
    color: var(--sbb-surface);
    font-weight: 700;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.22);
    opacity: 0;
    transform: translate(-50%, -15px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.comparison-notice.is-visible { opacity: 1; transform: translate(-50%, 0); }
.comparison-notice.is-error { background: #b00020; }

.product-comparison-page { padding: 55px 0 75px; }
.comparison-page-heading { margin-bottom: 32px; text-align: center; }
.comparison-page-heading h1 { margin: 0 0 10px; font-size: clamp(34px, 5vw, 50px); }
.comparison-page-heading p { margin: 0; color: var(--sbb-text-muted); font-size: 18px; }
.comparison-empty-state { max-width: 650px; margin: 0 auto; padding: 55px 25px; border: 1px solid #ddd; border-radius: 16px; background: var(--sbb-surface); text-align: center; }
.comparison-empty-icon { display: block; margin-bottom: 14px; font-size: 52px; }
.comparison-empty-state h2 { margin: 0 0 10px; }
.comparison-empty-state p { margin: 0 0 24px; color: var(--sbb-text-muted); }

.comparison-table-wrap { overflow-x: auto; border: 1px solid #ddd; border-radius: 14px; background: var(--sbb-surface); box-shadow: 0 8px 28px rgba(0, 0, 0, 0.07); }
.comparison-table { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.comparison-table th,
.comparison-table td { padding: 17px; border-right: 1px solid var(--sbb-border); border-bottom: 1px solid var(--sbb-border); text-align: center; vertical-align: middle; }
.comparison-table th { width: 155px; background: #f6f6f6; color: #333; text-align: left; }
.comparison-table td:last-child { border-right: 0; }
.comparison-table tr:last-child th,
.comparison-table tr:last-child td { border-bottom: 0; }
.comparison-product-row th { vertical-align: top; }
.comparison-product-row td { vertical-align: top; }
.comparison-product-heading img { display: block; width: 100%; height: 210px; margin-bottom: 15px; border-radius: 10px; object-fit: cover; }
.comparison-product-heading h2 { margin: 0 0 12px; font-size: 20px; line-height: 1.25; }
.comparison-product-heading h2 a { color: var(--sbb-text); text-decoration: none; }
.comparison-product-heading h2 a:hover { color: var(--sbb-primary); }
.comparison-remove-product { border: 0; background: transparent; color: #b00020; cursor: pointer; font-weight: 700; text-decoration: underline; }
.comparison-description-row td { text-align: left; line-height: 1.6; }
.comparison-view-product { width: 100%; }
.comparison-page-actions { display: flex; justify-content: center; align-items: center; gap: 15px; margin-top: 25px; }
.comparison-clear-button { padding: 11px 18px; border: 2px solid var(--sbb-text); border-radius: 8px; background: var(--sbb-surface); color: var(--sbb-text); cursor: pointer; font-weight: 800; }

@media (max-width: 900px) {
    .comparison-bar-inner { grid-template-columns: 1fr auto; }
    .comparison-bar-heading { grid-column: 1 / -1; }
    .comparison-bar-items { overflow-x: auto; }
    body.has-comparison-bar { padding-bottom: 155px; }
}

@media (max-width: 620px) {
    .comparison-bar { padding: 10px 0; }
    .comparison-bar-inner { display: flex; flex-wrap: wrap; gap: 8px; }
    .comparison-bar-heading { width: 100%; }
    .comparison-bar-items { order: 2; width: 100%; }
    .comparison-bar-actions { width: 100%; justify-content: flex-end; }
    .comparison-bar-item { min-width: 185px; }
    body.has-comparison-bar { padding-bottom: 225px; }
    .comparison-page-actions { flex-direction: column; }
    .comparison-page-actions > * { width: 100%; text-align: center; }
    .product-comparison-page { padding-top: 35px; }
}

body.has-comparison-bar {
    padding-bottom: 85px;
}

@media (max-width: 768px) {
    body.has-comparison-bar {
        padding-bottom: 165px;
    }
}

/* ==========================================
   SHARE WISHLIST
========================================== */

.wishlist-share-panel,
.wishlist-shared-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin: 25px 0 30px;
    padding: 24px;
    background: var(--sbb-surface);
    border: 1px solid #dddddd;
    border-radius: 14px;
}

.wishlist-share-panel[hidden],
.wishlist-shared-banner[hidden] {
    display: none;
}

.wishlist-share-panel h2 {
    margin: 0 0 6px;
    font-size: 22px;
}

.wishlist-share-panel p,
.wishlist-shared-banner p {
    margin: 0;
}

.wishlist-share-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.wishlist-share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.wishlist-copy-button {
    min-height: 45px;
    padding: 10px 20px;
    background: var(--sbb-surface);
    color: var(--sbb-text);
    border: 2px solid var(--sbb-text);
    border-radius: 6px;
    font-weight: 700;
    cursor: pointer;
}

.wishlist-copy-button:hover {
    background: var(--sbb-text);
    color: var(--sbb-surface);
}

.wishlist-shared-banner {
    background: var(--sbb-surface)7f7;
    border-color: var(--sbb-primary);
}

.wishlist-shared-banner strong {
    display: block;
    margin-bottom: 5px;
    font-size: 18px;
}

.wishlist-save-shared-button {
    flex-shrink: 0;
}

.wishlist-save-item-button {
    border-color: var(--sbb-primary);
    color: var(--sbb-primary);
}

.wishlist-save-item-button:hover {
    background: var(--sbb-primary);
    color: var(--sbb-surface);
}

.sbb-wishlist-notice.is-error {
    background: #7a0000;
}

@media (max-width: 768px) {
    .wishlist-share-panel,
    .wishlist-shared-banner {
        align-items: stretch;
        flex-direction: column;
    }

    .wishlist-share-actions {
        width: 100%;
        flex-direction: column;
    }

    .wishlist-share-actions button,
    .wishlist-save-shared-button {
        width: 100%;
    }
}

/* ==========================================
   FURNITURE CONFIGURATIONS
========================================== */

.stock-configuration-selector {
    margin: 28px 0;
    padding: 22px;
    background: var(--sbb-background);
    border: 1px solid #dddddd;
    border-radius: 10px;
}

.stock-configuration-heading h2 {
    margin: 0 0 6px;
    font-size: 24px;
}

.stock-configuration-heading p {
    margin: 0 0 18px;
}

.stock-configuration-options {
    display: grid;
    gap: 10px;
}

.stock-configuration-option {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    background: var(--sbb-surface);
    border: 2px solid #dddddd;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.stock-configuration-option:hover {
    border-color: var(--sbb-primary);
}

.stock-configuration-option:has(input:checked) {
    border-color: var(--sbb-primary);
    box-shadow: 0 0 0 2px rgba(212, 0, 0, 0.08);
}

.stock-configuration-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.stock-configuration-radio {
    width: 18px;
    height: 18px;
    border: 2px solid #777777;
    border-radius: 50%;
    box-sizing: border-box;
}

.stock-configuration-option input:checked + .stock-configuration-radio {
    border: 5px solid var(--sbb-primary);
}

.stock-configuration-name {
    font-weight: 700;
}

.stock-configuration-price {
    color: var(--sbb-primary);
    font-size: 18px;
    white-space: nowrap;
}

.stock-configuration-selection-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #dddddd;
}

.stock-configuration-selection-summary [data-selected-configuration-price] {
    margin-left: auto;
    color: var(--sbb-primary);
}

.stock-product-configurations-summary {
    margin: -4px 0 14px;
    color: #555555;
    font-size: 14px;
}

@media (max-width: 600px) {
    .stock-configuration-selector {
        padding: 16px;
    }

    .stock-configuration-option {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .stock-configuration-price {
        grid-column: 2;
    }

    .stock-configuration-selection-summary [data-selected-configuration-price] {
        width: 100%;
        margin-left: 0;
    }
}

/* =========================================
   Furniture configuration selection polish
   ========================================= */

.stock-current-selection {
    margin: 18px 0 24px;
    padding: 18px 20px;
    border: 1px solid #ead7d7;
    border-left: 5px solid var(--sbb-primary);
    border-radius: 12px;
    background: var(--sbb-surface)8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
    text-align: left;
}

.stock-current-selection-label {
    display: block;
    margin-bottom: 7px;
    color: var(--sbb-text-muted);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.stock-current-selection > strong {
    display: block;
    color: var(--sbb-text);
    font-size: 1.1rem;
    line-height: 1.35;
}

.stock-current-selection .stock-current-selection-price {
    margin-top: 5px;
    color: var(--sbb-primary);
    font-size: 1.45rem;
}

.stock-current-selection-availability {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    color: #237a3b;
    font-size: 0.92rem;
    font-weight: 800;
}

.stock-configuration-count {
    margin: 4px 0;
    color: var(--sbb-primary);
    font-weight: 800;
}

.stock-configuration-option {
    position: relative;
    overflow: hidden;
    transition: border-color 0.2s ease, background-color 0.2s ease,
        box-shadow 0.2s ease, transform 0.2s ease;
}

.stock-configuration-option:hover {
    border-color: var(--sbb-primary);
    background: var(--sbb-surface)afa;
    transform: translateY(-1px);
}

.stock-configuration-option.is-selected {
    border-color: var(--sbb-primary);
    background: var(--sbb-surface)1f1;
    box-shadow: 0 6px 16px rgba(212, 0, 0, 0.12);
}

.stock-configuration-option.is-selected .stock-configuration-radio {
    border-color: var(--sbb-primary);
    background: var(--sbb-primary);
}

.stock-configuration-option.is-selected .stock-configuration-radio::after {
    content: "✓";
    position: absolute;
    top: 50%;
    left: 50%;
    color: var(--sbb-surface);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
    transform: translate(-50%, -52%);
}

.stock-configuration-option.is-selected .stock-configuration-name,
.stock-configuration-option.is-selected .stock-configuration-price {
    font-weight: 900;
}

@media (max-width: 600px) {
    .stock-current-selection {
        padding: 16px;
    }

    .stock-current-selection .stock-current-selection-price {
        font-size: 1.3rem;
    }
}

/* ==========================================
   PRODUCT OVERVIEW PANEL
========================================== */

.stock-product-overview {
    position: relative;
    margin: 26px 0 28px;
    padding: 26px 28px 24px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--sbb-surface)7f7 0%, var(--sbb-surface) 100%);
    border: 1px solid #f0d2d2;
    border-left: 5px solid var(--sbb-primary);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.07);
    text-align: left;
}

.stock-product-overview::after {
    content: "";
    position: absolute;
    top: -45px;
    right: -45px;
    width: 120px;
    height: 120px;
    background: rgba(212, 0, 0, 0.05);
    border-radius: 50%;
    pointer-events: none;
}

.stock-product-overview-heading {
    position: relative;
    z-index: 1;
    margin-bottom: 14px;
}

.stock-product-overview-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--sbb-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.stock-product-overview h2 {
    margin: 0;
    color: var(--sbb-text);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.25;
}

.stock-product-overview-content {
    position: relative;
    z-index: 1;
    color: #4a4a4a;
    font-size: 1rem;
    line-height: 1.75;
}

.stock-product-overview-content > :first-child {
    margin-top: 0;
}

.stock-product-overview-content > :last-child {
    margin-bottom: 0;
}

.stock-product-overview-content ul,
.stock-product-overview-content ol {
    margin: 12px 0 0 20px;
}

@media (max-width: 700px) {
    .stock-product-overview {
        margin: 20px 0 24px;
        padding: 22px 20px;
        border-radius: 12px;
    }
}
/* ==========================================================
   CURRENT STOCK — PREMIUM CATALOGUE CARD REBUILD
   Visible template-matched redesign
========================================================== */

.stock-page .stock-products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;
}

.stock-page .stock-catalogue-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e7e7e7;
    border-radius: 22px;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.09);
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

@media (hover: hover) {
    .stock-page .stock-catalogue-card:hover {
        transform: translateY(-7px);
        border-color: rgba(212, 0, 0, 0.18);
        box-shadow: 0 24px 54px rgba(0, 0, 0, 0.15);
    }
}

.stock-catalogue-card-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    margin: 14px 14px 0;
    background: #f1f1f1;
    border-radius: 16px;
}

.stock-page .stock-catalogue-card-image {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: inherit;
}

.stock-page .stock-catalogue-card-image img,
.stock-catalogue-card-image-element {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.45s ease;
}

@media (hover: hover) {
    .stock-catalogue-card:hover .stock-catalogue-card-image img {
        transform: scale(1.055);
    }
}

.stock-catalogue-card-placeholder {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    width: 100%;
    height: 100%;
    color: #777;
    background: linear-gradient(135deg, #f8f8f8, #ececec);
    text-align: center;
}

.stock-catalogue-card-placeholder > span {
    font-size: 42px;
}

.stock-catalogue-card-badge {
    position: absolute;
    top: 13px;
    left: 13px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 7px 11px;
    color: #222;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 999px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.13);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.stock-catalogue-card-badge--sale,
.stock-catalogue-card-badge--clearance {
    color: #fff;
    background: #d40000;
    border-color: #d40000;
}

.stock-page .stock-catalogue-card-wishlist {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    margin: 0;
    padding: 0;
    color: #222;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 50%;
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.14);
    font-size: 25px;
    line-height: 1;
    backdrop-filter: blur(8px);
}

.stock-page .stock-catalogue-card-wishlist:hover,
.stock-page .stock-catalogue-card-wishlist[aria-pressed="true"] {
    color: #d40000;
    background: #fff;
    transform: translateY(-2px);
}

.stock-catalogue-card-status {
    position: absolute;
    right: 12px;
    bottom: 12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 7px 11px;
    color: #1f6829;
    background: rgba(244, 255, 245, 0.95);
    border: 1px solid rgba(31, 104, 41, 0.16);
    border-radius: 999px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    backdrop-filter: blur(8px);
}

.stock-catalogue-card-status-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    background: #2f9b3f;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(47, 155, 63, 0.14);
}

.stock-catalogue-card-status--reserved {
    color: #735600;
    background: rgba(255, 250, 231, 0.96);
    border-color: rgba(115, 86, 0, 0.16);
}

.stock-catalogue-card-status--reserved .stock-catalogue-card-status-dot {
    background: #d09a00;
    box-shadow: 0 0 0 3px rgba(208, 154, 0, 0.14);
}

.stock-catalogue-card-status--sold {
    color: #8b1d1d;
    background: rgba(255, 241, 241, 0.96);
    border-color: rgba(139, 29, 29, 0.16);
}

.stock-catalogue-card-status--sold .stock-catalogue-card-status-dot {
    background: #c62b2b;
    box-shadow: 0 0 0 3px rgba(198, 43, 43, 0.14);
}

.stock-page .stock-catalogue-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 18px;
    padding: 22px;
}

.stock-catalogue-card-heading {
    display: grid;
    gap: 9px;
}

.stock-page .stock-catalogue-card-title {
    margin: 0;
    font-size: clamp(22px, 2vw, 28px);
    line-height: 1.16;
    letter-spacing: -0.025em;
}

.stock-page .stock-catalogue-card-title a {
    color: #222;
    text-decoration: none;
}

.stock-page .stock-catalogue-card-title a:hover {
    color: #d40000;
}

.stock-page .stock-catalogue-card-price {
    margin: 0;
    color: #d40000;
    font-size: clamp(25px, 2.2vw, 32px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.025em;
}

.stock-catalogue-card-description {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: #666;
    font-size: 15px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.stock-catalogue-card-configurations {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin: 0;
    padding: 8px 11px;
    color: #555;
    background: #f5f5f5;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
}

.stock-page .stock-catalogue-card-specifications {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
}

.stock-page .stock-catalogue-card-specification {
    display: grid;
    gap: 5px;
    min-width: 0;
    margin: 0;
    padding: 12px;
    background: #f7f7f7;
    border: 1px solid #ededed;
    border-radius: 11px;
}

.stock-page .stock-catalogue-card-specification dt {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin: 0;
    color: #777;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.stock-page .stock-catalogue-card-specification dd {
    min-width: 0;
    margin: 0;
    color: #242424;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.stock-page .stock-catalogue-card-specification .stock-card-specification-icon {
    font-size: 14px;
}

.stock-catalogue-card-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 11px;
    margin-top: auto;
    padding-top: 3px;
}

.stock-page .stock-catalogue-card-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 50px;
    margin: 0;
    padding: 12px 17px;
    color: #fff;
    background: #d40000;
    border: 2px solid #d40000;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
}

.stock-page .stock-catalogue-card-primary-action:hover {
    color: #fff;
    background: #b50000;
    border-color: #b50000;
    transform: translateY(-2px);
}

.stock-page .stock-catalogue-card-compare {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 50px;
    margin: 0;
    padding: 11px 14px;
    color: #333;
    background: #fff;
    border: 2px solid #dedede;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 800;
}

.stock-page .stock-catalogue-card-compare:hover,
.stock-page .stock-catalogue-card-compare[aria-pressed="true"] {
    color: #d40000;
    background: #fff7f7;
    border-color: #d40000;
    transform: translateY(-2px);
}

@media (max-width: 1100px) {
    .stock-page .stock-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .stock-page .stock-products {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .stock-catalogue-card-media {
        margin: 10px 10px 0;
        border-radius: 14px;
    }

    .stock-page .stock-catalogue-card-content {
        gap: 15px;
        padding: 18px;
    }

    .stock-page .stock-catalogue-card-specifications {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stock-catalogue-card-actions {
        grid-template-columns: 1fr;
    }

    .stock-page .stock-catalogue-card-primary-action,
    .stock-page .stock-catalogue-card-compare {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .stock-page .stock-catalogue-card-specifications {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stock-page .stock-catalogue-card,
    .stock-page .stock-catalogue-card-image img,
    .stock-page .stock-catalogue-card-wishlist,
    .stock-page .stock-catalogue-card-primary-action,
    .stock-page .stock-catalogue-card-compare {
        transition: none;
    }
}

/* ==========================================================
   SINGLE PRODUCT PREMIUM REBUILD — VERSION 2.5
   Template-matched styling for single-stock.php
========================================================== */

.single-stock-page {
    background:
        linear-gradient(180deg, #f5f5f5 0, #ffffff 340px);
}

.single-stock-page > .container {
    max-width: 1280px;
}

.single-stock-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin: 0 0 24px;
    color: var(--sbb-text-muted);
    font-size: 14px;
    line-height: 1.4;
}

.single-stock-breadcrumb a {
    color: var(--sbb-text-muted);
    font-weight: 700;
    text-decoration: none;
}

.single-stock-breadcrumb a:hover {
    color: var(--sbb-primary);
}

.single-stock-breadcrumb [aria-current="page"] {
    min-width: 0;
    overflow: hidden;
    color: var(--sbb-text);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stock-detail-card-premium {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
    align-items: start;
    gap: clamp(34px, 5vw, 70px);
    max-width: none;
    padding: clamp(24px, 3vw, 42px);
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 26px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.11);
}

.stock-detail-card-premium > .stock-badge {
    top: 58px;
    left: 58px;
    z-index: 5;
}

.stock-detail-card-premium .stock-product-gallery {
    position: sticky;
    top: 28px;
    min-width: 0;
}

.stock-detail-card-premium .stock-main-image-button {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 3;
    padding: 0;
    background: #f2f2f2;
    border: 0;
    border-radius: 20px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05);
}

.stock-detail-card-premium .stock-main-image-button img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.stock-image-count {
    position: absolute;
    top: 16px;
    right: 16px;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    color: #fff;
    background: rgba(0, 0, 0, 0.68);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    backdrop-filter: blur(6px);
}

.stock-detail-card-premium .stock-gallery-thumbnails {
    margin-top: 14px;
}

.stock-detail-card-premium .single-stock-details {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.single-stock-product-header {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--sbb-border);
}

.single-stock-product-eyebrow,
.single-stock-cta-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: var(--sbb-primary);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.single-stock-product-eyebrow::before,
.single-stock-cta-eyebrow::before {
    content: "";
    width: 24px;
    height: 3px;
    flex: 0 0 auto;
    background: var(--sbb-primary);
    border-radius: 999px;
}

.single-stock-product-header h1 {
    margin: 0;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.06;
    letter-spacing: -0.035em;
}

.single-stock-price-block {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-top: 22px;
    padding: 18px 20px;
    background: linear-gradient(135deg, #fff4f4, #fff);
    border: 1px solid rgba(212, 0, 0, 0.13);
    border-radius: 16px;
}

.single-stock-price-label {
    color: var(--sbb-text-muted);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.single-stock-price-block .single-stock-price {
    margin: 0;
    color: var(--sbb-primary);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.stock-detail-card-premium .stock-product-overview,
.stock-detail-card-premium .stock-configuration-selector,
.single-stock-confidence-panel,
.single-stock-specification-panel,
.single-stock-cta-panel {
    margin: 0;
    padding: 22px;
    background: #fafafa;
    border: 1px solid var(--sbb-border);
    border-radius: 18px;
}

.stock-detail-card-premium .stock-product-overview-heading {
    margin-bottom: 14px;
}

.stock-detail-card-premium .stock-product-overview-heading h2,
.stock-detail-card-premium .stock-configuration-heading h2,
.single-stock-cta-heading h2 {
    margin: 0;
    font-size: clamp(23px, 2.2vw, 30px);
    line-height: 1.18;
}

.stock-detail-card-premium .stock-product-overview-content {
    max-width: none;
    margin: 0;
    color: #555;
}

.stock-detail-card-premium .stock-current-selection {
    margin: 0;
    padding: 18px 20px;
    background: #222;
    border: 0;
    border-radius: 16px;
    color: #fff;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.15);
}

.stock-detail-card-premium .stock-current-selection-label {
    color: rgba(255, 255, 255, 0.65);
}

.stock-detail-card-premium .stock-current-selection-price {
    color: #fff;
}

.stock-detail-card-premium .stock-current-selection-availability {
    color: #bff0c3;
}

.stock-detail-card-premium .stock-configuration-options {
    gap: 10px;
}

.stock-detail-card-premium .stock-configuration-option {
    min-height: 66px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--sbb-border);
    border-radius: 13px;
}

.stock-detail-card-premium .stock-configuration-option:hover {
    border-color: rgba(212, 0, 0, 0.32);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.07);
}

.stock-detail-card-premium .stock-configuration-option.is-selected,
.stock-detail-card-premium .stock-configuration-option:has(input:checked) {
    background: #fff5f5;
    border-color: var(--sbb-primary);
    box-shadow: 0 0 0 3px rgba(212, 0, 0, 0.08);
}

.single-stock-confidence-panel {
    background: #fff;
}

.single-stock-confidence-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.single-stock-confidence-heading span {
    color: var(--sbb-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.single-stock-confidence-heading strong {
    color: var(--sbb-text-muted);
    font-size: 13px;
}

.single-stock-confidence-panel .stock-highlights {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 0;
}

.single-stock-confidence-panel .stock-highlight {
    min-height: 62px;
    justify-content: flex-start;
    margin: 0;
    padding: 14px 16px;
    border-radius: 13px;
}

.single-stock-specification-panel {
    background: #fff;
}

.single-stock-cta-panel {
    padding: 24px;
    color: #fff;
    background:
        linear-gradient(135deg, #222 0%, #333 100%);
    border: 0;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.18);
}

.single-stock-cta-heading {
    margin-bottom: 20px;
}

.single-stock-cta-heading h2 {
    color: #fff;
}

.single-stock-cta-heading p {
    margin: 10px 0 0;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
}

.single-stock-cta-panel .single-stock-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 11px;
    margin: 0;
    padding: 0;
}

.single-stock-cta-panel .single-stock-action-button {
    min-height: 50px;
    justify-content: center;
    margin: 0;
    border-radius: 11px;
}

.single-stock-cta-panel .single-stock-enquiry-button {
    grid-column: 1 / -1;
    min-height: 56px;
    color: #fff;
    background: var(--sbb-primary);
    border-color: var(--sbb-primary);
    font-weight: 800;
}

.single-stock-cta-panel .single-stock-enquiry-button:hover {
    background: var(--sbb-primary-dark);
}

.single-stock-cta-panel .single-stock-back-button {
    grid-column: 1 / -1;
    color: rgba(255, 255, 255, 0.72);
    background: transparent;
    border-color: rgba(255, 255, 255, 0.18);
}

.single-stock-page .related-stock-section,
.single-stock-page .recently-viewed-section {
    margin-top: 70px;
    padding: clamp(28px, 4vw, 48px);
    background: #fff;
    border: 1px solid var(--sbb-border);
    border-radius: 24px;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.08);
}

.single-stock-page .related-stock-heading,
.single-stock-page .recently-viewed-heading {
    max-width: 720px;
    margin: 0 auto 34px;
    text-align: center;
}

@media (max-width: 1050px) {
    .stock-detail-card-premium {
        grid-template-columns: 1fr;
        max-width: 860px;
        margin: 0 auto;
    }

    .stock-detail-card-premium .stock-product-gallery {
        position: static;
    }
}

@media (max-width: 700px) {
    .single-stock-breadcrumb {
        margin-bottom: 16px;
    }

    .stock-detail-card-premium {
        gap: 26px;
        padding: 16px;
        border-radius: 18px;
    }

    .stock-detail-card-premium .stock-main-image-button {
        aspect-ratio: 1 / 1;
        border-radius: 15px;
    }

    .stock-detail-card-premium .single-stock-details {
        gap: 18px;
    }

    .single-stock-product-header {
        padding-bottom: 18px;
    }

    .single-stock-product-header h1 {
        font-size: clamp(30px, 10vw, 42px);
    }

    .single-stock-price-block {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        padding: 16px;
    }

    .stock-detail-card-premium .stock-product-overview,
    .stock-detail-card-premium .stock-configuration-selector,
    .single-stock-confidence-panel,
    .single-stock-specification-panel,
    .single-stock-cta-panel {
        padding: 18px;
        border-radius: 15px;
    }

    .single-stock-confidence-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .single-stock-confidence-panel .stock-highlights {
        grid-template-columns: 1fr;
    }

    .single-stock-cta-panel .single-stock-actions {
        grid-template-columns: 1fr;
    }

    .single-stock-cta-panel .single-stock-enquiry-button,
    .single-stock-cta-panel .single-stock-back-button {
        grid-column: auto;
    }

    .single-stock-page .related-stock-section,
    .single-stock-page .recently-viewed-section {
        margin-top: 42px;
        padding: 22px 16px;
        border-radius: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stock-detail-card-premium *,
    .single-stock-page .related-stock-section *,
    .single-stock-page .recently-viewed-section * {
        scroll-behavior: auto;
    }
}

/* ==========================================================
   SINGLE PRODUCT STATIC LAYOUT FIX — VERSION 2.6
   Keeps all product information in the normal page flow.
========================================================== */

.stock-detail-card-premium {
    display: block;
    max-width: 1040px;
    margin-right: auto;
    margin-left: auto;
}

.stock-detail-card-premium .stock-product-gallery {
    position: static;
    top: auto;
    width: 100%;
    margin: 0 0 34px;
}

.stock-detail-card-premium .stock-main-image-button {
    aspect-ratio: 16 / 10;
}

.stock-detail-card-premium .single-stock-details {
    width: 100%;
}

.stock-detail-card-premium > .stock-badge {
    top: 58px;
    left: 58px;
}

@media (max-width: 700px) {
    .stock-detail-card-premium .stock-product-gallery {
        margin-bottom: 24px;
    }

    .stock-detail-card-premium .stock-main-image-button {
        aspect-ratio: 4 / 3;
    }

    .stock-detail-card-premium > .stock-badge {
        top: 32px;
        left: 32px;
    }
}

/* ==========================================================
   SINGLE PRODUCT VISUAL POLISH — VERSION 2.7
   Static layout retained; visual hierarchy enhanced.
========================================================== */

.stock-detail-card-premium {
    max-width: 1100px;
    padding: clamp(18px, 3vw, 38px);
}

.stock-detail-card-premium .stock-main-image-button {
    background:
        linear-gradient(135deg, #f1f1f1, #fafafa);
    box-shadow:
        inset 0 0 0 1px rgba(0, 0, 0, 0.05),
        0 18px 36px rgba(0, 0, 0, 0.09);
}

.stock-detail-card-premium .stock-main-image-button::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        transparent 68%,
        rgba(0, 0, 0, 0.18) 100%
    );
}

.stock-detail-card-premium .stock-image-zoom-message,
.stock-detail-card-premium .stock-image-count {
    z-index: 2;
}

.stock-detail-card-premium .stock-gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 112px));
    gap: 12px;
}

.stock-detail-card-premium .stock-gallery-thumbnail {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    padding: 4px;
    background: #fff;
    border: 2px solid transparent;
    border-radius: 14px;
    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.08);
}

.stock-detail-card-premium .stock-gallery-thumbnail img {
    width: 100%;
    height: 100%;
    border-radius: 9px;
    object-fit: cover;
}

.stock-detail-card-premium .stock-gallery-thumbnail:hover {
    transform: translateY(-2px);
    border-color: rgba(212, 0, 0, 0.34);
}

.stock-detail-card-premium .stock-gallery-thumbnail.is-active {
    border-color: var(--sbb-primary);
    box-shadow: 0 0 0 3px rgba(212, 0, 0, 0.10);
}

.single-stock-product-header {
    text-align: center;
}

.single-stock-product-eyebrow {
    justify-content: center;
}

.single-stock-price-block {
    max-width: 620px;
    margin-right: auto;
    margin-left: auto;
}

.single-stock-quick-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.single-stock-quick-fact {
    display: grid;
    grid-template-columns: 38px 1fr;
    grid-template-areas:
        "icon label"
        "icon value";
    align-items: center;
    min-height: 82px;
    padding: 14px;
    background: #fff;
    border: 1px solid var(--sbb-border);
    border-radius: 15px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.055);
}

.single-stock-quick-fact-icon {
    grid-area: icon;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: var(--sbb-primary);
    background: #fff0f0;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 900;
}

.single-stock-quick-fact-label {
    grid-area: label;
    color: var(--sbb-text-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.single-stock-quick-fact strong {
    grid-area: value;
    color: var(--sbb-text);
    font-size: 15px;
    line-height: 1.25;
}

.stock-detail-card-premium .stock-product-overview {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 4vw, 38px);
    background:
        linear-gradient(135deg, #fff 0%, #fafafa 100%);
}

.stock-detail-card-premium .stock-product-overview::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--sbb-primary);
}

.stock-detail-card-premium .stock-product-overview-content {
    font-size: 17px;
    line-height: 1.75;
}

.stock-detail-card-premium .stock-configuration-selector {
    padding: clamp(22px, 3vw, 30px);
    background: #f7f7f7;
}

.stock-detail-card-premium .stock-configuration-heading {
    margin-bottom: 22px;
    text-align: center;
}

.stock-detail-card-premium .stock-configuration-heading p {
    max-width: 620px;
    margin-right: auto;
    margin-left: auto;
}

.stock-detail-card-premium .stock-configuration-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.stock-detail-card-premium .stock-configuration-option {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    min-height: 92px;
    padding: 14px;
}

.stock-configuration-image {
    overflow: hidden;
    width: 62px;
    height: 62px;
    flex: 0 0 auto;
    background: #eee;
    border-radius: 11px;
}

.stock-configuration-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.stock-configuration-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.stock-configuration-name {
    color: var(--sbb-text);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
}

.stock-configuration-order-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--sbb-success-text);
    font-size: 12px;
    font-weight: 700;
}

.stock-configuration-order-status span {
    display: grid;
    place-items: center;
    width: 17px;
    height: 17px;
    color: #fff;
    background: var(--sbb-success-text);
    border-radius: 50%;
    font-size: 10px;
}

.stock-detail-card-premium .stock-configuration-price {
    color: var(--sbb-primary);
    font-size: 20px;
    font-weight: 900;
    white-space: nowrap;
}

.single-stock-confidence-panel {
    border-left: 5px solid var(--sbb-primary);
}

.single-stock-specification-panel {
    padding: clamp(22px, 3vw, 30px);
    box-shadow: 0 9px 24px rgba(0, 0, 0, 0.05);
}

.single-stock-trust-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 22px;
    background: #f4f4f4;
    border: 1px solid var(--sbb-border);
    border-radius: 18px;
}

.single-stock-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    background: #fff;
    border-radius: 13px;
}

.single-stock-trust-item > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    color: #fff;
    background: var(--sbb-primary);
    border-radius: 50%;
    font-size: 13px;
    font-weight: 900;
}

.single-stock-trust-item div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.single-stock-trust-item strong {
    color: var(--sbb-text);
    font-size: 15px;
    line-height: 1.3;
}

.single-stock-trust-item small {
    color: var(--sbb-text-muted);
    font-size: 13px;
    line-height: 1.45;
}

.single-stock-cta-panel {
    padding: clamp(25px, 4vw, 38px);
    text-align: center;
}

.single-stock-cta-eyebrow {
    justify-content: center;
}

.single-stock-cta-heading p {
    max-width: 650px;
    margin-right: auto;
    margin-left: auto;
}

.single-stock-cta-panel .single-stock-actions {
    max-width: 720px;
    margin-right: auto;
    margin-left: auto;
}

.single-stock-cta-panel .single-stock-enquiry-button {
    min-height: 64px;
    font-size: 17px;
    box-shadow: 0 12px 24px rgba(212, 0, 0, 0.24);
}

.single-stock-cta-panel .single-stock-enquiry-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(212, 0, 0, 0.30);
}

.single-stock-page .related-stock-card,
.single-stock-page .recently-viewed-card {
    overflow: hidden;
    border: 1px solid var(--sbb-border);
    border-radius: 17px;
    box-shadow: 0 9px 24px rgba(0, 0, 0, 0.07);
}

.single-stock-page .related-stock-card:hover,
.single-stock-page .recently-viewed-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 17px 34px rgba(0, 0, 0, 0.12);
}

.single-stock-page .related-stock-image,
.single-stock-page .recently-viewed-image {
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.single-stock-page .related-stock-image img,
.single-stock-page .recently-viewed-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--sbb-transition-slow);
}

.single-stock-page .related-stock-card:hover img,
.single-stock-page .recently-viewed-card:hover img {
    transform: scale(1.045);
}

@media (max-width: 900px) {
    .single-stock-quick-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stock-detail-card-premium .stock-configuration-options {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .single-stock-product-header {
        text-align: left;
    }

    .single-stock-product-eyebrow {
        justify-content: flex-start;
    }

    .single-stock-quick-facts {
        grid-template-columns: 1fr 1fr;
        gap: 9px;
    }

    .single-stock-quick-fact {
        grid-template-columns: 32px 1fr;
        min-height: 72px;
        padding: 11px;
    }

    .single-stock-quick-fact-icon {
        width: 29px;
        height: 29px;
    }

    .stock-detail-card-premium .stock-configuration-option {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .stock-detail-card-premium .stock-configuration-option .stock-configuration-image {
        display: none;
    }

    .single-stock-trust-panel {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .single-stock-cta-panel {
        text-align: left;
    }

    .single-stock-cta-eyebrow {
        justify-content: flex-start;
    }
}

/* ==========================================================
   12. PREMIUM HOMEPAGE REBUILD — VERSION 2.8
========================================================== */

.premium-homepage {
    overflow: hidden;
    background: #fff;
}

.premium-homepage .home-section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: var(--sbb-primary);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
}

.premium-homepage .home-section-eyebrow::before {
    content: "";
    width: 28px;
    height: 3px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: currentColor;
}

.home-section-heading {
    max-width: 790px;
    margin: 0 auto 48px;
    text-align: center;
}

.home-section-heading h2 {
    margin: 0 0 16px;
    color: var(--sbb-text);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: -0.035em;
}

.home-section-heading p {
    max-width: 700px;
    margin: 0 auto;
    color: var(--sbb-text-muted);
    font-size: 18px;
    line-height: 1.75;
}

.home-section-heading-light h2,
.home-section-heading-light p {
    color: #fff;
}

.home-section-heading-light p {
    color: rgba(255, 255, 255, 0.74);
}

/* Hero */

.home-hero {
    position: relative;
    min-height: 720px;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 78px 0 88px;
    background:
        radial-gradient(circle at 77% 15%, rgba(212, 0, 0, 0.10), transparent 28%),
        linear-gradient(135deg, #fafafa 0%, #f1f1f1 100%);
}

.home-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(500px, 1.08fr);
    align-items: center;
    gap: clamp(40px, 6vw, 84px);
}

.home-hero-content {
    max-width: 650px;
}

.home-hero-content h1 {
    margin: 0;
    color: #191919;
    font-size: clamp(48px, 6vw, 78px);
    font-weight: 900;
    line-height: 0.99;
    letter-spacing: -0.055em;
}

.home-hero-content h1 span {
    display: block;
    margin-top: 10px;
    color: var(--sbb-primary);
}

.home-hero-intro {
    max-width: 650px;
    margin: 28px 0 0;
    color: #565656;
    font-size: clamp(18px, 1.8vw, 21px);
    line-height: 1.72;
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.home-hero-actions .button {
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin: 0;
    padding: 15px 25px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 900;
}

.home-primary-button {
    box-shadow: 0 14px 28px rgba(212, 0, 0, 0.24);
}

.home-primary-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px rgba(212, 0, 0, 0.30);
}

.home-secondary-button {
    background: #fff;
    border: 1px solid #ddd;
    color: #222;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.07);
}

.home-secondary-button:hover {
    background: #222;
    border-color: #222;
    color: #fff;
}

.home-hero-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 42px;
}

.home-hero-trust-item {
    min-width: 0;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 13px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.05);
    backdrop-filter: blur(12px);
}

.home-hero-trust-item strong,
.home-hero-trust-item span {
    display: block;
}

.home-hero-trust-item strong {
    color: var(--sbb-primary);
    font-size: 21px;
    font-weight: 900;
    line-height: 1.2;
}

.home-hero-trust-item span {
    margin-top: 4px;
    color: #666;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.home-hero-visual {
    position: relative;
}

.home-hero-image-frame {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 44px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(236, 236, 236, 0.95));
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 34px;
    box-shadow:
        0 34px 80px rgba(0, 0, 0, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.home-hero-image-frame::before {
    content: "";
    position: absolute;
    inset: 24px;
    border: 1px solid rgba(212, 0, 0, 0.10);
    border-radius: 24px;
    pointer-events: none;
}

.home-hero-image-frame img {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 650px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 24px 24px rgba(0, 0, 0, 0.24));
}

.home-hero-floating-card {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    width: min(270px, 78%);
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 15px;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.14);
    backdrop-filter: blur(10px);
}

.home-hero-floating-card-top {
    top: 28px;
    right: -24px;
}

.home-hero-floating-card-bottom {
    bottom: 24px;
    left: -28px;
}

.home-floating-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: var(--sbb-primary);
    border-radius: 11px;
    font-size: 16px;
    font-weight: 900;
}

.home-hero-floating-card strong,
.home-hero-floating-card small {
    display: block;
}

.home-hero-floating-card strong {
    color: #222;
    font-size: 14px;
    line-height: 1.3;
}

.home-hero-floating-card small {
    margin-top: 3px;
    color: #777;
    font-size: 11px;
    line-height: 1.35;
}

.home-hero-background-shape {
    position: absolute;
    right: -180px;
    bottom: -280px;
    width: 650px;
    height: 650px;
    border: 90px solid rgba(212, 0, 0, 0.055);
    border-radius: 50%;
}

/* Benefits */

.home-benefits {
    padding: 96px 0;
    background: #fff;
}

.home-benefit-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.home-benefit-card {
    position: relative;
    overflow: hidden;
    min-height: 270px;
    padding: 30px;
    background: #fff;
    border: 1px solid var(--sbb-border);
    border-radius: 20px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.065);
}

.home-benefit-card::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -55px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: rgba(212, 0, 0, 0.045);
    transition: transform var(--sbb-transition-slow);
}

.home-benefit-card:hover {
    transform: translateY(-6px);
    border-color: rgba(212, 0, 0, 0.28);
    box-shadow: 0 20px 42px rgba(0, 0, 0, 0.11);
}

.home-benefit-card:hover::after {
    transform: scale(1.25);
}

.home-benefit-number {
    position: absolute;
    top: 22px;
    right: 24px;
    color: #e6e6e6;
    font-size: 35px;
    font-weight: 900;
    line-height: 1;
}

.home-benefit-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin-bottom: 23px;
    color: var(--sbb-primary);
    background: #fff1f1;
    border-radius: 15px;
    font-size: 24px;
    font-weight: 900;
}

.home-benefit-card h3 {
    position: relative;
    z-index: 1;
    margin: 0;
    color: #222;
    font-size: 21px;
    font-weight: 900;
    line-height: 1.25;
}

.home-benefit-card p {
    position: relative;
    z-index: 1;
    margin: 13px 0 0;
    color: #6a6a6a;
    font-size: 15px;
    line-height: 1.68;
}

/* Categories */

.home-categories {
    position: relative;
    padding: 100px 0;
    background:
        linear-gradient(135deg, #1e1e1e 0%, #111 100%);
}

.home-categories::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.5;
    background:
        radial-gradient(circle at 15% 10%, rgba(212, 0, 0, 0.19), transparent 28%),
        radial-gradient(circle at 88% 78%, rgba(255, 255, 255, 0.05), transparent 32%);
    pointer-events: none;
}

.home-categories .container {
    position: relative;
    z-index: 1;
}

.home-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, 245px);
    gap: 18px;
}

.home-category-card {
    position: relative;
    overflow: hidden;
    min-height: 245px;
    display: flex;
    align-items: flex-end;
    border-radius: 20px;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
    text-decoration: none;
}

.home-category-card-large {
    grid-column: span 2;
    grid-row: span 2;
}

.home-category-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.65s ease;
}

.home-category-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.02) 20%, rgba(0, 0, 0, 0.84) 100%);
}

.home-category-content {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    padding: 26px;
}

.home-category-content small {
    color: rgba(255, 255, 255, 0.70);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-category-content strong {
    margin-top: 6px;
    color: #fff;
    font-size: clamp(23px, 2.2vw, 34px);
    font-weight: 900;
    line-height: 1.12;
}

.home-category-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 15px;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.home-category-card:hover img {
    transform: scale(1.07);
}

.home-category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 26px 48px rgba(0, 0, 0, 0.30);
}

.home-clearance-card {
    background:
        linear-gradient(135deg, #e00000 0%, #aa0000 100%);
}

.home-clearance-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background-image:
        linear-gradient(45deg, transparent 45%, rgba(255,255,255,0.22) 45%, rgba(255,255,255,0.22) 55%, transparent 55%);
    background-size: 26px 26px;
}

.home-clearance-price {
    position: absolute;
    right: 18px;
    top: -18px;
    color: rgba(255, 255, 255, 0.14);
    font-size: 180px;
    font-weight: 900;
    line-height: 1;
}

/* Latest arrivals */

.home-latest-arrivals {
    padding: 100px 0;
    background: #f7f7f7;
}

.home-section-heading-row {
    max-width: none;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    text-align: left;
}

.home-section-heading-row > div {
    max-width: 760px;
}

.home-section-heading-row p {
    margin-left: 0;
}

.home-text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding-bottom: 4px;
    color: var(--sbb-primary);
    border-bottom: 2px solid currentColor;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}

.home-text-link:hover {
    gap: 14px;
    color: var(--sbb-primary-dark);
}

.home-latest-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.home-product-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--sbb-border);
    border-radius: 21px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.075);
}

.home-product-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.14);
}

.home-product-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #eee;
}

.home-product-media > a:first-of-type {
    display: block;
    width: 100%;
    height: 100%;
}

.home-product-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.home-product-card:hover .home-product-media img {
    transform: scale(1.055);
}

.home-product-media .stock-badge {
    position: absolute;
    z-index: 3;
    top: 16px;
    left: 16px;
}

.home-product-image-link {
    position: absolute;
    z-index: 2;
    right: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 9px 14px;
    color: #fff;
    background: rgba(0, 0, 0, 0.74);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    backdrop-filter: blur(8px);
    opacity: 0;
    transform: translateY(10px);
}

.home-product-card:hover .home-product-image-link {
    opacity: 1;
    transform: translateY(0);
}

.home-product-placeholder {
    display: grid !important;
    place-items: center;
    color: #888;
    font-size: 14px;
}

.home-product-content {
    padding: 25px;
}

.home-product-availability {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 12px;
    color: var(--sbb-success-text);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.home-product-availability > span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 4px rgba(33, 122, 33, 0.10);
}

.home-product-availability.sold,
.home-product-availability.sold-out {
    color: var(--sbb-danger-text);
}

.home-product-availability.reserved {
    color: var(--sbb-warning-text);
}

.home-product-content h3 {
    margin: 0;
    color: #222;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.25;
}

.home-product-content h3 a {
    color: inherit;
    text-decoration: none;
}

.home-product-content h3 a:hover {
    color: var(--sbb-primary);
}

.home-product-excerpt {
    margin: 12px 0 0;
    color: #6f6f6f;
    font-size: 14px;
    line-height: 1.65;
}

.home-product-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #ececec;
}

.home-product-price small,
.home-product-price strong {
    display: block;
}

.home-product-price small {
    color: #888;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-product-price strong {
    margin-top: 2px;
    color: var(--sbb-primary);
    font-size: 27px;
    font-weight: 900;
    line-height: 1.1;
}

.home-product-arrow {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: #222;
    border-radius: 12px;
    font-size: 21px;
    text-decoration: none;
}

.home-product-arrow:hover {
    background: var(--sbb-primary);
    transform: translateX(3px);
}

.home-mobile-stock-link {
    display: none;
    margin-top: 30px;
    text-align: center;
}

.home-no-stock {
    padding: 50px 30px;
    text-align: center;
    background: #fff;
    border: 1px dashed #ccc;
    border-radius: 20px;
}

.home-no-stock > span {
    display: block;
    font-size: 42px;
}

.home-no-stock h3 {
    margin: 14px 0 0;
}

.home-no-stock p {
    margin: 8px 0 0;
    color: #777;
}

/* Showroom */

.home-showroom {
    padding: 105px 0;
    background: #fff;
}

.home-showroom-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
    align-items: stretch;
    gap: clamp(34px, 5vw, 72px);
}

.home-showroom-content {
    align-self: center;
}

.home-showroom-content h2 {
    margin: 0;
    color: #222;
    font-size: clamp(38px, 4.5vw, 54px);
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.home-showroom-intro {
    margin: 22px 0 0;
    color: #666;
    font-size: 18px;
    line-height: 1.74;
}

.home-showroom-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 30px;
}

.home-showroom-detail {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px;
    background: #f7f7f7;
    border: 1px solid #e9e9e9;
    border-radius: 15px;
}

.home-showroom-detail > span {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: var(--sbb-primary);
    border-radius: 10px;
    font-size: 16px;
    font-weight: 900;
}

.home-showroom-detail strong {
    color: #222;
    font-size: 14px;
}

.home-showroom-detail p {
    margin: 5px 0 0;
    color: #686868;
    font-size: 13px;
    line-height: 1.55;
}

.home-showroom-detail a {
    color: var(--sbb-primary);
    font-weight: 800;
    text-decoration: none;
}

.home-opening-hours {
    margin-top: 18px;
    padding: 21px;
    background: #222;
    border-radius: 16px;
    color: #fff;
}

.home-opening-hours-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.home-opening-hours-heading > span {
    color: var(--sbb-primary);
    font-size: 20px;
}

.home-opening-hours-heading h3 {
    margin: 0;
    color: #fff;
    font-size: 18px;
}

.home-hours-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.10);
    font-size: 14px;
}

.home-hours-row span {
    color: rgba(255, 255, 255, 0.68);
}

.home-hours-row strong {
    color: #fff;
}

.home-showroom-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 25px;
}

.home-showroom-actions .button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    border-radius: 11px;
}

.home-showroom-map-wrap {
    position: relative;
    min-height: 630px;
}

.home-showroom-map {
    overflow: hidden;
    width: 100%;
    height: 100%;
    min-height: 630px;
    border: 10px solid #f2f2f2;
    border-radius: 26px;
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.16);
}

.home-showroom-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 610px;
}

.home-map-card {
    position: absolute;
    left: -30px;
    bottom: 28px;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 280px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 15px;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.16);
}

.home-map-card > span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: var(--sbb-primary);
    border-radius: 11px;
}

.home-map-card strong,
.home-map-card small {
    display: block;
}

.home-map-card strong {
    color: #222;
    font-size: 14px;
}

.home-map-card small {
    margin-top: 3px;
    color: #777;
    font-size: 11px;
}

/* Testimonials */

.home-testimonials {
    padding: 100px 0;
    background:
        linear-gradient(135deg, #f8f8f8 0%, #efefef 100%);
}

.home-testimonial-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.home-testimonial-card {
    position: relative;
    padding: 30px;
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 20px;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.07);
}

.home-testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 44px rgba(0, 0, 0, 0.12);
}

.home-testimonial-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.home-stars {
    color: #f4b000;
    font-size: 16px;
    letter-spacing: 2px;
}

.home-quote-mark {
    height: 34px;
    color: rgba(212, 0, 0, 0.13);
    font-family: Georgia, serif;
    font-size: 74px;
    line-height: 0.75;
}

.home-testimonial-card > p {
    min-height: 104px;
    margin: 20px 0 0;
    color: #555;
    font-size: 16px;
    line-height: 1.72;
}

.home-testimonial-author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 23px;
    padding-top: 20px;
    border-top: 1px solid #ececec;
}

.home-testimonial-author > span {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: var(--sbb-primary);
    border-radius: 50%;
    font-size: 13px;
    font-weight: 900;
}

.home-testimonial-author strong,
.home-testimonial-author small {
    display: block;
}

.home-testimonial-author strong {
    color: #222;
    font-size: 14px;
}

.home-testimonial-author small {
    margin-top: 2px;
    color: #888;
    font-size: 11px;
}

/* Final CTA */

.home-final-cta {
    position: relative;
    overflow: hidden;
    padding: 84px 0;
    background:
        linear-gradient(135deg, #c80000 0%, #8e0000 100%);
}

.home-final-cta::before,
.home-final-cta::after {
    content: "";
    position: absolute;
    border: 60px solid rgba(255, 255, 255, 0.06);
    border-radius: 50%;
}

.home-final-cta::before {
    top: -220px;
    left: -160px;
    width: 420px;
    height: 420px;
}

.home-final-cta::after {
    right: -160px;
    bottom: -250px;
    width: 480px;
    height: 480px;
}

.home-final-cta-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

.home-final-cta .home-section-eyebrow {
    color: rgba(255, 255, 255, 0.75);
}

.home-final-cta-content {
    max-width: 720px;
}

.home-final-cta-content h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(38px, 4.7vw, 58px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.home-final-cta-content p {
    max-width: 650px;
    margin: 19px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 18px;
    line-height: 1.7;
}

.home-final-cta-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
    flex: 0 0 300px;
}

.home-final-primary {
    min-height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    background: #fff;
    color: var(--sbb-primary);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
}

.home-final-primary:hover {
    background: #222;
    color: #fff;
    transform: translateY(-3px);
}

.home-final-phone {
    display: block;
    padding: 13px 16px;
    text-align: center;
    color: #fff;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 12px;
    text-decoration: none;
}

.home-final-phone:hover {
    background: rgba(255, 255, 255, 0.17);
}

.home-final-phone small,
.home-final-phone strong {
    display: block;
}

.home-final-phone small {
    color: rgba(255, 255, 255, 0.68);
    font-size: 11px;
}

.home-final-phone strong {
    margin-top: 3px;
    color: #fff;
    font-size: 20px;
}

/* Responsive */

@media (max-width: 1120px) {
    .home-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(420px, 0.95fr);
        gap: 44px;
    }

    .home-benefit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 360px repeat(2, 230px);
    }

    .home-category-card-large {
        grid-column: span 2;
        grid-row: span 1;
    }

    .home-showroom-grid {
        grid-template-columns: minmax(0, 1fr) minmax(440px, 1fr);
        gap: 42px;
    }
}

@media (max-width: 900px) {
    .home-hero {
        min-height: auto;
        padding: 66px 0 78px;
    }

    .home-hero-grid {
        grid-template-columns: 1fr;
    }

    .home-hero-content {
        max-width: 760px;
        text-align: center;
        margin: 0 auto;
    }

    .home-hero-content .home-section-eyebrow,
    .home-hero-actions {
        justify-content: center;
    }

    .home-hero-intro {
        margin-right: auto;
        margin-left: auto;
    }

    .home-hero-image-frame {
        min-height: 430px;
        max-width: 760px;
        margin: 10px auto 0;
    }

    .home-section-heading-row {
        display: block;
        text-align: center;
    }

    .home-section-heading-row > div {
        margin: 0 auto;
    }

    .home-section-heading-row p {
        margin-right: auto;
        margin-left: auto;
    }

    .home-section-heading-row .home-text-link {
        margin-top: 25px;
    }

    .home-latest-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-latest-grid .home-product-card:last-child {
        grid-column: 1 / -1;
        max-width: 540px;
        width: 100%;
        margin: 0 auto;
    }

    .home-showroom-grid {
        grid-template-columns: 1fr;
    }

    .home-showroom-content {
        max-width: 760px;
        margin: 0 auto;
    }

    .home-showroom-map-wrap,
    .home-showroom-map,
    .home-showroom-map iframe {
        min-height: 520px;
    }

    .home-map-card {
        left: 25px;
    }

    .home-final-cta-inner {
        flex-direction: column;
        text-align: center;
    }

    .home-final-cta-actions {
        width: min(100%, 420px);
        flex-basis: auto;
    }

    .home-final-cta .home-section-eyebrow {
        justify-content: center;
    }
}

@media (max-width: 720px) {
    .home-section-heading {
        margin-bottom: 34px;
    }

    .home-section-heading p {
        font-size: 16px;
    }

    .home-hero-content h1 {
        font-size: clamp(42px, 12vw, 62px);
    }

    .home-hero-trust {
        grid-template-columns: 1fr;
        max-width: 420px;
        margin-right: auto;
        margin-left: auto;
    }

    .home-hero-trust-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .home-hero-trust-item span {
        margin-top: 0;
        text-align: right;
    }

    .home-benefit-grid,
    .home-latest-grid,
    .home-testimonial-grid {
        grid-template-columns: 1fr;
    }

    .home-latest-grid .home-product-card:last-child {
        grid-column: auto;
        max-width: none;
    }

    .home-category-grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .home-category-card,
    .home-category-card-large {
        grid-column: auto;
        grid-row: auto;
        min-height: 290px;
    }

    .home-showroom-details {
        grid-template-columns: 1fr;
    }

    .home-showroom-map-wrap,
    .home-showroom-map,
    .home-showroom-map iframe {
        min-height: 430px;
    }

    .home-testimonial-card > p {
        min-height: 0;
    }

    .home-text-link {
        display: none;
    }

    .home-mobile-stock-link {
        display: block;
    }
}

@media (max-width: 520px) {
    .home-hero,
    .home-benefits,
    .home-categories,
    .home-latest-arrivals,
    .home-showroom,
    .home-testimonials,
    .home-final-cta {
        padding-top: 58px;
        padding-bottom: 58px;
    }

    .home-hero-content h1 {
        font-size: 43px;
    }

    .home-hero-intro {
        font-size: 17px;
    }

    .home-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .home-hero-actions .button {
        width: 100%;
    }

    .home-hero-image-frame {
        min-height: 300px;
        padding: 25px 18px;
        border-radius: 24px;
    }

    .home-hero-floating-card {
        position: relative;
        inset: auto;
        width: 100%;
        margin-top: 10px;
    }

    .home-hero-image-frame {
        display: block;
    }

    .home-hero-image-frame img {
        display: block;
        margin: 20px auto;
    }

    .home-benefit-grid {
        gap: 14px;
    }

    .home-benefit-card {
        min-height: 0;
        padding: 24px;
    }

    .home-category-card,
    .home-category-card-large {
        min-height: 250px;
    }

    .home-category-content {
        padding: 22px;
    }

    .home-product-content {
        padding: 21px;
    }

    .home-showroom-content h2,
    .home-final-cta-content h2 {
        font-size: 38px;
    }

    .home-hours-row {
        font-size: 13px;
    }

    .home-showroom-actions {
        flex-direction: column;
    }

    .home-showroom-actions .button {
        width: 100%;
    }

    .home-showroom-map-wrap,
    .home-showroom-map,
    .home-showroom-map iframe {
        min-height: 360px;
    }

    .home-map-card {
        position: relative;
        left: auto;
        bottom: auto;
        max-width: none;
        margin-top: 14px;
    }

    .home-testimonial-card {
        padding: 24px;
    }
}



/* ==========================================================
   13. HOMEPAGE V3 — CORRECTED RANGE AND EXTRA SECTIONS
========================================================== */
.home-category-grid-v3{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,245px)}
.home-category-grid-v3 .home-category-card-large{grid-column:span 2;grid-row:span 2}
.home-chair-card{background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.14),transparent 30%),linear-gradient(145deg,#4a4a4a,#181818)}
.home-chair-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 10%,rgba(0,0,0,.6))}
.home-chair-decoration{position:absolute;right:25px;top:5px;color:rgba(255,255,255,.1);font-size:150px;line-height:1;transform:rotate(180deg)}
.home-how-it-works{padding:105px 0;background:#fff}
.home-steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.home-step-card{position:relative;padding:30px 24px;text-align:center;background:#f7f7f7;border:1px solid #e7e7e7;border-radius:18px}
.home-step-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(0,0,0,.1)}
.home-step-card>span{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 18px;color:#fff;background:var(--sbb-primary);border-radius:14px;font-weight:900}
.home-step-card h3{margin:0;color:#222;font-size:20px;font-weight:900}
.home-step-card p{margin:12px 0 0;color:#707070;font-size:14px;line-height:1.65}
.home-faq{padding:105px 0;background:#f6f6f6}
.home-faq-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:70px;align-items:start}
.home-faq-intro h2{margin:0;font-size:clamp(38px,4.5vw,54px);font-weight:900;line-height:1.08;letter-spacing:-.04em}
.home-faq-intro p{margin:20px 0 0;color:#666;font-size:17px;line-height:1.7}
.home-faq-intro .button{display:inline-flex;margin-top:26px;border-radius:11px}
.home-faq-list{display:grid;gap:13px}
.home-faq-item{overflow:hidden;background:#fff;border:1px solid #e4e4e4;border-radius:15px;box-shadow:0 8px 24px rgba(0,0,0,.055)}
.home-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 23px;cursor:pointer;list-style:none;color:#222;font-size:16px;font-weight:900}
.home-faq-item summary::-webkit-details-marker{display:none}
.home-faq-item summary span{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:#222;border-radius:9px;font-size:18px}
.home-faq-item[open] summary span{background:var(--sbb-primary);transform:rotate(45deg)}
.home-faq-item p{margin:0;padding:0 23px 22px;color:#696969;font-size:15px;line-height:1.7}
.home-mobile-call-bar{display:none}
@media(max-width:1120px){.home-category-grid-v3{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:360px 230px}.home-category-grid-v3 .home-category-card-large{grid-column:span 2;grid-row:span 1}.home-steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.home-faq-grid{grid-template-columns:1fr;gap:40px}.home-faq-intro{text-align:center}.home-faq-intro .home-section-eyebrow{justify-content:center}}
@media(max-width:720px){.home-category-grid-v3,.home-steps-grid{grid-template-columns:1fr;grid-template-rows:none}.home-category-grid-v3 .home-category-card-large{grid-column:auto}.home-mobile-call-bar{position:fixed;z-index:9999;right:14px;bottom:14px;left:14px;display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:10px 18px;color:#fff;background:var(--sbb-primary);border-radius:14px;box-shadow:0 18px 42px rgba(0,0,0,.28);text-decoration:none}.home-mobile-call-bar small,.home-mobile-call-bar strong{display:block;color:#fff}.home-mobile-call-bar small{font-size:10px;opacity:.78}.home-mobile-call-bar strong{font-size:17px}body{padding-bottom:82px}}
@media(max-width:520px){.home-how-it-works,.home-faq{padding:58px 0}}

/* ==========================================================
   PRODUCT PAGE MODULE INTEGRATION V3.3
   Customer-facing fields from Product Manager, Inventory and
   Showroom Manager. Internal supplier/workflow data stays hidden.
========================================================== */

.single-stock-module-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 14px;
}

.single-stock-module-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: var(--sbb-radius-pill);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.single-stock-module-badge.is-best-seller {
    background: #fff1c7;
    border-color: #efd58b;
    color: #714c00;
}

.single-stock-module-badge.is-featured {
    background: #f7e9ff;
    border-color: #dfc2f2;
    color: #65307a;
}

.single-stock-module-badge.is-arrival {
    background: #eaf5ff;
    border-color: #bfdcf3;
    color: #16587f;
}

.single-stock-showroom-panel {
    margin-top: 26px;
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--sbb-border);
    border-radius: var(--sbb-radius-lg);
    background:
        linear-gradient(135deg, rgba(212, 0, 0, 0.035), transparent 46%),
        var(--sbb-surface);
    box-shadow: var(--sbb-shadow-xs);
}

.single-stock-showroom-heading {
    margin-bottom: 18px;
}

.single-stock-showroom-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--sbb-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.single-stock-showroom-heading h2 {
    margin: 0;
    font-size: clamp(24px, 3vw, 32px);
}

.single-stock-showroom-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.single-stock-showroom-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--sbb-border);
    border-radius: var(--sbb-radius-md);
    background: var(--sbb-surface);
}

.single-stock-showroom-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--sbb-primary);
    color: #fff;
    font-size: 18px;
    font-weight: 800;
}

.single-stock-showroom-item span:not(.single-stock-showroom-icon) {
    display: block;
    margin-bottom: 3px;
    color: var(--sbb-text-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.single-stock-showroom-item strong {
    display: block;
    color: var(--sbb-text);
    font-size: 15px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.single-stock-showroom-note {
    margin: 16px 0 0;
    color: var(--sbb-text-muted);
    font-size: 13px;
    line-height: 1.55;
}

@media (max-width: 900px) {
    .single-stock-showroom-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .single-stock-module-badges {
        gap: 7px;
    }

    .single-stock-module-badge {
        min-height: 28px;
        padding: 6px 10px;
        font-size: 11px;
    }

    .single-stock-showroom-panel {
        padding: 20px;
    }
}



/* v5.4.2 HEADER FACEBOOK BUTTON FALLBACK */
.header-actions .sbb-header-social-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:108px;min-height:44px!important;padding:9px 14px!important;gap:8px!important;border:1px solid #dedede!important;border-radius:999px!important;background:#fff!important;color:#222!important;text-decoration:none!important;font-size:14px;font-weight:700;line-height:1;box-sizing:border-box}.header-actions .sbb-header-social-link::after{content:none!important;display:none!important}.header-actions .sbb-header-social-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:#1877f2}.header-actions .sbb-header-social-icon svg{width:20px;height:20px;fill:currentColor}.header-actions .sbb-header-social-label{display:inline-block!important;white-space:nowrap}@media(max-width:1180px){.header-actions .sbb-header-social-link{min-width:44px;width:44px!important;padding:0!important}.header-actions .sbb-header-social-label{display:none!important}}@media(max-width:900px){.header-actions .sbb-social-profiles-header{display:none!important}}
