/* Отвёртка — the modules' pages re-dressed (services, shop, default blocks).
   Loaded last, so it wins over the modules' own styles. */

/* Service cards: a repair-tag — number, mono price, dotted cut line. */
.svc-grid { gap: 1.4rem; }
.svc-card { background: var(--otv-sheet); border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); position: relative; transition: transform 0.15s ease, box-shadow 0.15s ease; }
.svc-card:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--otv-cu); }
.svc-card__media { border-bottom: 2px solid var(--otv-ink); }
.svc-card__media img { filter: saturate(0.85) contrast(1.04); }
.svc-card__title { font-size: 1.5rem; }
.svc-card__link { color: var(--otv-ink); text-decoration: none; }
.svc-card__foot { border-top: 2px dashed var(--otv-line); }
.svc-card__amount { font-family: var(--otv-mono); font-weight: 600; font-size: 1.25rem; color: var(--otv-ink); }
.svc-card__unit { font-family: var(--otv-mono); font-size: 0.7rem; color: var(--c-text-faint); }
.svc-badge { font-family: var(--otv-mono); text-transform: uppercase; letter-spacing: 0.08em; background: var(--otv-cu-deep); color: #fff; border-radius: 0; }

/* Shop cards: a sale tag on a hang-loop, price in mono, stock as a lamp. */
.shop-card { background: var(--otv-sheet); border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); transition: transform 0.15s ease, box-shadow 0.15s ease; overflow: hidden; }
.shop-card:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--otv-cu); }
.shop-card__media { background: radial-gradient(circle at 50% 40%, #ffffff, #e9ece4); border-bottom: 2px solid var(--otv-ink); }
.shop-card__img { mix-blend-mode: multiply; }
.shop-card__title { font-size: 1.12rem; line-height: 1.2; }
.shop-card__link { color: var(--otv-ink); text-decoration: none; }
.shop-card__foot { border-top: 2px dashed var(--otv-line); padding-top: 0.8rem; margin-top: 0.8rem; }
.shop-price__value { font-weight: 600; font-size: 1.3rem; color: var(--otv-ink); }
.shop-price__old { font-family: var(--otv-mono); font-size: 0.8rem; }
.shop-price__from { font-family: var(--otv-mono); font-size: 0.7rem; text-transform: uppercase; }
.shop-stock { font-family: var(--otv-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; }
.shop-sticker { border-radius: 0 !important; font-family: var(--otv-mono); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.68rem; }
.shop-card .cms-btn, .shop-card__actions .cms-btn { min-height: 2.6rem; padding-inline: 1rem; font-size: 0.9rem; }

/* Default blocks */
.cms-faq__item, .faq__item, details.cms-faq__item { border-color: var(--otv-ink); }
.cms-testimonials .cms-card, .cms-testimonial { border: 2px solid var(--otv-ink); background: var(--otv-sheet); box-shadow: 6px 6px 0 var(--otv-line); }
.cms-stages { --stages-accent: var(--otv-cu); }
.cms-stages__num, .cms-stages__number { font-family: var(--otv-mono); font-weight: 600; }
.cms-ptable { font-family: var(--font-ui); }
.cms-ptable__price, .cms-ptable__plan-price { font-family: var(--otv-mono); font-weight: 600; letter-spacing: -0.04em; }

/* Prices are always monospace (the modules set their own, more specific rules). */
:root .shop-price__value, :root .shop-price__now, :root .svc-card__amount { font-family: var(--otv-mono); font-feature-settings: 'zero' 1; letter-spacing: -0.03em; }
:root .shop-price--lg .shop-price__value { font-size: 2.2rem; }

/* Stages: numbered contact pads on a trace. */
.cms-stages__marker { border-radius: 0; border: 2px solid var(--otv-ink); background: var(--otv-sheet); color: var(--otv-ink); font-family: var(--otv-mono); font-weight: 600; }
.cms-stages__item:first-child .cms-stages__marker { background: var(--otv-cu-deep); border-color: var(--otv-cu-deep); color: #fff; }
.cms-stages__title { font-size: 1.3rem; }
.cms-stages__result { border-radius: 0; border-left: 3px solid var(--otv-cu); background: var(--otv-sheet); font-family: var(--otv-mono); font-size: 0.78rem; }
.cms-stages__meta { font-family: var(--otv-mono); font-size: 0.78rem; }

/* Pricing table: the featured plan is a stamped slip. */
.cms-ptable__plan--featured, .cms-ptable__card--featured { border-color: var(--otv-cu-deep); box-shadow: 8px 8px 0 var(--otv-cu); }
.cms-ptable__amount { font-family: var(--otv-mono); font-weight: 600; letter-spacing: -0.05em; }
.cms-ptable__badge { border-radius: 0; font-family: var(--otv-mono); text-transform: uppercase; letter-spacing: 0.08em; background: var(--otv-cu-deep); color: #fff; }
.cms-ptable__period, .cms-ptable__hint { font-family: var(--otv-mono); font-size: 0.74rem; }

/* Service page, shop pages: titles and prices in the same hand. */
.svc-page h1, .shop-product h1, .shop-catalog h1 { letter-spacing: -0.015em; }
.svc-prices__amount, .svc-price__amount, .shop-buybox .shop-price__value { font-family: var(--otv-mono); font-weight: 600; }
.shop-variant-chip, .shop-chip { border-radius: var(--otv-radius); border: 2px solid var(--otv-ink); }

/* Forms: ink-framed fields everywhere. */
.cms-form input:not([type=checkbox]):not([type=radio]), .cms-form select, .cms-form textarea { border: 2px solid var(--otv-ink); border-radius: var(--otv-radius); background: #fff; }
.cms-form input:focus, .cms-form select:focus, .cms-form textarea:focus { outline: 3px solid color-mix(in srgb, var(--otv-cu) 55%, transparent); outline-offset: 0; }
