/* =========================================================================
   «Кирпич» — a shop of building materials and tools on top of NewCMS Default.

   IDEA
   On this page a brick (250 × 120 × 65, laid in running bond) becomes the
   unit of the page: the headline letters are equal bricks of a monospaced
   display face, the calculator lays a wall course by course from the size
   you type, and prices stand on a diagonal ribbon like on a building-site
   poster. Constructivism: a 12° diagonal, black, brick, lime, photomontage
   of cut-out black-and-white objects. Diagonals and montage live only on
   the home page, deals and section heads; the catalogue, the cart and the
   checkout stay straight and calm.

   TOKENS
   lime (--kirpich-lime)   the page            ink (--kirpich-ink)    text, buttons, footer
   brick (--kirpich-brick) ribbons, calculator bricks, big plates — NEVER text
   sand (--kirpich-sand)   the second field of the delivery and calculator sections
   cement                  seams of the wall, disabled states (derived, not text)
   Type: Rubik Mono One (headlines, prices, logo) + Source Sans 3 (the rest).
   Four sizes: display, head, body, small. Radius 0. One seam: 3px.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Fonts (self-hosted, OFL; Rubik Mono One has no ₽ — the text face fills it)
   ------------------------------------------------------------------------- */
@font-face { font-family: 'Kirpich Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/rubik-mono-one-cyrillic-400-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Kirpich Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/rubik-mono-one-latin-400-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Kirpich Sans'; font-style: normal; font-weight: 200 900; font-display: swap; src: url('../fonts/source-sans-3-cyrillic-wght-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Kirpich Sans'; font-style: normal; font-weight: 200 900; font-display: swap; src: url('../fonts/source-sans-3-latin-wght-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Kirpich Ruble'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/source-sans-3-ruble-wght-normal.woff2') format('woff2'); unicode-range: U+20BD; }
/* Alternatives for the design setting (the parent ships the files) */
@font-face { font-family: 'Kirpich Unbounded'; font-style: normal; font-weight: 200 900; font-display: swap; src: url('/themes/default/assets/fonts/unbounded-cyrillic-wght-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Kirpich Unbounded'; font-style: normal; font-weight: 200 900; font-display: swap; src: url('/themes/default/assets/fonts/unbounded-latin-wght-normal.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; }
@font-face { font-family: 'Kirpich Onest'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/themes/default/assets/fonts/onest-cyrillic-wght-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Kirpich Onest'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/themes/default/assets/fonts/onest-latin-wght-normal.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; }
@font-face { font-family: 'Kirpich Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/themes/default/assets/fonts/inter-cyrillic-wght-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Kirpich Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/themes/default/assets/fonts/inter-latin-wght-normal.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; }

/* The owner's design settings (theme.json → design.controls). */
:root {
    --kirpich-brick: #b5462a;
    --kirpich-lime: #efede8;
    --kirpich-ink: #141210;
    --kirpich-sand: #e3c79a;
    --kirpich-font-display: 'Kirpich Mono', 'Kirpich Ruble', 'Rubik Mono One', 'Courier New', monospace;
    --kirpich-font-text: 'Kirpich Sans', 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
    --kirpich-radius: 0px;
}

/* -------------------------------------------------------------------------
   2. Tokens
   ------------------------------------------------------------------------- */
html:root {
    --kp-lime: var(--kirpich-lime);
    --kp-surface: color-mix(in srgb, var(--kirpich-lime) 93%, var(--kirpich-ink));
    --kp-surface-2: color-mix(in srgb, var(--kirpich-lime) 86%, var(--kirpich-ink));
    --kp-ink: var(--kirpich-ink);
    --kp-ink-2: color-mix(in srgb, var(--kirpich-ink) 86%, var(--kirpich-lime));
    --kp-brick: var(--kirpich-brick);
    --kp-sand: var(--kirpich-sand);
    --kp-cement: color-mix(in srgb, var(--kirpich-ink) 44%, var(--kirpich-lime));
    --kp-muted: color-mix(in srgb, var(--kirpich-ink) 72%, var(--kirpich-lime));
    --kp-line: color-mix(in srgb, var(--kirpich-ink) 16%, var(--kirpich-lime));
    --kp-seam: 3px;
    --kp-r: var(--kirpich-radius);
    --kp-display: var(--kirpich-font-display);
    --kp-body: var(--kirpich-font-text);
    --kp-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --kp-slant: 12deg;

    /* the four sizes */
    --kp-s-display: clamp(2.1rem, 0.45rem + 7.6vw, 7.6rem);
    --kp-s-head: clamp(1.3rem, 0.9rem + 2vw, 2.5rem);
    --kp-s-body: clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);
    --kp-s-small: 0.875rem;

    --c-bg: var(--kp-lime);
    --c-surface: var(--kp-surface);
    --c-surface-sunk: var(--kp-surface-2);
    --c-text: var(--kp-ink);
    --c-text-strong: var(--kp-ink);
    --c-text-muted: var(--kp-muted);
    --c-text-faint: var(--kp-muted);
    --c-border: var(--kp-line);
    --c-border-strong: color-mix(in srgb, var(--kirpich-ink) 55%, var(--kirpich-lime));
    --c-accent: var(--kp-ink);
    --c-accent-hover: var(--kp-ink-2);
    --c-accent-soft: var(--kp-surface-2);
    --c-accent-contrast: var(--kp-lime);
    --c-link: var(--kp-ink);
    --c-link-hover: var(--kp-ink);
    --c-mark: var(--kp-brick);
    --c-mark-text: var(--kp-ink);
    --c-mark-soft: var(--kp-surface-2);
    --c-slab: var(--kp-ink);
    --c-slab-text: var(--kp-lime);
    --c-slab-muted: color-mix(in srgb, var(--kirpich-lime) 70%, var(--kirpich-ink));
    --c-danger: #8f2a14;
    --c-success: #35552d;

    --font-display: var(--kp-display);
    --font-ui: var(--kp-body);
    --font-prose: var(--kp-body);

    --fw-heading: 400;
    --tr-tight: -0.005em;
    --tr-snug: 0;
    --lh-prose: 1.55;

    --r-xs: var(--kp-r);
    --r-sm: var(--kp-r);
    --r-md: var(--kp-r);
    --r-lg: var(--kp-r);
    --r-btn: var(--kp-r);
    --r-pill: var(--kp-r);
    --card-radius: var(--kp-r);
    --card-bg: var(--kp-surface);
    --card-border: 0 solid transparent;
    --card-shadow: none;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: 0 18px 36px -14px rgb(20 18 16 / 0.35);
    --shadow-lift: 0 18px 36px -14px rgb(20 18 16 / 0.35);

    --w-container: 72rem;
    --w-wide: 86rem;
    --w-prose: 44rem;
    --gutter: clamp(1rem, 3vw, 2.5rem);

    --sp-xs: 1.5rem;
    --sp-sm: clamp(2rem, 1.6rem + 2vw, 3rem);
    --sp-md: clamp(3.25rem, 2.4rem + 3.6vw, 5.75rem);
    --sp-lg: clamp(4.5rem, 3.4rem + 5vw, 8rem);
    --sp-xl: clamp(5.5rem, 4rem + 7vw, 9.5rem);

    --dur: 150ms;
    --ease: var(--kp-ease);

    --shop-star: var(--kp-brick);
    --shop-sticker-discount-bg: var(--kp-ink);
    --shop-sticker-discount-fg: var(--kp-lime);
    --shop-sticker-hit-bg: var(--kp-sand);
    --shop-sticker-hit-fg: var(--kp-ink);
    --shop-sticker-new-bg: var(--kp-lime);
    --shop-sticker-new-fg: var(--kp-ink);
    --shop-sticker-few-bg: var(--kp-surface-2);
    --shop-sticker-few-fg: var(--kp-ink);

    accent-color: var(--kp-ink);
    color-scheme: light;
}
html[data-kirpich-seam="off"]:root { --kp-seam: 0px; }

/* Section tones: the design layer is not linked, so the theme defines its own. */
.cms-tone-soft {
    --section-bg: var(--kp-surface);
    --c-bg: var(--kp-surface);
    --c-surface: var(--kp-lime);
    --c-surface-sunk: var(--kp-surface-2);
}
.cms-tone-accent {
    --section-bg: var(--kp-sand);
    --c-bg: var(--kp-sand);
    --c-surface: var(--kp-lime);
    --c-surface-sunk: color-mix(in srgb, var(--kirpich-sand) 80%, var(--kirpich-lime));
    --c-border: color-mix(in srgb, var(--kirpich-ink) 24%, var(--kirpich-sand));
    --c-text: var(--kp-ink);
    --c-text-strong: var(--kp-ink);
    --c-text-muted: color-mix(in srgb, var(--kirpich-ink) 78%, var(--kirpich-sand));
}
.cms-tone-dark,
.cms-on-dark,
.cms-tone-primary {
    --section-bg: var(--kp-ink);
    --c-bg: var(--kp-ink);
    --c-surface: var(--kp-ink-2);
    --c-surface-sunk: color-mix(in srgb, var(--kirpich-ink) 70%, var(--kirpich-lime));
    --c-text: color-mix(in srgb, var(--kirpich-lime) 92%, var(--kirpich-ink));
    --c-text-strong: var(--kp-lime);
    --c-text-muted: color-mix(in srgb, var(--kirpich-lime) 68%, var(--kirpich-ink));
    --c-border: color-mix(in srgb, var(--kirpich-lime) 24%, var(--kirpich-ink));
    --c-link: var(--kp-lime);
    --c-accent: var(--kp-lime);
    --c-accent-hover: var(--kp-sand);
    --c-accent-contrast: var(--kp-ink);
    color-scheme: dark;
}

/* -------------------------------------------------------------------------
   3. Base
   ------------------------------------------------------------------------- */
body.kp-body {
    background: var(--kp-lime);
    color: var(--c-text);
    font-family: var(--kp-body);
    font-size: var(--kp-s-body);
    -webkit-font-smoothing: antialiased;
    scrollbar-color: var(--kp-ink) var(--kp-surface);
}
h1, h2, h3, h4,
.cms-section__title {
    word-spacing: -0.3em;
    font-family: var(--kp-display);
    font-weight: 400;
    letter-spacing: var(--tr-tight);
    text-transform: uppercase;
    color: var(--c-text-strong);
    text-wrap: balance;
}
h3, h4 { font-size: var(--kp-s-body); line-height: 1.2; }
.kp-card__title, .kp-card__body h3 { word-spacing: normal; }
p { text-wrap: pretty; }
::selection { background: var(--kp-ink); color: var(--kp-lime); }
:focus-visible { outline: 3px solid var(--kp-ink); outline-offset: 2px; }
.cms-on-dark :focus-visible, .cms-tone-dark :focus-visible { outline-color: var(--kp-lime); }
a { text-underline-offset: 0.22em; text-decoration-thickness: 2px; }
input, select, textarea { caret-color: var(--kp-ink); }
.visually-hidden { white-space: nowrap; }

/* Buttons: a black rectangle, the lime word. The press moves it 2px down. */
.cms-btn {
    border-radius: var(--kp-r);
    min-height: 52px;
    padding: 0.8rem 1.6rem;
    font-family: var(--kp-body);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: background-color 150ms var(--kp-ease), color 150ms var(--kp-ease), box-shadow 150ms var(--kp-ease), transform 120ms var(--kp-ease);
}
.cms-btn--primary { background: var(--kp-ink); color: var(--kp-lime); border: 2px solid var(--kp-ink); box-shadow: none; }
.cms-btn--primary:hover { background: var(--kp-ink-2); border-color: var(--kp-ink-2); color: var(--kp-lime); box-shadow: inset 0 -4px 0 var(--kp-brick); }
.cms-btn--ghost { background: transparent; color: var(--kp-ink); border: 2px solid var(--kp-ink); box-shadow: none; }
.cms-btn--ghost:hover { background: var(--kp-ink); color: var(--kp-lime); }
.cms-btn:active, .shop-card__btn:active { transform: translateY(2px) scale(0.98); }
.cms-on-dark .cms-btn--primary, .cms-tone-dark .cms-btn--primary { background: var(--kp-lime); color: var(--kp-ink); border-color: var(--kp-lime); }
.cms-on-dark .cms-btn--primary:hover, .cms-tone-dark .cms-btn--primary:hover { background: var(--kp-sand); border-color: var(--kp-sand); color: var(--kp-ink); box-shadow: inset 0 -4px 0 var(--kp-brick); }
.cms-on-dark .cms-btn--ghost, .cms-tone-dark .cms-btn--ghost { color: var(--kp-lime); border-color: var(--kp-lime); }
.cms-on-dark .cms-btn--ghost:hover, .cms-tone-dark .cms-btn--ghost:hover { background: var(--kp-lime); color: var(--kp-ink); }

/* Section heads: the title is a course of bricks over a short brick bar */
.cms-section__head { margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.75rem); }
.cms-section__title { font-size: var(--kp-s-head); line-height: 1.04; }
.cms-section__head::before {
    content: '';
    display: block;
    width: 3.4rem;
    height: 0.6rem;
    margin-bottom: 1rem;
    background: var(--kp-brick);
    clip-path: polygon(0 0, 100% 0, calc(100% - 0.55rem) 100%, 0 100%);
}
.cms-section__head--center::before { margin-inline: auto; }
.cms-section__subtitle { color: var(--c-text); font-size: var(--kp-s-body); max-width: 46rem; }
.cms-section__head--left .cms-section__subtitle { margin-inline: 0; }
.cms-w-wide > .cms-section__inner { max-width: var(--w-wide); }
html[data-kirpich-ribbon="off"] .cms-section__head::before { clip-path: none; }

/* Forms: sharp, 2px ink */
.cms-form__input, .cms-form select, .cms-form textarea,
input[type=text], input[type=search], input[type=email], input[type=tel], input[type=number], input[type=password], select, textarea {
    border-radius: var(--kp-r);
    border: 2px solid var(--kp-ink);
    background: var(--kp-lime);
    color: var(--kp-ink);
    min-height: 50px;
}
.cms-tone-dark input, .cms-tone-dark select, .cms-tone-dark textarea { border-color: var(--kp-lime); background: var(--kp-ink-2); color: var(--kp-lime); }
textarea { min-height: 7rem; }
.cms-form__input:focus, .cms-form select:focus, .cms-form textarea:focus,
input:focus, select:focus, textarea:focus { border-color: var(--kp-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kirpich-ink) 28%, transparent); outline: none; }
::placeholder { color: var(--kp-muted); opacity: 1; }
input[type=checkbox], input[type=radio], input[type=range] { accent-color: var(--kp-ink); }

/* Cards, tiles, tables: surface by tone, no frames */
.cms-card, .cms-feature--card, .cms-review--card, .cms-leadform__box { border: 0; border-radius: var(--kp-r); box-shadow: none; background: var(--kp-surface); }
.cms-tone-soft .cms-card, .cms-tone-soft .cms-leadform__box { background: var(--kp-lime); }
.cms-leadform__media, .cms-leadform__media img { border-radius: var(--kp-r); }
.cms-faq__item, .cms-block--faq details { border-color: var(--kp-line); }
.cms-block--faq summary { font-family: var(--kp-body); font-weight: 700; font-size: var(--kp-s-body); text-transform: none; word-spacing: normal; letter-spacing: 0; }
.cms-badge-icon { border-radius: var(--kp-r); background: var(--kp-ink); color: var(--kp-lime); }
.cms-stages__marker { border-radius: var(--kp-r); }
.cms-crumbs { font-size: var(--kp-s-small); color: var(--kp-muted); }

/* -------------------------------------------------------------------------
   4. Header
   ------------------------------------------------------------------------- */
.kp-hdr.site-header { border-bottom: 0; background: var(--kp-lime); position: relative; z-index: 30; }
.kp-hdr.site-header--sticky.is-scrolled { box-shadow: 0 10px 22px -16px rgb(20 18 16 / 0.6); }
.kp-announce.hdr-row--top { background: var(--kp-ink); color: var(--kp-lime); font-size: var(--kp-s-small); font-weight: 600; }
.kp-announce .hdr-row__inner { min-height: 2.4rem; justify-content: center; }
.kp-announce .hdr-zone--left, .kp-announce .hdr-zone--right { flex: 0 0 auto; }
.kp-announce a, .kp-announce .hdr-phone, .kp-announce .hdr-phone *, .kp-announce .hdr-phone__number { color: var(--kp-lime); font-weight: 700; }
.kp-announce .hdr-phone__caption { display: none; }
.kp-announce .hdr-zone--center { flex: 1 1 auto; justify-content: center; gap: 0.3rem 1.75rem; }
.kp-announce .cms-icon { color: var(--kp-sand); }

.kp-bar.hdr-row--main { position: relative; background: var(--kp-lime); padding: 0 var(--gutter) 9px; }
.kp-bar.hdr-row--main::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 9px;
    background: var(--kp-brick);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='9'%3E%3Crect x='0' y='0' width='31' height='3'/%3E%3Crect x='-17' y='6' width='31' height='3'/%3E%3Crect x='17' y='6' width='31' height='3'/%3E%3C/svg%3E") 0 0 / 34px 9px repeat-x;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='9'%3E%3Crect x='0' y='0' width='31' height='3'/%3E%3Crect x='-17' y='6' width='31' height='3'/%3E%3Crect x='17' y='6' width='31' height='3'/%3E%3C/svg%3E") 0 0 / 34px 9px repeat-x;
}
.kp-bar .kp-bar__inner { max-width: var(--w-wide); min-height: 4.5rem; padding: 0.5rem 0; gap: 0.5rem 1.75rem; }
html[data-kirpich-header="ink"] .kp-hdr.site-header,
html[data-kirpich-header="ink"] .kp-bar.hdr-row--main { background: var(--kp-ink); }
html[data-kirpich-header="ink"] .kp-announce.hdr-row--top { background: var(--kp-ink-2); }

.kp-logo { gap: 0.65rem; color: var(--kp-ink); text-decoration: none; }
.kp-logo__mark { width: 34px; height: 25px; flex: none; color: var(--kp-brick); }
.hdr-logo__name { font-family: var(--kp-display); font-size: 1.3rem; font-weight: 400; letter-spacing: 0; text-transform: uppercase; color: var(--kp-ink); }
html[data-kirpich-header="ink"] .hdr-logo__name,
html[data-kirpich-header="ink"] .kp-bar .hdr-nav__link { color: var(--kp-lime); }

.kp-hdr .hdr-nav__list { gap: 0.1rem; }
.kp-hdr .hdr-nav__link {
    position: relative;
    padding: 0.65rem 0.85rem;
    border-radius: var(--kp-r);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--kp-ink);
    transition: background-color 150ms var(--kp-ease), color 150ms var(--kp-ease);
}
.kp-hdr .hdr-nav__link:hover { background: var(--kp-ink); color: var(--kp-lime); }
.kp-hdr .hdr-nav__link.is-active::after,
.kp-hdr .hdr-nav__link[aria-current]::after {
    content: '';
    position: absolute;
    left: 0.85rem; right: 0.85rem; bottom: 0.2rem;
    height: 3px;
    background: var(--kp-brick);
}
.kp-hdr .hdr-sub { border: 0; border-radius: var(--kp-r); background: var(--kp-ink); box-shadow: 0 18px 30px -12px rgb(20 18 16 / 0.5); padding: 0.4rem; }
.kp-hdr .hdr-sub__link { border-radius: var(--kp-r); padding: 0.6rem 0.85rem; font-weight: 600; color: var(--kp-lime); }
.kp-hdr .hdr-sub__link:hover { background: var(--kp-lime); color: var(--kp-ink); }
.kp-hdr .hdr-phone, .kp-hdr .hdr-phone__number { font-weight: 700; color: var(--kp-ink); white-space: nowrap; }
html[data-kirpich-header="ink"] .kp-bar .hdr-phone, html[data-kirpich-header="ink"] .kp-bar .hdr-phone__number { color: var(--kp-lime); }

.kp-hdr .shop-hlink, .kp-hdr .hdr-icon-btn, .kp-hdr .shop-minicart, .kp-burger.hdr-burger {
    width: 46px; height: 46px; min-height: 46px;
    border: 2px solid var(--kp-ink);
    border-radius: var(--kp-r);
    background: transparent;
    color: var(--kp-ink);
}
html[data-kirpich-header="ink"] .kp-bar :is(.shop-hlink, .hdr-icon-btn, .kp-burger.hdr-burger) { border-color: var(--kp-lime); color: var(--kp-lime); }
.kp-hdr .shop-minicart, .kp-hdr .shop-minicart.hdr-icon-btn { padding: 0 1rem 0 0.85rem; background: var(--kp-ink); color: var(--kp-lime); }
.kp-hdr .shop-minicart:not(.hdr-icon-btn) { width: auto; }
.kp-hdr .shop-minicart .cms-icon { color: var(--kp-lime); }
html[data-kirpich-header="ink"] .kp-bar .shop-minicart { background: var(--kp-lime); color: var(--kp-ink); border-color: var(--kp-lime); }
.kp-hdr .shop-minicart:hover { background: var(--kp-ink-2); color: var(--kp-lime); }
.kp-hdr .shop-minicart__count, .kp-hdr .shop-hlink__count { background: var(--kp-sand); color: var(--kp-ink); font-weight: 800; }
.kp-hdr .shop-hlink:hover { background: var(--kp-ink); color: var(--kp-lime); }
.kp-hdr .shop-hsearch__input { border: 2px solid var(--kp-ink); border-radius: var(--kp-r); background: var(--kp-lime); color: var(--kp-ink); min-height: 46px; }
.kp-hdr .hdr-button .cms-btn { min-height: 46px; padding: 0.5rem 1.2rem; font-size: 0.875rem; }
.kp-drawer { background: var(--kp-lime); color: var(--kp-ink); }
.kp-drawer .hdr-drawer__head { background: var(--kp-lime); }
.kp-drawer a { color: var(--kp-ink); }
@media (max-width: 59.99rem) {
    .kp-bar .kp-bar__inner { min-height: 3.6rem; padding: 0.3rem 0; }
    .hdr-logo__name { font-size: 1.1rem; }
}

/* -------------------------------------------------------------------------
   5. Footer
   ------------------------------------------------------------------------- */
.kp-ftr { background: var(--kp-ink); color: var(--c-text); margin-top: 0; }
.kp-ftr__wrap { background: var(--kp-ink); padding: 0 var(--gutter) 1.5rem; max-width: none; }
.kp-ftr__wrap::before {
    content: '';
    display: block;
    height: 9px;
    margin: 0 calc(var(--gutter) * -1) clamp(2.5rem, 2rem + 3vw, 4.5rem);
    background: var(--kp-brick);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='9'%3E%3Crect x='0' y='0' width='31' height='3'/%3E%3Crect x='-17' y='6' width='31' height='3'/%3E%3Crect x='17' y='6' width='31' height='3'/%3E%3C/svg%3E") 0 0 / 34px 9px repeat-x;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='9'%3E%3Crect x='0' y='0' width='31' height='3'/%3E%3Crect x='-17' y='6' width='31' height='3'/%3E%3Crect x='17' y='6' width='31' height='3'/%3E%3C/svg%3E") 0 0 / 34px 9px repeat-x;
}
.kp-ftr__band, .kp-ftr__grid, .kp-ftr__bottom { max-width: var(--w-wide); margin-inline: auto; }
.kp-ftr__band { display: grid; gap: 1.5rem 3rem; grid-template-columns: 1fr 1fr; padding-bottom: 2.5rem; align-items: end; }
.kp-ftr__band-title { font-size: var(--kp-s-head); color: var(--kp-lime); }
.kp-ftr__grid { display: grid; gap: 2.25rem clamp(1.5rem, 1rem + 3vw, 4rem); grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); }
.kp-ftr__title { margin: 0 0 1rem; font-family: var(--kp-body); font-size: var(--kp-s-small); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kp-sand); }
.kp-ftr__about, .kp-ftr__text { margin: 1rem 0 0; max-width: 28rem; color: var(--c-text); }
.kp-ftr__brand .hdr-logo__name, .kp-ftr__brand .kp-logo { color: var(--kp-lime); }
.kp-ftr__brand .hdr-logo__name { font-size: 1.5rem; }
.kp-ftr a { color: var(--kp-lime); text-decoration-color: color-mix(in srgb, var(--kirpich-lime) 40%, transparent); }
.kp-ftr a:hover { text-decoration-color: var(--kp-lime); }
.kp-ftr__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.kp-ftr__menu a { text-decoration: none; font-weight: 600; }
.kp-ftr__menu a:hover { text-decoration: underline; }
.kp-ftr__contacts { font-style: normal; display: grid; gap: 0.6rem; }
.kp-ftr__contacts p { margin: 0; }
.kp-ftr__phone a { font-weight: 800; font-size: 1.375rem; text-decoration: none; color: var(--kp-lime); white-space: nowrap; font-variant-numeric: tabular-nums; }
.kp-ftr__col { min-width: 0; }
.kp-ftr__phone span { display: block; font-size: var(--kp-s-small); color: var(--c-text-muted); }
.kp-ftr__line { display: flex; gap: 0.6rem; align-items: flex-start; }
.kp-ftr__line .cms-icon { flex: none; margin-top: 0.2rem; color: var(--kp-sand); }
.kp-ftr__socials { margin-top: 1.25rem; }

