:root {
  color-scheme: only light;
  --ink: #2c3f57;
  --muted: #5c6c7d;
  --green: #3a7612;
  --green-dark: #2f6210;
  --bg: #ffffff;
  --card: #ffffff;
  --surface-soft: #f5f5f1;
  --accent-soft: #edf2e7;
  --accent-line: #dce6d3;
  --line: #e6e3de;
  --error: #9a392e;
  --header: 60px;
  --page-width: 1320px;
  --gutter: 12px;
  --section-gap: 40px;
  --radius: 16px;
  --radius-control: 12px;
  --shadow: 0 12px 36px rgba(44, 63, 87, 0.1);
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 20px;
  --s6: 24px;
  --s8: 32px;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-title: 18px;
  --text-h1: 28px;
  --text-h2: 22px;
  --text-h3: 18px;
  --text-h4: 16px;
  --text-h5: 14px;
  --text-h6: 12px;
  --leading-heading: 1.25;
  --leading-body: 1.5;
  font-family: Onest, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--bg);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { scroll-behavior: smooth; scrollbar-width: none; }
html::-webkit-scrollbar { display: none; }
body { margin: 0; color: var(--ink); background: var(--bg); font-size: var(--text-base); line-height: var(--leading-body); }
body.lock { overflow: hidden; }
section[id], footer[id] { scroll-margin-top: calc(var(--header) + var(--s4)); }
#catalog { scroll-margin-top: var(--header); }
img { max-width: 100%; }
a { color: var(--green); text-underline-offset: 3px; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: 0.6; }
p, figure, dl { margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; line-height: var(--leading-heading); letter-spacing: -0.025em; font-weight: 600; }
h1 { font-size: var(--text-h1); font-weight: 500; text-align: center; }
h2 { font-size: var(--text-h2); margin-bottom: var(--s5); }
h3 { font-size: var(--text-h3); }
h4 { font-size: var(--text-h4); }
h5 { font-size: var(--text-h5); }
h6 { font-size: var(--text-h6); }
p, li, dt, dd { line-height: var(--leading-body); }
small { font-size: var(--text-xs); }
strong { font-weight: 600; }
.brand-nowrap { white-space: nowrap; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.wrap { width: min(var(--page-width), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.section { margin-top: var(--section-gap); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.icon { width: 24px; height: 24px; display: block; flex: none; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Shared controls. */
.text-btn, .submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s3);
  min-height: 44px;
  padding: 10px var(--s4);
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: var(--green);
  color: white;
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  text-align: center;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.text-btn-line { color: var(--ink); background: transparent; border-color: var(--line); }
.icon-btn, .phone-link {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-control);
  color: var(--ink);
  background: transparent;
  text-decoration: none;
  flex: none;
}
.reference-badge, .delivery-badge {
  display: inline-flex;
  align-items: center;
  padding: var(--s1) 10px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--green-dark);
  font-size: var(--text-xs);
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}

/* Header and navigation. */
.header { position: sticky; top: 0; z-index: 50; height: var(--header); border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(14px); }
.header-inner { display: flex; align-items: center; gap: var(--s2); width: min(var(--page-width), 100%); height: 100%; margin-inline: auto; padding-inline: var(--s2); }
.header .logo { display: block; flex: none; width: 156px; height: 26px; }
.logo-full { display: block; width: auto; height: 100%; }
.header-tools { display: flex; align-items: center; gap: var(--s1); margin-left: auto; }
.phone-link span { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.burger { position: relative; }
.burger span { position: absolute; left: 50%; top: 50%; width: 18px; height: 2.55px; margin: -1.275px 0 0 -9px; background: currentColor; border-radius: 1px; transition: transform 0.15s ease, opacity 0.15s ease; }
.burger span:nth-child(1) { transform: translateY(-6px); }
.burger span:nth-child(3) { transform: translateY(6px); }
.burger[aria-expanded="true"] span:nth-child(1) { transform: rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: rotate(-45deg); }
.nav-drop { display: none; position: relative; }
.nav-link { display: inline-flex; align-items: center; gap: var(--s2); min-height: 40px; padding: var(--s2) var(--s3); border-radius: var(--radius-control); color: var(--ink); font-size: var(--text-sm); font-weight: 500; line-height: 1.4; text-decoration: none; white-space: nowrap; }
.catalog-btn { border: 1px solid var(--line); background: var(--card); padding-inline: 20px; }
.catalog-drop { margin-left: var(--s2); }
.burger-mark { position: relative; display: block; width: 16px; height: 14px; }
.burger-mark span { position: absolute; left: 0; width: 16px; height: 2.55px; border-radius: 1px; background: currentColor; }
.burger-mark span:nth-child(2) { top: 6px; }
.burger-mark span:nth-child(3) { top: 12px; }
.nav-drop::after { content: ""; position: absolute; inset: 100% 0 auto; height: var(--s4); }
.nav-panel { display: none; position: absolute; z-index: 30; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.nav-drop:hover .nav-panel, .nav-drop:focus-within .nav-panel { display: grid; }
.catalog-drop .nav-panel { top: 0; left: 0; width: 360px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s1); padding: 52px var(--s2) var(--s2); }
.catalog-drop .nav-panel::before { content: ""; position: absolute; top: 43px; left: var(--s3); right: var(--s3); height: 1px; background: var(--line); }
.catalog-drop:hover .catalog-btn, .catalog-drop:focus-within .catalog-btn { position: relative; z-index: 31; background: transparent; border-color: transparent; }
.catalog-item { display: flex; align-items: center; min-height: 40px; padding: var(--s2) var(--s3); border: 0; border-radius: var(--radius-control); background: transparent; color: var(--ink); font: inherit; font-size: var(--text-sm); font-weight: 500; line-height: 1.4; text-align: left; text-decoration: none; }
.contacts-panel { position: fixed; top: calc(var(--header) + var(--s2)); right: max(var(--gutter), calc(50% - var(--page-width) / 2)); width: min(860px, calc(100% - var(--gutter) * 2)); padding: var(--s6); }
.menu[hidden] { display: none; }
.menu { position: fixed; inset: var(--header) 0 0; z-index: 40; overflow: hidden; background: var(--bg); }
.menu-inner { display: flex; flex-direction: column; width: min(var(--page-width), calc(100% - var(--gutter) * 2)); height: 100%; min-height: 0; margin-inline: auto; padding-top: var(--s4); }
.menu-heading { flex: none; margin: 0 0 var(--s3); font-size: var(--text-title); }
.mobile-catalog { flex: 1; min-height: 0; margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.mobile-catalog .catalog-item { justify-content: space-between; gap: var(--s4); width: 100%; min-height: 48px; padding: var(--s3) var(--s1); border-bottom: 1px solid var(--line); border-radius: 0; font-size: var(--text-base); }
.mobile-catalog .catalog-item::after { content: "›"; flex: none; color: var(--muted); font-size: 22px; line-height: 1; }
.mobile-catalog .catalog-item[target="_blank"]::after { content: "↗"; font-size: 16px; }
.mobile-catalog button.catalog-item { color: var(--green); }
.menu-footer { flex: none; padding: var(--s3) 0 calc(var(--s4) + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--bg); }
.menu-footer-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); }
.menu-phone { flex: none; color: var(--ink); font-size: var(--text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }
.menu-contact-apps { display: flex; gap: var(--s1); }
.menu-contact-apps img { display: block; width: 24px; height: 24px; border-radius: 50%; }
.menu-meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--s1) var(--s3); margin: var(--s1) 0 var(--s3); color: var(--muted); font-size: var(--text-xs); }
.menu-meta a { color: inherit; text-decoration: none; }
.menu-footer > .text-btn { width: 100%; }

/* Floating contacts stay above the full-width page. */
.messenger-rail { position: fixed; right: max(var(--s2), env(safe-area-inset-right)); bottom: calc(var(--s6) + env(safe-area-inset-bottom)); z-index: 35; display: flex; flex-direction: column; gap: var(--s2); }
.messenger-rail .messenger { width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; box-shadow: none; }
.messenger-rail img { display: block; width: 36px; height: 36px; border-radius: 50%; }
body.lock .messenger-rail { display: none; }

/* Product discovery. */
.catalog { padding-top: var(--s4); }
.catalog h1 { margin-bottom: var(--s3); }
.catalog-steps { display: flex; align-items: center; justify-content: center; gap: var(--s3); margin: 0 0 var(--s5); font-size: var(--text-base); }
.catalog-steps span { color: var(--green); }
.order-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); width: min(760px, 100%); margin: 0 auto var(--s6); padding: 0; list-style: none; }
.order-steps li { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--s1); padding: 12px 10px; border: 1px solid var(--accent-line); border-radius: 12px; background: var(--accent-soft); box-shadow: 0 2px 0 #dce6d3; text-align: left; }
.order-steps li::after { content: "↗"; position: absolute; top: 12px; right: 10px; color: var(--green); font-size: 18px; line-height: 26px; }
.step-number { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: #fff; color: var(--green-dark); font-size: var(--text-xs); font-weight: 600; }
.order-steps strong { display: flex; align-items: center; min-height: 34px; font-size: 12px; font-weight: 500; line-height: 1.4; }
.step-note { color: var(--muted); font-size: 11px; line-height: 1.4; }
.step-desktop-space { display: none; }
.catalog-item-quote { grid-column: 1 / -1; margin-top: var(--s1); border-top: 1px solid var(--line); border-radius: 0; }
.products { --catalog-columns: 2; display: grid; grid-template-columns: repeat(var(--catalog-columns), minmax(0, 1fr)); gap: var(--s2); }
.product { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--s2); min-width: 0; padding: var(--s4) var(--s3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); color: var(--ink); text-align: center; text-decoration: none; transition: border-color 0.15s ease, background-color 0.15s ease; }
.product img { width: 100%; height: 112px; object-fit: contain; }
.product-label { position: relative; display: grid; place-items: center; width: 100%; min-height: 44px; }
.product-label .product-name { transition: opacity 0.18s ease; }
.product-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.18s ease; }
.product-calculate { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; padding: 10px 16px; border-radius: 999px; background: var(--green); color: #fff; font-size: 15px; font-weight: 500; line-height: 1.25; }
.product-calculate svg { display: block; flex: none; }
.product-category:focus-visible .product-overlay { opacity: 1; }
.product-category:focus-visible .product-label .product-name { opacity: 0; }
@media (hover: hover) { .product-category:hover .product-overlay { opacity: 1; } .product-category:hover .product-label .product-name { opacity: 0; } }
@media (hover: none) { .product-category:active .product-overlay { opacity: 1; } .product-category:active .product-label .product-name { opacity: 0; } }
@media (max-width: 380px) { .product-calculate { gap: 5px; padding: 10px; font-size: 12px; } .product-calculate svg { width: 17px; height: 20px; } }
.product-name { display: flex; align-items: center; justify-content: center; min-height: 44px; font-size: var(--text-base); font-weight: 500; line-height: 1.35; }
.product-destination { position: absolute; top: var(--s2); right: var(--s2); padding: 2px 6px; border-radius: 999px; background: var(--bg); color: var(--muted); font-size: 10px; line-height: 1.4; }
.product-help { grid-column: 1 / -1; flex-direction: row; justify-content: center; gap: var(--s4); padding: var(--s5) var(--s4); border-color: var(--accent-line); background: var(--accent-soft); font: inherit; }
.product-help img { width: 72px; height: 88px; flex: none; }
.help-copy { display: flex; flex-direction: column; gap: var(--s2); max-width: 420px; text-align: left; }
.help-copy .product-name { display: block; min-height: 0; font-size: var(--text-title); font-weight: 600; line-height: 1.25; }
.help-description { color: var(--muted); font-size: var(--text-sm); }
.help-action { color: var(--green); font-size: var(--text-sm); font-weight: 600; }

/* Photography and shared section headings. */
.references-heading { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }
.references-heading h2 { margin: 0; }
.references-note { max-width: 72ch; margin-bottom: var(--s5); color: var(--muted); font-size: var(--text-sm); }
.reference-grid { display: grid; grid-template-columns: 1fr; gap: var(--s4); }
.reference-grid figure { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.reference-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 1px solid var(--line); }
.reference-grid figcaption { display: flex; flex-direction: column; gap: var(--s1); padding: var(--s4); }
.reference-grid figcaption strong { font-size: var(--text-base); font-weight: 600; }
.reference-grid figcaption span { color: var(--muted); font-size: var(--text-sm); }
.reference-grid figcaption a { align-self: flex-start; margin-top: var(--s2); color: var(--muted); font-size: var(--text-xs); }

/* One delivery component for the page and the header dropdown. */
.delivery-board { width: 100%; padding: var(--s4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.pickup-head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s2); margin-bottom: var(--s4); }
.pickup-label { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.drop-title { margin: 0 0 var(--s3); color: var(--green); font-size: var(--text-base); font-weight: 600; line-height: 1.4; }
.drop-note { color: var(--muted); font-size: var(--text-sm); }
.pickup-head .drop-title { margin: 0; }
.drop-cols-3 { display: grid; grid-template-columns: 1fr; gap: var(--s3); }
a.place { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s2); min-width: 0; padding: var(--s3); border-radius: var(--radius-control); background: var(--surface-soft); color: var(--ink); font-size: var(--text-sm); line-height: 1.4; text-decoration: none; }
.metro { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 600; }
.metro::before { content: "M"; box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; min-width: 20px; flex: 0 0 20px; padding: 0; border-radius: 50%; color: #fff; font-family: Arial, sans-serif; font-size: 11px; line-height: 20px; font-weight: 600; }
.metro-avi::before { color: var(--ink); background: #ffcd1c; }
.metro-mar::before { color: var(--ink); background: #bed12c; }
.metro-1905::before { background: #943e90; }
.place-addr { color: var(--muted); }
.delivery-options { display: grid; grid-template-columns: 1fr; gap: var(--s5); margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--line); }
.delivery-options > .drop-block + .drop-block { padding-top: var(--s5); border-top: 1px solid var(--line); }
.drop-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s6); padding-block: var(--s3); }
.drop-logos img { display: block; width: auto; height: 22px; }
.courier-rates { display: grid; gap: var(--s3); max-width: 360px; }
.courier-rates > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s6); }
.courier-rates dt { font-size: var(--text-sm); }
.courier-rates dd { margin: 0; font-size: var(--text-base); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.delivery-area { max-width: 390px; margin-top: var(--s3); color: var(--muted); font-size: var(--text-xs); line-height: 1.5; }

/* About and reviews follow the page grid. */
.lead { max-width: 72ch; margin-bottom: var(--s5); font-size: var(--text-base); }
.facts { display: grid; grid-template-columns: 1fr; gap: var(--s4); margin: 0; padding: 0; list-style: none; }
.facts li { padding: var(--s5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); font-size: var(--text-sm); }
.facts strong { display: block; margin-bottom: var(--s2); color: var(--ink); font-size: var(--text-base); }
.reviews-layout { display: grid; gap: var(--s6); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.reviews-intro { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s4); }
.reviews-intro h3 { font-size: var(--text-title); }
.reviews-intro p { max-width: 40ch; color: var(--muted); font-size: var(--text-sm); }
.yandex-reviews { width: 100%; max-width: 760px; min-width: 0; overflow: hidden; border-radius: var(--radius-control); background: var(--card); }
.yandex-reviews iframe { display: block; width: 100%; height: 1100px; border: 0; background: var(--card); }
.yandex-reviews > a { display: block; padding: var(--s3) var(--s4); border-top: 1px solid var(--line); color: var(--muted); font-size: var(--text-xs); text-decoration: none; }

/* Product text and questions. */
.info-faq-layout { display: grid; gap: var(--s6); align-items: start; }
.info-copy { display: grid; gap: var(--s4); }
.info-copy h2, .faq-column h2 { margin-bottom: 0; }
.info-copy p { color: var(--muted); line-height: 1.65; }
.info-copy .text-btn { justify-self: start; margin-top: var(--s2); }
.faq-list { display: grid; gap: var(--s2); margin-top: var(--s5); }
.faq-item { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--card); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); padding: var(--s4); list-style: none; cursor: pointer; font-weight: 500; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--green); font-size: 21px; font-weight: 400; }
.faq-item[open] summary::after { content: "−"; }
.faq-item p { padding: 0 var(--s4) var(--s4); color: var(--muted); font-size: var(--text-sm); line-height: 1.65; }
@media (min-width: 900px) {
  .info-faq-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s8); }
}

