/* ============================================================
   Product card redesign — ported from `redesign/` (CareRecommendationsSection)
   Applies to the active teaser card `.product-card-v2`
   (PRODUCT_TEASER_VARIANT = '1' -> teaser-v-1 -> teaser-v2-base).
   Covers home, catalog and detail-page related cards site-wide.

   Palette knobs — change these to retheme (e.g. back to site theme):
   ------------------------------------------------------------ */
/* Self-hosted Montserrat (woff2 in ../fonts/montserrat) — no external dependency */
@import url('montserrat.css');

:root {
    --pcr-font: 'Montserrat', 'Helvetica', Arial, sans-serif;
    --pcr-accent: #9067a8;            /* purple (button / accents) */
    --pcr-accent-hover: #7a569a;      /* button hover */
    --pcr-ink: #2b2238;               /* dark title / price */
    --pcr-image-bg: #f5f0fa;          /* image plate bg */
    --pcr-shadow: 0 2px 16px rgba(144, 103, 168, 0.10);
    --pcr-shadow-hover: 0 6px 28px rgba(144, 103, 168, 0.22);
    --pcr-radius: 16px;
}

/* --- Card shell: rounded + soft shadow instead of gray border --- */
.product-card-v2 {
    border: 1px solid transparent !important;
    border-radius: var(--pcr-radius) !important;
    background-color: #fff;
    box-shadow: var(--pcr-shadow);
    transition: box-shadow .3s ease, transform .3s ease;
}

.product-card-v2:hover {
    border-color: transparent !important;
    box-shadow: var(--pcr-shadow-hover);
    transform: translateY(-2px);
}

/* --- Image: full-bleed cover on a soft plate, zoom on hover --- */
.product-card-v2__image {
    background-color: var(--pcr-image-bg);
    border-radius: var(--pcr-radius) var(--pcr-radius) 0 0 !important;
    overflow: hidden;
}

.product-card-v2__image .image img {
    padding: 0 !important;
    object-fit: cover !important;
    width: 100%;
    height: 100%;
}

/* keep the existing data-hover zoom, plus a plain :hover fallback */
.product-card-v2:hover .product-card-v2__image .image img {
    transform: scale(1.05);
}

/* --- Title --- */
.product-card-v2__title {
    color: #333;
    font-weight: 400;
}

/* --- Price --- */
.product-card-v2__price {
    color: var(--pcr-ink);
}

.product-card-v2__old-price {
    color: var(--pcr-accent);
}

.product-card-v2__old-price::after {
    background-color: var(--pcr-accent);
}

/* --- Add-to-cart button: full-width rounded purple with visible icon --- */
.product-card-v2 .st-button_primary {
    background-color: var(--pcr-accent) !important;
    border-color: var(--pcr-accent) !important;
    color: #fff !important;
    fill: #fff !important;
    border-radius: 12px !important;
}

.product-card-v2 .st-button_primary:hover {
    background-color: var(--pcr-accent-hover) !important;
    border-color: var(--pcr-accent-hover) !important;
    color: #fff !important;
    fill: #fff !important;
}

/* show the shopping-cart icon (hidden by default in base theme) */
.product-card-v2 .st-button_add-to-cart .st-button__icon_cart {
    display: inline-flex !important;
    margin-right: 8px;
}

/* "not available / no price" buttons: match rounded shape, muted purple tint */
.product-card-v2 .st-button_not-availbe {
    border-radius: 12px !important;
}

/* ============================================================
   Fixes to actually match the redesign card (round 2)
   ============================================================ */

/* --- Button: full-width, WHITE label, single line, centered --- */
.product-card-v2 .product-card-v2__buttons {
    width: 100%;
}

.product-card-v2 .st-button_add-to-cart {
    width: 100% !important;
    flex: 1 1 auto !important;
    justify-content: center;
    gap: 8px;
}

/* the theme paints the label purple -> invisible on purple bg. Force white. */
.product-card-v2 .st-button_primary,
.product-card-v2 .st-button_primary .st-button__text,
.product-card-v2 .st-button_primary .st-button__title,
.product-card-v2 .st-button_primary .st-button__sub-title {
    color: #fff !important;
    fill: #fff !important;
}

/* single-line label: drop the empty availability sub-line, no uppercase */
.product-card-v2 .st-button__sub-title {
    display: none !important;
}

.product-card-v2 .st-button__title {
    font-size: 14px !important;
    text-transform: none !important;
    white-space: nowrap;
}

/* --- Price: inline row (current bold + old strikethrough beside it) --- */
.product-card-v2__pricing {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
}

.product-card-v2__pricing .product-card-v2__price {
    order: 1;
}

.product-card-v2__pricing .product-card-v2__old-price {
    order: 2;
}

.product-card-v2__pricing .product-card-v2__pricing-txt {
    order: 3;
    flex-basis: 100%;
}

/* --- Labels + sale badge: rounded pills (adapted to redesign) --- */
.product-card-v2__label,
.product-card-v2 .card-label,
.product-card-v2 .product-card-sell-badge {
    border-radius: 999px !important;
    padding: 3px 10px !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}

.product-card-v2__labels {
    gap: 6px;
    padding: 8px;
}

/* ============================================================
   1:1 typography with the redesign (Montserrat + exact sizes).
   Card OUTER size kept as-is per request — only inner styles.
   ============================================================ */
.product-card-v2__title,
.product-card-v2__price,
.product-card-v2__price span,
.product-card-v2__old-price,
.product-card-v2__old-price span,
.product-card-v2__pricing-txt,
.product-card-v2 .st-button__title,
.product-card-v2 .st-button__text,
.product-card-v2 .card-label,
.product-card-v2__label {
    font-family: var(--pcr-font) !important;
}

/* Title: 14 / 400 / #333 / 2 lines (redesign line-clamp-2) */
.product-card-v2__title {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: #333 !important;
    -webkit-line-clamp: 2 !important;
    margin-bottom: 12px !important;
}

/* Price: current 16/600 #2b2238, old 12 #9067a8 (redesign text-base / text-xs) */
.product-card-v2__price,
.product-card-v2__price span {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--pcr-ink) !important;
}

.product-card-v2__old-price,
.product-card-v2__old-price span {
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--pcr-accent) !important;
}

/* Button label 14/400, icon 16px (redesign ShoppingBag h-4 w-4) */
.product-card-v2 .st-button__title {
    font-weight: 400 !important;
}

.product-card-v2 .st-button__icon {
    width: 16px !important;
    height: 16px !important;
}

/* Content spacing to match redesign p-4 gap-3 */
.product-card-v2__content {
    padding: 16px !important;
}

.product-card-v2__content-bottom {
    gap: 12px !important;
}

