/*
Theme Name: Rukodel Shop Child
Theme URI: https://rukodel.pro/
Description: Быстрая витрина WooCommerce для магазина «Рукодел». Дочерняя тема Astra без Lumise.
Author: Rukodel
Template: astra
Version: 0.4.50
Text Domain: rukodel-shop-child
*/

:root {
  --rs-primary: #7b2f86;
  --rs-primary-dark: #5b1f66;
  --rs-accent: #d7428f;
  --rs-soft: #f7f1f8;
  --rs-soft-2: #f1f4f8;
  --rs-text: #171525;
  --rs-muted: #6d6878;
  --rs-border: #e7e1e9;
  --rs-white: #fff;
  --rs-shadow: 0 14px 34px rgba(41, 27, 48, .08);
  --rs-radius: 22px;
  --rs-container: 1440px;
  --rs-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --rs-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --rs-font-button: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
body { color: var(--rs-text); background: #f7f8fb; font-family: var(--rs-font-body); }
input, textarea, select { font-family: var(--rs-font-body); }
h1, h2, h3, h4, h5, h6, .rs-brand__text strong, .rs-category-card__title { font-family: var(--rs-font-heading); }
button, .rs-btn, .rs-catalog-btn, .rs-search button { font-family: var(--rs-font-button); }
a { color: inherit; }
.rs-container { width: min(calc(100% - 40px), var(--rs-container)); margin: 0 auto; }

/* Header */
.rs-site-header { position: relative; z-index: 50; background: var(--rs-white); border-bottom: 1px solid var(--rs-border); }
.rs-promo { background: #f3eafb; font-size: 13px; }
.rs-promo__inner { min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 10px; color: #5c4565; }
.rs-header-main { display: grid; grid-template-columns: 250px minmax(260px, 1fr) auto; gap: 28px; align-items: center; min-height: 96px; }
.rs-brand { display: flex; align-items: center; gap: 12px; min-width: 0; text-decoration: none; }
/* Keep the WordPress logo link inside a single grid item, including in preview. */
.rs-brand__logo { min-width: 0; max-width: 100%; }
.rs-brand__logo .custom-logo-link { display: flex; align-items: center; max-width: 100%; line-height: 0; }
.rs-brand .custom-logo { display: block; width: auto; height: auto; max-width: min(210px, 100%); max-height: 64px; object-fit: contain; object-position: left center; }
.rs-brand > [hidden] { display: none !important; }
.rs-brand__fallback { min-width: 0; text-decoration: none; }
.rs-brand__logo a:focus-visible, .rs-brand__fallback:focus-visible { outline: 2px solid var(--rs-primary); outline-offset: 4px; border-radius: 3px; }
.rs-brand__fallback { display: flex; align-items: center; gap: 10px; }
.rs-brand__mark { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: linear-gradient(135deg, var(--rs-primary), var(--rs-accent)); color: #fff; font-weight: 900; font-size: 24px; }
.rs-brand__text strong { display: block; font-size: 25px; line-height: 1; letter-spacing: .01em; }
.rs-brand__text span { display: block; margin-top: 5px; font-size: 12px; color: var(--rs-muted); }
.rs-search { display: flex; min-width: 0; border: 1px solid var(--rs-border); border-radius: 14px; overflow: hidden; background: #fff; }
.rs-search input { min-width: 0; width: 100%; border: 0 !important; box-shadow: none !important; padding: 15px 18px !important; font-size: 14px; }
.rs-search button { border: 0; border-radius: 0; padding: 0 28px; background: var(--rs-primary); color: #fff; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.rs-search button:hover { background: var(--rs-primary-dark); }
.rs-header-actions { display: flex; align-items: center; gap: 22px; }
.rs-phone { display: flex; align-items: center; gap: 10px; text-decoration: none; white-space: nowrap; }
.rs-phone__icon, .rs-action__icon { width: 28px; height: 28px; display: grid; place-items: center; }
.rs-phone__icon svg, .rs-action__icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.rs-phone strong { display: block; font-size: 16px; }
.rs-phone small { display: block; margin-top: 3px; color: var(--rs-muted); font-size: 11px; }
.rs-action { position: relative; min-width: 58px; display: flex; flex-direction: column; align-items: center; gap: 5px; text-decoration: none; font-size: 11px; }
.rs-cart-count { position: absolute; top: -7px; right: 6px; min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 999px; background: var(--rs-accent); color: #fff; font-size: 11px; font-weight: 800; }
.rs-nav { border-top: 1px solid #f0ecf1; background: #fff; }
.rs-nav__inner { min-height: 64px; display: flex; align-items: center; gap: 26px; }
.rs-catalog-btn { min-width: 230px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 13px; border-radius: 12px; background: var(--rs-primary); color: #fff; text-decoration: none; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.rs-catalog-btn:hover { color: #fff; background: var(--rs-primary-dark); }
.rs-burger { width: 20px; height: 14px; position: relative; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; }
.rs-burger::after { content: ''; position: absolute; left: 0; right: 0; top: 4px; border-top: 2px solid currentColor; }
.rs-menu { flex: 1; margin: 0; padding: 0; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.rs-menu a { text-decoration: none; font-size: 14px; font-weight: 700; }
.rs-menu a:hover { color: var(--rs-primary); }
.rs-mobile-toggle { display: none; border: 0; background: transparent; padding: 8px; }

/* Front page */
.rs-main { padding: 42px 0 64px; }
.rs-hero { min-height: 500px; position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); align-items: stretch; border: 1px solid var(--rs-border); border-radius: 30px; background: linear-gradient(115deg, #fff 0%, #fff 48%, #f5edf8 100%); box-shadow: var(--rs-shadow); }
.rs-hero::before { content: ''; position: absolute; width: 260px; height: 260px; right: -70px; top: -90px; border-radius: 50%; background: rgba(215, 66, 143, .13); }
.rs-hero__content { position: relative; z-index: 2; padding: 74px 64px 62px; display: flex; flex-direction: column; justify-content: center; }
.rs-kicker { margin: 0 0 18px; color: var(--rs-accent); font-size: 14px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.rs-hero h1 { margin: 0; max-width: 760px; font-size: clamp(44px, 5vw, 76px); line-height: .98; letter-spacing: -.035em; }
.rs-hero__lead { max-width: 690px; margin: 26px 0 0; color: var(--rs-muted); font-size: 20px; line-height: 1.55; }
.rs-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
/* Disabled banner buttons remain in the live-preview DOM, but must not be visible on the storefront.
   Author styles on .rs-btn override the browser's default [hidden] rule, so enforce it explicitly. */
.rs-buttons > [hidden] { display: none !important; }
.rs-btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0 25px; border: 1px solid var(--rs-primary); border-radius: 13px; color: var(--rs-primary); text-decoration: none; font-weight: 850; transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease; }
.rs-btn:hover { transform: translateY(-1px); }
.rs-btn--filled, .rs-btn--primary { background: var(--rs-primary); color: #fff; box-shadow: 0 12px 24px rgba(123, 47, 134, .2); }
.rs-btn--filled:hover, .rs-btn--primary:hover { color: #fff; background: var(--rs-primary-dark); }
.rs-btn--outline { background: transparent; color: var(--rs-primary); }
.rs-btn--outline:hover { background: var(--rs-primary); color: #fff; }
.rs-btn--soft { border-color: transparent; background: var(--rs-soft); color: var(--rs-primary); }
.rs-btn--soft:hover { background: #eadced; color: var(--rs-primary-dark); }
.rs-btn--link { min-height: auto; padding: 10px 6px; border: 0; border-radius: 0; background: transparent; color: var(--rs-primary); text-decoration: underline; text-underline-offset: 4px; box-shadow: none; }
.rs-btn--link:hover { color: var(--rs-primary-dark); }
.rs-hero__visual { position: relative; z-index: 1; min-height: 420px; display: grid; place-items: center; padding: 45px; }
.rs-hero__collage { width: min(100%, 520px); aspect-ratio: 1 / .82; position: relative; }
.rs-hero__card { position: absolute; overflow: hidden; border-radius: 26px; background: #fff; box-shadow: 0 24px 55px rgba(50, 31, 58, .14); }
.rs-hero__card--a { left: 0; top: 11%; width: 59%; height: 70%; transform: rotate(-5deg); }
.rs-hero__card--b { right: 2%; top: 0; width: 49%; height: 57%; transform: rotate(6deg); }
.rs-hero__card--c { right: 5%; bottom: 0; width: 56%; height: 43%; transform: rotate(-2deg); }
.rs-hero__card img { width: 100%; height: 100%; object-fit: cover; }
.rs-hero__placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(135deg, #f6e7f0, #eee8f6); font-size: 64px; }
.rs-hero__full { display: none; position: relative; z-index: 2; width: 100%; overflow: hidden; border-radius: inherit; background: #f5edf8; }
.rs-hero__full-link { display: block; width: 100%; color: inherit; text-decoration: none; }
.rs-hero__full-image { display: block; width: 100%; height: auto; }
.rs-hero__full-image--mobile { display: none; }
.rs-hero__full-placeholder { min-height: 360px; place-items: center; padding: 40px; color: var(--rs-muted); font-size: 18px; text-align: center; background: linear-gradient(135deg, #f6e7f0, #eee8f6); }
.rs-hero__full-placeholder:not([hidden]) { display: grid; }
.rs-hero--full { min-height: 0; display: block; border: 0; background: transparent; }
.rs-hero--full::before, .rs-hero--full > .rs-hero__content, .rs-hero--full > .rs-hero__visual { display: none; }
.rs-hero--full > .rs-hero__full { display: block; }

/* Editable rotating hero banners */
.rs-hero-slider{display:none;position:relative;width:100%;overflow:hidden;border-radius:inherit;background:#f5edf8}
.rs-hero--slider{display:block;min-height:0;border:0;background:transparent}
.rs-hero--slider::before,.rs-hero--slider>.rs-hero__content,.rs-hero--slider>.rs-hero__visual,.rs-hero--slider>.rs-hero__full{display:none}
.rs-hero--slider>.rs-hero-slider{display:block}
.rs-hero-slider__track{position:relative;width:100%;aspect-ratio:auto;min-height:0;overflow:hidden}
.rs-hero-slide{position:absolute;inset:0;display:block!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s ease}
.rs-hero-slide.is-active{position:relative;inset:auto;opacity:1;visibility:visible;pointer-events:auto;z-index:2}
.rs-hero-slide__picture,.rs-hero-slide__picture img{position:relative;inset:auto;display:block;width:100%;height:auto}
.rs-hero-slide__picture img{max-width:100%;max-height:none;object-fit:contain;object-position:center}
.rs-hero-slide__content{position:relative;z-index:2;width:100%;height:100%;min-height:420px;display:flex;align-items:center;padding:48px 64px}
.rs-hero-slide--left .rs-hero-slide__content{justify-content:flex-start}
.rs-hero-slide--center .rs-hero-slide__content{justify-content:center;text-align:center}
.rs-hero-slide--right .rs-hero-slide__content{justify-content:flex-end}
.rs-hero-slide__copy{width:min(48%,610px);padding:30px 34px;border:1px solid rgba(255,255,255,.48);border-radius:22px;background:rgba(255,255,255,.76);box-shadow:0 18px 46px rgba(38,25,43,.12);backdrop-filter:blur(7px)}
.rs-hero-slide--center .rs-hero-slide__copy{display:flex;align-items:center;flex-direction:column}
.rs-hero-slide__kicker{margin:0 0 12px;color:var(--rs-accent);font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.rs-hero-slide h1,.rs-hero-slide h2{max-width:620px;margin:0;font-size:clamp(34px,4vw,58px);line-height:1.03;letter-spacing:-.03em}
.rs-hero-slide__lead{max-width:580px;margin:17px 0 0;color:var(--rs-muted);font-size:18px;line-height:1.48}
.rs-hero-slide--light .rs-hero-slide__copy{border-color:rgba(255,255,255,.2);background:rgba(31,22,35,.67);color:#fff}
.rs-hero-slide--light .rs-hero-slide__kicker,.rs-hero-slide--light .rs-hero-slide__lead{color:#fff}
.rs-hero-slide--light .rs-btn--outline{border-color:#fff;color:#fff}
.rs-hero-slide--light .rs-btn--outline:hover{background:#fff;color:var(--rs-primary)}
.rs-hero-slide__buttons{margin-top:22px}
.rs-hero-slider__arrow{position:absolute;z-index:5;top:50%;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(255,255,255,.86);color:var(--rs-primary);font-size:31px;line-height:1;box-shadow:0 8px 24px rgba(38,25,43,.15);transform:translateY(-50%);cursor:pointer}
.rs-hero-slider__arrow:hover{background:#fff;color:var(--rs-primary-dark)}
.rs-hero-slider__arrow--prev{left:16px}.rs-hero-slider__arrow--next{right:16px}
.rs-hero-slider__dots{position:absolute;z-index:5;left:50%;bottom:15px;display:flex;gap:8px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.76);transform:translateX(-50%);backdrop-filter:blur(6px)}
.rs-hero-slider__dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#b8aabe;cursor:pointer}
.rs-hero-slider__dot.is-active{width:24px;border-radius:999px;background:var(--rs-primary)}
.rs-hero-slider.is-single .rs-hero-slider__arrow,.rs-hero-slider.is-single .rs-hero-slider__dots{display:none}
@media(prefers-reduced-motion:reduce){.rs-hero-slide{transition:none}}

.rs-section { margin-top: 34px; padding: 38px; border: 1px solid var(--rs-border); border-radius: var(--rs-radius); background: #fff; box-shadow: 0 10px 28px rgba(42, 32, 46, .05); }
.rs-section__head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.rs-section__title { margin: 0; font-size: 34px; letter-spacing: -.02em; }
.rs-section__title-link { color: inherit; text-decoration: none; }
.rs-section__title-link:hover,
.rs-section__title-link:focus-visible { color: var(--rs-primary); text-decoration: none; }
.rs-section__title-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 3px; }
.rs-section__intro { margin: 8px 0 0; color: var(--rs-muted); }
.rs-section__link { color: var(--rs-primary); font-weight: 800; text-decoration: none; white-space: nowrap; }
.rs-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rs-category-card { min-height: 190px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; border: 1px solid var(--rs-border); border-radius: 19px; background: linear-gradient(145deg, #fff, #f6f0f8); text-decoration: none; }
.rs-category-card:hover { transform: translateY(-3px); box-shadow: var(--rs-shadow); }
.rs-category-card__image { position: absolute; top: 0; right: 0; width: 55%; height: 100%; object-fit: cover; opacity: .92; mask-image: linear-gradient(to left, #000 55%, transparent); }
.rs-category-card__icon { position: absolute; top: 22px; right: 22px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 16px; background: rgba(255,255,255,.88); font-size: 26px; }
.rs-category-card__title { position: relative; z-index: 2; max-width: 70%; font-size: 20px; font-weight: 850; }
.rs-category-card__count { position: relative; z-index: 2; margin-top: 6px; color: var(--rs-muted); font-size: 13px; }

.rs-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.rs-product-card { position: relative; overflow: hidden; border: 1px solid var(--rs-border); border-radius: 18px; background: #fff; }
.rs-product-card__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 4; overflow: hidden; background: #fff; }
.rs-product-card__media img { display: block; width: 100%; height: 100%; margin: 0; padding: 8px; object-fit: contain; object-position: center; background: #fff; transform: none; transition: none; }
.rs-product-card:hover .rs-product-card__media img { transform: none; }
.rs-sale-badge { position: absolute; top: 13px; left: 13px; z-index: 2; padding: 7px 10px; border-radius: 999px; background: #fff; color: var(--rs-accent); font-size: 12px; font-weight: 850; box-shadow: 0 5px 15px rgba(0,0,0,.08); }
.rs-product-card__body { padding: 17px; }
.rs-product-card__title { min-height: 48px; margin: 0; font-size: 16px; line-height: 1.45; }
.rs-product-card__title a { text-decoration: none; }
.rs-product-card__price { min-height: 28px; margin-top: 11px; color: var(--rs-text); font-size: 18px; font-weight: 850; }
.rs-product-card__price del { color: #999; font-size: 14px; font-weight: 500; }
.rs-product-card__price ins { text-decoration: none; }
.rs-product-card__button { width: 100%; margin-top: 14px !important; display: flex !important; justify-content: center; border-radius: 11px !important; background: var(--rs-primary) !important; color: #fff !important; font-weight: 800 !important; }

.rs-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 34px; }
.rs-benefit { min-height: 135px; padding: 23px; border: 1px solid var(--rs-border); border-radius: 18px; background: #fff; }
.rs-benefit__icon { width: 58px; height: 58px; display: grid; place-items: center; overflow: hidden; border-radius: 16px; background: var(--rs-soft); font-size: 27px; }
.rs-benefit__emoji { line-height: 1; }
.rs-benefit__media { width: 100%; height: 100%; display: block; object-fit: contain; }
.rs-benefit__media[hidden], .rs-benefit__emoji[hidden] { display: none !important; }
.rs-benefit strong { display: block; margin-top: 14px; font-size: 17px; }
.rs-benefit span { display: block; margin-top: 5px; color: var(--rs-muted); font-size: 13px; line-height: 1.5; }
.rs-empty { padding: 28px; border-radius: 16px; background: var(--rs-soft-2); color: var(--rs-muted); text-align: center; }

/* WooCommerce */
.woocommerce .ast-container { max-width: var(--rs-container); }
.woocommerce ul.products li.product { padding: 0 0 18px; border: 1px solid var(--rs-border); border-radius: 18px; overflow: hidden; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-left: 16px; margin-right: 16px; }
.woocommerce ul.products li.product .button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt { background: var(--rs-primary); border-radius: 10px; }
.woocommerce ul.products li.product .button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover { background: var(--rs-primary-dark); }
.woocommerce span.onsale { min-width: auto; min-height: auto; line-height: 1; padding: 8px 11px; border-radius: 999px; background: var(--rs-accent); }

/* Footer */
.rs-footer { margin-top: 20px; border-top: 1px solid var(--rs-border); background: #fff; }
.rs-footer__inner { min-height: 130px; display: flex; align-items: center; justify-content: space-between; gap: 30px; color: var(--rs-muted); }
.rs-footer strong { color: var(--rs-text); }
.rs-footer a { text-decoration: none; }
.rs-footer__links { display: flex; flex-wrap: wrap; gap: 20px; }

/* 404 */
.rs-404 { min-height: 60vh; display: grid; place-items: center; padding: 70px 20px; }
.rs-404__card { width: min(100%, 850px); padding: 65px; border: 1px solid var(--rs-border); border-radius: 28px; background: linear-gradient(135deg, #fff, #f8eef8); text-align: center; box-shadow: var(--rs-shadow); }
.rs-404 h1 { margin: 0; font-size: clamp(50px, 8vw, 100px); }

@media (max-width: 1150px) {
  .rs-header-main { grid-template-columns: 210px 1fr auto; gap: 16px; }
  .rs-phone { display: none; }
  .rs-menu { gap: 13px; }
  .rs-menu a { font-size: 13px; }
  .rs-category-grid, .rs-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .rs-container { width: min(calc(100% - 24px), var(--rs-container)); }
  .rs-header-main { grid-template-columns: 1fr auto; min-height: 76px; }
  .rs-search { grid-column: 1 / -1; order: 3; margin-bottom: 14px; }
  .rs-brand__text span { display: none; }
  .rs-nav__inner { min-height: 58px; }
  .rs-mobile-toggle { display: inline-flex; }
  .rs-catalog-btn { min-width: 180px; }
  .rs-menu { display: none; position: absolute; left: 12px; right: 12px; top: calc(100% + 1px); padding: 14px; border: 1px solid var(--rs-border); border-radius: 14px; background: #fff; box-shadow: var(--rs-shadow); flex-direction: column; align-items: stretch; }
  .rs-menu.is-open { display: flex; }
  .rs-menu a { display: block; padding: 10px; }
  .rs-hero { grid-template-columns: 1fr; }
  .rs-hero__content { padding: 52px 34px 25px; }
  .rs-hero__visual { min-height: 340px; }
  .rs-category-grid, .rs-product-grid, .rs-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 580px) {
  .rs-promo { display: none; }
  .rs-brand .custom-logo { max-height: 52px; }
  .rs-brand__text strong { font-size: 21px; }
  .rs-header-actions { gap: 9px; }
  .rs-action { min-width: 46px; }
  .rs-action span:last-child { display: none; }
  .rs-search button { padding: 0 17px; }
  .rs-catalog-btn { min-width: 0; flex: 1; }
  .rs-main { padding-top: 18px; }
  .rs-hero { min-height: 0; border-radius: 22px; }
  .rs-hero__content { padding: 40px 24px 20px; }
  .rs-hero h1 { font-size: 42px; }
  .rs-hero__lead { font-size: 16px; }
  .rs-hero__visual { min-height: 285px; padding: 22px; }
  .rs-hero--full.has-mobile-banner .rs-hero__full-image--desktop { display: none; }
  .rs-hero--full.has-mobile-banner .rs-hero__full-image--mobile { display: block; }
  .rs-hero-slide__content{min-height:430px;align-items:flex-end;padding:24px 18px 48px}
  .rs-hero-slide__copy{width:100%;padding:22px 20px;border-radius:18px}
  .rs-hero-slide h1,.rs-hero-slide h2{font-size:34px}
  .rs-hero-slide__lead{font-size:15px}
  .rs-hero-slider__arrow{width:38px;height:38px;font-size:27px}
  .rs-hero-slider__arrow--prev{left:8px}.rs-hero-slider__arrow--next{right:8px}
  .rs-hero-slider__dots{bottom:10px}
  .rs-section { padding: 24px 18px; }
  .rs-section__head { align-items: flex-start; flex-direction: column; }
  .rs-section__title { font-size: 28px; }
  .rs-category-grid, .rs-product-grid, .rs-benefits { grid-template-columns: 1fr; }
  .rs-footer__inner { padding: 28px 0; align-items: flex-start; flex-direction: column; }
  .rs-404__card { padding: 42px 22px; }
}

/* =========================================================
   Rukodel Shop 0.3.1 — product wrapper alignment
   The single-product page now uses Astra's contained no-sidebar wrapper,
   matching Rukodel Gift. Do not force a viewport-wide content layout here.
   ========================================================= */
body.single-product .site-content {
    padding: 42px 0 72px;
    background: #fafafe;
}

body.single-product .site-content > .ast-container {
    max-width: 1440px;
    margin-inline: auto;
}

body.single-product #secondary {
    display: none !important;
}

body.single-product .woocommerce-breadcrumb {
    margin: 0 0 22px;
    color: var(--rs-muted);
    font-size: 13px;
}

body.single-product .woocommerce-breadcrumb a {
    color: var(--rs-primary);
    text-decoration: none;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0 0 !important;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border: 2px solid transparent;
    border-radius: 10px;
    background: #fff;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
    border-color: var(--rs-primary);
}

@media (max-width: 580px) {
    body.single-product .site-content {
        padding: 24px 0 48px;
    }

    body.single-product .woocommerce-product-gallery .flex-control-thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Поля и элементы управления */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce input[type="password"],
.woocommerce textarea,
.woocommerce select {
    border-color: var(--rs-border) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
    border-color: var(--rs-primary) !important;
    outline: 3px solid color-mix(in srgb, var(--rs-primary) 14%, transparent) !important;
    outline-offset: 1px;
}

/* Единые основные кнопки WooCommerce */
body.woocommerce-page .woocommerce a.button,
body.woocommerce-page .woocommerce button.button,
body.woocommerce-page .woocommerce input.button,
body.woocommerce-page .woocommerce #respond input#submit,
body.woocommerce-page .woocommerce .checkout-button,
body.woocommerce-page .woocommerce #place_order,
body.single-product .single_add_to_cart_button,
body.single-product .woocommerce-message a.button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-checkout #place_order,
body.woocommerce-page .wc-block-components-button,
body.woocommerce-page .wp-element-button {
    min-height: 46px !important;
    padding: 12px 22px !important;
    border: 1px solid var(--rs-primary) !important;
    border-radius: 11px !important;
    background: var(--rs-primary) !important;
    background-color: var(--rs-primary) !important;
    background-image: none !important;
    color: #fff !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    text-decoration: none !important;
    box-shadow: 0 9px 22px color-mix(in srgb, var(--rs-primary) 20%, transparent) !important;
    transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}

body.woocommerce-page .woocommerce a.button:hover,
body.woocommerce-page .woocommerce button.button:hover,
body.woocommerce-page .woocommerce input.button:hover,
body.woocommerce-page .woocommerce #respond input#submit:hover,
body.woocommerce-page .woocommerce .checkout-button:hover,
body.woocommerce-page .woocommerce #place_order:hover,
body.single-product .single_add_to_cart_button:hover,
body.single-product .woocommerce-message a.button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-page .wc-block-components-button:hover,
body.woocommerce-page .wp-element-button:hover {
    transform: translateY(-1px);
    border-color: var(--rs-primary-dark) !important;
    background: var(--rs-primary-dark) !important;
    background-color: var(--rs-primary-dark) !important;
    background-image: none !important;
    color: #fff !important;
    box-shadow: 0 13px 28px color-mix(in srgb, var(--rs-primary) 26%, transparent) !important;
}

/* Кнопки товара не должны слипаться */
body.single-product .summary form.cart {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 12px !important;
}

body.single-product .summary form.cart .quantity,
body.single-product .summary form.cart .button {
    margin: 0 !important;
}

/* Архивы категорий: компактнее заголовок, фото 3:4 */
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
    padding: 24px 28px !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #ffffff 0%, var(--rs-soft) 100%) !important;
}

body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_tag .woocommerce-products-header__title {
    font-size: clamp(30px, 3.2vw, 42px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em !important;
}

body.post-type-archive-product ul.products li.product a img,
body.tax-product_cat ul.products li.product a img,
body.tax-product_tag ul.products li.product a img {
    aspect-ratio: 3 / 4 !important;
    object-fit: contain !important;
    background: #fff !important;
}

body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_tag ul.products li.product .button {
    background: var(--rs-primary) !important;
    background-image: none !important;
    border-color: var(--rs-primary) !important;
    color: #fff !important;
}

body.post-type-archive-product ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_tag ul.products li.product .button:hover {
    background: var(--rs-primary-dark) !important;
    border-color: var(--rs-primary-dark) !important;
}

/* Корзина и оформление */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title {
    color: var(--rs-text) !important;
    font-size: clamp(34px, 4vw, 54px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.035em !important;
}

.woocommerce-form-coupon-toggle .woocommerce-info {
    border-color: var(--rs-border) !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: var(--rs-text) !important;
}

.woocommerce-form-coupon-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info .showcoupon {
    color: var(--rs-primary) !important;
    font-weight: 800 !important;
}

/* Lumise: кнопка возврата в цвете бренда */
.rg-lumise-return {
    background: var(--rs-primary) !important;
}

.rg-lumise-return:hover,
.rg-lumise-return:focus {
    background: var(--rs-primary-dark) !important;
    outline-color: color-mix(in srgb, var(--rs-primary) 22%, transparent) !important;
}

/* Служебные изображения категорий на главной задаются только вручную */
.rg-quick-card__fallback {
    color: var(--rs-primary);
    background: var(--rs-soft);
}

@media (max-width: 620px) {
    body.post-type-archive-product .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_tag .woocommerce-products-header {
        padding: 18px 20px !important;
    }

    body.post-type-archive-product .woocommerce-products-header__title,
    body.tax-product_cat .woocommerce-products-header__title,
    body.tax-product_tag .woocommerce-products-header__title {
        font-size: 30px !important;
    }

    body.single-product .summary form.cart .button {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }
}




/* =========================================================
   Version 2.0.0 — compact WB-like single product layout
   ========================================================= */
body.single-product .site-content > .ast-container,
body.single-product .site-main,
body.single-product .woocommerce-notices-wrapper + .product,
body.single-product div.product {
    max-width: 1440px;
}

body.single-product div.product .rg-product-top {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
    gap: clamp(34px, 4vw, 72px);
    align-items: start;
    width: 100%;
    margin-bottom: clamp(36px, 5vw, 72px);
}

body.single-product div.product .rg-product-top > .woocommerce-product-gallery,
body.single-product div.product .rg-product-top > .summary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.single-product div.product .rg-product-top > .woocommerce-product-gallery {
    position: sticky;
    top: 112px;
    align-self: start;
}

body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image {
    border-radius: var(--rs-radius);
    overflow: hidden;
    background: #fff;
}

/*
 * Hover-zoom WooCommerce отключён в 0.3.4: при первом наведении
 * скрипт создавал служебное изображение и дважды пересчитывал размеры,
 * что давало заметный скачок. Увеличение по клику (lightbox) сохранено.
 */
body.single-product .woocommerce-product-gallery__image img:not(.zoomImg) {
    width: 100% !important;
    height: auto !important;
    max-height: 720px;
    object-fit: contain;
    background: #fff;
    transition: opacity .18s ease;
}

body.single-product .woocommerce-product-gallery__image img.zoomImg {
    display: none !important;
}

body.single-product .woocommerce-product-gallery.rg-gallery-image-updated .woocommerce-product-gallery__image:first-child img {
    animation: rgProductImageIn .22s ease;
}

@keyframes rgProductImageIn {
    from { opacity: .65; transform: scale(.995); }
    to { opacity: 1; transform: scale(1); }
}

body.single-product div.product .summary.entry-summary {
    padding-top: 2px;
}

body.single-product div.product .summary .product_title {
    margin: 8px 0 14px !important;
    font-size: clamp(34px, 3.2vw, 52px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
}

body.single-product div.product .summary > .price,
body.single-product div.product .summary .woocommerce-variation-price .price {
    display: block;
    margin: 0 0 22px !important;
    color: var(--rs-text) !important;
    font-size: clamp(28px, 2.4vw, 38px) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
}

body.single-product div.product .summary .stock {
    margin: 0 0 18px;
    font-weight: 700;
}

body.single-product div.product form.cart.variations_form {
    display: block !important;
    width: 100%;
    margin: 0 !important;
}

body.single-product div.product table.variations {
    display: block;
    width: 100%;
    margin: 0 0 16px !important;
    border: 0 !important;
}

body.single-product div.product table.variations tbody,
body.single-product div.product table.variations tr,
body.single-product div.product table.variations th,
body.single-product div.product table.variations td {
    display: block;
    width: 100%;
    border: 0 !important;
}

body.single-product div.product table.variations tr {
    margin: 0 0 20px;
}

body.single-product div.product table.variations th.label {
    padding: 0 0 9px !important;
    color: var(--rs-text);
    font-size: 15px;
    font-weight: 800;
    text-align: left;
}

body.single-product div.product table.variations td.value {
    padding: 0 !important;
}

body.single-product div.product table.variations select {
    width: 100%;
    min-height: 46px;
    background-color: #fff;
}

body.single-product div.product .variable-items-wrapper,
body.single-product div.product .tawcvs-swatches,
body.single-product div.product .woo-variation-swatches-variable-item-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product div.product .variable-item,
body.single-product div.product .swatch {
    min-width: 46px;
    min-height: 42px;
    margin: 0 !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
}

body.single-product div.product .variable-item.selected,
body.single-product div.product .swatch.selected {
    border-color: var(--rs-primary) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--rs-primary) 18%, transparent) !important;
}

body.single-product div.product .variable-item.disabled,
body.single-product div.product .swatch.disabled {
    opacity: .38 !important;
    cursor: not-allowed !important;
}

body.single-product div.product .reset_variations {
    display: inline-block;
    margin-top: 9px;
    color: var(--rs-muted);
    font-size: 13px;
}

body.single-product div.product .single_variation_wrap {
    margin-top: 8px;
}

body.single-product div.product .woocommerce-variation-description {
    margin: 0 0 12px;
    color: var(--rs-muted);
}

body.single-product div.product .woocommerce-variation-availability {
    margin: 0 0 12px;
}

body.single-product div.product .woocommerce-variation-add-to-cart,
body.single-product div.product form.cart:not(.variations_form) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: stretch !important;
}

body.single-product div.product .quantity {
    flex: 0 0 auto;
}

body.single-product div.product .quantity .qty {
    min-width: 70px;
    min-height: 46px;
}

body.single-product div.product .single_add_to_cart_button {
    min-width: 170px;
    flex: 1 1 180px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

body.single-product div.product .product_meta {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--rs-border);
    color: var(--rs-muted);
    font-size: 14px;
    line-height: 1.65;
}

body.single-product .rg-product-overview {
    clear: both;
    width: 100%;
    margin: 0 0 26px;
    padding: clamp(22px, 3vw, 36px);
    border: 1px solid var(--rs-border);
    border-radius: var(--rs-radius);
    background: #fff;
    box-shadow: 0 8px 24px rgba(57, 24, 54, .045);
}

body.single-product .rg-product-overview .woocommerce-product-details__short-description {
    margin: 0;
}

body.single-product .rg-product-overview h2,
body.single-product .rg-product-overview h3 {
    margin-top: 0;
}

body.single-product .rg-product-overview table {
    width: 100%;
    margin: 20px 0 0;
    border-collapse: collapse;
}

body.single-product .rg-product-overview th,
body.single-product .rg-product-overview td {
    padding: 13px 16px;
    border: 1px solid var(--rs-border);
    vertical-align: top;
}

body.single-product .woocommerce-tabs {
    clear: both;
    width: 100%;
}

body.single-product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 !important;
    margin: 0 0 18px !important;
    border-bottom: 1px solid var(--rs-border);
}

body.single-product .woocommerce-tabs ul.tabs::before {
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 13px 16px !important;
    color: var(--rs-muted) !important;
    font-weight: 800 !important;
    border-bottom: 3px solid transparent;
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
    color: var(--rs-text) !important;
    border-bottom-color: var(--rs-primary);
}

body.single-product .woocommerce-tabs .panel {
    padding: clamp(20px, 3vw, 34px) !important;
    border: 1px solid var(--rs-border);
    border-radius: var(--rs-radius);
    background: #fff;
}

@media (max-width: 980px) {
    body.single-product div.product .rg-product-top {
        grid-template-columns: minmax(0, 1fr) minmax(330px, .88fr);
        gap: 30px;
    }

    body.single-product div.product .rg-product-top > .woocommerce-product-gallery {
        top: 88px;
    }
}

@media (max-width: 760px) {
    body.single-product div.product .rg-product-top {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 30px;
    }

    body.single-product div.product .rg-product-top > .woocommerce-product-gallery {
        position: static;
    }

    body.single-product div.product .summary .product_title {
        font-size: 34px !important;
    }

    body.single-product div.product .summary > .price,
    body.single-product div.product .summary .woocommerce-variation-price .price {
        font-size: 28px !important;
    }

    body.single-product div.product .single_add_to_cart_button {
        width: 100% !important;
        flex-basis: 100%;
    }

    body.single-product .rg-product-overview {
        padding: 20px;
    }

    body.single-product .woocommerce-tabs ul.tabs {
        gap: 0;
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    body.single-product .woocommerce-tabs ul.tabs li a {
        white-space: nowrap;
        padding-inline: 12px !important;
    }
}

/* =========================================================
   Version 2.0.1 — prevent duplicate description in summary
   Astra or another compatibility layer can still print the native short
   description in the purchase column even after the WooCommerce hook is
   removed. The relocated copy below the top grid remains visible.
   ========================================================= */
body.single-product div.product .rg-product-top .summary .woocommerce-product-details__short-description {
    display: none !important;
}


/* =========================================================
   Version 2.0.2 — one compact recommendations block
   Six items on desktop, proportionally fewer on smaller screens.
   ========================================================= */
body.single-product .rg-product-recommendations {
    clear: both;
    width: 100%;
    margin: 0 0 clamp(28px, 4vw, 52px);
}

body.single-product .rg-product-recommendations__title {
    margin: 0 0 18px;
    color: var(--rs-text);
    font-size: clamp(26px, 2.2vw, 38px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

body.single-product .rg-product-recommendations__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.single-product .rg-product-recommendation {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--rs-border);
    border-radius: 13px;
    background: #fff;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

body.single-product .rg-product-recommendation:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--rs-primary) 26%, var(--rs-border));
    box-shadow: 0 10px 24px rgba(57, 24, 54, .08);
}

body.single-product .rg-product-recommendation__link {
    display: flex;
    height: 100%;
    color: inherit;
    text-decoration: none;
    flex-direction: column;
}

body.single-product .rg-product-recommendation__image-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: #fff;
}

body.single-product .rg-product-recommendation__image-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 6px;
    object-fit: contain;
    object-position: center;
    background: #fff;
    transform: none;
    transition: none;
}

body.single-product .rg-product-recommendation:hover .rg-product-recommendation__image-wrap img {
    transform: none;
}

body.single-product .rg-product-recommendation__sale {
    position: absolute;
    z-index: 2;
    top: 8px;
    left: 8px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #fff;
    color: var(--rs-text);
    box-shadow: 0 2px 8px rgba(23, 23, 41, .12);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

body.single-product .rg-product-recommendation__body {
    display: flex;
    min-height: 92px;
    padding: 10px 11px 12px;
    flex: 1 1 auto;
    flex-direction: column;
}

body.single-product .rg-product-recommendation__name {
    display: -webkit-box;
    overflow: hidden;
    min-height: 38px;
    margin: 0 0 7px;
    color: var(--rs-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.single-product .rg-product-recommendation__price {
    margin-top: auto;
    color: var(--rs-primary);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}

body.single-product .rg-product-recommendation__price del {
    margin-right: 4px;
    color: var(--rs-muted);
    font-size: 11px;
    font-weight: 500;
}

body.single-product .rg-product-recommendation__price ins {
    text-decoration: none;
}

@media (max-width: 1180px) {
    body.single-product .rg-product-recommendations__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    body.single-product .rg-product-recommendations__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 560px) {
    body.single-product .rg-product-recommendations__title {
        margin-bottom: 14px;
        font-size: 25px;
    }

    body.single-product .rg-product-recommendations__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body.single-product .rg-product-recommendation__body {
        min-height: 84px;
        padding: 9px 9px 10px;
    }

    body.single-product .rg-product-recommendation__name,
    body.single-product .rg-product-recommendation__price {
        font-size: 13px;
    }
}


/* =========================================================
   Rukodel Shop 0.3.2 — exact Astra product container fallback
   The original gift site stores its no-sidebar/contained layout in the
   database. This fallback keeps the product page centered even before or
   during Astra CSS regeneration.
   ========================================================= */
body.single-product .site-content > .ast-container {
    display: block !important;
    width: min(var(--rs-container), calc(100% - 48px)) !important;
    max-width: var(--rs-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.single-product #primary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product #secondary {
    display: none !important;
}

body.single-product .site-main,
body.single-product div.product,
body.single-product div.product .rg-product-top {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 767px) {
    body.single-product .site-content > .ast-container {
        width: min(var(--rs-container), calc(100% - 24px)) !important;
    }
}


/* =========================================================
   Rukodel Shop 0.3.5 — единая геометрия всего магазина
   Корзина, оформление, кабинет, каталог, поиск и обычные
   служебные страницы используют тот же центрированный контейнер,
   что шапка и карточка товара. Поддержаны классические шаблоны
   WooCommerce и современные Cart/Checkout Blocks.
   ========================================================= */

/* Фон и вертикальный ритм внутренних страниц магазина. */
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content,
body.woocommerce-account .site-content,
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body.search-results .site-content,
body.page:not(.home) .site-content {
    padding: 48px 0 72px;
    background: #f7f8fb;
}

/* Универсальный центрированный контейнер. */
body.woocommerce-cart .site-content > .ast-container,
body.woocommerce-checkout .site-content > .ast-container,
body.woocommerce-account .site-content > .ast-container,
body.post-type-archive-product .site-content > .ast-container,
body.tax-product_cat .site-content > .ast-container,
body.tax-product_tag .site-content > .ast-container,
body.search-results .site-content > .ast-container,
body.page:not(.home) .site-content > .ast-container {
    display: block !important;
    width: min(var(--rs-container), calc(100% - 48px)) !important;
    max-width: var(--rs-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Astra не должна сохранять ширину колонки под отсутствующий сайдбар. */
body.woocommerce-cart #primary,
body.woocommerce-checkout #primary,
body.woocommerce-account #primary,
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary,
body.search-results #primary,
body.page:not(.home) #primary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-cart #secondary,
body.woocommerce-checkout #secondary,
body.woocommerce-account #secondary,
body.post-type-archive-product #secondary,
body.tax-product_cat #secondary,
body.tax-product_tag #secondary,
body.search-results #secondary,
body.page:not(.home) #secondary {
    display: none !important;
}

/* Убираем вложенные ограничения Astra у страниц и блоков WooCommerce. */
body.woocommerce-cart article,
body.woocommerce-checkout article,
body.woocommerce-account article,
body.page:not(.home) article,
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content,
body.page:not(.home) .entry-content,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Заголовок и основная поверхность служебной страницы. */
body.woocommerce-cart .entry-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-account .entry-header {
    margin: 0 0 28px !important;
}

body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
    padding: 28px !important;
    border: 1px solid var(--rs-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--rs-shadow);
}

/* Современные блоки WooCommerce: корзина и checkout. */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wc-block-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-checkout .wc-block-checkout {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    min-width: 0 !important;
}

body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
    position: static;
}

body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-checkout__order-notes,
body.woocommerce-checkout .wc-block-checkout__contact-fields,
body.woocommerce-checkout .wc-block-checkout__shipping-fields,
body.woocommerce-checkout .wc-block-checkout__billing-fields,
body.woocommerce-checkout .wc-block-checkout__payment-method {
    border-color: var(--rs-border) !important;
}

/* Классическая корзина: товары слева, сумма справа. */
@media (min-width: 1051px) {
    body.woocommerce-cart .entry-content > .woocommerce,
    body.woocommerce-cart article .entry-content > .woocommerce {
        display: grid !important;
        grid-template-columns: minmax(0, 1.55fr) minmax(360px, .75fr) !important;
        gap: 30px !important;
        align-items: start !important;
    }

    body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper,
    body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-message,
    body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-info,
    body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-error,
    body.woocommerce-cart article .entry-content > .woocommerce > .woocommerce-notices-wrapper,
    body.woocommerce-cart article .entry-content > .woocommerce > .woocommerce-message,
    body.woocommerce-cart article .entry-content > .woocommerce > .woocommerce-info,
    body.woocommerce-cart article .entry-content > .woocommerce > .woocommerce-error {
        grid-column: 1 / -1 !important;
    }

    body.woocommerce-cart .woocommerce-cart-form {
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        float: none !important;
    }

    body.woocommerce-cart .cart-collaterals,
    body.woocommerce-cart .cart-collaterals .cart_totals {
        grid-column: 2 !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 !important;
        float: none !important;
    }
}

/* Корзина Block: управляемая двухколоночная сетка без прилипания к краю. */
@media (min-width: 981px) {
    body.woocommerce-cart .wc-block-cart {
        display: grid !important;
        grid-template-columns: minmax(0, 1.55fr) minmax(330px, .75fr) !important;
        gap: 34px !important;
        align-items: start !important;
    }

    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }
}

/* Кабинет: навигация и содержимое не выходят за центральную поверхность. */
body.woocommerce-account .woocommerce {
    width: 100%;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
    border: 1px solid var(--rs-border);
    border-radius: 16px;
    background: var(--rs-soft);
    overflow: hidden;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 8px;
    list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
}

body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: #fff;
    color: var(--rs-primary);
}

body.woocommerce-account form.login,
body.woocommerce-account form.register,
body.woocommerce-account form.lost_reset_password {
    max-width: 620px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 24px !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 16px !important;
    background: #fff;
}

/* Каталог, категории и результаты поиска используют всю полезную ширину. */
body.post-type-archive-product .woocommerce,
body.tax-product_cat .woocommerce,
body.tax-product_tag .woocommerce,
body.search-results .site-main {
    width: 100% !important;
    max-width: none !important;
}

@media (max-width: 980px) {
    body.woocommerce-cart .wc-block-cart {
        display: block !important;
    }

    body.woocommerce-cart .wc-block-cart__sidebar {
        margin-top: 24px !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce-MyAccount-content {
        float: none !important;
        width: 100% !important;
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        margin-top: 22px;
    }
}

@media (max-width: 767px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content,
    body.woocommerce-account .site-content,
    body.post-type-archive-product .site-content,
    body.tax-product_cat .site-content,
    body.tax-product_tag .site-content,
    body.search-results .site-content,
    body.page:not(.home) .site-content {
        padding: 24px 0 48px;
    }

    body.woocommerce-cart .site-content > .ast-container,
    body.woocommerce-checkout .site-content > .ast-container,
    body.woocommerce-account .site-content > .ast-container,
    body.post-type-archive-product .site-content > .ast-container,
    body.tax-product_cat .site-content > .ast-container,
    body.tax-product_tag .site-content > .ast-container,
    body.search-results .site-content > .ast-container,
    body.page:not(.home) .site-content > .ast-container {
        width: min(var(--rs-container), calc(100% - 24px)) !important;
    }

    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-account .entry-content {
        padding: 16px !important;
        border-radius: 16px;
    }
}


/* =========================================================
   Rukodel Shop 0.3.6 — единый адаптивный контейнер
   В этой дочерней теме header.php открывает #content напрямую,
   поэтому на обычных страницах Astra выводит #primary без
   промежуточного .ast-container. Центрируем именно фактический
   корневой блок контента и синхронизируем его с .rs-container.
   ========================================================= */

/* Полноширинный фон остаётся у #content, а полезная область меняет
   ширину точно так же, как шапка: максимум 1440px и по 20px по краям. */
body:not(.home):not(.single-product) .site-content > #primary,
body:not(.home):not(.single-product) .site-content > .content-area,
body:not(.home):not(.single-product) .site-content > main {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: var(--rs-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

/* Вариант на случай, если Astra снова добавит собственный контейнер. */
body:not(.home):not(.single-product) .site-content > .ast-container {
    display: block !important;
    width: 100% !important;
    max-width: var(--rs-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

body:not(.home):not(.single-product) .site-content > .ast-container > #primary {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Не даём старым правилам растягивать статью шире центральной области. */
body:not(.home):not(.single-product) #primary > .site-main,
body:not(.home):not(.single-product) #primary > .site-main > article,
body:not(.home):not(.single-product) #primary .entry-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Информационные страницы получают аккуратную поверхность, а не текст,
   начинающийся от самого края окна. WooCommerce-страницы имеют свои блоки. */
body.page:not(.home):not(.woocommerce-page) #primary > .site-main > article {
    padding: clamp(24px, 3vw, 42px) !important;
    border: 1px solid var(--rs-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--rs-shadow);
}

body.page:not(.home):not(.woocommerce-page) .entry-header {
    margin: 0 0 22px !important;
}

/* Корзина и оформление остаются карточками, но не прилипают к краям
   и не становятся шире шапки при изменении масштаба или окна. */
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    body:not(.home):not(.single-product) .site-content > #primary,
    body:not(.home):not(.single-product) .site-content > .content-area,
    body:not(.home):not(.single-product) .site-content > main,
    body:not(.home):not(.single-product) .site-content > .ast-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.page:not(.home):not(.woocommerce-page) #primary > .site-main > article,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content,
    body.woocommerce-account .entry-content {
        padding: 18px !important;
        border-radius: 16px;
    }
}


/* =========================================================
   Rukodel Shop 0.3.7 — раскрывающийся каталог в шапке
   ========================================================= */
.rs-nav__inner {
  position: relative;
}

.rs-catalog {
  position: relative;
  flex: 0 0 230px;
  min-width: 0;
}

.rs-catalog .rs-catalog-btn {
  width: 100%;
  min-width: 0;
  border: 0;
  font: inherit;
  cursor: pointer;
}

.rs-catalog-panel {
  position: absolute;
  z-index: 160;
  top: calc(100% + 10px);
  left: 0;
  width: min(860px, calc(100vw - 40px));
  max-height: min(620px, calc(100vh - 190px));
  overflow: auto;
  padding: 22px;
  border: 1px solid var(--rs-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(34, 22, 39, .18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.rs-catalog.is-open .rs-catalog-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.rs-catalog-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rs-border);
}

.rs-catalog-panel__head strong {
  font-size: 20px;
  line-height: 1.2;
}

.rs-catalog-panel__head a {
  color: var(--rs-primary);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.rs-catalog-panel__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px 26px;
}

.rs-catalog-group {
  min-width: 0;
}

.rs-catalog-group__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 9px;
  color: var(--rs-text);
  font-size: 15px;
  font-weight: 850;
  line-height: 1.3;
  text-decoration: none;
}

.rs-catalog-group__title:hover,
.rs-catalog-group__title:focus-visible {
  color: var(--rs-primary);
  background: var(--rs-soft);
}

.rs-catalog-group ul {
  margin: 7px 0 0;
  padding: 0 10px;
  list-style: none;
}

.rs-catalog-group li + li {
  margin-top: 5px;
}

.rs-catalog-group li a,
.rs-catalog-group__all {
  display: block;
  padding: 4px 0;
  color: var(--rs-muted);
  font-size: 13px;
  line-height: 1.35;
  text-decoration: none;
}

.rs-catalog-group li a:hover,
.rs-catalog-group__all:hover {
  color: var(--rs-primary);
}

.rs-catalog-group__empty {
  display: block;
  padding: 8px 10px;
  color: var(--rs-muted);
  font-size: 13px;
}

@media (max-width: 980px) {
  .rs-catalog {
    flex-basis: 190px;
  }

  .rs-catalog-panel {
    width: min(720px, calc(100vw - 24px));
  }

  .rs-catalog-panel__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .rs-catalog {
    flex: 1 1 auto;
  }

  .rs-catalog-panel {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 150px);
    padding: 16px;
    border-radius: 14px;
  }

  .rs-catalog-panel__head {
    align-items: flex-start;
  }

  .rs-catalog-panel__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}


/* =========================================================
   Rukodel Shop 0.4.2 — чистый каталог без элементов Astra
   ========================================================= */

/* Старая синяя кнопка прокрутки Astra не используется в интерфейсе Rukodel. */
#ast-scroll-top,
.ast-scroll-to-top-right,
.ast-scroll-to-top-left {
    display: none !important;
}

/* Карточки каталога: изображение всегда показывается целиком, без обрезки. */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.search-results ul.products {
    align-items: start;
}

body.post-type-archive-product ul.products li.product .astra-shop-thumbnail-wrap,
body.tax-product_cat ul.products li.product .astra-shop-thumbnail-wrap,
body.tax-product_tag ul.products li.product .astra-shop-thumbnail-wrap,
body.search-results ul.products li.product .astra-shop-thumbnail-wrap {
    width: 100% !important;
    aspect-ratio: 3 / 4 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.post-type-archive-product ul.products li.product .astra-shop-thumbnail-wrap > a,
body.tax-product_cat ul.products li.product .astra-shop-thumbnail-wrap > a,
body.tax-product_tag ul.products li.product .astra-shop-thumbnail-wrap > a,
body.search-results ul.products li.product .astra-shop-thumbnail-wrap > a {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.post-type-archive-product ul.products li.product .astra-shop-thumbnail-wrap img,
body.tax-product_cat ul.products li.product .astra-shop-thumbnail-wrap img,
body.tax-product_tag ul.products li.product .astra-shop-thumbnail-wrap img,
body.search-results ul.products li.product .astra-shop-thumbnail-wrap img,
body.post-type-archive-product ul.products li.product a img,
body.tax-product_cat ul.products li.product a img,
body.tax-product_tag ul.products li.product a img,
body.search-results ul.products li.product a img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 8px !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #fff !important;
    transform: none !important;
}

body.post-type-archive-product ul.products li.product:hover img,
body.tax-product_cat ul.products li.product:hover img,
body.tax-product_tag ul.products li.product:hover img,
body.search-results ul.products li.product:hover img {
    transform: none !important;
}

/* Пагинация оформлена в фирменном стиле вместо стандартных синих кнопок Astra. */
body.woocommerce nav.woocommerce-pagination {
    margin: 32px 0 8px !important;
    text-align: left !important;
}

body.woocommerce nav.woocommerce-pagination ul {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce nav.woocommerce-pagination ul li {
    float: none !important;
    margin: 0 !important;
    border: 0 !important;
}

body.woocommerce nav.woocommerce-pagination ul li a,
body.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 42px !important;
    height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 13px !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--rs-primary) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

body.woocommerce nav.woocommerce-pagination ul li a:hover,
body.woocommerce nav.woocommerce-pagination ul li span.current {
    border-color: var(--rs-primary) !important;
    background: var(--rs-primary) !important;
    color: #fff !important;
}

@media (max-width: 767px) {
    body.post-type-archive-product ul.products li.product .astra-shop-thumbnail-wrap,
    body.tax-product_cat ul.products li.product .astra-shop-thumbnail-wrap,
    body.tax-product_tag ul.products li.product .astra-shop-thumbnail-wrap,
    body.search-results ul.products li.product .astra-shop-thumbnail-wrap {
        aspect-ratio: 1 / 1.22 !important;
    }
}

/* =========================================================
   Rukodel Shop 0.4.3 — оригинальные пропорции фото каталога
   ========================================================= */

/*
 * В 0.4.2 контейнер уже использовал contain, но браузер получал квадратный,
 * физически обрезанный файл woocommerce_thumbnail. В 0.4.3 PHP отдаёт
 * medium_large без жёсткой обрезки. Эти правила окончательно нейтрализуют
 * размеры и crop-стили Astra на всех вариантах разметки каталога.
 */
body.post-type-archive-product ul.products li.product img.rukodel-catalog-image,
body.tax-product_cat ul.products li.product img.rukodel-catalog-image,
body.tax-product_tag ul.products li.product img.rukodel-catalog-image,
body.search-results ul.products li.product img.rukodel-catalog-image,
body.post-type-archive-product ul.products li.product img.attachment-medium_large,
body.tax-product_cat ul.products li.product img.attachment-medium_large,
body.tax-product_tag ul.products li.product img.attachment-medium_large,
body.search-results ul.products li.product img.attachment-medium_large {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 8px !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
    aspect-ratio: auto !important;
    background: #fff !important;
    transform: none !important;
}

/* Не позволяем Astra подменять фотографию фоновым crop-изображением. */
body.post-type-archive-product ul.products li.product .astra-shop-thumbnail-wrap,
body.tax-product_cat ul.products li.product .astra-shop-thumbnail-wrap,
body.tax-product_tag ul.products li.product .astra-shop-thumbnail-wrap,
body.search-results ul.products li.product .astra-shop-thumbnail-wrap {
    background-image: none !important;
}


/* =========================================================
   Rukodel Shop 0.4.4 — бесконечная подгрузка каталога
   ========================================================= */
body.rs-infinite-scroll-enabled .woocommerce-pagination {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.rs-infinite-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 92px;
    margin: 22px 0 8px;
    padding: 18px;
    color: var(--rs-muted);
    text-align: center;
}

.rs-infinite-loader__spinner {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border: 3px solid rgba(123, 47, 134, 0.18);
    border-top-color: var(--rs-primary);
    border-radius: 50%;
    animation: rs-infinite-spin 0.8s linear infinite;
}

.rs-infinite-loader__spinner[hidden] {
    display: none;
}

.rs-infinite-loader__retry {
    margin-left: 8px !important;
}

.rs-infinite-loader.is-complete {
    min-height: 56px;
    color: var(--rs-primary);
    font-weight: 700;
}

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

@media (prefers-reduced-motion: reduce) {
    .rs-infinite-loader__spinner {
        animation-duration: 1.8s;
    }
}


/* Каталожная карточка конкретной вариации ведёт в общий товар. */
.woocommerce ul.products li.product .rpm-catalog-variation-note {
    margin: 4px 16px 8px;
    color: var(--rs-primary);
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
}


/* =========================================================
   Version 0.4.7 — фирменный выбор вариаций без системного dropdown
   Основано на стабильной 0.4.4; макет главной и каталога не меняется.
   ========================================================= */
body.single-product div.product table.variations tr.rs-variation-buttons-ready select.rs-native-variation-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.single-product div.product .rs-variation-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    margin: 0;
    font-family: var(--rs-font-body) !important;
}

body.single-product div.product .rs-variation-option {
    appearance: none;
    -webkit-appearance: none;
    min-height: 46px;
    padding: 10px 18px;
    border: 1px solid var(--rs-border);
    border-radius: 12px;
    background: #fff;
    color: var(--rs-text);
    box-shadow: none;
    font-family: var(--rs-font-body) !important;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

body.single-product div.product .rs-variation-option:hover:not(:disabled),
body.single-product div.product .rs-variation-option:focus-visible {
    border-color: var(--rs-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rs-primary) 14%, transparent);
    outline: 0;
}

body.single-product div.product .rs-variation-option:active:not(:disabled) {
    transform: translateY(1px);
}

body.single-product div.product .rs-variation-option.is-selected {
    border-color: var(--rs-primary);
    background: var(--rs-primary);
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--rs-primary) 22%, transparent);
}

body.single-product div.product .rs-variation-option:disabled,
body.single-product div.product .rs-variation-option.is-disabled {
    border-color: var(--rs-border);
    background: #f5f3f6;
    color: var(--rs-muted);
    opacity: .48;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* Все элементы покупки используют шрифт, выбранный как основной для сайта. */
body.single-product div.product .summary,
body.single-product div.product .summary .product_title,
body.single-product div.product .summary .price,
body.single-product div.product .summary label,
body.single-product div.product .summary button,
body.single-product div.product .summary input,
body.single-product div.product .summary select,
body.single-product div.product .summary option,
body.single-product div.product .summary textarea,
body.single-product div.product .summary .reset_variations,
body.single-product div.product .summary .stock,
body.single-product div.product .summary .product_meta {
    font-family: var(--rs-font-body) !important;
}

body.single-product div.product .reset_variations {
    color: var(--rs-primary) !important;
    font-weight: 700;
    text-decoration: none;
}

body.single-product div.product .reset_variations:hover,
body.single-product div.product .reset_variations:focus {
    color: var(--rs-primary-dark) !important;
    text-decoration: underline;
}

@media (max-width: 620px) {
    body.single-product div.product .rs-variation-option {
        min-height: 44px;
        padding: 9px 14px;
        font-size: 15px;
    }
}

/* =========================================================
   Version 0.4.8 — чистая карточка и AJAX-корзина без перезагрузки
   Основано на стабильной 0.4.7.
   ========================================================= */

/* Astra добавляет поверх фото круглую служебную кнопку действия. В Rukodel
 * вся карточка и фирменная кнопка уже ведут в нужный товар, поэтому overlay
 * только мешает и создаёт ложное ощущение мгновенной покупки. */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product a.ast-on-card-button,
.woocommerce ul.products li.product .ast-card-action-tooltip,
.woocommerce ul.products li.product .ast-quick-view-trigger,
.woocommerce ul.products li.product .ast-select-options-trigger,
.woocommerce ul.products li.product .ast-add-to-cart-trigger,
.woocommerce ul.products li.product .ast-shop-card-action {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Единый шрифт WooCommerce во всех покупательских элементах. */
body.woocommerce-page .woocommerce,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error,
body.woocommerce-page .woocommerce button,
body.woocommerce-page .woocommerce input,
body.woocommerce-page .woocommerce select,
body.woocommerce-page .woocommerce textarea,
body.woocommerce-page .woocommerce label,
body.woocommerce-page .woocommerce table,
body.woocommerce-page .woocommerce .price,
body.woocommerce-page .woocommerce .stock,
body.woocommerce-page .woocommerce .product_meta {
    font-family: var(--rs-font-body) !important;
}

/* Красивое серверное уведомление остаётся резервом при отключённом JS. */
body.woocommerce-page .woocommerce-notices-wrapper {
    width: 100%;
    margin: 0 auto 24px;
}

body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
    position: relative;
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px 16px 64px !important;
    border: 1px solid color-mix(in srgb, var(--rs-primary) 26%, var(--rs-border)) !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #fff 0%, var(--rs-soft) 100%) !important;
    color: var(--rs-text) !important;
    box-shadow: 0 14px 34px rgba(41, 27, 48, .09) !important;
}

body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-error::before {
    top: 50% !important;
    left: 20px !important;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin: 0 !important;
    border-radius: 50%;
    background: var(--rs-primary);
    color: #fff !important;
    transform: translateY(-50%);
}

body.woocommerce-page .woocommerce-message .button,
body.woocommerce-page .woocommerce-info .button,
body.woocommerce-page .woocommerce-error .button {
    order: 2;
    margin-left: auto !important;
    white-space: nowrap;
}

/* AJAX-уведомление о добавлении в корзину. */
.rs-cart-toast[hidden] {
    display: none !important;
}

.rs-cart-toast {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 100000;
    width: min(560px, calc(100vw - 32px));
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 14px 16px;
    align-items: center;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--rs-primary) 28%, var(--rs-border));
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    color: var(--rs-text);
    font-family: var(--rs-font-body);
    box-shadow: 0 24px 70px rgba(38, 20, 45, .22);
    opacity: 0;
    transform: translateY(18px) scale(.98);
    transition: opacity .2s ease, transform .2s ease;
    backdrop-filter: blur(14px);
}

body.admin-bar .rs-cart-toast {
    bottom: 36px;
}

.rs-cart-toast.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.rs-cart-toast.is-error {
    border-color: #e3a4aa;
    background: #fffafb;
}

.rs-cart-toast__close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--rs-muted);
    font-family: var(--rs-font-body);
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}

.rs-cart-toast__close:hover,
.rs-cart-toast__close:focus-visible {
    background: var(--rs-soft);
    color: var(--rs-primary);
    outline: none;
}

.rs-cart-toast__image {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--rs-border);
    border-radius: 13px;
    background: #fff;
}

.rs-cart-toast__image:empty {
    display: none;
}

.rs-cart-toast__image img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
}

.rs-cart-toast__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-right: 28px;
}

.rs-cart-toast__title {
    color: var(--rs-primary);
    font-size: 17px;
    font-weight: 850;
    line-height: 1.25;
}

.rs-cart-toast.is-error .rs-cart-toast__title {
    color: #a12f3c;
}

.rs-cart-toast__name {
    color: var(--rs-text);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;
}

.rs-cart-toast__variation {
    color: var(--rs-muted);
    font-size: 13px;
    line-height: 1.35;
}

.rs-cart-toast__variation:empty {
    display: none;
}

.rs-cart-toast__actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rs-cart-toast__cart,
.rs-cart-toast__continue {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 190px;
    padding: 10px 16px;
    border-radius: 11px;
    font-family: var(--rs-font-body);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.rs-cart-toast__cart {
    border: 1px solid var(--rs-primary);
    background: var(--rs-primary);
    color: #fff;
    box-shadow: 0 9px 22px color-mix(in srgb, var(--rs-primary) 20%, transparent);
}

.rs-cart-toast__cart:hover,
.rs-cart-toast__cart:focus-visible {
    border-color: var(--rs-primary-dark);
    background: var(--rs-primary-dark);
    color: #fff;
    outline: none;
}

.rs-cart-toast__continue {
    border: 1px solid var(--rs-border);
    background: #fff;
    color: var(--rs-primary);
    box-shadow: none;
}

.rs-cart-toast__continue:hover,
.rs-cart-toast__continue:focus-visible {
    border-color: var(--rs-primary);
    background: var(--rs-soft);
    outline: none;
}

body.single-product .single_add_to_cart_button.rs-is-adding {
    cursor: wait !important;
    opacity: .72;
}

/* Кнопки рекомендаций в пустой корзине не должны возвращаться к синему Astra. */
body.woocommerce-cart .woocommerce .products li.product .button,
body.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-element-button {
    border-color: var(--rs-primary) !important;
    background: var(--rs-primary) !important;
    color: #fff !important;
}

body.woocommerce-cart .woocommerce .products li.product .button:hover,
body.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-element-button:hover {
    border-color: var(--rs-primary-dark) !important;
    background: var(--rs-primary-dark) !important;
    color: #fff !important;
}

@media (max-width: 620px) {
    body.woocommerce-page .woocommerce-message,
    body.woocommerce-page .woocommerce-info,
    body.woocommerce-page .woocommerce-error {
        align-items: flex-start;
        flex-direction: column;
        padding: 18px 16px 16px 56px !important;
    }

    body.woocommerce-page .woocommerce-message .button,
    body.woocommerce-page .woocommerce-info .button,
    body.woocommerce-page .woocommerce-error .button {
        width: 100%;
        margin: 8px 0 0 -40px !important;
    }

    .rs-cart-toast,
    body.admin-bar .rs-cart-toast {
        right: 12px;
        bottom: 12px;
        width: calc(100vw - 24px);
        grid-template-columns: 60px minmax(0, 1fr);
        padding: 14px;
        border-radius: 15px;
    }

    .rs-cart-toast__image {
        width: 60px;
        height: 60px;
    }

    .rs-cart-toast__actions {
        flex-direction: column;
    }

    .rs-cart-toast__cart,
    .rs-cart-toast__continue {
        width: 100%;
        flex-basis: auto;
    }
}

.rs-cart-toast.is-error {
    grid-template-columns: minmax(0, 1fr);
}

.rs-cart-toast.is-error .rs-cart-toast__content,
.rs-cart-toast.is-error .rs-cart-toast__actions {
    grid-column: 1 / -1;
}


/* =========================================================
   Rukodel Shop 0.4.10 — единое некропнутое фото во всех товарных карточках
   ========================================================= */
/*
 * Один и тот же товар может появляться в каталоге, поиске, на главной,
 * в «Новинках», «Акциях», рекомендациях, кросс-продажах и WooCommerce Blocks.
 * Во всех этих местах используем одинаковую рамку 3:4 и помещаем исходное
 * изображение целиком. Галерея карточки товара, корзинные миниатюры и баннер
 * намеренно не затрагиваются.
 */
.rs-product-card__media,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap,
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
body.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap,
body.single-product .rg-product-recommendation__image-wrap,
.wc-block-grid__product-image,
.wc-block-components-product-image,
.wp-block-woocommerce-product-collection .wc-block-components-product-image,
.wp-block-woocommerce-product-template .wc-block-components-product-image,
.wc-block-product-template .wc-block-components-product-image {
    position: relative;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    aspect-ratio: 3 / 4 !important;
    overflow: hidden !important;
    background: #fff !important;
}

.rs-product-card__media > img,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap img,
.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
.woocommerce-page ul.products li.product .woocommerce-loop-product__link > img,
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
body.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap img,
body.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__link > img,
body.single-product .rg-product-recommendation__image-wrap img,
.wc-block-grid__product-image img,
.wc-block-components-product-image img,
.wp-block-woocommerce-product-collection .wc-block-components-product-image img,
.wp-block-woocommerce-product-template .wc-block-components-product-image img,
.wc-block-product-template .wc-block-components-product-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 8px !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #fff !important;
    transform: none !important;
    transition: none !important;
}

/* Карточка без отдельного Astra-wrapper: само изображение сохраняет рамку 3:4. */
.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
.woocommerce-page ul.products li.product .woocommerce-loop-product__link > img,
body.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__link > img {
    aspect-ratio: 3 / 4 !important;
}

/* Отключаем увеличение фото во всех товарных подборках. */
.rs-product-card:hover img,
.woocommerce ul.products li.product:hover img,
.woocommerce-page ul.products li.product:hover img,
body.woocommerce ul.products li.product:hover img,
body.woocommerce-page ul.products li.product:hover img,
body.single-product .rg-product-recommendation:hover img,
.wc-block-grid__product:hover img,
.wc-block-product:hover img {
    transform: none !important;
}

/* WooCommerce Blocks иногда задаёт высоту через вложенную ссылку. */
.wc-block-grid__product-image > a,
.wc-block-components-product-image > a,
.wp-block-woocommerce-product-collection .wc-block-components-product-image > a,
.wp-block-woocommerce-product-template .wc-block-components-product-image > a,
.wc-block-product-template .wc-block-components-product-image > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}

@media (max-width: 767px) {
    .rs-product-card__media,
    .woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
    .woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap,
    body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
    body.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap,
    body.single-product .rg-product-recommendation__image-wrap,
    .wc-block-grid__product-image,
    .wc-block-components-product-image {
        aspect-ratio: 1 / 1.22 !important;
    }
}

/* =========================================================
   Rukodel Shop 0.4.11 — классическое оформление заказа
   Внешний вид синхронизирован с rukodel-gift.ru. Поля и переход
   со Checkout Block на shortcode выполняет отдельный плагин
   Rukodel Checkout, чтобы тема не содержала бизнес-логику.
   ========================================================= */
body.rukodel-classic-checkout .site-content {
    padding-top: 42px;
    background: #f7f8fb;
}

body.rukodel-classic-checkout .entry-header {
    margin: 0 0 30px !important;
}

body.rukodel-classic-checkout .entry-title {
    margin: 0 !important;
    color: var(--rs-text);
    font-family: var(--rs-font-heading);
    font-size: clamp(38px, 4vw, 62px);
    font-weight: 500;
    line-height: 1.06;
    letter-spacing: -.035em;
}

body.rukodel-classic-checkout .entry-content {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

body.rukodel-classic-checkout .woocommerce-form-coupon-toggle {
    display: none !important;
}

body.rukodel-classic-checkout form.checkout_coupon {
    width: min(760px, 100%);
}

body.rukodel-classic-checkout form.checkout_coupon {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    margin: 0 0 24px !important;
    padding: 20px !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 18px !important;
    background: #fff;
    box-shadow: var(--rs-shadow);
}

body.rukodel-classic-checkout form.checkout_coupon > p {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.rukodel-classic-checkout form.checkout_coupon > p:first-child {
    display: block !important;
}

body.rukodel-classic-checkout form.checkout_coupon .form-row-first {
    grid-column: 1;
}

body.rukodel-classic-checkout form.checkout_coupon .form-row-last {
    grid-column: 2;
}

body.rukodel-classic-checkout form.checkout_coupon input.input-text {
    min-height: 48px !important;
    border: 1px solid #ddd5e1 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 12px 14px !important;
    color: var(--rs-text) !important;
    font-family: var(--rs-font-body) !important;
    font-size: 15px !important;
    box-shadow: none !important;
}

body.rukodel-classic-checkout form.checkout_coupon input.input-text:focus {
    border-color: var(--rs-primary) !important;
    box-shadow: 0 0 0 3px rgba(123, 47, 134, .11) !important;
    outline: none !important;
}

body.rukodel-classic-checkout form.checkout_coupon button {
    min-height: 48px;
    margin: 0 !important;
    padding: 0 24px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--rs-primary) !important;
    color: #fff !important;
    font-family: var(--rs-font-button) !important;
    font-size: 14px !important;
    font-weight: 850 !important;
    white-space: nowrap;
    box-shadow: 0 10px 20px rgba(123, 47, 134, .18);
}

body.rukodel-classic-checkout form.checkout_coupon button:hover {
    background: var(--rs-primary-dark) !important;
}

body.rukodel-classic-checkout form.checkout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .82fr);
    column-gap: 58px;
    row-gap: 0;
    align-items: start;
    width: 100%;
}

body.rukodel-classic-checkout form.checkout > .woocommerce-NoticeGroup,
body.rukodel-classic-checkout form.checkout > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

body.rukodel-classic-checkout #customer_details {
    grid-column: 1;
    grid-row: 2 / span 2;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

body.rukodel-classic-checkout #customer_details::after {
    display: none !important;
}

body.rukodel-classic-checkout #customer_details .col-1,
body.rukodel-classic-checkout #customer_details .col-2 {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.rukodel-classic-checkout #customer_details .col-2 {
    margin-top: 24px !important;
}

body.rukodel-classic-checkout .woocommerce-shipping-fields {
    display: none !important;
}

body.rukodel-classic-checkout .woocommerce-billing-fields,
body.rukodel-classic-checkout .woocommerce-additional-fields {
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid var(--rs-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--rs-shadow);
}

body.rukodel-classic-checkout .woocommerce-billing-fields > h3,
body.rukodel-classic-checkout .woocommerce-additional-fields > h3,
body.rukodel-classic-checkout #order_review_heading {
    margin: 0 0 26px !important;
    padding: 0 0 18px !important;
    border-bottom: 1px solid var(--rs-border);
    color: var(--rs-text);
    font-family: var(--rs-font-heading);
    font-size: 23px;
    font-weight: 750;
    line-height: 1.25;
}

body.rukodel-classic-checkout .woocommerce-billing-fields__field-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0 24px;
}

body.rukodel-classic-checkout .form-row {
    float: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
}

body.rukodel-classic-checkout .form-row-first,
body.rukodel-classic-checkout .form-row-last {
    width: calc(50% - 12px) !important;
}

body.rukodel-classic-checkout .form-row-wide {
    width: 100% !important;
}

body.rukodel-classic-checkout .form-row label {
    display: block;
    margin: 0 0 8px;
    color: var(--rs-text);
    font-family: var(--rs-font-body);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.4;
}

body.rukodel-classic-checkout .form-row label .required {
    color: var(--rs-accent);
}

body.rukodel-classic-checkout .input-text,
body.rukodel-classic-checkout select,
body.rukodel-classic-checkout .select2-container .select2-selection--single {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    border: 1px solid #ddd5e1 !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--rs-text) !important;
    font-family: var(--rs-font-body) !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

body.rukodel-classic-checkout input.input-text,
body.rukodel-classic-checkout textarea.input-text,
body.rukodel-classic-checkout select {
    padding: 12px 14px !important;
}

body.rukodel-classic-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 9px 42px 9px 14px !important;
    line-height: 28px !important;
}

body.rukodel-classic-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    top: 11px !important;
    right: 10px !important;
}

body.rukodel-classic-checkout .input-text:focus,
body.rukodel-classic-checkout select:focus,
body.rukodel-classic-checkout .select2-container--focus .select2-selection--single,
body.rukodel-classic-checkout .select2-container--open .select2-selection--single {
    border-color: var(--rs-primary) !important;
    box-shadow: 0 0 0 3px rgba(123, 47, 134, .11) !important;
    outline: none !important;
}

body.rukodel-classic-checkout #billing_state_field .input-text {
    background: #f6f3f7 !important;
}

body.rukodel-classic-checkout #order_comments {
    min-height: 116px !important;
    resize: vertical;
    overflow: hidden;
}

body.rukodel-classic-checkout #order_review_heading {
    grid-column: 2;
    grid-row: 2;
    justify-self: stretch;
    align-self: stretch;
    float: none !important;
    clear: none !important;
    display: flex !important;
    align-items: center;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 78px;
    margin: 0 !important;
    padding: 24px 30px 18px !important;
    border: 1px solid var(--rs-border);
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: linear-gradient(180deg, #fff 0%, #fcfafc 100%);
    box-shadow: 0 12px 28px rgba(41, 27, 48, .06);
    box-sizing: border-box !important;
}

body.rukodel-classic-checkout #order_review {
    grid-column: 2;
    grid-row: 3;
    justify-self: stretch;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 30px 30px !important;
    border: 1px solid var(--rs-border);
    border-top: 0;
    border-radius: 0 0 20px 20px;
    background: #fff;
    box-shadow: var(--rs-shadow);
}

body.rukodel-classic-checkout #order_review table.shop_table {
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: transparent !important;
}

body.rukodel-classic-checkout #order_review table.shop_table th,
body.rukodel-classic-checkout #order_review table.shop_table td {
    padding: 18px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--rs-border) !important;
    background: transparent !important;
    color: var(--rs-text);
    font-family: var(--rs-font-body);
    vertical-align: top;
}

body.rukodel-classic-checkout #order_review table.shop_table thead th {
    padding-top: 0 !important;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
}

body.rukodel-classic-checkout #order_review table.shop_table .product-total,
body.rukodel-classic-checkout #order_review table.shop_table tfoot td {
    text-align: right;
    white-space: nowrap;
}

body.rukodel-classic-checkout #order_review table.shop_table tfoot th {
    font-weight: 600;
}

body.rukodel-classic-checkout #order_review table.shop_table .order-total th,
body.rukodel-classic-checkout #order_review table.shop_table .order-total td {
    padding-top: 24px !important;
    border-bottom: 0 !important;
    font-size: 21px;
    font-weight: 850;
}

body.rukodel-classic-checkout .rsc-checkout-product {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

body.rukodel-classic-checkout .rsc-checkout-product__image {
    display: block;
    width: 64px !important;
    height: 64px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--rs-border);
    border-radius: 10px;
    background: #fff;
    object-fit: contain;
}

body.rukodel-classic-checkout .rsc-checkout-product__name {
    min-width: 0;
    font-weight: 700;
    line-height: 1.42;
}

body.rukodel-classic-checkout #order_review .variation {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3px 5px;
    margin: 7px 0 0 78px;
    color: var(--rs-muted);
    font-size: 12px;
}

body.rukodel-classic-checkout #order_review .variation dt,
body.rukodel-classic-checkout #order_review .variation dd {
    float: none;
    margin: 0;
    padding: 0;
}

body.rukodel-classic-checkout #order_review .variation p {
    margin: 0;
}

body.rukodel-classic-checkout #payment {
    margin: 24px 0 0 !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #faf8fb !important;
}

body.rukodel-classic-checkout #payment ul.payment_methods {
    padding: 20px !important;
    border-bottom: 1px solid var(--rs-border) !important;
}

body.rukodel-classic-checkout #payment div.payment_box {
    border-radius: 10px;
    background: #fff;
}

body.rukodel-classic-checkout #payment .place-order {
    padding: 20px !important;
}

body.rukodel-classic-checkout #place_order {
    width: 100% !important;
    min-height: 52px;
    margin: 10px 0 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--rs-primary) !important;
    color: #fff !important;
    font-family: var(--rs-font-button) !important;
    font-size: 16px !important;
    font-weight: 850 !important;
    box-shadow: 0 12px 22px rgba(123, 47, 134, .2);
}

body.rukodel-classic-checkout #place_order:hover {
    background: var(--rs-primary-dark) !important;
}

body.rukodel-classic-checkout .woocommerce-privacy-policy-text,
body.rukodel-classic-checkout .woocommerce-terms-and-conditions-wrapper {
    color: var(--rs-muted);
    font-size: 13px;
    line-height: 1.55;
}

body.rukodel-classic-checkout .woocommerce-error,
body.rukodel-classic-checkout .woocommerce-info,
body.rukodel-classic-checkout .woocommerce-message {
    border-radius: 14px !important;
}

body.rukodel-classic-checkout .woocommerce-error {
    border: 1px solid #f0b8b8 !important;
    background: #fff4f4 !important;
}

body.rukodel-classic-checkout .woocommerce-checkout-review-order-table .shipping ul#shipping_method {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: left;
}

body.rukodel-classic-checkout .woocommerce-checkout-review-order-table .shipping ul#shipping_method li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    margin: 0 0 12px;
}

body.rukodel-classic-checkout .woocommerce-checkout-review-order-table .shipping ul#shipping_method label {
    line-height: 1.45;
}

@media (min-width: 1181px) {
    body.rukodel-classic-checkout #order_review_heading,
    body.rukodel-classic-checkout #order_review {
        position: relative;
    }
}