/* Footer. */
.footer { margin-top: var(--section-gap); padding-block: var(--s8) var(--s6); border-top: 1px solid var(--line); }
.footer-grid { display: grid; gap: var(--s8); }
.logo-footer { display: block; width: 168px; height: 28px; }
.logo-footer img { display: block; width: auto; height: 28px; }
.footer-hours, .legal { color: var(--muted); font-size: var(--text-xs); }
.footer-hours { margin-top: var(--s3); }
.footer-actions { display: flex; flex-direction: column; align-items: stretch; gap: var(--s2); margin-top: var(--s5); }
.footer-actions .text-btn,
.footer-actions .text-btn-line { background: var(--accent-soft); border-color: var(--accent-line); color: var(--ink); }
.footer-label { margin-bottom: var(--s4); font-size: var(--text-base); font-weight: 600; }
.footer-catalog-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3) var(--s4); }
.footer-catalog-list a, .footer-catalog-list button { padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: var(--text-sm); font-weight: 500; line-height: 1.4; text-align: left; text-decoration: none; }
.footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s2); }
.footer-links > .footer-label { margin-bottom: var(--s1); }
.footer-links > a { color: var(--ink); font-size: var(--text-title); font-weight: 600; text-decoration: none; }
.footer-apps { display: flex; flex-direction: column; gap: var(--s4); margin-top: var(--s3); }
.footer-apps a { display: flex; align-items: center; gap: var(--s3); color: var(--ink); text-decoration: none; }
.footer-apps img { width: 28px; height: 28px; flex: none; border-radius: 50%; }
.app-text { display: flex; flex-direction: column; gap: 2px; line-height: 1.4; }
.app-name { font-size: var(--text-sm); font-weight: 600; }
.app-id { color: var(--muted); font-size: var(--text-xs); }
.legal { grid-column: 1 / -1; padding-top: var(--s5); border-top: 1px solid var(--line); }