/* Labels: redesign-style tidy pills */
.product-card-v2__label,
.product-card-v2 .card-label {
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* ============================================================
   Round 4 — fixes
   ============================================================ */

/* #2 Card + content are PURE WHITE (theme tints them gray #f6f6f6 / #eee) */
.product-card-v2,
.product-card-v2__content,
.product-card-v2__content-bottom {
    background-color: #fff !important;
}

/* #1 Button hover: smooth color-darken like redesign, no theme flash/transform */
.product-card-v2 .st-button_primary {
    transition: background-color .2s ease, border-color .2s ease !important;
}

.product-card-v2 .st-button_primary:hover {
    background-color: var(--pcr-accent-hover) !important;
    border-color: var(--pcr-accent-hover) !important;
    color: #fff !important;
    fill: #fff !important;
    transform: none !important;
    opacity: 1 !important;
}

/* keep a single static cart icon (no hover-swap jump) */
.product-card-v2 .st-button__icon_cart.hover {
    display: none !important;
}

/* ============================================================
   #3 Detail-page buy button — 1:1 with redesign
   (BouquetShowcaseSection: dark #2b2238 default -> hover purple;
    added/"Оформить" state -> purple #9067a8 -> hover #7d5896;
    rounded-xl 12px, height 48px)
   ============================================================ */
/* NOTE: high specificity — must beat custom-styles.css (media file, loads
   after this and sets .shopping-cart-btn--lg.custom-icon bg !important) */
.shopping-cart-product a.shopping-cart-btn.button-theme_cart:not(.in-cart) {
    background-color: var(--pcr-ink) !important;         /* dark default (redesign) */
    border-color: var(--pcr-ink) !important;
    color: #fff !important;
    fill: #fff !important;
    border-radius: 12px !important;
    min-height: 48px !important;
    font-family: var(--pcr-font) !important;
    transition: background-color .3s ease, border-color .3s ease, color .3s ease !important;
}

.shopping-cart-product a.shopping-cart-btn.button-theme_cart:not(.in-cart):hover {
    background-color: var(--pcr-accent) !important;     /* #9067a8 */
    border-color: var(--pcr-accent) !important;
    color: #fff !important;
    fill: #fff !important;
}

/* force the cart icon white on the dark / purple button */
.shopping-cart-product a.shopping-cart-btn .cart-icon,
.shopping-cart-product a.shopping-cart-btn img {
    filter: brightness(0) invert(1) !important;
}

/* added-to-cart / "Оформить" state -> purple */
.shopping-cart-product a.shopping-cart-btn.in-cart,
.shopping-cart-product a.in-cart.button-theme {
    background-color: var(--pcr-accent) !important;     /* #9067a8 */
    border-color: var(--pcr-accent) !important;
    color: #fff !important;
    border-radius: 12px !important;
    min-height: 48px !important;
}

.shopping-cart-product a.shopping-cart-btn.in-cart:hover,
.shopping-cart-product a.in-cart.button-theme:hover {
    background-color: #7d5896 !important;
    border-color: #7d5896 !important;
}

/* quantity stepper: rounded to match the redesign (rounded-xl) */
.shopping-cart-product .input-number {
    border-radius: 12px !important;
}

/* ============================================================
   Round 5 — fixes
   ============================================================ */

/* #1 content: no rounding (card already clips its corners) */
.product-card-v2__content {
    border-radius: 0 !important;
}

/* #4 primary button: kill focus/hover outline & focus ring */
.product-card-v2 .st-button_primary:hover,
.product-card-v2 .st-button_primary:focus,
.product-card-v2 .st-button_primary:focus-visible,
.product-card-v2 .st-button_primary:active {
    outline: none !important;
    box-shadow: none !important;
}

/* #2 "Узнать цену / о наличии" button — same look as the "В корзину" button */
.product-card-v2 .st-button_not-availbe {
    background-color: var(--pcr-accent) !important;     /* #9067a8 */
    border-color: var(--pcr-accent) !important;
    color: #fff !important;
    fill: #fff !important;
}

.product-card-v2 .st-button_not-availbe:hover {
    background-color: var(--pcr-accent-hover) !important;   /* #7a569a */
    border-color: var(--pcr-accent-hover) !important;
    color: #fff !important;
    fill: #fff !important;
    outline: none !important;
    box-shadow: none !important;
}

.product-card-v2 .st-button_not-availbe .st-button__title,
.product-card-v2 .st-button_not-availbe .st-button__text,
.product-card-v2 .st-button_not-availbe .st-button__sub-title {
    color: #fff !important;
}

/* #5 sale badge inset from the card corner (was flush) */
.product-card-v2 .product-card-sell-badge_top {
    top: 8px !important;
    left: 8px !important;
}

/* #3 cart icon -> redesign lucide "ShoppingBag" (CSS mask, white) */
.product-card-v2 .st-button_add-to-cart .st-button__icon,
.product-card-v2 .st-button_add-to-cart .st-button__icon_cart,
.shopping-cart-product a.shopping-cart-btn .cart-icon,
.shopping-cart-product a.shopping-cart-btn > img {
    display: none !important;
}

.product-card-v2 .st-button_add-to-cart,
.shopping-cart-product a.shopping-cart-btn {
    gap: 0 !important;
}

.product-card-v2 .st-button_add-to-cart::before,
.shopping-cart-product a.shopping-cart-btn::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-right: 8px;
    background-color: #fff;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* detail buy button: white icon (dark default + purple hover) */
.shopping-cart-product a.shopping-cart-btn.button-theme_cart:not(.in-cart)::before,
.shopping-cart-product a.shopping-cart-btn.button-theme_cart:not(.in-cart):hover::before {
    background-color: #fff !important;
}

/* generic st-button default fill (#f1f1f1). `body` prefix raises specificity
   above custom-styles.css (media file, loads later, sets bg transparent).
   Card "В корзину" primary stays purple via .product-card-v2 rules (higher). */
body .st-button,
body .st-button.w-100 {
    background-color: #f1f1f1 !important;
    border-color: #f1f1f1 !important;
}

/* ============================================================
   PRODUCT DETAIL PAGE — redesign port (bouquets)
   Scope: .product-card.pcd  (catalog/product-page.html)
   ============================================================ */

/* --- 2-column hero --- */
.pcd .pcd-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
    max-width: 1290px;
    margin: 16px auto 0;
}

@media (max-width: 991px) {
    .pcd .pcd-hero {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* --- Left: image + thumbnails --- */
.pcd-hero__media {
    width: 100%;
    min-width: 0;
}

.pcd-hero__media #sync1 {
    border-radius: 24px;
    overflow: hidden;
    background: linear-gradient(135deg, #ede4f5, #c9aee0);
    box-shadow: 0 12px 48px rgba(144, 103, 168, 0.25);
}

.pcd-hero__media #sync1 .item,
.pcd-hero__media #sync1 .item img {
    border-radius: 24px;
    width: 100%;
}

.pcd-hero__media #sync1 .item img {
    object-fit: cover;
    display: block;
}

.pcd-hero__media #sync2 {
    margin-top: 1rem !important;
}

.pcd-hero__media #sync2 .item {
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
}

.pcd-hero__media #sync2 .item img {
    border-radius: 12px;
    object-fit: cover;
}

/* --- Right: info column --- */
.pcd-hero__info {
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-family: var(--pcr-font);
    min-width: 0;
}

/* badges */
.pcd-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

.pcd-badge {
    display: inline-block;
    border-radius: 999px;
    background: #f3eef8;
    color: var(--pcr-accent);
    font-family: var(--pcr-font);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    padding: 4px 12px;
}

