/* One product card for city landings, catalog listings, shops and favorites. */
.fl-card {
  --fl-brand:#67b346; --fl-ink:#474646; --fl-muted:#696c69;
  --fl-border:#e7e7e7; --fl-radius:20px; --fl-control-radius:12px;
  --fl-control-height:44px; --fl-motion:180ms;
  --fl-badge-ready:linear-gradient(87.18deg,#12ac50 2.27%,#16db94 100%);
  --fl-badge-gift:linear-gradient(87.18deg,#c51d0e 2.27%,#a9450c 100%);
  --fl-badge-sale:#d91515;
  color:var(--fl-ink); font-family:Onest,Arial,sans-serif; font-size:16px; line-height:1.5;
  box-sizing:border-box;
}
.fl-card *, .fl-card *::before, .fl-card *::after { box-sizing:border-box; }
.fl-card .sf-card-heading { margin:0; padding:0; font:inherit; }
.fl-card .sf-delivery-price { margin:0; color:var(--fl-muted); font-size:13px; line-height:1.4; }
.fl-card .sf-delivery-price:has([data-nearest-delivery-time]) { min-height:2.8em; }
.fl-card .fl-card-details { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:0 12px; border:1px solid var(--fl-border); border-radius:var(--fl-control-radius); background:#fff; color:var(--fl-ink); font-size:16px; font-weight:500; line-height:1.25; text-decoration:none; }
.fl-card .fl-card-details:hover { border-color:#b9b9b9; }
.fl-card .fl-card-details .icon { width:20px; height:20px; }
.fl-card .fl-card-favorite { z-index:2; cursor:pointer; }
.fl-card .fl-card-favorite:focus-visible, .fl-card a:focus-visible { outline:2px solid var(--fl-brand); outline-offset:2px; }
.fl-card .catalog_vote { position:absolute; z-index:3; top:48px; right:8px; display:flex; align-items:center; gap:3px; width:auto; min-height:32px; padding:4px 7px; border:0; border-radius:8px; background:#fff; color:#474646; font:inherit; font-size:12px; cursor:pointer; }
.fl-card .catalog_vote.active { color:#67b346; }
.fl-card .catalog_vote .icon { width:15px; height:15px; }

/* Legacy listing containers keep their URL, pagination and AJAX mechanics. */
.catalog .catalog_grid:has(> .sf-product-card) { grid-template-columns:repeat(4,minmax(0,276px)); justify-content:space-between; gap:24px 22px; max-width:1170px; margin:15px auto 30px; }
.catalog .catalog_grid .sf-product-card { grid-column:auto; width:100%; max-width:276px; margin:0; padding:0; display:flex; text-align:left; }
.catalog .catalog_grid:has(> .sf-product-card) .catalog_item.img { grid-column:auto; min-height:276px; }
.catalog .sf-product-card .catalog_image { display:block; width:100%; height:100%; padding:0; border-radius:0; object-fit:cover; animation:none; background:#eee; }
.catalog .sf-product-card .catalog_title { display:-webkit-box; padding:0; color:inherit; font:inherit; white-space:normal; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.catalog .sf-product-card .catalog_price_now { display:inline; padding:0; color:inherit; font-family:inherit; font-size:24px; font-weight:600; line-height:1.2; }
.catalog .sf-product-card .catalog_price_old { display:inline; padding:0; color:#717171; font-family:inherit; font-size:14px; font-weight:400; line-height:1.2; }
.catalog .sf-product-card .fl-card-favorite { display:grid; }
.catalog .sf-product-card .fl-card-details { width:100%; }
.catalog .sf-product-card .fl-card-title { height:2.8em; }
.catalog .sf-product-card .fl-card-title, .catalog .sf-product-card .fl-card-image { text-decoration:none; }
/* 04. Карточка. Фото 1:1, текст от 14 px, кнопка #67B346.
 * Рамка одна; теней, движения карточки и увеличения картинки при hover нет. */
.fl-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 22px; width:100%; max-width:1170px; margin-inline:auto; }
.fl-card { container:fl-card / inline-size; --fl-price-slot:59px; position:relative; display:flex; flex-direction:column; width:100%; max-width:276px; min-width:0; border-radius:var(--fl-radius); background:white; overflow:hidden; outline:1px solid transparent; transition:outline-color var(--fl-motion); }
.fl-card:focus-within, .fl-card:hover { outline-color:#dedede; }
.fl-card-visual { position:relative; flex:none; aspect-ratio:1; background:#eee; }
.fl-card-image { display:block; padding:0; width:100%; height:100%; overflow:hidden; }
.fl-card-image img { display:block; width:100%; height:100%; object-fit:cover; }
.fl-card-image picture { display:block; width:100%; height:100%; }
/* Избранное прямо на фото: белое сердце с тонким графитовым контуром.
 * Светлая обводка повторяет силуэт для контраста; отдельной подложки и тени нет.
 * Видимый знак 28 px, область нажатия 44 px. Hover не меняет размер/положение. */
.fl-card-favorite { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:10px; background:transparent; }
.fl-card-favorite>.icon { width:28px; height:28px; }
.fl-card-favorite .fl-heart-shape { transition:fill var(--fl-motion),stroke var(--fl-motion); }
.fl-card-favorite[aria-pressed=true] .fl-heart-shape { fill:#ff0756; stroke:#ff0756; }
@media (hover:hover) {
  .fl-card-favorite[aria-pressed=false]:hover .fl-heart-shape { stroke:#ff0756; }
  .fl-card-favorite[aria-pressed=true]:hover .fl-heart-shape { fill:#e90049; stroke:#e90049; }
}
.fl-card-badges { display:flex; flex-direction:column; align-items:flex-start; gap:6px; position:absolute; top:12px; left:12px; pointer-events:none; }
/* Исходные насыщенные бейджи Flawery: белый текст, непрозрачная заливка. */
.fl-card-badge { display:flex; align-items:center; gap:6px; padding:3px 12px; border-radius:20px 0 20px 0; color:#fff; font-size:13px; font-weight:500; line-height:18px; }
.fl-card-badge--top { background:linear-gradient(87.18deg,#0057ce 2.27%,#006da9 100%); }
.fl-card-badge--ready { background:var(--fl-badge-ready); }
.fl-card-badge--express { background:linear-gradient(89.96deg,#8254af -2.77%,#651dff 102.74%); }
.fl-card-badge--gift { background:var(--fl-badge-gift); }
/* Две строки заголовка и одна строка показателя выравнивают соседние карточки. */
.fl-card-body { display:flex; flex-direction:column; flex:1; gap:8px; padding:12px; }
.fl-card-copy { display:flex; flex-direction:column; gap:5px; }
.fl-card-purchase { display:flex; flex-direction:column; gap:8px; margin-top:auto; }
.fl-card-title { display:flex; align-items:flex-start; overflow:hidden; width:100%; height:2.8em; flex:none; padding:0; margin:0; text-align:left; font-size:17px; font-weight:500; line-height:1.4; }
.fl-card-title>span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fl-card-title:hover { color:var(--fl-brand); }
.fl-card a.fl-card-title { overflow:visible; }
.fl-card a.fl-card-title::after { content:""; position:absolute; inset:0; z-index:1; cursor:pointer; }
.fl-card a.fl-card-title:focus-visible::after { outline:2px solid var(--fl-brand); outline-offset:-2px; border-radius:inherit; }
.fl-card a.fl-card-details { position:relative; z-index:2; }

/* Modern landings keep the product's existing purchase runtime in its own document. */
.sf-product-preview { box-sizing:border-box; width:min(1230px,calc(100vw - 40px)); max-width:none; height:calc(100dvh - 60px); max-height:none; padding:0; border:0; border-radius:20px; background:#f7f7f7; overflow:hidden; }
.sf-product-preview::backdrop { background:var(--sf-modal-backdrop,rgba(30,35,31,.56)); }
.sf-product-preview__bar { display:flex; align-items:center; justify-content:space-between; gap:16px; height:48px; padding:0 20px; background:#fff; border-bottom:1px solid #e7e7e7; font:14px Onest,Arial,sans-serif; }
.sf-product-preview__bar a { color:var(--sf-shell-green,#67b346); text-decoration:none; }
.sf-product-preview__close { width:40px; height:40px; border:0; background:transparent; color:#474646; font-size:28px; cursor:pointer; }
.sf-product-preview iframe { display:block; width:100%; height:calc(100% - 48px); border:0; }
.sf-product-preview[aria-busy="true"] iframe { visibility:hidden; }
.sf-product-preview__summary { position:absolute; inset:48px 0 0; padding:12px 20px 40px; overflow:auto; background:#f7f7f7; color:#474646; font:16px/1.3 Onest,Arial,sans-serif; }
.sf-product-preview__summary, .sf-product-preview__summary * { box-sizing:border-box; }
.sf-product-preview__summary[hidden] { display:none; }
.sf-product-preview__summary-content { max-width:1170px; margin:0 auto; }
.sf-product-preview__summary h1 { margin:0; padding:0 0 15px; font-size:30px; font-weight:400; line-height:1; }
.sf-preview-review-space { height:28px; }
.sf-preview-review-space .sf-preview-placeholder { width:75px; height:12px; }
.sf-product-preview__summary-grid { display:grid; grid-template-columns:minmax(0,55fr) minmax(0,45fr); align-items:start; margin-top:15px; }
.sf-preview-left { padding-right:30px; min-width:0; max-width:640px; }
.sf-product-preview__summary-photo { aspect-ratio:1; overflow:hidden; border-radius:16px; background:#dedede; }
.sf-product-preview__summary-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.sf-product-preview__summary-photo img[hidden] { display:none; }
.sf-product-preview__summary-info { padding:30px 30px 15px; border-radius:16px 16px 0 0; background:#fff; }
.sf-preview-description { min-height:115px; padding-bottom:25px; font-size:13px; line-height:1.3; }
.sf-preview-composition { padding-bottom:15px; }
.sf-preview-description > .sf-preview-placeholder { margin-top:7px; }
.sf-preview-description > .sf-preview-placeholder:nth-last-child(2) { width:65%; }
.sf-preview-description > .sf-preview-placeholder:last-child { width:45%; }
.sf-product-preview__summary-badges { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:15px; }
.sf-product-preview__summary-badges[hidden], .sf-preview-composition[hidden] { display:none; }
.sf-product-preview__summary-badges span { padding:3px 12px; border-radius:20px 0 20px 0; color:#fff; font-size:13px; font-weight:500; }
.sf-preview-price-block { margin-bottom:30px; font-size:13px; }
.sf-product-preview__summary-prices { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:5px 0; }
.sf-product-preview__summary-prices strong { color:var(--sf-shell-green,#67b346); font-size:36px; font-weight:500; line-height:1.2; }
.sf-product-preview__summary-prices del { color:#888; font-size:18px; }
.sf-preview-bonus { width:70px !important; margin-top:8px; }
.sf-preview-placeholder { display:block; width:80%; max-width:100%; height:15px; background:#e9e9e9; border-radius:2px; }
.sf-preview-method { padding:15px; margin-bottom:12px; border-radius:10px; font-size:16px; }
.sf-preview-delivery { background:#f3f8ef; }
.sf-preview-method-detail { margin-top:7px; color:#888; font-size:14px; line-height:1.4; }
.sf-preview-method-detail .sf-preview-placeholder { width:50%; margin-top:7px; }
.sf-preview-method-detail .sf-preview-placeholder + .sf-preview-placeholder { width:45%; }
.sf-preview-buttons { display:flex; gap:15px; padding:10px 0; margin-bottom:5px; }
.sf-preview-buttons button { width:134px; max-width:calc(50% - 8px); height:45px; padding:0; border:0; border-radius:12px; background:linear-gradient(0deg,#66b34b,#87cb71); opacity:1; cursor:default; }
.sf-preview-buttons button + button { background:linear-gradient(0deg,#5085d3,#6ac2ed); }
.sf-preview-note, .sf-preview-warranty { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.3; }
.sf-preview-note { padding:0 0 25px; }
.sf-preview-note > span, .sf-preview-warranty > span { color:#888; font-size:20px; }
.sf-preview-note p, .sf-preview-warranty p { margin:0; }
.sf-preview-warranty { padding:30px 30px 40px; border-radius:0 0 16px 16px; background:#f1f1f1; }
.sf-preview-shop { display:flex; gap:21px; margin-top:30px; padding:30px; border-radius:16px; background:#fff; }
.sf-preview-shop-avatar { flex:0 0 134px; width:134px; height:134px; }
.sf-preview-shop-info { flex:1; min-width:0; font-size:14px; line-height:22px; }
.sf-preview-shop-name { width:90%; height:26px; margin-bottom:12px; }
.sf-preview-shop-rating { width:105px; margin-bottom:10px; }
.sf-preview-shop-info p { margin:5px 0; }
.sf-preview-shop-info p > .sf-preview-placeholder { display:inline-block; width:70px; height:13px; vertical-align:middle; }
.sf-preview-shop-link { width:145px; margin-top:10px; }
.sf-product-preview__summary-detail { position:static; margin:8px 0 0; color:#696c69; font-size:14px; }
.sf-product-preview__summary-detail p { margin:0; height:auto; white-space:normal; }
.sf-product-preview__summary-detail .sf-card-stat-full { display:inline; }
.sf-product-preview__summary-detail strong { color:var(--sf-shell-green,#67b346); }
@media(max-width:900px) {
  .sf-product-preview__summary-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  .sf-preview-left { padding-right:0; max-width:none; }
  .sf-preview-shop-avatar { display:none; }
}
@media(max-width:768px) {
  .sf-product-preview__summary { padding-bottom:100px; }
  .sf-preview-buttons { position:fixed; left:20px; right:20px; bottom:30px; z-index:1; margin:0; padding:15px; border-radius:18px 18px 0 0; background:#fff; box-shadow:0 -3px 12px #0001; }
  .sf-preview-buttons button { flex:1; max-width:none; }
}
@media(max-width:600px) {
  .sf-product-preview { width:100vw; height:100dvh; margin:0; border-radius:0; }
  .sf-product-preview__bar { padding-inline:12px; }
  .sf-product-preview__summary { padding:16px 12px 100px; }
  .sf-product-preview__summary h1 { font-size:26px; }
  .sf-product-preview__summary-info { padding:20px 14px 15px; }
  .sf-preview-shop { padding:14px; }
  .sf-preview-warranty { padding:25px 14px; }
  .sf-preview-buttons { left:0; right:0; bottom:0; }
}
.fl-card-meta { min-height:20px; }
/* Белая плашка внизу фото. Пропускает нажатие к фотографии; без тени. */
.fl-card-photo-meta { position:absolute; left:10px; right:10px; bottom:10px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; pointer-events:none; }
.fl-card-rating { display:inline-flex; align-items:center; margin:0; padding:4px 8px; border-radius:8px; background:#fff; color:var(--fl-ink); font-size:14px; line-height:20px; font-variant-numeric:tabular-nums; }
.fl-rating-score { display:inline-flex; align-items:center; gap:4px; color:var(--fl-ink); }
.fl-rating-score strong { font-weight:500; }
.fl-rating-score .icon { width:15px; height:15px; flex:none; color:#d58a23; }
.fl-card-proof { display:flex; justify-content:flex-start; align-items:center; gap:5px; margin:0; min-width:0; height:20px; line-height:20px; font-size:14px; text-align:left; color:var(--fl-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fl-card-proof>span:only-child { overflow:hidden; text-overflow:ellipsis; }
.fl-card-proof .icon { width:15px; height:15px; color:#8d8d8d; }
.sf-card-stat { gap:4px; color:var(--fl-ink); }
.sf-card-stat-label { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.sf-card-stat-short { display:none; }
.sf-card-stat strong { flex:none; color:var(--sf-shell-green,#67b346); font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
/* Пунктуальность занимает ту же левую позицию, что и число покупок. */
.fl-card-punctuality { gap:4px; color:var(--fl-ink); }
.fl-punctuality-value { display:inline-flex; align-items:center; flex:none; color:var(--fl-brand); }
.fl-card-punctuality .icon { display:block; width:16px; height:16px; color:currentColor; }
.fl-punctuality-value strong { font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; }
.fl-punctuality-label { flex:none; font-size:14px; line-height:20px; }
.fl-card-prices { display:flex; align-items:center; gap:9px; flex-wrap:wrap; min-height:31px; margin-bottom:14px; font-variant-numeric:tabular-nums; }
/* Новая и старая цены — неразрывная пара. Скидка может перейти ниже отдельно. */
.fl-card-price-pair { display:inline-flex; flex:none; align-items:baseline; gap:7px; white-space:nowrap; }
.fl-card-body .fl-card-prices { min-height:44px; margin:0; align-content:center; }
.fl-card-price { font-size:24px; font-weight:600; line-height:1.2; letter-spacing:-.65px; white-space:nowrap; }
.fl-card-old { font-size:14px; color:#717171; white-space:nowrap; text-decoration-thickness:1px; }
.fl-card-discount { font-size:14px; line-height:16px; font-weight:600; color:#fff; background:var(--fl-badge-sale); border-radius:4px 0 4px 0; padding:3px 5px; }
@media (min-width:970px) and (max-width:1199px) {
  .catalog .catalog_grid:has(> .sf-product-card) { width:calc(100% - 28px); }
}
@media (max-width:969px) {
  .fl-product-grid, .catalog .catalog_grid:has(> .sf-product-card) { grid-template-columns:repeat(2,minmax(0,276px)); justify-content:center; max-width:574px; }
  .catalog .catalog_grid:has(> .sf-product-card) .catalog_item.img { min-height:0; aspect-ratio:1; }
}
@media (max-width:760px) {
  .fl-product-grid, .catalog .catalog_grid:has(> .sf-product-card) { gap:20px 12px; max-width:564px; }
  .catalog .catalog_grid:has(> .sf-product-card) { width:calc(100% - 12px); }
  .fl-card { --fl-price-slot:56px; border-radius:15px; }
  .fl-card-body { padding:10px; gap:8px; }
  .fl-card-title, .catalog .sf-product-card .fl-card-title { height:2.9em; font-size:15px; line-height:1.45; }
  .fl-card-proof { font-size:14px; }
  .fl-card-proof .icon { display:none; }
  .sf-card-stat { min-height:20px; }
  .fl-card-prices { gap:5px 7px; min-height:51px; align-content:center; }
  .fl-card-body .fl-card-prices { min-height:45px; margin:0; }
  .fl-card-price-pair { gap:5px; }
  .fl-card-price { font-size:21px; }
  .catalog .sf-product-card .catalog_price_now { font-size:21px; }
  .fl-card-old { font-size:14px; }
  .fl-card-discount { font-size:12px; }
  .fl-card-favorite { top:3px; right:3px; }
  .fl-card-favorite .icon { width:26px; height:26px; }
  .fl-card-badges { top:9px; left:8px; }
  .fl-card-badge { padding:3px 8px; font-size:12px; line-height:16px; }
  .fl-card .fl-card-details { min-height:42px; padding:0 8px; font-size:15px; }
  .fl-card .fl-card-details .icon { width:17px; height:17px; }
}
@media (max-width:380px) {
  .fl-product-grid, .catalog .catalog_grid:has(> .sf-product-card) { gap:16px 10px; }
  .fl-card { --fl-price-slot:54px; }
  .fl-card-body { padding:10px 9px; }
  .fl-card-price { font-size:20px; }
  .catalog .sf-product-card .catalog_price_now { font-size:20px; }
  .fl-card-old { font-size:13px; }
  .fl-card-proof { font-size:13px; }
}
@container fl-card (max-width:230px) {
  .fl-card .fl-card-body .fl-card-prices { min-height:var(--fl-price-slot); align-content:start; }
}
@container fl-card (max-width:210px) {
  .sf-card-stat-full, .sf-badge-express-full { display:none; }
  .sf-card-stat-short { display:inline; }
}

/* On phones the photo/title already open the product. Keep the entire small
   card tappable while giving prices a deliberate vertical rhythm. */
@media (max-width:600px) {
  .fl-card .fl-card-details { display:none; }
  .fl-card .fl-card-purchase { gap:0; }
}
@container fl-card (max-width:200px) {
  .fl-card .sf-delivery-price:has([data-nearest-delivery-time]) { min-height:4.2em; }
  .fl-card .fl-card-body .fl-card-prices { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:3px; min-height:0; }
  .fl-card .fl-card-price-pair { display:flex; flex-direction:column; align-items:flex-start; gap:1px; white-space:normal; }
  .fl-card .fl-card-price, .catalog .sf-product-card .catalog_price_now { font-size:19px; line-height:1.2; letter-spacing:-.4px; }
  .fl-card .fl-card-old, .catalog .sf-product-card .catalog_price_old { font-size:12px; line-height:1.2; }
  .fl-card .fl-card-discount { font-size:11px; line-height:15px; padding:2px 5px; }
}