@media (max-width: 1180px) {
    body.rukodel-classic-checkout form.checkout {
        grid-template-columns: minmax(0, 1fr) minmax(350px, .85fr);
        column-gap: 28px;
    }
}

@media (max-width: 900px) {
    body.rukodel-classic-checkout form.checkout {
        display: block !important;
    }

    body.rukodel-classic-checkout #customer_details,
    body.rukodel-classic-checkout #order_review_heading,
    body.rukodel-classic-checkout #order_review {
        width: 100% !important;
    }

    body.rukodel-classic-checkout #order_review_heading {
        margin-top: 26px !important;
    }
}

@media (max-width: 620px) {
    body.rukodel-classic-checkout .site-content {
        padding-top: 24px;
    }

    body.rukodel-classic-checkout .entry-title {
        font-size: 38px;
    }

    body.rukodel-classic-checkout .woocommerce-billing-fields,
    body.rukodel-classic-checkout .woocommerce-additional-fields,
    body.rukodel-classic-checkout #order_review_heading {
        padding: 22px 18px !important;
        border-radius: 16px 16px 0 0;
    }

    body.rukodel-classic-checkout .woocommerce-billing-fields,
    body.rukodel-classic-checkout .woocommerce-additional-fields {
        border-radius: 16px;
    }

    body.rukodel-classic-checkout #order_review {
        padding: 0 18px 20px !important;
        border-radius: 0 0 16px 16px;
    }

    body.rukodel-classic-checkout .form-row-first,
    body.rukodel-classic-checkout .form-row-last {
        width: 100% !important;
    }

    body.rukodel-classic-checkout form.checkout_coupon {
        grid-template-columns: 1fr;
        padding: 16px !important;
    }

    body.rukodel-classic-checkout form.checkout_coupon .form-row-first,
    body.rukodel-classic-checkout form.checkout_coupon .form-row-last {
        grid-column: 1;
        width: 100% !important;
    }

    body.rukodel-classic-checkout form.checkout_coupon button {
        width: 100%;
    }

    body.rukodel-classic-checkout .rsc-checkout-product {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 10px;
    }

    body.rukodel-classic-checkout .rsc-checkout-product__image {
        width: 52px !important;
        height: 52px !important;
    }

    body.rukodel-classic-checkout #order_review .variation {
        margin-left: 62px;
    }
}