/* title + sku */
.pcd-hero__head {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pcd .pcd-title {
    font-family: var(--pcr-font) !important;
    font-size: 32px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.5px;
    color: var(--pcr-ink) !important;
    margin: 0 !important;
}

.pcd .pcd-sku {
    font-family: var(--pcr-font);
    font-size: 13px;
    color: #8870a0;
}

/* availability */
.pcd .pcd-avail {
    font-family: var(--pcr-font);
    font-size: 14px;
    color: #6b5180;
    display: flex;
    gap: 6px;
    align-items: baseline;
    margin: 0;
}

/* description */
.pcd .pcd-desc {
    font-family: var(--pcr-font);
    font-size: 14px;
    line-height: 1.6;
    color: #6b5180;
}

/* meta: share + rating on one row */
.pcd .pcd-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
}

/* --- price + qty + buy block --- */
.pcd .pcd-buy {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pcd .pcd-buy .product-card__personal-cost {
    font-family: var(--pcr-font);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    margin: 0;
}

/* final (current) price — big */
.pcd .pcd-buy .product-card__personal-cost > strong {
    font-family: var(--pcr-font);
    font-size: 30px;
    font-weight: 600;
    color: var(--pcr-ink);
}

/* "Цена:" label — muted, own line */
.pcd .pcd-buy .product-card__personal-cost > span {
    font-size: 13px;
    color: #8870a0;
    flex-basis: 100%;
    order: -1;
}

/* old / original price row */
.pcd .pcd-buy .product-card__main-cost {
    font-family: var(--pcr-font);
    font-size: 14px;
    color: #8870a0;
    flex-basis: 100%;
    order: 6;
}

.pcd .pcd-buy .product-card__main-cost span {
    color: var(--pcr-accent);
    text-decoration: line-through;
}

/* --- delivery info grid --- */
.pcd .pcd-delivery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.pcd .pcd-delivery__item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #ede4f5;
    background: #faf8fd;
    border-radius: 12px;
    padding: 10px 12px;
}

.pcd .pcd-delivery__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #f3eef8;
    color: var(--pcr-accent);
}

.pcd .pcd-delivery__icon svg {
    width: 15px;
    height: 15px;
}

.pcd .pcd-delivery__text {
    min-width: 0;
}

.pcd .pcd-delivery__t {
    font-family: var(--pcr-font);
    font-size: 12px;
    font-weight: 600;
    color: var(--pcr-ink);
    margin: 0;
    line-height: 1.25;
}

.pcd .pcd-delivery__d {
    font-family: var(--pcr-font);
    font-size: 11px;
    color: #8870a0;
    margin: 0;
    line-height: 1.25;
}

/* --- disclaimer note --- */
.pcd .pcd-note {
    border: 1px solid #f0eaf7;
    background: #faf8fd;
    border-radius: 12px;
    padding: 12px 14px;
    font-family: var(--pcr-font);
    font-size: 12px;
    line-height: 1.6;
    color: #6b5180;
}

.pcd .pcd-note p {
    margin: 0;
}

/* ---- detail round 2: fixes ---- */

/* force media full width so owl-carousel initialises at the column width */
.pcd .pcd-hero__media {
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

.pcd .pcd-hero__media #sync1 {
    width: 100% !important;
    max-width: 520px;
    margin: 0 !important;
}

.pcd .pcd-hero__media #sync1 .item {
    height: auto !important;
}

.pcd .pcd-hero__media #sync1 .item img {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* left-align info column (theme centers product content) */
.pcd .pcd-hero__info,
.pcd .pcd-hero__info .product-card__personal-cost,
.pcd .pcd-buy,
.pcd .pcd-buy * {
    text-align: left !important;
}

.pcd .shopping-cart-product {
    justify-content: flex-start !important;
}

/* availability -> plain line (kill theme gray box) */
.pcd .pcd-avail {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.pcd .pcd-avail ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline;
}

.pcd .pcd-avail .product-card__discription-title {
    font-weight: 600;
    color: var(--pcr-ink);
}

/* ---- detail round 3 ---- */

/* image: radius+shadow on the image itself, drop the gradient plate */
.pcd .pcd-hero__media #sync1 {
    background: none !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.pcd .pcd-hero__media #sync1 .item img {
    border-radius: 24px !important;
    background: #f5f0fa;
    box-shadow: 0 12px 48px rgba(144, 103, 168, 0.25);
    margin-bottom: 0 !important;
}

/* left-align the whole info column (theme centers product content) */
.pcd .pcd-hero__info,
.pcd .pcd-hero__info * {
    text-align: left !important;
}

/* push hero below the breadcrumb */
.pcd .pcd-hero {
    margin-top: 64px;
    padding-top: 10px;
}

/* ---- detail round 4 ---- */

/* hide the empty "Наличие:" line (redesign has none in hero) */
.pcd .pcd-avail {
    display: none !important;
}

/* show + style the quantity stepper like the redesign (rounded-xl) */
.pcd .shopping-cart-product .input-number {
    display: flex !important;
    height: 48px !important;
    min-width: 118px !important;
    max-width: 118px !important;
    border: 1px solid #e0d4ed !important;
    border-radius: 12px !important;
    background: #fff !important;
    align-items: center;
}

.pcd .shopping-cart-product .input-number input[type="number"] {
    font-family: var(--pcr-font) !important;
    font-size: 15px !important;
    color: var(--pcr-ink) !important;
}

/* collection badge = same lavender pill */
.pcd-badge--collection {
    background: #f3eef8;
    color: var(--pcr-accent);
}

/* ---- detail round 5: match redesign weight ---- */

/* bigger title (redesign ~36px) */
.pcd .pcd-title {
    font-size: 36px !important;
    line-height: 1.15 !important;
}

@media (max-width: 575px) {
    .pcd .pcd-title { font-size: 26px !important; }
}

/* price: hide the "Цена:" label, big number, inline old price */
.pcd .pcd-buy .product-card__personal-cost > span {
    display: none !important;
}

.pcd .pcd-buy .product-card__personal-cost > strong {
    font-size: 32px !important;
    line-height: 1 !important;
}

.pcd .pcd-buy .product-card__main-cost {
    flex-basis: auto !important;
    order: 0 !important;
    font-size: 18px !important;
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
}

/* prev / next product -> rounded pill buttons (redesign) */
.pcd .product-card__navigation {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    max-width: 1290px;
    margin: 0 auto;
}

.pcd .product-card__navigation a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e0d4ed !important;
    border-radius: 12px !important;
    padding: 9px 16px !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    color: #6b5180 !important;
    background: #fff !important;
    transition: border-color .2s, color .2s, background .2s;
}

.pcd .product-card__navigation a:hover {
    border-color: var(--pcr-accent) !important;
    color: var(--pcr-accent) !important;
    background: #faf8fd !important;
}

.pcd .product-card__navigation .product-card__nav-next {
    margin-left: auto;
}

/* image slider: arrows ON the image + dots overlay (redesign) */
.pcd .pcd-hero__media #sync1 {
    position: relative;
}