/* The name comes back across the whole width: one equal brick per letter */
.kp-ftr__sign {
    display: flex;
    gap: var(--kp-seam);
    margin: clamp(2.5rem, 2rem + 4vw, 5rem) auto 0;
    max-width: var(--w-wide);
    padding: 0;
    font-family: var(--kp-display);
    font-size: clamp(2rem, 0.2rem + 12.5vw, 11.5rem);
    line-height: 1;
    text-transform: uppercase;
    user-select: none;
}
html[data-kirpich-seam="off"] .kp-ftr__sign { gap: 2px; }
.kp-ftr__brick {
    flex: 1 1 0;
    display: grid;
    place-items: center;
    min-width: 0;
    padding: 0.14em 0 0.08em;
    background: var(--kp-ink-2);
    color: var(--kp-lime);
}
.kp-ftr__bottom { display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; align-items: center; margin-top: 1.75rem; padding-top: 1.25rem; font-size: var(--kp-s-small); color: var(--c-text-muted); }
.kp-ftr__bottom p { margin: 0; }
.kp-ftr__links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.kp-ftr__pay { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0; padding: 0; }
.kp-ftr__pay-item { padding: 0.25rem 0.6rem; background: var(--kp-ink-2); font-size: var(--kp-s-small); font-weight: 600; }
@media (max-width: 62rem) {
    .kp-ftr__grid { grid-template-columns: 1fr 1fr; }
    .kp-ftr__col--about { grid-column: 1 / -1; }
    .kp-ftr__band { grid-template-columns: 1fr; }
}
@media (max-width: 36rem) {
    .kp-ftr__grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   6. Price poster (kirpich_hero) — the home page's first screen
   ------------------------------------------------------------------------- */
.cms-section:has(.kp-hero), .cms-section:has(.kp-deal), .cms-section:has(.kp-delivery) { overflow: clip; }
.kp-hero {
    --rib-h: clamp(3.75rem, 2rem + 5.4vw, 6.75rem);
    --rib-b: clamp(3.5rem, 2rem + 4vw, 7rem);
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    grid-template-areas: "head head" "main art";
    gap: clamp(1rem, 0.5rem + 1.6vw, 2rem) 0;
    min-height: clamp(34rem, 6rem + 41vw, 44rem);
    padding: clamp(1.5rem, 1rem + 2vw, 3rem) 0 clamp(11rem, 6rem + 22vw, 20rem);
}
.kp-hero__ribbon {
    position: absolute;
    left: 50%;
    bottom: var(--rib-b);
    width: 220vw;
    margin-left: -110vw;
    height: var(--rib-h);
    background: var(--kp-brick);
    transform: rotate(calc(var(--kp-slant) * -1));
    z-index: 0;
    pointer-events: none;
}
html[data-kirpich-ribbon="off"] .kp-hero__ribbon { transform: none; }
.kp-hero__head { grid-area: head; position: relative; z-index: 2; }
.kp-hero__title { margin: 0; font-size: var(--kp-s-display); line-height: 0.92; letter-spacing: -0.01em; text-wrap: nowrap; }
.kp-hero__l1, .kp-hero__l2 { display: block; }
.kp-hero__main { grid-area: main; position: relative; z-index: 2; display: grid; align-content: start; gap: 1.25rem; max-width: 40rem; }
.kp-hero__lead { margin: 0; font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem); font-weight: 600; line-height: 1.35; max-width: 30rem; }
.kp-hero__search { display: flex; max-width: 36rem; }
.kp-hero__input { flex: 1 1 auto; min-width: 0; min-height: 58px; padding: 0 1rem; font-size: 1.0625rem; border-right: 0; }
.kp-hero__go { flex: none; min-height: 58px; }
.kp-hero__quick { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.5rem; margin: 0; }
.kp-hero__cat { min-height: 44px; padding: 0.4rem 1.1rem; }
.kp-hero__chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.9rem; background: var(--kp-surface); font-weight: 700; text-decoration: none; color: var(--kp-ink); transition: background-color 150ms var(--kp-ease), color 150ms var(--kp-ease); }
.kp-hero__chip:hover { background: var(--kp-ink); color: var(--kp-lime); }

