/* =========================================================================
   Отвёртка — a repair-service theme (child of Default).

   REFERENCE: a service centre's intake receipt (квитанция приёмки) and the
   bare green board inside the device. From the receipt: numbered fields with
   dotted leaders, tear-off stubs with perforation, a round stamp, prices and
   model numbers in monospace. From the board: matte green-grey dark bands
   with faint copper traces and solder pads, copper as the one accent.

   Palette: board (#2b3833 matte green-grey) + paper (#f1f1ec) + white +
   copper (#b8622b, only on buttons, numbers, stamps and pads).
   Type: Fira Sans Condensed for words (700 headlines, 400 text),
   IBM Plex Mono for everything that is a price, a number or a label.
   ========================================================================= */

@font-face { font-family: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 400; src: url('../fonts/fira-sans-condensed-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: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 400; src: url('../fonts/fira-sans-condensed-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+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 600; src: url('../fonts/fira-sans-condensed-cyrillic-600-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 600; src: url('../fonts/fira-sans-condensed-latin-600-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+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 700; src: url('../fonts/fira-sans-condensed-cyrillic-700-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Otv Fira'; font-style: normal; font-display: swap; font-weight: 700; src: url('../fonts/fira-sans-condensed-latin-700-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+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Otv Mono'; font-style: normal; font-display: swap; font-weight: 400; src: url('../fonts/ibm-plex-mono-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: 'Otv Mono'; font-style: normal; font-display: swap; font-weight: 400; src: url('../fonts/ibm-plex-mono-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+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Otv Mono'; font-style: normal; font-display: swap; font-weight: 600; src: url('../fonts/ibm-plex-mono-cyrillic-600-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Otv Mono'; font-style: normal; font-display: swap; font-weight: 600; src: url('../fonts/ibm-plex-mono-latin-600-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+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Alternatives from the design settings (fonts shipped by the Default theme). */
@font-face { font-family: 'Otv Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url('/themes/default/assets/fonts/manrope-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: 'Otv Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url('/themes/default/assets/fonts/manrope-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+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Otv Inter'; font-style: normal; font-display: swap; font-weight: 100 900; 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: 'Otv Inter'; font-style: normal; font-display: swap; font-weight: 100 900; 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+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Defaults of the owner's design settings (core prints the chosen values after this file). */
:root {
    --otv-accent: #b8622b;
    --otv-font-display: 'Otv Fira', 'Fira Sans Condensed', 'Arial Narrow', 'Segoe UI', Arial, sans-serif;
    --otv-font-body: 'Otv Fira', 'Fira Sans Condensed', 'Arial Narrow', 'Segoe UI', Arial, sans-serif;
    --otv-radius: 2px;
}

/* -------------------------------------------------------------------------
   1. Tokens (the site's own design.css is outranked on purpose)
   ------------------------------------------------------------------------- */
:root:root {
    --otv-cu: var(--otv-accent);
    --otv-cu-hi: color-mix(in srgb, var(--otv-cu), #ffffff 28%);
    --otv-cu-deep: color-mix(in srgb, var(--otv-cu), #000000 18%);
    --otv-board: #2b3833;
    --otv-board-0: #1d2723;
    --otv-board-2: #364640;
    --otv-board-line: #46574f;
    --otv-paper: #f1f1ec;
    --otv-sheet: #fbfbf8;
    --otv-line: #c9cdc4;
    --otv-ink: #18201c;
    --otv-mono: 'Otv Mono', 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
    /* PCB traces: faint strokes and copper pads, drawn once and tiled. */
    --otv-traces: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360' viewBox='0 0 360 360' fill='none'%3E%3Cg stroke='%23ffffff' stroke-opacity='.075' stroke-width='3' stroke-linecap='square' stroke-linejoin='bevel'%3E%3Cpath d='M0 60h90l40 40h110l30-30h90'/%3E%3Cpath d='M0 120h50l30 30v70l40 40h120'/%3E%3Cpath d='M360 200h-70l-30 30v70l-30 30h-90'/%3E%3Cpath d='M170 0v40l40 40v60'/%3E%3Cpath d='M300 0v50l-30 30'/%3E%3Cpath d='M40 360v-60l30-30'/%3E%3C/g%3E%3Cg fill='%23b8622b' fill-opacity='.38'%3E%3Ccircle cx='90' cy='60' r='6'/%3E%3Ccircle cx='240' cy='100' r='6'/%3E%3Ccircle cx='50' cy='120' r='6'/%3E%3Ccircle cx='120' cy='260' r='6'/%3E%3Ccircle cx='290' cy='230' r='6'/%3E%3Ccircle cx='210' cy='80' r='6'/%3E%3Ccircle cx='70' cy='270' r='6'/%3E%3C/g%3E%3Cg fill='%23ffffff' fill-opacity='.075'%3E%3Crect x='312' y='110' width='24' height='14'/%3E%3Crect x='120' y='160' width='14' height='24'/%3E%3C/g%3E%3C/svg%3E");

    --c-bg: var(--otv-paper);
    --c-surface: var(--otv-sheet);
    --c-surface-sunk: #e6e8e1;
    --c-text: #28322d;
    --c-text-strong: var(--otv-ink);
    --c-text-muted: #56615a;
    --c-text-faint: #85908a;
    --c-border: var(--otv-line);
    --c-border-strong: var(--otv-ink);
    --c-accent: var(--otv-cu-deep);
    --c-accent-hover: var(--otv-cu);
    --c-accent-contrast: #ffffff;
    --c-accent-soft: color-mix(in srgb, var(--otv-cu) 14%, #ffffff);
    --c-link: var(--otv-cu-deep);
    --c-link-hover: var(--otv-ink);
    --c-mark: var(--otv-cu);
    --c-mark-text: var(--otv-cu-deep);
    --c-mark-soft: color-mix(in srgb, var(--otv-cu) 14%, #ffffff);
    --c-slab: var(--otv-board);
    --c-slab-text: #eef1ec;
    --c-slab-muted: #a8b4ac;
    --c-danger: #b3321f;
    --c-success: #2f7a45;

    --font-display: var(--otv-font-display);
    --font-ui: var(--otv-font-body);
    --font-prose: var(--font-ui);
    --fw-heading: 700;
    --tr-tight: -0.012em;
    --tr-snug: 0;
    --lh-tight: 1.02;
    --lh-snug: 1.12;
    --t-base: clamp(1.05rem, 1.01rem + 0.2vw, 1.14rem);
    --t-xl: clamp(2rem, 1.55rem + 1.8vw, 3.1rem);
    --t-2xl: clamp(2.5rem, 1.8rem + 3.2vw, 4.4rem);
    --t-3xl: clamp(3rem, 2rem + 4.6vw, 5.8rem);

    --r-xs: var(--otv-radius);
    --r-sm: var(--otv-radius);
    --r-md: var(--otv-radius);
    --r-lg: var(--otv-radius);
    --r-pill: var(--otv-radius);
    --r-btn: var(--otv-radius);
    --card-radius: var(--otv-radius);
    --card-bg: var(--otv-sheet);
    --card-border: 1px solid var(--otv-line);
    --card-shadow: none;
    --shadow-sm: none;
    --shadow-md: 0 1px 0 var(--otv-line);
    --shadow-lg: 0 26px 40px -26px rgb(20 28 24 / 0.55);
    --shadow-lift: 0 22px 36px -24px rgb(20 28 24 / 0.5);

    --w-container: 82rem;
    --w-wide: 82rem;
    --sp-md: clamp(3.4rem, 2.3rem + 4.4vw, 5.8rem);
    --sp-lg: clamp(4.2rem, 2.8rem + 6vw, 7.4rem);

    color-scheme: light;
}

:root[data-otv-board="slate"] { --otv-board: #28323a; --otv-board-0: #1b2228; --otv-board-2: #33404a; --otv-board-line: #465561; }
:root[data-otv-board="olive"] { --otv-board: #34382a; --otv-board-0: #25281d; --otv-board-2: #3f4433; --otv-board-line: #53583f; }

:is(.cms-tone-dark, .cms-on-dark):not(#otv) {
    --c-bg: var(--otv-board);
    --c-surface: var(--otv-board-2);
    --c-surface-sunk: var(--otv-board-0);
    --c-text: #e6eae4;
    --c-text-strong: #ffffff;
    --c-text-muted: #aab6ae;
    --c-text-faint: #7f8d85;
    --c-border: var(--otv-board-line);
    --c-border-strong: #e6eae4;
    --c-accent: var(--otv-cu);
    --c-accent-hover: var(--otv-cu-hi);
    --c-accent-contrast: #ffffff;
    --c-accent-soft: color-mix(in srgb, var(--otv-cu) 18%, var(--otv-board));
    --c-link: var(--otv-cu-hi);
    --c-link-hover: #ffffff;
    --c-mark: var(--otv-cu-hi);
    --c-mark-text: var(--otv-cu-hi);
    --card-bg: var(--otv-board-2);
    --card-border: 1px solid var(--otv-board-line);
    color-scheme: dark;
}

.cms-tone-dark:not(#otv) {
    --section-bg: var(--otv-board);
    background-color: var(--otv-board);
    background-image: var(--otv-traces);
    background-size: 360px 360px;
}
html[data-otv-traces="off"] .cms-tone-dark:not(#otv) { background-image: none; }

.cms-tone-soft:not(#otv) {
    --section-bg: #e7e9e2;
    --c-bg: #e7e9e2;
    --c-surface: var(--otv-sheet);
    --c-surface-sunk: #dcdfd6;
}

.cms-tone-primary:not(#otv) {
    --section-bg: var(--otv-cu-deep);
    --c-bg: var(--otv-cu-deep);
    --c-surface: var(--otv-cu);
    --c-text: #ffffff;
    --c-text-strong: #ffffff;
    --c-text-muted: #f3dcc9;
    --c-border: rgb(255 255 255 / 0.3);
    --c-border-strong: #ffffff;
    --c-accent: #18201c;
    --c-accent-hover: #000000;
    --c-accent-contrast: #ffffff;
}

/* -------------------------------------------------------------------------
   2. Base and type
   ------------------------------------------------------------------------- */
body { background: var(--otv-paper); font-variant-numeric: lining-nums; }
:where(h1, h2, h3, h4) { font-family: var(--font-display); font-weight: 700; letter-spacing: var(--tr-tight); text-wrap: balance; }
::selection { background: var(--otv-cu); color: #fff; }
.skip-link:focus { background: var(--otv-cu-deep); color: #fff; }

/* Section heads: a receipt-style running number and a hairline. */
main { counter-reset: otsec; }
.cms-section__head {
    position: relative;
    padding-top: 1.1rem;
    border-top: 1px solid var(--c-border-strong);
}
.cms-section__head::before {
    content: '';
    font-family: var(--otv-mono);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--c-mark-text);
    display: block;
    margin-bottom: 0.7rem;
}
html:not([data-otv-numbers="off"]) .cms-section__head::before {
    counter-increment: otsec;
    content: '№ ' counter(otsec, decimal-leading-zero);
}
.cms-section__head--center { text-align: left; align-items: flex-start; }
.cms-section__title { font-size: var(--t-xl); line-height: var(--lh-tight); max-width: 20ch; }
.cms-section__subtitle { font-size: 1.1rem; max-width: 56ch; color: var(--c-text-muted); }
.otv-hero .cms-section__head, .cms-block--otvertka_hero ~ * .cms-section__head { border-top: 0; }

/* Mono for everything numeric. */
.shop-price__value, .shop-price__now, .svc-card__amount, .hdr-phone__number, .otv-mono { font-family: var(--otv-mono); font-feature-settings: 'zero' 1; letter-spacing: -0.02em; }

html[data-otv-density="compact"] { --sp-md: clamp(2.4rem, 1.8rem + 3vw, 4rem); --sp-lg: clamp(3rem, 2rem + 4vw, 5rem); }

/* -------------------------------------------------------------------------
   3. Buttons: a label plate, pressed like a rubber stamp
   ------------------------------------------------------------------------- */
.cms-btn {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    min-height: 3.1rem;
    padding-inline: 1.5rem;
    border-radius: var(--otv-radius);
    border: 2px solid var(--otv-ink);
    transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease, color 0.12s ease;
}
.cms-btn--primary { background: var(--otv-cu-deep); border-color: var(--otv-cu-deep); color: #fff; box-shadow: 3px 3px 0 var(--otv-ink); }
.cms-btn--primary:hover { background: var(--otv-cu); border-color: var(--otv-cu); color: #fff; transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--otv-ink); }
.cms-btn--primary:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--otv-ink); }
.cms-btn--ghost { background: transparent; border-color: currentColor; color: var(--otv-ink); }
.cms-btn--ghost:hover { background: var(--otv-ink); border-color: var(--otv-ink); color: #fff; }
:is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary { box-shadow: 3px 3px 0 var(--otv-board-0); border-color: var(--otv-cu); background: var(--otv-cu); }
:is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary:hover { background: var(--otv-cu-hi); border-color: var(--otv-cu-hi); color: var(--otv-board-0); }
:is(.cms-tone-dark, .cms-on-dark) .cms-btn--ghost { color: #fff; border-color: rgb(255 255 255 / 0.55); }
:is(.cms-tone-dark, .cms-on-dark) .cms-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--otv-board-0); }
html[data-otv-buttons="outline"] .cms-btn--primary { background: transparent; color: var(--otv-cu-deep); box-shadow: none; }
html[data-otv-buttons="outline"] .cms-btn--primary:hover { background: var(--otv-cu-deep); color: #fff; }
:focus-visible { outline: 3px solid var(--otv-cu); outline-offset: 2px; }

/* -------------------------------------------------------------------------
   4. Header: a thin board strip, a paper bar, a board menu rail
   ------------------------------------------------------------------------- */
.site-header { background: var(--otv-sheet); z-index: 40; }
.hdr-row--top { background: var(--otv-board-0); color: #cfd8d2; font-family: var(--otv-mono); font-size: 0.74rem; letter-spacing: 0.04em; text-transform: uppercase; }
.hdr-row--top .hdr-row__inner { min-height: 2.3rem; }
.hdr-row--top a { color: #e9eee9; text-decoration: none; }
.hdr-row--top a:hover { color: var(--otv-cu-hi); }
.hdr-row--top .cms-icon { color: var(--otv-cu-hi); }
.hdr-row--top .hdr-phone__number { font-size: 0.82rem; }
.hdr-row--top .hdr-phone__caption { color: #9fb0a7; font-size: 0.68rem; }
.hdr-row--top .hdr-phone { display: flex !important; flex-direction: row !important; align-items: baseline; gap: 0.8rem; line-height: 1.2; }
.hdr-row--main { background: var(--otv-sheet); border-bottom: 1px dashed var(--otv-line); }
.hdr-row--main .hdr-row__inner { min-height: 5rem; }
.hdr-row--bottom { background: var(--otv-board); color: #e6eae4; position: relative; }
.hdr-row--bottom::after { content: ''; position: absolute; inset: auto 0 0 0; height: 3px; background: repeating-linear-gradient(90deg, var(--otv-cu) 0 22px, transparent 22px 30px); opacity: 0.85; }
.hdr-row--bottom .hdr-row__inner { min-height: 3.2rem; }
.hdr-row--bottom .hdr-nav__list { gap: 0; }
.hdr-row--bottom .hdr-nav__link {
    font-family: var(--font-display); font-weight: 600; font-size: 1.02rem; letter-spacing: 0.05em; text-transform: uppercase;
    color: #d9e0db; padding-inline: 1.15rem; min-height: 3.2rem; display: inline-flex; align-items: center; text-decoration: none; position: relative;
}
.hdr-row--bottom .hdr-nav__link:hover, .hdr-row--bottom .hdr-nav__link.is-active { color: #fff; background: var(--otv-board-2); }
.hdr-row--bottom .hdr-nav__link.is-highlight, .hdr-row--bottom .hdr-nav__item:last-child .hdr-nav__link { color: var(--otv-cu-hi); }
.hdr-row--bottom .hdr-nav__link.is-active::before { content: ''; position: absolute; left: 1.15rem; right: 1.15rem; top: 0; height: 3px; background: var(--otv-cu-hi); }
html[data-otv-header="board"] .hdr-row--main { background: var(--otv-board); border-bottom: 1px solid var(--otv-board-line); color: #fff; --c-text: #fff; }
html[data-otv-header="board"] .hdr-row--main .hdr-logo__name, html[data-otv-header="board"] .hdr-row--main a { color: #fff; }
html[data-otv-header="board"] .hdr-row--bottom { background: var(--otv-board-0); }
.hdr-icon-btn, .shop-hlink, .shop-minicart { color: inherit; }
.hdr-row--main .shop-hsearch__input { border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); background: #fff; font-family: var(--otv-mono); font-size: 0.9rem; }

/* Logo: a solder pad with a screw slot. */
.otv-logo { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; color: var(--otv-ink); }
.otv-logo__mark {
    position: relative; width: 2.4rem; height: 2.4rem; border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, var(--otv-sheet) 0 22%, transparent 23%), var(--otv-cu);
    box-shadow: 0 0 0 3px var(--otv-sheet), 0 0 0 5px var(--otv-board);
    font-size: 0; display: inline-grid; place-items: center;
}
.otv-logo__mark::after { content: ''; width: 0.62rem; height: 2px; background: var(--otv-board); transform: rotate(-35deg); }
.otv-logo .hdr-logo__name { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; letter-spacing: 0.02em; text-transform: uppercase; color: inherit; }
html[data-otv-header="board"] .otv-logo { color: #fff; }

/* -------------------------------------------------------------------------
   5. Footer: courier stub on top, board columns, traces along the edge
   ------------------------------------------------------------------------- */
.otv-prefooter { background: var(--otv-paper); padding-top: var(--sp-md); }
.otv-prefooter__inner {
    max-width: var(--w-wide); margin-inline: auto; width: calc(100% - 2 * var(--gutter, 1.5rem));
    display: grid; grid-template-columns: 1fr auto; gap: 2rem 3rem; align-items: center;
    background: var(--otv-sheet); border: 2px solid var(--otv-ink); padding: clamp(1.4rem, 3vw, 2.6rem);
    position: relative; box-shadow: 8px 8px 0 var(--otv-cu);
}
.otv-prefooter__inner::before, .otv-prefooter__inner::after {
    content: ''; position: absolute; top: 50%; width: 26px; height: 26px; border-radius: 50%; background: var(--otv-paper); border: 2px solid var(--otv-ink); transform: translateY(-50%);
}
.otv-prefooter__inner::before { left: -14px; clip-path: inset(0 0 0 50%); }
.otv-prefooter__inner::after { right: -14px; clip-path: inset(0 50% 0 0); }
.otv-prefooter__kicker { font-family: var(--otv-mono); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--otv-cu-deep); margin: 0 0 0.6rem; font-weight: 600; }
.otv-prefooter__title { font-size: var(--t-xl); margin: 0 0 0.6rem; max-width: 18ch; color: var(--otv-ink); }
.otv-prefooter__lead { max-width: 52ch; margin: 0; color: var(--c-text-muted); }
.otv-prefooter__side { display: grid; gap: 0.8rem; justify-items: start; padding-left: 3rem; border-left: 2px dashed var(--otv-line); }
.otv-prefooter__phone { font-family: var(--otv-mono); font-weight: 600; font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.3rem); color: var(--otv-ink); text-decoration: none; letter-spacing: -0.03em; white-space: nowrap; }
.otv-prefooter__hours { margin: -0.4rem 0 0; font-family: var(--otv-mono); font-size: 0.8rem; color: var(--c-text-muted); }
.otv-btn-dark { background: var(--otv-board); border-color: var(--otv-board); color: #fff; }
.otv-footer { position: relative; margin-top: var(--sp-md); background-color: var(--otv-board); background-image: var(--otv-traces); background-size: 360px 360px; color: #cdd6d0; overflow: hidden; }
html[data-otv-traces="off"] .otv-footer { background-image: none; }
.otv-footer::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 10px; background: repeating-linear-gradient(90deg, var(--otv-cu) 0 26px, var(--otv-board-0) 26px 36px); }
.otv-footer .site-footer__inner { padding-top: clamp(3rem, 6vw, 5rem); }
.otv-footer .ftr-col__title { font-family: var(--otv-mono); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--otv-cu-hi); font-weight: 600; }
.otv-footer a { color: #e6eae4; text-decoration: none; }
.otv-footer a:hover { color: var(--otv-cu-hi); text-decoration: underline; text-underline-offset: 3px; }
.otv-footer .ftr-contacts__phone a { font-family: var(--otv-mono); }
.otv-footer .ftr-brand__name { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.03em; }
.otv-footer .ftr-bottom { border-top: 1px dashed var(--otv-board-line); font-family: var(--otv-mono); font-size: 0.74rem; }

/* -------------------------------------------------------------------------
   6. First screen: offer, the receipt, a pinned photo
   ------------------------------------------------------------------------- */
.otv-hero { position: relative; }
.otv-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-block: clamp(0.5rem, 2vw, 1.5rem); }
.otv-hero__eyebrow { display: inline-flex; align-items: center; gap: 0.7rem; margin: 0 0 1.4rem; font-family: var(--otv-mono); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: #c9d3cc; }
.otv-hero__dot { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--otv-cu); box-shadow: 0 0 0 3px rgb(184 98 43 / 0.35); flex: none; }
.otv-hero__title { font-size: clamp(2.3rem, 1.4rem + 3.5vw, 4.5rem); line-height: 1; margin: 0 0 1.3rem; color: #fff; max-width: 17ch; letter-spacing: -0.02em; }
.otv-hero__lead { font-size: 1.2rem; color: #c3cdc6; max-width: 46ch; margin: 0 0 2rem; }
.otv-hero__actions { gap: 0.9rem; }
.otv-hero__desk { position: relative; display: grid; justify-items: center; align-self: stretch; padding: 0.5rem 0 9rem; }
.otv-receipt {
    --notch: 7px;
    position: relative; width: min(100%, 26rem); background: var(--otv-sheet); color: var(--otv-ink);
    padding: 1.5rem 1.7rem 4.6rem; transform: rotate(-1.6deg);
    -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% 100% / 16px var(--notch) repeat-x, linear-gradient(#000 0 0) 0 0 / 100% calc(100% - var(--notch) + 1px) no-repeat;
    mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% 100% / 16px var(--notch) repeat-x, linear-gradient(#000 0 0) 0 0 / 100% calc(100% - var(--notch) + 1px) no-repeat;
    filter: drop-shadow(0 22px 24px rgb(0 0 0 / 0.35));
}
html[data-otv-perf="off"] .otv-receipt { -webkit-mask: none; mask: none; }
.otv-receipt__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: 0.8rem; border-bottom: 2px dashed var(--otv-ink); margin-bottom: 0.4rem; }
.otv-receipt__title { font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; text-transform: uppercase; letter-spacing: 0.05em; }
.otv-receipt__no { font-family: var(--otv-mono); font-weight: 600; font-size: 0.95rem; color: var(--otv-cu-deep); }
.otv-receipt__lines { list-style: none; margin: 0; padding: 0; }
.otv-receipt__line { display: flex; align-items: baseline; gap: 0.5rem; padding: 0.62rem 0; font-size: 1rem; }
.otv-receipt__n { font-family: var(--otv-mono); font-size: 0.72rem; color: var(--c-text-faint); width: 1.5rem; flex: none; }
.otv-receipt__label { flex: none; }
.otv-receipt__lead { flex: 1; align-self: end; border-bottom: 2px dotted var(--otv-line); margin-bottom: 0.35em; min-width: 1rem; }
.otv-receipt__value { font-family: var(--otv-mono); font-weight: 600; font-size: 0.92rem; text-align: right; }
.otv-receipt__value.is-hot { color: var(--otv-cu-deep); }
.otv-receipt__note { margin: 0.7rem 0 0; font-family: var(--otv-mono); font-size: 0.68rem; color: var(--c-text-faint); }
.otv-receipt__stamp {
    position: absolute; right: 1rem; bottom: 1.4rem; transform: rotate(-14deg);
    width: 5.6rem; height: 5.6rem; border-radius: 50%; border: 3px solid var(--otv-cu-deep); color: var(--otv-cu-deep);
    display: grid; place-items: center; text-align: center; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.9rem;
    box-shadow: inset 0 0 0 4px var(--otv-sheet), inset 0 0 0 5px var(--otv-cu-deep); opacity: 0.88; mix-blend-mode: multiply;
}
.otv-hero__photo {
    position: absolute; left: 0; bottom: 0; margin: 0; width: min(44%, 11rem); background: #fff; padding: 0.4rem 0.4rem 1.5rem; transform: rotate(-4deg);
    box-shadow: 0 18px 30px -12px rgb(0 0 0 / 0.55); z-index: 2;
}
.otv-hero__photo::before { content: ''; position: absolute; left: 50%; top: -0.6rem; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--otv-cu-hi), var(--otv-cu-deep)); box-shadow: 0 2px 4px rgb(0 0 0 / 0.5); transform: translateX(-50%); }
.otv-hero__photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.otv-hero__photo figcaption { position: absolute; left: 0.5rem; right: 0.5rem; bottom: 0.3rem; font-family: var(--otv-mono); font-size: 0.6rem; color: var(--otv-ink); line-height: 1.2; }

/* -------------------------------------------------------------------------
   7. Price finder: the printed price sheet
   ------------------------------------------------------------------------- */
.otv-finder { display: grid; gap: 1.8rem; }
.otv-finder__controls { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.4rem; align-items: start; }
.otv-finder__step-title { display: flex; align-items: center; gap: 0.7rem; margin: 0 0 0.7rem; font-family: var(--otv-mono); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.otv-finder__step-title span { background: var(--otv-ink); color: #fff; padding: 0.15rem 0.45rem; letter-spacing: 0.04em; }
.otv-finder__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.otv-chip { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.7rem 1.2rem; background: var(--otv-sheet); border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); color: var(--otv-ink); cursor: pointer; transition: background 0.12s, color 0.12s; }
.otv-chip:hover { background: #e9ebe4; }
.otv-chip[aria-pressed="true"] { background: var(--otv-ink); color: #fff; box-shadow: 3px 3px 0 var(--otv-cu); }
.otv-select { width: 100%; min-height: 3.1rem; padding: 0.5rem 0.9rem; border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); background: #fff; font-family: var(--otv-mono); font-size: 0.95rem; color: var(--otv-ink); }
.otv-finder:not([data-js]) .otv-finder__controls { display: none; }
.otv-finder__step-title--sheet { margin-bottom: 1rem; }
.otv-finder__sheets { display: grid; gap: 1.4rem; }
.otv-sheet { background: var(--otv-sheet); border: 2px solid var(--otv-ink); padding: clamp(1rem, 2.4vw, 1.8rem); position: relative; box-shadow: 8px 8px 0 var(--otv-line); }
.otv-sheet[hidden] { display: none; }
.otv-sheet__title { margin: 0 0 1rem; font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); padding-bottom: 0.8rem; border-bottom: 2px dashed var(--otv-ink); display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: baseline; }
.otv-sheet__type { font-family: var(--otv-mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; background: var(--otv-cu-deep); color: #fff; padding: 0.15rem 0.5rem; }
.otv-sheet__table { width: 100%; border-collapse: collapse; }
.otv-sheet__table thead th { font-family: var(--otv-mono); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-text-faint); text-align: left; font-weight: 600; padding: 0 0 0.5rem; }
.otv-sheet__table thead th:last-child, .otv-sheet__price { text-align: right; }
.otv-sheet__table tbody tr { border-bottom: 1px dotted var(--otv-line); }
.otv-sheet__table tbody tr:last-child { border-bottom: 0; }
.otv-sheet__table tbody th { text-align: left; font-weight: 400; font-size: 1.12rem; padding: 0.85rem 1rem 0.85rem 0; }
.otv-sheet__n { display: inline-block; width: 2rem; font-family: var(--otv-mono); font-size: 0.72rem; color: var(--c-text-faint); }
.otv-sheet__term { font-family: var(--otv-mono); font-size: 0.85rem; color: var(--c-text-muted); white-space: nowrap; padding-right: 1.4rem; }
.otv-sheet__price { font-family: var(--otv-mono); font-weight: 600; font-size: 1.25rem; white-space: nowrap; color: var(--otv-ink); }
.otv-sheet__table tbody tr:hover { background: color-mix(in srgb, var(--otv-cu) 8%, transparent); }
.otv-finder__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; }
.otv-finder__note { margin: 0; max-width: 56ch; font-family: var(--otv-mono); font-size: 0.78rem; color: var(--c-text-muted); }

/* -------------------------------------------------------------------------
   8. Stub blocks: status check and courier pickup
   ------------------------------------------------------------------------- */
.otv-track__grid, .otv-pickup__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.otv-track__title, .otv-pickup__title, .otv-clauses__title { font-size: var(--t-xl); margin: 0 0 0.8rem; max-width: 16ch; }
.otv-track__lead, .otv-pickup__lead, .otv-clauses__lead { font-size: 1.12rem; color: var(--c-text-muted); max-width: 48ch; margin: 0 0 1.2rem; }
.otv-track__statuses-title, .otv-pickup__zones-title, .otv-clauses__ex-title { font-family: var(--otv-mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin: 1.6rem 0 0.6rem; color: var(--c-mark-text); }
.otv-track__statuses { list-style: none; margin: 0; padding: 0; counter-reset: otst; border-left: 2px solid var(--otv-ink); }
.otv-track__statuses li { counter-increment: otst; position: relative; display: grid; grid-template-columns: 9.5rem 1fr; gap: 1rem; padding: 0.7rem 0 0.7rem 1.4rem; }
.otv-track__statuses li::before { content: ''; position: absolute; left: -7px; top: 1.05rem; width: 12px; height: 12px; border-radius: 50%; background: var(--otv-paper); border: 2px solid var(--otv-ink); }
.otv-track__statuses li:last-child::before { background: var(--otv-cu); border-color: var(--otv-cu); }
.otv-track__state { font-family: var(--otv-mono); font-weight: 600; font-size: 0.86rem; text-transform: uppercase; letter-spacing: 0.04em; }
.otv-track__means { color: var(--c-text-muted); }
.otv-track__stub, .otv-pickup__stub {
    position: relative; background: var(--otv-sheet); color: var(--otv-ink); border: 2px solid var(--otv-ink); padding: 2.4rem 1.6rem 1.6rem;
    --c-text: #28322d; --c-text-strong: var(--otv-ink); --c-text-muted: #56615a; --c-border: var(--otv-line); --c-surface: #fff; --c-bg: var(--otv-sheet);
}
.otv-track__stub::before, .otv-pickup__stub::before { content: ''; position: absolute; left: 0; right: 0; top: 1.4rem; border-top: 2px dashed var(--otv-ink); }
.otv-track__stub::after, .otv-pickup__stub::after { content: ''; position: absolute; left: -13px; top: calc(1.4rem - 12px); width: 24px; height: 24px; border-radius: 50%; background: var(--stub-hole, var(--otv-paper)); border: 2px solid var(--otv-ink); clip-path: inset(0 0 0 50%); }
.otv-track__stub-label, .otv-pickup__stub-title { margin: 0 0 1rem; padding-top: 0.5rem; font-family: var(--otv-mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.otv-pickup__stub-title { font-family: var(--font-display); font-size: 1.6rem; letter-spacing: 0.02em; }
.otv-track__note { margin: 1rem 0 0; font-family: var(--otv-mono); font-size: 0.74rem; color: var(--c-text-muted); }
.otv-track .cms-form__field, .otv-pickup .cms-form__field { margin-bottom: 0.9rem; }
.otv-track .cms-form input:not([type=checkbox]), .otv-track .cms-form select, .otv-track .cms-form textarea,
.otv-pickup .cms-form input:not([type=checkbox]), .otv-pickup .cms-form select, .otv-pickup .cms-form textarea { border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); background: #fff; color: var(--otv-ink); font-family: var(--otv-mono); font-size: 0.95rem; }
.otv-pickup { --stub-hole: var(--otv-board); }
.otv-pickup__zones { list-style: none; margin: 0; padding: 0; }
.otv-pickup__zones li { display: grid; grid-template-columns: 1fr auto auto; gap: 1.2rem; align-items: baseline; padding: 0.8rem 0; border-bottom: 1px dashed var(--otv-board-line); }
.otv-pickup__zone { font-size: 1.12rem; }
.otv-pickup__time { font-family: var(--otv-mono); font-size: 0.82rem; color: var(--c-text-muted); }
.otv-pickup__price { font-family: var(--otv-mono); font-weight: 600; font-size: 1.15rem; color: var(--otv-cu-hi); min-width: 4.6rem; text-align: right; }
.otv-pickup__note { margin: 1.1rem 0 0; font-family: var(--otv-mono); font-size: 0.78rem; color: var(--c-text-muted); }
.otv-pickup__text { max-width: 52ch; }

/* -------------------------------------------------------------------------
   9. Warranty clauses
   ------------------------------------------------------------------------- */
.otv-clauses__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 5rem); }
.otv-clauses__figure { margin: 1.4rem 0 0.2rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(3.4rem, 2rem + 5vw, 6.6rem); line-height: 0.95; letter-spacing: -0.06em; color: var(--otv-cu-deep); }
.otv-clauses__figure-label { margin: 0 0 1.6rem; font-family: var(--otv-mono); font-size: 0.84rem; max-width: 26ch; color: var(--c-text-muted); }
.otv-clauses__list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--otv-ink); }
.otv-clause { display: grid; grid-template-columns: 3.4rem 1fr; column-gap: 1rem; padding: 1.2rem 0; border-bottom: 1px dotted var(--otv-line); }
.otv-clause__n { grid-row: 1 / 3; font-family: var(--otv-mono); font-weight: 600; font-size: 1.1rem; color: var(--otv-cu-deep); }
.otv-clause__title { margin: 0 0 0.35rem; font-size: 1.35rem; }
.otv-clause__text { margin: 0; color: var(--c-text-muted); max-width: 58ch; }
.otv-clauses__ex { margin-top: 2rem; padding: 1.2rem 1.4rem; background: var(--otv-sheet); border: 2px dashed var(--otv-ink); }
.otv-clauses__ex-title { margin-top: 0; }
.otv-clauses__ex ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; }
.otv-clauses__ex li { padding-left: 1.5rem; position: relative; }
.otv-clauses__ex li::before { content: '×'; position: absolute; left: 0; top: -0.05em; font-family: var(--otv-mono); font-weight: 600; color: var(--c-danger); }

/* -------------------------------------------------------------------------
   10. Mobile
   ------------------------------------------------------------------------- */
@media (max-width: 960px) {
    .otv-hero__grid, .otv-track__grid, .otv-pickup__grid, .otv-clauses__grid, .otv-finder__controls { grid-template-columns: minmax(0, 1fr); }
    .otv-hero__desk { min-height: 0; padding-bottom: 4rem; }
    .otv-prefooter__inner { grid-template-columns: minmax(0, 1fr); }
    .otv-prefooter__side { padding-left: 0; border-left: 0; border-top: 2px dashed var(--otv-line); padding-top: 1.4rem; width: 100%; }
}
@media (max-width: 600px) {
    .otv-hero__title { font-size: clamp(2.2rem, 11vw, 3rem); }
    .otv-receipt { padding: 1.1rem 1.1rem 5.2rem; }
    .otv-receipt__stamp { width: 4.4rem; height: 4.4rem; font-size: 0.7rem; right: 0.8rem; }
    .otv-hero__photo { width: 40%; }
    .otv-track__statuses li { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
    .otv-pickup__zones li { grid-template-columns: minmax(0, 1fr) auto; }
    .otv-pickup__time { grid-column: 1; grid-row: 2; }
    .otv-pickup__price { grid-row: 1 / 3; grid-column: 2; align-self: center; }
    .otv-sheet__table thead { display: none; }
    .otv-sheet__table, .otv-sheet__table tbody, .otv-sheet__table tr, .otv-sheet__table th, .otv-sheet__table td { display: block; }
    .otv-sheet__table tbody tr { display: grid; grid-template-columns: 1fr auto; padding: 0.8rem 0; }
    .otv-sheet__table tbody th { grid-column: 1 / 3; padding: 0 0 0.2rem; }
    .otv-sheet__term { padding: 0; align-self: end; }
    .otv-sheet__price { font-size: 1.15rem; }
    .otv-sheet { box-shadow: 4px 4px 0 var(--otv-line); }
    .otv-prefooter__inner { box-shadow: 4px 4px 0 var(--otv-cu); }
    .otv-prefooter__inner::before, .otv-prefooter__inner::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cms-btn { transition: none; } }