/* =========================================================
   Rukodel Shop 0.4.13 — classic cart/checkout hardening
   ========================================================= */

/* Корзина пересчитывается Rukodel Checkout 0.1.2 автоматически. */
body.rukodel-classic-cart .woocommerce-cart-form button[name="update_cart"] {
    display: none !important;
}
body.rukodel-classic-cart.rsc-cart-updating .woocommerce-cart-form,
body.rukodel-classic-cart.rsc-cart-updating .cart-collaterals {
    opacity: .62;
    pointer-events: none;
    transition: opacity .15s ease;
}
body.rukodel-classic-cart .woocommerce-cart-form,
body.rukodel-classic-cart .cart-collaterals {
    transition: opacity .15s ease;
}

/* WooCommerce может вывести длинное сообщение о доставке в tfoot.
   Не даём ему растягивать таблицу и сжимать название товара до одной буквы. */
body.rukodel-classic-checkout #order_review table.shop_table {
    width: 100% !important;
    table-layout: fixed !important;
}
body.rukodel-classic-checkout #order_review table.shop_table th.product-name,
body.rukodel-classic-checkout #order_review table.shop_table td.product-name {
    width: auto !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout #order_review table.shop_table th.product-total,
body.rukodel-classic-checkout #order_review table.shop_table td.product-total {
    width: 118px !important;
    min-width: 118px !important;
    white-space: nowrap !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot td {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}