/* Dialogs and form fields. */
.sheet[hidden] { display: none; }
.sheet { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: var(--s4); }
.sheet-backdrop { position: absolute; inset: 0; border: 0; background: rgba(44, 63, 87, 0.28); }
.sheet-panel { position: relative; width: min(480px, 100%); max-height: calc(100dvh - var(--s8)); overflow-y: auto; padding: var(--s5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow); }
.delivery-sheet .sheet-panel { width: min(860px, 100%); }
.sheet-panel h2 { margin: 0 36px var(--s4) 0; }
.sheet-panel > p { margin-bottom: var(--s4); color: var(--muted); font-size: var(--text-sm); }
.sheet-close { position: absolute; top: var(--s3); right: var(--s3); width: 32px; height: 32px; }
.sheet-close .icon { width: 20px; height: 20px; }
.sheet-panel .text-btn, .sheet-panel .submit { width: 100%; }
#callback-form, .quote-form { display: flex; flex-direction: column; gap: var(--s3); }
.field-label { display: block; font-size: var(--text-sm); font-weight: 500; }
textarea, input[type="tel"], input[type="email"] { width: 100%; min-width: 0; min-height: 44px; padding: var(--s3); border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--bg); font-size: var(--text-base); line-height: 1.4; }
textarea { resize: vertical; }
textarea::placeholder, input::placeholder { color: var(--muted); opacity: 1; }
.quote-form textarea { min-height: 132px; }
.quote-file { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); min-height: 48px; padding: var(--s3); border: 1px dashed var(--line); border-radius: var(--radius-control); font-size: var(--text-sm); cursor: pointer; }
.quote-file input { display: none; }
.quote-file span { min-width: 0; overflow-wrap: anywhere; color: var(--muted); font-size: var(--text-xs); }
.quote-file span:not(:empty)::before { content: "· "; }
.quote-row { display: grid; grid-template-columns: 1fr; gap: var(--s3); }
.quote-hint, .status { color: var(--muted); font-size: var(--text-xs); line-height: 1.5; }
#quote-status:empty { display: none; }
#quote-status:not(:empty) { padding: var(--s3); border: 1px solid var(--accent-line); border-radius: var(--radius-control); background: var(--accent-soft); color: var(--green-dark); }
#quote-status[data-state="error"] { border-color: #ead0cb; background: #fbf1ef; color: var(--error); }

