/* ========================================================================
   MOBLEBAGH — V3.17 PRODUCTION POLISH
   Safe additive layer. No WooCommerce/template behavior is changed here.
   ======================================================================== */

:root {
    --mb-ui-radius: 16px;
    --mb-ui-radius-sm: 11px;
    --mb-ui-border: rgba(23, 55, 42, .10);
    --mb-ui-shadow: 0 12px 34px rgba(17, 35, 25, .065);
    --mb-ui-shadow-hover: 0 20px 52px rgba(17, 35, 25, .105);
    --mb-ui-ease: cubic-bezier(.2,.7,.2,1);
}

/* Global reading / rhythm polish */
body {
    color: #1d2c23;
}

p,
.product-card-body,
.commerce-hero p,
.section-head p,
.editorial-content p,
.footer-column p,
.smart-chat-bubble {
    text-wrap: pretty;
}

.section-title,
.commerce-hero h1,
.simple-page-hero h1,
.home-hero-box h1 {
    text-wrap: balance;
}

/* Keep anchors clear of the sticky header. */
[id] {
    scroll-margin-top: 104px;
}

/* ------------------------------------------------------------------------
   Header — same structure, cleaner compact state on scroll
   ------------------------------------------------------------------------ */
.site-header,
.header-inner,
.site-logo img,
.main-nav a,
.header-quote,
.header-icon,
.mobile-menu-button {
    transition-duration: .24s;
    transition-timing-function: var(--mb-ui-ease);
}

@media (min-width: 961px) {
    .site-header.is-scrolled {
        background: rgba(255,255,255,.985);
        box-shadow: 0 12px 34px rgba(17,35,25,.07);
    }

    .site-header.is-scrolled .header-inner {
        height: 62px;
    }

    .site-header.is-scrolled .site-logo img {
        width: 142px;
        height: 44px;
    }

    .site-header.is-scrolled .main-nav a {
        height: 62px;
    }

    .site-header.is-scrolled .main-nav a::after {
        bottom: 8px;
    }

    .site-header.is-scrolled .header-quote {
        min-height: 39px;
    }
}

/* ------------------------------------------------------------------------
   Buttons / CTA — one visual language across the site
   ------------------------------------------------------------------------ */
.hero-primary-button,
.contact-cta-button,
.contact-submit,
.single-quote-button,
.moblebagh-quote-button,
.product-quote-link,
.footer-contact-button,
.smart-guide-start,
.smart-support-footer a {
    font-weight: 700;
    letter-spacing: -.01em;
}

.hero-primary-button,
.contact-cta-button,
.contact-submit,
.single-quote-button,
.moblebagh-quote-button {
    min-height: 43px;
}

.product-quote-link {
    min-height: 36px;
    padding: 6px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

/* ------------------------------------------------------------------------
   Product cards — equal rhythm without changing WooCommerce data/markup
   ------------------------------------------------------------------------ */
.product-grid,
.mb-shop-grid.product-grid {
    align-items: stretch;
}

.product-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    border-color: var(--mb-ui-border);
    border-radius: var(--mb-ui-radius);
    box-shadow: 0 7px 24px rgba(17,35,25,.035);
    transition: transform .25s var(--mb-ui-ease), box-shadow .25s var(--mb-ui-ease), border-color .25s ease;
}

.product-card-media {
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    min-height: 0;
    overflow: hidden;
    background: #f0ede6;
}

.product-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .42s var(--mb-ui-ease);
}

.product-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px 16px 15px;
}

.product-category {
    margin-bottom: 5px;
    color: #7a837d;
    font-size: 11px;
    line-height: 1.6;
}

.product-card h3 {
    margin: 0 0 14px;
    min-height: 3.1em;
    color: var(--green-900);
    font-size: clamp(16px, 1.25vw, 19px);
    line-height: 1.55;
    font-weight: 700;
}

.product-card-bottom {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid rgba(23,55,42,.075);
    gap: 8px;
}

.product-request-price {
    color: #737d76;
    font-size: 10.5px;
    white-space: nowrap;
}

.product-card-quick {
    transform: translateY(4px);
    opacity: 0;
    transition: opacity .22s ease, transform .22s var(--mb-ui-ease);
}

