/* ============================================================================
   SINGLE PRODUCT - playground redesign (2026-07-09, source: playground.uni.xyz
   /project/curved-wall-panel, ParaformProduct.tsx; reference copy in repo
   backups/playground-product-design/). Tokens: page #f6f4ef, soft #efeae1,
   line #e7e3dd, ink #111/#1a1414, accent #c09872, accent-dark #8a6a3f,
   muted #5b5755. Layout: summary (gallery+info) pinned sticky, the details
   sheet (tabs+related) scrolls OVER it - wrappers .pf-sum/.pf-details are
   printed by paraform-product-panel.php hooks.
   NOTE on .cls.cls.cls repeats: the pf-typography tier-3 catch-all carries
   ~(0,7,14) specificity with !important, so font-family overrides here must
   stack classes (x14) to out-specify its ~(0,10,16). Prata + Tenor Sans both cover Cyrillic,
   so these rules serve EN and RU alike.
   ========================================================================= */

/* page canvas (warm) + kill sideways scroll from the full-bleed details sheet.
   overflow-x on body propagates to the viewport, so position:sticky inside stays alive. */
html body.single-product {
    background: #f6f4ef;
    overflow-x: hidden; /* fallback: propagates to the viewport, sticky unaffected */
    overflow-x: clip;
    /* Chrome scroll anchoring picks anchors inside the pinned .pf-sum and "compensates"
       scroll position while the sheet slides over it, causing sudden viewport jumps
       while scrolling (user recording 2026-07-17). Anchoring off = native scroll only. */
    overflow-anchor: none;
}
html body.single-product #primary,
html body.single-product #main {
    background: transparent;
}

/* breadcrumb - Tenor Sans 13, chevron separators (delimiter svg printed by PHP) */
html body.single-product .woocommerce-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px !important;
    color: #111111;
    margin: 0 0 32px 0 !important;
    padding: 0 !important;
}
html body.single-product nav.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb,
html body.single-product nav.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb.woocommerce-breadcrumb a {
    font-family: "Tenor Sans", sans-serif !important;
}
html body.single-product .woocommerce-breadcrumb a {
    color: #5b5755;
    font-size: 13px;
    text-decoration: none;
    transition: color 200ms ease;
}
html body.single-product .woocommerce-breadcrumb a:hover { color: #1a1414; }
html body.single-product .woocommerce-breadcrumb .pf-crumb-sep {
    display: inline-flex;
    align-items: center;
    color: #5b5755;
}
html body.single-product .woocommerce-breadcrumb .pf-crumb-sep svg { display: block; }

/* ---- layout: pinned summary + details sheet scrolling over it ---- */
html body.single-product div.product { position: relative; }
html body.single-product .pf-sum {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
}
@media (min-width: 641px) { /* prototype: sticky whenever not phone (incl. 1-col tablet) */
    html body.single-product .pf-sum {
        position: sticky;
        top: 97px; /* 85px fixed header + breathing room */
        z-index: 1;
    }
}
html body.single-product .pf-sum .images,
html body.single-product .pf-sum .summary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* details sheet: full-bleed background + top shadow, slides over the pinned summary */
html body.single-product .pf-details {
    position: relative;
    z-index: 2;
    background: #f6f4ef;
    margin-top: 64px;
    padding-top: 44px;
    padding-bottom: 44px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
    box-shadow: 0 -16px 34px rgba(30, 20, 10, 0.06);
}

/* ---- summary info column ---- */
html body.single-product .summary.entry-summary {
    color: #1a1414;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

/* eyebrow badge: accent dot + Tenor Sans uppercase, no pill background */
html body.single-product .paraform-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: #8a6a3f;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0;
    margin: 0;
    align-self: flex-start;
}
html body.single-product span.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge.paraform-badge {
    font-family: "Tenor Sans", sans-serif !important;
    font-weight: 400 !important;
}
html body.single-product .paraform-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #c09872;
    flex-shrink: 0;
}

/* title: Prata (site tier 1), prototype scale */
html body.single-product .summary .product_title {
    font-size: clamp(32px, 4.4vw, 52px) !important;
    line-height: 1.08 !important;
    font-weight: 400 !important;
    color: #111111 !important;
    margin: 0 !important;
}