.kp-hero__montage { display: contents; }
.kp-hero__item { position: absolute; z-index: 1; margin: 0; }
.kp-hero__img { display: block; width: 100%; height: auto; filter: grayscale(1) contrast(1.15); }
.kp-hero__item--big { right: 3%; bottom: calc(var(--rib-b) + 6vw); width: min(34vw, 30rem); transform: rotate(-6deg); }
.kp-hero__item--small { right: min(34vw, 31rem); bottom: calc(var(--rib-b) + 2.2vw); width: min(19vw, 17rem); transform: rotate(5deg); z-index: 2; }
.kp-hero__slab { position: absolute; inset: 14% -6% -4% 10%; background: var(--kp-brick); z-index: -1; transform: rotate(2deg); }
.kp-hero__plate {
    position: absolute;
    z-index: 3;
    left: 40%;
    bottom: calc(var(--rib-b) + 0.9vw);
    display: grid;
    gap: 0.1rem;
    margin: 0;
    padding: 0.7rem 1.2rem 0.75rem;
    background: var(--kp-ink);
    color: var(--kp-lime);
    transform: rotate(calc(var(--kp-slant) * -1));
}
.kp-hero__plate strong { font-family: var(--kp-display); font-size: clamp(1.2rem, 0.8rem + 1.6vw, 2.2rem); font-weight: 400; line-height: 1; letter-spacing: 0; white-space: nowrap; }
.kp-hero__plate small { font-size: var(--kp-s-small); font-weight: 600; opacity: 0.9; }
html[data-kirpich-ribbon="off"] .kp-hero__plate { transform: none; }
html[data-kirpich-tilt="off"] .kp-hero__item { transform: none; }
html[data-kirpich-tilt="off"] .kp-hero__slab { transform: none; }