@media (hover: hover) and (pointer: fine) {
    .product-card:hover {
        transform: translateY(-4px);
        border-color: rgba(23,55,42,.15);
        box-shadow: var(--mb-ui-shadow-hover);
    }

    .product-card:hover .product-card-media img {
        transform: scale(1.025);
    }

    .product-card:hover .product-card-quick {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ------------------------------------------------------------------------
   Shop — tighten empty vertical space, keep category bar easy to scan
   ------------------------------------------------------------------------ */
.mb-shop-page .commerce-shell {
    padding-top: 46px;
    padding-bottom: 62px;
}

.mb-shop-page .commerce-hero {
    margin-bottom: 19px;
}

.mb-shop-page .commerce-hero p {
    max-width: 760px;
    color: #667069;
}

.shop-category-nav {
    gap: 8px;
    margin-bottom: 20px;
    padding-bottom: 4px;
}

.shop-category-chip {
    min-height: 37px;
    border-radius: 999px;
    transition: transform .18s var(--mb-ui-ease), background .18s ease, border-color .18s ease;
}

@media (hover: hover) and (pointer: fine) {
    .shop-category-chip:hover {
        transform: translateY(-1px);
    }
}

.mb-shop-toolbar {
    margin: 12px 0 20px;
    padding: 12px 14px;
    border-color: var(--mb-ui-border);
    border-radius: 13px;
    box-shadow: 0 6px 18px rgba(17,35,25,.025);
}

.mb-shop-grid {
    margin-bottom: 30px;
}

/* ------------------------------------------------------------------------
   Home / collection rhythm — less empty space, same composition
   ------------------------------------------------------------------------ */
.section-head {
    margin-bottom: 26px;
}

.products-showcase .site-container,
.products-showcase-alt .site-container,
.collections-section .site-container {
    position: relative;
}

.collection-card,
.catalog-preview-card,
.inspiration-card {
    border-color: var(--mb-ui-border);
}

/* ------------------------------------------------------------------------
   Guide widget — smaller footprint, more app-like, safer on mobile
   ------------------------------------------------------------------------ */
.smart-support {
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
}

.smart-support-launcher {
    min-height: 48px;
    padding: 5px 11px 5px 7px;
    gap: 8px;
    border: 1px solid rgba(255,255,255,.09);
    box-shadow: 0 13px 34px rgba(12,35,23,.18);
}

.smart-support-launcher-icon {
    width: 33px;
    height: 33px;
}

.smart-support-launcher-copy strong {
    font-size: 11.5px;
}

.smart-support-launcher-copy small {
    font-size: 8.5px;
}

.smart-support-panel {
    bottom: 58px;
    width: min(382px, calc(100vw - 30px));
    max-height: min(590px, calc(100dvh - 110px));
    border-radius: 18px;
    overflow: hidden;
}

.smart-support-header {
    min-height: 64px;
}

.smart-support-body {
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #c9d0c8 transparent;
}

.smart-support-question {
    min-height: 43px;
}

.smart-support-question span {
    line-height: 1.6;
}

.smart-guide-option {
    min-height: 60px;
}

/* ------------------------------------------------------------------------
   Footer — a touch clearer without changing layout
   ------------------------------------------------------------------------ */
.site-footer {
    border-top: 1px solid rgba(255,255,255,.06);
}

.footer-column a {
    transition: opacity .18s ease, transform .18s ease;
}

@media (hover: hover) and (pointer: fine) {
    .footer-column a:hover {
        opacity: .82;
        transform: translateX(-2px);
    }
}

/* ------------------------------------------------------------------------
   Responsive refinements
   ------------------------------------------------------------------------ */
@media (max-width: 960px) {
    .mb-shop-page .commerce-shell {
        padding-top: 34px;
        padding-bottom: 50px;
    }

    .product-card h3 {
        min-height: 3.05em;
    }
}

@media (max-width: 760px) {
    .site-container,
    .container {
        width: min(var(--container), calc(100% - 28px));
    }

    .mb-shop-grid.product-grid {
        gap: 12px;
    }

    .product-card-body {
        padding: 14px 13px 13px;
    }

    .product-card h3 {
        margin-bottom: 11px;
        min-height: 0;
        font-size: 16px;
    }

    .product-card-bottom {
        align-items: stretch;
        flex-direction: column;
        padding-top: 10px;
    }

    .product-quote-link {
        width: 100%;
    }

    .product-request-price {
        white-space: normal;
    }

    .smart-support {
        right: max(12px, env(safe-area-inset-right));
        bottom: max(12px, env(safe-area-inset-bottom));
    }

    .smart-support-launcher {
        width: 48px;
        height: 48px;
        min-height: 48px;
        padding: 0;
        justify-content: center;
    }

    .smart-support-launcher-icon {
        width: 38px;
        height: 38px;
        background: transparent;
    }

    .smart-support-launcher-copy,
    .smart-support-launcher > i {
        display: none;
    }

    .smart-support-panel {
        right: 0;
        bottom: 58px;
        width: min(392px, calc(100vw - 24px));
        max-height: min(650px, calc(100dvh - 92px));
        border-radius: 16px;
    }

    .smart-guide-entry {
        padding: 12px;
    }
}

@media (max-width: 520px) {
    .mb-shop-grid.product-grid {
        grid-template-columns: 1fr;
    }

    .product-card-media {
        aspect-ratio: 1.08 / 1;
    }

    .product-card h3 {
        font-size: 18px;
    }

    .shop-category-nav {
        margin-inline: -14px;
        padding-inline: 14px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .shop-category-nav::-webkit-scrollbar {
        display: none;
    }

    .shop-category-chip {
        flex: 0 0 auto;
    }
}

/* Avoid motion overload and accidental hover animation on users who opt out. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

/* ========================================================================
   V3.17 — PRODUCTION UI REFINEMENT
   Visual-only polish: consistent surfaces, cleaner boxes, stronger guide UI.
   No WooCommerce data or business logic is changed here.
   ======================================================================== */

:root {
    --mb-surface: #ffffff;
    --mb-surface-soft: #fbfaf7;
    --mb-line: rgba(23,55,42,.095);
    --mb-line-strong: rgba(23,55,42,.145);
    --mb-radius-card: 18px;
    --mb-shadow-soft-2: 0 10px 30px rgba(16,38,25,.045);
    --mb-shadow-card-2: 0 18px 48px rgba(16,38,25,.075);
}

/* Consistent card language across catalog and editorial blocks. */
.product-card,
.catalog-preview-card,
.inspiration-card,
.collections-category-card,
.collections-directory-feature,
.contact-info-panel,
.contact-form-card,
.material-grid article,
.guide-steps article,
.empty-catalog-card {
    border-color: var(--mb-line);
}

/* Section headings: slightly more hierarchy without making the layout louder. */
.section-head {
    align-items: end;
}
.section-eyebrow,
.page-eyebrow {
    letter-spacing: 0;
    font-weight: 700;
}
.section-title {
    line-height: 1.35;
}
.section-link {
    font-weight: 700;
}

/* Guide page: turn the long separators into useful, scannable cards. */
.guide-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    border-top: 0;
}
.guide-steps article {
    min-height: 150px;
    padding: 22px;
    grid-template-columns: 46px 1fr;
    gap: 15px;
    align-items: start;
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius-card);
    background: linear-gradient(145deg, #fff, #fbfaf6);
    box-shadow: var(--mb-shadow-soft-2);
    transition: transform .22s var(--mb-ui-ease), box-shadow .22s var(--mb-ui-ease), border-color .22s ease;
}
.guide-steps article > span {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #edf2eb;
    color: var(--green-900);
    font-weight: 800;
}
.guide-steps h2 {
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 600;
}
@media (hover:hover) and (pointer:fine) {
    .guide-steps article:hover {
        transform: translateY(-3px);
        border-color: var(--mb-line-strong);
        box-shadow: var(--mb-shadow-card-2);
    }
}

/* Material boxes: premium product-advice cards rather than plain blocks. */
.material-grid {
    gap: 14px;
}
.material-grid article {
    position: relative;
    min-height: 190px;
    overflow: hidden;
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius-card);
    background: linear-gradient(155deg, #f8f5ee 0%, #fff 78%);
    box-shadow: var(--mb-shadow-soft-2);
}
.material-grid article::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 64px;
    height: 3px;
    background: linear-gradient(90deg, var(--green-650), #b29972);
    border-radius: 0 0 0 99px;
}
.material-grid h3 {
    font-size: 23px;
    font-weight: 600;
}

/* Contact: make both panels feel like one designed system. */
.contact-info-panel,
.contact-form-card {
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius-card);
    box-shadow: var(--mb-shadow-soft-2);
}
.contact-info-panel {
    background: linear-gradient(145deg, #f5f1e8, #fbfaf6);
}
.contact-form input,
.contact-form textarea {
    border-radius: 11px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.contact-form input:focus,
.contact-form textarea:focus {
    box-shadow: 0 0 0 4px rgba(23,55,42,.06);
}

/* Collection directory cards: cleaner edges and stronger image/readability balance. */
.collections-directory-feature,
.collections-category-card {
    border-radius: var(--mb-radius-card);
    overflow: hidden;
    box-shadow: var(--mb-shadow-soft-2);
}
.collections-directory-feature-copy {
    padding: 24px;
}
.collections-category-body {
    min-height: 86px;
}

/* Product cards: give the bottom CTA row a bit more breathing room. */
.product-card-bottom {
    min-height: 48px;
}
.product-quote-link {
    font-weight: 700;
}

/* Smart guide: polished app-like surface, while keeping the existing logic. */
.smart-support-panel {
    border: 1px solid rgba(23,55,42,.12);
    background: #fff;
    box-shadow: 0 28px 80px rgba(10,28,18,.24);
}
.smart-support-header {
    position: relative;
    background: linear-gradient(135deg, #133426 0%, #1c4936 100%);
}
.smart-support-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: rgba(255,255,255,.10);
}
.smart-support-avatar {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
}
.smart-guide-entry {
    border: 1px solid rgba(23,55,42,.10);
    border-radius: 14px;
    background: linear-gradient(135deg, #f7f4ec, #f1f5ef);
    box-shadow: 0 8px 22px rgba(16,38,25,.04);
}
.smart-guide-entry-kicker {
    display: inline-flex;
    width: max-content;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(23,55,42,.07);
    color: var(--green-900);
    font-weight: 800;
}
.smart-guide-option {
    position: relative;
    padding-right: 14px;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff, #fdfcf9);
}
.smart-guide-option::after {
    content: "←";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #96a399;
    font-size: 12px;
    transition: transform .18s ease, color .18s ease;
}
.smart-guide-option:hover::after,
.smart-guide-option:focus-visible::after {
    color: var(--green-900);
    transform: translate(-2px, -50%);
}
.smart-support-question {
    border: 1px solid rgba(23,55,42,.085);
    background: #fff;
}
.smart-support-footer {
    background: #faf9f6;
    border-top-color: rgba(23,55,42,.08);
}

/* Mobile: preserve generous tap targets and reduce visual crowding. */
@media (max-width: 760px) {
    .guide-steps {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .guide-steps article {
        min-height: 0;
        padding: 18px;
        border-radius: 14px;
    }
    .material-grid article,
    .contact-info-panel,
    .contact-form-card,
    .collections-directory-feature,
    .collections-category-card {
        border-radius: 14px;
    }
    .smart-support-panel {
        border-radius: 18px 18px 12px 12px;
    }
    .smart-guide-option {
        min-height: 58px;
        padding-left: 34px;
    }
}


/* V3.17.2 guide page refinement: calmer cards, no harsh top stripe. */
.guide-page .guide-steps {
    gap: 16px;
}
.guide-page .guide-steps article {
    min-height: 164px;
    padding: 24px 24px 22px;
    border: 1px solid rgba(23,55,42,.09);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,33,23,.045);
}
.guide-page .guide-steps article > span {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #f3f5ef;
    color: var(--green-900);
    box-shadow: inset 0 0 0 1px rgba(23,55,42,.08);
}
.guide-page .guide-steps h2 {
    margin-bottom: 8px;
    font-size: clamp(21px, 2vw, 27px);
    line-height: 1.45;
}
.guide-page .guide-steps p {
    font-size: 14px;
    line-height: 2;
    color: #6a706c;
}
@media (hover:hover) and (pointer:fine) {
    .guide-page .guide-steps article:hover {
        transform: translateY(-2px);
        box-shadow: 0 16px 36px rgba(15,33,23,.065);
        border-color: rgba(23,55,42,.15);
    }
}

.guide-page .material-grid {
    gap: 18px;
}
.guide-page .material-grid article {
    min-height: 210px;
    padding: 28px 24px 24px;
    border: 1px solid rgba(23,55,42,.09);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #faf8f2 100%);
    box-shadow: 0 14px 34px rgba(15,33,23,.045);
}
.guide-page .material-grid article::before {
    content: none;
}
.guide-page .material-grid h3 {
    margin: 0 0 12px;
    font-size: 24px;
    line-height: 1.4;
}
.guide-page .material-grid p {
    font-size: 14px;
    line-height: 2;
    color: #6a706c;
}
@media (hover:hover) and (pointer:fine) {
    .guide-page .material-grid article:hover {
        transform: translateY(-2px);
        box-shadow: 0 16px 36px rgba(15,33,23,.065);
        border-color: rgba(23,55,42,.15);
    }
}

@media (max-width: 980px) {
    .guide-page .guide-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .guide-page .guide-steps article,
    .guide-page .material-grid article {
        min-height: unset;
        padding: 20px 18px;
        border-radius: 16px;
    }
    .guide-page .guide-steps h2,
    .guide-page .material-grid h3 {
        font-size: 20px;
    }
}


/* ========================================================================
   V3.18.2 — REAL MOBILE POLISH + CACHE-SAFE OVERRIDES
   Loaded after style.css on purpose. These rules are intentionally scoped
   to phone widths and use exact theme classes so desktop stays unchanged.
   ======================================================================== */
@media (max-width: 760px) {
    .site-container,
    .container {
        width: calc(100% - 28px);
    }

    /* Inner-page hero shared by About + Shopping Guide */
    .split-page-hero {
        padding: 26px 0 34px !important;
    }
    .split-page-grid {
        grid-template-columns: 1fr !important;
        gap: 22px !important;
    }
    .split-page-copy {
        padding: 6px 0 0 !important;
    }
    .split-page-copy h1 {
        margin: 7px 0 12px !important;
        font-size: clamp(28px, 8.4vw, 34px) !important;
        line-height: 1.38 !important;
        letter-spacing: -.035em !important;
    }
    .split-page-copy p {
        max-width: none !important;
        margin: 0 0 16px !important;
        font-size: 13px !important;
        line-height: 1.95 !important;
    }
    .split-page-media {
        height: min(66vw, 300px) !important;
        border-radius: 18px !important;
        overflow: hidden !important;
    }

    /* Generic interior spacing */
    .inner-section {
        padding: 38px 0 !important;
    }

    /* About page */
    .about-page .hero-primary-button {
        min-height: 44px !important;
        padding-inline: 18px !important;
        font-size: 13px !important;
    }
    .about-page .values-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .about-page .values-grid article {
        padding: 18px !important;
        border-radius: 15px !important;
    }
    .about-page .values-grid h2 {
        font-size: 20px !important;
    }
    .about-page .values-grid p {
        font-size: 12.5px !important;
    }
    .about-story-section {
        padding: 0 0 46px !important;
    }
    .about-story-grid {
        grid-template-columns: 1fr !important;
    }
    .about-story-media {
        min-height: 285px !important;
    }
    .about-story-copy {
        padding: 26px 20px !important;
    }
    .about-story-copy h2 {
        font-size: 27px !important;
    }
    .about-story-copy p {
        font-size: 13px !important;
    }

    /* Shopping guide */
    .guide-page .split-page-media {
        height: min(62vw, 275px) !important;
    }
    .guide-page .guide-steps {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .guide-page .guide-steps article {
        min-height: 0 !important;
        padding: 16px !important;
        grid-template-columns: 38px minmax(0,1fr) !important;
        gap: 11px !important;
        align-items: start !important;
        border-radius: 15px !important;
        box-shadow: 0 8px 22px rgba(15,33,23,.035) !important;
    }
    .guide-page .guide-steps article > span {
        width: 36px !important;
        height: 36px !important;
        border-radius: 11px !important;
        font-size: 10px !important;
    }
    .guide-page .guide-steps h2 {
        margin: 0 0 4px !important;
        font-size: 18px !important;
        line-height: 1.5 !important;
    }
    .guide-page .guide-steps p {
        font-size: 12px !important;
        line-height: 1.9 !important;
    }
    .guide-page .material-guide-section {
        padding: 4px 0 44px !important;
    }
    .guide-page .material-guide-section .section-head {
        margin-bottom: 16px !important;
    }
    .guide-page .material-guide-section .section-title {
        font-size: 25px !important;
        line-height: 1.45 !important;
    }
    .guide-page .material-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 9px !important;
    }
    .guide-page .material-grid article {
        min-height: 150px !important;
        padding: 15px 13px !important;
        border-radius: 15px !important;
        box-shadow: 0 7px 18px rgba(15,33,23,.03) !important;
    }
    .guide-page .material-grid h3 {
        margin-bottom: 7px !important;
        font-size: 17px !important;
    }
    .guide-page .material-grid p {
        font-size: 10.5px !important;
        line-height: 1.8 !important;
    }

    /* Collections directory */
    .collections-page-hero {
        padding: 38px 0 34px !important;
    }
    .collections-page-hero h1 {
        margin: 6px 0 10px !important;
        font-size: clamp(31px, 9vw, 38px) !important;
        line-height: 1.27 !important;
    }
    .collections-page-hero p {
        font-size: 12.5px !important;
        line-height: 1.9 !important;
    }
    .collections-page-actions {
        margin-top: 18px !important;
        gap: 10px !important;
    }
    .collections-page-featured,
    .collections-page-categories {
        padding: 42px 0 !important;
    }
    .collections-page-heading {
        margin-bottom: 18px !important;
    }
    .collections-page-heading .section-title {
        font-size: 27px !important;
    }
    .collections-directory-featured,
    .collections-category-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    .collections-directory-feature {
        min-height: 285px !important;
        border-radius: 18px !important;
    }
    .collections-directory-feature-copy {
        right: 16px !important;
        bottom: 15px !important;
        left: 16px !important;
    }
    .collections-directory-feature-copy h3 {
        margin: 3px 0 5px !important;
        font-size: 25px !important;
        line-height: 1.35 !important;
    }
    .collections-directory-feature-copy p {
        margin-bottom: 7px !important;
        font-size: 11.5px !important;
        line-height: 1.7 !important;
    }
    .collections-directory-feature-copy b {
        font-size: 11.5px !important;
    }

    /* Shop page — keep the catalog dense enough to feel like a real store */
    .mb-shop-page .commerce-shell,
    .commerce-shell {
        padding-top: 22px !important;
        padding-bottom: 48px !important;
    }
    .mb-shop-page .commerce-hero,
    .commerce-hero {
        padding: 30px 16px 24px !important;
        margin-bottom: 14px !important;
    }
    .commerce-hero > span {
        font-size: 9.5px !important;
    }
    .commerce-hero h1 {
        margin: 5px 0 8px !important;
        font-size: 30px !important;
        line-height: 1.32 !important;
    }
    .commerce-hero p {
        font-size: 12px !important;
        line-height: 1.9 !important;
    }
    .shop-category-nav {
        margin: 0 -14px 15px !important;
        padding: 0 14px 4px !important;
        gap: 7px !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch;
    }
    .shop-category-nav::-webkit-scrollbar { display: none !important; }
    .shop-category-chip {
        flex: 0 0 auto !important;
        min-height: 36px !important;
        padding: 0 12px !important;
        font-size: 11px !important;
    }
    .shop-category-chip span {
        width: 23px !important;
        height: 23px !important;
        font-size: 9px !important;
    }
    .mb-shop-toolbar {
        margin: 12px 0 16px !important;
        padding: 12px 13px !important;
        border-radius: 13px !important;
    }
    .mb-shop-grid.product-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 10px !important;
    }
    .mb-shop-grid .product-card {
        border-radius: 15px !important;
    }
    .mb-shop-grid .product-card-media {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 1 / 1.05 !important;
    }
    .mb-shop-grid .product-card-body {
        padding: 10px 9px 11px !important;
    }
    .mb-shop-grid .product-category {
        font-size: 8.5px !important;
    }
    .mb-shop-grid .product-card h3 {
        margin: 3px 0 7px !important;
        min-height: 0 !important;
        font-size: 13px !important;
        line-height: 1.55 !important;
    }
    .mb-shop-grid .product-card-bottom {
        gap: 6px !important;
        padding-top: 7px !important;
    }
    .mb-shop-grid .product-card-bottom a,
    .mb-shop-grid .product-card-quick {
        font-size: 9px !important;
    }

    /* Floating smart guide — fix the blank green circle.
       The core stylesheet hides every span; explicitly restore the icon span. */
    .smart-support {
        right: max(12px, env(safe-area-inset-right)) !important;
        bottom: max(14px, env(safe-area-inset-bottom)) !important;
    }
    .smart-support-launcher {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
        padding: 0 !important;
        gap: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 50% !important;
        border: 1px solid rgba(255,255,255,.18) !important;
        box-shadow: 0 12px 30px rgba(10,35,23,.24) !important;
    }
    .smart-support-launcher .smart-support-launcher-icon {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
        color: #fff !important;
        background: transparent !important;
    }
    .smart-support-launcher .smart-support-launcher-icon svg {
        display: block !important;
        width: 23px !important;
        height: 23px !important;
        fill: none !important;
        stroke: #fff !important;
        stroke-width: 1.9 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
    .smart-support-launcher .smart-support-launcher-copy,
    .smart-support-launcher > i {
        display: none !important;
    }
    .smart-support-panel {
        right: 0 !important;
        left: auto !important;
        bottom: 60px !important;
        width: min(390px, calc(100vw - 24px)) !important;
        max-height: calc(100dvh - 92px) !important;
        border-radius: 17px !important;
    }
}

@media (max-width: 420px) {
    .guide-page .material-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
    .contact-cta {
        padding: 20px 18px !important;
        gap: 14px !important;
    }
    .contact-cta h2 {
        font-size: 20px !important;
    }
}

@media (max-width: 350px) {
    .guide-page .material-grid,
    .mb-shop-grid.product-grid {
        grid-template-columns: 1fr !important;
    }
}

/* V3.18.3 — Smart support quick replies redesigned to feel like a messenger,
   without changing the existing rule-based logic. */
.smart-support-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background:
        radial-gradient(circle at top right, rgba(30, 92, 65, .05), transparent 34%),
        linear-gradient(180deg, #f8f7f3 0%, #f5f3ee 100%);
}

.smart-chat-log {
    margin-bottom: 0;
    padding: 2px 2px 0;
}

.smart-chat-row {
    animation: mbSmartChatIn .18s ease;
}

@keyframes mbSmartChatIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.smart-chat-bubble {
    position: relative;
    border-radius: 16px 16px 16px 6px;
    box-shadow: 0 8px 18px rgba(12, 30, 20, .04);
}

.smart-chat-row.is-user .smart-chat-bubble {
    border-radius: 16px 16px 6px 16px;
    box-shadow: 0 10px 24px rgba(16, 49, 34, .16);
}

.smart-support-replies {
    padding: 12px;
    border: 1px solid rgba(23, 55, 42, .10);
    border-radius: 16px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 14px 34px rgba(15, 39, 28, .05);
    backdrop-filter: blur(8px);
}

.smart-support-replies-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.smart-support-replies-head strong {
    display: block;
    color: var(--green-900);
    font-size: 12px;
    font-weight: 800;
}

.smart-support-replies-head small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 9.5px;
    line-height: 1.7;
}

.smart-support-replies-badge {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(23, 55, 42, .08);
    color: var(--green-900);
    font-size: 9px;
    font-weight: 800;
}

.smart-support-topics {
    margin-bottom: 10px;
    padding-bottom: 2px;
}

.smart-support-topics button {
    min-height: 33px;
    padding: 0 11px;
    border-color: #d7ddd6;
    background: rgba(255,255,255,.92);
    box-shadow: 0 2px 8px rgba(15,39,28,.02);
}

.smart-support-questions {
    display: grid;
    gap: 8px;
}

.smart-support-question {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 26px;
    align-items: center;
    gap: 10px;
    min-height: 0;
    padding: 10px;
    border: 1px solid #e4e7e1;
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, #fbfbf9 100%);
    box-shadow: 0 8px 18px rgba(15, 39, 28, .035);
    text-align: right;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.smart-support-question:hover,
.smart-support-question:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(23, 55, 42, .24);
    background: #fff;
    box-shadow: 0 12px 26px rgba(15, 39, 28, .07);
    outline: none;
}

.smart-support-question-icon {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: linear-gradient(135deg, #edf3ee 0%, #e5ece7 100%);
    color: var(--green-900);
    font-style: normal;
    font-size: 12px;
    box-shadow: inset 0 0 0 1px rgba(23, 55, 42, .06);
}

.smart-support-question-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.smart-support-question-copy small,
.smart-support-question-copy em,
.smart-support-question-copy strong {
    display: block;
    min-width: 0;
}

.smart-support-question-copy small {
    color: #8a948e;
    font-size: 8.5px;
    font-weight: 700;
}

.smart-support-question-copy strong {
    color: var(--green-900);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.7;
}

.smart-support-question-copy em {
    color: var(--muted);
    font-style: normal;
    font-size: 8.8px;
    line-height: 1.6;
}

.smart-support-question-arrow {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f0f3ee;
    color: var(--green-900);
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    transition: transform .18s ease, background .18s ease;
}

.smart-support-question:hover .smart-support-question-arrow,
.smart-support-question:focus-visible .smart-support-question-arrow {
    transform: translateX(-2px);
    background: #e4ece6;
}

.smart-support.is-guiding .smart-support-replies {
    display: none !important;
}

@media (max-width: 640px) {
    .smart-support-replies {
        padding: 10px;
        border-radius: 14px;
    }

    .smart-support-replies-head {
        gap: 8px;
    }

    .smart-support-replies-head strong {
        font-size: 11.5px;
    }

    .smart-support-question {
        grid-template-columns: 30px minmax(0, 1fr) 24px;
        gap: 9px;
        padding: 9px;
        border-radius: 13px;
    }

    .smart-support-question-icon {
        width: 30px;
        height: 30px;
        border-radius: 10px;
    }

    .smart-support-question-copy strong {
        font-size: 10.5px;
    }

    .smart-support-question-copy em {
        font-size: 8.5px;
    }
}

/* ==========================================================
   V3.20 — final mobile polish requested by user
   - cleaner messenger-like smart guide
   - soft typing indicator + gradual reply reveal
   - remove blue tap flash on touch devices
   - square image corners site-wide
========================================================== */

/* Touch/click feedback: never flash the browser's default blue. */
html,
body,
a,
button,
input,
textarea,
select,
summary,
[role="button"] {
    -webkit-tap-highlight-color: transparent !important;
}

a,
button,
summary,
[role="button"] {
    -webkit-user-select: none;
    user-select: none;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid rgba(23, 55, 42, .42) !important;
    outline-offset: 2px;
}

a:visited { color: inherit; }

@media (hover: none) and (pointer: coarse) {
    a:active,
    button:active,
    summary:active,
    [role="button"]:active {
        opacity: .82;
        filter: brightness(.98);
    }
}

/* Images must stay square: no rounded photo corners anywhere. */
img,
picture,
figure,
.wp-block-image,
.wp-block-image img,
.wp-post-image,
.attachment-woocommerce_thumbnail,
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image img,
.home-hero-image,
.collection-image,
.product-card-media,
.product-card-media img,
.collections-directory-feature,
.collections-directory-feature img,
.collections-category-media,
.collections-category-media img,
.catalog-preview-card,
.catalog-preview-card img,
.empty-catalog-card,
.empty-catalog-card img,
.inspiration-media,
.inspiration-media img,
.split-page-media,
.split-page-media img,
.about-story-media,
.about-story-media img,
.editorial-image,
.editorial-image img,
.mb-product-gallery,
.mb-product-main,
.mb-product-main-image,
.mb-product-thumb,
.mb-product-thumb img,
.woocommerce ul.products li.product,
.woocommerce ul.products li.product img {
    border-radius: 0 !important;
}

/* Parent cards that used overflow clipping must not curve the photo itself. */
.collection-card,
.collection-card-large,
.collections-directory-feature,
.collections-category-card,
.catalog-preview-card,
.inspiration-card,
.empty-catalog-card,
.product-card,
.mb-product-card,
.woocommerce ul.products li.product {
    border-radius: 0 !important;
}

/* Minimal smart assistant surface. */
.smart-support-panel {
    width: min(372px, calc(100vw - 24px)) !important;
    max-height: min(610px, calc(100dvh - 110px)) !important;
    background: #fff !important;
    border: 1px solid rgba(23, 55, 42, .11) !important;
    border-radius: 20px !important;
    box-shadow: 0 26px 70px rgba(10, 28, 18, .20) !important;
}

.smart-support-header {
    min-height: 62px !important;
    padding: 11px 12px !important;
    gap: 9px !important;
    background: linear-gradient(135deg, #123326 0%, #184633 100%) !important;
}

.smart-support-avatar {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    border-radius: 50% !important;
    font-size: 15px !important;
}

.smart-support-header-copy {
    margin-left: auto !important;
}

.smart-support-header-copy strong {
    font-size: 13px !important;
    font-weight: 800 !important;
}

.smart-support-status {
    margin-top: 2px !important;
    font-size: 9.5px !important;
}

.smart-support-reset,
.smart-support-close {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    border: 0 !important;
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
}

.smart-support-reset {
    font-size: 14px !important;
}

.smart-support-close {
    font-size: 23px !important;
    line-height: 1 !important;
}

.smart-support-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 13px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: #faf9f6 !important;
}

.smart-chat-log {
    display: grid !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.smart-chat-row {
    width: 100%;
    display: flex;
    animation: mbChatMessageIn .22s ease both;
}

.smart-chat-row.is-bot { justify-content: flex-start; }
.smart-chat-row.is-user { justify-content: flex-end; }

@keyframes mbChatMessageIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.smart-chat-bubble {
    max-width: 86% !important;
    padding: 10px 12px !important;
    border-radius: 17px 17px 17px 6px !important;
    border: 1px solid #e8e4dd !important;
    background: #fff !important;
    color: #314038 !important;
    font-size: 11.5px !important;
    line-height: 1.95 !important;
    box-shadow: 0 7px 20px rgba(17, 35, 25, .035) !important;
}

.smart-chat-row.is-user .smart-chat-bubble {
    border-color: var(--green-900) !important;
    border-radius: 17px 17px 6px 17px !important;
    background: var(--green-900) !important;
    color: #fff !important;
    box-shadow: 0 8px 22px rgba(23, 55, 42, .14) !important;
}

/* Three-dot typing indicator. */
.smart-typing-bubble {
    width: 54px !important;
    min-height: 34px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 8px 11px !important;
}

.smart-typing-dots {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    direction: ltr;
}

.smart-typing-dots i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #7d8b83;
    animation: mbTypingDot 1s infinite ease-in-out;
}

.smart-typing-dots i:nth-child(2) { animation-delay: .14s; }
.smart-typing-dots i:nth-child(3) { animation-delay: .28s; }

@keyframes mbTypingDot {
    0%, 60%, 100% { opacity: .28; transform: translateY(0); }
    30% { opacity: 1; transform: translateY(-3px); }
}

/* Compact one-line quick replies instead of big stacked cards. */
.smart-support-suggestions {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding: 1px 0 3px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
}

.smart-support-suggestions::-webkit-scrollbar { display: none; }

.smart-support-suggestions button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #dce4dc;
    border-radius: 999px;
    background: #fff;
    color: var(--green-900);
    font-size: 10.5px;
    font-weight: 700;
    white-space: nowrap;
    scroll-snap-align: start;
    cursor: pointer;
    box-shadow: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
}

.smart-support-suggestions button:hover,
.smart-support-suggestions button:focus-visible {
    border-color: #b9c7ba;
    background: #f3f6f2;
}

.smart-support-suggestions .smart-support-guide-chip {
    border-color: rgba(23, 55, 42, .14);
    background: #edf3ee;
}

.smart-support-composer {
    grid-template-columns: minmax(0, 1fr) 42px !important;
    gap: 8px !important;
    padding: 10px 12px 12px !important;
    border-top: 1px solid #eee9e1 !important;
    background: #fff !important;
}

.smart-support-input {
    height: 42px !important;
    padding: 0 14px !important;
    border: 1px solid #dfe4de !important;
    border-radius: 15px !important;
    background: #fafbf9 !important;
    color: var(--text) !important;
    font-size: 11.5px !important;
    box-shadow: none !important;
}

.smart-support-input:focus,
.smart-support-input:focus-visible {
    border-color: #aebdaf !important;
    background: #fff !important;
    outline: 2px solid rgba(23, 55, 42, .10) !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}

.smart-support-send {
    width: 42px !important;
    height: 42px !important;
    border-radius: 14px !important;
    border: 0 !important;
    background: var(--green-900) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.smart-support-send:hover { background: var(--green-850) !important; }

/* Legacy stacked reply UI is no longer used; keep it hidden in case stale markup is cached. */
.smart-support-replies,
.smart-support-topics,
.smart-support-questions,
.smart-guide-entry,
.smart-support-footer,
.smart-support-note {
    display: none !important;
}

/* The step-by-step guide still exists, but only opens when requested. */
.smart-guide[hidden] { display: none !important; }
.smart-support.is-guiding .smart-chat-log,
.smart-support.is-guiding .smart-support-suggestions,
.smart-support.is-guiding .smart-support-composer {
    display: none !important;
}
.smart-support.is-guiding .smart-guide {
    display: block !important;
}

@media (max-width: 640px) {
    .smart-support {
        right: 10px !important;
        bottom: 10px !important;
    }

    .smart-support.is-open .smart-support-launcher {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .smart-support-launcher {
        width: 52px !important;
        height: 52px !important;
        min-height: 52px !important;
        padding: 0 !important;
        border-radius: 50% !important;
    }

    .smart-support-launcher-icon {
        width: 52px !important;
        height: 52px !important;
        background: transparent !important;
    }

    .smart-support-launcher-copy,
    .smart-support-launcher > i {
        display: none !important;
    }

    .smart-support-panel {
        position: fixed !important;
        right: 10px !important;
        left: 10px !important;
        bottom: 12px !important;
        width: auto !important;
        max-height: min(590px, calc(100dvh - 92px)) !important;
        border-radius: 18px !important;
        transform-origin: bottom center !important;
    }

    .smart-support-header {
        min-height: 60px !important;
        padding: 10px 11px !important;
    }

    .smart-support-body {
        padding: 12px !important;
        gap: 10px !important;
    }

    .smart-chat-bubble {
        max-width: 88% !important;
        font-size: 11px !important;
        padding: 9px 11px !important;
    }

    .smart-support-suggestions {
        margin-inline: -2px;
        padding-inline: 2px;
    }

    .smart-support-suggestions button {
        min-height: 32px;
        padding-inline: 11px;
        font-size: 10px;
    }

    .smart-support-composer {
        grid-template-columns: minmax(0, 1fr) 44px !important;
        padding: 9px 10px 10px !important;
    }

    .smart-support-input,
    .smart-support-send {
        height: 44px !important;
    }

    .smart-support-send {
        width: 44px !important;
    }
}

/* ============================== V3.21 MOBILE CHAT FIT + FAVICON RELEASE ============================== */
/* Keep the floating launcher exactly on the right edge and never show it under an open panel. */
.smart-support {
    right: max(12px, env(safe-area-inset-right)) !important;
    left: auto !important;
}
.smart-support-launcher.is-hidden,
.smart-support.is-open .smart-support-launcher,
.smart-support:has(.smart-support-panel.is-open) .smart-support-launcher {
    display: none !important;
}

/* Mobile panel uses both top and bottom bounds. Header/composer stay fixed;
   only the message area scrolls. */
@media (max-width: 640px) {
    .smart-support-panel {
        position: fixed !important;
        top: max(8px, env(safe-area-inset-top)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: max(8px, env(safe-area-inset-bottom)) !important;
        left: max(8px, env(safe-area-inset-left)) !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        border-radius: 18px !important;
    }

    body.admin-bar .smart-support-panel {
        top: 54px !important;
    }

    .smart-support-header,
    .smart-support-composer {
        flex: 0 0 auto !important;
    }

    .smart-support-body {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        overscroll-behavior-y: contain !important;
        scrollbar-gutter: stable;
    }

    /* No horizontal-scroll trap: three compact quick actions + full-width guide. */
    .smart-support-suggestions {
        flex: 0 0 auto !important;
        width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
        scroll-snap-type: none !important;
        direction: rtl !important;
    }

    .smart-support-suggestions button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 34px !important;
        padding: 5px 7px !important;
        white-space: normal !important;
        line-height: 1.45 !important;
        text-align: center !important;
        border-radius: 12px !important;
        font-size: 9.5px !important;
    }

    .smart-support-suggestions .smart-support-guide-chip {
        grid-column: 1 / -1 !important;
        min-height: 38px !important;
        background: #edf3ee !important;
        border-color: rgba(23,55,42,.14) !important;
        font-size: 10px !important;
    }

    .smart-chat-log {
        flex: 0 0 auto !important;
    }

    .smart-support-composer {
        padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
    }
}

/* ============================== V3.22 GLOBAL DESKTOP + MOBILE CHAT FIT ============================== */
/* Apply the chat geometry on desktop too. The panel itself never scrolls;
   only the conversation area scrolls, while header and composer stay visible. */
.smart-support {
    position: fixed !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    left: auto !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    z-index: 99999 !important;
}

.smart-support-panel {
    position: fixed !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    left: auto !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    top: auto !important;
    width: min(440px, calc(100vw - 36px)) !important;
    height: min(720px, calc(100dvh - 44px)) !important;
    max-height: none !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border-radius: 22px !important;
}

body.admin-bar .smart-support-panel {
    height: min(700px, calc(100dvh - 76px)) !important;
}

.smart-support-header,
.smart-support-composer {
    flex: 0 0 auto !important;
}

.smart-support-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(23,55,42,.24) transparent;
}
.smart-support-body::-webkit-scrollbar { width: 7px; }
.smart-support-body::-webkit-scrollbar-track { background: transparent; }
.smart-support-body::-webkit-scrollbar-thumb {
    background: rgba(23,55,42,.20);
    border-radius: 999px;
}

/* No horizontal strip on any screen size. Keep the three instant actions
   together and put the detailed guide on its own full row. */
.smart-support-suggestions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
    direction: rtl !important;
}

.smart-support-suggestions button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 38px !important;
    padding: 6px 8px !important;
    white-space: normal !important;
    line-height: 1.5 !important;
    text-align: center !important;
    border-radius: 12px !important;
    font-size: 10.5px !important;
}

.smart-support-suggestions .smart-support-guide-chip {
    grid-column: 1 / -1 !important;
    justify-self: stretch !important;
    margin: 0 !important;
    min-height: 42px !important;
    background: #edf3ee !important;
    border-color: rgba(23,55,42,.14) !important;
    color: var(--green-900) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

.smart-support.is-open .smart-support-launcher,
.smart-support:has(.smart-support-panel.is-open) .smart-support-launcher,
.smart-support-launcher.is-hidden {
    display: none !important;
}

/* Avoid the old blue browser tap/focus flash on desktop/tablet as well. */
a,
button,
input,
textarea,
select,
[role="button"],
.smart-support-suggestions button {
    -webkit-tap-highlight-color: transparent !important;
}
a:focus,
button:focus,
[role="button"]:focus {
    outline-color: transparent;
}
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid rgba(23,55,42,.28) !important;
    outline-offset: 2px !important;
}

@media (max-width: 640px) {
    .smart-support {
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: max(8px, env(safe-area-inset-bottom)) !important;
    }

    .smart-support-panel {
        top: max(8px, env(safe-area-inset-top)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: max(8px, env(safe-area-inset-bottom)) !important;
        left: max(8px, env(safe-area-inset-left)) !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        border-radius: 18px !important;
    }

    body.admin-bar .smart-support-panel {
        top: 54px !important;
        height: auto !important;
    }

    .smart-support-suggestions button {
        min-height: 34px !important;
        padding: 5px 6px !important;
        font-size: 9.5px !important;
    }

    .smart-support-suggestions .smart-support-guide-chip {
        min-height: 38px !important;
        font-size: 10px !important;
    }
}

/* ============================== v3.26 SEO intro ============================== */
.home-seo-intro {
    padding: 34px 0 8px;
    background: #fff;
}
.home-seo-intro-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr);
    gap: 44px;
    align-items: end;
    padding-bottom: 34px;
    border-bottom: 1px solid var(--border);
}
.home-seo-intro-copy h2 {
    margin: 0 0 12px;
    color: var(--green-900);
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.35;
    font-weight: 600;
}
.home-seo-intro-copy p {
    max-width: 850px;
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 2.05;
}
.home-seo-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}
.home-seo-links a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid rgba(23,55,42,.12);
    border-radius: 999px;
    background: #faf8f4;
    color: var(--green-900);
    font-size: 12px;
    white-space: nowrap;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.home-seo-links a:hover {
    background: #f2eee5;
    border-color: rgba(23,55,42,.25);
    transform: translateY(-1px);
}
@media (max-width: 767px) {
    .home-seo-intro { padding: 24px 0 0; }
    .home-seo-intro-inner {
        grid-template-columns: 1fr;
        gap: 18px;
        padding-bottom: 26px;
    }
    .home-seo-intro-copy h2 { font-size: 24px; }
    .home-seo-intro-copy p { font-size: 13px; line-height: 1.95; }
    .home-seo-links {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
    }
    .home-seo-links::-webkit-scrollbar { display:none; }
    .home-seo-links a { flex: 0 0 auto; }
}

