/* ==========================================================================
   Mishkan HaTchelet — v2.2 design fixes (design audit 2026-11-09)
   Enqueued LAST (handle mishkan-v22-design-fixes, after mishkan-v17-overrides
   and its inline additions). Every rule is tagged with its audit finding id.
   Duplicate findings reported by several groups are reconciled into ONE rule
   set; all ids are listed on that block.
   RTL site: physical left/right is used only where the logical inset does not
   resolve as expected (noted inline).
   ========================================================================== */


/* ==========================================================================
   1. GLOBAL CHROME — header, drawers, footer, floating widgets
   ========================================================================== */

/* G2-04 + G8-M1 — mobile: keep the sticky header BELOW the fixed mobile search
   bar (.mishkan-mobile-search fixed top:0, 60px; +46px WP admin bar). */
@media (max-width: 991px) {
    html body .site-header { top: 60px; }
    html body.admin-bar .site-header { top: 106px; }
}

/* G8-01 — .site-header has backdrop-filter, which makes it the containing block
   for the position:fixed mobile-menu / mini-cart drawers and caps them at the
   header's z-index. Drop the filter and raise the header only while a drawer is
   open. (Permanent fix: move the drawers out of <header> in header.php.) */
html body .site-header:has(#mobile-menu.is-open),
html body .site-header:has(#mini-cart-dropdown.is-open) {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    z-index: 100000; /* above .a11y-toolbar 99999, .mt-wa 9990, badge 9500, mobile search 1000 */
}

/* G8-06 (CSS half) — header live-search dropdown too narrow on desktop.
   Scoped to the header so it can never match <body class="search-results">. */
@media (min-width: 992px) {
    .site-header div.search-results,
    .site-header #search-results { min-width: 380px; }
}

/* G8-09 — mini-cart: remove (×) overlapped the product title. v1.7:6410 forces
   position:absolute;left:0 !important, defeating its own grid-area:remove. */
html body .mini-cart-dropdown .mini-cart__item .mini-cart__remove.remove {
    position: static !important;
    grid-area: remove;
    align-self: start;
    margin-block-start: 2px;
}

/* G1-08 + G6-06 + G8-04 — footer branches strip overflowed / clipped at
   ≤1024px (the 1fr rule lives in v1.7's 1024px query; nowrap never reset). */
@media (max-width: 1024px) {
    .site-footer .footer-branches { grid-template-columns: minmax(0, 1fr); }
    .site-footer .footer-branches__title {
        white-space: normal;
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
    }
    .site-footer .footer-branches__cta {
        white-space: normal;
        justify-self: center;
        max-width: 100%;
    }
}

/* G8-11 — WP Rocket lazy-render gives the footer 0 height (scrollbar jumps). */
.site-footer[data-wpr-lazyrender] { contain-intrinsic-size: auto 1100px; }
@media (max-width: 767px) {
    .site-footer[data-wpr-lazyrender] { contain-intrinsic-size: auto 2800px; }
}

/* --------------------------------------------------------------------------
   Floating reviews badge — G1-11 + G2-06 + G4-03 + G5-06 + G5-07 + G7-09 + G8-03
   Feature kept everywhere; only size/placement change.
   -------------------------------------------------------------------------- */

/* Mobile: compact pill = stars + "✓ 7,093" (average line and the words
   'דירוגים מאומתים' hidden; the link's aria-label keeps the full text). */
@media (max-width: 767px) {
    .mt-reviews-badge {
        grid-template-columns: auto auto !important;
        width: max-content !important;
        max-width: calc(100vw - 110px) !important;
        padding: 6px 10px !important;
        gap: 6px !important;
        border-radius: 999px !important;
        inset-block-end: 16px !important;
    }
    .mt-reviews-badge__pulse { border-radius: 999px; }
    .mt-reviews-badge .mt-reviews-badge__stars { font-size: 13px; letter-spacing: 1px; }
    .mt-reviews-badge .mt-reviews-badge__label,
    .mt-reviews-badge .mt-reviews-badge__verified-label { display: none !important; }
    .mt-reviews-badge .mt-reviews-badge__verified { white-space: nowrap !important; }
    /* G8-03 — let the footer's last row scroll clear of WhatsApp + badge */
    .site-footer { padding-block-end: 80px; }

    /* G5-07 — cart/checkout: stars only, so fields are not covered */
    body.woocommerce-checkout .mt-reviews-badge,
    body.woocommerce-cart .mt-reviews-badge {
        grid-template-columns: auto !important;
        gap: 0 !important;
        max-width: 120px !important;
    }
    body.woocommerce-checkout .mt-reviews-badge__text,
    body.woocommerce-cart .mt-reviews-badge__text { display: none !important; }
}

/* G2-06 — desktop catalog: move the badge off the filter sidebar (right column).
   Physical left: the badge's logical inset resolves to the right here. */
@media (min-width: 1025px) {
    body.woocommerce.archive .mt-reviews-badge {
        inset-inline: auto !important;
        right: auto !important;
        left: 20px !important;
        inset-block-end: 92px !important;
    }
}

/* G2-06 — mobile filter drawer open: hide the floating widgets over its buttons
   (filter-sidebar-fixes.php hides wrong class names). */
@media (max-width: 991px) {
    body.has-filter-open .mt-wa,
    body.has-filter-open .mt-reviews-badge { display: none !important; }
}

/* G5-06 — cart sticky checkout bar (body.mt-has-sticky-checkout, non-empty
   /cart/ only): lift badge + WhatsApp above the bar, reserve page space.
   inset-block-end (not transform) so the badge's pulse animation survives. */
body.mt-has-sticky-checkout .mt-reviews-badge { inset-block-end: 112px !important; }
body.mt-has-sticky-checkout .mt-wa { inset-block-end: 108px; }
body.mt-has-sticky-checkout { padding-block-end: 88px; }
@media (max-width: 767px) {
    body.mt-has-sticky-checkout .mt-reviews-badge { inset-block-end: 93px !important; }
    body.mt-has-sticky-checkout .mt-wa { inset-block-end: 89px; }
    body.mt-has-sticky-checkout { padding-block-end: 77px; }
}

/* G7-09 — contact form: hide the badge while the visitor types; on desktop
   move it to the left (sidebar) column above the WhatsApp pill. */
body:has(.contact-form :focus) .mt-reviews-badge {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
@media (min-width: 901px) {
    body.page-template-page-contact .mt-reviews-badge {
        right: auto !important;
        left: 20px !important;
        inset-block-end: 96px !important;
    }
}

/* G8-03 — tighter WhatsApp pulse halo (was scale 1.5 over nearby CTAs) */
.mt-wa__pulse { animation-name: mt-wa-pulse-tight; }
@keyframes mt-wa-pulse-tight {
    0%   { transform: scale(1);    opacity: .45; }
    100% { transform: scale(1.18); opacity: 0; }
}

/* G1-11 + G7-13 (+ supersedes G4-15) — mobile: dock the a11y toolbar
   bottom-left above the WhatsApp FAB instead of mid-height on the RTL
   text-start (right) edge, where it covered the hero H1, product content and
   checkout labels. Toolbar itself untouched (legal requirement). */
@media (max-width: 767px) {
    html body .a11y-toolbar.rtl.default,
    html body .a11y-toolbar.standard-location,
    html body .a11y-toolbar {
        right: auto;
        left: 0;
        top: auto;
        bottom: 160px;
    }
}


/* ==========================================================================
   2. HOME
   ========================================================================== */

/* G1-01 — hero poster: Imagify <picture> took the class; size picture + img */
.hero__video picture.hero__poster,
.hero__video picture.hero__poster > img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
}

/* G1-02 — hero CTAs were navy-on-navy (v1.6 .btn background) */
.hero__actions .btn--gold {
    background-color: var(--color-accent, #735b25);
    border-color: var(--color-accent, #735b25);
    color: var(--color-text-inverse, #fff) !important;
}
.hero__actions .btn--gold:hover {
    background-color: var(--color-accent-dark, #5a4619);
    border-color: var(--color-accent-dark, #5a4619);
}
.hero__actions .btn--outline-white {
    background-color: transparent;
    border: 1px solid rgba(251, 246, 232, 0.7);
    color: var(--color-text-inverse, #fff) !important;
}
.hero__actions .btn--outline-white:hover {
    background-color: rgba(251, 246, 232, 0.12);
    border-color: #d4ba7a;
    color: #d4ba7a !important;
}

/* G1-07 — stronger central scrim behind the H1 (video has burned-in logo) */
.hero .hero__overlay {
    background:
        radial-gradient(ellipse 60% 55% at 50% 50%, rgba(0, 21, 42, 0.55) 0%, rgba(0, 21, 42, 0.2) 70%, transparent 100%),
        linear-gradient(180deg, rgba(0, 8, 16, 0.40) 0%, rgba(0, 21, 42, 0.60) 100%);
}

/* G1-09 — mobile hero 720px tall → leave room for content in the first screen */
@media (max-width: 767px) {
    .front-page .hero { min-height: min(68svh, 560px); }
}

/* G1-05 — home product grids: 2 columns on mobile (was 1 col, ~509px cards) */
@media (max-width: 767px) {
    .front-page .products-carousel.grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

/* G1-13 — category icons 3×3 on mobile (was 4/4/1 with an orphan) */
@media (max-width: 767px) {
    .front-page .categories-section .categories-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        justify-items: center;
        gap: 1.25rem 0.75rem !important;
    }
}

/* G1-14 — certifications 2×2 on mobile (was 4 stacked full-width cards) */
@media (max-width: 767px) {
    .certifications-section .certifications-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* G1-10 (CSS half) — CTA card link: no letter-spaced Hebrew */
.cta-card .cta-card__link {
    letter-spacing: 0.02em;
    text-transform: none;
    font-size: 0.875rem;
}

/* G1-15 — no cream stripe between the navy CTA band and the navy footer */
.home .site-footer { margin-top: 0; }


/* ==========================================================================
   3. CATALOG — shop / category archives / product cards
   ========================================================================== */

/* G1-17 + G2-09 + G4-13 — product-card rating badge: uniform height, one-line
   'verified' row, AA-contrast green (was #1f9f55 at 3.4:1, 10.5px). */
.product-card__rating-badge {
    display: grid !important;
    grid-template-columns: auto auto;
    justify-content: start;
    width: max-content !important;
    max-width: calc(100% - 16px) !important;
}
.product-card__rating-badge .product-card__rating-verified {
    grid-column: 1 / -1;
    width: auto !important;
}
.product-card .product-card__rating-verified,
.product-card__rating-verified {
    white-space: nowrap !important;
    font-size: .75rem !important;
    color: #157a42 !important;
}
.product-card .product-card__rating-verified strong,
.product-card__rating-verified strong { color: #157a42 !important; }

/* G3-07 — sale badge percent rendered reversed ('6%-') */
.badge.badge--sale { unicode-bidi: plaintext; }

/* G2-08 + G3-06 — filter panel title was navy on the navy header; the drawer
   close X is useless on the static desktop sidebar (toggle shows ≤991px). */
.shop-sidebar .shop-sidebar__header .shop-sidebar__title { color: var(--color-text-inverse, #fff); }
@media (min-width: 992px) {
    .shop-sidebar .shop-sidebar__header .shop-sidebar__close,
    .shop-sidebar #filter-close { display: none !important; }
}

/* G2-02 — max-price range thumb sat off the panel: both inputs on one track */
.product-filters .price-range input[type="range"]:first-of-type { top: 0 !important; display: block !important; }
.product-filters .price-range input[type="range"]:last-of-type { top: 12px !important; inset-inline: 0 !important; }

/* G2-03 — sticky apply / reset buttons: full width, stacked, opaque */
#product-filters.product-filters > .btn:nth-last-of-type(2),
#product-filters.product-filters > .btn:last-of-type { width: 100% !important; margin: 0 !important; }
#product-filters.product-filters > .btn--primary:nth-last-of-type(2) { bottom: 44px; }
#product-filters.product-filters > .btn--ghost:last-of-type { background: #fff !important; }

/* G2-05 — mobile subcategory tiles → one horizontal snap strip (RTL start) */
@media (max-width: 767px) {
    .subcategories .subcategories__grid {
        display: flex;
        overflow-x: auto;
        gap: var(--space-2, 8px);
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        padding-block-end: 6px;
        scrollbar-width: none;
    }
    .subcategories .subcategories__grid::-webkit-scrollbar { display: none; }
    .subcategories .subcat-card { flex: 0 0 30%; scroll-snap-align: start; }
}

/* G2-11 — show the whole subcategory artwork (round badges were cropped) */
.subcat-card .subcat-card__image { background: #fff; }
.subcat-card .subcat-card__image img {
    aspect-ratio: 4 / 3;
    height: auto !important;
    object-fit: contain !important;
}

/* G2-12 — tighter mobile filter/sort chrome */
@media (max-width: 767px) {
    .shop-layout > .shop-filter-toggle { margin-block-end: 0; }
    .shop-toolbar .shop-sort { width: 100%; }
}

/* G2-13 — pagination prev/next looked disabled (.shop-pagination markup) */
.shop-pagination .pagination a.next,
.shop-pagination .pagination a.prev {
    background: #fff !important;
    color: var(--color-primary, #00152a) !important;
    border: 1.5px solid var(--color-border, #E5E2DC) !important;
}


/* ==========================================================================
   4. SEARCH + PROMOS
   ========================================================================== */

/* G3-01 — intentionally NOT patched here: root cause is unscoped `.search-results a` in v1.6-overrides.css:315-346 / header.css; fix at source by scoping to `div.search-results` (see notes). */

/* G3-04 — [products] shortcode inside page content (/מבצעים/, /sale/,
   /best-seller/): real grid instead of one 776px card per row. mobile-qa-shim.js
   moves the cards out of ul.products into div.woocommerce, so grid the wrapper
   and flatten the UL — works before and after the delayed JS runs. */
.page-content:has(.woocommerce .product-card) { max-width: var(--container-max, 1400px); }
.page-content div.woocommerce[class*="columns-"] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5, 1.25rem);
}
.page-content div.woocommerce[class*="columns-"] > ul.products { display: contents; }
.page-content div.woocommerce[class*="columns-"] > :not(.product-card):not(ul.products) { grid-column: 1 / -1; }
.page-content div.woocommerce[class*="columns-"] .product-card {
    width: auto;
    max-width: none;
    margin: 0;
    min-width: 0;
}
@media (max-width: 1024px) {
    .page-content div.woocommerce[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .page-content div.woocommerce[class*="columns-"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-3, .75rem);
    }
}


/* ==========================================================================
   5. PRODUCT PAGE
   ========================================================================== */

/* G4-01 — related / upsell / cross-sell grids stuck at 4 columns on mobile
   (v1.7:1799 '.view--grid' 0,3,0 !important out-specified its own media rules) */
@media (max-width: 1024px) {
    .product-section .products-grid.view--grid,
    .product-section .products-grid.view--grid.products-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 720px) {
    .product-section .products-grid.view--grid,
    .product-section .products-grid.view--grid.products-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
}

/* G4-06 — portrait main image cropped inside the square gallery */
.product-gallery__viewport .product-gallery__slide.is-active { position: absolute; inset: 0; }
.product-gallery__viewport .product-gallery__slide .product-gallery__zoom,
.product-gallery__viewport .product-gallery__slide picture { display: block; height: 100%; }

/* G4-07 — RTL gallery arrows: prev on the right, next on the left */
.product-gallery__main .product-gallery__nav--prev { inset-inline-start: var(--space-3); inset-inline-end: auto; }
.product-gallery__main .product-gallery__nav--next { inset-inline-end: var(--space-3); inset-inline-start: auto; }

/* G4-14 — decorative English 'PL. 01' gallery label never updates */
.single-product-page .product-gallery__main::before { content: none; display: none; }

/* G4-13 — stock hint contrast (inline CSS from inc/stock-display.php, 0,1,0) */
.mishkan-stock.mishkan-stock--waiting,
.mishkan-stock--waiting .mishkan-stock__text,
.mishkan-stock.mishkan-stock--out { color: #5f5f5f; }


/* ==========================================================================
   6. CART / CHECKOUT / ACCOUNT
   ========================================================================== */

/* G5-11 — primary buttons and category chips underlined by .entry-content a */
.entry-content a.btn,
.entry-content a.button,
.entry-content a.checkout-button,
.entry-content .empty-cart__cat-link { text-decoration: none; }

/* G5-05 companion + G5-M2 — cart upsell links once moved inside .entry-content */
.entry-content .mishkan-cart-upsell a { text-decoration: none; }

/* G5-03 — shipping row printed 'משלוח' twice and squeezed the methods */
.cart-totals__row:has(#shipping_method) > .cart-totals__label { display: none; }
.cart-totals__row:has(#shipping_method) > .cart-totals__value { flex: 1 1 100%; max-width: 100%; }

/* G5-12 — 'המשך בקניות' arrow icon stacked above its label */
.cart-actions .cart-actions__continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* G5-14 — cart thumbnail did not fill its square frame */
.cart-item__image a,
.cart-item__image picture { display: block; width: 100%; height: 100%; }

/* G5-15 — no gold focus ring on the programmatically focused notice;
   notice button kept on one line on mobile */
.woocommerce-notices-wrapper [tabindex="-1"]:focus,
.woocommerce-notices-wrapper [tabindex="-1"]:focus-visible { outline: none !important; }
@media (max-width: 767px) {
    .woocommerce-message .button,
    .woocommerce-message .wc-forward { white-space: nowrap; }
}

/* G5-16 — empty-cart icon centred */
.empty-cart__icon { display: flex; justify-content: center; margin-block-end: 16px; }

/* G5-17 — one navy for primary CTAs (hover kept explicitly) */
body .checkout-button,
body.woocommerce-checkout #place_order { background: var(--color-primary) !important; }
body .checkout-button:hover,
body.woocommerce-checkout #place_order:hover { background: var(--color-primary-light) !important; }

/* G5-04 — terms checkbox was 362px wide and centred above its label */
.woocommerce-checkout .form-row input[type="checkbox"],
.woocommerce-checkout .form-row input[type="radio"] {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
    margin-block-start: 3px;
}
.woocommerce-checkout .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce-checkout .form-row label.checkbox {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    text-align: start;
}

/* G5-07 — mobile checkout: keep right-aligned labels clear of the a11y toolbar */
@media (max-width: 767px) {
    body.woocommerce-checkout form.checkout .form-row > label { padding-inline-start: 10px; }
}

/* G5-08 — country select2 matched to the 50px rounded inputs */
.woocommerce-checkout .select2-container .select2-selection--single {
    height: 50px;
    border: 1.5px solid #E0DDD8;
    border-radius: 10px;
    background: #FAFAF8;
    display: flex;
    align-items: center;
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: normal;
    padding-inline: 16px;
    color: var(--color-primary);
    flex: 1 1 auto;
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 100%; top: 0; }

/* G5-09 — payment / shipping method lists indented by .entry-content ul */
.entry-content ul.wc_payment_methods,
.entry-content ul.woocommerce-shipping-methods {
    padding-inline-start: 0;
    margin-inline-start: 0;
    list-style: none;
}

/* G5-10 — order review table alignment + no cream th cells */
.entry-content .woocommerce-checkout-review-order-table td.product-total,
.entry-content .woocommerce-checkout-review-order-table tfoot td { text-align: end; }
.entry-content .woocommerce-checkout-review-order-table th { background: transparent; }

/* G5-13 — checkout login toggle styled like the coupon toggle card */
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
    background: #fff !important;
    border: 1px solid #EEECE8 !important;
    border-radius: 12px !important;
    padding: 14px 20px !important;
    font-size: .9rem !important;
    color: #4A4640 !important;
    margin-block-end: 12px;
}
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a {
    color: var(--color-primary) !important;
    font-weight: 700 !important;
}

/* G5-02 + G5-18 — login/register: one card per column (was 3-4 nested padded
   cards; 146px inputs and clipped Turnstile on mobile) */
.woocommerce-account .woocommerce > .u-columns { padding: 0; background: transparent; box-shadow: none; }
.woocommerce-account .u-columns form.woocommerce-form-login,
.woocommerce-account .u-columns form.woocommerce-form-register {
    padding: 0;
    background: transparent;
    box-shadow: none;
    max-width: none;
    border: 0;
}
.woocommerce-account #rememberme { width: 18px; height: 18px; accent-color: var(--color-primary); }
@media (max-width: 767px) {
    .woocommerce-account .entry-content > .woocommerce { padding-inline: 0 !important; }
    .woocommerce-account .woocommerce > .u-columns { grid-template-columns: minmax(0, 1fr) !important; }
    .woocommerce-account .u-columns .u-column1,
    .woocommerce-account .u-columns .u-column2,
    .woocommerce-account .u-columns .col-1,
    .woocommerce-account .u-columns .col-2 { padding: 20px 16px !important; min-width: 0; }
}


/* ==========================================================================
   7. CONTENT — blog, posts, FAQ, accessibility, 404
   ========================================================================== */

/* G4-08 + G6-04 — breadcrumbs printed two separators ('\ \'): header.css ::before
   and pages.css ::after. Keep one (::after) everywhere except the category hero,
   which has its own system in shop.css. */
[dir="rtl"] .breadcrumbs:not(.category-hero__breadcrumbs) .breadcrumbs__item::before { content: none; }
[dir="rtl"] .breadcrumbs:not(.category-hero__breadcrumbs) .breadcrumbs__item:not(:last-child)::after {
    content: '‹';
    margin-inline: var(--space-2);
    color: var(--color-text-secondary);
}

/* G6-02 (CSS half) — blog index cards + pagination were unstyled */
.posts-grid { gap: var(--space-6); }
.post-card {
    display: flex;
    flex-direction: column;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border-light, #F0EDE8);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: box-shadow .2s ease;
}
.post-card:hover { box-shadow: var(--shadow-md); }
.post-card__image { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; }
.post-card__content {
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1;
}
.post-card__category a {
    font-size: var(--text-xs);
    font-weight: var(--font-semibold);
    color: var(--color-accent, #735b25);
    text-decoration: none;
}
.post-card__title { font-size: var(--text-xl); line-height: 1.35; margin: 0; }
.post-card__title a { color: var(--color-primary); text-decoration: none; }
.post-card__excerpt { font-size: var(--text-sm); color: var(--color-text-secondary); }
.post-card__excerpt p { margin: 0; }
.post-card__meta { margin-block-start: auto; font-size: var(--text-xs); color: var(--color-text-secondary); }
.navigation.pagination { margin-block: var(--space-10); }
.navigation.pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
}
.navigation.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding-inline: var(--space-3);
    border: 1px solid var(--color-border, #E5E0D8);
    border-radius: var(--radius-md);
    color: var(--color-primary);
    text-decoration: none;
    font-size: var(--text-sm);
}
.navigation.pagination .page-numbers.current {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.navigation.pagination .page-numbers.dots { border: 0; min-width: auto; }

/* G6-05 — single post: no empty 300px sidebar column */
.single-post-layout { grid-template-columns: minmax(0, 1fr); }
.single-post-layout:has(> aside .widget) { grid-template-columns: minmax(0, 1fr) 300px; }
.single-post-layout > article { max-width: 760px; margin-inline: auto; width: 100%; }

/* G6-12 — FAQ: h5 questions separated */
.page-content.entry-content h5 {
    margin-block: var(--space-8) var(--space-2);
    padding-block-start: var(--space-6);
    border-block-start: 1px solid var(--color-border-light, #F0EDE8);
    line-height: 1.4;
    color: var(--color-primary);
}
.page-content.entry-content h5:first-child {
    border-block-start: 0;
    padding-block-start: 0;
    margin-block-start: 0;
}

/* G6-15 — accessibility page uses the site container */
.accessibility-page .container {
    max-width: var(--container-max);
    padding-inline: var(--container-padding);
}

/* G6-16 — city group title gradient mirrored for RTL */
.accessibility-page .a11y-city-group__title { background: linear-gradient(to left, #f2c76a 0%, #fff 60%); }

/* G6-17 — ✔ status green at AA */
.accessibility-page .a11y-yes { color: #1d6b42; }

/* G6-07 — branch accessibility table → stacked cards on mobile */
@media (max-width: 767px) {
    .accessibility-page .a11y-table { min-width: 0; }
    .accessibility-page .a11y-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .accessibility-page .a11y-table,
    .accessibility-page .a11y-table tbody,
    .accessibility-page .a11y-table tr,
    .accessibility-page .a11y-table tbody th,
    .accessibility-page .a11y-table tbody td { display: block; width: 100%; }
    .accessibility-page .a11y-table tbody tr { padding: 12px 14px; border-block-end: 1px solid #eef1f6; }
    .accessibility-page .a11y-table tbody th,
    .accessibility-page .a11y-table tbody td { padding: 4px 0; border-block-end: 0; text-align: start; }
    .accessibility-page .a11y-table tbody td[data-label] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
    }
    .accessibility-page .a11y-table tbody td[data-label]::before {
        content: attr(data-label);
        font-size: 13px;
        font-weight: 600;
        color: #4a5468;
    }
    .accessibility-page .a11y-table-wrap { overflow-x: visible; }
}

/* G6-08 — 404 search button: icon collapsed to 0px; match the 48px pill input */
.error-404__search .search-form__btn.btn {
    padding: 0;
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}
.error-404__search .search-form__btn.btn svg { flex-shrink: 0; width: 20px; height: 20px; }

/* G6-09 — 404 illustration centred */
.error-404__illustration svg { margin-inline: auto; }


/* ==========================================================================
   8. INFO PAGES — branches, contact, visitors center
   ========================================================================== */

/* G7-01 — whole-card link overlay blocked phone / Waze / Maps / mini-map */
.branches-list .branch-card .branch-card__phone a,
.branches-list .branch-card .branch-card__map-actions,
.branches-list .branch-card .branch-card__map-embed {
    position: relative;
    z-index: 1;
}

/* G7-03 — branches list respects the container gutter */
.container.branches-list { padding-inline: var(--container-padding); }

/* G7-04 — desktop: cities flow in 3 masonry columns (was 1–2 cards per 4-col row) */
@media (min-width: 1024px) {
    .container.branches-list { columns: 3; column-gap: 24px; }
    .branches-list .branches-city {
        display: inline-block;
        width: 100%;
        break-inside: avoid;
    }
    .branches-list .branches-city .branches-grid { grid-template-columns: 1fr; }
}

/* G7-05 — mobile: no per-card Google Maps iframe (page was ~20,000px) */
@media (max-width: 767px) {
    .branches-list .branch-card .branch-card__map-embed { display: none; }
    .branches-list .branch-card { padding: 16px; }
}

/* G7-08 — AA text on Waze / Google Maps / WhatsApp buttons */
.branch-card__map-actions .branch-card__map-link[href*="waze"],
.vc-location__map-actions .branch-card__map-link[href*="waze"] { color: var(--color-primary, #00152a) !important; }
.branch-card__map-actions .branch-card__map-link[href*="goo"],
.vc-location__map-actions .branch-card__map-link[href*="goo"] {
    background: linear-gradient(135deg, #1a5fd0 0%, #1e7a3c 100%) !important;
}
.vc-contact-card .vc-whatsapp-btn.btn--primary { color: var(--color-primary, #00152a) !important; }

/* G7-12 (CSS half) — hero phone link kept on one line (markup from PHP) */
.branches-hero__lead .branches-hero__phone {
    color: inherit;
    white-space: nowrap;
    unicode-bidi: isolate;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* G7-06 — contact form card aligned with the info cards */
.contact-content-grid .contact-form-section { max-width: none; margin: 0; }

/* G7-07 — opening-hours day labels styled and divided */
.contact-hours .contact-hours__table th[scope="row"] {
    text-align: start;
    padding: 8px 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--color-primary, #00152a);
    border-bottom: 1px solid #f0ede8;
}
.contact-hours .contact-hours__table tr:last-child th { border-bottom: none; }

/* G7-10 — mobile contact info cards: compact icon + text rows */
@media (max-width: 600px) {
    .contact-page .contact-cards { gap: 12px !important; margin-bottom: 32px !important; }
    .contact-cards .contact-card {
        display: grid !important;
        grid-template-columns: 48px 1fr;
        column-gap: 14px;
        align-items: center !important;
        text-align: start !important;
        padding: 14px 16px !important;
    }
    .contact-cards .contact-card__icon {
        grid-row: 1 / span 3;
        width: 48px !important;
        height: 48px !important;
        margin-bottom: 0 !important;
        border-radius: 12px !important;
    }
    .contact-cards .contact-card__icon svg { width: 24px; height: 24px; }
    .contact-cards .contact-card__title { margin: 0 !important; }
}

/* G7-14 — 'מה כולל הסיור?' 3×2 instead of 4 + orphan 2 */
@media (min-width: 1024px) {
    .vc-highlights .vc-highlights__grid { grid-template-columns: repeat(3, 1fr) !important; }
}

/* G7-15 — centred testimonial: drop the detached blockquote bar, add a quote mark */
.vc-testimonial .vc-testimonial__quote { border-inline-start: 0; padding-inline-start: 0; }
.vc-testimonial .vc-testimonial__quote::before {
    content: "\201D";
    display: block;
    font-size: 3rem;
    line-height: 1;
    color: var(--color-accent, #735b25);
    font-style: normal;
}

/* ===== Companion rules for PHP/JS template changes ===== */
/* ==========================================================================
   v2.2 — companion CSS for the PHP/JS template edits (php_js.diff).
   Append to assets/css/v2.2-design-fixes.css (or merge; skip any block the
   CSS agent already shipped for the same id).
   ========================================================================== */

/* G1-10 — CTA card links: literal arrow removed in front-page.php; drop the
   Latin small-caps tracking that splits Hebrew letters. ::after arrow kept. */
.cta-card .cta-card__link {
  letter-spacing: 0.02em;
  text-transform: none;
  font-size: 0.875rem;
}

/* G7-12 — branches hero phone is now <a class="branches-hero__phone" dir="ltr">. */
.branches-hero__lead .branches-hero__phone {
  color: inherit;
  white-space: nowrap;
  unicode-bidi: isolate;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* G8-05 — mobile submenu accordion. REQUIRED with the main.js toggle code.
   Scoped to .has-submenu-toggles (added by the JS), so it is inert if the JS
   has not run yet (WP Rocket delay-JS) — submenus then stay open as before. */
@media (max-width: 1023px) {
  .mobile-menu__nav.has-submenu-toggles .menu-item-has-children:not(.is-open) > .sub-menu { display: none !important; }
  .mobile-menu__nav.has-submenu-toggles .menu-item-has-children { position: relative; }
  .mobile-menu__nav .submenu-toggle {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 1;
  }
  .mobile-menu__nav .submenu-toggle:focus-visible { outline: 2px solid #735b25; outline-offset: -2px; }
}



/* G5-05 / G5-M2 — cart upsell now renders inside .entry-content (woocommerce_after_cart):
   cancel the pages.css underline on its product links. */
.entry-content .mishkan-cart-upsell a { text-decoration: none; }

/* G6-02 — blog index header + post cards + pagination (theme had no .post-card CSS). */
.blog-index-header { padding-block: var(--space-8, 32px) var(--space-4, 16px); }
.blog-index-header .page-header__title { margin: 0; }
.posts-grid { gap: var(--space-6, 24px); }
.post-card { display: flex; flex-direction: column; background: var(--color-surface, #fff); border: 1px solid var(--color-border-light, #F0EDE8); border-radius: var(--radius-lg, 12px); overflow: hidden; transition: box-shadow .2s ease; }
.post-card:hover { box-shadow: var(--shadow-md, 0 4px 16px rgba(0,0,0,.08)); }
.post-card__image { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; }
.post-card__content { padding: var(--space-5, 20px); display: flex; flex-direction: column; gap: var(--space-2, 8px); flex: 1; }
.post-card__category a { font-size: var(--text-xs, .75rem); font-weight: var(--font-semibold, 600); color: var(--color-accent, #735b25); text-decoration: none; }
.post-card__title { font-size: var(--text-xl, 1.25rem); line-height: 1.35; margin: 0; }
.post-card__title a { color: var(--color-primary, #00152a); text-decoration: none; }
.post-card__excerpt { font-size: var(--text-sm, .875rem); color: var(--color-text-secondary, #5a5550); }
.post-card__excerpt p { margin: 0; }
.post-card__meta { margin-block-start: auto; font-size: var(--text-xs, .75rem); color: var(--color-text-secondary, #5a5550); }
.navigation.pagination { margin-block: var(--space-10, 40px); }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2, 8px); }
.navigation.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding-inline: var(--space-3, 12px); border: 1px solid var(--color-border, #E5E0D8); border-radius: var(--radius-md, 8px); color: var(--color-primary, #00152a); text-decoration: none; font-size: var(--text-sm, .875rem); }
.navigation.pagination .page-numbers.current { background: var(--color-primary, #00152a); border-color: var(--color-primary, #00152a); color: #fff; }
.navigation.pagination .page-numbers.dots { border: 0; min-width: auto; }

/* G8-05 — chevron orientation for the accordion (collapsed = v, open = ^) */
[dir="rtl"] .mobile-menu__nav.has-submenu-toggles .menu-item-has-children > a::after { transform: rotate(-45deg) !important; }
[dir="rtl"] .mobile-menu__nav.has-submenu-toggles .menu-item-has-children.is-open > a::after { transform: rotate(135deg) !important; }
.mobile-menu__nav .submenu-toggle:focus:not(:focus-visible) { outline: none; }

/* ==========================================================================
   v2.2.1 — post-deploy visual verification fixes (2026-11-09)
   ========================================================================== */

/* G2-04 follow-up — v1.7 'body.search-results{padding:0!important}' reset removed the
   60px reserved for the fixed mobile search bar → sticky header covered the search H1. */
@media (max-width: 991px) {
    html body.search-results { padding-top: 60px !important; }
    html body.admin-bar.search-results { padding-top: 106px !important; }
}

/* G4-03 / G5-07 / G7-09 follow-up — floating reviews badge still covered the product H1,
   checkout fields, the contact map button and visitor-centre cards. Hide it where the
   page is a task (buy / pay / contact); rating already shows in the product summary. */
body.woocommerce-checkout .mt-reviews-badge,
body.woocommerce-cart .mt-reviews-badge,
body.page-template-page-contact .mt-reviews-badge,
body[class*="page-template-page-visitors"] .mt-reviews-badge { display: none !important; }
@media (max-width: 767px) {
    body.single-product .mt-reviews-badge { display: none !important; }
}

/* G5-10 / G5-03 follow-up — checkout order review: product name gets the room,
   shipping row label not repeated / squeezing the methods. */
.entry-content .woocommerce-checkout-review-order-table { table-layout: auto; width: 100%; }
.entry-content .woocommerce-checkout-review-order-table th.product-name,
.entry-content .woocommerce-checkout-review-order-table td.product-name { width: auto; white-space: normal; }
.entry-content .woocommerce-checkout-review-order-table th.product-total,
.entry-content .woocommerce-checkout-review-order-table td.product-total { width: 1%; white-space: nowrap; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > th { display: none; }
.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > td {
    display: block;
    width: 100%;
    text-align: start;
}

/* G7-04 follow-up — balanced masonry: cities may split across columns, cards never do,
   a city title never ends a column alone. */
@media (min-width: 1024px) {
    .branches-list .branches-city { display: block; break-inside: auto; }
    .branches-list .branches-city .branches-grid { display: block; list-style: none; padding: 0; }
    .branches-list .branches-city .branches-grid > * { break-inside: avoid; margin-block-end: 16px; }
    .branches-list .branches-city__title { break-after: avoid; }
}

/* G2-05 follow-up — let the next subcategory tile peek in so the strip reads as scrollable */
@media (max-width: 767px) {
    .subcategories .subcat-card { flex-basis: 27%; }
}

/* my-account: '.woocommerce-account h2' (navy text, gold underline) leaked into the footer */
.woocommerce-account .site-footer h2.footer-col__title {
    font-size: 1rem !important;
    color: #fff !important;
    margin: 0 0 18px 0 !important;
    padding-bottom: 10px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