@media (max-width: 47.99rem) {
    .kp-hero {
        grid-template-columns: 1fr;
        grid-template-areas: "head" "main";
        --rib-b: 4.6rem;
        --rib-h: 3.6rem;
        padding-bottom: 17rem;
        min-height: 0;
    }
    .shop-tile__title { font-size: 0.8125rem; line-height: 1.2; hyphens: none; overflow-wrap: normal; }
    .kp-hero__title { font-size: min(var(--kp-s-display), 9.4vw); }
    .kp-hero__search { max-width: none; }
    .kp-hero__item--big { right: 2%; bottom: calc(var(--rib-b) + 2.2rem); width: 50vw; max-width: 14rem; }
    .kp-hero__item--small { right: auto; left: 3%; bottom: calc(var(--rib-b) + 0.6rem); width: 30vw; max-width: 9rem; }
    .kp-hero__plate { left: auto; right: 4%; bottom: calc(var(--rib-b) - 1.1rem); padding: 0.45rem 0.8rem 0.5rem; }
    .kp-hero__plate small { display: none; }
}

/* -------------------------------------------------------------------------
   7. Brick wall calculator (kirpich_wall)
   ------------------------------------------------------------------------- */
.kp-wall {
    display: grid;
    grid-template-columns: minmax(17rem, 23rem) minmax(0, 1fr);
    grid-template-areas: "panel stage" "panel result";
    grid-template-rows: auto 1fr;
    gap: var(--kp-seam, 3px);
    align-items: start;
}
html[data-kirpich-seam="off"] .kp-wall { gap: 0.75rem; }
.kp-wall__panel { grid-area: panel; background: var(--kp-lime); padding: clamp(1rem, 0.6rem + 1.4vw, 1.75rem); display: grid; gap: 1.5rem; align-self: stretch; }
.kp-wall__form { display: grid; gap: 1rem; margin: 0; }
.kp-wall__field { display: grid; gap: 0.35rem; }
.kp-wall__field label, .kp-wall__thick legend { font-size: var(--kp-s-small); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 0; }
.kp-wall__box { display: flex; align-items: stretch; }
.kp-wall__box input { flex: 1 1 auto; min-width: 0; min-height: 54px; padding: 0 0.85rem; font-family: var(--kp-display); font-size: 1.35rem; border-right: 0; font-variant-numeric: tabular-nums; }
.kp-wall__box i { display: grid; place-items: center; min-width: 3.1rem; padding: 0 0.7rem; background: var(--kp-ink); color: var(--kp-lime); font-style: normal; font-weight: 700; }
.kp-wall__thick { display: grid; gap: 0.4rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.kp-wall__opt { display: block; cursor: pointer; }
.kp-wall__opt input { position: absolute; opacity: 0; pointer-events: none; }
.kp-wall__opt span { display: block; padding: 0.75rem 0.9rem; border: 2px solid var(--kp-ink); font-weight: 700; transition: background-color 150ms var(--kp-ease), color 150ms var(--kp-ease); }
.kp-wall__opt:hover span { background: var(--kp-surface); }
.kp-wall__opt input:checked + span { background: var(--kp-ink); color: var(--kp-lime); }
.kp-wall__opt input:focus-visible + span { outline: 3px solid var(--kp-ink); outline-offset: 2px; }
.kp-wall__table { width: 100%; border-collapse: collapse; font-size: var(--kp-s-small); font-variant-numeric: tabular-nums; }
.kp-wall__table caption { text-align: left; font-weight: 700; padding-bottom: 0.4rem; }
.kp-wall__table th, .kp-wall__table td { padding: 0.35rem 0; border-top: 2px solid var(--kp-line); text-align: left; font-weight: 400; }
.kp-wall__table thead th { font-weight: 700; color: var(--kp-muted); border-top: 0; }
.kp-wall__table td { text-align: right; font-weight: 700; }

.kp-wall__stage { grid-area: stage; background: var(--kp-lime); padding: clamp(0.75rem, 0.4rem + 1.2vw, 1.5rem); min-height: 16rem; display: grid; align-content: end; gap: 0.6rem; }
.kp-wall__svg { display: block; width: 100%; height: auto; max-height: 30rem; background: transparent; overflow: hidden; }
.kp-wall__b { fill: var(--kp-brick); }
.kp-wall__hole { fill: var(--kp-lime); stroke: var(--kp-ink); stroke-width: 3px; vector-effect: non-scaling-stroke; }
.kp-wall__caption { margin: 0; font-size: var(--kp-s-small); font-weight: 700; color: var(--kp-muted); font-variant-numeric: tabular-nums; }
.kp-wall__course { animation: kp-lay 260ms var(--kp-ease) both; transform-box: fill-box; }
@keyframes kp-lay { from { opacity: 0; transform: translateX(-2%); } to { opacity: 1; transform: none; } }

.kp-wall__result { grid-area: result; display: grid; gap: var(--kp-seam, 3px); align-content: start; }
.kp-wall__sum { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--kp-seam, 3px); margin: 0; }
html[data-kirpich-seam="off"] .kp-wall__sum { gap: 0.5rem; }
.kp-wall__sum > div { background: var(--kp-lime); padding: 0.9rem 1rem 1rem; display: grid; gap: 0.35rem; align-content: space-between; min-width: 0; }
.kp-wall__sum dt { font-size: var(--kp-s-small); font-weight: 700; color: var(--kp-muted); }
.kp-wall__sum dd { margin: 0; font-family: var(--kp-display); font-size: clamp(1.15rem, 0.8rem + 1.1vw, 1.7rem); line-height: 1.05; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* the sum is the longest figure */
.kp-wall__sum-total dd { font-size: clamp(0.95rem, 0.6rem + 0.8vw, 1.25rem); }
.kp-wall__sum dd small { font-family: var(--kp-body); font-size: var(--kp-s-small); font-weight: 700; color: var(--kp-muted); }
.kp-wall__sum .kp-wall__sum-total { background: var(--kp-ink); }
.kp-wall__sum .kp-wall__sum-total dt { color: color-mix(in srgb, var(--kirpich-lime) 75%, var(--kirpich-ink)); }
.kp-wall__sum .kp-wall__sum-total dd { color: var(--kp-lime); }
.kp-wall__reserve { margin: 0; padding: 0.75rem 1rem; background: var(--kp-lime); font-size: var(--kp-s-small); }
.kp-wall__buy { background: var(--kp-lime); padding: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.kp-wall__buy form { margin: 0; }
.kp-wall__goods { margin: 0; font-size: var(--kp-s-small); color: var(--kp-muted); }
@media (max-width: 61.99rem) {
    .kp-wall { grid-template-columns: 1fr; grid-template-areas: "panel" "stage" "result"; }
    .kp-wall__thick { grid-template-columns: 1fr; }
    .kp-wall__form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kp-wall__thick { grid-column: 1 / -1; }
}
@media (max-width: 47.99rem) {
    .kp-wall__form { grid-template-columns: 1fr 1fr; }
    .kp-wall__form .kp-wall__field:nth-child(3) { grid-column: 1 / -1; }
    .kp-wall__sum { grid-template-columns: 1fr 1fr; }
    .kp-wall__sum-total { grid-column: 1 / -1; }
}

/* -------------------------------------------------------------------------
   8. Price of the week (kirpich_deal)
   ------------------------------------------------------------------------- */
.kp-deal { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: center; }
.kp-deal__stage { position: relative; min-height: clamp(18rem, 10rem + 30vw, 30rem); clip-path: inset(-30% 0 -30% -60vw); }
.kp-deal__ribbon { position: absolute; left: -60vw; right: -6%; top: 50%; height: 34%; margin-top: -17%; background: var(--kp-brick); transform: rotate(calc(var(--kp-slant) * -1)); }
html[data-kirpich-ribbon="off"] .kp-deal__ribbon { transform: none; }
.kp-deal__photo { position: absolute; left: 50%; top: 50%; width: min(70%, 25rem); aspect-ratio: 1; margin: calc(min(35%, 12.5rem) * -1) 0 0 calc(min(35%, 12.5rem) * -1); transform: rotate(-4deg); background: var(--kp-lime); }
html[data-kirpich-tilt="off"] .kp-deal__photo { transform: none; }
.kp-deal__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15); display: block; }
.kp-deal__body { display: grid; gap: 1rem; justify-items: start; }
.kp-deal__name { margin: 0; font-size: var(--kp-s-head); line-height: 1.06; }
.kp-deal__name a { color: inherit; text-decoration: none; }
.kp-deal__name a:hover { text-decoration: underline; text-decoration-color: var(--kp-brick); }
.kp-deal__text { margin: 0; max-width: 28rem; }
.kp-deal__plate { background: var(--kp-ink); color: var(--kp-lime); padding: 1rem 1.4rem 1.1rem; display: grid; gap: 0.35rem; clip-path: polygon(0 0, 100% 0, calc(100% - 1.1rem) 100%, 0 100%); padding-right: 2.4rem; }
.kp-deal__label { margin: 0; font-size: var(--kp-s-small); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kp-sand); }
.kp-deal__price { margin: 0; font-family: var(--kp-display); font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); line-height: 1; white-space: nowrap; }
.kp-deal__price small { font-family: var(--kp-body); font-size: var(--kp-s-small); font-weight: 700; margin-left: 0.5rem; color: var(--kp-sand); }
.kp-deal__old { margin: 0; color: color-mix(in srgb, var(--kirpich-lime) 70%, var(--kirpich-ink)); font-size: var(--kp-s-body); }
.kp-deal__until { margin: 0; font-size: var(--kp-s-small); font-weight: 600; }
.kp-deal__go { margin: 0; }
@media (max-width: 47.99rem) {
    .kp-deal { grid-template-columns: 1fr; }
    .kp-deal__stage { min-height: 15rem; }
}