/* ============================== v3.27 SEO content phase 2 ============================== */
.home-buying-guide {
    background: #f8f6f0;
}
.home-buying-guide-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 52px;
    align-items: start;
}
.home-buying-guide-copy h2,
.home-faq-heading h2 {
    margin: 0 0 14px;
    color: var(--green-900);
    font-size: clamp(28px, 3.2vw, 42px);
    line-height: 1.35;
    font-weight: 600;
}
.home-buying-guide-copy p,
.home-faq-heading p {
    margin: 0 0 13px;
    color: var(--muted);
    font-size: 14px;
    line-height: 2.05;
}
.home-buying-guide-copy p a {
    color: var(--green-900);
    font-weight: 700;
    border-bottom: 1px solid rgba(23,55,42,.25);
}
.home-buying-guide-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid rgba(23,55,42,.15);
    border-radius: 999px;
    background: #fff;
    color: var(--green-900);
    font-size: 13px;
    font-weight: 700;
}
.home-buying-guide-points {
    display: grid;
    gap: 10px;
}
.home-buying-guide-points article {
    padding: 18px 19px;
    border: 1px solid #e8e2d7;
    border-radius: 18px;
    background: rgba(255,255,255,.72);
}
.home-buying-guide-points strong {
    display: block;
    margin-bottom: 5px;
    color: var(--green-900);
    font-size: 15px;
}
.home-buying-guide-points p {
    margin: 0;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 1.9;
}