body.rukodel-classic-checkout #order_review table.shop_table .cart-subtotal td,
body.rukodel-classic-checkout #order_review table.shop_table .order-total td {
    white-space: nowrap !important;
}
body.rukodel-classic-checkout #order_review table.shop_table .woocommerce-shipping-totals td,
body.rukodel-classic-checkout #order_review table.shop_table tr.shipping td {
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout .rsc-checkout-product {
    width: 100%;
    min-width: 0;
}
body.rukodel-classic-checkout .rsc-checkout-product__name {
    min-width: 0;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout #order_review,
body.rukodel-classic-checkout #order_review table,
body.rukodel-classic-checkout #order_review th,
body.rukodel-classic-checkout #order_review td,
body.rukodel-classic-checkout #order_review label,
body.rukodel-classic-checkout #order_review p,
body.rukodel-classic-checkout #order_review span,
body.rukodel-classic-checkout #order_review li {
    font-family: var(--rs-font-body) !important;
}
body.rukodel-classic-checkout #order_review_heading {
    font-family: var(--rs-font-heading) !important;
}
body.rukodel-classic-checkout #order_review button,
body.rukodel-classic-checkout #order_review .button,
body.rukodel-classic-checkout #place_order {
    font-family: var(--rs-font-button) !important;
}