.pcd .pcd-hero__media #sync1 .owl-next,
.pcd .pcd-hero__media #sync1 .owl-prev {
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%);
    width: 40px !important;
    height: 40px !important;
    border-radius: 999px !important;
    background-color: rgba(255, 255, 255, 0.8) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    z-index: 3;
}

.pcd .pcd-hero__media #sync1 .owl-prev {
    left: 12px !important;
    right: auto !important;
}

.pcd .pcd-hero__media #sync1 .owl-next {
    right: 12px !important;
    left: auto !important;
}

.pcd .pcd-hero__media #sync1 .owl-dots {
    display: flex !important;
    position: absolute;
    bottom: 14px;
    left: 0;
    right: 0;
    justify-content: center;
    gap: 6px;
    z-index: 3;
    top: auto !important;
}

.pcd .pcd-hero__media #sync1 .owl-dots .owl-dot span {
    margin: 0 !important;
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.6) !important;
}

.pcd .pcd-hero__media #sync1 .owl-dots .owl-dot.active span {
    width: 22px;
    border-radius: 999px;
    background: #fff !important;
}

/* ---- detail round 6: new buy structure (price / actions row) ---- */

/* price row */
.pcd .pcd-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    font-family: var(--pcr-font);
    margin: 0;
}

.pcd .pcd-price__now {
    font-size: 30px;
    font-weight: 600;
    color: var(--pcr-ink);
    line-height: 1;
}

.pcd .pcd-price__old {
    font-size: 18px;
    color: var(--pcr-accent);
    text-decoration: line-through;
}

.pcd .pcd-price__unit {
    font-size: 14px;
    color: #8870a0;
}

.pcd .pcd-price__total {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    margin-left: 8px;
}

.pcd .pcd-price__total[hidden] { display: none; }

.pcd .pcd-price__total-sum {
    font-size: 30px;
    font-weight: 600;
    color: var(--pcr-accent);
    line-height: 1;
}

.pcd .pcd-price__total-note {
    font-size: 14px;
    color: #8870a0;
}

/* actions: one row, gradient divider above (redesign) */
.pcd .pcd-actions {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding-top: 24px;
    border-top: none !important;
    margin: 4px 0 0 !important;
    justify-content: flex-start !important;
    position: relative;
}

.pcd .pcd-actions::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(to right, transparent, #ddd0ea, transparent);
}

/* breadcrumbs -> redesign (Title Case, muted) */
.breadcrumbs,
.breadcrumbs a,
.breadcrumbs span,
.breadcrumbs li {
    text-transform: none !important;
    font-family: var(--pcr-font) !important;
    font-size: 13px !important;
    letter-spacing: 0 !important;
}

.breadcrumbs a {
    color: #8870a0 !important;
    transition: color .2s ease;
}

.breadcrumbs a:hover {
    color: var(--pcr-accent) !important;
}

/* qty stepper with unit label: [-] 1 букет [+] */
.pcd .pcd-actions .input-number.pcd-qty {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 48px !important;
    min-width: 178px !important;
    max-width: none !important;
    border: 1px solid #e0d4ed !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 0 8px !important;
    flex: 0 0 auto;
}

.pcd .pcd-actions .pcd-qty .order-down { order: 0; }
.pcd .pcd-actions .pcd-qty input[type="number"] { order: 1; }
.pcd .pcd-actions .pcd-qty__unit { order: 2; }
.pcd .pcd-actions .pcd-qty .order-up { order: 3; }

.pcd .pcd-actions .pcd-qty input[type="number"] {
    width: auto;
    min-width: 0 !important;
    text-align: center;
    font-family: var(--pcr-font) !important;
    font-size: 15px !important;
    color: var(--pcr-ink) !important;
    border: none !important;
    padding: 0 !important;
}

.pcd .pcd-actions .pcd-qty__unit {
    font-family: var(--pcr-font);
    font-size: 15px;
    color: var(--pcr-ink);
    white-space: nowrap;
}

.pcd .pcd-actions .pcd-qty .order-down,
.pcd .pcd-actions .pcd-qty .order-up {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 auto;
    border: none !important;
    border-radius: 8px !important;
    background: transparent !important;
    transition: background .2s ease;
}

.pcd .pcd-actions .pcd-qty .order-down:hover,
.pcd .pcd-actions .pcd-qty .order-up:hover {
    background: #faf8fd !important;
}

/* center the - / + line glyphs inside the buttons (theme left-aligns them) */
.pcd .pcd-actions .pcd-qty .order-down,
.pcd .pcd-actions .pcd-qty .order-up {
    position: relative !important;
}

.pcd .pcd-actions .pcd-qty .order-down::before,
.pcd .pcd-actions .pcd-qty .order-up::before,
.pcd .pcd-actions .pcd-qty .order-up::after {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    background-color: #6b5180 !important;
}

/* detail add-to-cart button: no icon (redesign shows text only) */
.pcd .shopping-cart-product a.shopping-cart-btn::before {
    display: none !important;
}

/* add-to-cart fills remaining space (keep it in the row, capped smaller) */
.pcd .pcd-actions .shopping-cart-btn {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 160px;
    max-width: 300px !important;
    justify-content: center;
}

/* square share button next to it */
.pcd .pcd-actions .pcd-share { position: relative; }

.pcd .pcd-actions .pcd-share-sq {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px;
    border: 1px solid #e8dff0 !important;
    border-radius: 12px !important;
    color: var(--pcr-accent) !important;
    background: #fff !important;
    padding: 0 !important;
}

.pcd .pcd-actions .pcd-share-sq:hover {
    background: #faf8fd !important;
    border-color: var(--pcr-accent) !important;
}