/* price: "Starts from" + serif amount on one baseline row */
html body.single-product .summary p.price {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 !important;
    line-height: 1.2;
}
html body.single-product .summary .price .paraform-price-prefix {
    display: inline;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #5b5755 !important;
    letter-spacing: 0;
    margin: 0;
}
/* playground shows the prefix in Mantine's default (system) stack, not Work Sans */
html body.single-product .summary .price span.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix.paraform-price-prefix {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
html body.single-product .summary p.price span.woocommerce-Price-amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount,
html body.single-product .summary p.price span.woocommerce-Price-amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount bdi,
html body.single-product .summary p.price span.woocommerce-Price-amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount.amount bdi span {
    font-family: "Prata", "Tenor Sans", Georgia, serif !important;
    font-size: 30px !important;
    font-weight: 400 !important;
    color: #111111 !important;
    margin: 0 !important;
}

/* quote-only products: "Price on request" replaces the prefix+amount pair */
html body.single-product .summary p.price .pf-price-on-request {
    font-family: "Prata", "Tenor Sans", Georgia, serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    color: #111111 !important;
    margin: 0 !important;
}

/* short description */
html body.single-product .summary .woocommerce-product-details__short-description {
    font-size: 16px;
    color: #5b5755;
    line-height: 1.7;
    font-weight: 300;
    max-width: 520px;
    margin: 0;
}

/* divider + Configure (the only action; qty/add-to-cart form is hidden for
   configurable products by the Beegraphy plugin itself) */
html body.single-product .paraform-cart-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid #e7e3dd;
    padding-top: 26px;
    margin: 8px 0 0 0;
}
html body.single-product .paraform-configure-btn {
    background: #c09872;
    color: #1a1414 !important;
    border: 0;
    border-radius: 2px;
    padding: 0 36px;
    height: 50px;
    line-height: 50px;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    cursor: pointer;
    transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
html body.single-product a.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn.paraform-configure-btn {
    font-family: "Tenor Sans", sans-serif !important;
}
/* hover: no colour change, the button just lifts a touch (user 2026-07-10) */
html body.single-product .paraform-configure-btn:hover {
    background: #c09872;
    color: #1a1414 !important;
    transform: translateY(-2px);
}

/* legacy qty controls (only visible on non-configurable/test products where
   Beegraphy does not hide form.cart) */
html body.single-product .paraform-qty-wrap {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e7e3dd;
    border-radius: 2px;
    overflow: hidden;
    height: 48px;
    background: #fff;
}
html body.single-product .paraform-qty-wrap .paraform-qty-btn {
    background: transparent;
    border: 0;
    width: 36px;
    height: 100%;
    font-size: 20px;
    line-height: 1;
    color: #1a1414;
    cursor: pointer;
    padding: 0;
}
html body.single-product .paraform-qty-wrap .paraform-qty-btn:hover { background: #efeae1; }
html body.single-product .paraform-qty-wrap .paraform-qty-input {
    width: 40px;
    height: 100%;
    border: 0;
    background: transparent;
    text-align: center;
    font-size: 16px;
    color: #1a1414;
    appearance: textfield;
    -moz-appearance: textfield;
}
html body.single-product .paraform-qty-wrap .paraform-qty-input::-webkit-outer-spin-button,
html body.single-product .paraform-qty-wrap .paraform-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ---- gallery (Beegraphy bundle; classNames pf-gal-* come from patch 4) ---- */
html body.single-product #beegraphy-viewer { min-height: 0 !important; }
html body.single-product .pf-gal-main {
    aspect-ratio: 1 / 1;
    border: 1px solid #e7e3dd !important;
    border-radius: 8px;
    background: #efeae1;
    overflow: hidden;
}
html body.single-product .pf-gal-main .viewer-container {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    width: 100% !important;
    border: 0 !important;
}
html body.single-product .pf-gal-main > img {
    object-fit: cover !important;
    background: transparent !important;
}
html body.single-product .pf-gal-strip {
    border-color: #e7e3dd !important;
    scrollbar-width: none;
}
/* carousel state only (chevrons present): centered window; the scrollable phone
   strip keeps its inline flex-start so overflowed thumbs stay reachable */
html body.single-product .pf-gal-strip:has(.pf-nav) { justify-content: center !important; }
html body.single-product .pf-gal-strip::-webkit-scrollbar { display: none; }
/* chevrons hug the box edges while the 4-thumb window stays centered (prototype) */
html body.single-product .pf-gal-strip .pf-nav:first-child { margin-right: auto !important; }
html body.single-product .pf-gal-strip .pf-nav:last-child { margin-left: auto !important; }
html body.single-product .pf-thumb {
    width: 78px !important;
    height: 78px !important;
    border-radius: 4px !important;
    border-width: 1.5px !important;
    border-color: #e7e3dd !important;
    background: #efeae1 !important;
    transition: border-color 200ms ease !important;
}
html body.single-product .pf-thumb[data-active="1"] { border-color: #111111 !important; }
html body.single-product .pf-nav {
    width: 34px !important;
    height: 34px !important;
    border-color: #e7e3dd !important;
    color: #111111 !important;
    font-size: 16px !important;
    transition: opacity 200ms ease;
}
html body.single-product .pf-nav[disabled] { color: #cbc5bb !important; opacity: 0.6; }
html body.single-product .pf-gal-3d {
    width: 94px;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 8px;
    border: 1.5px solid #c09872;
    background: #f3e8d7;
    color: #8a6a3f;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    transition: background 220ms ease, color 220ms ease, border-color 220ms ease;
}
html body.single-product .pf-gal-3d[data-active="1"] {
    background: #111111;
    border-color: #111111;
    color: #ffffff;
}
html body.single-product .pf-gal-3d .pf-gal-3d-txt {
    font-size: 12px;
    letter-spacing: 0.04em;
    font-weight: 500 !important;
    color: inherit;
    white-space: nowrap;
}

/* ---- details: tabs with sliding accent underline (span injected by JS) ---- */
html body.single-product .pf-details .woocommerce-tabs.wc-tabs-wrapper { margin-top: 0; }
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs {
    position: relative;
    list-style: none !important;
    display: flex !important;
    flex-wrap: nowrap;
    gap: 40px;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 0 !important;
    width: fit-content;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs::before,
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs::after {
    display: none !important;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    flex: 0 0 auto;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li::before,
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li::after {
    display: none !important;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li a {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #5b5755 !important;
    padding: 0 0 16px 0 !important;
    display: inline-block;
    border: 0 !important;
    margin: 0 !important;
    text-decoration: none !important;
    background: transparent !important;
    text-shadow: none !important;
    white-space: nowrap;
    transition: color 220ms ease;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li.active a,
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li a:hover {
    color: #1a1414 !important;
}
html body.single-product .woocommerce-tabs ul.tabs.wc-tabs .pf-tab-bar {
    position: absolute;
    bottom: 0;
    height: 2px;
    border-radius: 2px;
    background: #c09872;
    opacity: 0;
    transition: left 300ms cubic-bezier(0.4, 0, 0.2, 1), width 300ms cubic-bezier(0.4, 0, 0.2, 1), opacity 200ms;
}

/* tab panels */
html body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    max-width: 860px;
    padding-top: 34px !important;
    font-size: 15.5px;
    line-height: 1.8;
    font-weight: 300;
    color: #5b5755;
}
html body.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2:first-child,
html body.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2 {
    display: none;
}
html body.single-product .woocommerce-Tabs-panel p {
    font-size: 15.5px;
    color: #5b5755;
    font-weight: 300;
    line-height: 1.8;
    margin: 0 0 14px 0;
}
html body.single-product .woocommerce-Tabs-panel h3,
html body.single-product .woocommerce-Tabs-panel h4,
html body.single-product .paraform-tab-body h3 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #111111 !important;
    margin: 32px 0 12px 0 !important;
    letter-spacing: 0 !important;
}
html body.single-product .woocommerce-Tabs-panel h3:first-child,
html body.single-product .paraform-tab-body h3:first-child {
    margin-top: 0 !important;
}

/* bullets: accent dots */
html body.single-product .woocommerce-Tabs-panel ul,
html body.single-product .paraform-tab-body ul,
html body.single-product .paraform-tab-list {
    list-style: none !important;
    margin: 4px 0 16px 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
html body.single-product .woocommerce-Tabs-panel ul li,
html body.single-product .paraform-tab-body ul li,
html body.single-product .paraform-tab-list li {
    position: relative;
    padding-left: 16px;
    margin: 0;
    font-size: 15px;
    color: #5b5755;
    font-weight: 300;
    line-height: 1.6;
}
html body.single-product .woocommerce-Tabs-panel ul li::before,
html body.single-product .paraform-tab-body ul li::before,
html body.single-product .paraform-tab-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #c09872;
}

/* features table: bordered rounded card, zebra rows, serif-less key + Tenor value */
html body.single-product .woocommerce-Tabs-panel table,
html body.single-product .paraform-features-table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0;
    border: 1px solid #e7e3dd;
    border-radius: 6px;
    overflow: hidden;
    font-size: 14px;
    color: #111111;
    margin: 0 0 28px 0;
}
html body.single-product .woocommerce-Tabs-panel table th,
html body.single-product .woocommerce-Tabs-panel table td,
html body.single-product .paraform-features-table th,
html body.single-product .paraform-features-table td {
    text-align: left;
    padding: 12px 16px;
    border: 0 !important;
    vertical-align: top;
    background: transparent;
}
html body.single-product .woocommerce-Tabs-panel table tr:nth-child(even) {
    background: #efeae1;
}
html body.single-product .woocommerce-Tabs-panel table tr:nth-child(odd) {
    background: #ffffff;
}
/* the plugin's features table ships a Property/Value header row the prototype
   doesn't have: hide it, and invert the zebra so the first VISIBLE row is white */
html body.single-product .paraform-features-table tr:first-child:has(> th) { display: none; }
html body.single-product .paraform-features-table tr:nth-child(even) { background: #ffffff; }
html body.single-product .paraform-features-table tr:nth-child(odd) { background: #efeae1; }
html body.single-product .woocommerce-Tabs-panel table th,
html body.single-product .woocommerce-Tabs-panel table td:first-child,
html body.single-product .paraform-features-table th,
html body.single-product .paraform-features-table td:first-child {
    color: #5b5755;
    font-weight: 300;
    width: 45%;
}
html body.single-product table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table.paraform-features-table td:last-child {
    font-family: "Tenor Sans", sans-serif !important;
    color: #111111;
    font-weight: 400;
}

/* ---- related products ---- */
html body.single-product section.related.products { margin-top: 84px; }
html body.single-product section.related > h2 {
    display: block !important;
    font-size: 30px !important;
    font-weight: 400 !important;
    color: #111111 !important;
    margin: 0 0 22px 0 !important;
}
html body.single-product section.related ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    width: 100%;
}
html body.single-product section.related ul.products::before,
html body.single-product section.related ul.products::after { display: none !important; }
@media (min-width: 992px) {
    html body.single-product section.related ul.products { grid-template-columns: repeat(4, 1fr); }
}
html body.single-product section.related ul.products li.product {
    position: relative;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: left !important;
}
html body.single-product section.related li.product img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    background: #efeae1;
    display: block;
    margin: 0 0 12px 0 !important;
}
html body.single-product section.related li.product h2.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title {
    font-family: "Tenor Sans", sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #111111 !important;
    padding: 0 !important;
    margin: 0 0 4px 0 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
html body.single-product section.related li.product span.price.price.price.price.price.price.price.price.price.price.price.price.price.price,
html body.single-product section.related li.product span.price.price.price.price.price.price.price.price.price.price.price.price.price.price bdi,
html body.single-product section.related li.product span.price.price.price.price.price.price.price.price.price.price.price.price.price.price bdi span,
html body.single-product section.related li.product span.price.price.price.price.price.price.price.price.price.price.price.price.price.price .woocommerce-Price-amount {
    font-family: "Prata", "Tenor Sans", Georgia, serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #111111 !important;
    margin: 0 !important;
}
html body.single-product section.related li.product .price del,
html body.single-product section.related li.product .price ins {
    text-decoration: none;
    background: transparent;
}
html body.single-product section.related li.product .price del { color: #5b5755; margin-right: 8px; }
/* prototype cards carry no action buttons */
html body.single-product section.related li.product .button,
html body.single-product section.related li.product .added_to_cart { display: none !important; }
html body.single-product section.related li.product span.onsale {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    background: #1a1414;
    color: #fff;
    border-radius: 2px;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 4px 8px;
    margin: 0;
    min-width: 0;
    min-height: 0;
    line-height: 1.4;
}

/* ---- responsive (prototype breakpoints: 992 = column switch, 640 = phone) ---- */
@media (max-width: 991px) { /* prototype md: single column, gallery on top */
    html body.single-product .pf-sum {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}
@media (max-width: 640px) { /* prototype isPhone */
    html body.single-product .pf-details {
        margin-top: 28px;
        padding-top: 28px;
    }
    html body.single-product .woocommerce-tabs ul.tabs.wc-tabs {
        gap: 28px;
        width: 100%;
        /* right-edge fade hinting at tabs beyond the edge (prototype) */
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 52px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 52px), transparent);
    }
    html body.single-product section.related.products { margin-top: 48px; }
    html body.single-product section.related > h2 { font-size: 24px !important; }
    html body.single-product section.related ul.products { gap: 16px; }
    /* swipeable thumb strip: fade the clipped edge (prototype gradient) */
    html body.single-product .pf-gal-strip {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
    }
}
/* gallery phone sizing matches the bundle's own 640px isPhone switch (swipeable
   strip, no chevrons) - NOT the 767 tier, or 641-767px would hide working chevrons */
@media (max-width: 640px) {
    html body.single-product .pf-thumb { width: 60px !important; height: 60px !important; }
    html body.single-product .pf-gal-3d { width: 76px; }
    html body.single-product .pf-gal-3d svg { width: 22px; height: 22px; }
    html body.single-product .pf-gal-3d .pf-gal-3d-txt { font-size: 10px; }
    html body.single-product .pf-nav { display: none !important; }
}


/* === Shop loop: custom sort dropdown === */
/* Hide native select while the custom widget drives it */
.woocommerce form.woocommerce-ordering select.orderby[aria-hidden="true"] {
    display: none !important;
}

.paraform-sort {
    position: relative;
    display: inline-block;
    font-family: "Sora", sans-serif;
    width: 280px;
    color: #1A1414;
}

/* Closed-state trigger -- mirrors the previous native-select look */
.paraform-sort-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    height: 41px;
    padding: 0 25px;
    background: #fff;
    border: 1px solid #DDDDDD;
    border-radius: 0;
    color: #1A1414;
    font-family: "Sora", sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease;
}
.paraform-sort-button:hover { border-color: #BBBBBB; }
.paraform-sort-button:focus { outline: none; border-color: #1A1414; }
.paraform-sort.is-open .paraform-sort-button { border-color: #1A1414; }

.paraform-sort-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.paraform-sort-caret {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #1A1414;
    border-bottom: 1.5px solid #1A1414;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .2s ease;
}
.paraform-sort.is-open .paraform-sort-caret {
    transform: rotate(-135deg) translate(-2px, -2px);
}

/* Open panel -- same shape language as the closed button */
.paraform-sort-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 360px;
    overflow-y: auto;
    padding: 0;
    background: #FFFFFF;
    border: 1px solid #DDDDDD;
    border-radius: 0;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    z-index: 60;
}
.paraform-sort-option {
    padding: 16px 20px;
    border-radius: 0;
    font-family: "Sora", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1A1414;
    cursor: pointer;
    user-select: none;
    position: relative;
    outline: none;
    transition: background-color .12s ease;
}
.paraform-sort-option:hover,
.paraform-sort-option:focus {
    background: #F4F4F2;
}
.paraform-sort-option.is-selected {
    background: #EEF2FF;
    padding-right: 48px;
}
.paraform-sort-option.is-selected::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 12px;
    height: 6px;
    border-left: 2px solid #1A1414;
    border-bottom: 2px solid #1A1414;
    transform: translateY(-70%) rotate(-45deg);
}

/* Scrollbar styling for the panel */
.paraform-sort-panel::-webkit-scrollbar { width: 6px; }
.paraform-sort-panel::-webkit-scrollbar-thumb { background: #D8D8D6; border-radius: 3px; }
.paraform-sort-panel::-webkit-scrollbar-track { background: transparent; }

/* === Elementor offcanvas mini-cart === */
.elementor-menu-cart__container .elementor-menu-cart__main {
    font-family: "Sora", sans-serif !important;
    color: #1A1414;
    width: min(440px, 100vw) !important;
    max-width: 440px !important;
    padding: 0 !important;
    background: #FFFFFF !important;
    display: flex !important;
    flex-direction: column;
}

/* "Cart" title at the top, generous padding */
body.translatepress-ru_RU .elementor-menu-cart__container .elementor-menu-cart__main::before { content: "Корзина" !important; }
.elementor-menu-cart__container .elementor-menu-cart__main::before {
    content: "Cart";
    display: block;
    font-family: "Sora", sans-serif;
    font-size: 30px;
    font-weight: 600;
    color: #1A1414;
    padding: 28px 30px 18px;
    letter-spacing: -0.01em;
    line-height: 1;
    flex: 0 0 auto;
}

/* Close button -- crisp X at top-right, in line with the title */
.elementor-menu-cart__container .elementor-menu-cart__close-button {
    position: absolute !important;
    top: 30px !important;
    right: 30px !important;
    width: 22px !important;
    height: 22px !important;
    background: transparent !important;
    border: 0 !important;
    cursor: pointer;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    z-index: 2;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button::before,
.elementor-menu-cart__container .elementor-menu-cart__close-button::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1.5px;
    background: #1A1414;
    transform-origin: center;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button::before { transform: translateY(-50%) rotate(45deg); }
.elementor-menu-cart__container .elementor-menu-cart__close-button::after  { transform: translateY(-50%) rotate(-45deg); }
.elementor-menu-cart__container .elementor-menu-cart__close-button > * { display: none !important; }

/* Content wrapper -- column layout, scrolling list, sticky footer */
.elementor-menu-cart__container .widget_shopping_cart_content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
}
.elementor-menu-cart__container .elementor-menu-cart__products {
    flex: 1 1 auto;
    overflow-y: auto;
    margin: 0 !important;
    padding: 0 30px !important;
    list-style: none;
}

/* Each cart row -- image | content; content has name/price on top, qty + trash on bottom */
.elementor-menu-cart__container .elementor-menu-cart__product.cart_item {
    display: grid !important;
    grid-template-columns: 140px 1fr auto;
    grid-template-rows: auto auto 1fr auto;
    column-gap: 20px;
    row-gap: 6px;
    padding: 22px 0 !important;
    margin: 0 !important;
    border-bottom: 1px solid #EFEDEA !important;
    background: transparent !important;
    min-height: 140px;
}
/* Cart page rows -- 2 columns only (image | content). Price goes inline below name. */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
    grid-template-columns: 220px 1fr !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total {
    display: none !important;
}
/* Restore the inline price below the name -- I previously hid it; un-hide for cart page */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices {
    display: block !important;
    margin-top: 6px;
    font-family: "Sora", sans-serif;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price__value {
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product.cart_item:last-child {
    border-bottom: 0 !important;
}

/* Thumbnail */
.elementor-menu-cart__container .elementor-menu-cart__product-image {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: 140px;
    height: 140px;
    background: #F4F2EE;
    overflow: hidden;
    border-radius: 0;
}
.elementor-menu-cart__container .elementor-menu-cart__product-image a,
.elementor-menu-cart__container .elementor-menu-cart__product-image img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-image img {
    object-fit: cover !important;
    object-position: center !important;
}

/* Name (row 1, top) */
.elementor-menu-cart__container .elementor-menu-cart__product-name {
    grid-column: 2 / span 2;
    grid-row: 1;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-name a {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #1A1414 !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    line-height: 1.3;
}

/* Qty +/- widget (bottom-left of the row) */
.elementor-menu-cart__container .paraform-cart-qty-wrap {
    grid-column: 2;
    grid-row: 4;
    align-self: end;
    justify-self: start;
    margin: 0;
    display: inline-flex;
    align-items: center;
    width: -moz-fit-content;
    width: fit-content;
    height: 34px;
    background: #FFFFFF;
    border: 1px solid #DDDDDD;
    border-radius: 0;
    overflow: hidden;
    transition: border-color .15s ease;
}
.elementor-menu-cart__container .paraform-cart-qty-wrap:hover { border-color: #BBBBBB; }
.elementor-menu-cart__container .paraform-cart-qty-wrap.is-busy { opacity: 0.55; pointer-events: none; }
.elementor-menu-cart__container .paraform-cart-qty-btn {
    width: 32px;
    height: 100%;
    background: transparent;
    border: 0;
    padding: 0;
    font-family: "Sora", sans-serif;
    font-size: 18px;
    line-height: 1;
    color: #1A1414;
    cursor: pointer;
    transition: background-color .12s ease;
}
.elementor-menu-cart__container .paraform-cart-qty-btn:hover { background: #F4F2EE; }
.elementor-menu-cart__container .paraform-cart-qty-btn[disabled] { color: #BBBBBB; cursor: not-allowed; }
.elementor-menu-cart__container .paraform-cart-qty-btn[disabled]:hover { background: transparent; }
.elementor-menu-cart__container .paraform-cart-qty-value {
    min-width: 36px;
    text-align: center;
    font-family: "Sora", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1A1414;
    line-height: 1;
    user-select: none;
}

/* Price -- just below the name, normal size */
.elementor-menu-cart__container .elementor-menu-cart__product-price {
    grid-column: 2 / span 2;
    grid-row: 2;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price .quantity {
    font-family: "Sora", sans-serif !important;
    color: #1A1414 !important;
    display: inline-flex !important;
    align-items: baseline;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-amount,
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-amount bdi {
    color: #1A1414 !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-currencySymbol {
    font-size: 14px !important;
    font-weight: 500 !important;
}

/* Remove -- trash icon at bottom-right of the info column */
/* Elementor renders the visible × on the PARENT .product-remove div via ::before / ::after lines + border;
   the inner <a> children are display:none. We restyle the parent to be a trash icon. */
.elementor-menu-cart__container .elementor-menu-cart__product-remove {
    grid-column: 3;
    grid-row: 4;
    align-self: end;
    justify-self: end;
    width: 26px !important;
    height: 26px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%231A1414" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/><path d="M10 11v6"/><path d="M14 11v6"/><path d="M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"/></svg>') !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 22px 22px !important;
    box-shadow: none !important;
    cursor: pointer !important;
    transition: opacity .15s ease;
}
/* Kill Elementor's X-lines drawn via pseudo-elements on the parent */
.elementor-menu-cart__container .elementor-menu-cart__product-remove::before,
.elementor-menu-cart__container .elementor-menu-cart__product-remove::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
    transform: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-remove:hover {
    opacity: 0.55;
}
/* Keep the underlying <a> hidden but clickable -- size to the parent and overlay transparent */
.elementor-menu-cart__container .elementor-menu-cart__product-remove a {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    background: transparent !important;
    border: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: 0 !important;
    box-shadow: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-remove a + a {
    display: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-remove a::before,
.elementor-menu-cart__container .elementor-menu-cart__product-remove a::after {
    content: none !important;
    display: none !important;
}
/* The parent must be position:relative for the <a> overlay */
.elementor-menu-cart__container .elementor-menu-cart__product-remove {
    position: relative !important;
}

/* Subtotal */
.elementor-menu-cart__container .elementor-menu-cart__subtotal {
    flex: 0 0 auto;
    padding: 22px 30px !important;
    border-top: 1px solid #EFEDEA !important;
    background: #FFFFFF !important;
    display: flex !important;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__subtotal strong {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    text-transform: uppercase;
    letter-spacing: 0.08em !important;
}
.elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount,
.elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount bdi {
    font-family: "Sora", sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
}

/* Footer buttons -- full-width dark Checkout, small underlined View cart link */
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons {
    flex: 0 0 auto;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 0 30px 30px !important;
    background: #FFFFFF !important;
    align-items: stretch !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button {
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--checkout {
    background: #1A1414 !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 18px 24px !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    text-align: center !important;
    text-decoration: none !important;
    order: 1;
    transition: background-color .15s ease;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
    background: #2B2424 !important;
}
html body header.elementor-location-header .elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--checkout .elementor-button-text {
    color: #FFFFFF !important;
    display: inline-block !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
    background: transparent !important;
    color: #1A1414 !important;
    border: 0 !important;
    padding: 4px 0 !important;
    text-align: center !important;
    order: 2;
}
html body header.elementor-location-header .elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--view-cart .elementor-button-text {
    color: #1A1414 !important;
    display: inline-block !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: underline !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Make checkout button a proper flex container so its label centers correctly */
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--checkout {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 52px !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Empty cart state */
.elementor-menu-cart__container .woocommerce-mini-cart__empty-message {
    padding: 0 30px;
    font-family: "Sora", sans-serif;
    font-size: 14px;
    color: #6E6E6E;
    margin: 0;
}
.elementor-menu-cart__container .woocommerce-mini-cart__buttons.buttons {
    padding: 24px 30px 30px;
}

/* Mini-cart scrollbar */
.elementor-menu-cart__container .elementor-menu-cart__products::-webkit-scrollbar { width: 6px; }
.elementor-menu-cart__container .elementor-menu-cart__products::-webkit-scrollbar-thumb { background: #D8D8D6; border-radius: 3px; }
.elementor-menu-cart__container .elementor-menu-cart__products::-webkit-scrollbar-track { background: transparent; }

/* ============================================================
   Cart page (/cart/) -- WC Blocks Cart Block
   ============================================================ */

/* Push the cart page content below the fixed header */
body.woocommerce-cart #primary,
body.woocommerce-cart .site-main,
body.woocommerce-cart .content-area {
    padding-top: 80px;
}
/* Empty cart: drop the top padding (no row content to clear the header for) */
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) #primary,
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) .site-main,
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) .content-area,
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) #content.site-content,
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) article.posts-entry {
    padding-top: 0 !important;
}
body.woocommerce-cart:not(.page-id-20):has(.wp-block-woocommerce-empty-cart-block) .entry-title,
body.woocommerce-cart:not(.page-id-20):has(.wp-block-woocommerce-empty-cart-block) .page-title {
    margin-top: 0 !important;
    padding-top: 30px !important; /* a little clearance below the fixed header */
}

/* Page title */
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart .woocommerce-products-header__title {
    font-family: "Sora", sans-serif !important;
    font-size: 56px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    margin: 0 0 48px 0 !important;
    letter-spacing: -0.015em;
    line-height: 1.05;
}

/* Sidebar layout */
body.woocommerce-cart .wp-block-woocommerce-cart {
    font-family: "Sora", sans-serif;
    color: #1A1414;
}
@media (min-width: 1000px) {
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 360px !important;
        gap: 64px !important;
        flex-wrap: nowrap !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
        width: auto !important;
        max-width: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        flex: none !important;
    }
}

/* Hide the WC table header row "Product / Details / Total" */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__header {
    display: none !important;
}

/* Cart items table */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items {
    border: 0 !important;
    background: transparent !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 220px 1fr auto;
    grid-template-rows: auto auto 1fr auto;
    column-gap: 32px;
    row-gap: 8px;
    padding: 32px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #EFEDEA !important;
    background: transparent !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row::before,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row::after {
    display: none !important;
}
/* Remove the faint line above the image / name cells (WC Blocks puts border-top on each td) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > th {
    border-top: 0 !important;
}

/* Thumbnail */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image {
    grid-column: 1 !important;
    grid-row: 1 / span 4 !important;
    width: 220px !important;
    height: 220px !important;
    padding: 0 !important;
    background: #F4F2EE;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image a,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    max-width: none !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image img {
    object-fit: cover !important;
    object-position: center !important;
}

/* Product cell -- stretch to full row height and flex internally so qty + trash sit at the bottom */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__product {
    grid-column: 2 !important;
    grid-row: 1 / span 4 !important;
    padding: 0 !important;
    align-self: stretch !important;
    vertical-align: top !important;
    height: 100%;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap {
    display: grid !important;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto 1fr auto;
    column-gap: 16px;
    height: 100%;
    padding: 0 !important;
}
/* Name top-left, inline price top-right on the same row */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .wc-block-components-product-name {
    grid-column: 1;
    grid-row: 1;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .wc-block-cart-item__prices,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .wc-block-components-product-price {
    grid-column: 2;
    grid-row: 1;
    margin-top: 0 !important;
    text-align: right;
    justify-self: end;
    align-self: baseline;
}
/* Dimensions go on row 2 (just under the name) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .paraform-cart-dimensions {
    grid-column: 1 / span 2;
    grid-row: 2;
}
/* Qty / trash row spans the full bottom */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .wc-block-cart-item__quantity {
    grid-column: 1 / span 2;
    grid-row: 4;
    align-self: end;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-name {
    font-family: "Sora", sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1A1414 !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    line-height: 1.3;
    display: block;
    margin-bottom: 6px;
}
/* Cart rows: hide only the long product DESCRIPTION. The metadata container must stay
   visible - WooCommerce nests the configuration details (item_data) inside it. */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata__description {
    display: none !important;
}
/* Metadata block (spec line + change link) sits on grid row 2, under the name */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap .wc-block-components-product-metadata {
    grid-column: 1 / span 2;
    grid-row: 2;
    margin-top: 8px;
}
/* A metadata container with no details inside (plain products) collapses away */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata:not(:has(.wc-block-components-product-details)) {
    display: none !important;
}
/* Configured items: the real spec line replaces the generic shipping-dimensions row */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap:has(.wc-block-components-product-details) .paraform-cart-dimensions {
    display: none !important;
}
/* Spec line - actual WC markup is div > span wrappers (name / value / " / " separator) */
.wp-block-woocommerce-cart div.wc-block-components-product-details {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
}
.wp-block-woocommerce-cart div.wc-block-components-product-details > span {
    display: inline-flex;
    align-items: baseline;
    margin: 0 26px 0 0;
}
.wp-block-woocommerce-cart div.wc-block-components-product-details > span:last-child { margin-right: 0; }
.wp-block-woocommerce-cart .wc-block-components-product-details span[aria-hidden="true"] {
    display: none; /* the " / " separators - spacing does that job */
}
/* (Inline price visibility is handled earlier -- shown below the name on the cart page) */

/* Qty + remove row (sits inside the product cell, naturally at the bottom via flex justify-content) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__quantity {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between !important;
    gap: 16px;
    padding: 0 !important;
    margin: 0 !important;
    width: 100%;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
    width: -moz-fit-content;
    width: fit-content;
    height: 40px;
    border: 1px solid #DDDDDD !important;
    border-radius: 0 !important;
    background: #fff;
    overflow: hidden;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__input {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
    min-width: 40px;
    border: 0 !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button {
    width: 36px;
    height: 100%;
    color: #1A1414 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 18px !important;
    border-radius: 0 !important;
    transition: background-color .12s ease;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:hover {
    background: #F4F2EE !important;
}

/* Total cell (price + remove) -- top-right of row */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total {
    grid-column: 3 !important;
    grid-row: 1 !important;
    padding: 0 !important;
    text-align: right !important;
    align-self: start;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    display: block;
    text-align: right;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price {
    font-family: "Sora", sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    white-space: nowrap;
}

/* Remove link -- already has SVG inside, just restyle it to a trash icon look */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: #1A1414 !important;
    cursor: pointer;
    flex-shrink: 0;
    transition: opacity .15s ease;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link svg {
    width: 26px;
    height: 26px;
    fill: #1A1414;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover { opacity: 0.6; }


/* ============================================================
   Cart page sidebar -- CUSTOM ORDER SUMMARY
   (Replaces the WC Blocks default sidebar contents)
   ============================================================ */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
    background: transparent !important;
    padding: 32px 0 0 0 !important;
    border: 0 !important;
}
/* Remove the line above the cart items table -- there's nothing above it */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items {
    border-top: 0 !important;
}
/* Hide every WC Blocks default child -- our custom <div.paraform-cart-sidebar> takes over */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar > *:not(.paraform-cart-sidebar) {
    display: none !important;
}

.paraform-cart-sidebar {
    font-family: "Sora", sans-serif;
    color: #1A1414;
}
.paraform-cart-sidebar__title {
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #1A1414;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0;
    padding: 0 0 14px 0;
    border-top: 0;
    border-bottom: 1px solid #D8D5D0;
}
.paraform-cart-sidebar__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 14px 0;
    border-bottom: 1px solid #D8D5D0;
    gap: 16px;
    margin: 0;
}
/* Items + BENEFIT + SHIPPING are one visual group -- no dividers between them, lighter font weight */
.paraform-cart-sidebar__row--group {
    border-bottom: 0;
}
.paraform-cart-sidebar__row--group .paraform-cart-sidebar__label,
.paraform-cart-sidebar__row--group .paraform-cart-sidebar__value {
    font-weight: 400 !important;
}
.paraform-cart-sidebar__row--group-end {
    border-bottom: 0 !important;
}
/* TOTAL sits in its own section -- bolder dividers above and below */
.paraform-cart-sidebar__row--total {
    border-top: 1px solid #1A1414;
    border-bottom: 1px solid #1A1414;
    padding: 18px 0;
}
/* Inline quantity multiplier (×N) */
.paraform-cart-sidebar__qty {
    font-weight: 500;
    color: #6E6E6E;
    margin-left: 4px;
    letter-spacing: 0.04em;
}
.paraform-cart-sidebar__row .paraform-cart-sidebar__label {
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1A1414;
}
.paraform-cart-sidebar__row .paraform-cart-sidebar__value {
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #1A1414;
    white-space: nowrap;
}
.paraform-cart-sidebar__row .paraform-cart-sidebar__value--placeholder {
    color: #8a8a8a;
    font-weight: 400;
    font-style: italic;
}
.paraform-cart-sidebar__row--total {
    padding: 18px 0;
}
.paraform-cart-sidebar__row--total .paraform-cart-sidebar__label,
.paraform-cart-sidebar__row--total .paraform-cart-sidebar__value {
    font-size: 14px;
    font-weight: 600;
}
.paraform-cart-sidebar__row--coupon {
    /* Outlined box that visually separates the coupon entry from the totals above */
    align-items: center;
    padding: 14px 18px !important;
    margin-top: 24px;
    border: 1px solid #D8D5D0 !important;
    border-bottom: 1px solid #D8D5D0 !important;
    transition: border-color .15s ease;
}
.paraform-cart-sidebar__row--coupon:hover,
.paraform-cart-sidebar__row--coupon:focus-within {
    border-color: #1A1414 !important;
}
.paraform-cart-sidebar__coupon-input,
body.woocommerce-cart input.paraform-cart-sidebar__coupon-input {
    flex: 1;
    min-width: 0;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
    outline: none !important;
    appearance: none;
    -webkit-appearance: none;
}
body.woocommerce-cart input.paraform-cart-sidebar__coupon-input:focus,
body.woocommerce-cart input.paraform-cart-sidebar__coupon-input:hover {
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}
.paraform-cart-sidebar__coupon-input::placeholder,
body.woocommerce-cart input.paraform-cart-sidebar__coupon-input::placeholder {
    color: #C6C4C0 !important;
    opacity: 1 !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* Dimensions row -- hidden per latest spec */
body.woocommerce-cart .wp-block-woocommerce-cart .paraform-cart-dimensions {
    display: none !important;
}
.paraform-cart-sidebar__coupon-input::placeholder {
    color: #1A1414;
    opacity: 1;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.paraform-cart-sidebar__apply {
    background: transparent;
    border: 0;
    padding: 0;
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #1A1414;
    cursor: pointer;
    transition: opacity .15s ease;
}
.paraform-cart-sidebar__apply:hover { opacity: 0.55; }
.paraform-cart-sidebar__apply[disabled] { opacity: 0.4; cursor: progress; }
.paraform-cart-sidebar__checkout {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: 28px;
    padding: 22px 24px;
    background: #1A1414;
    color: #FFFFFF !important;
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-align: center;
    text-decoration: none !important;
    border: 0;
    cursor: pointer;
    transition: background-color .15s ease;
}
.paraform-cart-sidebar__checkout:hover {
    background: #2B2424;
    color: #FFFFFF !important;
}

/* ============================================================
   "Add Ons" section (injected via the_content filter)
   ============================================================ */

body.woocommerce-cart .paraform-cart-addons {
    margin-top: 40px;
    padding-top: 28px;
    border-top: 1px solid #EFEDEA;
}

/* ============================================================
   Empty cart state
   ============================================================ */
/* Centre the entire empty-cart panel and trim the default "New in store" grid */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
    text-align: center;
    padding: 80px 20px 120px;
    font-family: "Sora", sans-serif;
    color: #1A1414;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
    font-family: "Sora", sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
    margin: 18px 0 6px 0 !important;
    letter-spacing: 0.02em;
    text-transform: none;
}
/* Override WC Blocks' default sad-face mask icon with a clean outlined cart icon */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
html body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    content: "" !important;
    width: 60px !important;
    height: 60px !important;
    display: block !important;
    margin: 0 auto 14px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none" stroke="%231A1414" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 16 14 16 20 38 50 38 56 22 18 22"/><circle cx="24" cy="48" r="3"/><circle cx="46" cy="48" r="3"/><polyline points="32 4 32 12 28 8"/><polyline points="32 4 32 12 36 8"/></svg>') !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .paraform-empty-cart-link {
    font-family: "Sora", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #A0A0A0;
    margin: 0 0 0 0;
    letter-spacing: 0.02em;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .paraform-empty-cart-link a {
    color: #A0A0A0 !important;
    text-decoration: underline;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .paraform-empty-cart-link a:hover {
    opacity: 0.6;
}
/* Hide the WC Blocks default "New in store" heading, separator, and product grid -- keep the empty state minimal */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > .wp-block-separator,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title),
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block > [data-block-name="woocommerce/product-new"],
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid {
    display: none !important;
}
/* Also hide my Add Ons section when the cart is empty (no items to recommend additions for) */
body.woocommerce-cart:has(.wp-block-woocommerce-empty-cart-block) .paraform-cart-addons {
    display: none !important;
}
body.woocommerce-cart .paraform-cart-addons__title {
    font-family: "Sora", sans-serif;
    font-size: 36px;
    font-weight: 600;
    color: #1A1414;
    margin: 0 0 32px 0;
    letter-spacing: -0.01em;
}
/* The shortcode renders the same .woocommerce ul.products grid as /shop/,
   so existing shop-loop styles (badges, layout) apply automatically. */


/* ============================================================
   Cart page -- responsive breakpoints
   ============================================================ */

/* Tablet & mobile: stack the 2-column layout */
@media (max-width: 999px) {
    body.woocommerce-cart .entry-title,
    body.woocommerce-cart .page-title {
        font-size: 40px !important;
        margin-bottom: 28px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
        display: block !important;
        grid-template-columns: none !important;
        gap: 0 !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
        width: 100% !important;
        max-width: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
        padding-top: 40px !important;
        margin-top: 24px;
        border-top: 0 !important;
    }
    body.woocommerce-cart .paraform-cart-addons {
        margin-top: 28px;
        padding-top: 22px;
    }
    body.woocommerce-cart .paraform-cart-addons__title {
        font-size: 28px;
        margin-bottom: 24px;
    }
}

/* Mobile: compress cart row */
@media (max-width: 600px) {
    body.woocommerce-cart .entry-title,
    body.woocommerce-cart .page-title {
        font-size: 32px !important;
        margin-bottom: 20px !important;
    }
    body.woocommerce-cart #primary,
    body.woocommerce-cart .site-main,
    body.woocommerce-cart .content-area {
        padding-top: 40px;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
        grid-template-columns: 100px 1fr !important;
        column-gap: 16px !important;
        padding: 20px 0 !important;
        min-height: 0 !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image {
        width: 100px !important;
        height: 100px !important;
        grid-row: 1 / span 4 !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-name {
        font-size: 13px !important;
        letter-spacing: 0.04em;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-price__value {
        font-size: 13px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
        height: 34px;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button {
        width: 30px;
    }
    /* Sidebar: tighter padding */
    body.woocommerce-cart .paraform-cart-sidebar__row {
        padding: 10px 0;
    }
    body.woocommerce-cart .paraform-cart-sidebar__row--total {
        padding: 14px 0;
    }
    body.woocommerce-cart .paraform-cart-sidebar__checkout {
        padding: 18px 20px;
    }
    body.woocommerce-cart .paraform-cart-sidebar__row--coupon {
        padding: 12px 14px !important;
    }
    /* Add Ons: 2 columns on mobile */
    body.woocommerce-cart .paraform-cart-addons .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }
    body.woocommerce-cart .paraform-cart-addons .woocommerce ul.products li.product {
        width: auto !important;
        margin: 0 !important;
    }
}

/* Very small phones: minor extra trims */
@media (max-width: 380px) {
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
        grid-template-columns: 80px 1fr !important;
        column-gap: 12px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image {
        width: 80px !important;
        height: 80px !important;
    }
    body.woocommerce-cart .paraform-cart-sidebar__label,
    body.woocommerce-cart .paraform-cart-sidebar__value {
        font-size: 12px !important;
    }
}




/* ============================================================
   Checkout page (/checkout/) -- WC Blocks Checkout
   ============================================================ */

/* Beat theme rule `body:not(.home) #main { padding-top: 80px !important }` -- /checkout/ resolves to page-id-20 when empty (body.woocommerce-cart) and page-id-21 with items (body.woocommerce-checkout) */
html body.page-id-20 #main,
html body.page-id-20 #primary,
html body.page-id-20 #content,
html body.page-id-20 #content.site-content,
html body.page-id-20 .site-main,
html body.page-id-20 .site-content,
html body.page-id-20 .content-area,
html body.page-id-20 .entry-content,
html body.page-id-20 .entry-header,
html body.page-id-20 article.posts-entry,
html body.page-id-21 #main,
html body.page-id-21 #primary,
html body.page-id-21 #content,
html body.page-id-21 #content.site-content,
html body.page-id-21 .site-main,
html body.page-id-21 .site-content,
html body.page-id-21 .content-area,
html body.page-id-21 .entry-content,
html body.page-id-21 .entry-header,
html body.page-id-21 article.posts-entry,
html body.woocommerce-checkout #main,
html body.woocommerce-checkout #primary,
html body.woocommerce-checkout #content,
html body.woocommerce-checkout #content.site-content,
html body.woocommerce-checkout .site-main,
html body.woocommerce-checkout .site-content,
html body.woocommerce-checkout .content-area,
html body.woocommerce-checkout .entry-content,
html body.woocommerce-checkout .entry-header,
html body.woocommerce-checkout article.posts-entry {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
/* But push the main content down enough to clear the ~80px fixed Elementor header. Use #main.site-main so this beats the comprehensive #main 0px rule above on specificity. */
html body.page-id-20 #main.site-main,
html body.page-id-21 #main.site-main,
html body.woocommerce-checkout #main.site-main {
    padding-top: 128px !important;
}
html body.page-id-20 .entry-title,
html body.page-id-20 .page-title,
html body.page-id-21 .entry-title,
html body.page-id-21 .page-title,
html body.woocommerce-checkout .entry-title,
html body.woocommerce-checkout .page-title {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Page title */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-title {
    font-family: "Sora", sans-serif !important;
    font-size: 56px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    margin: 0 0 24px 0 !important;
    letter-spacing: -0.015em;
    line-height: 1.05;
}

/* Layout root */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    font-family: "Sora", sans-serif;
    color: #1A1414;
}

/* Section headings (Contact information, Billing address, Payment options) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block .wp-block-woocommerce-checkout-contact-information-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form h2 {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    margin: 12px 0 16px 0 !important;
}

/* Inputs / selects */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wp-block-woocommerce-checkout input[type="text"],
body.woocommerce-checkout .wp-block-woocommerce-checkout input[type="email"],
body.woocommerce-checkout .wp-block-woocommerce-checkout input[type="tel"] {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
    border: 1px solid #D8D5D0 !important;
    border-radius: 0 !important;
    background: #FFFFFF !important;
}
body.woocommerce-checkout .wc-block-components-text-input:focus-within,
body.woocommerce-checkout .wc-block-components-select:focus-within {
    border-color: #1A1414 !important;
}
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label {
    font-family: "Sora", sans-serif !important;
    color: #6E6E6E !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}

/* Place Order button */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button {
    background: #1A1414 !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 20px 36px !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    text-decoration: none !important;
    transition: background-color .15s ease;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: #2B2424 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button span {
    color: #FFFFFF !important;
    font-family: "Sora", sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

/* Return to Cart link */
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button,
body.woocommerce-checkout a.wc-block-components-checkout-return-to-cart-button {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #6E6E6E !important;
    text-decoration: none !important;
    letter-spacing: 0.02em;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:hover {
    color: #1A1414 !important;
}

/* Order summary sidebar -- mirror cart's Order Summary look. Push sticky offset below fixed header. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
    background: transparent !important;
    padding: 0 !important;
    border: 0 !important;
    top: 120px !important;
}
body.woocommerce-checkout .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-order-summary-item,
body.woocommerce-checkout .wc-block-components-totals-item {
    border-top: 0 !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-order-summary__title-text,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-item__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block h2 {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__title {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
}
body.woocommerce-checkout .wc-block-components-totals-item__label {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    color: #1A1414 !important;
}
body.woocommerce-checkout .wc-block-components-totals-item__value {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item {
    border-top: 0 !important;
    border-bottom: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 16px !important;
    font-weight: 600 !important;
}

/* Coupon code panel - match cart's outlined box */
body.woocommerce-checkout .wc-block-components-totals-coupon {
    border: 1px solid #D8D5D0 !important;
    padding: 12px 16px !important;
    margin-top: 18px !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #1A1414 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

/* Payment options - cleaner radio cards */
body.woocommerce-checkout .wc-block-components-payment-method {
    border: 1px solid #D8D5D0 !important;
    border-radius: 0 !important;
    padding: 14px 16px !important;
    margin-bottom: 8px !important;
}
body.woocommerce-checkout .wc-block-components-payment-method__label,
body.woocommerce-checkout .wc-block-components-payment-method label {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
}
/* Hide gateway brand icon (YooMoney etc.) anywhere inside payment method card */
body.woocommerce-checkout .wc-block-components-payment-method img,
body.woocommerce-checkout .wc-block-components-payment-method svg,
body.woocommerce-checkout .wc-block-components-payment-method__icon,
body.woocommerce-checkout .wc-block-components-payment-method-label__icon,
body.woocommerce-checkout .wc-block-components-payment-method-icons,
body.woocommerce-checkout .wc-block-components-payment-method-icons__icon,
body.woocommerce-checkout .payment_method_yookassa img,
body.woocommerce-checkout .payment_method_yookassa svg,
body.woocommerce-checkout label[for*="payment-method"] img,
body.woocommerce-checkout label[for*="payment-method"] svg {
    display: none !important;
}

/* ---------- Sidebar reordering ----------
   React renders an extra wrapper inside the block:
     .wp-block-woocommerce-checkout-order-summary-block
       .wc-block-components-checkout-order-summary__title              (hidden)
       .wc-block-components-checkout-order-summary__content            (flex column, reorder here)
         .wp-block-woocommerce-checkout-order-summary-cart-items-block
         .wp-block-woocommerce-checkout-order-summary-coupon-form-block
         .wp-block-woocommerce-checkout-order-summary-totals-block     (Subtotal/Shipping/.../TOTAL footer)
   Desired visual order: totals block -> coupon -> items
*/
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content {
    display: flex !important;
    flex-direction: column !important;
}
/* totals-block wraps Subtotal/Fee/Discount/Shipping/Taxes */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-totals-block { order: 1 !important; }
/* The standalone TOTAL line lives in its own .wc-block-components-totals-wrapper -- target via :has(footer-item) */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) { order: 2 !important; }
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-coupon-form-block { order: 3 !important; }
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-cart-items-block { order: 4 !important; }
/* Hide empty gift-card blocks + trailing slot-wrapper */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-gift-card-form-block:empty,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-gift-card-totals-block:empty,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper.slot-wrapper {
    display: none !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > h2,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > .wp-block-heading,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-order-summary__title,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    display: none !important;
}

/* Row spacing + single border-bottom on each totals row (Subtotal/Shipping/Discount...). Top border lives only on subtotal as the section opener. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-taxes-block {
    padding: 16px 0 !important;
    margin: 0 !important;
    border: 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block {
    border-top: 1px solid #E6E3DE !important;
}
/* Hide truly always-empty fee/discount/taxes blocks. Shipping kept visible (JS injects placeholder). */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block:empty,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block:empty,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-taxes-block:empty {
    display: none !important;
}
/* Shipping description (method name) on its own line, smaller + uppercase */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item__description,
body.woocommerce-checkout .paraform-shipping-placeholder .wc-block-components-totals-item__description {
    display: block !important;
    flex-basis: 100% !important;
    width: 100% !important;
    font-family: "Sora", sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: #6E6E6E !important;
    margin-top: 4px !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item {
    flex-wrap: wrap !important;
}

/* Make each totals row a clean label/value flex row */
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-item {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-item__label {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-item__value {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
}

/* Shipping rate/method description line */
body.woocommerce-checkout .wc-block-components-totals-shipping__via,
body.woocommerce-checkout .wc-block-components-totals-item__description {
    font-family: "Sora", sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #6E6E6E !important;
    margin-top: 4px !important;
    flex-basis: 100% !important;
}

/* TOTAL block: same thin grey rhythm as other rows */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) {
    padding: 16px 0 4px 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-top: 1px solid #E6E3DE !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 0 16px !important;
    margin: 0 !important;
    border: 0 !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    text-align: left !important;
    flex: 0 0 auto !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    text-align: right !important;
    margin-left: auto !important;
    font-variant-numeric: tabular-nums !important;
    flex: 0 0 auto !important;
}
/* Last totals row gets a bottom border so the section closes cleanly above the standalone TOTAL wrapper */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > *:last-child {
    border-bottom: 0 !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Coupon row: outlined box matching cart sidebar */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
    border: 0 !important;
    padding: 0 !important;
    margin: 24px 0 0 0 !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon {
    border: 1px solid #D8D5D0 !important;
    padding: 14px 18px !important;
    margin: 0 !important;
    background: transparent !important;
    transition: border-color .15s ease !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon:hover,
body.woocommerce-checkout .wc-block-components-totals-coupon:focus-within {
    border-color: #1A1414 !important;
}
/* Auto-expanded inline form -- the WC toggle button is hidden, the form acts as a real input + APPLY */
body.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel,
body.woocommerce-checkout .wc-block-components-totals-coupon .wc-block-components-panel__content {
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    overflow: visible !important;
    max-height: none !important;
    visibility: visible !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__content {
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__form {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__input {
    flex: 1 1 auto !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__input input,
html body.woocommerce-checkout .wc-block-components-totals-coupon__input input[type="text"] {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
    outline: none !important;
    box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__input input::placeholder {
    color: #C6C4C0 !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
}
/* Hide the floating-label text -- the placeholder is the only affordance */
body.woocommerce-checkout .wc-block-components-totals-coupon__input label {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__button {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    box-shadow: none !important;
    cursor: pointer !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
    flex: 0 0 auto !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__button .wc-block-components-button__text {
    color: inherit !important;
    font: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
}
body.woocommerce-checkout .wc-block-components-totals-coupon__button[disabled],
body.woocommerce-checkout .wc-block-components-totals-coupon__button[aria-disabled="true"] {
    color: #C6C4C0 !important;
}

/* Cart page: hide the WC Blocks "Add coupons" panel -- paraform sidebar already has its own inline COUPON CODE input above */
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block {
    display: none !important;
}

/* Items list at bottom: big square image left, content right */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    padding-top: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
/* Clearance between coupon box and first item card */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block {
    padding-top: 32px !important;
    margin-top: 16px !important;
}
body.woocommerce-checkout .wc-block-components-order-summary {
    background: transparent !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}
/* ---------- Item card -- editorial hierarchy ----------
   Grid keeps the price baseline-aligned with the image bottom.
   Right column: NAME -> QTY (small caps) -> [flex spacer] -> PRICE.  */
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item {
    display: grid !important;
    grid-template-columns: 210px 1fr !important;
    grid-template-rows: auto 1fr auto !important;
    grid-template-areas:
        "img desc"
        "img spacer"
        "img price" !important;
    column-gap: 28px !important;
    align-items: start !important;
    min-height: 210px !important;
    padding: 0 0 28px 0 !important;
    margin: 0 0 28px 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid #E6E3DE !important;
    background: transparent !important;
}
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item:last-child {
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    grid-area: img !important;
    float: none !important;
    width: 210px !important;
    height: 210px !important;
    max-width: 210px !important;
    max-height: 210px !important;
    min-width: 210px !important;
    margin: 0 !important;
    background: #F4F2EE !important;
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
}
html body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    width: 210px !important;
    height: 210px !important;
    max-width: 210px !important;
    max-height: 210px !important;
    min-width: 210px !important;
    min-height: 210px !important;
    object-fit: cover !important;   /* was contain -> portrait photos left cream letterbox bars ("grey strips") on the sides; cover fills the square like the rest of the site */
    display: block !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
    display: none !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    grid-area: desc !important;
    align-self: start !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    grid-area: price !important;
    align-self: end !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item .screen-reader-text {
    display: none !important;
}
body.woocommerce-checkout .wc-block-cart-item__prices,
body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-details,
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices {
    display: none !important;
}

/* Typography: name -- generous tracking, refined uppercase */
body.woocommerce-checkout .wc-block-components-order-summary-item__header,
body.woocommerce-checkout .wc-block-components-order-summary-item__title,
body.woocommerce-checkout .wc-block-components-product-name {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.09em !important;
    text-transform: uppercase !important;
    line-height: 1.55 !important;
    color: #1A1414 !important;
    margin: 0 0 10px 0 !important;
}
/* Typography: QTY -- light grey, wider tracking, smaller -- recedes as meta */
body.woocommerce-checkout .paraform-checkout-item-qty {
    font-family: "Sora", sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    color: #8B8987 !important;
    margin: 0 !important;
    display: block !important;
}
/* Typography: price -- tabular numbers, anchored to image baseline */
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price .wc-block-formatted-money-amount,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price .wc-block-components-product-price {
    font-family: "Sora", sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #1A1414 !important;
    letter-spacing: 0.02em !important;
    font-variant-numeric: tabular-nums !important;
    margin: 0 !important;
    text-align: left !important;
    display: block !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    display: block !important;
    text-align: left !important;
}

/* Narrow desktop / tablet range: sidebar gets cramped at 1000-1280px and product name overflows. Shrink image + reduce letter-spacing so CIRCLE CLOCK doesn't break char-by-char. */
@media (min-width: 1000px) and (max-width: 1280px) {
    body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item {
        grid-template-columns: 140px 1fr !important;
        column-gap: 20px !important;
        min-height: 140px !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary-item__image,
    html body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
        width: 140px !important;
        height: 140px !important;
        max-width: 140px !important;
        min-width: 140px !important;
        max-height: 140px !important;
        min-height: 140px !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description a {
        font-size: 12px !important;
        letter-spacing: 0.05em !important;
    }
}

/* Responsive -- below 1000px stack to single column: form on top, order summary below */
@media (max-width: 999px) {
    body.woocommerce-checkout .entry-title,
    body.woocommerce-checkout .page-title {
        font-size: 40px !important;
        margin-bottom: 24px !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout,
    body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout {
        display: block !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        padding: 0 !important;
        margin: 0 0 32px 0 !important;
    }
    /* WC Blocks clones the order summary inline above Place Order on mobile -- hide the duplicate sidebar to avoid double rendering */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
        display: none !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item {
        grid-template-columns: 160px 1fr !important;
        column-gap: 22px !important;
        min-height: 160px !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary-item__image,
    html body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
        width: 160px !important;
        height: 160px !important;
        max-width: 160px !important;
        min-width: 160px !important;
        max-height: 160px !important;
        min-height: 160px !important;
    }
}
@media (max-width: 600px) {
    body.woocommerce-checkout .entry-title,
    body.woocommerce-checkout .page-title {
        font-size: 32px !important;
    }
    body.woocommerce-checkout #primary,
    body.woocommerce-checkout .site-main,
    body.woocommerce-checkout .content-area {
        padding-top: 40px;
    }
    body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item {
        grid-template-columns: 120px 1fr !important;
        column-gap: 18px !important;
        min-height: 120px !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary-item__image,
    html body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
        width: 120px !important;
        height: 120px !important;
        max-width: 120px !important;
        min-width: 120px !important;
        max-height: 120px !important;
        min-height: 120px !important;
    }
}

/* Shop page (page-id-19) product price -- 3-line stack matching category pages: product name (h2 above), then "PRICING STARTS FROM" (small, uppercase, muted), then the amount (bigger, dark). */
body.page-id-19 ul.products li.product .price,
body.woocommerce-cart ul.products li.product .price,
body.woocommerce.tax-product_cat ul.products li.product .price,
body.woocommerce.post-type-archive-product ul.products li.product .price {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: "Sora", sans-serif !important;
    font-size: 10px !important;
    font-weight: 400 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    color: #8a7b7b !important;
    line-height: 1.4 !important;
    white-space: normal !important;
}
body.page-id-19 ul.products li.product .price::before,
body.page-id-1580 ul.products li.product .price::before,
body.page-id-1647 ul.products li.product .price::before,
body.page-id-1654 ul.products li.product .price::before,
body.page-id-1661 ul.products li.product .price::before,
body.woocommerce-cart ul.products li.product .price::before,
body.woocommerce.post-type-archive-product ul.products li.product .price::before,
.woocommerce ul.products li.product .price::before,
ul.products li.product .price::before {
    content: "Starts From " !important;
    display: block !important;
    font-family: "Sora", sans-serif !important;
    font-size: 0.8em !important;
    font-weight: 400 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: #555 !important;
    margin: 0 0 .2rem 0 !important;
}
/* Quote-only Beegraphy products: drop the "Starts From" eyebrow (both the panel.css rule
   above and the RU inline pf-ru-labels override - hence the tripled TP class + :has bump)
   and show just the "Price on request" label in place of the amount. */
body.translatepress-ru_RU.translatepress-ru_RU.translatepress-ru_RU ul.products li.product .price:has(.pf-price-on-request)::before,
ul.products li.product .price:has(.pf-price-on-request)::before {
    content: none !important;
}
ul.products li.product .price .pf-price-on-request {
    display: block !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
    padding-top: .3em;
}
body.page-id-19 ul.products li.product .price .woocommerce-Price-amount,
body.woocommerce-cart ul.products li.product .price .woocommerce-Price-amount,
body.woocommerce.tax-product_cat ul.products li.product .price .woocommerce-Price-amount,
body.woocommerce.post-type-archive-product ul.products li.product .price .woocommerce-Price-amount {
    display: block !important;
    font-family: "Sora", sans-serif !important;
    font-size: 1.8em !important;
    font-weight: 400 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    color: #1A1414 !important;
}
body.page-id-19 ul.products li.product .price .woocommerce-Price-currencySymbol,
body.woocommerce-cart ul.products li.product .price .woocommerce-Price-currencySymbol,
body.woocommerce.tax-product_cat ul.products li.product .price .woocommerce-Price-currencySymbol,
body.woocommerce.post-type-archive-product ul.products li.product .price .woocommerce-Price-currencySymbol {
    font: inherit !important;
    color: inherit !important;
}

/* Hide the theme's category chip ::before on the product cards (user did not add it). Currently applied to cart-page Add Ons; this matches user's request and doesn't affect Elementor-rendered category pages (their cards use a different rendering path). */
body.woocommerce-cart ul.products li.product::before {
    content: none !important;
    display: none !important;
}
/* Remove list bullets ("dots") on the Add Ons product grid */
body.woocommerce-cart ul.products,
body.woocommerce-cart ul.products li.product {
    list-style: none !important;
    list-style-type: none !important;
}
body.woocommerce-cart ul.products li.product::marker {
    content: '' !important;
}

/* === Category / shop archive layout fixes (2026-06-12) === */
/* 1) Hide the theme's empty WooCommerce "featured" sidebar. With no widgets added it
      renders as a stray white strip below the product grid on /shop/ + every
      /product-category/ page. :empty keeps it self-correcting if widgets are ever added. */
.wc-sidebar-wrapper:empty,
aside.featured-sidebar:empty {
    display: none !important;
}
/* 2) Reserve two title lines on archive/category cards so the "Starts From" price
      baseline stays aligned across a row when one title wraps (e.g. "Twist Void
      Parametric Wall Decor 3D/2D"). Title line-height is 1.5 -> 2 lines = 3em. */
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
    min-height: 3em !important;
}
/* 3) (Removed 2026-07-09: the old inline-styled thumb strip is gone - the playground
      redesign bundle patch 4 renders .pf-gal-strip/.pf-gal-3d, styled in the
      single-product block at the top of this file.) */


/* Header EN/RU lang toggle -- zero customizer's 3% margin-bottom (computes to ~41.5px and pushes the chip above baseline). Selector mirrors customizer's specificity with an extra class to win the cascade. */
html body header.elementor-location-header .elementor-element-6d1f894 .elementor-element.elementor-element-b1d70a4e,
html body header.elementor-location-header .elementor-element-51261eaa .elementor-element.elementor-element-b1d70a4e {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    align-self: center !important;
}

/* "Where Our Products Are Used" section -- in the 2-column desktop layout (>1024px), right-align the nav arrows within the text column so the next-arrow lines up with the heading's text right edge (the "Are" word). The exact pixel offset is then refined by JS (alignProductsNavToHeadingText) which measures the heading line. In stacked/column layout (<=1024px), the customizer's center-alignment is left intact. */
@media (min-width: 1600px) {
    body .elementor-1580 .elementor-element-b05f437 .paraform-products-nav-wrap,
    body .elementor-1647 .elementor-element-3863ac15 .paraform-products-nav-wrap,
    body .elementor-1654 .elementor-element-55bd13c8 .paraform-products-nav-wrap,
    body .elementor-1661 .elementor-element-32993739 .paraform-products-nav-wrap {
        justify-content: flex-end !important;
        text-align: right !important;
    }
    body .elementor-1580 .elementor-element-b05f437 .paraform-products-nav-wrap .paraform-products-nav,
    body .elementor-1647 .elementor-element-3863ac15 .paraform-products-nav-wrap .paraform-products-nav,
    body .elementor-1654 .elementor-element-55bd13c8 .paraform-products-nav-wrap .paraform-products-nav,
    body .elementor-1661 .elementor-element-32993739 .paraform-products-nav-wrap .paraform-products-nav {
        margin-left: auto !important;
        margin-right: 0 !important;
    }
}

/* ============================================================================
   CONTACT PAGE -- page-id-1464
   Two-column hero: left = heading + description + 3 icon-box info blocks (3-col grid below),
                    right = form inside a clean white card.
   Below: map section, light cream framing.
   Brand palette: cream #F4F2EE, ink #1A1414, hairline #E6E3DE. Sora throughout.
   ============================================================================ */

html body.page-id-1464 { background: #FFFFFF; }

/* ---------- HERO CONTAINER (1ce6cb5e, DOM id #main-contact).
   Customizer chain `html body.page-id-1464 .elementor-1464 .elementor-element.elementor-element-1ce6cb5e`
   (0,4,3) and an `:first-child { padding-top: 0 !important }` rule (0,3,2) both
   override plain class selectors. Using the actual ID `#main-contact` gives an
   ID-anchored chain that wins.                                                   */
html body.page-id-1464 .elementor-1464 #main-contact.elementor-element-1ce6cb5e {
    padding: 80px 0 24px 0 !important;
    --padding-top: 80px !important;
    --padding-bottom: 24px !important;
    margin-bottom: 0 !important;
    background: #F4F2EE !important;
}
body.page-id-1464 .elementor-element-1ce6cb5e > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
    column-gap: 80px !important;
    row-gap: 0 !important;
    max-width: 1280px !important;
    padding: 0 64px !important;
    margin: 0 auto !important;
    align-items: stretch !important;
}

/* Beat Elementor's --width on both columns so they fill the grid track */
body.page-id-1464 .elementor-element-4486223,
body.page-id-1464 .elementor-element-7bb7a9f2 {
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
    flex: 1 1 auto !important;
}

/* ---------- LEFT COLUMN (4486223) -- flex column, content stacks
   vertically: heading, description, then the 3-info-block rectangle.
   padding-top matches the form card's padding-top (48px) so that the
   left-column heading and the card pseudo "Get in Touch" start at the
   same y-coordinate. */
body.page-id-1464 .elementor-element-4486223 {
    display: flex !important;
    flex-direction: column !important;
    padding: 48px 0 0 0 !important;
    gap: 0 !important;
}

/* Heading "Contact Us" / "Talk to Our Team" */
body.page-id-1464 .elementor-element-7dddc298 { margin: 0 0 24px 0 !important; }
body.page-id-1464 .elementor-element-7dddc298 .elementor-heading-title {
    font-family: "Sora", sans-serif !important;
    font-size: clamp(40px, 4.6vw, 64px) !important;
    font-weight: 600 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    color: #1A1414 !important;
    margin: 0 !important;
}

/* Description block */
body.page-id-1464 .elementor-element-7254a265 { margin: 0 0 24px 0 !important; }
body.page-id-1464 .elementor-element-7254a265 h3,
body.page-id-1464 .elementor-element-7254a265 .elementor-heading-title,
body.page-id-1464 .elementor-element-7254a265 p,
body.page-id-1464 .elementor-element-7254a265 .elementor-widget-container > * {
    font-family: "Sora", sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    letter-spacing: 0 !important;
    color: #6B6663 !important;
    margin: 0 !important;
    text-transform: none !important;
}

/* ---------- INFO BLOCKS (7fe264e) -- by JS this container is moved
   OUT of leftCol to be a sibling of the hero, sitting below it as a
   standalone vertical column of 3 blocks. Selector targets the moved
   location (direct child of the page elementor wrapper). */
body.page-id-1464 .elementor.elementor-1464 > .elementor-element-7fe264e {
    width: 100% !important;
    max-width: 1280px !important;
    --width: 100% !important;
    margin: 0 auto !important;
    padding: 64px 64px 64px 64px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-rows: auto !important;
    row-gap: 0 !important;
    column-gap: 0 !important;
    border: none !important;
}
body.page-id-1464 .elementor.elementor-1464 > .elementor-element-7fe264e .elementor-widget-icon-box {
    padding: 24px 0 !important;
    border-top: 1px solid #E6E3DE !important;
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
}
body.page-id-1464 .elementor.elementor-1464 > .elementor-element-7fe264e .elementor-widget-icon-box:last-child {
    border-bottom: none !important;
}

/* ---------- MAP MOVED INTO LEFTCOL (by JS) -- styled to fill the
   space below the 3-info-block row so leftCol total height matches
   the form card on the right, forming a rectangle. */
body.page-id-1464 .elementor-element-4486223 .elementor-element-2959b484 {
    margin-top: 40px !important;
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
    flex: 1 1 auto !important;
}
body.page-id-1464 .elementor-element-4486223 .elementor-element-2959b484 .elementor-custom-embed,
body.page-id-1464 .elementor-element-4486223 .elementor-element-2959b484 .elementor-custom-embed iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: 220px !important;
    border: 1px solid #E6E3DE !important;
    display: block !important;
    filter: grayscale(0.15) contrast(1.02);
}
/* Hide the original standalone map section since the map has been moved into leftCol */
body.page-id-1464 .elementor-element-44d0c08a { display: none !important; }

body.page-id-1464 .elementor-element-7fe264e .elementor-widget-icon-box {
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
}

body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-wrapper {
    display: flex !important;
    flex-direction: column !important;
    text-align: left !important;
    align-items: flex-start !important;
    gap: 6px !important;
}

/* Hide the icon, we want clean label-over-value */
body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-icon { display: none !important; }

body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

/* Title text (small uppercase label) */
body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-title,
body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-title * {
    font-family: "Sora", sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: #1A1414 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Description text (the actual contact data) */
body.page-id-1464 .elementor-element-7fe264e .elementor-icon-box-description {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
    color: #1A1414 !important;
    margin: 0 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

/* ---------- RIGHT COLUMN (7bb7a9f2) -- the form card.
   margin-top: 48px so the card's TOP EDGE sits at y=208, the same y
   as the left-column heading "Talk to Our Team" (which starts after
   leftCol's 48px padding-top). Aligns the card box with the heading. */
body.page-id-1464 .elementor-element-7bb7a9f2 {
    background: #FFFFFF !important;
    padding: 48px !important;
    margin-top: 48px !important;
    border: 1px solid #E6E3DE !important;
    border-radius: 4px !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Card header pseudo: "Get in Touch" + subline. Both placed before the form via flex order.
   Customizer applies `position: absolute; top: 0; height: 100%` to ::before via a generic
   `.elementor-element::before` decorator rule -- we have to neutralize those explicitly. */
body.page-id-1464 .elementor-element-7bb7a9f2::before {
    content: 'Get in Touch' !important;
    display: block !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    height: auto !important;
    width: 100% !important;
    background: none !important;
    font-family: "Sora", sans-serif !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.015em !important;
    color: #1A1414 !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    order: 1 !important;
    text-align: left !important;
    align-self: flex-start !important;
    transform: none !important;
}
body.page-id-1464 .elementor-element-7bb7a9f2::after {
    content: 'You can reach us anytime.' !important;
    display: block !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    height: auto !important;
    width: 100% !important;
    background: none !important;
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: #6B6663 !important;
    margin: 0 0 28px 0 !important;
    padding: 0 !important;
    order: 2 !important;
    text-align: left !important;
    align-self: flex-start !important;
    transform: none !important;
}
/* Form widget itself: place after both pseudos and let it fill card width */
body.page-id-1464 .elementor-element-7bb7a9f2 > .elementor-widget-form,
body.page-id-1464 .elementor-element-7bb7a9f2 > .e-con-inner,
body.page-id-1464 .elementor-element-7bb7a9f2 .elementor-element {
    order: 3;
}
body.page-id-1464 .elementor-element-16daec91 {
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
    flex: 1 1 auto !important;
}

/* Form -- the grid wrapper */
body.page-id-1464 form.elementor-form .elementor-form-fields-wrapper {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 16px !important;
    row-gap: 16px !important;
    margin: 0 !important;
}

/* Each field group occupies a column slot */
body.page-id-1464 form.elementor-form .elementor-field-group {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    flex-basis: auto !important;
}

/* Name (text) + Phone (tel) sit side-by-side on row 1.
   Everything else spans both columns. */
body.page-id-1464 form.elementor-form .elementor-field-type-email,
body.page-id-1464 form.elementor-form .elementor-field-type-select,
body.page-id-1464 form.elementor-form .elementor-field-type-textarea,
body.page-id-1464 form.elementor-form .elementor-field-type-submit {
    grid-column: 1 / -1 !important;
}

/* Labels */
body.page-id-1464 form.elementor-form .elementor-field-label {
    font-family: "Sora", sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: #6B6663 !important;
    margin: 0 0 8px 0 !important;
    display: block !important;
}

/* Inputs / textarea / select */
body.page-id-1464 form.elementor-form input[type="text"],
body.page-id-1464 form.elementor-form input[type="tel"],
body.page-id-1464 form.elementor-form input[type="email"],
body.page-id-1464 form.elementor-form select,
body.page-id-1464 form.elementor-form textarea {
    font-family: "Sora", sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #1A1414 !important;
    background: #FAF9F7 !important;
    border: 1px solid #E6E3DE !important;
    border-radius: 0 !important;
    padding: 14px 16px !important;
    width: 100% !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
    transition: border-color 0.18s ease, background 0.18s ease;
}

body.page-id-1464 form.elementor-form input::placeholder,
body.page-id-1464 form.elementor-form textarea::placeholder {
    color: #A8A4A0 !important;
    opacity: 1 !important;
}

body.page-id-1464 form.elementor-form input:focus,
body.page-id-1464 form.elementor-form select:focus,
body.page-id-1464 form.elementor-form textarea:focus {
    border-color: #1A1414 !important;
    background: #FFFFFF !important;
    outline: none !important;
}

body.page-id-1464 form.elementor-form textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

/* Select arrow */
body.page-id-1464 form.elementor-form select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'><path fill='none' stroke='%231A1414' stroke-width='1.5' d='M1 1l5 5 5-5'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 12px 8px !important;
    background-color: #FAF9F7 !important;
    padding-right: 40px !important;
}
/* Elementor renders its own caret (.select-caret-down-wrapper) on top of the
   CSS background chevron above -- hide it so there is a single, aligned arrow. */
body.page-id-1464 form.elementor-form .select-caret-down-wrapper {
    display: none !important;
}
/* Grey the select text while the empty placeholder is selected, so it reads
   like a real placeholder. A JS handler (contact-page inline script) toggles
   .pf-select-ph on each select by value; this is deterministic across browsers,
   unlike select:has(option:checked) which Chrome does not invalidate reliably
   for the default-selected option. No option{color} rule -- an explicit option
   colour makes Chrome paint the closed control with the option colour and
   override this. */
body.page-id-1464 form.elementor-form select.pf-select-ph {
    color: #A8A4A0 !important;
}

/* Submit button */
body.page-id-1464 form.elementor-form .elementor-field-type-submit {
    margin-top: 8px !important;
}


/* Post-submit message ("Your submission was successful.") - sit a little lower */
body.page-id-1464 form.elementor-form .elementor-message {
    margin-top: 16px !important;
}

/* ---------- File upload field (attachment) -----------------------------------
   Span full width, reveal the (normally screen-only) label as the "text above"
   the control, and restyle the native file input + its Choose File button to
   match the brand (cream field, dark uppercase button like the submit). */
body.page-id-1464 form.elementor-form .elementor-field-type-upload {
    grid-column: 1 / -1 !important;
}
body.page-id-1464 form.elementor-form .elementor-field-type-upload .elementor-field-label {
    position: static !important;
    top: auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    /* Reads as a friendly sentence, not a short uppercase label */
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: #6B6663 !important;
}
body.page-id-1464 form.elementor-form input[type="file"].elementor-upload-field {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    color: #6B6663 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    box-shadow: none !important;
}


/* ---------- RESPONSIVE / STACKED (single source of truth) ----------
   All stacked-layout spacing for the contact page lives here. Do NOT
   add competing padding/margin rules in the page HTML widget - that
   caused erratic spacing previously. One clean vertical rhythm:
   section 56 · heading->desc 12 · desc->form 32 · card pad 32 ·
   form->map 24 · info section 48. */
@media (max-width: 1024px) {
    /* Section frame. Top must clear the 85px fixed header + breathing room.
       ID selector so this is the single authoritative source. */
    html body.page-id-1464 .elementor-1464 #main-contact.elementor-element-1ce6cb5e {
        padding-top: 120px !important;
        padding-bottom: 24px !important;
    }
    body.page-id-1464 .elementor-element-1ce6cb5e > .e-con-inner {
        grid-template-columns: 1fr !important;
        row-gap: 32px !important;
        padding: 0 40px !important;
    }
    /* Left column: drop its own top padding; section controls top space */
    body.page-id-1464 .elementor-element-4486223 {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    /* Center heading + description */
    body.page-id-1464 .elementor-element-7dddc298,
    body.page-id-1464 .elementor-element-7dddc298 .elementor-heading-title { text-align: center !important; }
    body.page-id-1464 .elementor-element-7254a265 { text-align: center !important; width: 100% !important; max-width: 100% !important; }
    body.page-id-1464 .elementor-element-7254a265 h3,
    body.page-id-1464 .elementor-element-7254a265 p { text-align: center !important; }
    /* Rhythm: heading -> description */
    body.page-id-1464 .elementor-element-7dddc298 { margin-bottom: 12px !important; }
    body.page-id-1464 .elementor-element-7254a265 { margin-bottom: 0 !important; }
    /* Form card: consistent padding, no stray margin */
    body.page-id-1464 .elementor-element-7bb7a9f2 {
        margin-top: 0 !important;
        padding: 32px 40px !important;
    }
    /* Form -> map breathing room (map sits below form when stacked) */
    body.page-id-1464 .elementor-element-2959b484 { margin-top: 24px !important; padding-top: 0 !important; }
    /* Info-blocks section: tight top, comfortable bottom */
    body.page-id-1464 .elementor.elementor-1464 > .elementor-element-7fe264e {
        padding: 16px 40px 48px 40px !important;
    }
    body.page-id-1464 .elementor-element-44d0c08a > .e-con-inner {
        padding: 0 40px !important;
    }
}

@media (max-width: 767px) {
    html body.page-id-1464 .elementor-1464 #main-contact.elementor-element-1ce6cb5e {
        padding-top: 104px !important;
        padding-bottom: 20px !important;
    }
    body.page-id-1464 .elementor-element-1ce6cb5e > .e-con-inner {
        padding: 0 24px !important;
        row-gap: 28px !important;
    }
    body.page-id-1464 .elementor-element-7dddc298 .elementor-heading-title {
        font-size: 36px !important;
    }
    body.page-id-1464 .elementor-element-7bb7a9f2 {
        padding: 28px 24px !important;
    }
    body.page-id-1464 .elementor-element-2959b484 { margin-top: 20px !important; }
    body.page-id-1464 form.elementor-form .elementor-form-fields-wrapper {
        grid-template-columns: 1fr !important;
    }
    /* Info-blocks section: tight top, comfortable bottom (overrides desktop shorthand) */
    body.page-id-1464 .elementor.elementor-1464 > .elementor-element-7fe264e {
        padding: 16px 24px 40px 24px !important;
        row-gap: 24px !important;
        column-gap: 0 !important;
    }
    body.page-id-1464 .elementor-element-44d0c08a {
        padding: 48px 0 64px 0 !important;
    }
    body.page-id-1464 .elementor-element-44d0c08a > .e-con-inner {
        padding: 0 24px !important;
    }
    body.page-id-1464 .elementor-element-2959b484 .elementor-custom-embed iframe {
        height: 320px !important;
    }
}

/* ===== Homepage (post 27): consistent vertical rhythm between sections =====
   High-specificity + all margin forms (physical/logical/--vars) so it wins over
   any leftover per-section custom CSS. 6 visible sections; hero & hidden dupes
   untouched. Desktop 160 / tablet 100 / mobile 64. */
body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0beabd,
body.page-id-27 .elementor-27 .elementor-element.elementor-element-7ff0b22,
body.page-id-27 .elementor-27 .elementor-element.elementor-element-dab1420,
body.page-id-27 .elementor-27 .elementor-element.elementor-element-4954552,
body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0f2304,
body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
    --margin-top: 160px !important;  margin-top: 160px !important;  margin-block-start: 160px !important;
    --margin-bottom: 0px !important; margin-bottom: 0px !important;  margin-block-end: 0px !important;
}
body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
    --margin-bottom: 160px !important; margin-bottom: 160px !important; margin-block-end: 160px !important;
}
@media (max-width: 1024px) {
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0beabd,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-7ff0b22,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-dab1420,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-4954552,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0f2304,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
        --margin-top: 80px !important; margin-top: 80px !important; margin-block-start: 80px !important;
    }
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
        --margin-bottom: 80px !important; margin-bottom: 80px !important; margin-block-end: 80px !important;
    }
}
@media (max-width: 767px) {
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0beabd,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-7ff0b22,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-dab1420,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-4954552,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-c0f2304,
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
        --margin-top: 64px !important; margin-top: 64px !important; margin-block-start: 64px !important;
    }
    body.page-id-27 .elementor-27 .elementor-element.elementor-element-3da14377 {
        --margin-bottom: 64px !important; margin-bottom: 64px !important; margin-block-end: 64px !important;
    }
}

/* ---------- Contact form-card header (1464) Russian override.
   The card title/subtitle are CSS ::before/::after content, which
   TranslatePress cannot translate. Re-set the content for the RU
   language (body.translatepress-ru_RU adds a class -> higher specificity). */
body.translatepress-ru_RU.page-id-1464 .elementor-element-7bb7a9f2::before {
    content: 'Свяжитесь с нами' !important;
}
body.translatepress-ru_RU.page-id-1464 .elementor-element-7bb7a9f2::after {
    content: 'Вы можете связаться с нами в любое время.' !important;
}

/* Shop archive: breathing room below the last product row before the footer (2026-06-12). */
body.woocommerce-shop .site-main.featured-content,
body.post-type-archive-product .site-main.featured-content,
body.tax-product_cat .site-main.featured-content {
    padding-bottom: clamp(56px, 6vw, 100px) !important;
}

/* Cart "Add Ons": WooCommerce clearfix ::before/::after become grid items and steal a column,
   pushing products right + leaving an empty cell. Remove them so the 4 products fill the row (2026-06-12). */
.paraform-cart-addons ul.products::before,
.paraform-cart-addons ul.products::after {
    content: none !important;
    display: none !important;
}

/* Product-page quantity stepper: grey out the minus button when disabled
   (qty == 1), matching the cart/checkout stepper's disabled style (line ~627). */
html body.single-product .paraform-qty-wrap .paraform-qty-btn[disabled] {
    color: #BBBBBB;
    cursor: not-allowed;
}
html body.single-product .paraform-qty-wrap .paraform-qty-btn[disabled]:hover {
    background: transparent;
}

/* === Legal bar (footer): mandatory RU legal links + ИП requisites === */
.pf-legal-bar{ background:#fffbf4; border-top:1px solid rgba(47,49,54,.12); padding:24px 20px; font-family:"Sora",sans-serif; }
.pf-legal-bar__inner{ max-width:1200px; margin:0 auto; text-align:center; }
.pf-legal-bar__links{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 10px; font-size:13px; font-weight:300; letter-spacing:.02em; line-height:1.6; }
.pf-legal-bar__links a{ color:#2f3136; text-decoration:none; transition:color .15s ease; }
.pf-legal-bar__links a:hover{ color:#8a6a3f; text-decoration:underline; }
.pf-legal-bar .pf-legal-sep{ color:rgba(47,49,54,.35); }
.pf-legal-bar__req{ margin-top:12px; font-size:12px; font-weight:300; letter-spacing:.03em; color:rgba(47,49,54,.6); }
@media (max-width:767px){ .pf-legal-bar__links{ font-size:12px; } .pf-legal-bar__req{ font-size:11px; } }

/* === Language switcher v2: single current-language button + click-dropdown (desktop + mobile drawer) === */
/* show ONLY the current-language toggle (kills the "EN / RU  RU / EN" duplicate in the drawer) */
html body .paraform-lang-wrap .paraform-lang-toggle.when-en{ display:inline-flex !important; }
html body .paraform-lang-wrap .paraform-lang-toggle.when-ru{ display:none !important; }
html body.translatepress-ru_RU .paraform-lang-wrap .paraform-lang-toggle.when-en{ display:none !important; }
html body.translatepress-ru_RU .paraform-lang-wrap .paraform-lang-toggle.when-ru{ display:inline-flex !important; }
.paraform-lang-wrap .paraform-lang-toggle{ position:relative; align-items:center; }
/* the "/" separator is never used in the dropdown design */
html body .paraform-lang-wrap .paraform-lang-toggle .lang-sep{ display:none !important; }
/* current language = the button (with caret) */
.paraform-lang-wrap .paraform-lang-toggle .lang-current{ display:inline-flex; align-items:center; cursor:pointer; }
.paraform-lang-wrap .paraform-lang-toggle .lang-current::after{
  content:""; display:inline-block; width:6px; height:6px; margin-left:6px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg); position:relative; top:-2px; opacity:.7;
  transition:transform .18s ease, top .18s ease;
}
.paraform-lang-wrap .paraform-lang-toggle.pf-open .lang-current::after{ transform:rotate(-135deg); top:1px; }
/* the other language = dropdown item, hidden until open */
html body .paraform-lang-wrap .paraform-lang-toggle .lang-target{
  display:none !important; position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%);
  min-width:62px; padding:9px 16px; text-align:center; white-space:nowrap;
  background:#ffffff !important; color:#2f3136 !important; opacity:1 !important;
  border:1px solid rgba(47,49,54,.14); border-radius:7px;
  box-shadow:0 8px 22px rgba(0,0,0,.12); font-size:13px; font-weight:400; letter-spacing:.04em; z-index:100001;
}
html body .paraform-lang-wrap .paraform-lang-toggle.pf-open .lang-target{ display:block !important; }
.paraform-lang-wrap .paraform-lang-toggle .lang-target:hover{ color:#8a6a3f !important; }
/* mobile drawer: open aligned to the left edge so it doesn't clip */
.paraform-lang-wrap.in-menu .paraform-lang-toggle .lang-target{ left:0; transform:none; }

/* --- drawer (.in-menu): override the old "show both expanded" Customizer rules; enforce single-button dropdown --- */
html body header.elementor-location-header .paraform-lang-wrap.in-menu{ display:flex !important; justify-content:center !important; padding:14px 0 !important; }
/* hide duplicate wrap copies that land in the drawer */
html body header.elementor-location-header .paraform-lang-wrap.in-menu ~ .paraform-lang-wrap.in-menu{ display:none !important; }
/* show only the current-language toggle */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.when-en{ display:inline-flex !important; position:relative !important; overflow:visible !important; }
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.when-ru{ display:none !important; position:relative !important; overflow:visible !important; }
html body.translatepress-ru_RU header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.when-en{ display:none !important; }
html body.translatepress-ru_RU header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.when-ru{ display:inline-flex !important; }
/* never show the "/" separator */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle .lang-sep{ display:none !important; }
/* the other language = dropdown panel, hidden until open */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle .lang-target{ display:none !important; visibility:visible !important; position:absolute !important; top:calc(100% + 10px) !important; left:50% !important; right:auto !important; transform:translateX(-50%) !important; margin:0 !important; }
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.pf-open .lang-target{ display:block !important; }

/* === Legal pages: bilingual content shown by current language === */
body.page-id-4033 .entry-title, body.page-id-4034 .entry-title,
body.page-id-4141 .entry-title, body.page-id-4142 .entry-title{ display:none !important; }
.pf-legal .pf-legal-lang{ display:none; }
body:not(.translatepress-ru_RU) .pf-legal .pf-legal-en{ display:block; }
body.translatepress-ru_RU .pf-legal .pf-legal-ru{ display:block; }
.pf-legal h1{ font-family:"Sora",sans-serif; font-size:34px; font-weight:600; line-height:1.2; margin:0 0 26px; color:#2f3136; }
.pf-legal h2{ font-family:"Sora",sans-serif; }
@media (max-width:767px){ .pf-legal h1{ font-size:26px; } }

/* === Language switcher v3: two-language dropdown menu directly below the button === */
html body .paraform-lang-wrap .paraform-lang-toggle .lang-target{ display:none !important; }
.paraform-lang-wrap .pf-lang-menu{
  display:none; position:absolute; top:calc(100% + 12px); left:0; min-width:148px;
  background:#ffffff; border:1px solid rgba(47,49,54,.12); border-radius:8px;
  box-shadow:0 10px 28px rgba(0,0,0,.14); padding:6px; z-index:100020;
}
.paraform-lang-wrap .paraform-lang-toggle.pf-open .pf-lang-menu{ display:block; }
.paraform-lang-wrap .pf-lang-menu .pf-lang-opt{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:9px 12px; border-radius:5px; font-family:"Sora",sans-serif; font-size:14px;
  font-weight:300; letter-spacing:.01em; line-height:1.2; color:#2f3136 !important;
  text-decoration:none !important; opacity:1 !important; white-space:nowrap; cursor:pointer;
}
.paraform-lang-wrap .pf-lang-menu .pf-lang-opt:hover{ background:rgba(138,106,63,.08); color:#8a6a3f !important; }
.paraform-lang-wrap .pf-lang-menu .pf-lang-opt.is-current{ font-weight:500; }
.paraform-lang-wrap .pf-lang-menu .pf-lang-opt.is-current::after{ content:"\2713"; color:#8a6a3f; font-size:13px; }
/* desktop top-right: align the menu's right edge under the button so it stays on-screen */
header.elementor-location-header .paraform-lang-wrap:not(.in-menu) .pf-lang-menu{ left:auto; right:0; }
/* mobile drawer: center the menu under the button */
header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu{ left:50%; right:auto; transform:translateX(-50%); }

/* v3 fix: the old single .lang-target is fully replaced by .pf-lang-menu - keep it hidden even when open */
html body .paraform-lang-wrap .paraform-lang-toggle.pf-open .lang-target{ display:none !important; }
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle.pf-open .lang-target{ display:none !important; }

/* === Language switcher: open on HOVER on desktop (mobile drawer stays click via .pf-open) === */
.paraform-lang-wrap:not(.in-menu) .paraform-lang-toggle:hover .pf-lang-menu{ display:block; }
/* transparent bridge across the button→menu gap so hover doesn't drop while crossing it */
.paraform-lang-wrap:not(.in-menu) .pf-lang-menu::before{ content:""; position:absolute; left:0; right:0; top:-16px; height:16px; }
/* caret points up while hovering on desktop */
.paraform-lang-wrap:not(.in-menu) .paraform-lang-toggle:hover .lang-current::after{ transform:rotate(-135deg); top:1px; }

/* === Home "value individuality" cards: keep ENGLISH illustrations on /en/ ===
   Source (post 27, RU default) now uses Russian-text illustrations. TranslatePress
   cannot translate Elementor container background-images (CSS, not <img>), so we
   restore the English baked-text images only on the English site. */
html[lang="en-US"] .elementor-27 .elementor-element.elementor-element-026c620:not(.elementor-motion-effects-element-type-background){
  background-image:url("https://paraform.uni.xyz/wp-content/uploads/2026/05/ChatGPT-Image-May-26-2026-04_41_29-PM-2-3.png") !important;
}
html[lang="en-US"] .elementor-27 .elementor-element.elementor-element-5d11be4:not(.elementor-motion-effects-element-type-background){
  background-image:url("https://paraform.uni.xyz/wp-content/uploads/2026/05/ChatGPT-Image-May-26-2026-04_41_29-PM-4-2.png") !important;
}








/* Shop toolbar: result count (left) + filter and sort (right), one aligned flex row */
.woocommerce .pf-shop-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 34px;
}
.woocommerce .pf-shop-toolbar::before,
.woocommerce .pf-shop-toolbar::after { content: none; }
.woocommerce .pf-shop-toolbar .woocommerce-result-count { margin: 0; float: none; }
.woocommerce .pf-shop-toolbar .pf-cat-filter { margin: 0 0 0 auto; float: none; order: 2; }
.woocommerce .pf-shop-toolbar .woocommerce-ordering { margin: 0; float: none; order: 3; }

/* Catalogue (/shop/) category filter -- dropdown (filter icon + "Фильтр") with multi-select tags.
   Box matches the theme's native sort <select> (sharp, grey border, ~44px). */
/* Filter box mirrors the sort control's box on ALL sizes: same 280px width, same 41px height
   (user request 2026-07-03: "same width as sorting button on all sizes"). */
.woocommerce .pf-cat-filter.paraform-sort { width: 280px; max-width: 100%; }
.woocommerce .pf-cat-filter-btn.paraform-sort-button {
    width: 100%;
    height: 41px;
    justify-content: flex-start;
    gap: 10px;
    padding: 0 25px;
    border: 1px solid var(--rz-border-color, #DDDDDD);
    border-radius: 0;
}
/* Label left, filter icon pushed to the right, no caret arrow */
.woocommerce .pf-cat-filter-label { flex: 0 0 auto; margin-right: auto; }
.woocommerce .pf-cat-filter-ico {
    display: inline-flex;
    align-items: center;
    color: #1A1414;
    flex: 0 0 auto;
}
.woocommerce .pf-cat-filter-count {
    flex: 0 0 auto;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: #1A1414;
    color: #F4F2EE;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
}
/* Panel: right-aligned to the button, roomy enough for the longest tag */
.woocommerce .pf-cat-filter-panel.paraform-sort-panel {
    left: auto;
    right: 0;
    min-width: 232px;
    padding: 6px 0;
}
/* Options: checkbox on the left, label on the right */
.woocommerce .pf-cat-opt {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 18px;
    font-family: "Sora", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1A1414;
    cursor: pointer;
    user-select: none;
    outline: none;
    transition: background-color .12s ease;
}
.woocommerce .pf-cat-opt:hover,
.woocommerce .pf-cat-opt:focus { background: #F4F4F2; }
.woocommerce .pf-cat-check {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    border: 1.5px solid #C9C4BC;
    border-radius: 3px;
    background: #fff;
    position: relative;
    transition: background .12s ease, border-color .12s ease;
}
.woocommerce .pf-cat-opt.is-selected .pf-cat-check {
    background: #1A1414;
    border-color: #1A1414;
}
.woocommerce .pf-cat-opt.is-selected .pf-cat-check::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

@media (max-width: 767px) { /* var(--bp-sm) */
    /* Stack the toolbar: result count, then sorting, then the filter DIRECTLY BELOW sorting,
       both at the same width (2026-07-03). */
    .woocommerce .pf-shop-toolbar { flex-direction: column; align-items: flex-start; }
    .woocommerce .pf-shop-toolbar .woocommerce-ordering { order: 2; }
    .woocommerce .pf-shop-toolbar .pf-cat-filter { order: 3; margin-left: 0; }
    .woocommerce .pf-shop-toolbar .woocommerce-ordering,
    .woocommerce .pf-shop-toolbar .woocommerce-ordering .paraform-sort,
    .woocommerce .pf-shop-toolbar .pf-cat-filter.paraform-sort { width: 280px; max-width: 100%; }
    .woocommerce .pf-cat-filter-btn.paraform-sort-button { width: 100%; }
    .woocommerce .pf-cat-filter-panel.paraform-sort-panel { left: 0; right: 0; }
}


/* Footer overflow guard: nothing inside the footer may create horizontal scroll (2026-07-03) */
.elementor-location-footer { overflow-x: clip; }

/* Footer (c)-line: contacts flush with the content edge, inner gap preserved (2026-07-03) */
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-items.elementor-inline-items {
    margin-inline: 0 !important;
    display: flex !important;
    column-gap: 28px !important;
    flex-wrap: wrap !important;
}
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item:last-child { margin-inline-end: 0 !important; padding-inline-end: 0 !important; }
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item:first-child { margin-inline-start: 0 !important; padding-inline-start: 0 !important; }

/* Bottom bar: copyright text + contacts share one baseline (2026-07-03) */
.elementor-location-footer .elementor-element-fb07b41 { align-items: baseline !important; }
.elementor-location-footer .elementor-element-fb07b41 .elementor-heading-title,
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-items,
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item { margin: 0 !important; }
.elementor-location-footer .elementor-element-fb07b41 .elementor-heading-title,
.elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-text { line-height: 1.4 !important; }

/* Mobile: centre the bottom-bar copyright + contacts only (2026-07-03) */
@media (max-width: 767px) { /* var(--bp-sm) */
    .elementor-location-footer .elementor-element-fb07b41 {
        justify-content: center !important;
        text-align: center !important;
    }
    .elementor-location-footer .elementor-element-fb07b41 .elementor-widget-container,
    .elementor-location-footer .elementor-element-fb07b41 .elementor-heading-title,
    .elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-items {
        justify-content: center !important;
        text-align: center !important;
    }
}

/* Social media icons hidden until we push them live (2026-07-03) */
.elementor-location-footer .elementor-element-62bdcfe8 { display: none !important; }

/* Contact (1464): on tablet + mobile, move the map BELOW the form (2026-07-03).
   Flatten the left column (79c934c) so its children join the stacked row (46cd121),
   then order: copy/info -> form column -> map. */
@media (max-width: 1024px) { /* tablet + mobile: var(--bp-lg) */
    body.page-id-1464 .elementor-element-79c934c { display: contents !important; }
    body.page-id-1464 .elementor-element-e91cfe4 { order: 0 !important; } /* copy + info blocks */
    body.page-id-1464 .elementor-element-12917c2 { order: 1 !important; } /* form column */
    body.page-id-1464 .elementor-element-2959b484 { order: 2 !important; margin-top: 40px !important; } /* map, last */
}

/* === Language switcher v4 (2026-07-03): MOBILE DRAWER = flat inline row, no chip/popup ===
   The drawer is left-aligned with small uppercase items; the old centered "RU v" chip +
   floating .pf-lang-menu popup clashed with it (and could clip against the drawer scroll).
   In .in-menu we hide the chip and show the two .pf-lang-opt links permanently, styled like
   drawer items: current language dark + underlined, the other grey. Desktop untouched.
   These rules sit LAST in the file so they beat the earlier equal-specificity drawer rules. */
html body header.elementor-location-header .paraform-lang-wrap.in-menu{
    display: block !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 10px 28px 22px !important; /* 28px = drawer item inset */
}
/* hide the chip button (and its caret pseudo-element goes with it) */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .paraform-lang-toggle .lang-current{
    display: none !important;
}
/* the two-language menu becomes a static row */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 26px !important;
    position: static !important;
    transform: none !important;
    min-width: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
html body header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu .pf-lang-opt{
    padding: 6px 0 4px !important;
    border-radius: 0 !important;
    gap: 0 !important;
    font-size: 10px !important;
    font-weight: 300 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    line-height: 1.3 !important;
    color: #8B8B8B !important;
    background: transparent !important;
    border-bottom: 1px solid transparent !important;
}
html body header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu .pf-lang-opt.is-current{
    color: #1A1A1A !important;
    font-weight: 400 !important;
    border-bottom: 1px solid #1A1A1A !important;
}
/* no checkmark in the drawer (the underline marks the current language) */
html body header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu .pf-lang-opt::after{
    content: none !important;
}
html body header.elementor-location-header .paraform-lang-wrap.in-menu .pf-lang-menu .pf-lang-opt:hover{
    background: transparent !important;
    color: #1A1A1A !important;
}

/* Burger toggle: X <-> bars morph is never visible as an animation (the toggle is fully hidden
   while the drawer is open), but the 0.3s transform/top transition WAS visible as a briefly
   distorted glyph when a drawer link click closes the menu and reveals the toggle mid-morph.
   Keep only the width transition (hover: short bar grows). (2026-07-03) */
html body header.elementor-location-header .elementor-element-559c56d2 .elementor-menu-toggle::before,
html body header.elementor-location-header .elementor-element-559c56d2 .elementor-menu-toggle::after{
    transition: width 0.3s ease !important;
}

/* Single-product tabs on mobile: one scrollable row instead of wrapping to multiple rows
   (2026-07-03). Scrollbar hidden; each tab keeps its width and can be swiped to. */
@media (max-width: 767px) { /* var(--bp-sm) */
    html body.single-product .woocommerce-tabs ul.tabs.wc-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
    }
    html body.single-product .woocommerce-tabs ul.tabs.wc-tabs::-webkit-scrollbar {
        display: none !important; height: 0 !important;
    }
    html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li {
        flex: 0 0 auto !important;
    }
    html body.single-product .woocommerce-tabs ul.tabs.wc-tabs li a {
        white-space: nowrap !important;
    }
}

/* Catalogue (/shop/) archive: the Customizer's "reduce top padding to 48/40/32" rules put the
   breadcrumb (Главная / Каталог) UNDER the ~85px fixed header. Re-assert header-clearing padding
   with higher specificity (html prefix beats the Customizer's body-prefixed selectors). 2026-07-03 */
/* The Customizer pads #primary AND the nested #main (values stack: 48+48/40+40/32+32 - mobile's
   64px total is what hid the breadcrumb under the 85px header). Collapse all top padding onto
   #primary alone and zero the rest so the total is one predictable header-clearing value. */
html body.woocommerce-shop.post-type-archive-product #content,
html body.woocommerce-shop.post-type-archive-product .site-content,
html body.woocommerce-shop.post-type-archive-product #main.site-main {
    padding-top: 0 !important;
}
html body.woocommerce-shop.post-type-archive-product #primary.content-area {
    padding-top: 128px !important;
}
@media (max-width: 1024px) { /* var(--bp-lg) */
    html body.woocommerce-shop.post-type-archive-product #primary.content-area {
        padding-top: 118px !important;
    }
}
@media (max-width: 767px) { /* var(--bp-sm) */
    html body.woocommerce-shop.post-type-archive-product #primary.content-area {
        padding-top: 108px !important;
    }
}

/* === Empty cart: minimal centered state (2026-07-07, per user reference) === */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block { padding: 48px 0 90px; }
body.woocommerce-cart .wc-block-cart__empty-cart__title {
    text-transform: uppercase !important;
    letter-spacing: 0.18em !important;
    font-size: 20px !important;
    margin: 22px 0 26px !important;
    color: #1A1414 !important;
}
body.woocommerce-cart .pf-empty-cart-msg {
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #5B5755 !important;
    margin: 0 0 4px !important;
}
body.woocommerce-cart .pf-empty-cart-msg a {
    color: #1A1414 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Header CATALOGUE button: desktop stays at the widget's native 16px; tablet/mobile bumped
   from the tiny 11/10px (2026-07-07) */
/* scale the whole widget 1.1 - DESKTOP ONLY (on the wrapper, so the button's own hover
   animation keeps working) */
@media (min-width: 1025px) { /* var(--bp-lg) + 1 */
    html body header.elementor-location-header .elementor-element.elementor-element-46d231d4 {
        transform: scale(1.1);
        transform-origin: center;
    }
}
@media (max-width: 1024px) { /* var(--bp-lg) */
    html body header.elementor-location-header .elementor-element-46d231d4 .elementor-button { font-size: 13px !important; }
}
@media (max-width: 767px) { /* var(--bp-sm) */
    html body header.elementor-location-header .elementor-element-46d231d4 .elementor-button { font-size: 12px !important; }
}

/* Empty cart icon: line-art cart with "!" (self-contained SVG - WC's own
   .with-empty-cart-icon styling isn't loaded by this theme). 2026-07-07 */
body.woocommerce-cart .wc-block-cart__empty-cart__title::before {
    content: "" !important;
    display: block !important;
    width: 52px !important;
    height: 48px !important;
    margin: 0 auto 24px !important;
    background: transparent no-repeat center / contain !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 40' fill='none' stroke='%231A1414' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4h5l6 19h20l4-13H10'/%3E%3Ccircle cx='16' cy='34.5' r='2.1' fill='%231A1414' stroke='none'/%3E%3Ccircle cx='30' cy='34.5' r='2.1' fill='%231A1414' stroke='none'/%3E%3C/svg%3E") !important;
}

/* Mobile drawer top-level items: Capitalize instead of UPPERCASE (2026-07-07, drawer only).
   RUSSIAN exempt (2026-07-08): capitalize Title-Cases Every Word, which is wrong Russian
   («О Нас») - RU shows the stored sentence case instead. Full-caps elements stay as they are. */
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item {
    text-transform: none !important; /* natural case like the playground drawer (was capitalize) */
}
html body.translatepress-ru_RU header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item {
    text-transform: none !important;
}

/* Side-cart drawer: styled empty state matching /cart/ (2026-07-07; compact + vertically centred) */
.elementor-menu-cart__main .woocommerce-mini-cart__empty-message {
    padding: 0 34px !important;
    margin: 0 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: calc(100vh - 120px);
}
.elementor-menu-cart__main .pf-mc-empty { display: grid; justify-items: center; gap: 5px; }
.elementor-menu-cart__main .pf-mc-empty svg { width: 34px; height: 31px; margin-bottom: 14px; }
.elementor-menu-cart__main .pf-mc-empty__title {
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 13px;
    color: #1A1414;
    font-weight: 400 !important;
    margin-bottom: 8px;
}
.elementor-menu-cart__main .pf-mc-empty__line { font-size: 13px; line-height: 1.6; color: #5B5755; }
.elementor-menu-cart__main .pf-mc-empty__line a { color: #1A1414; text-decoration: underline; text-underline-offset: 3px; }

/* Empty cart page: hide the big "Cart" page title (2026-07-07). After hydration WooCommerce
   REMOVES the filled-cart block from the DOM when the cart is empty (it does not use [hidden]),
   so key on its absence; keep the [hidden] variant for safety. */
body.woocommerce-cart:not(:has(.wp-block-woocommerce-filled-cart-block)) .entry-title,
body.woocommerce-cart:not(:has(.wp-block-woocommerce-filled-cart-block)) .page-title,
body.woocommerce-cart:has(.wp-block-woocommerce-filled-cart-block[hidden]) .entry-title,
body.woocommerce-cart:has(.wp-block-woocommerce-filled-cart-block[hidden]) .page-title {
    display: none !important;
}

/* Side-cart drawer: hide the "Cart" pseudo-title while the cart is empty (2026-07-07) -
   the styled empty state carries its own CART EMPTY label. */
.elementor-menu-cart__main:has(.woocommerce-mini-cart__empty-message)::before {
    display: none !important;
}

/* Sub-heading tracking trim (2026-07-07): two 0.14em culprits from the Customizer read too
   airy - product-card titles on the category pages, and the mobile-drawer nav items
   (extra visible since the drawer went Capitalize). */
html body :is(.page-id-1580, .page-id-1647, .page-id-1654, .page-id-1661) .elementor-widget-woocommerce-products ul.products li.product .woocommerce-loop-product__title {
    letter-spacing: 0.05em !important;
    word-spacing: -0.04em !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item {
    letter-spacing: 0.08em !important;
    font-size: 14px !important; /* was 12px - drawer top-level items bumped 2026-07-07 */
    /* no word-spacing rule exists anywhere; the wide word gaps are letter-spacing applied
       to the space character - compensate negatively */
    word-spacing: -0.05em !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-sub-item {
    letter-spacing: 0.05em !important;
    word-spacing: -0.03em !important;
}

/* Footer (c)-line email + phone: hover like the legal links below them (2026-07-08) */
html body .elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item a,
html body .elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item a .elementor-icon-list-text {
    transition: color .15s ease !important;
}
html body .elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item a:hover,
html body .elementor-location-footer .elementor-element-fb07b41 .elementor-icon-list-item a:hover .elementor-icon-list-text {
    color: #8a6a3f !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Contact form: one subtle fill for every field, including the two custom dropdowns
   (Select reason / Select category), which are separate elements and never inherited
   the inputs' theme fill. Scoped to the contact page only. (2026-07-08) */
html body.page-id-1464 .elementor-element-16daec91 input.elementor-field-textual,
html body.page-id-1464 .elementor-element-16daec91 textarea.elementor-field-textual,
html body.page-id-1464 .elementor-element-16daec91 .elementor-field-textual {
    /* background-COLOR only: the shorthand was wiping the selects' chevron background-image */
    background-color: #FAF9F7 !important; /* = the Name input's fill; one tone for all */
}
html body.page-id-1464 .paraform-sort .paraform-sort-button,
html body.page-id-1464 .paraform-sort-button {
    background-color: #FAF9F7 !important;
}
/* Chrome autofill tints fields blue/yellow and ignores background rules - the inset
   box-shadow trick is the only override. Keeps autofilled fields on the same fill. */
html body.page-id-1464 form.elementor-form input:-webkit-autofill,
html body.page-id-1464 form.elementor-form input:-webkit-autofill:hover,
html body.page-id-1464 form.elementor-form input:-webkit-autofill:focus {
    -webkit-box-shadow: inset 0 0 0 1000px #FAF9F7 !important;
    -webkit-text-fill-color: #1A1414 !important;
}
/* placeholders: +100 weight (300 -> 400) on inputs, textarea and both dropdown kinds */
html body.page-id-1464 form.elementor-form input::placeholder,
html body.page-id-1464 form.elementor-form textarea::placeholder {
    font-weight: 400 !important;
}
html body.page-id-1464 form.elementor-form select.is-placeholder,
html body.page-id-1464 .paraform-sort-button.is-placeholder .paraform-sort-label,
html body.page-id-1464 .paraform-sort-button .paraform-sort-label.is-placeholder {
    font-weight: 400 !important;
}

/* Contact form: identical placeholder grey for inputs AND the custom dropdowns (2026-07-08) */
body.page-id-1464 .elementor-element-16daec91 .elementor-field-textual::placeholder {
    color: #A8A4A0 !important;
    opacity: 1 !important;
}
body.page-id-1464 .paraform-sort-button.is-placeholder .paraform-sort-label,
body.page-id-1464 .paraform-sort-button .paraform-sort-label.is-placeholder {
    color: #A8A4A0 !important;
}

/* Contact dropdowns: align the label text with the inputs' 16px left padding
   (the shared .paraform-sort-button carries 25px from the shop sort control). 2026-07-08 */
html body.page-id-1464 .paraform-sort-button,
html body.page-id-1464 .paraform-sort .paraform-sort-button {
    padding-left: 16px !important;
}
html body.page-id-1464 form.elementor-form select {
    padding-left: 16px !important;
}

/* CATALOGUE button: kill the Elementor "shrink" hover/press animation (with the 1.1 wrapper
   scale it made the button visibly collapse when pressed). 2026-07-08 */
html body header.elementor-location-header .elementor-element-46d231d4 .elementor-button.elementor-animation-shrink:hover,
html body header.elementor-location-header .elementor-element-46d231d4 .elementor-button.elementor-animation-shrink:focus,
html body header.elementor-location-header .elementor-element-46d231d4 .elementor-button.elementor-animation-shrink:active {
    transform: none !important;
}

/* Category product grids: last row aligns LEFT like a grid (2026-07-08, user request) - overrides
   the Customizer's "partial rows center" flex design. The furniture page's ::before/::after
   placeholder slots (centering math helpers) must go too, or they'd occupy the first column. */
html body:is(.page-id-1580, .page-id-1647, .page-id-1654, .page-id-1661) .elementor-widget-woocommerce-products ul.products {
    justify-content: flex-start !important;
}
html body.page-id-1661 .elementor-widget-woocommerce-products ul.products::before,
html body.page-id-1661 .elementor-widget-woocommerce-products ul.products::after {
    content: none !important;
    display: none !important;
    flex: 0 0 0 !important;
}

/* Category product grids: breathing room between rows (2026-07-08) */
html body:is(.page-id-1580, .page-id-1647, .page-id-1654, .page-id-1661) .elementor-widget-woocommerce-products ul.products {
    row-gap: 56px !important;
}

/* === Customize-in-4-steps: refined stepper (2026-07-08) ===
   Was: thin stroke-only circles + scrappy 2px dotted grey connectors. Now: cream-filled
   circles with a fine double ring (inset white ring over the cream), Prata numerals in
   brand brown, and hairline solid connectors. */
html body .paraform-steps .pstep-num {
    width: 56px !important;
    height: 56px !important;
    background: #FFFFFF !important; /* clean white on the white section - no mismatched cream blob */
    border: 1px solid #C09872 !important;
    box-shadow: none !important;
    color: #8a6a3f !important;
}
html body .paraform-steps .pstep-num span {
    font-family: "Prata", "Sora", serif !important;
    font-size: 21px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}
html body .paraform-steps .pstep::after {
    border-top: 1px solid rgba(160, 124, 90, 0.38) !important;
    top: 28px !important;
}

/* Partner modal close X: anchor to the CARD corner, not its own widget wrapper (2026-07-08).
   Elementor gives every widget position:relative, which made the wrapper the containing block,
   pulling the X inward past the card padding. Static wrapper -> the absolute X measures from
   .pf-partner-card itself. */
.pf-partner-card .elementor-element-0f46c92,
.pf-partner-card .elementor-element-0f46c92 .elementor-widget-container {
    position: static !important;
}

/* RUSSIAN sentence-case (2026-07-08): Elementor widget typography applies text-transform:
   capitalize on 67 title/button/label rules across 10 templates, which Title-Cases Every Word
   in Russian («Создано Для Тех, Кто Ценит...»). The stored text is proper sentence case, so on
   RU we neutralize CAPITALIZE for those widget classes. English keeps its capitalize look, and
   UPPERCASE transforms anywhere are untouched (verified none share these classes). */
html body.translatepress-ru_RU .elementor-heading-title,
html body.translatepress-ru_RU .elementor-image-box-title,
html body.translatepress-ru_RU .elementor-icon-box-title,
html body.translatepress-ru_RU .elementor-icon-box-title a,
html body.translatepress-ru_RU .elementor-testimonial__name,
html body.translatepress-ru_RU .elementor-slide-heading,
html body.translatepress-ru_RU .elementor-slide-description,
html body.translatepress-ru_RU .elementor-field-group > label,
html body.translatepress-ru_RU .elementor-button {
    text-transform: none !important;
}

/* Home hero H1: force centre at all breakpoints (post-27.css only centres it below desktop,
   so long RU wrapping lines rendered left-aligned) (2026-07-09) */
.elementor-element-5c3a3ee2 { text-align: center !important; }




/* Category (gallery) hero content boxes (2026-07-09): same treatment as the home hero box
   (dba84cc). Data-level margin-left 4% already zeroed + align-self centered; here the box
   spans full width on desktop so the centered H1/subtitle sit on the true screen centre.
   1580 wall-panels=40d3b90a, 1647 decor=6b41acca, 1654 wall-clock=928285c, 1661 furniture=1f898dcf */
@media (min-width: 1025px) {
    .elementor-1580 .elementor-element.elementor-element-40d3b90a,
    .elementor-1647 .elementor-element.elementor-element-6b41acca,
    .elementor-1654 .elementor-element.elementor-element-928285c,
    .elementor-1661 .elementor-element.elementor-element-1f898dcf {
        width: 100% !important;
        --width: 100% !important;
        max-width: 100% !important;
    }
}

/* ============================================================================
   HEADER + DRAWER ported from the playground product-page prototype
   (2026-07-09, ParaformProduct.tsx: NavBurger / Drawer / DrawerItem / cart).
   Appended LAST so equal-specificity !important rules earlier in this file
   lose; Customizer (post 431) rules print after this file, so every selector
   here carries MORE specificity than its 431 counterpart.
   ========================================================================= */

/* ---- cart icon: Tabler shopping-bag outline (was eicon-cart-solid) ---- */
html body header.elementor-location-header .elementor-menu-cart__toggle_button .elementor-button-icon svg {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}
html body header.elementor-location-header .elementor-menu-cart__toggle_button .elementor-button-icon::before {
    content: "";
    display: block;
    width: 21px;
    height: 21px;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.331 8h11.339a2 2 0 0 1 1.977 2.304l-1.255 8.152a3 3 0 0 1 -2.966 2.544h-6.852a3 3 0 0 1 -2.965 -2.544l-1.255 -8.152a2 2 0 0 1 1.977 -2.304z'/%3E%3Cpath d='M9 11v-5a3 3 0 0 1 6 0v5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.331 8h11.339a2 2 0 0 1 1.977 2.304l-1.255 8.152a3 3 0 0 1 -2.966 2.544h-6.852a3 3 0 0 1 -2.965 -2.544l-1.255 -8.152a2 2 0 0 1 1.977 -2.304z'/%3E%3Cpath d='M9 11v-5a3 3 0 0 1 6 0v5'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: background-color 0.35s ease;
}
/* colour matrix mirrors the Customizer page treatments (the ::before cannot inherit
   the old svg fill rules): white at rest over dark heroes, dark when scrolled and on
   the light pages that force a dark header at rest */
html body header.elementor-location-header .elementor-menu-cart__toggle_button .elementor-button-icon::before {
    background-color: #ffffff;
}
html body header.elementor-location-header .elementor-element-602ab319.paraform-scrolled .elementor-menu-cart__toggle_button .elementor-button-icon::before {
    background-color: #111111 !important;
}
html body:is(.single-product, .woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .woocommerce-cart, .woocommerce-checkout, .page-id-19, .page-id-20, .page-id-1464, .page-id-4407) header.elementor-location-header .elementor-menu-cart__toggle_button .elementor-button-icon::before {
    background-color: #111111 !important;
}

/* ---- CATALOGUE: plain tracked text link, no pill / no scale (prototype) ---- */
html body header.elementor-location-header .elementor-element.elementor-element-46d231d4 {
    transform: none !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-46d231d4 .elementor-button {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 8px 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    transition: color 0.26s ease !important;
}
/* uppercase also on RU (full-caps element, exempt from the sentence-case rule) */
html body.translatepress-ru_RU header.elementor-location-header .elementor-element.elementor-element-46d231d4 .elementor-button {
    text-transform: uppercase !important;
}
/* prototype hides CATALOGUE on phones (visibleFrom xs) */
@media (max-width: 575px) {
    html body header.elementor-location-header .elementor-element.elementor-element-46d231d4 {
        display: none !important;
    }
}

/* ---- burger: 3 lines 24/14/19, left-aligned, extend + warm on hover ---- */
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]) {
    /* (0,6,3): must beat the Customizer's closed-state `background: transparent
       !important` at (0,6,1), which otherwise erases this middle line */
    background-image: linear-gradient(currentColor, currentColor) !important;
    background-size: 14px 2px !important;
    background-position: 10px 50% !important;
    background-repeat: no-repeat !important;
    transition: background-size 0.36s cubic-bezier(0.4, 0, 0.2, 1), color 0.32s ease !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"])::before,
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"])::after {
    left: 10px !important;
    transform: none !important;
    height: 2px !important;
    border-radius: 2px !important;
    transition: width 0.36s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.32s ease !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"])::before {
    top: calc(50% - 9px) !important;
    width: 24px !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"])::after {
    top: calc(50% + 7px) !important;
    width: 19px !important;
}
/* hover: lines extend only - NO colour change (user 2026-07-09: the playground's
   brown hover reads wrong over the site's dark heroes; colour stays scroll-state) */
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]):hover {
    background-size: 24px 2px !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"]):hover::before,
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle:not([aria-expanded="true"]):hover::after {
    width: 24px !important;
}

/* ---- open state: X sits top-right INSIDE the drawer, rotates + warms on hover ---- */
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle[aria-expanded="true"] {
    left: calc(min(360px, 86vw) - 62px) !important;
    right: auto !important;
    top: 16px !important;
    color: #1a1414 !important;
    background-image: none !important;
    transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1), color 0.26s ease !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle[aria-expanded="true"]:hover {
    transform: rotate(90deg) !important;
    color: #8a6a3f !important;
}

/* ---- drawer panel: warm page colour, 360px, prototype easing ---- */
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 nav.elementor-nav-menu--dropdown.elementor-nav-menu__container.elementor-nav-menu__container.elementor-nav-menu__container {
    /* no visible scrollbar: when a submenu expands, an appearing scrollbar used to
       shift the whole panel content left by its width (still scrollable by wheel/touch) */
    scrollbar-width: none !important;
    /* no scroll-anchoring: expanding/collapsing the Product submenu changes content
       height; anchoring could otherwise nudge the visible items (2026-07-09) */
    overflow-anchor: none !important;
    /* pin geometry: Elementor's dropdown JS can write inline top/height, and static
       100vh re-resolves when the mobile URL bar collapses (content nudged up a bit
       after any tap) - dvh tracks the real viewport */
    top: 0 !important;
    bottom: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: none !important;
    background: #f6f4ef !important;
    background-color: #f6f4ef !important;
    width: 360px !important;
    max-width: 86vw !important;
    padding: 72px 0 24px !important;
    box-shadow: 4px 0 30px rgba(30, 20, 10, 0.12) !important;
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.32s ease, visibility 0s linear 0.32s !important;
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 .elementor-menu-toggle[aria-expanded="true"] ~ nav.elementor-nav-menu--dropdown.elementor-nav-menu__container.elementor-nav-menu__container.elementor-nav-menu__container {
    width: 360px !important;
    max-width: 86vw !important;
    background: #f6f4ef !important;
    background-color: #f6f4ef !important;
    /* panel shadow + dimmed page behind (prototype overlay, 0.35) */
    box-shadow: 4px 0 30px rgba(30, 20, 10, 0.12), 0 0 0 100vmax rgba(30, 20, 10, 0.35) !important;
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.32s ease, visibility 0s linear 0s !important;
}

html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 nav.elementor-nav-menu--dropdown.elementor-nav-menu__container::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
}

/* ---- drawer items: serif 21 (Prata / Tenor Sans), grow-line + warm on hover ---- */
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 nav.elementor-nav-menu--dropdown ul.elementor-nav-menu {
    /* layout must be identical open AND closed: the Customizer's flex rules are
       open-state-scoped, so on close the list snapped back to block layout and
       the headings visibly reflowed while the panel was still sliding out */
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 2px !important;
    padding: 0 28px !important;
    margin: 0 !important;
    width: 100% !important;
    list-style: none !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item {
    font-family: "Prata", "Tenor Sans", serif !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item {
    font-size: 21px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.01em !important;
    word-spacing: normal !important;
    color: #111111 !important;
    padding: 11px 0 !important;
    transition: color 0.26s ease !important;
}
html body.translatepress-ru_RU header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item.elementor-item {
    font-family: "Tenor Sans", "Manrope", sans-serif !important;
}
/* hover: a short accent line grows in UNDER the label (user 2026-07-09) */
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item {
    position: relative !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 22px;
    height: 1.5px;
    border-radius: 2px;
    background: #c09872;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item:hover {
    color: #8a6a3f !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item:hover::before {
    transform: scaleX(1);
}
/* sub-items: small + light, warm on hover, prototype indent */
html body header.elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu {
    padding-left: 28px !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-sub-item,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-sub-link {
    font-size: 14px !important;
    font-weight: 300 !important;
    padding: 7px 0 !important;
    transition: color 0.26s ease !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-sub-item:hover,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-sub-link:hover {
    color: #8a6a3f !important;
}

/* ============================================================================
   Product page mobile/tablet safety clamp (2026-07-09): the theme fixes
   .woocommerce-page .content-area at width:1180px/90%, and any grid/flex
   min-content blowout makes the gallery run past the viewport (user screenshot:
   giant image on phone). Clamp every step of the chain to the viewport and
   give the page its own gutters.
   ========================================================================= */
@media (max-width: 991px) {
    html body.single-product #primary.content-area {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    html body.single-product #main,
    html body.single-product div.product,
    html body.single-product .pf-sum,
    html body.single-product .pf-sum .images,
    html body.single-product .pf-sum .summary,
    html body.single-product #beegraphy-viewer,
    html body.single-product .pf-gal,
    html body.single-product .pf-gal-main {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        float: none !important;
    }
    /* NOT width:100% - the full-bleed negative margins need width:auto, or the box
       merely shifts 16px left and leaves a matching gap on the right */
    html body.single-product .pf-details {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        float: none !important;
    }
    html body.single-product .pf-sum > * { min-width: 0 !important; }
    html body.single-product .pf-gal-main {
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }
    /* full-bleed details recomputed against the clamped container */
    html body.single-product .pf-details {
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: calc(50vw - 50%) !important;
        padding-right: calc(50vw - 50%) !important;
    }
}

/* ── drawer polish to match the playground reference exactly (2026-07-09) ──
   no hairline separators between rows; Catalogue visible at every width
   (the Customizer hides it >=1025px because the header shows CATALOGUE - the
   playground shows both); footer (EN/RU + contacts) injected by the header
   mu-plugin as .paraform-drawer-footer and pinned to the panel bottom. */
html body header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > ul.elementor-nav-menu > li {
    border-bottom: 0 !important;
}
@media (min-width: 1025px) {
    html body #menu-1-559c56d2 li.menu-item-1674,
    html body #menu-2-559c56d2 li.menu-item-1674 {
        display: list-item !important;
    }
}
html body header.elementor-location-header .elementor-element.elementor-element-559c56d2 nav.elementor-nav-menu--dropdown ul.elementor-nav-menu {
    flex: 1 0 auto !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer {
    border-top: 1px solid #e7e3dd;
    margin-top: 16px;
    padding: 20px 28px 0;
    flex: 0 0 auto;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a {
    font-size: 13px;
    letter-spacing: 0.06em;
    color: #5b5755 !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: color 220ms ease;
}
/* the Elementor nav-menu widget paints dropdown links with a white hover FILL
   (post-149 widget setting) - pin color AND background in every state */
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a:hover,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a:focus,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a:active {
    background: transparent !important;
    background-color: transparent !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a:hover,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a:focus {
    color: #1a1414 !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-langs a.is-current {
    color: #1a1414 !important;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer .pf-df-line,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer a.pf-df-line {
    display: block;
    font-size: 13px;
    font-weight: 300;
    color: #5b5755 !important;
    margin: 0 0 4px;
    text-decoration: none !important;
    background: transparent !important;
    cursor: pointer;
    transition: color 220ms ease;
}
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer a.pf-df-line:hover,
html body header.elementor-location-header nav.elementor-nav-menu--dropdown .paraform-drawer-footer a.pf-df-line:focus {
    color: #1a1414 !important;
    background: transparent !important;
}

/* ============================================================
   Cart line configuration block (Beegraphy items)
   The parameters render as ONE quiet horizontal "spec line" - a
   workshop-ticket readout (tiny letterspaced label, light value) -
   instead of WooCommerce's stacked grey dl. Below it, a small
   sliders-glyph text link back to the configurator.
   ============================================================ */
.woocommerce dl.variation {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 6px;
    margin: 10px 0 0;
    padding: 0;
    border: 0;
}
.woocommerce dl.variation dt,
.woocommerce dl.variation dd {
    float: none !important;
    margin: 0;
    padding: 0;
    border: 0;
    display: inline-block;
}
.woocommerce dl.variation dt {
    font-family: "Sora", sans-serif;
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #8A7B7B;
    margin-right: 7px;
}
.woocommerce dl.variation dd {
    font-family: "Sora", sans-serif;
    font-size: 13px;
    font-weight: 300;
    letter-spacing: 0.01em;
    color: #1A1414;
    margin-right: 26px;
}
.woocommerce dl.variation dd:last-child { margin-right: 0; }
.woocommerce dl.variation dd p { display: inline; margin: 0; }

/* "Change configuration" - quiet configurator-vocabulary link */
.pf-edit-config {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-family: "Sora", sans-serif;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1A1414;
    text-decoration: none;
    transition: color .18s ease;
}
.pf-edit-config svg { flex: 0 0 auto; transition: transform .25s ease; }
.pf-edit-config span {
    border-bottom: 1px solid rgba(26, 20, 20, 0.25);
    padding-bottom: 2px;
    transition: border-color .18s ease;
}
.pf-edit-config:hover { color: #8a6a3f; }
.pf-edit-config:hover span { border-color: currentColor; }
.pf-edit-config:hover svg { transform: rotate(90deg); }
.pf-edit-config:focus-visible { outline: 1px solid #8a6a3f; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .pf-edit-config svg { transition: none; }
    .pf-edit-config:hover svg { transform: none; }
}

/* ============================================================
   BLOCKS CART (/cart/ = wp:woocommerce/cart): configuration rows
   as the same workshop-ticket spec line + tightened vertical rhythm.
   ============================================================ */
/* item_data rows -> one wrapping spec line */
.wp-block-woocommerce-cart ul.wc-block-components-product-details {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 6px;
    margin: 10px 0 0 !important;
    padding: 0 !important;
}
.wp-block-woocommerce-cart .wc-block-components-product-details li {
    display: inline-flex !important;
    align-items: baseline;
    margin: 0 26px 0 0 !important;
    padding: 0 !important;
}
.wp-block-woocommerce-cart .wc-block-components-product-details li:last-child { margin-right: 0 !important; }
.wp-block-woocommerce-cart .wc-block-components-product-details__name {
    font-family: "Sora", sans-serif !important;
    font-size: 9px !important;
    font-weight: 400 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: #8A7B7B !important;
    margin-right: 7px !important;
}
.wp-block-woocommerce-cart .wc-block-components-product-details__value {
    font-family: "Sora", sans-serif !important;
    font-size: 13px !important;
    font-weight: 300 !important;
    letter-spacing: 0.01em !important;
    color: #1A1414 !important;
}
/* Vertical rhythm: name / spec line / change link / qty sit in a tidy stack */
.wp-block-woocommerce-cart .wc-block-cart-item__wrap { padding: 2px 0 !important; }
.wp-block-woocommerce-cart .wc-block-components-product-name { margin-bottom: 0 !important; }
.wp-block-woocommerce-cart .wc-block-cart-item__wrap .pf-edit-config { margin: 14px 0 18px !important; }
.wp-block-woocommerce-cart .wc-block-cart-item__quantity { margin-top: 0 !important; }
.wp-block-woocommerce-cart td.wc-block-cart-item__product { padding-top: 24px !important; padding-bottom: 24px !important; }

/* Side cart drawer: compact "change" beside/below the item name */
.pf-edit-config--mini {
    display: inline-block;
    margin: 2px 0 0 0;
    font-size: 9px;
    letter-spacing: 0.14em;
    gap: 0;
}
.pf-edit-config--mini span { border: 0; }
.elementor-menu-cart__main .pf-edit-config--mini {
    display: block;
    margin-top: 4px;
}
/* Drawer variation dl: VERTICAL spec list - one "Label: value" pair per line.
   The dd value is wrapped in a <p> that inherits the theme paragraph size (~16px)
   - force it down explicitly. */
.elementor-menu-cart__main dl.variation {
    display: grid;
    grid-template-columns: max-content 1fr;
    align-items: baseline;
    column-gap: 6px;
    row-gap: 3px;
    margin: 8px 0 0;
}
.elementor-menu-cart__main dl.variation dt {
    font-size: 8px;
    margin: 0;
    float: none;
    grid-column: 1;
}
.elementor-menu-cart__main dl.variation dd {
    font-size: 9px !important;
    margin: 0;
    float: none;
    grid-column: 2;
}
.elementor-menu-cart__main dl.variation dd p {
    font-size: 9px !important;
    line-height: 1.4 !important;
    display: inline !important;
    margin: 0 !important;
}

/* Change-configuration label: full text on cart/checkout pages, short "Change" in the drawer */
.pf-edit-config .pf-ec-short { display: none; }
.elementor-menu-cart__main .pf-edit-config .pf-ec-full { display: none; }
.elementor-menu-cart__main .pf-edit-config .pf-ec-short {
    display: inline;
    border-bottom: 1px solid rgba(26, 20, 20, 0.25);
    padding-bottom: 1px;
}
/* Beat the product-name cell's "a { font-size:14px !important; 700 }" rule.
   display:flex + fit-content puts Change on its own line under the name. */
.elementor-menu-cart__container .elementor-menu-cart__product-name a.pf-edit-config,
.elementor-menu-cart__main .pf-edit-config {
    display: flex;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 9px !important;
    font-weight: 400 !important;
    letter-spacing: 0.14em;
    gap: 0;
    margin-top: 4px;
    color: #8A7B7B !important;
    text-transform: uppercase;
}
.elementor-menu-cart__container .elementor-menu-cart__product-name a.pf-edit-config:hover,
.elementor-menu-cart__main .pf-edit-config:hover { color: #8a6a3f !important; }
.elementor-menu-cart__main .pf-edit-config svg { display: none; }

/* Burger 3rd (middle) line reinforcement for the two forced-dark-header pages
   (contact 1464, partner 4407). The middle line is a background-image gradient on
   the toggle; a `background: transparent !important` shorthand can reset it. These
   page-scoped rules re-assert it at (0,7,3) so nothing page-specific can win, and
   pin the line dark (#111) to match the dark burger those pages force. 2026-07-09 */
html body.page-id-1464 header.elementor-location-header .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]),
html body.page-id-4407 header.elementor-location-header .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]) {
    background-image: linear-gradient(#111111, #111111) !important;
    background-size: 14px 2px !important;
    background-position: 10px 50% !important;
    background-repeat: no-repeat !important;
}

/* ── about-us (52) header at rest = gallery-hero treatment (2026-07-10) ──
   Since the redesign the about hero is a dark full-bleed image like home and the
   category pages, but the Customizer still groups 52 with the light pages 19/20 and
   forces DARK header items over a transparent pill - the cart (and friends) read
   black on the dark hero. At rest everything goes white; the rules are gated with
   :not(.paraform-scrolled) so the scrolled white-pill state keeps its dark items. */
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 {
    background-color: transparent !important;
    box-shadow: none !important;
}
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 a.elementor-item,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 a.elementor-button,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 .elementor-button-text,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-current,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-sep,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-target {
    color: #FFFFFF !important;
}
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]) {
    color: #FFFFFF !important;
}
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"])::before,
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"])::after {
    background-color: #FFFFFF !important;
}
html body.page-id-52 header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-menu-cart__toggle_button .elementor-button-icon::before {
    background-color: #FFFFFF !important;
}

/* Related / upsell product images: hairline border so the card reads against the cream bg (2026-07-10) */
body.single-product .related ul.products li.product img,
body.single-product .up-sells ul.products li.product img {
    border: 1px solid rgba(26, 20, 20, 0.08);
    box-sizing: border-box;
}

/* ── product-category / product-tag archives: dark header at rest (2026-07-10) ──
   /product-category/* pages are light WC grids but never got the dark-header
   treatment (only /shop/ and single-product did), so the at-rest white items
   vanished. Same recipe as the other light pages: white pill + dark items;
   the scrolled state is already dark-on-white so no gating needed. */
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319 .elementor-element-6d1f894 {
    background-color: #FFFFFF !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06) !important;
}
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 a.elementor-item,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 a.elementor-button,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-6d1f894 .elementor-button-text,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-current,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-sep,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .paraform-lang-toggle .lang-target {
    color: #111111 !important;
}
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]) {
    color: #111111 !important;
}
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"])::before,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319:not(.paraform-scrolled) .elementor-element-559c56d2.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"])::after {
    background-color: #111111 !important;
}
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-menu-cart__toggle_wrapper svg,
html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-menu-cart__toggle_wrapper i {
    color: #111111 !important;
    fill: #111111 !important;
}
/* tablet/mobile: outer bar white, inner transparent (same as the other light pages) */
@media (max-width: 1024px) {
    html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319 {
        background-color: #FFFFFF !important;
        box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06) !important;
    }
    html body:is(.tax-product_cat, .tax-product_tag) header.elementor-location-header .elementor-element-602ab319 .elementor-element-6d1f894 {
        background-color: transparent !important;
        box-shadow: none !important;
    }
}


/* ============================================================
   Category-page product grids (1580/1647/1654/1661): unify hover to the
   CATALOGUE pattern (2026-07-13). Serving full-size originals changed the img
   class (attachment-woocommerce_thumbnail -> attachment-full), which killed the
   old class-based crop; and the legacy category cross-fade overlay was 1/1
   while the new products' overlay is 4/5. Make front image + overlay BOTH 4/5.
   ============================================================ */
:is(.page-id-1580, .page-id-1647, .page-id-1654, .page-id-1661) .elementor-widget-woocommerce-products ul.products li.product .woocommerce-LoopProduct-link img {
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    object-position: center center !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 0 12px 0 !important;
    border-radius: 0 !important;
}
/* legacy (2026-05 products) overlay on category pages was 1/1 - align to 4/5 */
:is(.page-id-1580, .page-id-1647, .page-id-1654, .page-id-1661) ul.products li.product .woocommerce-LoopProduct-link::before {
    aspect-ratio: 4 / 5 !important;
}

/* Cart "Add Ons" grid: match the related-products look - uniform square tiles
   with the hairline border (full-size originals arrive at mixed natural ratios) (2026-07-13) */
.paraform-cart-addons ul.products li.product img {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    object-position: center center !important;
    width: 100% !important;
    height: auto !important;
    border: 1px solid rgba(26, 20, 20, 0.08);
    box-sizing: border-box;
    border-radius: 0 !important;
}

/* Category steps strip: titles in the heading serif (kept 2026-07-13) -
   Prata on EN, Tenor Sans on RU, matching the site's tier-1 pairing. */
html body .paraform-steps .pstep-title {
    font-family: "Prata", "Tenor Sans", serif !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
    font-size: 17px !important; /* widget base 16px + 1 */
    line-height: 1.35 !important;
}
@media (max-width: 767px) {
    html body .paraform-steps .pstep-title { font-size: 15px !important; } /* mobile base 14px + 1 */
}
html body.translatepress-ru_RU .paraform-steps .pstep-title {
    font-family: "Tenor Sans", "Manrope", sans-serif !important;
}

/* Footer menu links (Quick Links / Categories columns): light 300 - widget typography
   pushed them to 400. Footer-scoped so the header CATALOGUE (400) is unaffected.
   Hover: underline, matching the footer contact-line hover treatment. */
html body .elementor-location-footer nav.elementor-nav-menu--main a.elementor-item {
    font-weight: 300 !important;
    transition: color 0.15s ease !important;
}
html body .elementor-location-footer nav.elementor-nav-menu--main a.elementor-item:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    text-decoration-color: rgba(26, 20, 20, 0.28) !important; /* soft hairline, not full ink */
    text-decoration-thickness: 1px !important;
}

/* === Header EN/RU chip: hide on mobile + tablet (2026-07-14) ===
   The burger drawer already carries the EN/RU switch in its footer (.pf-df-langs),
   so the header chip is desktop-only. The extra .elementor-element class mirrors the
   customizer's placement selector and out-specifies its display:inline-flex !important. */
@media (max-width: 1024px) { /* var(--bp-lg) */
    html body header.elementor-location-header .elementor-element-6d1f894 .elementor-element.elementor-element-b1d70a4e,
    html body header.elementor-location-header .elementor-element-51261eaa .elementor-element.elementor-element-b1d70a4e {
        display: none !important;
    }
}

/* === Footer bottom bar on mobile (2026-07-14) ===
   Container fb07b41 is row + space-between + wrap with no mobile overrides, so the
   copyright line and the email/phone icon-list scattered on narrow screens (uneven
   gaps, phone number free to wrap mid-number). Stack everything left with even gaps. */
@media (max-width: 767px) { /* var(--bp-sm) */
    html body footer .elementor-element.elementor-element-fb07b41 {
        flex-direction: column !important;
        align-items: center !important;
        row-gap: 6px !important;
    }
    html body footer .elementor-element-1f3a740a ul.elementor-icon-list-items.elementor-inline-items {
        flex-direction: column !important;
        align-items: center !important;
        row-gap: 4px !important;
        margin-inline: 0 !important;
    }
    html body footer .elementor-element-1f3a740a ul.elementor-icon-list-items.elementor-inline-items li.elementor-icon-list-item {
        margin-inline: 0 !important;
        white-space: nowrap !important;
    }
    html body footer .elementor-element-1f3a740a ul.elementor-icon-list-items.elementor-inline-items li.elementor-icon-list-item::after {
        display: none !important; /* inline-list separator has no place in a stack */
    }
}

/* === Drawer footer v2 (2026-07-14): EN/RU pair removed on owner request ===
   The drawer's language row is the English/Русский wrap; the small EN/RU links are
   gone from the mu-plugin injection. This backstop hides them for cached pages too. */
html body header.elementor-location-header .paraform-drawer-footer .pf-df-langs {
    display: none !important;
}

/* === Mobile/tablet header: cart back to the right edge (2026-07-14) ===
   The EN/RU chip is hidden <=1024 now, and its margin-left:auto was what pushed the
   cart to the right side of the bar. Give the cart its own push. Extra
   .elementor-element class beats the customizer's margin-left:0.5rem !important. */
@media (max-width: 1024px) { /* var(--bp-lg) */
    html body header.elementor-location-header .elementor-element-6d1f894 .elementor-element.elementor-element-a01bdcd,
    html body header.elementor-location-header .elementor-element-51261eaa .elementor-element.elementor-element-a01bdcd {
        margin-left: auto !important;
        align-self: center !important;
    }
}
/* Phone tier: logo + cart sit on a 3% bottom margin (customizer pair rule); the burger
   toggle had none and rendered a few px lower. Same lift so all three align. */
@media (max-width: 767px) { /* var(--bp-sm) */
    html body header.elementor-location-header .elementor-widget.elementor-widget-nav-menu .elementor-menu-toggle:not([aria-expanded="true"]) {
        margin-bottom: 3% !important;
        align-self: center !important;
    }
}