.home-faq-section {
    padding: 72px 0;
    background: #fff;
}
.home-faq-shell {
    display: grid;
    grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr);
    gap: 54px;
    align-items: start;
}
.home-faq-list {
    border-top: 1px solid var(--border);
}
.home-faq-list details {
    border-bottom: 1px solid var(--border);
}
.home-faq-list summary {
    position: relative;
    list-style: none;
    cursor: pointer;
    padding: 19px 38px 19px 0;
    color: var(--green-900);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.8;
}
.home-faq-list summary::-webkit-details-marker { display: none; }
.home-faq-list summary::before {
    content: "+";
    position: absolute;
    right: 0;
    top: 17px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f0f4f0;
    color: var(--green-900);
    font: 18px/1 Arial, sans-serif;
}
.home-faq-list details[open] summary::before { content: "−"; }
.home-faq-list details p {
    margin: -2px 38px 18px 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 2;
}

@media (max-width: 767px) {
    .home-buying-guide { padding-block: 46px !important; }
    .home-buying-guide-grid,
    .home-faq-shell {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .home-buying-guide-copy h2,
    .home-faq-heading h2 {
        font-size: 25px;
    }
    .home-buying-guide-copy p,
    .home-faq-heading p {
        font-size: 13px;
        line-height: 1.95;
    }
    .home-buying-guide-points {
        grid-template-columns: 1fr;
    }
    .home-faq-section { padding: 48px 0; }
    .home-faq-list summary {
        padding-block: 16px;
        padding-left: 4px;
        font-size: 13px;
    }
    .home-faq-list details p {
        margin-right: 34px;
        font-size: 12px;
    }
}


/* ========================================================================
   V3.29.1 — CATALOG CTA CONTRAST / LINK FIX (2026-10-31)
   WooCommerce's .button defaults may take precedence inside related lists.
   Keep all quote CTAs legible and interactive across desktop and mobile.
   ======================================================================== */
.woocommerce ul.products li.product a.button.moblebagh-quote-button,
.woocommerce .related.products ul.products li.product a.button.moblebagh-quote-button,
.woocommerce .upsells.products ul.products li.product a.button.moblebagh-quote-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    min-height: 44px !important;
    max-width: calc(100% - 28px);
    padding: 10px 14px !important;
    border: 1px solid #17372a !important;
    border-radius: 10px !important;
    background: #17372a !important;
    background-color: #17372a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    visibility: visible !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    text-decoration: none !important;
    text-align: center;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
    white-space: normal;
    box-shadow: 0 6px 16px rgba(23, 55, 42, .16) !important;
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.woocommerce ul.products li.product a.button.moblebagh-quote-button:hover,
.woocommerce .related.products ul.products li.product a.button.moblebagh-quote-button:hover,
.woocommerce .upsells.products ul.products li.product a.button.moblebagh-quote-button:hover {
    border-color: #0f271c !important;
    background: #0f271c !important;
    background-color: #0f271c !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(23, 55, 42, .24) !important;
}

.woocommerce ul.products li.product a.button.moblebagh-quote-button:focus-visible,
.product-card-bottom a.product-quote-link:focus-visible {
    outline: 3px solid #b99a58 !important;
    outline-offset: 3px;
}

/* The custom shop/home product cards use a different CTA class. */
.product-card-bottom a.product-quote-link,
.mb-shop-grid .product-card-bottom a.product-quote-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 40px !important;
    padding: 9px 13px !important;
    border: 1px solid #17372a !important;
    border-radius: 10px !important;
    background: #17372a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    text-decoration: none !important;
    text-align: center;
    font-weight: 700 !important;
    line-height: 1.5;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(23, 55, 42, .12);
}