.pcd .pcd-actions .pcd-share-sq .icon {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* hide the yandex share popup by default */
.pcd .pcd-actions .share-block__show { display: none; }

/* in-cart "Оформить" button (JS swaps in .st-button.w-100) -> redesign added-state */
.pcd .pcd-actions a.st-button,
.pcd .pcd-actions a.st-button.w-100 {
    background-color: var(--pcr-accent) !important;   /* #9067a8 */
    background-image: none !important;
    border-color: var(--pcr-accent) !important;
    color: #fff !important;
    border-radius: 12px !important;
    min-height: 48px !important;
    height: 48px !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 160px !important;
    max-width: 300px !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.pcd .pcd-actions a.st-button:hover,
.pcd .pcd-actions a.st-button.w-100:hover {
    background-color: #7d5896 !important;
    border-color: #7d5896 !important;
    color: #fff !important;
}

.pcd .pcd-actions a.st-button::after {
    content: "→";
    font-size: 16px;
    line-height: 1;
}

/* #1 prev/next -> compact pills (not full width) */
.pcd .product-card__navigation a {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 48% !important;
}

/* tablet/mobile (<=767px): nav padding, kill arrow-icon negative margins, tighter hero */
@media (max-width: 767px) {
    .pcd .product-card__navigation {
        padding: 10px 0 !important;
    }
    .pcd .product-card__nav-next .icon,
    .pcd .product-card__nav-prev .icon {
        margin: 0 !important;
    }
    .pcd .pcd-hero {
        margin-top: 20px !important;
    }
}

/* mobile: keep prev/next on one line, smaller so both fit */
@media (max-width: 575px) {
    .pcd .product-card__navigation {
        gap: 8px;
    }
    .pcd .product-card__navigation a {
        max-width: none !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        height: auto !important;
        justify-content: center;
        white-space: nowrap;
        font-size: 12px !important;
        padding: 8px 10px !important;
        gap: 4px;
    }
    .pcd .product-card__navigation a .icon {
        flex: 0 0 auto;
    }
}

/* ============================================================
   #7 Care recommendations ("Рекомендации по уходу") -> redesign
   Scoped to the care block (has the icon grid).
   ============================================================ */
.custom-description:has(.custom-description__wrapper) {
    text-align: center;
    font-family: var(--pcr-font);
    background: linear-gradient(180deg, #faf8fd 0%, #ffffff 100%);
    padding: 64px 20px;
    border-radius: 24px;
    margin: 24px 0;
}

/* "Полезные советы" pill above the heading */
.custom-description:has(.custom-description__wrapper) h2 {
    font-family: var(--pcr-font) !important;
    font-weight: 400 !important;
    color: var(--pcr-ink) !important;
    font-size: 36px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    max-width: 430px !important;
    margin: 0 auto 48px !important;
}

.custom-description:has(.custom-description__wrapper) h2::before {
    content: "Полезные советы";
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto 14px;
    padding: 5px 16px;
    border-radius: 999px;
    background: #f3eef8;
    color: var(--pcr-accent);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

/* icons -> soft white shadowed circle */
.custom-description:has(.custom-description__wrapper) .custom-description__wrapper {
    gap: 24px !important;
    justify-items: center;
    max-width: 1000px;
    margin: 0 auto;
}

.custom-description__wrapper__item {
    align-items: center !important;
    text-align: center !important;
    gap: 16px !important;
}

.custom-description__wrapper__item img {
    background: #fff !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 20px rgba(144, 103, 168, 0.18) !important;
    width: 108px !important;
    height: 108px !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    object-fit: contain !important;
    transition: box-shadow .3s ease;
}

.custom-description__wrapper__item:hover img {
    box-shadow: 0 8px 28px rgba(144, 103, 168, 0.3) !important;
}

.custom-description__wrapper__item span {
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    color: #4a3a5c !important;
    line-height: 1.5 !important;
    max-width: 150px !important;
    margin: 0 auto !important;
}

/* #4 product tags -> outline pills (redesign) */
.pcd .pcd-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pcd .pcd-tag {
    display: inline-block;
    border: 1px solid #e8dff0;
    border-radius: 999px;
    padding: 5px 14px;
    font-family: var(--pcr-font);
    font-size: 12px;
    color: #6b5180;
    line-height: 1.4;
}

/* ============================================================
   detail round 7 — button padding / nav border / slider / share
   ============================================================ */

/* symmetric button padding (theme left-pads 50px for the icon slot) */
.pcd .pcd-actions .shopping-cart-btn,
.pcd .pcd-actions a.st-button,
.pcd .pcd-actions a.st-button.w-100 {
    padding: 0 20px !important;
}

/* prev/next nav: no border-bottom line */
.pcd .product-card__navigation {
    border-bottom: none !important;
}

/* thumbnails strip (#sync2): full width so owl sizes thumbs */
.pcd .pcd-hero__media #sync2 {
    width: 100% !important;
    max-width: none !important;
    display: block !important;
}

/* main slider arrows -> clean circular chevrons over the image */
.pcd .pcd-hero__media #sync1 .owl-prev,
.pcd .pcd-hero__media #sync1 .owl-next {
    background-image: none !important;
    background-color: rgba(255, 255, 255, 0.85) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.pcd .pcd-hero__media #sync1 .owl-prev::after,
.pcd .pcd-hero__media #sync1 .owl-next::after {
    content: "";
    width: 18px;
    height: 18px;
    background-color: #2b2238;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.pcd .pcd-hero__media #sync1 .owl-prev::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
}

.pcd .pcd-hero__media #sync1 .owl-next::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}

/* SKU under the title -> hidden (moved to the bottom code line) */
.pcd .pcd-sku {
    display: none !important;
}

/* product flags on the detail image */
.pcd .product-item__flag-content {
    left: 24px !important;
}

/* product code line at the bottom — subtle / native */
.pcd .pcd-code {
    font-family: var(--pcr-font);
    font-size: 12px;
    color: #a99cb5;
    letter-spacing: .01em;
    margin-top: 4px;
}

/* product tab content: drop the wide left/right padding (care section full width) */
.product-card-content .tab-content,
.tabs-content .tab-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: auto !important;
}

.product-card-container .product-card-content {
    width: calc(100%) !important;
}

/* ============================================================
   product tabs (Описание / Характеристики) -> redesign toggle
   ============================================================ */
.product-card-content .tabs-content {
    text-align: center;
}

.product-card-content .tabs {
    display: inline-flex !important;
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 100% !important;
    height: auto !important;
    gap: 4px;
    padding: 4px !important;
    margin: 0 auto !important;
    background: #faf8fd;
    border: 1px solid #ede4f5;
    border-radius: 12px;
    list-style: none;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
}

.product-card-content .tabs li {
    list-style: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 9px 22px !important;
    border-radius: 8px !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    color: #8870a0 !important;
    background: transparent !important;
    cursor: pointer;
    transition: color .2s ease, background .2s ease, box-shadow .2s ease;
    white-space: nowrap;
    border: none !important;
    display: flex !important;
    align-items: center;
}

.product-card-content .tabs li::before,
.product-card-content .tabs li::marker {
    content: none !important;
}

.product-card-content .tabs li:hover {
    color: var(--pcr-accent) !important;
}

.product-card-content .tabs li.active {
    background: #fff !important;
    color: var(--pcr-ink) !important;
    font-weight: 500 !important;
    box-shadow: 0 1px 4px rgba(144, 103, 168, 0.18) !important;
}

/* ============================================================
   CART / CHECKOUT PAGE (`/cart/`, SIMPLE_CART_MODE) -> redesign
   Ported from `redesign/client/src/pages/Checkout.tsx`.
   Scoped under `.cart-rd` so nothing else on the site is touched.
   ============================================================ */
body .cart-rd {
    font-family: var(--pcr-font);
    background: #fff;
    padding-bottom: 64px;
}

body .cart-rd .container {
    max-width: 1290px !important;
}

/* --- Heading --- */
body .cart-rd__head {
    padding: 20px 0 0;
}

body .cart-rd__title {
    margin: 0 !important;
    font-family: var(--pcr-font);
    font-size: 40px;
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: -0.5px;
    color: var(--pcr-ink);
    text-transform: none !important;
    text-align: left !important;
}

body .cart-rd__subtitle {
    margin: 8px 0 0 !important;
    font-family: var(--pcr-font);
    font-size: 14px;
    line-height: 1.5;
    color: #8870a0;
}

/* --- Two-column grid --- */
/* `.simple-order-form` caps the form at 520px in the theme — undo that. */
body .cart-rd .cart-rd__form,
body .cart-rd form.simple-order-form.cart-rd__form {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* The grid is an inner div, never the <form> itself: the form also holds the
   csrf input and `{{ form.captcha }}`, which renders a real <div> in prod and
   would otherwise become the first grid item and shift both columns. */
body .cart-rd .cart-rd__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 400px;
    align-items: start;
    gap: 32px;
    width: 100% !important;
    max-width: none !important;
    margin: 32px 0 0 !important;
    padding: 0 !important;
}

body .cart-rd__main {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
    order: 1;
}

/* The redesign puts the summary first on mobile and moves the pay button into a
   fixed bottom bar. That slot is taken by the theme's own `.bottom-mobile-menu`
   (fixed, z-index 99), so the summary goes last instead — the button still ends
   up after the form rather than above it. */
body .cart-rd__side {
    order: 2;
    min-width: 0;
}

/* Explicit placement, not auto-flow: anything else the form renders can never
   push the two columns out of row 1 again. */
@media (min-width: 1024px) {
    body .cart-rd .cart-rd__main { grid-column: 1; grid-row: 1; }
    body .cart-rd .cart-rd__side { grid-column: 2; grid-row: 1; position: sticky; top: 24px; }
}

/* `@media` adds no specificity — these must match the base rule's selectors,
   otherwise the two-column desktop grid keeps winning on narrow screens. */
@media (max-width: 1023px) {
    body .cart-rd .cart-rd__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        margin-top: 24px !important;
    }

    body .cart-rd .cart-rd__main,
    body .cart-rd .cart-rd__side { grid-column: 1; grid-row: auto; }

    body .cart-rd .cart-rd__title { font-size: 30px; }
}

