/* Лепесток. Approved blue, butter and periwinkle brand direction. */
:root {
  --rose: #2e46c4;
  --rose-dark: #23369e;
  --ink: #17245c;
  --muted: #596080;
  --line: #dfe1ed;
  --cream: #fff9e7;
  --blush: #eef0fc;
  --serif: 'Manrope', Arial, sans-serif;
  --sans: 'Manrope', Arial, sans-serif;
}
body { background: var(--cream); color: var(--ink); }
button, input, select, textarea { font-family: var(--sans); }
button:focus-visible, a:focus-visible { outline-color: var(--rose); }
input:focus, select:focus, textarea:focus { outline-color: #2e46c466; }
.announcement { background: var(--rose); color: var(--cream); font-size: 12px; padding-block: 9px; }
body > header { background: var(--cream); }
.header-main { height: 96px; gap: 30px; }
.logo > img { width: 180px; height: auto; }
.search { background: #fffdf5; border-color: #d9dced; border-radius: 12px; height: 46px; }
.search input { font-size: 13px; }
.search > span, .search button { color: #687199; }
.header-action small { font-size: 11px; }
.city-button small { color: var(--muted); font-size: 11px; }
.city-button strong { font-size: 14px; }
.navigation { gap: 20px; font-size: 12px; min-height: 56px; }
.navigation .catalog-button { border-radius: 24px; background: var(--rose); color: var(--cream); }
.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: auto;
  min-height: 550px;
  margin-top: 20px;
  background: #c9d2ef;
  border-radius: 22px;
  overflow: hidden;
}
.hero-content { padding: 54px 34px 48px 48px; min-width: 0; width: auto; }
.hero .eyebrow { color: #263a91; font-size: 11px; letter-spacing: 1.7px; }
.hero .eyebrow > span { background: var(--rose); }
.hero h1 { font-family: var(--sans); font-weight: 800; font-size: clamp(44px, 4.7vw, 73px); letter-spacing: -3.5px; line-height: 1.1; margin: 30px 0 22px; }
.hero-content > p { color: #344378; font-size: 15px; line-height: 1.8; max-width: none; }
.hero .primary { margin-top: 25px; padding: 15px 26px; font-size: 14px; }
.hero-note { color: #344378; font-size: 12px; margin-top: 25px; }
.hero-art { position: static; inset: auto; padding: 24px; min-width: 0; }
.hero-art::after, .hero-art::before { display: none; }
.hero-art img { height: 100%; width: 100%; object-fit: contain; object-position: center; border-radius: 15px; mix-blend-mode: normal; }
.primary { background: var(--rose); border-color: var(--rose); color: var(--cream); border-radius: 28px; font-weight: 600; }
.primary:hover { background: var(--rose-dark); }
.secondary { border-color: #bac2e8; border-radius: 24px; font-size: 12px; }
.benefits { border-color: #dfe1ed; padding-block: 26px; }
.benefits strong { font-size: 13px; }
.benefits svg { color: var(--rose); }
.benefits small { font-size: 11px; color: var(--muted); }
h2, .section-heading h2 { font-weight: 800; letter-spacing: -1.2px; }
.section-heading h2 { font-size: 34px; }
.eyebrow { color: #47558b; }
.text-link { color: var(--rose); font-size: 12px; }
.categories-section { padding-top: 44px; }
.category-img { border-radius: 18px; background: #f1ede3; }
.category img { mix-blend-mode: normal; }
.category strong { font-size: 13px; }
.category small { color: var(--muted); font-size: 11px; }
.catalog-section { padding-top: 48px; }
.tabs { gap: 26px; }
.tabs button { font-size: 13px; color: #647096; }
.tabs button.active { color: var(--rose); border-color: var(--rose); }
.catalog-layout { grid-template-columns: 250px minmax(0, 1fr); gap: 28px; }
.filters { background: #fffdf5; border: 1px solid #dfe1ed; border-radius: 18px; padding: 20px; align-self: start; }
.filter-title { margin: 0 0 20px; gap: 10px; align-items: center; }
.filter-title strong { line-height: 1.5; }
.filter-title button { padding: 0; flex-shrink: 0; }
.category-picker { padding: 12px 14px; gap: 12px; color: var(--rose); line-height: 1.5; border-radius: 12px; }
.category-picker > span { flex-shrink: 0; }
.filters select { width: 100%; min-height: 44px; padding-inline: 12px; border-radius: 10px; }
.filters .field-label { margin-top: 22px; }
.price-fields { gap: 8px; }
.price-fields label { min-width: 0; width: calc(50% - 12px); padding: 0 10px; height: 44px; }
.price-fields input { min-width: 0; }
.price-fields > span { flex-shrink: 0; }
.filter-help { padding: 16px; margin-top: 26px; }
.filter-help strong { font-size: 13px; line-height: 1.6; }
.delivery-city { display: flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 12px; }
.delivery-city svg { width: 18px; height: 18px; color: var(--rose); }
.checkout-city { margin: 0 0 18px; color: var(--ink); font-size: 14px; }
.filter-title strong { font-size: 13px; }
.filter-title button, .field-label { font-size: 11px; color: var(--muted); }
.filters select, .filters input { font-size: 12px; }
.filter-help { background: #eef0fc; border-radius: 12px; }
.filter-help > span, .filter-help button { color: var(--rose); }
.filter-help p { color: var(--muted); font-size: 11px; }
.results-bar { color: var(--muted); font-size: 12px; margin-bottom: 20px; }
.results-bar select { color: var(--ink); font-size: 12px; background: transparent; }
.product-grid { gap: 30px 20px; }
.product-photo { border-radius: 16px; background: #eeeae4; }
.product-image-button img { mix-blend-mode: normal; }
.product-badge { background: #fff9e7ed; color: #243981; border-radius: 20px; font-size: 10px; }
.product-details { padding-top: 14px; }
.product-details > button, .product-details > a { font-size: 14px; font-weight: 600; }
.product-description { color: var(--muted); font-size: 11px; }
.product-price { color: var(--ink); font-size: 17px; }
.add-button { background: var(--rose); border: 1px solid var(--rose); color: var(--cream); border-radius: 24px; padding: 9px 13px; font-size: 11px; }
.add-button:hover { background: var(--rose-dark); border-color: var(--rose-dark); }
.favorite-button { color: #2e46c4; background: #fff9e7ee; border-color: transparent; }
.favorite-button.selected svg { fill: #2e46c433; }
.occasion-banner { background: #f1b7c6; border-radius: 22px; }
.occasion-banner h2 { font-weight: 800; }
.occasion-banner p { color: #3d365e; }
.occasion-banner .primary { background: var(--rose); }
.occasion-image::after { background: linear-gradient(90deg, #f1b7c6, transparent 35%); }
.occasion-image img { mix-blend-mode: normal; }
.handwritten { color: var(--ink); background: var(--cream); font-family: var(--sans); }
.steps article { border-color: #ced3e8; }
.steps article > span { color: var(--rose); font-weight: 800; }
.steps h3 { font-size: 15px; }
.steps p { font-size: 13px; color: var(--muted); }
.cities-section { background: #e3e790; border-radius: 22px; }
.cities-section > p { color: #3d4822; }
.cities-section > div button { background: var(--cream); border-color: transparent; color: var(--ink); font-size: 12px; }
footer { background: #c9d2ef; color: var(--ink); border-color: transparent; }
.footer-brand { font-family: var(--sans); font-size: 40px; font-weight: 800; letter-spacing: -2px; }
.footer-brand span { font-family: var(--sans); color: #344378; letter-spacing: 0; }
.footer-top > div > a, .footer-top > div > button { color: #344378; font-size: 12px; }
.footer-bottom, .footer-legal { color: #344378; border-color: #b2bde3; }
.modal, .drawer { background: #fffdf5; color: var(--ink); border-color: #dfe1ed; }
.modal h2, .product-modal-details h2, .drawer h2 { font-family: var(--sans); font-weight: 800; letter-spacing: -1px; }
.modal::backdrop, .drawer::backdrop { background: #17245c66; }
.product-modal-image { background: #f1ede3; }
.product-modal-details > p, .modal-note { color: var(--muted); }
.product-specs div { border-color: #dfe1ed; color: var(--muted); }
.product-specs strong { color: var(--ink); }
.category-show-all, .category-menu button { color: var(--ink); }
.category-department summary { background: #eef0fc; color: var(--ink); }
.category-children button:hover, .city-list button:hover { background: #eef0fc; color: var(--rose); }
.checkout-review, .cart-summary { background: #eef0fc; border-color: #dfe1ed; }
.checkout-review button { color: var(--rose); }
#checkout-back { color: var(--rose); }
#checkout-dialog .checkout-review, #cart-dialog .cart-summary { background: #eef0fc; border-color: #dfe1ed; border-radius: 14px; }
#cart-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
#cart-dialog .modal-heading { flex-shrink: 0; }
#cart-content { min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding-bottom: 2px; }
#cart-dialog .cart-summary { margin-top: 20px; padding: 20px; border: 0; }
#cart-dialog .cart-total { padding: 16px 0 10px; gap: 16px; }
#cart-dialog .cart-summary .muted { margin: 0 0 16px; }
#cart-dialog .cart-summary .full { height: auto; min-height: 48px; margin: 0; padding: 14px 16px; white-space: normal; line-height: 1.4; gap: 12px; }
#cart-dialog .cart-summary .full svg { flex-shrink: 0; }
@media (max-width: 600px) {
  #cart-dialog .cart-summary { margin-top: 16px; padding: 16px; }
  #cart-dialog .cart-summary .full { font-size: 13px; }
}
#checkout-form legend, #checkout-form .field-label { color: var(--ink); }
#checkout-form .field-label > input, #checkout-form .field-label > select, #checkout-form .field-label > textarea { background: #fffefa; border-color: #ccd2ea; color: var(--ink); }
.product-modal-details { background: #fffdf5; }
.checkbox-label input { accent-color: var(--rose); }
.delivery-free { background: #e3e790; color: #34451c; }
.delivery-included { color: #43571e; }
#checkout-form input, #checkout-form select, #checkout-form textarea { background: #fffefa; border-color: #ccd2ea; color: var(--ink); }
.legal-brand { font-family: var(--sans); font-weight: 800; letter-spacing: -1px; color: var(--rose); }
.legal-brand span { font-family: var(--sans); font-weight: 500; letter-spacing: 1px; }
.legal-intro h1, .legal-paper h2 { font-family: var(--sans); font-weight: 800; letter-spacing: -1px; }
.legal-header, .legal-footer { border-color: #d9ddef; }
.legal-nav a { color: var(--rose); background: #eef0fc; }
.legal-nav a[aria-current="page"] { background: #c9d2ef; color: var(--ink); }
.legal-paper { background: #fffdf5; border-color: #dfe1ed; }
.legal-paper a { color: var(--rose); }
.brand img { width: 180px; height: auto; }
.payment-card, .summary { border-color: #dfe1ed; background: #fffdf5; border-radius: 18px; }
.payment-card h1, .summary h2, #receipt-dialog h2 { font-family: var(--sans); font-weight: 800; color: var(--ink); }
.payment-card p, .summary p, .footer-note { color: var(--muted); }
.payment-card .primary, #receipt-dialog .primary { color: var(--cream); background: var(--rose); border-color: var(--rose); border-radius: 26px; }
.progress .current { color: var(--rose); }
.progress .done { color: #526d29; }
.payment-wait { background: #eef0fc; border-color: #d7ddf6; }
.wait-title, .wait-description { color: var(--ink); }
.wait-petal { fill: #c9d2ef; stroke: #2e46c4; }
.wait-center { fill: #e3e790; }
.qr-renew-card { background: #eef0fc; border-color: #d7ddf6; }
#receipt-dialog { background: #fffdf5; border-color: #dfe1ed; }
.receipt-file { color: var(--ink); }
.receipt-file input { border-color: #9aa9e7; background: white; }
@media (max-width: 1050px) {
  .catalog-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 22px; }
  .filters { padding: 18px; }
  .header-main { gap: 20px; }
  .logo > img { width: 155px; }
  .navigation { gap: 18px; }
  .hero { min-height: 480px; }
  .hero-content { padding: 38px 24px 36px 32px; }
  .hero h1 { font-size: 52px; letter-spacing: -2.5px; }
  .hero-content > p { font-size: 13px; }
}
@media (max-width: 850px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .filter-dialog .filters { padding: 0; border: 0; }
  .filter-dialog .filter-title { justify-content: space-between; margin-bottom: 18px; }
  .delivery-city { margin-left: auto; }
  .header-main { height: auto; min-height: 132px; gap: 12px; padding-block: 18px; }
  .header-main > .search { height: 46px; }
  .search input { font-size: 16px; }
  .navigation { min-height: 54px; }
  .navigation .catalog-button { box-shadow: 10px 0 12px var(--cream); }
  .hero { min-height: 440px; }
  .hero-content { padding: 32px 16px 30px 28px; }
  .hero h1 { font-size: 44px; letter-spacing: -2px; }
  .hero .eyebrow { font-size: 9px; letter-spacing: 1px; }
  .hero-art { padding: 18px 18px 18px 0; }
  .hero-note { font-size: 11px; }
  .filter-dialog .filters { background: transparent; }
  .filters select, .filters input { font-size: 16px; }
  .filter-apply { box-shadow: 0 -10px 16px #fffdf5; }
  .product-details > button { font-size: 14px; }
  .product-description { font-size: 12px; }
  .add-button { min-height: 44px; font-size: 12px; }
  .section-heading h2 { font-size: 29px; }
}
@media (max-width: 650px) {
  .delivery-city { order: 3; margin: 0; width: 100%; font-size: 12px; }
  .announcement { font-size: 11px; padding: 8px 16px; }
  .logo > img { width: 150px; }
  .header-main { gap: 12px 8px; }
  .header-actions { margin-left: auto; }
  .city-button strong { font-size: 12px; max-width: 110px; }
  .hero { grid-template-columns: 1fr; min-height: 0; height: auto; margin-top: 14px; border-radius: 18px; }
  .hero-content { padding: 30px 24px 24px; }
  .hero h1 { font-size: clamp(38px, 10.5vw, 58px); letter-spacing: -2px; margin: 22px 0 18px; }
  .hero-content > p { font-size: 13px; }
  .hero .primary { margin-top: 16px; font-size: 13px; padding: 13px 22px; }
  .hero-note { display: none; }
  .hero-art { padding: 0 16px 16px; height: auto; min-height: 0; }
  .hero-art img { aspect-ratio: 1; height: auto; max-height: 410px; }
  .benefits { padding-block: 22px; }
  .benefits strong { font-size: 12px; }
  .benefits small { font-size: 11px; }
  .categories-section { padding-top: 30px; }
  .categories-section h2 { max-width: 220px; font-size: 26px; }
  .category strong { font-size: 12px; }
  .catalog-section { padding-top: 36px; }
  .product-grid { gap: 28px 12px; }
  .product-photo { aspect-ratio: 1; border-radius: 13px; }
  .product-details > button { font-size: 13px; }
  .product-description { font-size: 11px; }
  .product-price { font-size: 17px; }
  .product-modal-image { height: auto; aspect-ratio: 1; max-height: 48dvh; }
  .product-modal-details h2 { font-size: 29px; }
  .cities-section { padding-inline: 24px; }
  .cities-section h2 { font-size: 28px; }
  .footer-brand { font-size: 38px; }
  .footer-bottom, .footer-legal { font-size: 11px; }
  .brand img { width: 150px; }
}
@media (max-width: 370px) {
  .logo > img { width: 138px; }
  .city-button { order: 3; margin-left: 0; }
  .hero-content { padding: 26px 20px 22px; }
  .hero h1 { font-size: 38px; }
  .hero .eyebrow { font-size: 8px; }
  .product-price { font-size: 16px; }
}
