/* =====================================================================
   Serendipity Lavender — Gutenberg Overrides v8.4.0
   Minimal CSS for things theme.json cannot handle.
   ===================================================================== */

/* Force font-display:block for Chancery to prevent FOUT */
@font-face {
    font-family: "URW Chancery L";
    font-display: block;
    src: url("../fonts/urw-chancery.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
}

/* WooCommerce blocks & form elements — explicit Manrope
   WC Blocks render outside the normal block tree and don't inherit
   body font reliably; target them explicitly without !important so
   more-specific decorative rules below can still override selectively. */
.wc-block-product-template,
.wc-block-components-product-title,
.wc-block-components-product-price,
.wc-block-components-product-button,
.wc-block-grid__product,
.woocommerce,
.woocommerce *,
.wp-block-woocommerce-product-collection *,
input, select, textarea {
    font-family: var(--wp--preset--font-family--body);
    font-style: normal;
}

/* =====================================================================
   Typography recalibration — v8.3.7
   Base 16px — international e-commerce standard.
   Manrope has high x-height and reads well at smaller sizes than Chancery.
   Previous 20px base was optical compensation for Chancery's low x-height
   and thin strokes — no longer needed with Manrope as the body font.
   ===================================================================== */
html {
    font-size: 15px;
}

@media (max-width: 768px) {
    html {
        font-size: 15px !important; /* no scaling — clamp() in theme.json handles fluidity */
    }

    /* Hide WP block navigation on mobile — replaced by overlay */
    .wp-block-navigation {
        display: none !important;
    }

    /* Prevent site title from wrapping */
    .wp-block-site-title {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        min-width: 0;
    }


    /* Tighten header icon gaps on mobile */
    header .wp-block-group.alignwide > .wp-block-group {
        gap: 8px !important;
    }
    .wp-block-woocommerce-mini-cart,
    .wp-block-woocommerce-customer-account {
        margin: 0 !important;
    }
}
@media (max-width: 480px) {
    html {
        font-size: 14px !important; /* slight reduction on small phones */
    }
}

/* =====================================================================
   Desktop Navigation — gap fix
   (theme.json has blockGap:0 globally; nav items inherit 0 without this)
   ===================================================================== */

.wp-block-navigation__container {
    gap: 1.75rem;
}

/* =====================================================================
   Hero Cover — gradient overlay + text contrast
   Cover block uses a flat dimRatio:50 overlay (50% solid colour).
   Replace with directional gradient: transparent at top, darker at bottom.
   This reveals the hero image naturally while keeping text readable.
   Text colours: h1 already uses base (#fff). Tagline/subtext use sl-light
   (#c4afe0 — pale lavender) which, while mathematically passing WCAG,
   reads poorly due to hue proximity (lavender text on deep purple bg).
   Override to sl-pale (#ede4f6) — very pale lavender, ~15:1 contrast.
   ===================================================================== */

/* Gradient overlay — replaces flat 50% opacity block */
.wp-block-cover .wp-block-cover__background.has-sl-deep-background-color {
    background: linear-gradient(
        to bottom,
        rgba(26, 10, 48, 0.20) 0%,
        rgba(26, 10, 48, 0.55) 45%,
        rgba(26, 10, 48, 0.82) 100%
    ) !important;
    opacity: 1 !important; /* override WP dimRatio opacity — gradient has it baked in */
}

/* Text inside cover blocks: upgrade sl-light (#c4afe0) to sl-pale (#ede4f6)
   Both are lavender-tinted but sl-pale is near-white (~15:1 contrast on sl-deep). */
.wp-block-cover__inner-container .has-sl-light-color.has-text-color {
    color: var(--wp--preset--color--sl-pale) !important;
}

/* Hardcoded 70px heading (Shop by Category section) — too large at 16px base */
h2[style*="font-size:70px"],
h2[style*="font-size: 70px"] {
    font-size: clamp(2rem, 4vw, 2.75rem) !important; /* ~32-44px — section heading */
}

/* Hardcoded 35px body paragraphs — convert to responsive rem */
.wp-block-cover p[style*="font-size:35px"],
.wp-block-cover p[style*="font-size: 35px"],
.wp-block-group p[style*="font-size:35px"],
.wp-block-group p[style*="font-size: 35px"] {
    font-size: clamp(1rem, 2.2vw, 1.3rem) !important; /* 16-21px — clean body */
}

/* =====================================================================
   Mobile Overlay Navigation
   ===================================================================== */

/* Hamburger button — visible only ≤768px */
.sl-hamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    z-index: 10001;
    position: relative;
}
.sl-hamburger svg {
    width: 28px;
    height: 28px;
    stroke: var(--wp--preset--color--sl-dark, #1a0a30);
    stroke-width: 2;
    stroke-linecap: round;
    fill: none;
}
@media (max-width: 768px) {
    .sl-hamburger {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* Fullscreen overlay */
.sl-mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: var(--wp--preset--color--sl-deep, #1a0a30);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
    overflow: hidden;
}
.sl-mobile-overlay.open {
    opacity: 1;
    visibility: visible;
}

/* Close button */
.sl-overlay-close {
    position: absolute;
    top: 14px;
    right: 20px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 10002;
}
.sl-overlay-close svg {
    width: 32px;
    height: 32px;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    fill: none;
}

/* Site name inside overlay */
.sl-overlay-logo {
    display: block;
    width: 110px;
    height: auto;
    margin: 0 auto 0.5rem;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.3s ease 0.15s, transform 0.3s ease 0.15s;
}
.sl-mobile-overlay.open .sl-overlay-logo {
    opacity: 1;
    transform: translateY(0);
}

.sl-overlay-brand {
    font-family: var(--wp--preset--font-family--chancery) !important;
    font-style: italic;
    font-weight: 400;
    font-size: 1.4rem;
    color: var(--wp--preset--color--sl-accent, #c4a7e7);
    letter-spacing: 0.02em;
    margin-bottom: 1.2rem;
    text-align: center;
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity 0.3s ease 0.15s, transform 0.3s ease 0.15s;
}
.sl-mobile-overlay.open .sl-overlay-brand {
    opacity: 1;
    transform: translateY(0);
}

/* Nav links */
.sl-overlay-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.sl-overlay-nav li {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.sl-mobile-overlay.open .sl-overlay-nav li {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger animation for each link */
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(1) { transition-delay: 0.1s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(2) { transition-delay: 0.15s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(3) { transition-delay: 0.2s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(4) { transition-delay: 0.25s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(5) { transition-delay: 0.3s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(6) { transition-delay: 0.35s; }
.sl-mobile-overlay.open .sl-overlay-nav li:nth-child(7) { transition-delay: 0.4s; }

.sl-overlay-nav a {
    font-family: var(--wp--preset--font-family--body) !important;
    font-style: normal;
    font-weight: 500;
    font-size: 1.4rem;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    display: block;
    padding: 0.45rem 1.5rem;
    border-radius: 8px;
    transition: background 0.2s ease, color 0.2s ease;
    letter-spacing: 0.03em;
}
.sl-overlay-nav a:hover,
.sl-overlay-nav a:focus {
    background: rgba(255, 255, 255, 0.08);
    color: var(--wp--preset--color--sl-accent, #c4a7e7);
}

/* Divider line */
.sl-overlay-divider {
    width: 60px;
    height: 1px;
    background: rgba(255, 255, 255, 0.15);
    margin: 1rem auto;
    opacity: 0;
    transition: opacity 0.3s ease 0.45s;
}
.sl-mobile-overlay.open .sl-overlay-divider {
    opacity: 1;
}

/* Phone contact */
.sl-overlay-phone {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.3s ease 0.5s, transform 0.3s ease 0.5s;
}
.sl-mobile-overlay.open .sl-overlay-phone {
    opacity: 1;
    transform: translateY(0);
}
.sl-overlay-phone svg {
    width: 18px;
    height: 18px;
    stroke: var(--wp--preset--color--sl-accent, #c4a7e7);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}
.sl-overlay-phone a {
    font-family: var(--wp--preset--font-family--body) !important;
    font-style: normal;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 1.0rem;
    letter-spacing: 0.03em;
    transition: color 0.2s ease;
}
.sl-overlay-phone a:hover {
    color: #fff;
}

/* Lock body scroll when overlay is open */
body.sl-overlay-open {
    overflow: hidden;
}

/* Footer contact links — better visibility */
.has-sl-deep-background-color .has-sl-muted-color a {
    color: #c4b5de;
}
.has-sl-deep-background-color .has-sl-muted-color a:hover {
    color: #ffffff;
}

/* Footer contact buttons */
.sl-footer-btn {
    display: inline-block;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff !important;
    text-decoration: none !important;
    padding: 6px 14px;
    border-radius: 100px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: background 0.3s ease, border-color 0.3s ease;
    font-weight: 500;
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    white-space: nowrap;
}
/* Keep <p> wrappers from inheriting oversized body font */
.sl-footer-contact p {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin: 0 !important;
}
.sl-footer-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.4);
    color: #ffffff !important;
}

/* White phone icon on all tel: links */
a[href^="tel:"]::before {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.35em;
    vertical-align: -0.1em;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24c1.12.37 2.33.57 3.57.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") no-repeat center/contain;
}
/* Overlay already has inline SVG — suppress the CSS pseudo-icon there */
.sl-overlay-phone a[href^="tel:"]::before {
    display: none;
}
/* Footer contact links already have inline SVG — suppress duplicate CSS icon */
a.sl-footer-btn[href^="tel:"]::before {
    display: none;
}
/* Homepage Contact section: white button bg — use brand purple icon */
.has-sl-muted-background-color a[href^="tel:"]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235a3194'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24c1.12.37 2.33.57 3.57.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}
/* Dark bg sections: white icon is fine */
.has-sl-dark-background-color a[href^="tel:"]::before,
.has-sl-brand-background-color a[href^="tel:"]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24c1.12.37 2.33.57 3.57.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}

/* Hide Wholesale Enquiry button on mobile */
@media (max-width: 768px) {
    .sl-hero-wholesale {
        display: none !important;
    }
}

/* Hero title — text shadow ensures legibility over any image */
.sl-hero-title {
    text-shadow:
        0 2px 20px rgba(26, 10, 48, 0.65),
        0 1px 4px  rgba(26, 10, 48, 0.45);
}
/* Hero title italic accent */
.sl-hero-title em {
    color: var(--wp--preset--color--sl-light);
    display: block;
    margin-top: 0.05em;
    font-style: italic;
    text-shadow:
        0 2px 24px rgba(26, 10, 48, 0.70),
        0 1px 6px  rgba(26, 10, 48, 0.50);
}
/* Hero all text inside cover — subtle shadow for readability on any image */
.wp-block-cover__inner-container > p,
.wp-block-cover__inner-container > .wp-block-heading {
    text-shadow: 0 1px 12px rgba(26, 10, 48, 0.55);
}

/* Hero logo */
.sl-hero-logo {
    position: relative;
}
.sl-hero-logo img {
    position: relative;
}

/* ── Category cards — agency standard: image top, text panel below ── */
/* Pattern: same as Featured Products cards. No text-over-image conflicts.  */
/* Gradient on image bottom fades to white → seamless join to text panel.  */

.sl-cat-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    background: #ede4f6; /* lavender — eliminates white bleed in sub-pixel gaps at all viewport sizes */
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(26, 10, 48, 0.07);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.sl-cat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 36px rgba(26, 10, 48, 0.15);
    text-decoration: none !important;
}

/* Image zone — fixed aspect ratio, consistent across all cards */
.sl-cat-card__img {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: #ede4f6; /* lavender backing: visible in transparent gradient areas */
    isolation: isolate;        /* contain blend to this stacking context */
}
.sl-cat-card__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.55s ease;
    /* multiply: white pixels in product photos × #ede4f6 = #ede4f6 (lavender).
       Eliminates the white-band artefact where the gradient is transparent.
       Non-white product colours are affected <8% (lavender ≈ 93% white). */
    mix-blend-mode: multiply;
}
.sl-cat-card:hover .sl-cat-card__img img {
    transform: scale(1.06);
}

/* Linens & Bags, Other: portrait/near-square — shift visible crop window down */
.sl-cat-card--linens-bags .sl-cat-card__img img,
.sl-cat-card--other       .sl-cat-card__img img {
    object-position: center 70%;
}

/* Oil & Perfume: landscape (full height shown) — scale anchored to upper third
   to clip the table reflection below and fill frame with the product bottles.
   Hover inherits base scale × 1.06. */
.sl-cat-card--oil-perfume .sl-cat-card__img img {
    transform: scale(1.2);
    transform-origin: center 30%;
}
.sl-cat-card--oil-perfume:hover .sl-cat-card__img img {
    transform: scale(1.27);
    transform-origin: center 30%;
}

/* Bottom gradient — fades product image into lavender card body.
   height 72%: covers more of the image at any viewport size.
   Opacity ramps steeply (45% at 30% in) to cover white product backgrounds
   before the transparent zone becomes visually prominent at narrow viewports. */
.sl-cat-card__img::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 72%;
    z-index: 1;
    background: linear-gradient(
        to bottom,
        rgba(237, 228, 246, 0.00)  0%,
        rgba(237, 228, 246, 0.45) 30%,
        rgba(237, 228, 246, 0.85) 60%,
        rgba(237, 228, 246, 1.00) 80%,
        rgba(237, 228, 246, 1.00) 100%
    );
    pointer-events: none;
}

/* Linens, Oil & Perfume, Other: product images have semi-transparent reflections/shadows
   at the bottom (alpha 43–88%). Default 55% gradient is only 15–25% opaque there,
   letting white card bg show through. Fix: taller zone (65%) + steeper mid-stop (0.85)
   so gradient reaches ~83% opacity at 30% from bottom. No card bg change. */
.sl-cat-card--linens-bags .sl-cat-card__img::after,
.sl-cat-card--oil-perfume .sl-cat-card__img::after,
.sl-cat-card--other       .sl-cat-card__img::after {
    height: 82%;
    background: linear-gradient(
        to bottom,
        rgba(237, 228, 246, 0.00)  0%,
        rgba(237, 228, 246, 0.55) 25%,
        rgba(237, 228, 246, 0.92) 55%,
        rgba(237, 228, 246, 1.00) 75%,
        rgba(237, 228, 246, 1.00) 100%
    );
}

/* Text panel — pale lavender matches gradient end: seamless join on every card */
.sl-cat-card__body {
    background: #ede4f6;
    padding: 0.65rem 1rem 0.8rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.sl-cat-card__name {
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.78rem;
    font-weight: 700;
    font-style: normal;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--wp--preset--color--sl-dark);
    margin: 0;
    line-height: 1.3;
}
/* "Shop Now" — compact pill, brand purple outline, fills on hover */
.sl-cat-card__cta {
    display: inline-block;
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.68rem;
    font-weight: 600;
    font-style: normal;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--wp--preset--color--sl-brand);
    border: 1.5px solid var(--wp--preset--color--sl-brand);
    border-radius: 100px;
    padding: 0.28rem 0.75rem;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease;
    flex-shrink: 0;
}
.sl-cat-card:hover .sl-cat-card__cta {
    background: var(--wp--preset--color--sl-brand);
    color: #ffffff;
}

/* Section heading flourish */
.sl-range-heading::after {
    content: '✦';
    display: block;
    text-align: center;
    font-size: 0.85rem;
    color: var(--wp--preset--color--sl-light);
    letter-spacing: 0.6em;
    margin-top: 0.75rem;
}

@media (max-width: 768px) {
    /* Category card grids use inline style="grid-template-columns:repeat(N,1fr)"
       — !important is required to override inline styles via media query */
    .sl-range-featured {
        grid-template-columns: 1fr !important;
    }
    .sl-range-secondary {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .sl-cat-card__name {
        font-size: 0.82rem;
    }
}

@media (max-width: 480px) {
    /* Collapse secondary row to 1 column on small mobile */
    .sl-range-secondary {
        grid-template-columns: 1fr !important;
    }
}

/* Product card hover */
.sl-prod-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sl-prod-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(26,10,48,0.12);
}

/* Footer list style reset */
.sl-footer-list {
    list-style: none !important;
}
.sl-footer-list a {
    text-decoration: none;
    color: rgba(240,235,247,0.55);
    transition: color 0.15s;
}
.sl-footer-list a:hover {
    color: var(--wp--preset--color--sl-light);
}

/* Responsive footer: desktop full, mobile minimal */
.sl-footer-mobile {
    display: none !important;
}

@media (max-width: 768px) {
    .sl-footer-desktop {
        display: none !important;
    }
    .sl-footer-mobile {
        display: block !important;
    }
}

/* Header sticky z-index boost */
.wp-block-group[style*="position:sticky"] {
    z-index: 100;
}

/* ── Preserve site title font on WooCommerce pages ──
   WooCommerce adds class="woocommerce" to <body> on shop/product/cart/account pages.
   The broad .woocommerce * rule (WC font normalisation above) overrides the Chancery
   italic set on .wp-block-site-title. These rules restore it with higher specificity. */
.woocommerce .wp-block-site-title,
.woocommerce .wp-block-site-title a {
    font-family: var(--wp--preset--font-family--chancery) !important;
    font-style: italic !important;
    font-weight: 400 !important;
}

/* Phone pill link styling */
.sl-phone-pill a {
    text-decoration: none !important;
}

/* Milestone timeline */
.sl-milestone-line {
    border-left: 2px solid var(--wp--preset--color--sl-pale);
}
.sl-milestone-dot::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--wp--preset--color--sl-brand);
    margin-right: 0.75rem;
    vertical-align: middle;
}

/* Trust bar responsive */
@media (max-width: 600px) {
    .sl-trust-bar .wp-block-group {
        gap: 0.35rem 1.25rem !important;
    }
}

/* WooCommerce product block overrides */
.wc-block-grid__product {
    transition: transform 0.2s ease;
}
.wc-block-grid__product:hover {
    transform: translateY(-2px);
}

/* Step number styling */
.sl-step-number {
    font-family: var(--wp--preset--font-family--chancery);
    color: var(--wp--preset--color--sl-pale);
    line-height: 1;
}

/* Contact card in ordering section */
.sl-contact-card {
    border: 1px solid var(--wp--preset--color--sl-pale) !important;
}

/* Wholesale glow effect */
.sl-ws-glow::before {
    content: '';
    position: absolute;
    top: -25%;
    right: -8%;
    width: 420px;
    height: 420px;
    background: radial-gradient(circle, rgba(139,95,191,0.14) 0%, transparent 70%);
    pointer-events: none;
}

/* Hide default WP footer if present */
body.home .wp-block-template-part:last-child > .wp-site-blocks > footer {
    display: none;
}

/* Cover block link styling in categories (legacy) */
.sl-cat-card a {
    color: inherit;
    text-decoration: none;
}
.sl-cat-card a:hover {
    color: inherit;
}

/* ── Hero auto-drift — universal for all cover heroes ── */
.sl-hero-drift {
    overflow: hidden;
}
.sl-hero-drift .wp-block-cover__image-background,
.sl-hero-drift.wp-block-cover .wp-block-cover__image-background {
    will-change: transform;
    object-fit: cover;
    min-height: 130%;
    min-width: 100%;
    animation: sl-hero-drift 14s ease-in-out infinite alternate;
}
@keyframes sl-hero-drift {
    0%   { transform: scale(1.18) translateY(-35px); }
    100% { transform: scale(1.18) translateY(35px); }
}

/* ── Bee hero section — premium image effects ── */
.sl-bee-hero {
    overflow: hidden;
    position: relative;
}
.sl-bee-hero .wp-block-cover {
    overflow: hidden;
}
.sl-bee-hero .wp-block-cover__image-background {
    animation-duration: 12s;
}
.sl-bee-hero .wp-block-cover__background {
    background: linear-gradient(
        135deg,
        rgba(26, 10, 48, 0.78) 0%,
        rgba(45, 20, 84, 0.55) 50%,
        rgba(26, 10, 48, 0.72) 100%
    ) !important;
    opacity: 1 !important;
}
.sl-bee-hero .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
    text-shadow: 0 2px 16px rgba(26, 10, 48, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* ── Homepage: tighter section spacing ── */
.page-id-41 > .wp-site-blocks > main {
    margin-top: 0 !important;
}

/* ── Scroll-reveal animation ── */
.sl-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.sl-reveal.sl-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger children */
.sl-reveal-stagger > * {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.sl-reveal-stagger.sl-visible > *:nth-child(1) { transition-delay: 0s; opacity: 1; transform: translateY(0); }
.sl-reveal-stagger.sl-visible > *:nth-child(2) { transition-delay: 0.1s; opacity: 1; transform: translateY(0); }
.sl-reveal-stagger.sl-visible > *:nth-child(3) { transition-delay: 0.2s; opacity: 1; transform: translateY(0); }
.sl-reveal-stagger.sl-visible > *:nth-child(4) { transition-delay: 0.3s; opacity: 1; transform: translateY(0); }
.sl-reveal-stagger.sl-visible > *:nth-child(5) { transition-delay: 0.4s; opacity: 1; transform: translateY(0); }
.sl-reveal-stagger.sl-visible > *:nth-child(n+6) { transition-delay: 0.5s; opacity: 1; transform: translateY(0); }

/* Our Journey page — hero flush with header, hide WP page title */
.page-id-169 > .wp-site-blocks > main {
    margin-top: 0 !important;
}
.page-id-169 .wp-block-post-title {
    display: none !important;
}
.page-id-169 > .wp-site-blocks > main > .wp-block-group:first-child {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ── Scroll to Top Button ── */
.sl-scroll-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--wp--preset--color--sl-brand, #5a3194);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(90, 49, 148, 0.35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.3s, visibility 0.3s, transform 0.3s, background 0.2s;
    z-index: 999;
}

.sl-scroll-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sl-scroll-top:hover {
    background: var(--wp--preset--color--sl-dark, #2d1454);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(90, 49, 148, 0.45);
}

.sl-scroll-top svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 768px) {
    .sl-scroll-top {
        bottom: 1.2rem;
        right: 1.2rem;
        width: 46px;
        height: 46px;
    }
}

/* =====================================================================
   Contact Form — [sl_contact_form] shortcode styles
   ===================================================================== */

.sl-contact-form-wrap {
    width: 100%;
}

.sl-contact-form {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.sl-cf-row {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.sl-cf-two-col {
    flex-direction: row;
    gap: 1rem;
}

.sl-cf-field {
    display: flex;
    flex-direction: column;
    gap: 0.38rem;
    flex: 1;
}

.sl-cf-field label {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wp--preset--color--sl-mid);
    font-style: normal;
    font-family: var(--wp--preset--font-family--body);
}

.sl-cf-optional {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    opacity: 0.7;
}

.sl-cf-field input,
.sl-cf-field select,
.sl-cf-field textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1.5px solid rgba(196, 175, 224, 0.4);
    border-radius: 10px;
    background: rgba(255,255,255,0.6);
    color: var(--wp--preset--color--sl-dark);
    font-size: 1.05rem;
    font-family: var(--wp--preset--font-family--body);
    font-style: normal;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
}

.sl-cf-field input:focus,
.sl-cf-field select:focus,
.sl-cf-field textarea:focus {
    outline: none;
    border-color: var(--wp--preset--color--sl-brand);
    box-shadow: 0 0 0 3px rgba(163, 116, 218, 0.15);
}

.sl-cf-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23a374da' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}

.sl-cf-field textarea {
    resize: vertical;
    min-height: 120px;
}

.sl-cf-footer {
    flex-direction: row;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.sl-cf-submit {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 2.2rem;
    background: var(--wp--preset--color--sl-brand);
    color: #fff;
    border: none;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 600;
    font-style: normal;
    font-family: var(--wp--preset--font-family--body);
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
    white-space: nowrap;
}

.sl-cf-submit:hover {
    background: var(--wp--preset--color--sl-deep);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(90, 40, 140, 0.25);
}

.sl-cf-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

.sl-cf-btn-spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: sl-spin 0.7s linear infinite;
}

.sl-cf-submit.sl-cf-loading .sl-cf-btn-spinner { display: block; }
.sl-cf-submit.sl-cf-loading .sl-cf-btn-text { opacity: 0.6; }

@keyframes sl-spin {
    to { transform: rotate(360deg); }
}

.sl-cf-privacy {
    font-size: 1rem;
}

.sl-cf-feedback {
    min-height: 1.5rem;
    font-size: 1rem;
    border-radius: 8px;
    padding: 0;
}

.sl-cf-feedback.sl-cf-error {
    color: #c0392b;
    background: rgba(192, 57, 43, 0.07);
    padding: 0.65rem 1rem;
    border: 1px solid rgba(192,57,43,0.2);
}

/* Required field error state */
.sl-cf-field input.sl-cf-invalid,
.sl-cf-field select.sl-cf-invalid,
.sl-cf-field textarea.sl-cf-invalid {
    border-color: #c0392b;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12);
    background: rgba(192, 57, 43, 0.04);
}
.sl-cf-field.sl-cf-has-error label {
    color: #c0392b;
}

.sl-cf-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
    color: var(--wp--preset--color--sl-dark);
    gap: 0.75rem;
}

.sl-cf-success svg {
    color: #4caf7d;
    stroke: #4caf7d;
}

.sl-cf-success h3 {
    font-size: 1.5rem;
    margin: 0;
    font-style: italic;
    color: var(--wp--preset--color--sl-brand);
}

.sl-cf-success p {
    margin: 0;
    font-size: 1rem;
    color: var(--wp--preset--color--sl-body);
}

/* Contact page info cards */
.sl-contact-info-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.5rem;
    background: rgba(255,255,255,0.7);
    border: 1px solid rgba(196,175,224,0.25);
    border-radius: 16px;
    gap: 0.75rem;
}

.sl-contact-info-card svg {
    color: var(--wp--preset--color--sl-brand);
}

@media (max-width: 768px) {
    .sl-cf-two-col {
        flex-direction: column;
    }
    .sl-cf-footer {
        flex-direction: column;
        align-items: flex-start;
    }
    .sl-cf-submit {
        width: 100%;
        justify-content: center;
    }
}

/* ══════════════════════════════════════════════════════════════════
   Related Products — Botanical Atelier v1.0.0
   Decorative editorial section heading with ornamental treatment.
   ══════════════════════════════════════════════════════════════════ */

.single-product [data-collection="woocommerce/product-collection/related"] {
    padding-bottom: 5rem !important;
    padding-top: 1rem !important;
    position: relative !important;
}

/* ── Full-width pale cream band behind the section ── */
.single-product [data-collection="woocommerce/product-collection/related"]::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: #F6EFE3;
    z-index: 0;
    pointer-events: none;
}

/* ── Section heading: large italic Cormorant with ornament ── */
.single-product [data-collection="woocommerce/product-collection/related"] .wp-block-heading,
.single-product [data-collection="woocommerce/product-collection/related"] h2 {
    font-family: 'Cormorant Garamond', var(--wp--preset--font-family--chancery), Georgia, serif !important;
    font-size: clamp(2rem, 4vw, 3.2rem) !important;
    font-weight: 300 !important;
    font-style: italic !important;
    color: #231442 !important;
    text-align: center !important;
    letter-spacing: 0.02em !important;
    line-height: 1.1 !important;
    margin-bottom: 0.6rem !important;
    margin-top: 3rem !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Ornament line above heading */
.single-product [data-collection="woocommerce/product-collection/related"] .wp-block-heading::before,
.single-product [data-collection="woocommerce/product-collection/related"] h2::before {
    content: '✦';
    display: block;
    font-size: 0.55rem;
    color: #A882C8;
    letter-spacing: 0.5em;
    margin-bottom: 1.2rem;
    opacity: 0.7;
}

/* Eyebrow label below ornament */
.single-product [data-collection="woocommerce/product-collection/related"] .wp-block-heading::after,
.single-product [data-collection="woocommerce/product-collection/related"] h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 1px;
    background: rgba(74,44,122,0.25);
    margin: 1rem auto 0;
}

/* ── Product cards sit above the cream band ── */
.single-product [data-collection="woocommerce/product-collection/related"] > *:not(.wp-block-heading):not(h2) {
    position: relative !important;
    z-index: 1 !important;
}

/* Each related product card: cream background to match section band */
.single-product [data-collection="woocommerce/product-collection/related"] .wc-block-product {
    padding-bottom: 0.75rem !important;
    background: #F6EFE3 !important;
}

/* Product image wrapper: cream too so no white flash */
.single-product [data-collection="woocommerce/product-collection/related"] .wc-block-components-product-image,
.single-product [data-collection="woocommerce/product-collection/related"] .wc-block-components-product-image a,
.single-product [data-collection="woocommerce/product-collection/related"] .woocommerce-loop-product__link,
.single-product [data-collection="woocommerce/product-collection/related"] figure {
    background: #F6EFE3 !important;
}

/* =====================================================================
   WooCommerce block typography floors — v8.3.3
   With 20px html base, 1rem = 20px. These rules ensure WC block
   components that set their own em/rem sizes stay readable throughout
   Cart, Checkout, My Account, and product pages.
   ===================================================================== */

/* Notices (wc-blocks.css sets .875em — floor to 1rem) */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner p,
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    font-size: 1rem !important;
    line-height: 1.6;
}

/* Cart page — table rows, product names, meta, totals */
.wc-block-cart-items,
.wc-block-components-product-name,
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description,
.wc-block-components-order-summary,
.wc-block-components-order-summary-item__description,
.wc-block-components-totals-wrapper,
.wc-block-cart__payment-method-label,
.wc-block-components-checkout-return-to-cart-button {
    font-size: 1rem;
    line-height: 1.6;
}

/* Cart totals rows */
.wc-block-components-totals-item,
.wc-block-components-totals-item__label,
.wc-block-components-totals-coupon,
.wc-block-components-coupon-list-item__label {
    font-size: 1rem;
}

/* Checkout form — step titles, labels, helper text */
.wc-block-components-checkout-step__title {
    font-size: 1.4rem;
}
.wc-block-components-checkout-step__description,
.wc-block-components-label,
.wc-block-checkout label,
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-combobox label,
.wc-block-components-country-input label,
.wc-block-components-state-input label {
    font-size: 1rem;
    font-weight: 500;
}

/* Checkout + My Account form inputs, selects */
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-combobox input,
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"],
.wc-block-checkout input[type="password"],
.wc-block-checkout select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page select {
    font-size: 1rem !important;
}

/* Quantity input on product pages */
form.cart input.qty,
.wc-block-components-quantity-selector input {
    font-size: 1.1rem !important;
}

/* My Account — tables, dashboard text, order history */
.woocommerce-MyAccount-content,
.woocommerce-account .entry-content,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-orders-table th,
.woocommerce-orders-table td,
.woocommerce-page table th,
.woocommerce-page table td {
    font-size: 1rem;
    line-height: 1.6;
}

/* Breadcrumbs */
.woocommerce-breadcrumb,
nav.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Product meta — SKU, Category, Tags */
.product_meta,
.product_meta .sku_wrapper,
.product_meta .posted_in,
.product_meta .tagged_as,
.woocommerce-product-attributes td,
.woocommerce-product-attributes th {
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Archive / category page — result count, ordering */
.woocommerce-result-count,
.woocommerce-ordering select {
    font-size: 1rem;
}

/* WC block product title on cards */
.wc-block-components-product-title {
    font-size: 1.1rem;
    line-height: 1.3;
}

/* My Account nav styles moved to wp_add_inline_style in functions.php
   (inline delivery bypasses file cache; selector confirmed working v8.3.3+) */

/* =====================================================================
   Homepage — visual refinements v1.0.0
   Scoped to .page-id-41 where possible.
   All improvements follow the existing palette + type system.
   ===================================================================== */

/* ── Trust bar: dot separators between items ── */
/* Items are <p> inside a flex group. ::after adds a lavender dot between them. */
.sl-trust-bar .wp-block-group.alignwide > .wp-block-group > p:not(:last-child)::after {
    content: '✦';
    margin-left: var(--wp--preset--spacing--50);
    color: rgba(196, 175, 224, 0.45);
    font-size: 0.45rem;
    vertical-align: middle;
    display: inline-block;
}

/* Trust bar: tighter on mobile — stack cleanly */
@media (max-width: 600px) {
    .sl-trust-bar .wp-block-group.alignwide > .wp-block-group > p:not(:last-child)::after {
        display: none;
    }
    .sl-trust-bar .wp-block-group.alignwide > .wp-block-group > p {
        font-size: 1.15rem !important;
    }
}

/* ── Trust bar: subtle top border for definition against hero ── */
.sl-trust-bar {
    border-top: 1px solid rgba(196, 175, 224, 0.12);
}

/* ── "Our Range" section: center the description paragraph ── */
/* The block editor has no text-align-center on this <p>; fix via CSS.       */
/* Selector: ghost-bg section > any constrained wrapper > body-color <p>     */
.has-sl-ghost-background-color p.has-sl-body-color {
    text-align: center;
}

/* ── Section eyebrow labels: consistent tracking on all homepage eyebrows ── */
/* The uppercase "Our Range", "Available Now", "For Businesses" labels        */
/* already have inline letter-spacing. Reinforce line-height for breathing.   */
.page-id-41 p[style*="letter-spacing:0.22em"],
.page-id-41 p[style*="letter-spacing: 0.22em"] {
    line-height: 1.2;
}

/* ── Rule separator: thinner, more refined ── */
/* Override the 3px WP default to a 1px elegant hairline                     */
.sl-rule-separator.wp-block-separator {
    border-width: 1px !important;
    max-width: 80px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    opacity: 0.6;
}

/* ── Hero drift: tone down vertical travel for subtlety ── */
@keyframes sl-hero-drift {
    0%   { transform: scale(1.12) translateY(-18px); }
    100% { transform: scale(1.12) translateY(18px); }
}

/* ── Bee hero: slightly cooler gradient angle for depth ── */
.sl-bee-hero .wp-block-cover__background {
    background: linear-gradient(
        150deg,
        rgba(26, 10, 48, 0.80) 0%,
        rgba(45, 20, 84, 0.50) 50%,
        rgba(26, 10, 48, 0.75) 100%
    ) !important;
}

/* ── Featured Products h2: same override as "Shop by Category" h2 ── */
/* Both have font-size:70px inline — the 70px override rule already handles   */
/* .sl-range-heading; this ensures the Featured Products h2 (no extra class)  */
/* also gets the responsive size if it has the inline 70px.                   */
.has-sl-cream-background-color h2[style*="font-size:70px"],
.has-sl-cream-background-color h2[style*="font-size: 70px"] {
    font-size: clamp(2rem, 4vw, 2.75rem) !important;
}

/* ── Wholesale section: list items readable, slightly tighter line-height ── */
.sl-ws-section .wp-block-list {
    line-height: 1.65 !important;
}

/* ── Contact CTA section: buttons stack cleanly on mobile ── */
@media (max-width: 600px) {
    .has-sl-muted-background-color .wp-block-buttons {
        justify-content: center !important;
    }
    .has-sl-muted-background-color .wp-block-buttons .wp-block-button a {
        font-size: 1rem !important;
        padding: 0.75rem 1.35rem !important;
    }
}

/* =====================================================================
   Single Product Page — Botanical Atelier v1.0.0
   Large editorial typography, refined interactions.
   All rules scoped to body.single-product.
   ===================================================================== */

/* ── Product title — large italic display heading ── */
.single-product h1.wp-block-post-title,
.single-product .product_title {
    font-family: 'Cormorant Garamond', var(--wp--preset--font-family--chancery), Georgia, serif !important;
    font-size: clamp(2.4rem, 4.5vw, 4rem) !important;
    font-weight: 300 !important;
    font-style: italic !important;
    line-height: 1.05 !important;
    letter-spacing: 0.01em !important;
    color: #1A0E2E !important;
    margin-bottom: 1rem !important;
    text-align: left !important;
}

/* ── Price ── */
.single-product .wc-block-components-product-price,
.single-product p.price,
.single-product .price {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
    font-weight: 400 !important;
    color: #4A2C7A !important;
    margin-bottom: 1.4rem !important;
}

.single-product .woocommerce-Price-amount.amount {
    font-size: inherit !important;
    color: inherit !important;
}

/* ── Short description ── */
.single-product .woocommerce-product-details__short-description,
.single-product .wp-block-post-excerpt p,
.single-product .wc-block-post-excerpt p {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 1.25rem !important;
    line-height: 1.75 !important;
    color: #3d2d52 !important;
    margin-bottom: 1.8rem !important;
}

/* ── Variation selects ── */
.single-product .variations td.value select,
.single-product .woocommerce-variation-add-to-cart select,
.single-product .variations select {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 1.15rem !important;
    padding: 0.55rem 2rem 0.55rem 0.9rem !important;
    border: 1px solid rgba(74, 44, 122, 0.28) !important;
    border-radius: 0 !important;
    background-color: #fff !important;
    color: #1A0E2E !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    width: 100% !important;
    outline: none !important;
    transition: border-color 0.2s !important;
}

.single-product .variations td.value select:focus {
    border-color: #4A2C7A !important;
}

/* Variation labels */
.single-product .variations td.label label,
.single-product .variations th.label label {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: #7153A6 !important;
    font-weight: 500 !important;
}

/* ── Quantity ── */
.single-product .quantity input.qty,
.single-product .wc-block-components-quantity-selector input {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 1.2rem !important;
    border: 1px solid rgba(74, 44, 122, 0.22) !important;
    border-radius: 0 !important;
    text-align: center !important;
    color: #1A0E2E !important;
}

/* ── Add to cart button ── */
.single-product .single_add_to_cart_button.button,
.single-product button.single_add_to_cart_button,
.single-product .wc-block-components-product-button__button {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    padding: 1rem 2.5rem !important;
    border-radius: 0 !important;
    background: #4A2C7A !important;
    color: #ffffff !important;
    border: 1px solid #4A2C7A !important;
    transition: background 0.22s, color 0.22s !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.single-product .single_add_to_cart_button.button:hover,
.single-product button.single_add_to_cart_button:hover {
    background: #231442 !important;
    border-color: #231442 !important;
    color: #ffffff !important;
}

/* ── Product meta (SKU, Category) ── */
.single-product .product_meta,
.single-product .wp-block-post-terms,
.single-product .taxonomy-product_cat {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 0.95rem !important;
    color: #A882C8 !important;
}

/* ── Breadcrumbs ── */
.single-product .woocommerce-breadcrumb,
.single-product nav.woocommerce-breadcrumb,
.single-product .wc-block-breadcrumbs {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 1rem !important;
    color: #A882C8 !important;
    font-style: italic;
}

.single-product .woocommerce-breadcrumb a,
.single-product .wc-block-breadcrumbs a {
    color: #7153A6 !important;
    text-decoration: none !important;
}

/* ── Hide duplicate "Description" h2 inside the tab panel ── */
.single-product .woocommerce-Tabs-panel--description h2,
.single-product #tab-description h2,
.single-product .wc-block-components-product-details h2:first-child {
    display: none !important;
}

/* ── Product tabs / details ── */
.single-product .wc-block-components-product-details,
.single-product .woocommerce-tabs {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 1.15rem !important;
    line-height: 1.75 !important;
}

/* ── Rating ── */
.single-product .woocommerce-product-rating,
.single-product .wc-block-components-product-rating {
    margin-bottom: 1rem !important;
}

/* ── Reset variations link ── */
.single-product .reset_variations {
    font-family: 'Crimson Pro', Georgia, serif !important;
    font-size: 0.9rem !important;
    color: #A882C8 !important;
    font-style: italic;
}

/* ── Mobile adjustments ── */
@media (max-width: 600px) {
    .single-product h1.wp-block-post-title,
    .single-product .product_title {
        font-size: clamp(1.9rem, 8vw, 2.6rem) !important;
    }
    .single-product .wc-block-components-product-price,
    .single-product p.price {
        font-size: 1.5rem !important;
    }
    .single-product .single_add_to_cart_button.button {
        width: 100% !important;
        text-align: center !important;
    }
}