/* the phone breakpoint lives at the very end of this file — see "CART — mobile" */

/* --- Card shell --- */
body .cart-rd__card {
    border: 1px solid #ede4f5;
    border-radius: var(--pcr-radius);
    background: #fff;
    padding: 24px;
    box-shadow: 0 4px 24px rgba(144, 103, 168, 0.06);
}

body .cart-rd__card-title {
    margin: 0 0 16px !important;
    font-family: var(--pcr-font);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--pcr-ink);
    text-transform: none !important;
}

/* --- Kill theme list styling inside the cart --- */
body .cart-rd ul,
body .cart-rd li {
    list-style: none !important;
    margin: 0;
    padding: 0;
}

body .cart-rd li::before,
body .cart-rd li::marker {
    content: none !important;
}

/* ------------------------------------------------------------
   1. РЎРїРѕСЃРѕР± РїРѕР»СѓС‡РµРЅРёСЏ вЂ” two big tab buttons
   ------------------------------------------------------------ */
body .cart-rd__methods {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

body .cart-rd__method--delivery { order: 1; }
body .cart-rd__method--pickup { order: 2; }

body .cart-rd__method input {
    position: absolute !important;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

body .cart-rd__method-label {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 !important;
    padding: 13px 16px !important;
    border: 2px solid #ede4f5;
    border-radius: 12px;
    background: #fff;
    font-family: var(--pcr-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    color: #8870a0;
    text-transform: none !important;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}

body .cart-rd__method-label:hover {
    border-color: #d9c8ea;
}

body .cart-rd__method input:checked + .cart-rd__method-label {
    border-color: var(--pcr-accent);
    background: #f7f2fb;
    color: var(--pcr-ink);
}

body .cart-rd__method-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

/* ------------------------------------------------------------
   Form fields вЂ” static label above a soft rounded input
   ------------------------------------------------------------ */
body .cart-rd__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 12px;
}

body .cart-rd__fields > .form-group,
body .cart-rd__fields > .cart-extra-field {
    min-width: 0;
}

body .cart-rd__field--wide,
body .cart-rd .cart-extra-field--label,
body .cart-rd .cart-extra-field--textarea,
body .cart-rd .cart-extra-field--f4 {
    grid-column: 1 / -1;
}

body .cart-rd .form-group {
    display: flex !important;
    flex-direction: column-reverse;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
}

body .cart-rd .form-group .label-name,
body .cart-rd .form-group-input-label {
    position: static !important;
    display: block !important;
    width: auto !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    font-family: var(--pcr-font);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    color: #6b5180;
    text-transform: none !important;
    background: none !important;
    transform: none !important;
    pointer-events: none;
}

/* the theme floats `.content-name` over the input — pin it back into flow */
body .cart-rd .form-group .label-name .content-name {
    position: static !important;
    display: block !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    color: #6b5180 !important;
    background: none !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    transform: none !important;
}

body .cart-rd .form-control {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 46px;
    margin: 0 !important;
    padding: 12px 16px !important;
    border: 1px solid #e0d4ed !important;
    border-radius: 12px !important;
    background: #fff !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: var(--pcr-ink) !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease;
}

body .cart-rd .form-control::placeholder {
    color: #b7a6cc;
}

body .cart-rd .form-control:focus {
    border-color: var(--pcr-accent) !important;
    box-shadow: 0 0 0 3px rgba(144, 103, 168, 0.15) !important;
    outline: none !important;
}

body .cart-rd textarea.form-control {
    height: 92px !important;
    min-height: 92px;
    resize: vertical;
}

/* --- Native date picker --- */
/* `::-webkit-datetime-edit` renders ~2px taller than a plain text line, which
   would leave the date field out of line with the select next to it. */
body .cart-rd input[type="date"].form-control {
    -webkit-appearance: none;
    appearance: none;
    height: 46px !important;
    cursor: pointer;
}

body .cart-rd input[type="date"].form-control::-webkit-calendar-picker-indicator {
    width: 18px;
    height: 18px;
    padding: 0;
    opacity: .55;
    cursor: pointer;
    filter: invert(43%) sepia(21%) saturate(950%) hue-rotate(238deg) brightness(90%);
}

body .cart-rd input[type="date"].form-control::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

body .cart-rd input[type="date"].form-control::-webkit-datetime-edit {
    color: var(--pcr-ink);
}

body .cart-rd input[type="date"].form-control:invalid::-webkit-datetime-edit {
    color: #b7a6cc;
}

body .cart-rd .error-text {
    display: block;
    margin-top: 6px;
    font-family: var(--pcr-font);
    font-size: 12px;
    color: #d0455f;
}

body .cart-rd .form-group--error .form-control {
    border-color: #e39aa9 !important;
}

/* --- Delivery option checkboxes --- */
body .cart-rd__checks {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

body .cart-rd__check {
    display: flex !important;
    align-items: center;
    gap: 12px;
    margin: 0 !important;
    padding: 8px 0 !important;
    cursor: pointer;
}

body .cart-rd__check input {
    position: absolute !important;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

body .cart-rd__check-box {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 2px solid #d9c8ea;
    border-radius: 6px;
    background: #fff no-repeat center;
    transition: border-color .2s ease, background-color .2s ease;
}

body .cart-rd__check:hover .cart-rd__check-box {
    border-color: var(--pcr-accent);
}

body .cart-rd__check input:checked + .cart-rd__check-box {
    border-color: var(--pcr-accent);
    background-color: var(--pcr-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
    background-size: 12px 12px;
}

body .cart-rd__check-text {
    font-family: var(--pcr-font);
    font-size: 14px;
    line-height: 1.4;
    color: #4a3a5c;
    text-transform: none !important;
}

body .cart-rd__note {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid #ede4f5;
    border-radius: 12px;
    background: #f7f2fb;
    font-family: var(--pcr-font);
    font-size: 14px;
    line-height: 1.5;
    color: #6b5180;
}

/* --- Extra fields --- */
/* Grid cells stretch to the tallest in the row; anchoring the control to the
   bottom of its cell keeps inputs level even when one label wraps to two lines
   or a field type renders no label at all. */
body .cart-rd .cart-extra-field {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

body .cart-rd .cart-extra-field > .form-group {
    margin-top: auto !important;
}

body .cart-rd__fields > .form-group {
    height: 100%;
}

body .cart-rd .cart-extra-field--label .form-group-label {
    padding: 14px 16px;
    border: 1px solid #ede4f5;
    border-radius: 12px;
    background: #f7f2fb;
    font-family: var(--pcr-font);
    font-size: 13px;
    line-height: 1.5;
    color: #6b5180;
}

body .cart-rd .cart-extra-field.recipient-title .form-group-label {
    padding: 0;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--pcr-ink);
}

/* --- Custom select widget --- */
body .cart-rd .select {
    position: relative;
}

body .cart-rd .select__value-content {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
}

body .cart-rd .select__value-content .text {
    margin: 0 !important;
    font-family: var(--pcr-font);
    font-size: 14px;
    color: var(--pcr-ink);
}

body .cart-rd .select__content {
    border: 1px solid #e0d4ed;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(144, 103, 168, 0.16);
    overflow: hidden;
}

body .cart-rd .select__option {
    padding: 9px 16px;
    font-family: var(--pcr-font);
    font-size: 14px;
    color: #4a3a5c;
    cursor: pointer;
}

body .cart-rd .select__option:hover {
    background: #f7f2fb;
    color: var(--pcr-ink);
}

/* ------------------------------------------------------------
   3. РџСѓРЅРєС‚ СЃР°РјРѕРІС‹РІРѕР·Р° вЂ” selectable cards
   ------------------------------------------------------------ */
body .cart-rd__points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 575px) {
    body .cart-rd .cart-rd__points,
    body .cart-rd .cart-rd__fields { grid-template-columns: minmax(0, 1fr); }
}

body .cart-rd__point input {
    position: absolute !important;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

body .cart-rd__point-label {
    display: block !important;
    height: 100%;
    margin: 0 !important;
    padding: 20px !important;
    border: 2px solid #ede4f5;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease;
}

body .cart-rd__point-label:hover { border-color: #d9c8ea; }

body .cart-rd__point input:checked + .cart-rd__point-label {
    border-color: var(--pcr-accent);
    background: #f7f2fb;
}

body .cart-rd__point-head {
    display: flex;
    align-items: center;
    gap: 8px;
}

body .cart-rd__point-pin {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f3eef8;
    color: var(--pcr-accent);
}

body .cart-rd__point-pin svg { width: 16px; height: 16px; }

body .cart-rd__point-name {
    flex: 1 1 auto;
    font-family: var(--pcr-font);
    font-size: 15px;
    font-weight: 600;
    color: var(--pcr-ink);
}

body .cart-rd__point-check {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 2px solid #d9c8ea;
    border-radius: 50%;
    background: #fff no-repeat center;
    transition: border-color .2s ease, background-color .2s ease;
}

body .cart-rd__point input:checked + .cart-rd__point-label .cart-rd__point-check,
body .cart-rd__payment input:checked + .cart-rd__payment-label .cart-rd__payment-check {
    border-color: var(--pcr-accent);
    background-color: var(--pcr-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
    background-size: 12px 12px;
}

body .cart-rd__point-address,
body .cart-rd__point-hours {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    font-family: var(--pcr-font);
    font-size: 13px;
    line-height: 1.4;
    color: #8870a0;
}

body .cart-rd__point-hours {
    margin-top: 4px;
}

body .cart-rd__point-hours svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
}

/* ------------------------------------------------------------
   5. РЎРїРѕСЃРѕР± РѕРїР»Р°С‚С‹
   ------------------------------------------------------------ */
body .cart-rd__payments {
    display: flex;
    flex-direction: column;
    gap: 12px;
}


body .cart-rd__payment input {
    position: absolute !important;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

body .cart-rd__payment-label {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0 !important;
    padding: 16px !important;
    border: 2px solid #ede4f5;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease;
}

body .cart-rd__payment input:checked + .cart-rd__payment-label {
    border-color: var(--pcr-accent);
    background: #f7f2fb;
}

body .cart-rd__payment-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    color: var(--pcr-accent);
    box-shadow: 0 1px 4px rgba(144, 103, 168, 0.18);
}

body .cart-rd__payment-icon svg { width: 20px; height: 20px; }

body .cart-rd__payment-text {
    flex: 1 1 auto;
    min-width: 0;
}

body .cart-rd__payment-name {
    display: block;
    font-family: var(--pcr-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--pcr-ink);
}

body .cart-rd__payment-note {
    display: block;
    margin-top: 2px;
    font-family: var(--pcr-font);
    font-size: 12px;
    line-height: 1.4;
    color: #8870a0;
}

body .cart-rd__payment-check {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 2px solid #d9c8ea;
    border-radius: 50%;
    background: #fff no-repeat center;
}

body .cart-rd__paybadges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
}

body .cart-rd__paybadge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid #ede4f5;
    border-radius: 8px;
    background: #fff;
    font-family: var(--pcr-font);
    font-size: 12px;
    line-height: 1.2;
    color: #6b5180;
}

body .cart-rd__paybadge svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    color: var(--pcr-accent);
}

body .cart-rd__paybadge-letter {
    flex: 0 0 auto;
    width: 14px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    color: var(--pcr-accent);
    text-align: center;
}

/* ------------------------------------------------------------
   RIGHT COLUMN вЂ” order summary
   ------------------------------------------------------------ */
body .cart-rd__summary {
    border: 1px solid #ede4f5;
    border-radius: var(--pcr-radius);
    background: #fff;
    padding: 24px;
    box-shadow: 0 8px 32px rgba(144, 103, 168, 0.10);
}

body .cart-rd__hr {
    height: 1px;
    margin: 20px 0;
    background: #ede4f5;
}

body .cart-rd .shopping-cart,
body .cart-rd .shopping-cart-list,
body .cart-rd .delivery-cart,
body .cart-rd .delivery-total {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}

body .cart-rd .shopping-cart-list {
    display: flex !important;
    flex-direction: column;
    gap: 16px;
}

/* --- Cart line item --- */
body .cart-rd .shopping-cart-item {
    position: relative;
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-areas:
        "img name"
        "img meta";
    column-gap: 12px;
    row-gap: 8px;
    align-items: center;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}

body .cart-rd .shopping-cart-item__img {
    grid-area: img;
    display: block !important;
    width: 72px !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 12px;
    background: var(--pcr-image-bg);
    overflow: hidden;
}

body .cart-rd .shopping-cart-item__img img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 12px !important;
    object-fit: cover;
}

body .cart-rd .shopping-cart-item__name {
    grid-area: name;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 24px 0 0 !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: var(--pcr-ink) !important;
    text-transform: none !important;
    text-align: left !important;
}

body .cart-rd .shopping-cart-item__name > span {
    display: block;
    font-size: 11px;
    font-weight: 400;
    color: #a996bf;
}

/* unit price is not part of the redesign summary вЂ” line total only */
body .cart-rd .shopping-cart-item__cost {
    display: none !important;
}

body .cart-rd .shopping-cart-item__numbers {
    grid-area: meta;
    display: flex !important;
    align-items: center;
    gap: 8px;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .cart-rd .shopping-cart-item__total-cost {
    grid-area: meta;
    justify-self: end;
    align-self: center;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: var(--pcr-ink) !important;
    text-align: right !important;
    pointer-events: none;
}

/* --- Quantity stepper --- */
body .cart-rd .input-number {
    position: static !important;
    display: flex !important;
    align-items: center;
    gap: 6px;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}

body .cart-rd .cart-qty-control {
    position: relative !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e0d4ed !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #6b5180;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease;
}

body .cart-rd .cart-qty-control:hover {
    border-color: var(--pcr-accent) !important;
    color: var(--pcr-accent);
}

body .cart-rd .cart-qty-control::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 11px !important;
    height: 1.5px !important;
    margin: 0 !important;
    border-radius: 1px;
    background: currentColor !important;
    transform: translate(-50%, -50%) !important;
}

body .cart-rd .order-down::after {
    content: none !important;
}

body .cart-rd .order-up::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 1.5px !important;
    height: 11px !important;
    margin: 0 !important;
    border-radius: 1px;
    background: currentColor !important;
    transform: translate(-50%, -50%) !important;
}

body .cart-rd .order-down { order: 1; }
body .cart-rd .cart-qty-control-input { order: 2; }
body .cart-rd .shopping-cart-item__uom { order: 3; }
body .cart-rd .order-up { order: 4; }

/* fixed widths keep "+" aligned across rows regardless of the quantity */
body .cart-rd .cart-qty-control-input {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--pcr-ink) !important;
    text-align: center !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

body .cart-rd .cart-qty-control-input::-webkit-outer-spin-button,
body .cart-rd .cart-qty-control-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

body .cart-rd .shopping-cart-item__uom {
    min-width: 44px;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--pcr-ink) !important;
    text-align: left;
    white-space: nowrap;
}