/* Диагностика Яндекс Доставки для администратора не ломает ширину заказа. */
body.rukodel-classic-checkout .ryd-checkout-admin-error {
    margin: 18px 0 0;
    padding: 12px 14px;
    border: 1px solid #f0c98a;
    border-radius: 11px;
    background: #fff8e8;
    color: #6b4a16;
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: break-word;
}


/* =========================================================
   Rukodel Shop 0.4.14 — checkout typography & shipping row
   ========================================================= */

/* Правая колонка заказа: одинаковая типографика и предсказуемая ширина. */
body.rukodel-classic-checkout #order_review {
    font-family: var(--rs-font-body) !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    overflow: hidden;
}
body.rukodel-classic-checkout #order_review_heading {
    font-family: var(--rs-font-heading) !important;
    font-size: 22px !important;
    line-height: 1.25 !important;
    font-weight: 750 !important;
}
body.rukodel-classic-checkout #order_review table.shop_table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}
body.rukodel-classic-checkout #order_review table.shop_table thead th {
    font-size: 12px !important;
    line-height: 1.35 !important;
}
body.rukodel-classic-checkout #order_review table.shop_table th.product-name,
body.rukodel-classic-checkout #order_review table.shop_table td.product-name {
    width: auto !important;
    padding-right: 16px !important;
}
body.rukodel-classic-checkout #order_review table.shop_table th.product-total,
body.rukodel-classic-checkout #order_review table.shop_table td.product-total {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    text-align: right !important;
}
body.rukodel-classic-checkout .rsc-checkout-product__name {
    font-size: 14px !important;
    line-height: 1.42 !important;
    font-weight: 700 !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tbody td,
body.rukodel-classic-checkout #order_review table.shop_table tfoot th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot td {
    font-size: 14px !important;
    line-height: 1.45 !important;
}