/* -------------------------------------------------------------------------
   9. Delivery (kirpich_delivery) and the tariff table
   ------------------------------------------------------------------------- */
.kp-delivery { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: center; }
.kp-delivery__truck { position: relative; margin: 0; padding: 12% 0 6%; }
.kp-delivery__truck::before { content: ''; position: absolute; left: -6%; right: 4%; top: 28%; bottom: 14%; background: var(--kp-brick); transform: rotate(calc(var(--kp-slant) * -0.5)); }
html[data-kirpich-ribbon="off"] .kp-delivery__truck::before { transform: none; }
.kp-delivery__img { position: relative; display: block; width: 100%; height: auto; filter: grayscale(1) contrast(1.15); transform: rotate(-2deg); }
html[data-kirpich-tilt="off"] .kp-delivery__img { transform: none; }
.kp-tariff { width: 100%; border-collapse: separate; border-spacing: 0 var(--kp-seam, 3px); font-variant-numeric: tabular-nums; }
.kp-tariff th, .kp-tariff td { padding: 0.9rem 1.1rem; text-align: left; background: var(--kp-lime); vertical-align: middle; font-weight: 600; }
.kp-tariff thead th { background: var(--kp-ink); color: var(--kp-lime); font-size: var(--kp-s-small); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.kp-tariff tbody th { font-weight: 700; }
.kp-tariff__price { font-weight: 800; font-size: 1.0625rem; white-space: nowrap; text-align: right; }
.kp-tariff thead th:last-child { text-align: right; }
.kp-delivery__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; margin: 1.25rem 0 0; }
.kp-delivery__foot span { flex: 1 1 18rem; max-width: 32rem; }
@media (max-width: 47.99rem) {
    .kp-delivery { grid-template-columns: 1fr; }
    .kp-delivery__truck { max-width: 24rem; margin-inline: auto; padding-top: 4%; }
    .kp-tariff thead { display: none; }
    .kp-tariff, .kp-tariff tbody, .kp-tariff tr, .kp-tariff th, .kp-tariff td { display: block; width: 100%; }
    .kp-tariff tr { margin-bottom: var(--kp-seam, 3px); background: var(--kp-lime); padding: 0.4rem 0; }
    .kp-tariff th, .kp-tariff td { padding: 0.15rem 1rem; background: transparent; text-align: left; }
    .kp-tariff__price { text-align: left; }
}

