/* Missis Norris — новий вигляд (D-62, 05.10.2026), шар поверх store.css і concept.css.
   Обрано власником: заголовки й напис — Tenor Sans, текст — Fixel Text; заливки кнопок і підсвіток — графіт
   #2E3236 (колір тексту не змінюється); гострі кути; кнопка на картці — тонкий контур; перший екран — фото
   ~½ екрана + кнопка; напис у шапці — рядок; ціни на вітрині без знака ₴ (знак — у кошику й оформленні).
   Відкат: прибрати один рядок <link href="/mn-2026.css"> зі сторінок. */

@font-face {
  font-family: "Tenor Sans"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("assets/fonts/TenorSans-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Tenor Sans"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("assets/fonts/TenorSans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
                 U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --serif: "Tenor Sans", "Fixel Text", -apple-system, "Segoe UI", Arial, sans-serif;   /* заголовки й напис */
  --sans: "Fixel Text", -apple-system, "Segoe UI", Arial, sans-serif;
  --radius: 0;
  --fill: #2E3236;        /* графіт «світліший» — заливки кнопок і підсвіток */
  --fill-hover: #3A3F44;
  --on-fill: #F6F5F1;
  --line-soft: #E4E1D8;
  --fc-header-h: 3.5rem;
}
body { font-synthesis: none; --fc-header-h: 3.5rem; }
* { border-radius: 0 !important; }   /* гострі кути всюди */

/* ---------------------------------------------------------------- іконки (тонкі лінії, колір = колір тексту) */
.mn-i, .mn-after-ur::after {
  display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -.14em; background: currentColor;
  -webkit-mask: var(--mn-i) center / contain no-repeat; mask: var(--mn-i) center / contain no-repeat;
}
.mn-i { margin-left: .4em; }
.mn-after-ur::after { content: ""; margin-left: .45em;
  --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E"); }
.mn-i--ur { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E"); }
.mn-i--r { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.mn-i--l { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M20 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E"); margin: 0 .4em 0 0; }
.mn-i--x { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E"); margin: 0; width: 1.25em; height: 1.25em; }
.mn-i--chev { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E"); }
.mn-i--now { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4.5l3 2'/%3E%3C/svg%3E"); }
.mn-i--leaf { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'%3E%3Cpath d='M5 19C5 11 11 5 19 5c0 8-6 14-14 14ZM5 19l8-8'/%3E%3C/svg%3E"); }
.mn-i--tel { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='miter'%3E%3Cpath d='M6.5 3.5h3l1.6 4.4-2 1.3a11 11 0 0 0 5.7 5.7l1.3-2 4.4 1.6v3a2 2 0 0 1-2 2A16.5 16.5 0 0 1 4.5 5.5a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E"); }
.mn-i--ig { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M4.5 4.5h15v15h-15z'/%3E%3Ccircle cx='12' cy='12' r='3.5'/%3E%3Cpath d='M16.6 7.4h.01'/%3E%3C/svg%3E"); }
.mn-i--pin { --mn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M12 21s-6.5-5.8-6.5-11.2a6.5 6.5 0 0 1 13 0C18.5 15.2 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='10' r='2.2'/%3E%3C/svg%3E"); }

/* ---------------------------------------------------------------- типографіка */
.h2, .h3, .display, .fc-section__head .h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.005em; }
.fc-section__head .h2 { font-size: clamp(1.55rem, 1.15rem + 1.6vw, 2.35rem); line-height: 1.12; }
.eyebrow { font-family: var(--serif); font-weight: 400; font-size: .7rem; letter-spacing: .2em; color: var(--ink-3); }
.fc-lede { font-size: .95rem; line-height: 1.55; }

/* ---------------------------------------------------------------- кнопки */
.btn { border-color: color-mix(in srgb, var(--fill) 55%, transparent); color: var(--ink); font-weight: 500; letter-spacing: .01em; }
.btn:hover { border-color: var(--fill); }
.btn--primary, .btn.btn--primary { background: var(--fill); border-color: var(--fill); color: var(--on-fill); }
.btn--primary:hover { background: var(--fill-hover); border-color: var(--fill-hover); }
.btn:focus-visible, .chip:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--fill); outline-offset: 2px; }
.skip-link:focus { background: var(--fill); }
.chip.is-selected { border: 1px solid var(--fill); box-shadow: inset 0 0 0 1px var(--fill); padding: .5rem .8rem; }
.chip.is-selected::before { content: none; }

/* ---------------------------------------------------------------- шапка */
.fc-header { background: var(--paper); }
.fc-header__inner { min-height: var(--fc-header-h); gap: .5rem; }
.fc-brand { font-family: var(--serif); font-size: .82rem; letter-spacing: .24em; text-transform: uppercase; line-height: 1; }
.fc-header__phone { font-size: .82rem; letter-spacing: .01em; }
.fc-cart, .fc-burger { border: 0 !important; background: none !important; width: 44px; height: 44px; position: relative; }
.fc-cart__ico { width: 22px; height: 22px; }
.fc-cart__count {
  position: absolute; top: 5px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px;
  background: var(--fill); color: var(--on-fill); font-size: 10px; font-weight: 500; line-height: 16px; text-align: center;
}
.fc-cart__count[hidden] { display: none; }
.fc-burger { gap: 6px; }
.fc-burger > span { width: 20px; }
.fc-burger > span:nth-child(2) { display: none; }
.fc-burger[aria-expanded="true"] > span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.fc-burger[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); }
.fc-drop { border-radius: 0; }
@media (min-width: 1200px) { .fc-nav { margin-left: clamp(1.6rem, 3vw, 3rem); } }
.chips a, a.chip, .chip a { text-decoration: none; }

/* мобільне меню */
.fc-mobile-menu { padding: .9rem var(--gutter) 2.2rem; }
.mn-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 1.3rem; }
.mn-quick__tile { display: grid; gap: 1rem; padding: 14px 12px; background: var(--fill); color: var(--on-fill) !important;
  text-decoration: none; font-size: .9rem; font-weight: 500; }
.mn-quick__tile .mn-i { margin: 0; width: 22px; height: 22px; }
.mn-menu-label { font-family: var(--serif); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3); margin: 1.2rem 0 .4rem; }
.mn-row { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; padding: 7px 0;
  border-bottom: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; }
.mn-row--plain { grid-template-columns: 1fr auto; min-height: 52px; }
.mn-row img { width: 52px; height: 52px; object-fit: cover; display: block; background: var(--line); }
.mn-row b { font-weight: 500; font-size: .98rem; }
.mn-row .mn-i { margin: 0; color: var(--ink-3); }
.mn-mono { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.mn-mono a { display: grid; place-items: center; min-height: 42px; padding: 0 4px; border: 1px solid var(--line-soft);
  color: var(--ink); text-decoration: none; font-size: .84rem; text-align: center; }
.mn-mono a[aria-current="page"] { border-color: var(--fill); box-shadow: inset 0 0 0 1px var(--fill); }
.mn-menu-links { display: grid; margin-top: 1.3rem; border-top: 1px solid var(--line-soft); }
.mn-menu-links a { padding: .8rem 0; border-bottom: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; font-size: .95rem; }
.mn-menu-contacts { display: grid; gap: .55rem; margin-top: 1.4rem; font-size: .9rem; }
.mn-menu-contacts a { display: inline-flex; align-items: center; color: var(--ink); text-decoration: none; }
.mn-menu-contacts .mn-i { margin: 0 .6em 0 0; color: var(--ink-3); width: 18px; height: 18px; }

/* ---------------------------------------------------------------- перший екран (варіант А) */
.fc-hero.mn-hero { display: grid; grid-template-columns: 1fr; min-height: 0; padding: 0; background: var(--paper); color: var(--ink); align-items: stretch; }
.fc-hero.mn-hero .eyebrow { color: var(--ink-3); margin: 0; }
.mn-hero__media { height: min(42svh, 400px); min-height: 240px; overflow: hidden; background: #E9E5DD; }
.mn-hero__media picture, .mn-hero__media img { display: block; width: 100%; height: 100%; }
.mn-hero__media img { object-fit: cover; object-position: 50% 46%; }
.mn-hero__text { padding: 1.3rem var(--gutter) .4rem; display: grid; gap: .8rem; align-content: start; }
.mn-hero .eyebrow { margin: 0; }
.mn-hero__h1 { font-family: var(--serif); font-weight: 400; color: var(--ink); font-size: clamp(1.8rem, 1.2rem + 2.6vw, 3.1rem);
  line-height: 1.08; letter-spacing: -.01em; margin: 0; text-wrap: balance; max-width: 16ch; }
.mn-hero__actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: .2rem; }
.mn-hero__actions .btn { flex: 1 1 9.5rem; min-height: 48px; white-space: nowrap; }
.mn-hero__note { margin: 0; font-size: .82rem; color: var(--ink-3); }
.mn-hero__wiz { justify-self: start; display: inline-flex; align-items: center; min-height: 40px; font-size: .88rem; font-weight: 500;
  color: var(--ink); text-decoration: none; background: linear-gradient(var(--ink), var(--ink)) no-repeat 0 calc(100% - 8px) / 100% 1px; }
@media (min-width: 900px) {
  .fc-hero.mn-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  /* фото не на весь экран: под ним уже видно начало витрины (просьба собственника 05.10) */
  .mn-hero__media { height: min(68svh, 620px); min-height: 420px; }
  .mn-hero__text { align-content: center; padding: 3rem clamp(2rem, 5vw, 5rem); gap: 1.1rem; }
  .mn-hero__actions .btn { flex: 0 0 auto; padding-inline: 1.8rem; }
}

/* факти під першим екраном — компактно */
.fc-facts__row { font-size: .8rem; }

/* ---------------------------------------------------------------- картки */
.cmp-card, .fc-card, .format-card, .ready-card, .mono-week-card, .now-mono { border: 0; background: transparent; }
.fc-card { gap: .45rem; }
.fc-card .cmp-card__media, .cmp-card__media { background: #E9E5DD; }
.fc-card .cmp-card__title, .cmp-card__title, .ready-card__title, .now-mono__title {
  font-family: var(--sans); font-weight: 500; font-size: .94rem; line-height: 1.3; color: var(--ink); margin: .55rem 0 0; letter-spacing: 0;
}
.fc-card .cmp-card__price, .cmp-card__price, .ready-card .price { font-family: var(--sans); font-weight: 500; font-size: 1rem; color: var(--ink); letter-spacing: -.005em; }
.fc-card .cmp-card__cta, .cmp-card__cta {
  align-self: stretch; justify-content: center; width: 100%; margin-top: auto; min-height: 44px;
  background: transparent; color: var(--ink); border: 1px solid color-mix(in srgb, var(--fill) 50%, transparent); font-size: .86rem;
}
.fc-card .cmp-card__cta:hover, .cmp-card__cta:hover { background: var(--fill); color: var(--on-fill); border-color: var(--fill); }
.fc-card .cmp-card__cta.btn--primary, .cmp-card__cta.btn--primary { background: var(--fill); color: var(--on-fill); border-color: var(--fill); }
.cmp-card__body { padding: .55rem 0 0 !important; }
.cmp-card > :not(.cmp-card__media), .cmp-card--mini > :not(.cmp-card__media):not(.cmp-card__body) { margin-left: 0 !important; margin-right: 0 !important; }
.cmp-card__cta, .cmp-card .btn { max-width: 100%; box-sizing: border-box; }
.fc-grid-note a, .arrow-link { font-weight: 500; }

/* ---------------------------------------------------------------- лист вибору розміру й кошик */
.side-panel { background: var(--paper); }
.side-panel__close { border: 0 !important; background: none !important; display: grid; place-items: center; color: var(--ink); }
.mn-pick__head { gap: 14px; }
.mn-pick__head .h2, #mn-cart-title, #mn-wiz-title { font-size: 1.45rem; line-height: 1.15; }
.variants-grid { gap: 0; border-top: 1px solid var(--line-soft); }
.variant-tile {
  position: relative; border: 0 !important; border-bottom: 1px solid var(--line-soft) !important; padding: .85rem .9rem !important;
  grid-template-columns: 1fr auto; cursor: pointer; background: transparent; transition: background .15s, color .15s;
}
.variant-tile input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.variant-tile__name { font-weight: 500; }
.variant-tile__price { font-weight: 500; }
.variant-tile__note { grid-column: 1 / -1 !important; }
.variant-tile:has(input:checked) { background: var(--fill); color: var(--on-fill); border-bottom-color: var(--fill) !important; }
.variant-tile:has(input:checked) .variant-tile__note { color: color-mix(in srgb, var(--on-fill) 72%, transparent); }
.variant-tile:has(input:checked) .variant-tile__name::before { content: none; }
.variant-tile:has(input:focus-visible) { outline: 2px solid var(--fill); outline-offset: 2px; }
.expand__sticky { background: var(--paper); border-top: 1px solid var(--line-soft); }
.expand__sticky .price--now, #mn-price { font-size: 1.15rem; font-weight: 500; }
.mn-summary, .mn-box, .disclosure { border-color: var(--line-soft); }

.line { border-color: var(--line-soft); }
.line__thumb, .line__thumb img, .line img { border: 0; }
.qty-btn { border: 1px solid var(--line-soft) !important; background: transparent; width: 40px; height: 40px; min-width: 40px; min-height: 40px; }
.line__remove { border: 0; background: none; color: var(--ink-3); text-decoration: underline; text-underline-offset: 3px; font-size: .82rem; }
.cart-summary .btn--primary { min-height: 46px; padding-inline: 1.6rem; }

/* ---------------------------------------------------------------- «Напишіть нам» і підвал — компактно */
.fc-contacts.mn-foot { padding-block: 2.2rem 0; border-top: 1px solid var(--line-soft); }
.mn-write { background: var(--fill); color: var(--on-fill); padding: 1.3rem 1.2rem; display: grid; gap: .55rem; margin-bottom: 1.8rem; }
.mn-write__h { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; line-height: 1.15; margin: 0; color: var(--on-fill); }
.mn-write__p { margin: 0; font-size: .86rem; color: color-mix(in srgb, var(--on-fill) 75%, transparent); }
.mn-write__row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: .35rem; }
.mn-write__row .btn { flex: 1 1 8.5rem; min-height: 44px; font-size: .86rem; white-space: nowrap; }
.btn.mn-btn--light { background: var(--on-fill); color: var(--fill); border-color: var(--on-fill); }
.btn.mn-btn--ghost-light { background: transparent; color: var(--on-fill); border-color: color-mix(in srgb, var(--on-fill) 45%, transparent); }
.mn-foot__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem 1rem; font-size: .84rem; line-height: 1.45; }
.mn-foot .fc-col { gap: 0; min-width: 0; }
.mn-foot .fc-col__title { font-family: var(--serif); font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 .45rem; font-weight: 400; }
.mn-foot .fc-col a { color: var(--ink); text-decoration: none; min-height: 30px; display: inline-flex; align-items: center; overflow-wrap: anywhere; font-size: .84rem; }
.mn-foot__sections { grid-column: 1 / -1; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
.mn-foot__sections .fc-col__title { grid-column: 1 / -1; }
.mn-foot__legal { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin-top: 1.6rem; padding: .9rem 0 1.6rem; border-top: 1px solid var(--line-soft);
  font-size: .74rem; color: var(--ink-3); }
.mn-foot__legal a { color: var(--ink-3); text-decoration: none; }
.mn-foot__legal a:hover { color: var(--ink); }
@media (min-width: 900px) {
  .mn-foot .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 0 3rem; align-items: start; }
  .mn-write { margin-bottom: 0; }
  .mn-foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mn-foot__sections { grid-column: auto; grid-template-columns: 1fr; }
  .mn-foot__legal { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- юридичні сторінки (legal.php) */
.legal-text h2 { font-family: var(--serif); font-weight: 400; font-size: 1.25rem; margin: 1.6rem 0 .5rem; }
.legal-text p, .legal-text li { line-height: 1.6; font-size: .95rem; }

@media (prefers-reduced-motion: reduce) { .fc-card .cmp-card__media img { transition: none; } }

/* ================================================================ G3 (05.10.2026): сітка, підкреслення, порожня полиця, «Свій бюджет», 404
   Усі зміни виду — тільки тут; відкат — прибрати цей блок. Сітка = межі шапки: бренд ... кошик (на 1600 px це 228…1372). */

/* --- сітка: перший екран на комп’ютері в межах сітки шапки (фото від краю напису MISSIS NORRIS, текст до краю кошика) */
@media (min-width: 900px) {
  .fc-hero.mn-hero { padding-inline: max(var(--gutter), calc((100% - 1240px) / 2 + var(--gutter))); }
  .mn-hero__text { padding: 3rem 0 3rem clamp(2rem, 5vw, 5rem); }
  /* смуга фактів — на всю ширину сітки: крайні факти стоять на краях */
  .fc-facts__row { justify-content: space-between; }
}
/* абзаци й підписи під заголовком — не вужчі за сітку розділу */
.fc-lede { max-width: 48rem; }
.fc-section__head, .fc-grid-note { max-width: 60rem; }
/* «Оформлення свят»: фото — квадрат до правого краю сітки */
@media (min-width: 900px) {
  .fc-split__media { aspect-ratio: 1 / 1; max-height: none; width: 100%; }
}
/* Q1: фото роботи й квітки (page-robota.js, page-kvitka.js) — кадр 4:5 цілком на всіх ширинах, без додаткової обрізки.
   Базове .fc-split__media не змінюється: його використовують головна й «Весілля». */
.fc-split__media.fc-split__media--frame45 { aspect-ratio: 4 / 5; max-height: none; }
/* на комп’ютері кадр 4:5 не вищий за екран: ширина до 36rem (576 × 720 px) */
@media (min-width: 900px) { .fc-split__media.fc-split__media--frame45 { max-width: 36rem; } }
/* текст порожньої полиці — рядок на всю ширину, а не в першій колонці сітки */
.cmp-slot--catalog > .cart-empty { grid-column: 1 / -1; margin: 0; max-width: 60rem; }
/* картка квітки без ціни — одна спокійна строка */
.cmp-card__price.mn-price-note { font-size: .86rem; font-weight: 400; color: var(--ink-2); line-height: 1.35; }
/* карточки квітів: кнопки в одному ряду стоять на одній линии, ссылка «Монобукет» (есть не у всех видов) уходит вниз карточки */
.fc-card[data-flower-id] > .cmp-card__cta { margin-top: .6rem; }
.fc-card[data-flower-id] > .link-back { margin-top: auto !important; }

/* --- підкреслення посилань: лінія лише при наведенні й фокусі (виняток — абзаци оферти, політики, повернення) */
a, .link, .link-back, .line__remove, .wizard__reset, .nav__link[aria-current="page"] { text-decoration: none; }
.link:hover, .link:focus-visible, .link-back:hover, .link-back:focus-visible, .line__remove:hover, .line__remove:focus-visible,
.wizard__reset:hover, .wizard__reset:focus-visible, .fc-grid-note a:hover, .fc-grid-note a:focus-visible,
.mn-foot .fc-col a:hover, .mn-foot .fc-col a:focus-visible, .mn-foot__legal a:hover, .mn-foot__legal a:focus-visible,
.mn-menu-links a:hover, .mn-menu-links a:focus-visible, .mn-menu-contacts a:hover, .mn-menu-contacts a:focus-visible,
.fc-nav__link:hover, .fc-nav__link:focus-visible,
:is(p, li, dd) a:not(.btn):hover, :is(p, li, dd) a:not(.btn):focus-visible {
  text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
/* лінії, намальовані фоном (стрілочні посилання, «Допомогти обрати»): у спокої без лінії */
.arrow-link, .mn-hero__wiz, .header-sub__link, .fc-header__phone { background-size: 0 1px; background-repeat: no-repeat; transition: background-size .18s ease; }
.arrow-link:hover, .arrow-link:focus-visible, .mn-hero__wiz:hover, .mn-hero__wiz:focus-visible,
.header-sub__link:hover, .header-sub__link:focus-visible, .fc-header__phone:hover, .fc-header__phone:focus-visible { background-size: 100% 1px; }
.legal-text a { text-decoration: underline; text-underline-offset: 3px; }

/* --- «Готово зараз» скрито: у мобільному меню лишається одна плитка на всю ширину */
.mn-quick--one { grid-template-columns: 1fr; }

/* --- «Свій бюджет»: п’ятий рядок листа розміру з полем суми */
.variant-tile--budget { align-items: center; }
.variant-tile__amount {
  width: 7.5rem; min-height: 36px; padding: .2rem .1rem; box-sizing: border-box; text-align: right; font: inherit; font-size: 16px;
  font-weight: 500; color: inherit; background: transparent; border: 0; border-bottom: 1px solid color-mix(in srgb, currentColor 40%, transparent);
  border-radius: 0; outline: none; -webkit-appearance: none; appearance: none;
}
.variant-tile__amount::placeholder { color: var(--ink-3); font-weight: 400; opacity: 1; }
.variant-tile:has(input:checked) .variant-tile__amount::placeholder { color: color-mix(in srgb, var(--on-fill) 60%, transparent); }
.variant-tile__amount:focus, .variant-tile__amount:focus-visible { border-bottom-color: currentColor; outline: none; }
.variant-tile--budget:has(.variant-tile__amount:focus-visible) { outline: 2px solid var(--fill); outline-offset: 2px; }
.mn-budget-note:empty { display: none; }

/* --- сторінка 404 */
.mn-404 { padding-block: clamp(3rem, 9vw, 7rem); border-bottom: 0; }
.mn-404 .fc-section__head { margin-bottom: 1.6rem; }
body[data-mn-404] main { display: flex; flex-direction: column; min-height: calc(100svh - var(--fc-header-h)); }
body[data-mn-404] .mn-404 { flex: 1 0 auto; }

/* D-67: экран ожидания суммы доставки на странице заказа */
.mn-wait { background: #F1EEE6; border-left: 3px solid var(--fill); padding: 1.1rem 1.2rem; margin: 0 0 1rem; }
.mn-wait__title { font-family: var(--serif); font-weight: 400; font-size: 1.25rem; margin: 0 0 .5rem; }
.mn-wait__text { margin: 0 0 .9rem; color: var(--ink); max-width: 60ch; }
.mn-wait .btn-row { display: flex; flex-wrap: wrap; gap: .6rem; }
/* LIB (D-70): полка цветов по группам */
.cmp-slot--catalog > .fc-group { grid-column: 1 / -1; }
.fc-group { margin: 1.4rem 0 0; }
.fc-group__h { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; margin: 0 0 .8rem; padding-bottom: .4rem; border-bottom: 1px solid var(--line-2, #d9d4c7); }
.fc-group__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.1rem; }
@media (min-width: 1024px) { .fc-group__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .fc-group__grid { gap: .6rem; } }

/* ===== G4: фотомозаика «Квіти в наявності» (Bento) на CSS Grid =====
   4 колонки на телефоні, 6 від 768 px; клітинка квадратна, відстань між плитками однакова й малa.
   Розміри плиток (data-w / data-h) задає shop15.js за фіксованою послідовністю й закриває останній рядок без «дір». */
.cmp-slot--catalog.fc-bento-host { display: block; }
.fc-bento-wrap { container-type: inline-size; }
.fc-bento {
  --fc-gap: 6px; --fc-cols: 4; --fc-full: 4;
  --fc-cell: calc((100cqw - (var(--fc-full) - 1) * var(--fc-gap)) / var(--fc-full));
  display: flex; flex-direction: column; align-items: start; gap: var(--fc-gap);
}
.fc-bento__chunk {
  display: grid; grid-template-columns: repeat(var(--fc-cols), var(--fc-cell));
  grid-auto-rows: var(--fc-cell); grid-auto-flow: row dense; gap: var(--fc-gap); justify-content: start;
}
@media (min-width: 768px) { .fc-bento { --fc-full: 6; --fc-gap: 8px; } }
.fc-tile {
  position: relative; display: block; min-width: 0; min-height: 44px; margin: 0; padding: 0; border: 0;
  background: #E9E5DD; color: #fff; overflow: hidden; border-radius: var(--radius); cursor: pointer;
  font: inherit; text-align: left; appearance: none; -webkit-appearance: none;
}
.fc-tile[data-w="2"] { grid-column: span 2; }
.fc-tile[data-h="2"] { grid-row: span 2; }
.fc-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.fc-tile:hover img { transform: scale(1.04); }
.fc-tile__name {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .5rem .4rem;
  background: linear-gradient(to top, rgba(17, 17, 16, .82) 0%, rgba(17, 17, 16, .5) 55%, rgba(17, 17, 16, 0) 100%);
  font-family: var(--sans); font-weight: 500; font-size: .74rem; line-height: 1.2; color: #fff; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; box-sizing: border-box;
}
.fc-tile[data-w="2"] .fc-tile__name { font-size: .88rem; padding-inline: .65rem; }
.fc-tile[data-w="2"][data-h="2"] .fc-tile__name { font-size: 1.02rem; }
@media (min-width: 768px) { .fc-tile__name { font-size: .82rem; } .fc-tile[data-w="2"][data-h="2"] .fc-tile__name { font-size: 1.15rem; } }
.fc-tile:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; z-index: 1; }
.fc-more { display: block; margin: 1.1rem auto 0; min-height: 44px; }
.fc-more[hidden] { display: none; }

/* Рослини на головній: прокручувана вручну стрічка на телефоні, сітка на широкому екрані. */
.mn-plants-shelf { display: flex; gap: 12px; overflow-x: auto; padding: 0 2px 10px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.mn-plant-card { flex: 0 0 min(78vw, 17rem); min-width: 0; scroll-snap-align: start; }
.mn-plant-card .cmp-card__media { aspect-ratio: 4 / 5; }
@media (min-width: 900px) {
  .mn-plants-shelf { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; }
  .mn-plant-card { width: auto; }
}

/* подробности цветка: диалог */
.fc-dlg {
  width: min(94vw, 34rem); max-height: 92vh; max-height: 92dvh; padding: 0; border: 0; overflow: hidden;
  background: var(--paper); color: var(--ink); border-radius: var(--radius);
}
.fc-dlg[open] { display: block; }
.fc-dlg::backdrop { background: rgba(17, 17, 16, .6); }
.fc-dlg__body { max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain; }
.fc-dlg__close {
  position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  background: var(--paper); color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: 0 0 0 1px var(--line);
}
.fc-dlg__close:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
html.fc-dlg-open { overflow: hidden; }
.fc-card--detail { padding: 0 0 1.1rem; }
.fc-card--detail > :not(.cmp-card__media) { margin-left: 1rem !important; margin-right: 1rem !important; }
.fc-ribbon.cmp-card__media {
  display: flex; gap: 4px; aspect-ratio: auto; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; cursor: default;
  scrollbar-width: thin; -webkit-overflow-scrolling: touch;
}
.fc-ribbon__item { flex: 0 0 100%; scroll-snap-align: center; aspect-ratio: 4 / 5; max-height: 62vh; max-height: 62dvh; position: relative; background: #E9E5DD; }
.fc-ribbon__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fc-ribbon:focus-visible { outline: 3px solid var(--ink); outline-offset: -3px; }
.fc-card--detail .link-back { display: inline-flex; align-items: center; min-height: 44px; }
@media (prefers-reduced-motion: reduce) {
  .fc-tile img { transition: none; }
  .fc-tile:hover img { transform: none; }
  .fc-ribbon.cmp-card__media { scroll-behavior: auto; }
}