@media (min-width: 381px) {
  .order-steps strong { font-size: 13px; }
}
@media (min-width: 561px) {
  .quote-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
  :root { --gutter: 24px; --section-gap: 56px; }
  .catalog { padding-top: var(--s8); }
  :root { --text-h2: 24px; }
  .order-steps { margin-bottom: var(--s8); }
  .step-mobile-break { display: none; }
  .step-desktop-space { display: inline; }
  .order-steps strong { font-size: var(--text-sm); }
  .step-note { font-size: var(--text-xs); }
  .products { --catalog-columns: 3; gap: var(--s4); }
  .product { padding: var(--s5) var(--s4); }
  .product img { height: 132px; }
  .product-help { padding: var(--s6); gap: var(--s6); }
  .product-help img { width: 96px; height: 96px; }
  .reference-grid, .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .delivery-board, .reviews-layout { padding: var(--s6); }
  .pickup-head { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--s3); }
  .drop-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .delivery-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: var(--s6); padding-top: var(--s6); }
  .delivery-options > .drop-block:first-child { padding-right: var(--s6); }
  .delivery-options > .drop-block + .drop-block { padding: 0 0 0 var(--s6); border-top: 0; border-left: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 0.95fr 1.45fr 1fr; gap: var(--s8); }
  .sheet-panel { padding: var(--s6); }
  .sheet-close { top: var(--s4); right: var(--s4); }
}
@media (min-width: 768px) {
  .header-inner { width: min(var(--page-width), calc(100% - var(--gutter) * 2)); padding-inline: 0; }
  .header .logo { width: 168px; height: 28px; }
  .burger { display: none; }
  .nav-drop { display: block; }
}
@media (min-width: 960px) {
  .reviews-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .reviews-intro { padding-top: var(--s4); }
}
@media (min-width: 1040px) {
  .products { --catalog-columns: 4; }
}
@media (min-width: 1100px) {
  .phone-link { display: flex; width: auto; gap: var(--s2); padding-inline: var(--s2); font-size: var(--text-sm); font-weight: 500; }
  .phone-link span { position: static; width: auto; height: auto; margin: 0; padding: 0; overflow: visible; clip: auto; }
}
@media (min-width: 1168px) {
  .header-inner { padding-inline: 0; }
}
@media (max-width: 360px) {
  .order-steps strong { min-height: 34px; }
}
@media (max-width: 380px) {
  .header-inner { padding: 0 var(--s1) 0 var(--s2); gap: 6px; }
  .header .logo { width: 128px; height: 22px; }
  .header .icon-btn, .header .phone-link { width: 36px; height: 36px; }
  .header .icon { width: 22px; height: 22px; }
  .product-help { gap: var(--s3); padding: var(--s4) var(--s3); }
  .product-help img { width: 56px; height: 72px; }
  .help-copy .product-name { font-size: var(--text-base); }
}
@media (hover: hover) {
  .text-btn:not(:disabled):hover, .submit:enabled:hover { background: var(--green-dark); }
  .text-btn-line:not(:disabled):hover { background: var(--accent-soft); color: var(--green-dark); border-color: var(--accent-line); }
  .footer-actions .text-btn:not(:disabled):hover,
  .footer-actions .text-btn-line:not(:disabled):hover { background: #e2ecd8; border-color: var(--green); color: var(--ink); }
  .icon-btn:not(:disabled):hover, .phone-link:hover, .catalog-item:hover, .nav-link:hover { background: var(--accent-soft); color: var(--green-dark); }
  .product:hover, .catalog-quote:hover { border-color: var(--green); }
  a.place:hover { background: var(--accent-soft); }
  .footer-catalog-list a:hover, .footer-catalog-list button:hover, .footer-links > a:hover { color: var(--green); }
  .yandex-reviews > a:hover { color: var(--green); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media (hover: hover) {
  .catalog-quote .text-btn:not(:disabled):hover { background: #e2ecd8; border-color: var(--green); color: var(--green-dark); }
}

.catalog-quote:focus-within { border-color: var(--green); }

.catalog-quote.product-help { display: flex; align-items: center; min-width: 0; border: 1px solid var(--accent-line); border-radius: var(--radius); background: var(--accent-soft); color: var(--ink); transition: border-color 0.15s ease; }
.catalog-quote.product-help:hover, .catalog-quote.product-help:focus-visible { border-color: var(--green); }

.catalog-services { grid-column: 1 / -1; display: grid; gap: var(--s2); }
.catalog-services > .product-help { grid-column: auto; }
@media (min-width: 720px) {
  .catalog-services { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
  .catalog-services > .product-help { gap: var(--s4); }
  .catalog-services > .product-help img { width: 72px; height: 88px; }
}

.drop-logos img.market-logo { width: 149px; height: 22px; object-fit: contain; }

@media (min-width: 720px) { .order-steps li { padding: 16px; } .order-steps li::after { top: 16px; right: 16px; } }

@media (min-width: 720px) { .order-steps strong { min-height: 20px; } }

/* Lightweight illustrated order steps. */
.order-steps li { align-items: center; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: center; }
.order-steps li::after { content: "→"; top: 5px; right: -14px; color: #8b9b7d; font-size: 19px; }
.order-steps li:last-child::after { content: none; }
.step-icon { display: block; width: 32px; height: 32px; margin-bottom: 6px; }
.order-steps strong { min-height: 0; white-space: nowrap; }

@media (min-width: 1040px) {
  .drop-logos { gap: 48px; }
  .drop-logos img { height: 30px; }
  .drop-logos img.market-logo { width: 203px; height: 30px; }
}

.mobile-catalog-scroll { position: relative; flex: 1; min-height: 0; display: flex; }
.mobile-catalog { scrollbar-width: none; padding-bottom: 38px; }
.mobile-catalog::-webkit-scrollbar { display: none; }
.catalog-scroll-hint { position: absolute; inset: auto 0 0; display: flex; align-items: flex-end; justify-content: center; gap: 8px; height: 58px; padding: 0 12px 8px; border: 0; background: linear-gradient(transparent, var(--bg) 55%); color: var(--green); font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }
.catalog-scroll-hint[hidden] { display: none; }

.delivery-sheet .sheet-panel { display: flex; flex-direction: column; overflow: hidden; }
.delivery-dialog-header { position: relative; flex: none; padding-bottom: var(--s4); }
.delivery-dialog-header h2 { margin-bottom: 0; }
.delivery-dialog-header .sheet-close { top: -4px; right: -4px; background: var(--card); }
.delivery-dialog-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }

.delivery-dialog-content { scrollbar-width: none; }
.delivery-dialog-content::-webkit-scrollbar { display: none; }

.footer-actions .text-btn { justify-content: flex-start; gap: 12px; }
.footer-actions .text-btn .icon { width: 20px; height: 20px; flex: none; color: var(--green-dark); }

/* Pointer feedback: inset outlines do not change control dimensions. */
@media (hover: hover) {
  button:enabled:not(.cart-remove):not(.cart-remove-file):not(.cart-parameters-toggle):not(.sheet-backdrop):not(.paper-picker-btn):not(.paper-dialog-item):not(.paper-zoom-back):not(.sheet-close):hover,
  a:is(.text-btn, .icon-btn, .phone-link, .catalog-item, .nav-link, .product, .place):hover,
  .quote-file:hover {
    border-color: var(--green);
    outline: 1px solid var(--green);
    outline-offset: -1px;
  }
  .faq-item:has(> summary:hover) { border-color: var(--green); }
  textarea:enabled:hover,
  input:is([type="tel"], [type="email"]):enabled:hover { border-color: var(--green); }
  a:not([class]):hover, a.back-link:hover, .reference-grid figcaption a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

@media (hover: hover) { .messenger-rail .messenger:hover { background: transparent; outline: none; } }

@media (hover: hover) {
  button.icon-btn.sheet-close:enabled:hover { background: var(--surface-soft); color: var(--ink); }
}

/* The custom quote is available beside the catalogue and in the mobile menu. */
.header-custom-quote,.menu-custom-quote{border:1px solid var(--green);border-radius:10px;background:transparent;color:var(--green);font:inherit;font-size:13px;font-weight:500;padding:10px 14px;min-height:40px;cursor:pointer}
.header-custom-quote{display:none;flex:none;white-space:nowrap}
.menu-custom-quote{display:block;margin:16px 0;width:100%}
@media(min-width:768px){.header-custom-quote{display:block}.menu-custom-quote{display:none}}
@media(min-width:768px) and (max-width:1023px){.header-tools .contacts-drop{display:none}}
@media(hover:hover){.header-custom-quote:hover,.menu-custom-quote:hover{background:var(--accent-soft)}}
/* Keep the catalogue prominent beside the secondary custom-quote action. */
.header .catalog-drop{flex:none}
.header .catalog-btn,.header .header-custom-quote{box-sizing:border-box;height:40px;min-height:40px;border-radius:10px;line-height:1.4}
.header .catalog-btn{background:var(--accent-soft);border-color:var(--green);color:var(--green-dark);font-weight:600;padding:0 20px}
.header .header-custom-quote{padding:0 14px}
.header .catalog-drop:hover .catalog-btn,.header .catalog-drop:focus-within .catalog-btn{background:var(--accent-soft);border-color:var(--green)}
/* The open catalogue has one continuous tinted header, rather than a button inside it. */
.header .catalog-drop .nav-panel{background:linear-gradient(to bottom,var(--accent-soft) 0 40px,var(--card) 40px 100%)}
.header .catalog-drop .nav-panel::before{top:40px;left:0;right:0}
.header .catalog-drop:hover .catalog-btn,
.header .catalog-drop:focus-within .catalog-btn{background:transparent;border-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}
/* Open catalogue controls sit on the shared header surface. */
.header .catalog-drop:hover .catalog-btn,
.header .catalog-drop:focus-within .catalog-btn{outline:none!important;border-color:transparent!important;box-shadow:none}
.catalog-drop .catalog-item-quote{display:none}
@media(min-width:768px){
 .catalog-drop .catalog-header-quote{display:block;position:absolute;top:0;left:calc(var(--catalog-trigger-width,120px) + 8px);z-index:32}
}


.header-custom-quote .quote-pencil{flex:none;vertical-align:middle;margin-right:8px}
.catalog-drop .catalog-header-quote,
.catalog-drop .catalog-header-quote:enabled:hover{border-color:transparent!important;outline:none!important;box-shadow:none;background:transparent}

.header-custom-quote .quote-pencil{stroke-width:2.55}
/* Match the phone's 1.7-unit stroke at each rendered header icon size. */
.header{--header-icon-stroke:1.7px}
.header .burger span,.header .burger-mark span{height:var(--header-icon-stroke)}
.header .burger span{margin-top:calc(var(--header-icon-stroke) / -2)}
.header-custom-quote .quote-pencil path{vector-effect:non-scaling-stroke;stroke-width:var(--header-icon-stroke)}
@media(max-width:380px){.header{--header-icon-stroke:1.558333px}}

/* All header line icons use a 24-unit SVG at the same rendered size. */
.header .burger-mark,.header .quote-pencil{display:inline-block;width:24px;height:24px;flex:none;stroke-width:1.7;vertical-align:middle}
.header .quote-pencil path{vector-effect:none;stroke-width:1.7}
@media(max-width:380px){.header .burger-mark,.header .quote-pencil{width:22px;height:22px}}
/* One typographic scale for all header navigation and contact labels. */
.header .catalog-btn,
.header .header-custom-quote,
.header .header-tools .phone-link,
.header .header-tools>.contacts-drop>.nav-link,
.header .catalog-item{font-family:inherit;font-size:14px;font-weight:500;line-height:1.4}

@media(min-width:768px){:root{--gutter:32px}}
@media(min-width:768px){
 .header .catalog-drop .nav-panel{width:min(600px,calc(100vw - 240px));grid-template-columns:repeat(3,minmax(0,1fr))}
 .header .catalog-drop .catalog-item{white-space:normal}
}

.header .catalog-label,.header .header-custom-quote>span{position:relative;top:1px}
.reviews-intro .text-btn-line{background:var(--accent-soft);border-color:var(--accent-line);color:var(--green-dark)}
@media(hover:hover){.reviews-intro .text-btn-line:hover{background:var(--accent-soft);border-color:var(--green);outline:none}}
.quote-calculation-summary{padding:14px 16px;border-radius:12px;background:var(--accent-soft,#eef2e7);font-size:14px;line-height:1.6;white-space:pre-line}.quote-calculation-summary[hidden]{display:none}.quote-status{font-size:13px;line-height:1.5}

@media(max-width:767px){
 .messenger-rail{transition:opacity .18s ease,transform .18s ease,visibility .18s}
 .messenger-rail.is-scroll-hidden{opacity:0;transform:translateX(16px);visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.messenger-rail{transition:none}}

.submission-success[hidden],#quote-sheet form[hidden],#callback-sheet form[hidden],.has-submission-success .sheet-panel>h2[hidden]{display:none!important}
.submission-success{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:340px;padding:36px 12px;text-align:center}
.submission-success-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--green);font-size:36px;line-height:1}
.submission-success .submission-success-title{margin:0;font-size:28px;line-height:1.25}
.submission-success-message{max-width:430px;margin:0;color:var(--muted);font-size:16px;line-height:1.6}
.submission-success-close{min-width:160px;margin-top:8px}
@media(max-width:767px){.submission-success{min-height:300px;padding:32px 0}.submission-success .submission-success-title{font-size:24px}}

/* Shared multi-product request cart. */
#open-cart{position:relative}
.cart-count{position:absolute;right:-4px;top:-4px;min-width:17px;height:17px;padding:0 3px;border-radius:20px;background:var(--green);color:#fff;font-size:10px;line-height:17px;text-align:center}
#cart-sheet .cart-panel{width:min(820px,100%);padding:24px;box-sizing:border-box}
.cart-items{display:grid;gap:14px;margin-bottom:20px}
.cart-item{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card,#fff)}
.cart-item-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
.cart-item h3{font-size:19px;margin:0}
.cart-remove,.cart-remove-file{border:0;background:transparent;color:var(--muted);font:inherit;font-size:25px;cursor:pointer;min-width:32px;min-height:32px}
.cart-chips{display:flex;flex-wrap:wrap;gap:6px}
.cart-chip{border:1px solid var(--accent-line,#dce7d5);border-radius:20px;background:var(--accent-soft,#edf4e7);font-size:12px;line-height:1.4;padding:4px 9px;overflow-wrap:anywhere}
.cart-item-cost{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:14px 0}
.cart-item-cost strong{font-size:22px}.cart-item-cost span{font-size:13px;color:var(--muted)}
.cart-item-actions,.cart-file-control{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-top:10px}
.cart-link{position:relative;background:none;border:0;padding:0;color:var(--green-dark);font:inherit;font-size:13px;text-decoration:none;cursor:pointer;line-height:1.5}
.cart-link:hover{text-decoration:underline}.cart-link:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.cart-file-control input[type=file],.cart-design-sheet input[type=file]{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.cart-filename,.cart-reference{font-size:12px;overflow-wrap:anywhere;color:var(--muted)}
.cart-form{display:grid;gap:18px}.cart-form fieldset{min-width:0;border:0;padding:0;margin:0}.cart-form legend{font-size:17px;font-weight:600;margin-bottom:12px}
.cart-form label,.cart-design-sheet label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.cart-form input:not([type=checkbox]),.cart-form select,.cart-form textarea,.cart-design-sheet textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);font:inherit;color:var(--ink);min-width:0}
.cart-delivery,.cart-contacts{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.cart-address-label,.cart-delivery-note,.cart-comment-label{grid-column:1/-1}.cart-delivery-note,.cart-totals p{font-size:12px;line-height:1.5;color:var(--muted);margin:4px 0}
.cart-totals{padding:16px;border-radius:12px;background:var(--accent-soft,#edf4e7)}.cart-totals>div{display:flex;justify-content:space-between;align-items:center;gap:16px}.cart-total{font-size:25px}.cart-totals .cart-ready{color:var(--ink);font-size:14px;margin:8px 0}
.cart-form .cart-confirm{display:flex;align-items:flex-start;gap:10px;color:var(--ink);background:#fff4de;padding:12px;border-radius:10px}.cart-confirm input{flex:none;margin-top:3px}
.cart-submit{min-height:48px}.cart-status{font-size:14px;line-height:1.5;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.cart-continue{display:block;margin:18px auto 0;background:none;border:0;color:var(--green-dark);font:inherit;font-size:14px;cursor:pointer}
.cart-design-sheet form{display:grid;gap:14px}.cart-design-sheet .cart-link{color:var(--green-dark)}.cart-design-product{color:var(--muted);font-size:14px}
.cart-edit-notice,.cart-add-status{font-size:13px;color:var(--green-dark);line-height:1.5}
#cart-sheet [hidden],.cart-design-sheet [hidden],.cart-count[hidden]{display:none!important}
@media(max-width:767px){#cart-sheet{padding:8px}#cart-sheet .cart-panel{padding:18px 12px;max-height:calc(100dvh - 16px);border-radius:20px}.cart-item{padding:14px}.cart-delivery,.cart-contacts{grid-template-columns:1fr}.cart-totals strong{font-size:22px}.cart-item h3{font-size:17px}.cart-form input,.cart-form select,.cart-form textarea,.cart-design-sheet textarea{font-size:16px!important}.cart-design-sheet .sheet-panel{padding:22px 16px}}

.cart-file-control .cart-filename{min-width:0;flex:1}
.cart-file-control label:focus-within,.cart-design-sheet label.cart-link:focus-within{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}

.cart-added-notice{position:fixed;z-index:1200;left:50%;bottom:calc(var(--sticky-price-height,0px) + 20px);transform:translateX(-50%);max-width:calc(100vw - 32px);box-sizing:border-box;padding:12px 20px;border:1px solid var(--accent-line,#dce7d5);border-radius:12px;background:var(--accent-soft,#edf4e7);color:var(--green-dark);box-shadow:0 4px 18px #00000012;font-size:14px;line-height:1.4;text-align:center;pointer-events:auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 14px;width:max-content}
.cart-added-notice[hidden]{display:none!important}
.cart-add-status:empty{display:none}

.cart-notice-link{color:var(--green-dark);font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.cart-notice-link:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}

.cart-added-notice{top:50%;bottom:auto;transform:translate(-50%,-50%);flex-direction:column;gap:12px;padding:22px 30px;border:2px solid var(--green);border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 12px 48px #263d3133;font-size:18px;font-weight:600}
.cart-added-notice .cart-notice-link{padding:10px 18px;border:1px solid var(--green);border-radius:10px;background:var(--accent-soft,#edf4e7);font-size:14px;text-decoration:none}
.cart-added-notice .cart-notice-link:hover{background:var(--green);color:#fff}

.cart-added-notice{padding:28px 38px 22px}
.cart-notice-close{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:24px;font-weight:400;line-height:1;cursor:pointer}
.cart-notice-close:hover{background:var(--accent-soft,#edf4e7);color:var(--green-dark)}
.cart-notice-close:focus-visible{outline:2px solid var(--green);outline-offset:1px}
@media(max-width:480px){
 .cart-added-notice{padding:48px 24px 22px}
 .cart-notice-close{width:44px;height:44px;top:2px;right:2px;font-size:26px}
}

/* Standalone cart page: items and a separate order column. */
.cart-page-main{padding:32px 0 64px;min-height:55vh}
.cart-page-main .back-link{margin-bottom:24px;font-size:14px;color:var(--muted)}
.cart-page-main .back-link a{text-decoration:none;color:inherit}.cart-page-main .back-link a:hover{text-decoration:underline}
.cart-page #cart-sheet .cart-panel{width:100%;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.cart-page .cart-panel>h1{margin:0 0 28px;font-size:36px;line-height:1.2}
.cart-page .cart-content{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start;gap:20px 28px}
.cart-page .cart-items{grid-column:1;grid-row:1;margin:0}
.cart-page .cart-form{grid-column:2;grid-row:1 / span 3;position:sticky;top:100px;background:var(--card,#fff);border:1px solid var(--line);border-radius:18px;padding:22px}
.cart-page .cart-status{grid-column:1;grid-row:2;margin:0}.cart-page .cart-status:empty{display:none}
.cart-page .cart-empty{grid-column:1 / -1;padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--card,#fff);margin:0;line-height:1.6}
.cart-page .cart-continue{grid-column:1;grid-row:3;justify-self:start;margin:0;text-decoration:none;padding:12px 18px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff)}
.cart-page .cart-delivery,.cart-page .cart-contacts{grid-template-columns:1fr}
.cart-page .has-submission-success .submission-success{max-width:600px;margin:0 auto;padding:48px 24px}
.cart-page .cart-panel:has(.cart-empty:not([hidden])) .cart-continue{grid-row:auto}
@media(max-width:900px){
 .cart-page .cart-content{grid-template-columns:1fr}
 .cart-page .cart-items{grid-column:1;grid-row:1}
 .cart-page .cart-status{grid-column:1;grid-row:2}
 .cart-page .cart-form{grid-column:1;grid-row:3;position:static;padding:18px}
 .cart-page .cart-continue{grid-row:4}
 .cart-page .cart-panel>h1{font-size:28px;margin-bottom:20px}
 .cart-page-main{padding:24px 0 40px}
}

.cart-page .cart-panel>h1{text-align:left}
@media(min-width:901px) and (max-height:899px){.cart-page .cart-form{position:static}}
.cart-page .cart-panel:has(.cart-empty:not([hidden])) .cart-items{display:none}

/* Compact cart cards with expandable order parameters. */
.cart-item{padding:22px}
.cart-item-top{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:14px;margin:0}
.cart-item-heading{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;min-width:0}
.cart-item-heading h3{line-height:1.3;overflow-wrap:anywhere}
.cart-parameters-toggle{display:inline-flex;align-items:center;gap:7px;padding:6px 0;border:0;background:transparent;color:var(--green-dark);font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.cart-parameters-toggle:after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.cart-parameters-toggle[aria-expanded=true]:after{transform:translateY(2px) rotate(225deg)}
.cart-item-price{font-size:22px;white-space:nowrap;line-height:1.3}
.cart-item .cart-remove{min-width:28px;width:28px;padding:0;line-height:1}
.cart-item-parameters{padding-top:16px}
.cart-item-parameters[hidden]{display:none}
.cart-edit-chip{display:inline-flex;align-items:center;color:var(--green-dark);border-color:var(--accent-line);background:transparent;text-decoration:none}
.cart-edit-chip:hover{border-color:var(--green)}
.cart-item-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px 20px;flex-wrap:wrap;margin-top:20px}
.cart-item-artwork{display:grid;gap:10px;min-width:0}
.cart-item .cart-file-control{margin:0;gap:8px 10px}
.cart-item .cart-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid var(--accent-line);border-radius:10px;background:var(--accent-soft);color:var(--green-dark);font-size:13px;line-height:1.4;white-space:nowrap;text-decoration:none;cursor:pointer}
.cart-item .cart-upload-button:hover{border-color:var(--green);text-decoration:none}
.cart-upload-icon{font-size:20px;line-height:16px}
.cart-item-deadline{font-size:12px;color:var(--muted);line-height:1.5}
.cart-item-artwork .cart-reference{margin:0}
.cart-item .cart-filename{flex:initial}
@media(max-width:600px){.cart-item{padding:18px}.cart-item-top{gap:10px;grid-template-columns:minmax(0,1fr) auto 24px;align-items:start}.cart-item-heading{flex-direction:column;align-items:flex-start;gap:3px}.cart-item-price{font-size:19px}.cart-item .cart-remove{width:24px;min-width:24px}.cart-item-bottom{margin-top:16px;gap:12px}.cart-item-deadline{width:100%}.cart-item .cart-upload-button{min-height:44px}.cart-parameters-toggle{min-height:36px}.cart-item .cart-remove{min-height:36px}}

.cart-upload-icon{width:18px;height:18px;flex:none}

.cart-item .cart-remove{display:inline-flex;align-items:center;justify-content:center;align-self:start;height:32px;min-height:32px;margin-top:-2px;font-family:Arial,sans-serif;line-height:1}
@media(max-width:600px){.cart-item .cart-remove{height:32px;min-height:32px;margin-top:-4px}}

@media(hover:hover){.cart-parameters-toggle:hover{text-decoration:underline;text-underline-offset:3px}}

.cart-file-info{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:240px;flex:1 1 120px}
.cart-item .cart-file-info .cart-filename{display:block;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
.cart-file-info .cart-remove-file{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:32px;min-width:28px;padding:0;line-height:1}
.cart-item-artwork{max-width:100%;flex:0 1 auto}
.cart-item .cart-file-control{max-width:100%}
@media(max-width:600px){.cart-item .cart-file-control{width:100%}.cart-item-artwork{width:100%}.cart-file-info{max-width:none;flex:1 1 80px}}

.cart-edit-chip{gap:6px;border-color:var(--green);color:var(--green-dark);font-weight:600}.cart-edit-chip svg{flex:none}.cart-edit-chip:hover{background:var(--accent-soft)}

/* Match dialog close buttons without a rectangular hover outline. */
.cart-remove,.cart-remove-file{border-radius:50%;transition:background-color .15s,color .15s}
@media(hover:hover){.cart-remove:enabled:hover,.cart-remove-file:enabled:hover{background:var(--surface-soft);color:var(--ink)}}

/* White canvas and softly raised surfaces. */
:root{--surface-shadow:0 3px 10px rgba(44,63,87,.045),0 10px 26px rgba(44,63,87,.045)}
.product,.cart-item{box-shadow:var(--surface-shadow)}
.product img{height:150px}
@media(min-width:768px){.product img{height:180px}}

/* Catalogue title stays visible above the image; action appears below. */
.product-category>.product-name{min-height:32px}
.product-category .product-label{min-height:44px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .product-category{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
 .product-category:hover{transform:scale(1.025);z-index:1}
}

/* Larger product previews; the action overlays the image instead of reserving a row. */
.product-category img{height:180px}
.product-category .product-label{position:absolute;inset:52px 12px 12px;min-height:0;pointer-events:none}
.product-category .product-overlay{align-items:center}
@media(min-width:768px){.product-category img{height:230px}}
.product-category .product-overlay{align-items:flex-end}

/* Balance catalogue artwork and bring it closer to the product title. */
.product-category{gap:0;overflow:hidden}
.product-category>.product-name{font-size:18px;font-weight:600;position:relative;z-index:1}
.product-category img{transform:translateY(-8px);transform-origin:center}
.product-category img[src*="logo-viz3"],
.product-category img[src*="logo-calendar3"]{transform:translateY(-8px) scale(1.05)}
.product-category img[src*="logo-stickers3"]{transform:translateY(-8px) scale(1.12)}
.product-category img[src*="logo-otkritki3"],
.product-category img[src*="logo-welcome3"]{transform:translateY(-8px) scale(1.07)}

/* Add breathing room without changing the card grid. */
.product-category img{scale:.9}
.product-category.product-external>.product-name{padding-right:0}
.product-category.product-external .product-destination{top:auto;bottom:8px;right:12px;font-size:10px}
.product-category img[src*="logo-list3"]{scale:.85}

.product-external .product-calculate{font-size:13px;padding:10px 12px;gap:6px}
@media(max-width:480px){.product-external .product-calculate{font-size:11px;white-space:normal}.product-external .product-calculate svg{width:16px;height:16px}}
.product-category .product-label{width:auto}
/* Equal free space before, between and after delivery partner logos. */
.drop-logos{justify-content:space-evenly;column-gap:0}
/* Compact delivery logos in the header dropdown. */
.header .contacts-panel .drop-logos img{height:22px}
.header .contacts-panel .drop-logos img.market-logo{width:149px;height:22px}

.calculator-coming-soon{padding:28px}
.calculator-coming-soon>p{max-width:70ch;margin:16px 0 24px;color:var(--muted);line-height:1.65}
@media(max-width:600px){.calculator-coming-soon{padding:20px}.calculator-coming-soon>.text-btn{max-width:100%;white-space:normal}}