/* --- Remove item --- */
body .cart-rd .shopping-cart-item__delete {
    position: absolute !important;
    top: 0;
    right: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #c9b8db;
    cursor: pointer;
    transition: color .2s ease;
}

body .cart-rd .shopping-cart-item__delete:hover { color: var(--pcr-accent); }

body .cart-rd .shopping-cart-item__delete .icon-svg {
    width: 12px;
    height: 12px;
    fill: currentColor;
}

/* --- Cost breakdown --- */
body .cart-rd .delivery-total--cart ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body .cart-rd .delivery-total--cart li {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body .cart-rd .delivery-total__sm {
    display: block !important;
    font-family: var(--pcr-font) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    color: #6b5180 !important;
    text-transform: none !important;
}

body .cart-rd__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

body .cart-rd__total-label {
    font-family: var(--pcr-font);
    font-size: 16px;
    font-weight: 600;
    color: var(--pcr-ink);
}

body .cart-rd__total-value {
    font-family: var(--pcr-font);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--pcr-ink);
    white-space: nowrap;
}

/* --- Agreement + submit --- */
body .cart-rd .privacy-policy {
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 20px 0 0 !important;
    padding: 0 !important;
}

body .cart-rd .privacy-policy .checkbox {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .cart-rd .privacy-policy input[type="checkbox"] {
    position: absolute !important;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

body .cart-rd .privacy-policy label {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--pcr-font) !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
    color: #a996bf !important;
    text-transform: none !important;
    cursor: pointer;
}

body .cart-rd .privacy-policy label::before {
    content: "" !important;
    position: static !important;
    display: block !important;
    flex: 0 0 auto;
    width: 16px !important;
    height: 16px !important;
    margin: 1px 0 0 !important;
    border: 2px solid #d9c8ea !important;
    border-radius: 5px !important;
    background: #fff no-repeat center !important;
    background-size: 11px 11px !important;
    transform: none !important;
    transition: border-color .2s ease, background-color .2s ease;
}

body .cart-rd .privacy-policy label::after {
    content: none !important;
}

body .cart-rd .privacy-policy input[type="checkbox"]:checked + label::before {
    border-color: var(--pcr-accent) !important;
    background-color: var(--pcr-accent) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") !important;
}

body .cart-rd .privacy-policy label .form-text,
body .cart-rd .privacy-policy label span {
    margin: 0 !important;
    font-family: var(--pcr-font) !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
    color: #a996bf !important;
    text-transform: none !important;
}

body .cart-rd .privacy-policy label a {
    color: var(--pcr-accent) !important;
    text-decoration: underline;
}

body .cart-rd__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 56px;
    margin-top: 16px;
    padding: 0 20px;
    border: 0;
    border-radius: 12px;
    background: var(--pcr-ink);
    font-family: var(--pcr-font);
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    text-transform: none;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(144, 103, 168, 0.22);
    transition: background .3s ease;
}