/* У строки доставки свой grid. Так длинный текст ошибки/подсказки не зажимается
   в 112px ценовой колонки и не вылезает за карточку. */
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping {
    display: grid !important;
    grid-template-columns: minmax(88px, 30%) minmax(0, 1fr) !important;
    column-gap: 14px !important;
    width: 100% !important;
    border-bottom: 1px solid var(--rs-border) !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > td,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 18px 0 !important;
    border: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > td,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > td {
    font-size: 13.5px !important;
    line-height: 1.5 !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals ul#shipping_method,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping ul#shipping_method {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals li,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping li,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals label,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping label {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout #order_review table.shop_table .order-total th,
body.rukodel-classic-checkout #order_review table.shop_table .order-total td {
    font-size: 19px !important;
    line-height: 1.3 !important;
}

/* Диагностика администратора должна быть компактной и никогда не влиять на
   геометрию таблицы заказа. */
body.rukodel-classic-checkout #order_review tr.ryd-checkout-admin-error-row {
    display: table-row !important;
}
body.rukodel-classic-checkout #order_review tr.ryd-checkout-admin-error-row > td {
    display: table-cell !important;
    width: auto !important;
    max-width: 0 !important;
    padding: 14px 0 0 !important;
    border-bottom: 0 !important;
    white-space: normal !important;
}
body.rukodel-classic-checkout .ryd-checkout-admin-error {
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    font-family: var(--rs-font-body) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    overflow-wrap: break-word !important;
}

@media (min-width: 1181px) {
    body.rukodel-classic-checkout form.checkout {
        grid-template-columns: minmax(0, 1.12fr) minmax(430px, .88fr) !important;
        column-gap: 46px !important;
    }
}

@media (max-width: 620px) {
    body.rukodel-classic-checkout #order_review table.shop_table th.product-total,
    body.rukodel-classic-checkout #order_review table.shop_table td.product-total {
        width: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
    }
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals,
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping {
        grid-template-columns: 1fr !important;
        row-gap: 0 !important;
    }
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > th,
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > th {
        padding-bottom: 4px !important;
    }
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > td,
    body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > td {
        padding-top: 4px !important;
    }
}

/* =========================================================
   Rukodel Shop 0.4.15 — unified multi-carrier shipping UI
   ========================================================= */

/* Доставка — самостоятельный полноширинный блок внутри карточки заказа.
   Это также готовая основа для СДЭК / Ozon / 5Post / Почты России. */
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping {
    display: block !important;
    width: 100% !important;
    padding: 18px 0 !important;
    border-bottom: 1px solid var(--rs-border) !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > td,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
}
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.woocommerce-shipping-totals > th,
body.rukodel-classic-checkout #order_review table.shop_table tfoot tr.shipping > th {
    margin-bottom: 10px !important;
    font-size: 14px !important;
    font-weight: 850 !important;
}

body.rukodel-classic-checkout #order_review ul#shipping_method,
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods {
    display: grid !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li,
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    grid-template-areas:
        "radio label"
        "controls controls" !important;
    gap: 8px 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 13px !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 13px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li:has(input[type="radio"]:checked),
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li:has(input[type="radio"]:checked),
body.rukodel-classic-checkout #order_review ul#shipping_method > li:has(input[type="hidden"]),
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li:has(input[type="hidden"]) {
    border-color: color-mix(in srgb, var(--rs-primary) 42%, var(--rs-border)) !important;
    background: color-mix(in srgb, var(--rs-primary) 3%, #fff) !important;
    box-shadow: 0 8px 22px rgba(123,47,134,.06);
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li > input[type="radio"] {
    grid-area: radio;
    align-self: start;
    width: 17px !important;
    height: 17px !important;
    margin: 3px 0 0 !important;
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li > input[type="hidden"] {
    display: none !important;
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li > label,
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li > label {
    grid-area: label;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: var(--rs-text) !important;
    font-family: var(--rs-font-body) !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout #order_review ul#shipping_method > li > label .woocommerce-Price-amount,
body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li > label .woocommerce-Price-amount {
    flex: 0 0 auto;
    margin-left: auto;
    white-space: nowrap !important;
    font-weight: 850 !important;
}

/* Любой адаптер перевозчика должен выводить этот общий класс. Его интерфейс
   автоматически занимает следующую строку карточки метода. */
body.rukodel-classic-checkout #order_review .rukodel-carrier-controls,
body.rukodel-classic-checkout #order_review .ryd-rate-controls {
    grid-area: controls !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}
body.rukodel-classic-checkout #order_review .ryd-selected-point {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 9px !important;
    padding: 11px 12px !important;
    border: 1px solid color-mix(in srgb, var(--rs-primary) 14%, var(--rs-border)) !important;
    border-radius: 10px !important;
    background: var(--rs-soft) !important;
    color: var(--rs-text) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
body.rukodel-classic-checkout #order_review .ryd-open-map.button,
body.rukodel-classic-checkout #order_review .ryd-open-map.button.alt {
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
}
body.rukodel-classic-checkout #order_review .ryd-delivery-estimate,
body.rukodel-classic-checkout #order_review .ryd-delivery-api-note,
body.rukodel-classic-checkout #order_review .ryd-delivery-fallback {
    margin: 7px 0 !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
}
body.rukodel-classic-checkout #order_review .ryd-admin-diagnostics {
    margin-top: 8px !important;
    font-size: 11px !important;
}
body.rukodel-classic-checkout #order_review .ryd-admin-diagnostics__body {
    max-width: 100% !important;
}

@media (max-width: 620px) {
    body.rukodel-classic-checkout #order_review ul#shipping_method > li,
    body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li {
        padding: 12px !important;
    }
    body.rukodel-classic-checkout #order_review ul#shipping_method > li > label,
    body.rukodel-classic-checkout #order_review .woocommerce-shipping-methods > li > label {
        font-size: 13px !important;
    }
}


/* Rukodel Customer Account 0.1.0 — единый покупательский кабинет. */
body.woocommerce-account .rca-login-intro,
body.woocommerce-account .rca-account-head {
    margin: 0 0 24px;
    padding: 24px 28px;
    border: 1px solid var(--rs-border);
    border-radius: 20px;
    background: linear-gradient(135deg, #fff 0%, #fbf5fc 100%);
    box-shadow: var(--rs-shadow);
}
body.woocommerce-account .rca-account-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
body.woocommerce-account .rca-login-intro h2,
body.woocommerce-account .rca-account-head h2 {
    margin: 4px 0 8px;
    font-family: var(--rs-font-heading);
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.1;
    color: var(--rs-text);
}
body.woocommerce-account .rca-login-intro p,
body.woocommerce-account .rca-account-head p {
    margin: 0;
    color: var(--rs-muted);
    font-size: 15px;
}
body.woocommerce-account .rca-account-eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rs-accent);
}
body.woocommerce-account .rca-shop-button {
    flex: 0 0 auto;
    min-width: 180px;
    text-align: center;
}
body.woocommerce-account #customer_login {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    margin: 0;
}
body.woocommerce-account #customer_login::before,
body.woocommerce-account #customer_login::after {
    display: none !important;
}
body.woocommerce-account #customer_login > .u-column1,
body.woocommerce-account #customer_login > .u-column2 {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-account #customer_login > div > h2 {
    margin: 0 0 14px;
    font-size: 26px;
}
body.woocommerce-account form.login,
body.woocommerce-account form.register,
body.woocommerce-account form.lost_reset_password {
    max-width: none;
    margin: 0 !important;
    padding: 24px !important;
    border: 1px solid var(--rs-border) !important;
    border-radius: 18px !important;
    background: #fff;
    box-shadow: 0 10px 28px rgba(41, 27, 48, .05);
}
body.woocommerce-account form.register .form-row-first,
body.woocommerce-account form.register .form-row-last {
    width: calc(50% - 8px);
}
body.woocommerce-account form.register .form-row-first {
    float: left;
}
body.woocommerce-account form.register .form-row-last {
    float: right;
}
body.woocommerce-account .rca-field-note {
    display: block;
    margin-top: 7px;
    color: var(--rs-muted);
    font-size: 12px;
    line-height: 1.45;
}
body.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 250px !important;
    background: #fff;
    box-shadow: 0 10px 28px rgba(41, 27, 48, .05);
}
body.woocommerce-account .woocommerce-MyAccount-content {
    width: calc(100% - 282px) !important;
    padding: 24px 28px;
    border: 1px solid var(--rs-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(41, 27, 48, .05);
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 18px;
    border: 1px solid var(--rs-border);
    border-radius: 14px;
    background: var(--rs-soft);
}
body.woocommerce-account .woocommerce-form-login__rememberme {
    margin-right: 12px;
}
body.woocommerce-account .woocommerce-LostPassword {
    margin-top: 14px;
}
@media (max-width: 900px) {
    body.woocommerce-account #customer_login {
        grid-template-columns: 1fr;
    }
    body.woocommerce-account .rca-account-head {
        align-items: flex-start;
        flex-direction: column;
    }
    body.woocommerce-account .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce-MyAccount-content {
        width: 100% !important;
    }
    body.woocommerce-account .woocommerce-MyAccount-content {
        margin-top: 18px;
    }
}
@media (max-width: 640px) {
    body.woocommerce-account .rca-login-intro,
    body.woocommerce-account .rca-account-head,
    body.woocommerce-account .woocommerce-MyAccount-content {
        padding: 18px;
        border-radius: 16px;
    }
    body.woocommerce-account form.register .form-row-first,
    body.woocommerce-account form.register .form-row-last {
        float: none;
        width: 100%;
    }
    body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Version 0.4.19 — аккуратная шапка личного кабинета
   ========================================================= */
body.woocommerce-account .rca-account-head__copy {
    min-width: 0;
}

body.woocommerce-account .rca-account-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

body.woocommerce-account .rca-account-actions .button {
    min-width: 132px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 10px 18px !important;
    border-radius: 12px !important;
    font-family: var(--rs-font-button) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}

body.woocommerce-account .rca-account-actions .rca-shop-button {
    border: 1px solid var(--rs-primary) !important;
    background: var(--rs-primary) !important;
    color: #fff !important;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--rs-primary) 18%, transparent);
}

body.woocommerce-account .rca-account-actions .rca-logout-button {
    border: 1px solid var(--rs-border) !important;
    background: #fff !important;
    color: var(--rs-text) !important;
    box-shadow: none !important;
}

body.woocommerce-account .rca-account-actions .rca-logout-button:hover,
body.woocommerce-account .rca-account-actions .rca-logout-button:focus-visible {
    border-color: var(--rs-primary) !important;
    color: var(--rs-primary) !important;
    outline: none;
}

body.woocommerce-account .rca-dashboard {
    padding: 4px 0;
}

body.woocommerce-account .rca-dashboard h3 {
    margin: 0 0 8px;
    color: var(--rs-text);
    font-family: var(--rs-font-heading);
    font-size: 22px;
    line-height: 1.25;
}

body.woocommerce-account .rca-dashboard > p {
    margin: 0;
    color: var(--rs-muted);
    font-size: 15px;
    line-height: 1.6;
}

body.woocommerce-account .rca-dashboard__links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

body.woocommerce-account .rca-dashboard__links a {
    min-height: 68px;
    display: flex;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--rs-border);
    border-radius: 14px;
    background: var(--rs-soft);
    color: var(--rs-text);
    font-weight: 750;
    text-decoration: none;
    transition: border-color .16s ease, color .16s ease, transform .16s ease;
}