/* -------------------------------------------------------------------------
   10. Site reviews (kirpich_reviews) — on the black field
   ------------------------------------------------------------------------- */
.kp-reviews__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 1rem + 2vw, 3rem) clamp(1.5rem, 1rem + 4vw, 5rem); }
.kp-review { padding-top: 1.25rem; border-top: 3px solid var(--kp-brick); display: grid; gap: 0.9rem; align-content: start; }
.kp-review--lead { grid-column: 1 / -1; }
.kp-review__object { margin: 0; font-family: var(--kp-display); font-size: var(--kp-s-body); line-height: 1.25; text-transform: uppercase; color: var(--kp-sand); }
.kp-review__text { margin: 0; font-size: var(--kp-s-body); line-height: 1.5; max-width: 40rem; }
.kp-review--lead .kp-review__text { font-size: clamp(1.3rem, 1rem + 1.4vw, 2.1rem); font-weight: 600; line-height: 1.25; max-width: 56rem; }
.kp-review__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin: 0; font-weight: 700; }
.kp-review__meta span { display: grid; gap: 0.1rem; }
.kp-review__meta small { font-size: var(--kp-s-small); font-weight: 600; color: var(--c-text-muted); }
.kp-reviews__note { margin: 2rem 0 0; font-size: var(--kp-s-small); color: var(--c-text-muted); }
@media (max-width: 47.99rem) { .kp-reviews__list { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------------
   11. Shared blocks, re-dressed
   ------------------------------------------------------------------------- */
/* Section tiles: a 3 x 2 wall of photographs with a mortar seam */
.shop-categories-block .shop-tiles { gap: var(--kp-seam, 3px); }
html[data-kirpich-seam="off"] .shop-categories-block .shop-tiles { gap: 0.75rem; }
.shop-tile { position: relative; display: block; background: var(--kp-surface); border: 0; border-radius: var(--kp-r); overflow: hidden; transition: background-color 150ms var(--kp-ease); }
.shop-tile__media { border-radius: 0; background: var(--kp-surface-2); }
.shop-tile__img { filter: grayscale(1) contrast(1.1); transition: filter 200ms var(--kp-ease), transform 250ms var(--kp-ease); }
.shop-tile:hover .shop-tile__img, .shop-tile:focus-within .shop-tile__img { filter: none; transform: scale(1.03); }
.shop-tile__body { padding: 0.9rem 1rem 1.1rem; }
.shop-tile__title { margin: 0; font-size: var(--kp-s-body); line-height: 1.15; }
.shop-tile__link { color: var(--kp-ink); text-decoration: none; }
.shop-tile__link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.shop-tile__count { margin: 0.35rem 0 0; font-size: var(--kp-s-small); font-weight: 600; color: var(--kp-muted); }
.shop-tile__arrow { display: none; }
.shop-tile:hover { background: var(--kp-sand); }

/* Stages (delivery steps), numbers as bricks */
.cms-stages__marker { background: var(--kp-ink); color: var(--kp-lime); border: 0; font-family: var(--kp-display); font-weight: 400; }
.cms-stages__title { font-family: var(--kp-display); text-transform: uppercase; font-weight: 400; }
.cms-stages__item--current .cms-stages__marker { background: var(--kp-brick); color: var(--kp-lime); }

/* -------------------------------------------------------------------------
   12. Shop: product card
   ------------------------------------------------------------------------- */
.shop-grid, .shop-items { gap: clamp(1.25rem, 1rem + 1.2vw, 2rem) var(--kp-seam, 3px); }
html[data-kirpich-seam="on"] .shop-grid, html:not([data-kirpich-seam]) .shop-grid { column-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem); }
.kp-card { position: relative; display: flex; flex-direction: column; height: 100%; border: 0; border-radius: var(--kp-r); background: transparent; padding: 0; box-shadow: none; }
.kp-card__media { position: relative; aspect-ratio: 1; background: var(--kp-surface); overflow: hidden; border-radius: 0; }
html[data-kirpich-cards="plain"] .kp-card__media { background: transparent; }
.kp-card__photo { position: relative; display: block; width: 100%; height: 100%; }
.kp-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform 250ms var(--kp-ease); }
.kp-card:hover .kp-card__img { transform: scale(1.03); }
.kp-card__placeholder { display: grid; place-items: center; height: 100%; font-family: var(--kp-display); font-size: 4rem; color: var(--kp-cement); }
.kp-card--out .kp-card__img { opacity: 0.45; filter: grayscale(1); }
.kp-card .shop-stickers { left: 0; top: 0.6rem; z-index: 3; }
.kp-card .shop-sticker { background: var(--kp-sand); color: var(--kp-ink); border-radius: 0; padding: 0.25rem 0.6rem; font-weight: 800; font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; }
.kp-card .shop-toggles { right: 0.5rem; top: 0.5rem; z-index: 3; }
.kp-card .shop-toggle { width: 38px; height: 38px; border: 0; border-radius: var(--kp-r); background: var(--kp-lime); color: var(--kp-ink); }
.kp-card .shop-toggle--compare { display: none; }
.kp-card .shop-toggle[aria-pressed="true"] { background: var(--kp-ink); color: var(--kp-lime); }
.kp-card__quick.shop-card__quick { left: 50%; right: auto; bottom: 0.7rem; transform: translateX(-50%); border: 0; border-radius: var(--kp-r); background: var(--kp-ink); color: var(--kp-lime); }