.product-card-bottom a.product-quote-link:hover,
.mb-shop-grid .product-card-bottom a.product-quote-link:hover {
    background: #0f271c !important;
    border-color: #0f271c !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.product-card-bottom {
    flex-wrap: wrap;
}

@media (max-width: 600px) {
    .woocommerce ul.products li.product a.button.moblebagh-quote-button {
        min-height: 42px !important;
        padding: 9px 10px !important;
        font-size: 11px !important;
    }
    .mb-shop-grid .product-card-bottom a.product-quote-link {
        font-size: 11px !important;
        min-height: 42px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .woocommerce ul.products li.product a.button.moblebagh-quote-button,
    .product-card-bottom a.product-quote-link {
        transition: none !important;
        transform: none !important;
    }
}

/* V3.30 — catalog navigation and keyboard/mobile usability */
.mb-skip-link {
    position: fixed; z-index: 99999; top: 10px; inset-inline-start: 12px;
    transform: translateY(-160%); padding: 10px 18px; border-radius: 10px;
    background: #17372a; color: #fff; font-weight: 700;
}
.mb-skip-link:focus { transform: translateY(0); color: #fff; outline: 3px solid #b99a58; }
.mb-catalog-pagination {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: 9px; margin: 36px 0 12px; direction: rtl;
}
.mb-catalog-pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; min-height: 42px; padding: 8px 14px;
    border: 1px solid #dbe3dc; border-radius: 11px;
    background: #fff; color: #17372a; font-weight: 700;
    text-decoration: none; transition: background .2s ease, color .2s ease;
}
.mb-catalog-pagination .page-numbers:hover,
.mb-catalog-pagination .page-numbers:focus-visible {
    background: #eef4ef; color: #0f271c; outline-offset: 2px;
}
.mb-catalog-pagination .page-numbers.current {
    background: #17372a; border-color: #17372a; color: #fff;
}
/* Clearly communicate that gallery thumbnails are interactive. */
.mb-product-thumb { cursor: pointer; }
.mb-product-thumb:focus-visible { outline: 3px solid #b99a58; outline-offset: 3px; }
/* Keep call-to-action tap targets at a comfortable size. */
@media (max-width: 600px) {
    .mb-shop-grid .product-card-bottom a.product-quote-link,
    .woocommerce ul.products li.product a.button.moblebagh-quote-button {
        min-height: 44px !important; font-size: 12px !important;
    }
    .mb-catalog-pagination { gap: 7px; margin-top: 25px; }
}
@media (prefers-reduced-motion: reduce) {
    .mb-skip-link, .mb-catalog-pagination .page-numbers { transition: none; }
}

/* V3.30.1 — purposeful empty-photo state, not an unexplained gray block */
.product-card-media .product-card-placeholder {
    display: flex; align-items: center; justify-content: center;
    min-height: 100%; height: 100%; padding: 20px;
    background: linear-gradient(135deg, #eaf0e9 0%, #d7e2d4 100%);
    color: #17372a; text-align: center;
}
.product-card-media .product-card-placeholder span {
    font-size: 13px; font-weight: 700; line-height: 2;
    background: rgba(255,255,255,.76); padding: 14px 24px;
    border: 1px solid rgba(23,55,42,.12); border-radius: 14px;
}