body.woocommerce-account .rca-dashboard__links a:hover,
body.woocommerce-account .rca-dashboard__links a:focus-visible {
    border-color: var(--rs-primary);
    color: var(--rs-primary);
    transform: translateY(-1px);
    outline: none;
}

@media (max-width: 900px) {
    body.woocommerce-account .rca-account-actions {
        width: 100%;
        flex-wrap: wrap;
    }
    body.woocommerce-account .rca-account-actions .button {
        flex: 1 1 160px;
    }
}

@media (max-width: 640px) {
    body.woocommerce-account .rca-dashboard__links {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Version 0.4.20 — обзор ЛК без дублирующих кнопок
   ========================================================= */
body.woocommerce-account .rca-dashboard--clean {
    padding: 0;
}

body.woocommerce-account .rca-dashboard__intro {
    margin-bottom: 18px;
}

body.woocommerce-account .rca-dashboard__intro h3 {
    margin: 0 0 7px;
    font-family: var(--rs-font-heading);
    font-size: 22px;
    line-height: 1.25;
    color: var(--rs-text);
}

body.woocommerce-account .rca-dashboard__intro p {
    margin: 0;
    color: var(--rs-muted);
    font-size: 14px;
    line-height: 1.55;
}

body.woocommerce-account .rca-dashboard__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .85fr);
    gap: 16px;
}

body.woocommerce-account .rca-dashboard-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rs-border);
    border-radius: 16px;
    background: #fff;
}

body.woocommerce-account .rca-dashboard-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

body.woocommerce-account .rca-dashboard-card__head h4 {
    margin: 0;
    font-family: var(--rs-font-heading);
    font-size: 17px;
    line-height: 1.25;
    color: var(--rs-text);
}

body.woocommerce-account .rca-dashboard-card__head a {
    flex: 0 0 auto;
    color: var(--rs-primary);
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

body.woocommerce-account .rca-dashboard-empty {
    margin: 0;
    padding: 18px 0 2px;
    color: var(--rs-muted);
}

body.woocommerce-account .rca-recent-orders {
    display: grid;
    gap: 0;
}

body.woocommerce-account .rca-recent-order {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-top: 1px solid var(--rs-border);
}

body.woocommerce-account .rca-recent-order:first-child {
    border-top: 0;
    padding-top: 2px;
}

body.woocommerce-account .rca-recent-order > div:first-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}

body.woocommerce-account .rca-recent-order strong {
    color: var(--rs-text);
}

body.woocommerce-account .rca-recent-order span {
    color: var(--rs-muted);
    font-size: 13px;
}

body.woocommerce-account .rca-recent-order__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    white-space: nowrap;
    font-size: 13px;
}

body.woocommerce-account .rca-recent-order__meta a {
    color: var(--rs-primary);
    font-weight: 750;
    text-decoration: none;
}

body.woocommerce-account .rca-contact-summary {
    display: grid;
    gap: 0;
    margin: 0;
}

body.woocommerce-account .rca-contact-summary > div {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 12px;
    padding: 11px 0;
    border-top: 1px solid var(--rs-border);
}

body.woocommerce-account .rca-contact-summary > div:first-child {
    border-top: 0;
    padding-top: 2px;
}

body.woocommerce-account .rca-contact-summary dt {
    color: var(--rs-muted);
    font-size: 13px;
}

body.woocommerce-account .rca-contact-summary dd {
    min-width: 0;
    margin: 0;
    color: var(--rs-text);
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 980px) {
    body.woocommerce-account .rca-dashboard__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    body.woocommerce-account .rca-recent-order {
        grid-template-columns: 1fr;
    }

    body.woocommerce-account .rca-recent-order__meta {
        justify-content: flex-start;
        flex-wrap: wrap;
        white-space: normal;
    }

    body.woocommerce-account .rca-contact-summary > div {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}


/* Banner positioning controls — 0.4.25 */
.rs-hero-slide__content{
  position:absolute;
  inset:0;
  z-index:2;
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  padding:0;
  pointer-events:none;
}
.rs-hero-slide__copy{
  position:absolute;
  z-index:2;
  left:var(--rs-slide-text-x-desktop,24%);
  top:var(--rs-slide-text-y-desktop,42%);
  width:min(48%,610px);
  margin:0;
  transform:translate(-50%,-50%);
  pointer-events:auto;
}
.rs-hero-slide__buttons{
  position:absolute;
  z-index:3;
  left:var(--rs-slide-buttons-x-desktop,24%);
  top:var(--rs-slide-buttons-y-desktop,72%);
  width:max-content;
  max-width:90%;
  margin:0;
  transform:translate(-50%,-50%);
  pointer-events:auto;
}
.rs-hero-slide--center .rs-hero-slide__copy{
  align-items:center;
  text-align:center;
}
.rs-hero-slide--copy-none .rs-hero-slide__copy,
.rs-hero-slide--light.rs-hero-slide--copy-none .rs-hero-slide__copy{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
@media(max-width:580px){
  .rs-hero-slide__content{
    min-height:0;
    padding:0;
  }
  .rs-hero-slide__copy{
    left:var(--rs-slide-text-x-mobile,50%);
    top:var(--rs-slide-text-y-mobile,60%);
    width:calc(100% - 36px);
    max-width:none;
    transform:translate(-50%,-50%);
  }
  .rs-hero-slide__buttons{
    left:var(--rs-slide-buttons-x-mobile,50%);
    top:var(--rs-slide-buttons-y-mobile,84%);
    width:max-content;
    max-width:calc(100% - 36px);
    justify-content:center;
    transform:translate(-50%,-50%);
  }
}




/* Rukodel cart delivery balanced layout */
@media (min-width: 1051px) {
  body.woocommerce-cart .entry-content > .woocommerce,
  body.woocommerce-cart article .entry-content > .woocommerce {
    grid-template-columns: minmax(0, 1.4fr) minmax(480px, .9fr) !important;
    gap: 30px !important;
  }
}
@media (min-width: 768px) {
  body.woocommerce-cart .cart_totals table.shop_table {
    table-layout: fixed !important;
  }
  body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > th {
    width: 30% !important;
    max-width: 30% !important;
    padding-right: 14px !important;
    vertical-align: top !important;
  }
  body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > td {
    width: 70% !important;
    max-width: 70% !important;
    min-width: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
  }
}

/* =========================================================
   Rukodel Shop 0.4.31 — mobile home and product gallery
   ========================================================= */

/* The all-products shortcut is part of the mobile category rail only. */
body.home .rs-category-card--all {
  display: none;
}

@media (min-width: 981px) {
  /* Keep the large image at useful size and use the former empty left strip
     for a vertically scrollable thumbnail carousel. */
  body.single-product div.product .rg-product-top > .woocommerce-product-gallery {
    padding-left: 94px;
    box-sizing: border-box;
  }

  body.single-product .woocommerce-product-gallery > .flex-viewport {
    width: 100%;
    margin: 0 !important;
  }

  body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: 0;
    width: 80px;
    max-height: 720px;
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    margin: 0 !important;
    padding: 0 4px 0 0 !important;
    overflow-x: hidden;
    overflow-y: auto;
    scroll-behavior: smooth;
    scroll-snap-type: y proximity;
    scrollbar-color: #cdbbd1 transparent;
    scrollbar-width: thin;
    overscroll-behavior-y: contain;
  }

  body.single-product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar {
    width: 5px;
  }

  body.single-product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cdbbd1;
  }

  body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    width: 72px !important;
    min-width: 72px !important;
    height: 72px;
    flex: 0 0 72px;
    scroll-snap-align: start;
  }

  body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 72px !important;
    height: 72px !important;
    aspect-ratio: 1;
    object-fit: cover;
  }
}