/* The price tag: a black slab with a 12-degree cut on its right edge */
.kp-card__tag { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin: -1.25rem 0 0; position: relative; z-index: 2; width: fit-content; max-width: 100%; padding: 0.55rem 1.7rem 0.6rem 0.8rem; background: var(--kp-ink); color: var(--kp-lime); clip-path: polygon(0 0, 100% 0, calc(100% - 0.9rem) 100%, 0 100%); }
html[data-kirpich-ribbon="off"] .kp-card__tag { clip-path: none; padding-right: 0.8rem; }
.kp-card__price { min-width: 0; }
.kp-card__price .shop-price { gap: 0 0.5rem; }
.kp-card__price .shop-price__now, .kp-card__price .shop-price__value { font-family: var(--kp-display); font-size: 1.1rem; font-weight: 400; color: var(--kp-lime); white-space: nowrap; }
.kp-card__price .shop-price__from { font-family: var(--kp-body); font-size: var(--kp-s-small); font-weight: 600; color: color-mix(in srgb, var(--kirpich-lime) 80%, var(--kirpich-ink)); }
.kp-card__price .shop-price__was { color: color-mix(in srgb, var(--kirpich-lime) 72%, var(--kirpich-ink)); font-size: var(--kp-s-small); }
.kp-card__price .shop-price__old { color: inherit; }
.kp-card__price .shop-price__off { background: var(--kp-sand); color: var(--kp-ink); border-radius: 0; font-weight: 800; }
.kp-card__price .shop-price__ask { font-family: var(--kp-body); font-size: var(--kp-s-small); font-weight: 700; color: var(--kp-lime); }
.kp-card__per { margin: 0; font-size: var(--kp-s-small); font-weight: 600; color: color-mix(in srgb, var(--kirpich-lime) 80%, var(--kirpich-ink)); white-space: nowrap; }
.kp-card .shop-sticker--discount, .kp-card .shop-sticker[class*="discount"] { background: var(--kp-ink); color: var(--kp-lime); }