body .cart-rd__submit:hover { background: var(--pcr-accent); }

body .cart-rd__submit svg { width: 16px; height: 16px; }

body .cart-rd__disclaimer {
    margin: 12px 0 0 !important;
    font-family: var(--pcr-font);
    font-size: 11px;
    line-height: 1.5;
    color: #a996bf;
    text-align: center;
}

/* ============================================================
   CART вЂ” mobile
   Must stay LAST in this file: these selectors have the same
   specificity as the desktop ones above and `@media` adds none,
   so they only win by source order.
   ============================================================ */
@media (max-width: 575px) {
    body .cart-rd .cart-rd__title { font-size: 26px; }

    body .cart-rd .cart-rd__card,
    body .cart-rd .cart-rd__summary { padding: 18px; }

    body .cart-rd .cart-rd__point-label { padding: 16px !important; }

    /* "Доставка по адресу" wraps at this width — keep both tabs the same height */
    body .cart-rd .cart-rd__method-label {
        height: 100%;
        padding: 12px 10px !important;
        font-size: 13px;
        text-align: center;
    }

    body .cart-rd .cart-rd__points,
    body .cart-rd .cart-rd__fields { grid-template-columns: minmax(0, 1fr); }

    /* stepper + line total do not fit on one row on a phone вЂ” give the total its own */
    body .cart-rd .shopping-cart-item {
        grid-template-columns: 64px minmax(0, 1fr);
        grid-template-areas:
            "img name"
            "img meta"
            "img total";
        row-gap: 6px;
        align-items: start;
    }

    body .cart-rd .shopping-cart-item__img {
        align-self: start;
        width: 64px !important;
        height: 64px !important;
    }

    body .cart-rd .shopping-cart-item__total-cost {
        grid-area: total;
        justify-self: start;
        text-align: left !important;
    }

    body .cart-rd .shopping-cart-item__name {
        padding-right: 20px !important;
    }

    body .cart-rd__submit {
        height: 52px;
        font-size: 15px;
    }
}