@media (max-width: 760px) {
  /* On phones the heading is removed and “Все товары” becomes the first
     item of the swipeable category carousel. */
  body.home .rs-section--categories {
    padding: 18px 18px 10px !important;
  }

  body.home .rs-section--categories > .rs-section__head {
    display: none !important;
  }

  body.home .rs-category-card--all {
    display: flex !important;
  }

  body.home .rs-category-card--all .rs-category-card__icon {
    color: var(--rs-primary);
  }

  body.home .rs-category-card--all .rs-category-card__icon svg {
    width: 27px;
    height: 27px;
  }

  /* WooCommerce FlexSlider keeps touch navigation on the large image; only
     the thumbnail grid underneath is removed on mobile. */
  body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: none !important;
  }

  /* product.js moves only the long variation description below the button;
     price and stock stay in WooCommerce's normal position. */
  body.single-product div.product .woocommerce-variation-add-to-cart {
    margin-bottom: 16px;
  }

  body.single-product div.product .rs-mobile-variation-description {
    margin: 0 0 14px;
  }
}
body.woocommerce-cart .cart_totals ul#shipping_method,
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods,
body.woocommerce-cart .cart_totals ul#shipping_method > li,
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods > li,
body.woocommerce-cart .cart_totals .ryd-rate-controls {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
body.woocommerce-cart .cart_totals ul#shipping_method,
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.woocommerce-cart .cart_totals ul#shipping_method > li,
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods > li {
  margin: 0 !important;
}
body.woocommerce-cart .cart_totals .ryd-rate-controls {
  padding: 13px !important;
  overflow: visible !important;
}
body.woocommerce-cart .cart_totals .ryd-open-map.button,
body.woocommerce-cart .cart_totals .ryd-open-map.button.alt {
  width: 100% !important;
  min-height: 44px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
  display: none !important;
}


/* =========================================================
   Rukodel Shop 0.4.29 — mobile storefront and carrier cards
   Replaces the former Rukodel Delivery UI compatibility plugin.
   ========================================================= */

.woocommerce-shipping-methods > li {
  position: relative;
  border: 1px solid #ead9ec;
  border-radius: 12px;
  padding: 12px;
  margin: 0 0 10px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.woocommerce-shipping-methods > li.is-selected {
  border-color: var(--rs-primary, #7b2f86);
  background: #fffafd;
  box-shadow: 0 0 0 2px rgba(123, 47, 134, .08);
}
.woocommerce-shipping-methods > li > input.shipping_method[type="radio"] {
  margin: 3px 8px 0 0;
  vertical-align: top;
}
.woocommerce-shipping-methods > li > label {
  display: inline;
  font-weight: 600;
  cursor: pointer;
}
.woocommerce-shipping-methods > li .rukodel-carrier-controls {
  margin-top: 12px;
}
.woocommerce-shipping-methods > li .rukodel-carrier-controls[hidden],
.rukodel-carrier-panels .rukodel-carrier-controls[hidden] {
  display: none !important;
}
.rukodel-carrier-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  margin: -2px 7px 0 2px;
  vertical-align: middle;
  box-sizing: border-box;
  color: #fff;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 2px 7px rgba(20, 31, 52, .12);
}
.rukodel-carrier-badge--yandex {
  min-width: 64px;
  padding: 0 8px;
  border: 1px solid #fc3f1d;
  border-radius: 7px;
  background: #fff;
  color: #171717;
  font-size: 11px;
}
.rukodel-carrier-badge--ozon {
  min-width: 58px;
  padding: 0 7px;
  border-radius: 7px;
  background: #005bff;
  font-size: 10px;
  letter-spacing: .04em;
}
.rukodel-delivery-start-hint {
  margin: 12px 0 0;
  padding: 11px 12px;
  border: 1px solid #ead9ec;
  border-radius: 10px;
  background: #fffafd;
  color: #5d5362;
  font-size: 14px;
  line-height: 1.4;
}

@media (max-width: 767px) {
  /* Compact marketplace-style composite banner. */
  body.home .rs-hero.rs-hero--composite {
    display: grid !important;
    grid-template-columns: minmax(0, 1.45fr) minmax(116px, .85fr) !important;
    min-height: 132px !important;
    border-radius: 16px !important;
    background: linear-gradient(110deg, #fff 0%, #fff 54%, #f6e8f2 100%) !important;
    box-shadow: 0 8px 22px rgba(42, 32, 46, .08) !important;
  }
  body.home .rs-hero.rs-hero--composite::before {
    width: 118px !important;
    height: 118px !important;
    top: -50px !important;
    right: -34px !important;
  }
  body.home .rs-hero.rs-hero--composite > .rs-hero__content {
    min-width: 0;
    padding: 13px 8px 13px 16px !important;
    justify-content: center !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-kicker,
  body.home .rs-hero.rs-hero--composite .rs-hero__lead {
    display: none !important;
  }
  body.home .rs-hero.rs-hero--composite h1 {
    max-width: 235px !important;
    margin: 0 !important;
    font-size: clamp(18px, 5.2vw, 22px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-buttons {
    display: flex !important;
    gap: 0 !important;
    margin-top: 10px !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-buttons > :nth-child(n+2) {
    display: none !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-btn {
    min-height: 32px !important;
    padding: 0 11px !important;
    border-radius: 9px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
  }
  body.home .rs-hero.rs-hero--composite > .rs-hero__visual {
    min-width: 0;
    min-height: 132px !important;
    padding: 7px 7px 7px 0 !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-hero__collage {
    width: min(100%, 160px) !important;
    aspect-ratio: 1 / .82 !important;
  }
  body.home .rs-hero.rs-hero--composite .rs-hero__card {
    border-radius: 10px !important;
    box-shadow: 0 7px 15px rgba(50, 31, 58, .16) !important;
  }

  /* Two product cards per row on mobile storefront sections. */
  body.home .rs-product-grid,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  body.home .wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 8px !important;
    margin: 0 !important;
  }
  .woocommerce ul.products::before,
  .woocommerce ul.products::after,
  .woocommerce-page ul.products::before,
  .woocommerce-page ul.products::after {
    display: none !important;
  }
  body.home .rs-product-card,
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  body.home .wc-block-grid__product {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    float: none !important;
    border-radius: 14px !important;
  }
  body.home .rs-product-card__media {
    aspect-ratio: 1 / 1 !important;
  }
  body.home .rs-product-card__media img {
    padding: 5px !important;
  }
  body.home .rs-product-card__body {
    padding: 10px !important;
  }
  body.home .rs-product-card__title,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product h2 {
    display: -webkit-box;
    min-height: 2.7em !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    font-size: 13px !important;
    line-height: 1.35 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  body.home .rs-product-card__price,
  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price {
    min-height: 36px !important;
    margin-top: 7px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }
  body.home .rs-product-card__price del {
    display: block;
    font-size: 11px !important;
  }
  body.home .rs-product-card__button,
  .woocommerce ul.products li.product .button,
  .woocommerce-page ul.products li.product .button {
    width: 100%;
    min-height: 38px;
    margin-top: 8px !important;
    padding: 8px 5px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    text-align: center;
  }

  /* Swipeable square category icons. */
  body.home .rs-category-grid {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: 78px;
    grid-template-columns: none !important;
    gap: 12px !important;
    margin-inline: -18px !important;
    padding: 2px 18px 10px !important;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  body.home .rs-category-grid::-webkit-scrollbar {
    display: none;
  }
  body.home .rs-category-card {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: center;
    scroll-snap-align: start;
  }
  body.home .rs-category-card:hover {
    transform: none !important;
  }
  body.home .rs-category-card__icon,
  body.home .rs-category-card__image {
    position: static !important;
    width: 56px !important;
    height: 56px !important;
    flex: 0 0 56px;
    margin: 0 auto 7px !important;
    border: 1px solid #eadfec;
    border-radius: 14px !important;
    background: #faf5fb !important;
    object-fit: cover !important;
    opacity: 1 !important;
    mask-image: none !important;
  }
  body.home .rs-category-card__icon {
    display: grid !important;
    place-items: center;
    font-size: 25px !important;
  }
  body.home .rs-category-card__title {
    position: static !important;
    display: -webkit-box;
    width: 100%;
    max-width: none !important;
    min-height: 2.5em;
    overflow: hidden;
    color: var(--rs-text, #17233c);
    font-size: 12px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  body.home .rs-category-card__count {
    display: none !important;
  }

  /* Compact cart-product rows. */
  body.woocommerce-cart .woocommerce-cart-form table.shop_table,
  body.woocommerce-cart .woocommerce-cart-form table.shop_table tbody {
    display: block !important;
    width: 100% !important;
    border: 0 !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.shop_table thead {
    display: none !important;
  }
  body.woocommerce-cart .woocommerce-cart-form tr.woocommerce-cart-form__cart-item {
    position: relative;
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-areas: "image name remove" "image quantity subtotal";
    gap: 8px 10px;
    align-items: start;
    width: 100% !important;
    padding: 14px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e8e1ea !important;
  }
  body.woocommerce-cart .woocommerce-cart-form tr.woocommerce-cart-form__cart-item > td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }
  body.woocommerce-cart .woocommerce-cart-form tr.woocommerce-cart-form__cart-item > td::before {
    display: none !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { grid-area: image; }
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail a,
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
    display: block !important;
    width: 72px !important;
    height: 72px !important;
    margin: 0 !important;
    border-radius: 10px;
    object-fit: cover;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-name {
    grid-area: name;
    padding-right: 4px !important;
    font-size: 14px !important;
    font-weight: 700;
    line-height: 1.3 !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-price { display: none !important; }
  body.woocommerce-cart .woocommerce-cart-form td.product-quantity {
    grid-area: quantity;
    display: flex !important;
    align-items: center;
    align-self: center;
    gap: 5px;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-quantity::before {
    display: inline !important;
    content: "×" !important;
    color: #56505b;
    font-size: 16px;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity,
  body.woocommerce-cart .woocommerce-cart-form td.product-quantity input.qty {
    width: 50px !important;
    min-width: 50px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 4px !important;
    text-align: center !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-subtotal {
    grid-area: subtotal;
    align-self: center;
    justify-self: end;
    white-space: nowrap;
    font-size: 15px !important;
    font-weight: 700;
    text-align: right !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-remove {
    grid-area: remove;
    justify-self: end;
  }

  /* The shipping row and selected carrier panel use the complete cell width. */
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > th,
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > td {
    display: block !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > th {
    padding: 12px 0 8px !important;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping > td::before {
    content: none !important;
    display: none !important;
  }
  body.woocommerce-cart ul.woocommerce-shipping-methods.rukodel-carrier-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    text-align: left !important;
  }
  body.woocommerce-cart ul.rukodel-carrier-tabs > li.rukodel-carrier-tab {
    min-width: 0;
    min-height: 108px;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 13px;
    background: #fff;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-cart ul.rukodel-carrier-tabs > li.rukodel-carrier-tab > input.shipping_method[type="radio"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    opacity: 0 !important;
    pointer-events: none;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping ul.rukodel-carrier-tabs > li.rukodel-carrier-tab > label {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: stretch !important;
    align-content: center !important;
    gap: 5px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 108px;
    margin: 0 !important;
    padding: 12px 11px !important;
    border: 0 !important;
    position: static !important;
    float: none !important;
    transform: none !important;
    text-indent: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    cursor: pointer;
  }
  body.woocommerce-cart ul.rukodel-carrier-tabs .rukodel-carrier-badge {
    justify-self: start !important;
    min-width: 76px;
    height: 30px;
    margin: 0 !important;
    padding-right: 8px;
    padding-left: 8px;
  }
  body.woocommerce-cart ul.rukodel-carrier-tabs .rukodel-carrier-badge--other {
    border: 1px solid #d9c8dd;
    border-radius: 7px;
    background: #fff;
    color: #312936;
    box-shadow: none;
    font-size: 12px;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping .rukodel-carrier-tab__service,
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.woocommerce-shipping-totals.shipping .rukodel-carrier-tab__price {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    position: static !important;
    float: none !important;
    transform: none !important;
    text-align: left !important;
    text-indent: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    box-sizing: border-box !important;
    color: #1c2030;
    font-size: 13px;
    line-height: 1.25;
  }
  body.woocommerce-cart .rukodel-carrier-tab__price { font-weight: 800; }
  body.woocommerce-cart .rukodel-carrier-tab__price.is-pending {
    color: #736a77;
    font-size: 12px;
    font-weight: 600;
  }
  body.woocommerce-cart .rukodel-carrier-panels {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 9px;
    text-align: left;
    clear: both !important;
  }
  body.woocommerce-cart .rukodel-carrier-panels > .rukodel-carrier-controls {
    width: 100% !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid #ead9ec;
    border-radius: 13px;
    background: #fffafd;
    box-sizing: border-box !important;
  }
  body.woocommerce-cart .rukodel-carrier-panels input[type="text"],
  body.woocommerce-cart .rukodel-carrier-panels input[type="tel"],
  body.woocommerce-cart .rukodel-carrier-panels button {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* Compact checkout feedback. */
  body.woocommerce-checkout .woocommerce-error,
  body.woocommerce-checkout .woocommerce-NoticeGroup,
  body.woocommerce-checkout .wc-block-components-notice-banner {
    margin-bottom: 14px !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  body.woocommerce-checkout .woocommerce-error li { margin: 0 0 4px !important; }
  body.woocommerce-checkout .woocommerce-error li:last-child { margin-bottom: 0 !important; }
  body.woocommerce-checkout .form-row.woocommerce-invalid .woocommerce-error { display: none !important; }
}

/* 0.4.31 mobile banner sizing must remain after the 0.4.29 compatibility
   rules above, which intentionally carried the earlier 132px dimensions. */
@media (max-width: 760px) {
  body.home .rs-hero.rs-hero--composite {
    grid-template-columns: minmax(0, .96fr) minmax(164px, 1.04fr) !important;
    min-height: clamp(220px, 60vw, 250px) !important;
    border-radius: 19px !important;
  }

  body.home .rs-hero.rs-hero--composite::before {
    width: 180px !important;
    height: 180px !important;
    top: -72px !important;
    right: -48px !important;
  }

  body.home .rs-hero.rs-hero--composite > .rs-hero__content {
    padding: 22px 6px 22px 18px !important;
  }

  body.home .rs-hero.rs-hero--composite h1 {
    max-width: 210px !important;
    font-size: clamp(22px, 6.4vw, 27px) !important;
    line-height: 1.08 !important;
  }

  body.home .rs-hero.rs-hero--composite .rs-buttons {
    margin-top: 18px !important;
  }

  body.home .rs-hero.rs-hero--composite .rs-btn {
    min-height: 38px !important;
    padding: 0 13px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
  }

  body.home .rs-hero.rs-hero--composite > .rs-hero__visual {
    min-height: clamp(220px, 60vw, 250px) !important;
    padding: 16px 9px 16px 0 !important;
  }

  body.home .rs-hero.rs-hero--composite .rs-hero__collage {
    width: min(100%, 205px) !important;
    aspect-ratio: 1 / .95 !important;
  }

  body.home .rs-hero.rs-hero--composite .rs-hero__card {
    border-radius: 13px !important;
  }
}

/* =========================================================
   Rukodel Shop 0.4.32 — compact mobile home and contacts
   ========================================================= */
@media (max-width: 800px) {
  /* These four desktop trust cards duplicate information already available
     in delivery/payment pages and are intentionally removed on phones. */
  body.home .rs-benefits {
    display: none !important;
  }

  /* The generated contacts content currently contains an extra rsi-page /
     rsi-hero wrapper. Flatten only that outer shell so its nested paddings do
     not reduce the usable mobile width. */
  body.page-id-84.rukodel-store-info-page #primary {
    width: 100% !important;
    max-width: none !important;
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

  body.page-id-84.rukodel-store-info-page .site-main,
  body.page-id-84.rukodel-store-info-page article.ast-article-single,
  body.page-id-84.rukodel-store-info-page .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-84.rukodel-store-info-page .entry-content > .rsi-page,
  body.page-id-84.rukodel-store-info-page .entry-content > .rsi-page > .rsi-hero > .rsi-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-84.rukodel-store-info-page .entry-content > .rsi-page > .rsi-hero {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* Actual contact cards. */
  body.page-id-84.rukodel-store-info-page .rsi-hero,
  body.page-id-84.rukodel-store-info-page .rsi-grid,
  body.page-id-84.rukodel-store-info-page .rsi-grid article,
  body.page-id-84.rukodel-store-info-page .rsi-card,
  body.page-id-84.rukodel-store-info-page .rsi-contact,
  body.page-id-84.rukodel-store-info-page .rsi-form-grid,
  body.page-id-84.rukodel-store-info-page .rsi-form-grid label,
  body.page-id-84.rukodel-store-info-page .rsi-consent {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  body.page-id-84.rukodel-store-info-page .entry-content > .rsi-page > .rsi-hero > .rsi-page > .rsi-hero {
    margin: 0 0 14px !important;
    padding: 24px 20px !important;
    border: 1px solid #eadfea !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 8px 24px rgba(30, 26, 47, .05) !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-hero h1 {
    margin-bottom: 14px !important;
    font-size: 32px !important;
    line-height: 1.1 !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-hero p {
    margin-bottom: 0 !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-actions {
    width: 100% !important;
    margin-top: 18px !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-actions .rsi-btn {
    width: 100% !important;
    min-height: 46px;
  }

  body.page-id-84.rukodel-store-info-page .rsi-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    margin: 14px 0 !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-grid article {
    margin: 0 !important;
    padding: 20px !important;
    border-radius: 16px !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-grid h3 {
    margin-bottom: 8px !important;
    font-size: 19px !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-card,
  body.page-id-84.rukodel-store-info-page .rsi-contact {
    margin: 14px 0 !important;
    padding: 20px !important;
    border-radius: 16px !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-form-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
    margin: 16px 0 !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-full {
    grid-column: auto !important;
  }

  body.page-id-84.rukodel-store-info-page .rsi-grid a,
  body.page-id-84.rukodel-store-info-page .rsi-card a,
  body.page-id-84.rukodel-store-info-page .rsi-contact a,
  body.page-id-84.rukodel-store-info-page .rsi-muted {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  body.page-id-84.rukodel-store-info-page .rsi-contact > .rsi-btn,
  body.page-id-84.rukodel-store-info-page .rsi-contact form > .rsi-btn {
    width: 100% !important;
    min-height: 46px;
  }
}

/* =========================================================
   Rukodel Shop 0.4.38 — product price row and compact gallery
   ========================================================= */
body.single-product div.product .rg-product-top > .ast-onsale-card,
body.single-product div.product .rg-product-top > .woocommerce-product-gallery > .ast-onsale-card {
  display: none !important;
}

body.single-product div.product .rg-product-top > .summary > .rs-product-price-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  width: 100%;
  margin: 0 0 22px;
}

body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .price {
  display: flex !important;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 0 !important;
  color: var(--rs-text) !important;
  font-size: clamp(28px, 2.4vw, 38px) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .price > .price {
  display: contents !important;
}

body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .ast-onsale-card {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  float: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 30px;
  margin: 0 !important;
  padding: 6px 10px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #f8e9f5 !important;
  color: var(--rs-primary) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  box-shadow: none !important;
}

/* Astra adds a separate «Доступность:» label before WooCommerce stock text.
   Our low-stock copy is self-explanatory, so the duplicate prefix is hidden. */
body.single-product div.product .summary .ast-stock-detail > .ast-stock-avail {
  display: none !important;
}

@media (max-width: 760px) {
  body.single-product div.product .rg-product-top {
    display: flex !important;
    flex-direction: column;
    gap: 0 !important;
  }

  body.single-product div.product .rg-product-top > .woocommerce-breadcrumb {
    width: 100%;
    margin: 0 0 12px !important;
    padding: 0 2px;
    line-height: 1.45;
  }

  body.single-product div.product .rg-product-top > .woocommerce-product-gallery {
    position: relative !important;
    top: auto !important;
    min-height: 0 !important;
    margin: 0 0 14px !important;
    padding-top: 0 !important;
  }

  body.single-product div.product .rg-product-top > .summary {
    position: relative;
    z-index: 2;
    padding-top: 4px !important;
    background: #fff;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row {
    width: 100%;
    margin: 0 0 12px !important;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price {
    color: #e31346 !important;
    font-size: clamp(28px, 8vw, 34px) !important;
    font-weight: 850 !important;
    line-height: 1.08 !important;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price ins {
    order: 1;
    color: #e31346 !important;
    text-decoration: none !important;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price > .price {
    display: contents !important;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price del {
    order: 2;
    color: #8b8d96 !important;
    font-size: .72em !important;
    font-weight: 500 !important;
    opacity: 1 !important;
  }

  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price .amount,
  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price ins .amount,
  body.single-product div.product .rg-product-top > .summary > .rs-product-price-row > .rs-mobile-product-price del .amount {
    color: inherit !important;
  }

  /* The exact variation price is mirrored into the red price above the title. */
  body.single-product div.product .summary .woocommerce-variation-price {
    display: none !important;
  }

  /* The product name remains in the document and browser title, but its large
     on-page heading is hidden on phones because the name will be part of the
     product infographic. */
  body.single-product div.product .rg-product-top > .summary .product_title {
    display: none !important;
  }
}

/* 0.4.40 — ready-made artwork, without fixed banner height or category overlays. */
.rs-hero-slide[data-rs-overlay="none"] .rs-hero-slide__content,
.rs-hero-slide[data-rs-overlay="buttons"] .rs-hero-slide__copy { display: none !important; }
.woocommerce ul.products li.product-category.rs-category-caption-below > a > img {
  display: block; width: 100%; height: auto !important; max-height: none; object-fit: contain;
}
.woocommerce ul.products li.product-category.rs-category-caption-below .woocommerce-loop-category__title {
  position: static; inset: auto; width: auto; max-width: none; transform: none;
  margin: 12px 0 0; padding: 0; background: transparent; border: 0; box-shadow: none;
}
.woocommerce ul.products li.product-category.rs-category-caption-hidden .woocommerce-loop-category__title {
    position: absolute !important; width: 1px !important; height: 1px !important;
    min-width: 0 !important; min-height: 0 !important; max-height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0 !important;
}

/* 0.4.41 — homepage category artwork and optional captions below it. */
body.home .rs-category-grid[data-rs-home-captions] .rs-category-card--image {
  align-self: start; justify-content: flex-start; min-height: 0; padding: 0;
}
body.home .rs-category-grid[data-rs-home-captions] .rs-category-card--image .rs-category-card__image {
  position: static !important; display: block; width: 100% !important; height: auto !important;
  flex: 0 0 auto; max-height: none; margin: 0 !important; border: 0;
  object-fit: contain !important; opacity: 1 !important;
  mask-image: none !important; -webkit-mask-image: none !important;
}
body.home .rs-category-grid[data-rs-home-captions] .rs-category-card--image .rs-category-card__title {
  position: static !important; display: block; width: 100%; max-width: none; min-height: 0;
  padding: 12px 12px 0; text-align: center; overflow-wrap: anywhere;
}
body.home .rs-category-grid[data-rs-home-captions="image"] .rs-category-card--image .rs-category-card__title {
  position: absolute !important; width: 1px !important; height: 1px !important;
  min-width: 0 !important; min-height: 0 !important; max-height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; border: 0 !important;
}
body.home .rs-category-grid[data-rs-home-counts="hidden"] .rs-category-card--category .rs-category-card__count {
  display: none !important;
}
body.home .rs-category-grid[data-rs-home-counts="below"] .rs-category-card--category .rs-category-card__count {
  position: static !important; display: block !important; width: 100%; margin: 0; padding: 8px 12px 12px; text-align: center;
}
body.home .rs-category-grid[data-rs-home-captions="below"][data-rs-home-counts="hidden"] .rs-category-card--image .rs-category-card__title {
  padding-bottom: 12px;
}
@media (max-width: 767px) {
  body.home .rs-category-grid[data-rs-home-captions] { grid-auto-columns: clamp(136px, 42vw, 180px); }
  body.home .rs-category-grid[data-rs-home-captions] .rs-category-card--image .rs-category-card__image { border-radius: 14px; }
  body.home .rs-category-grid[data-rs-home-captions] .rs-category-card--image .rs-category-card__title { padding-top: 8px; }
}

/* Minimum order: preserve the cart button layout when ordering is unavailable. */
.woocommerce .wc-proceed-to-checkout .rukodel-minimum-order-disabled { display: block; width: 100%; text-align: center; }
.woocommerce .rukodel-minimum-order-disabled:disabled { opacity: .6; cursor: not-allowed; }

/* Asynchronous delivery status follows the selected carrier, including mobile tabs. */
.rdc-quote-message { margin: 12px 0 8px; line-height: 1.5; }
.rdc-quote-wait { display: block; margin-top: 6px; }
.rdc-quote[aria-busy="true"] .rdc-quote-retry { opacity: .6; }