.kp-card__body { display: flex; flex-direction: column; flex: 1; gap: 0.3rem; padding: 0.9rem 0 0; }
.kp-card__body .kp-card__tag { order: -1; margin-top: -1.9rem; }
.kp-card__key { margin: 0; font-family: var(--kp-display); font-size: var(--kp-s-small); text-transform: uppercase; color: var(--kp-muted); }
.kp-card__title { margin: 0; font-family: var(--kp-body); font-size: var(--kp-s-body); font-weight: 700; line-height: 1.22; text-transform: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kp-card__link { color: var(--kp-ink); text-decoration: none; }
.kp-card__link:hover { text-decoration: underline; text-decoration-color: var(--kp-brick); text-decoration-thickness: 3px; }
.kp-card__link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.kp-card__lead { margin: 0; font-size: var(--kp-s-small); color: var(--kp-muted); }
.kp-card__specs { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; margin: 0; padding: 0; font-size: var(--kp-s-small); font-variant-numeric: tabular-nums; }
.kp-card__specs .shop-card__spec { display: flex; gap: 0.3rem; }
.kp-card__specs dt { color: var(--kp-muted); }
.kp-card__specs dd { margin: 0; font-weight: 700; }
.kp-card__stock { margin: 0; font-size: var(--kp-s-small); font-weight: 600; color: var(--kp-muted); font-variant-numeric: tabular-nums; }
.kp-card .shop-stock--out { color: var(--kp-muted); }
.kp-card__form, .kp-card__buy, .kp-pick, .kp-card .shop-card__actions { position: relative; z-index: 2; }
.kp-card__form { display: flex; flex-direction: column; gap: 0.5rem; margin-top: auto; }
.kp-card__buy { display: flex; gap: 0.4rem; margin-top: auto; padding-top: 0.5rem; }
.kp-card__qty { flex: 0 0 4.75rem; width: 4.75rem; min-height: 46px; padding: 0 0.4rem 0 0.7rem; font-family: var(--kp-body); font-weight: 700; font-size: 1rem; font-variant-numeric: tabular-nums; }
.kp-card__add {
    flex: 1 1 auto;
    display: inline-grid;
    place-items: center;
    min-height: 46px;
    padding: 0 0.8rem;
    border: 2px solid var(--kp-ink);
    border-radius: var(--kp-r);
    background: var(--kp-ink);
    color: var(--kp-lime);
    font-family: var(--kp-body);
    font-weight: 700;
    font-size: 0.9375rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 150ms var(--kp-ease), box-shadow 150ms var(--kp-ease), transform 120ms var(--kp-ease);
}
.kp-card__add:hover { background: var(--kp-ink-2); box-shadow: inset 0 -4px 0 var(--kp-brick); }
.kp-card__more { font-weight: 700; color: var(--kp-ink); text-decoration-color: var(--kp-brick); text-decoration-thickness: 3px; text-underline-offset: 0.3em; }
.kp-pick { margin: 0.1rem 0 0; padding: 0; border: 0; min-width: 0; }
.kp-pick__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.kp-pick__options { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.kp-pick .shop-pick__chip { min-height: 32px; padding: 0.2rem 0.65rem; border: 2px solid var(--kp-ink); border-radius: var(--kp-r); background: transparent; color: var(--kp-ink); font-size: var(--kp-s-small); font-weight: 700; }
.kp-pick .shop-pick__chip:hover { background: var(--kp-surface-2); }
.kp-pick .shop-pick__chip:has(input:checked) { background: var(--kp-ink); color: var(--kp-lime); }
.kp-pick .shop-pick__chip.is-out { border-color: var(--kp-cement); color: var(--kp-muted); }
.kp-pick .shop-pick__more { font-size: var(--kp-s-small); font-weight: 700; align-self: center; color: var(--kp-muted); }
.kp-pick .shop-pick__label { border: 0; padding: 0; background: none; min-height: 0; }
.kp-card--row { flex-direction: row; gap: 1.25rem; }
.kp-card--row .kp-card__media { flex: 0 0 min(14rem, 36%); }
@media (max-width: 35.99rem) {
    .kp-card__title { font-size: 1rem; }
    .kp-card__specs { display: none; }
    .kp-card__qty { flex-basis: 4rem; width: 4rem; }
    .kp-card__add { font-size: 0.8125rem; padding: 0 0.4rem; }
    .kp-card__price .shop-price__now, .kp-card__price .shop-price__value { font-size: 1rem; }
    .kp-card__per { display: none; }
    .kp-pick .shop-pick__chip:nth-child(n + 3) { display: none; }
}

/* -------------------------------------------------------------------------
   13. Shop: catalogue, product, cart — straight and calm
   ------------------------------------------------------------------------- */
.shop-head--image { border-radius: var(--kp-r); overflow: hidden; background: var(--kp-surface); }
.shop-head__title { font-family: var(--kp-display); font-weight: 400; text-transform: uppercase; font-size: var(--kp-s-head); line-height: 1.15; padding-top: 0.2em; }
.shop-head--image { min-height: 8rem; align-items: center; }
.shop-head__lead { color: var(--kp-muted); }
.shop-head__image, .shop-head__img { border-radius: var(--kp-r); }
.shop-filter--side, .shop-side { --c-surface: var(--kp-surface); }
.shop-facet { border-color: var(--kp-line); }
.shop-facet__head { font-weight: 700; }
.shop-fv__swatch, .shop-fv__box { border-radius: 0; }
.shop-facet--buttons .shop-fv, .shop-fchips a, .shop-fchips button { border-radius: 0; }
.shop-range__fill, .shop-range__thumb { background: var(--kp-ink); }
.shop-tree__link.is-active, .shop-tree__link[aria-current] { color: var(--kp-ink); font-weight: 800; text-decoration: underline; text-decoration-color: var(--kp-brick); text-decoration-thickness: 3px; }
.shop-toolbar { border-color: var(--kp-line); }
.shop-sort__select, .shop-views__btn { border-radius: var(--kp-r); }
.shop-gallery__main, .shop-gallery__stage, .shop-gallery__slide, .shop-gallery img, .shop-gallery__thumb { border-radius: var(--kp-r); background: var(--kp-surface); }
.shop-buy, .shop-buybox { border-radius: var(--kp-r); }
.shop-buy .shop-pick__chip, .shop-opt__value, .shop-option__value { border-radius: var(--kp-r); }
.shop-price--lg .shop-price__value { font-family: var(--kp-display); font-weight: 400; color: var(--kp-ink); }
.shop-qty { border-radius: var(--kp-r); }
.shop-cart__item, .shop-cart__summary, .shop-checkout__box { border-radius: var(--kp-r); }
.shop-sticker { border-radius: 0; }
.shop-stars__fill, .cms-stars__star { background: var(--kp-brick); color: var(--kp-brick); }
.shop-product-title, .shop-page__title { text-transform: uppercase; }
.shop-calc__input { border-radius: var(--kp-r); }

/* -------------------------------------------------------------------------
   14. Motion preferences
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .kp-wall__course { animation: none; }
    .kp-card__img, .shop-tile__img, .cms-btn, .kp-card__add, .kp-hero__chip { transition: none; }
    .kp-card:hover .kp-card__img, .shop-tile:hover .shop-tile__img { transform: none; }
}
.shop-price--lg .shop-price__value{word-spacing:-0.3em}
.kp-ftr__contacts, .kp-ftr__line span, .kp-ftr__line { color: var(--kp-lime); }
