/* =========================================================================
   «Право» — a law firm or a bar office.

   A legal broadsheet: white paper and black ink, one sealing-wax accent
   (claret by default), a high-contrast serif set large and tight, small
   capitals for datelines and labels, double rules, sections numbered like
   articles of a code (§ 01, § 02…), practice areas as a table of contents
   with roman numerals, won cases as a court register, monochrome photos.
   Loaded after the parent's theme, blocks and chrome styles and the
   modules' styles: it remaps the parent's tokens, then dresses the chrome,
   the shared blocks, its own blocks and the Services/Team pages.

   1. Fonts   2. Design settings   3. Tokens   4. Base   5. Buttons & forms
   6. Header   7. Footer   8. Section heads   9. Own blocks
   10. Shared blocks   11. Module pages   12. Variants   13. Motion
   ========================================================================= */

/* 1. Fonts — Playfair Display and Cormorant Garamond ship with the
   template (OFL, licences in assets/fonts); Lora, Onest, Inter and Manrope
   are the parent's. Only the chosen families are downloaded. */
@font-face { font-family: 'Pravo Playfair'; font-style: normal; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Playfair'; font-style: normal; font-display: swap; font-weight: 400 900; src: url(../fonts/playfair-display-latin-wght-normal.woff2) format('woff2-variations'); 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: 'Pravo Cormorant'; font-style: normal; font-display: swap; font-weight: 300 700; src: url(../fonts/cormorant-garamond-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Cormorant'; font-style: normal; font-display: swap; font-weight: 300 700; src: url(../fonts/cormorant-garamond-latin-wght-normal.woff2) format('woff2-variations'); 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: 'Pravo Lora'; font-style: normal; font-display: swap; font-weight: 400 700; src: url(/themes/default/assets/fonts/lora-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Lora'; font-style: normal; font-display: swap; font-weight: 400 700; src: url(/themes/default/assets/fonts/lora-latin-wght-normal.woff2) format('woff2-variations'); 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; }
/* The italic for signatures and captions: Lora's own, whatever the headline font. */
@font-face { font-family: 'Pravo Italic'; font-style: italic; font-display: swap; font-weight: 400 700; src: url(/themes/default/assets/fonts/lora-cyrillic-wght-italic.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Italic'; font-style: italic; font-display: swap; font-weight: 400 700; src: url(/themes/default/assets/fonts/lora-latin-wght-italic.woff2) format('woff2-variations'); 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: 'Pravo Onest'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/themes/default/assets/fonts/onest-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Onest'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/themes/default/assets/fonts/onest-latin-wght-normal.woff2) format('woff2-variations'); 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: 'Pravo Inter'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/themes/default/assets/fonts/inter-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Inter'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/themes/default/assets/fonts/inter-latin-wght-normal.woff2) format('woff2-variations'); 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: 'Pravo Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url(/themes/default/assets/fonts/manrope-cyrillic-wght-normal.woff2) format('woff2-variations'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Pravo Manrope'; font-style: normal; font-display: swap; font-weight: 200 800; src: url(/themes/default/assets/fonts/manrope-latin-wght-normal.woff2) format('woff2-variations'); 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; }

/* 2. The owner's design settings (theme.json → design.controls). Core
   prints the chosen values as :root{--pravo-…} after this file. */
:root {
    --pravo-accent: #8c1d22;
    --pravo-font-display: 'Pravo Playfair', 'Playfair Display', Georgia, 'Times New Roman', serif;
    --pravo-font-body: 'Pravo Onest', Onest, 'Segoe UI', system-ui, Arial, sans-serif;
    --pravo-radius: 0px;
}

/* 3. Tokens. White paper, black ink; `.cms-tone-soft` is a sheet a shade
   warmer, the dark tone is the ink of the footer. */
html.pravo {
    --pr-paper: #fbfaf7;
    --pr-sunk: #f2efe8;
    --pr-sheet: #ffffff;
    --pr-ink: #13171f;
    --pr-ink-2: #414755;
    --pr-ink-3: #636a78;
    --pr-line: rgb(19 23 31 / 0.14);
    --pr-line-2: rgb(19 23 31 / 0.34);
    --pr-rule: var(--pr-ink);
    --pr-night: #121824;
    --pr-accent: var(--pravo-accent);
    --pr-accent-2: color-mix(in srgb, var(--pr-accent) 82%, #000);
    --pr-accent-a: color-mix(in srgb, var(--pr-accent) 9%, transparent);
    --pr-on-accent: #fff;
    --pr-r: var(--pravo-radius);
    --pr-gap: clamp(1rem, 0.6rem + 1.4vw, 2rem);
    --pr-rule-w: 3px;
    --pr-rule-s: double;
    --pr-double: var(--pr-rule-w) var(--pr-rule-s) var(--pr-rule);
    --pr-italic: 'Pravo Italic', 'Lora', Georgia, serif;
    --pr-photo-filter: grayscale(1) contrast(1.06) brightness(1.02);

    --paper: var(--pr-paper);
    --c-bg: var(--pr-paper);
    --c-surface: var(--pr-sheet);
    --c-surface-sunk: var(--pr-sunk);
    --c-text: var(--pr-ink-2);
    --c-text-strong: var(--pr-ink);
    --c-text-muted: var(--pr-ink-2);
    --c-text-faint: var(--pr-ink-3);
    --c-border: var(--pr-line);
    --c-border-strong: var(--pr-line-2);
    --c-accent: var(--pr-accent);
    --c-accent-hover: var(--pr-accent-2);
    --c-accent-soft: var(--pr-accent-a);
    --c-accent-contrast: var(--pr-on-accent);
    --c-link: var(--pr-accent);
    --c-link-hover: var(--pr-ink);
    --c-mark: var(--pr-accent);
    --c-mark-text: var(--pr-accent);
    --c-mark-soft: var(--pr-accent-a);
    --c-slab: var(--pr-night);
    --c-slab-text: #f3f0e8;
    --c-slab-muted: #b7bac2;
    --c-danger: #b3261e;
    --c-success: #2f6b3f;

    --font-ui: var(--pravo-font-body);
    --font-display: var(--pravo-font-display);
    --font-prose: var(--pravo-font-body);
    --fw-heading: 600;
    --tr-tight: -0.015em;
    --tr-snug: -0.005em;
    --r-xs: min(var(--pr-r), 3px);
    --r-sm: var(--pr-r);
    --r-md: var(--pr-r);
    --r-lg: var(--pr-r);
    --r-btn: var(--pr-r);
    --card-radius: var(--pr-r);
    --card-bg: var(--pr-sheet);
    --card-border: 1px solid var(--pr-line);
    --card-shadow: none;
    --w-container: 72rem;
    --w-wide: 80rem;
    --shadow-lift: 0 18px 50px -30px rgb(19 23 31 / 0.45);
    color-scheme: light;
}

.pravo .cms-tone-soft { --section-bg: var(--pr-sunk); --c-bg: var(--pr-sunk); --c-surface: var(--pr-sheet); }
.pravo .cms-tone-dark,
.pravo .cms-on-dark {
    --c-bg: var(--pr-night); --c-surface: #1a2130; --c-surface-sunk: #0e131c;
    --c-text: #d9d6ce; --c-text-strong: #f6f3ec; --c-text-muted: #b9bcc4; --c-text-faint: #9a9ea8;
    --c-border: rgb(246 243 236 / 0.14); --c-border-strong: rgb(246 243 236 / 0.3);
    --c-link: #f6f3ec; --c-link-hover: #fff;
    --pr-rule: rgb(246 243 236 / 0.55);
    --pr-double: var(--pr-rule-w) var(--pr-rule-s) var(--pr-rule);
    color-scheme: dark;
}
.pravo .cms-tone-dark { --section-bg: var(--pr-night); }
.pravo .cms-tone-primary,
.pravo .cms-tone-accent {
    --section-bg: var(--pr-accent);
    --c-bg: var(--pr-accent); --c-surface: color-mix(in srgb, var(--pr-accent) 85%, #000);
    --c-text: #fff; --c-text-strong: #fff; --c-text-muted: rgb(255 255 255 / 0.84); --c-text-faint: rgb(255 255 255 / 0.7);
    --c-border: rgb(255 255 255 / 0.22); --c-border-strong: rgb(255 255 255 / 0.45);
    --c-accent: #fff; --c-accent-hover: #f1ece4; --c-accent-contrast: var(--pr-accent);
    --c-link: #fff; --c-link-hover: #fff;
    --pr-rule: rgb(255 255 255 / 0.6);
    --pr-double: var(--pr-rule-w) var(--pr-rule-s) var(--pr-rule);
}
.pravo .cms-on-light {
    --c-bg: #fbfaf7; --c-surface: #fff; --c-surface-sunk: #f2efe8;
    --c-text: #414755; --c-text-strong: #13171f; --c-text-muted: #414755; --c-text-faint: #636a78;
    --c-border: rgb(19 23 31 / 0.14); --c-border-strong: rgb(19 23 31 / 0.34);
    color-scheme: light;
}

/* 4. Base */
html.pravo,
.pravo body { background: var(--pr-paper); color: var(--c-text); }
.pravo body { font-family: var(--font-ui); font-size: 1.0625rem; -webkit-font-smoothing: antialiased; }
.pravo ::selection { background: var(--pr-accent); color: var(--pr-on-accent); }
.pravo :focus-visible { outline: 2px solid var(--pr-accent); outline-offset: 3px; }

.pr-display,
.pravo h1, .pravo h2, .pravo h3,
.pravo .cms-section__title {
    font-family: var(--font-display);
    font-weight: var(--fw-heading);
    letter-spacing: var(--tr-tight);
    line-height: 1.08;
    color: var(--c-text-strong);
    text-wrap: balance;
    font-feature-settings: 'lnum' 1, 'kern' 1;
}

.pr-wrap { width: 100%; max-width: var(--w-wide); margin-inline: auto; padding-inline: var(--gutter); }

/* Small capitals label: datelines, eyebrows, table heads. */
.pr-kicker {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 var(--s-4);
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pr-accent);
}
.pr-kicker::after { content: ''; flex: 1 1 auto; max-width: 6rem; border-top: 1px solid currentColor; opacity: 0.5; }
.pravo .cms-on-dark .pr-kicker { color: #e7b9ae; }

.pr-rule-top { border-top: var(--pr-double); }

/* Monochrome photographs (design setting «Фотографии»). */
.pr-photo img,
.pravo .svc-card__media img,
.pravo .svc-hero__media img,
.pravo .svc-gallery img,
.pravo .team-card__photo img,
.pravo .team-profile__photo img,
.pravo .team-page__cover img,
.pravo .cms-booking__avatar img { filter: var(--pr-photo-filter); }

.pravo .cms-prose a,
.pravo .svc-prose a { color: var(--pr-accent); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }

/* Drop cap on the first paragraph (design setting «Буквица»). */
.pr-dropcap > p:first-child::first-letter {
    float: left;
    margin: 0.06em 0.12em 0 0;
    font-family: var(--font-display);
    font-size: 4.1em;
    font-weight: 700;
    line-height: 0.82;
    color: var(--pr-accent);
}

/* 5. Buttons and forms: rectangular, small capitals, a 1px frame. */
.pravo .cms-btn {
    min-height: 48px;
    padding: 0.8rem 1.6rem;
    border: 1px solid transparent;
    border-radius: var(--pr-r);
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    box-shadow: none;
    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pravo .cms-btn--primary { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-accent-contrast); }
.pravo .cms-btn--primary:hover { background: var(--c-accent-hover); border-color: var(--c-accent-hover); color: var(--c-accent-contrast); }
.pravo .cms-btn--ghost { background: transparent; border-color: var(--c-text-strong); color: var(--c-text-strong); }
.pravo .cms-btn--ghost:hover { background: var(--c-text-strong); color: var(--c-bg); }
.pravo .cms-btn--link { min-height: 44px; padding: 0.25rem 0; border: 0; color: var(--c-text-strong); border-bottom: 1px solid currentColor; border-radius: 0; }
.pravo .cms-btn--link:hover { color: var(--pr-accent); background: none; }
.pr-arrow-link::after { content: '→'; margin-left: 0.5em; }

.pravo .cms-form__label { font-size: 0.75rem; font-weight: 650; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-muted); }
.pravo .cms-form__input {
    min-height: 48px;
    background: var(--c-surface);
    border: 1px solid var(--c-border-strong);
    border-radius: var(--pr-r);
    color: var(--c-text-strong);
}
.pravo .cms-form__input:focus { border-color: var(--c-text-strong); outline: none; box-shadow: 0 0 0 3px var(--pr-accent-a); }
.pravo .cms-form__input::placeholder { color: var(--pr-ink-3); }
.pravo .cms-form__req { color: var(--pr-accent); }
.pravo .cms-form__check input { accent-color: var(--pr-accent); }
.pravo .cms-form__success { border-left: 3px solid var(--pr-accent); background: var(--pr-accent-a); color: var(--c-text-strong); border-radius: var(--pr-r); }

/* 6. Header — the masthead. */
.pr-hdr.site-header {
    position: relative;
    background: var(--pr-paper);
    color: var(--pr-ink);
    border-bottom: 0;
}
.pr-hdr.site-header--sticky { position: sticky; top: 0; z-index: 50; }
.pr-hdr .hdr-row__inner { max-width: var(--w-wide); }
.pr-hdr .hdr-row--top {
    background: transparent;
    border-bottom: 1px solid var(--pr-line);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: var(--pr-ink-2);
}
.pr-hdr .hdr-row--top .hdr-text { font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pr-accent); }
.pr-hdr .hdr-row--top .hdr-text svg { color: var(--pr-accent); }
.pr-hdr .hdr-row--top a { color: inherit; }
.pr-hdr .hdr-row--main { border-bottom: var(--pr-double); }

.pr-hdr .hdr-logo,
.pr-drawer .hdr-logo { color: var(--pr-ink); gap: 0.75rem; text-decoration: none; }
.pr-hdr .hdr-logo__name,
.pr-drawer .hdr-logo__name {
    font-family: var(--font-display);
    font-size: 1.9rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1;
}
.pr-hdr .hdr-logo__tagline {
    margin-top: 0.3rem;
    font-size: 0.66rem;
    font-weight: 650;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pr-ink-3);
}
.pr-logo .pr-mark,
.pr-ftr__mark { width: 44px; height: 44px; color: var(--pr-accent); flex: none; }

.pr-hdr .hdr-nav__link {
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pr-ink);
    padding-inline: 0.7rem;
}
.pr-hdr .hdr-nav__link:hover,
.pr-hdr .hdr-nav__link.is-active { color: var(--pr-accent); }
.pr-hdr .hdr-nav__link[aria-current="page"] { color: var(--pr-accent); box-shadow: inset 0 -2px 0 var(--pr-accent); }
.pr-hdr .hdr-sub__list { background: var(--pr-sheet); border: 1px solid var(--pr-ink); border-top: 3px solid var(--pr-accent); border-radius: var(--pr-r); box-shadow: var(--shadow-lift); }
.pr-hdr .hdr-sub__link { color: var(--pr-ink); border-radius: var(--pr-r); }
.pr-hdr .hdr-sub__link:hover { background: var(--pr-accent-a); color: var(--pr-accent); }
.pr-hdr .hdr-phone__number { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; letter-spacing: 0; color: var(--pr-ink); }
.pr-hdr .hdr-phone__caption { color: var(--pr-ink-3); }
.pr-hdr .hdr-el--button .cms-btn { white-space: nowrap; }
.pr-hdr .hdr-burger,
.pr-hdr .hdr-icon-btn { color: var(--pr-ink); }

/* Masthead (default): the name centred and large, phone and button to the
   right, the menu on its own line under a hairline. */
@media (min-width: 60rem) {
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-row--main .hdr-row__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        grid-template-areas: ". logo right" "menu menu menu";
        row-gap: 0;
        padding-block: 0;
    }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-row--main .hdr-zone--left { grid-area: logo; justify-content: center; padding-block: 1.1rem 1rem; }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-row--main .hdr-zone--right { grid-area: right; justify-self: end; margin: 0; }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-row--main .hdr-zone--center {
        grid-area: menu;
        justify-content: center;
        border-top: 1px solid var(--pr-line-2);
        min-height: 3rem;
    }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-logo__name { font-size: 2.6rem; }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-logo { flex-direction: column; gap: 0.35rem; text-align: center; }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .hdr-logo__text { align-items: center; }
    html.pravo[data-pravo-header="masthead"] .pr-hdr .pr-logo .pr-mark { width: 38px; height: 38px; }
    /* Tall as a masthead, so it scrolls away instead of covering the page. */
    html.pravo[data-pravo-header="masthead"] .pr-hdr.site-header--sticky { position: relative; }
}

.pr-drawer.hdr-drawer { background: var(--pr-paper); color: var(--pr-ink); border-left: 3px solid var(--pr-accent); }
.pr-drawer .hdr-dmenu__link { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--pr-ink); }
.pr-drawer .hdr-drawer__phone { color: var(--pr-ink); font-family: var(--font-display); font-size: 1.2rem; }
.pr-drawer .hdr-drawer__line { color: var(--pr-ink-2); }

/* 7. Footer — the ink colophon. */
.pr-ftr.site-footer {
    position: relative;
    margin-top: 0;
    background: var(--pr-night);
    color: #c9c7c0;
    border-top: 0;
    overflow: hidden;
    --pr-rule: rgb(246 243 236 / 0.5);
    --pr-double: var(--pr-rule-w) var(--pr-rule-s) var(--pr-rule);
}
.pr-ftr a { color: #f3f0e8; }
.pr-ftr__band { border-bottom: 1px solid rgb(246 243 236 / 0.14); padding-block: var(--s-7); }
.pr-ftr__band-inner { display: grid; gap: var(--s-5); align-items: center; }
@media (min-width: 860px) { .pr-ftr__band-inner { grid-template-columns: 1fr 1.2fr; } }
.pr-ftr .pr-ftr__band-title { font-size: var(--t-xl); color: #f6f3ec; }
.pr-ftr__band .cms-form { --c-surface: #1a2130; --c-text-strong: #f6f3ec; --c-border-strong: rgb(246 243 236 / 0.3); }
.pr-ftr__main {
    display: grid;
    gap: var(--s-7);
    padding-block: var(--s-8) var(--s-6);
}
@media (min-width: 960px) { .pr-ftr__main { grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr); column-gap: var(--s-8); } }
.pr-ftr__brand { display: inline-flex; align-items: center; gap: 0.75rem; color: #f6f3ec; text-decoration: none; }
.pr-ftr__mark { --pr-mark-ink: var(--pr-night); }
.pr-ftr__name { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: #f6f3ec; }
.pr-ftr__lead { margin-top: var(--s-5); max-width: 30rem; font-family: var(--font-display); font-size: 1.2rem; line-height: 1.5; color: #e2dfd7; }
.pr-ftr__grid { display: grid; gap: var(--s-6); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.pr-ftr__col { padding-top: var(--s-4); border-top: var(--pr-double); }
.pr-ftr .pr-ftr__title {
    margin: 0 0 var(--s-4);
    font-family: var(--font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #e7b9ae;
}
.pr-ftr .pr-ftr__title--about { color: #f6f3ec; font-size: var(--t-lg); letter-spacing: 0; text-transform: none; }
.pr-ftr__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.pr-ftr__menu a { color: #e2dfd7; text-decoration: none; }
.pr-ftr__menu a:hover { color: #fff; text-decoration: underline; text-underline-offset: 0.25em; }
.pr-ftr__contacts { font-style: normal; display: grid; gap: 0.5rem; }
.pr-ftr__phone a { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: #f6f3ec; text-decoration: none; }
.pr-ftr__phone span { display: block; font-size: var(--t-xs); color: #a9acb4; }
.pr-ftr__line { margin: 0; }
.pr-ftr__line--muted { color: #a9acb4; }
.pr-ftr__socials { margin-top: var(--s-5); }
.pr-ftr .site-socials__link { background: transparent; border: 1px solid rgb(246 243 236 / 0.3); color: #f6f3ec; border-radius: var(--pr-r); }
.pr-ftr .site-socials__link:hover { background: #f6f3ec; color: var(--pr-night); }
.pr-ftr__nameplate {
    margin: 0;
    padding-inline: var(--gutter);
    max-width: var(--w-wide);
    margin-inline: auto;
    overflow: hidden;
    font-family: var(--font-display);
    font-size: clamp(4.5rem, 1rem + 16vw, 15rem);
    font-weight: 700;
    line-height: 0.8;
    letter-spacing: -0.03em;
    color: transparent;
    -webkit-text-stroke: 1px rgb(246 243 236 / 0.22);
    white-space: nowrap;
    user-select: none;
}
.pr-ftr__nameplate span { display: block; transform: translateY(0.12em); }
.pr-ftr__bottom { position: relative; border-top: 1px solid rgb(246 243 236 / 0.14); padding-block: var(--s-5); font-size: var(--t-xs); color: #a9acb4; }
.pr-ftr__bottom-inner { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); align-items: center; }
.pr-ftr__links { display: flex; flex-wrap: wrap; gap: var(--s-4); list-style: none; margin: 0; padding: 0; }
.pr-ftr__links a { color: #c9c7c0; }
.pr-ftr__copy, .pr-ftr__company { margin: 0; }
.pr-ftr .site-footer__slot { margin-left: auto; }

/* 8. Section heads: an article number «§ 01» over a rule, the title in
   the serif, the lead beside it on wide screens. */
.pravo .site-main { counter-reset: pr-sec; }
.pravo .cms-section__title { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.4rem); }
.pravo h1.cms-section__title { font-size: clamp(2.5rem, 1.5rem + 4vw, 4.6rem); letter-spacing: -0.02em; }
.pravo .cms-section__subtitle { font-size: var(--t-md); line-height: 1.55; color: var(--c-text-muted); max-width: 40rem; }
.pravo .cms-section__head { margin-block-end: clamp(1.75rem, 1rem + 2.5vw, 3.25rem); }
.pravo .cms-section__head--left {
    counter-increment: pr-sec;
    max-width: none;
    padding-top: var(--s-4);
    border-top: var(--pr-double);
}
.pravo .cms-section__head--left::before {
    content: '§ ' counter(pr-sec, decimal-leading-zero);
    display: block;
    margin-bottom: var(--s-4);
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--pr-accent);
}
@media (min-width: 900px) {
    .pravo .cms-section__head--left:has(.cms-section__subtitle) {
        display: grid;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
        column-gap: var(--s-8);
        align-items: end;
    }
    .pravo .cms-section__head--left::before { grid-column: 1 / -1; }
    .pravo .cms-section__head--left .cms-section__subtitle { margin: 0; padding-bottom: 0.35rem; }
}
.pravo .cms-section__head--left .cms-section__title { max-width: 22ch; }
.pravo .cms-on-dark .cms-section__head--left::before,
.pravo .cms-tone-dark .cms-section__head--left::before { color: #e7b9ae; }

/* 9. Own blocks ------------------------------------------------------------ */

/* 9.1 Hero — the front page */
.pr-hero { background: var(--pr-paper); }
.pr-hero__inner { padding-block: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(2rem, 1rem + 3vw, 3.5rem); }
.pr-hero__dateline {
    margin: 0 0 clamp(1.75rem, 1rem + 3vw, 3.5rem);
    padding-top: 0.8rem;
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pr-ink-2);
}
.pr-hero__grid { display: grid; gap: var(--s-7); align-items: end; }
@media (min-width: 1000px) { .pr-hero__grid { grid-template-columns: minmax(0, 1fr) 19rem; column-gap: clamp(2rem, 1rem + 4vw, 5rem); } }
.pr-hero__title {
    margin: 0;
    font-size: clamp(2.6rem, 1rem + 6.4vw, 6.4rem);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.03em;
    max-width: 15ch;
    hyphens: manual;
}
.pr-hero__lead { margin: var(--s-6) 0 0; max-width: 38rem; font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem); line-height: 1.55; color: var(--pr-ink-2); }
.pr-hero__actions { margin-top: var(--s-6); }
.pr-hero__docket { border-top: var(--pr-double); border-bottom: 1px solid var(--pr-line-2); }
.pr-hero__facts { margin: 0; display: grid; }
.pr-hero__fact { padding: var(--s-4) 0; border-bottom: 1px solid var(--pr-line); }
.pr-hero__fact:last-child { border-bottom: 0; }
.pr-hero__fact-value { font-family: var(--font-display); font-size: clamp(2rem, 1.6rem + 1.4vw, 2.8rem); font-weight: 600; line-height: 1; letter-spacing: -0.02em; color: var(--pr-ink); }
.pr-hero__fact-value::first-letter { color: var(--pr-accent); }
.pr-hero__fact-label { margin: 0.35rem 0 0; font-size: var(--t-sm); color: var(--pr-ink-2); }
.pr-hero__note { margin: 0; padding: var(--s-4) 0; font-family: var(--pr-italic); font-style: italic; font-size: var(--t-sm); color: var(--pr-ink-2); }
.pr-hero__figure { margin: 0 auto; padding-bottom: clamp(2rem, 1rem + 3vw, 3.5rem); }
.pr-hero__media { aspect-ratio: 21 / 8; overflow: hidden; background: var(--pr-sunk); border-radius: var(--pr-r); }
.pr-hero__img { width: 100%; height: 100%; object-fit: cover; }
.pr-hero__caption { display: flex; gap: 0.75rem; margin-top: 0.6rem; padding-top: 0.5rem; border-top: 1px solid var(--pr-line); font-family: var(--pr-italic); font-style: italic; font-size: var(--t-sm); color: var(--pr-ink-3); }
.pr-hero__caption::before { content: '▲'; font-style: normal; font-size: 0.6rem; line-height: 2; color: var(--pr-accent); }
@media (max-width: 700px) {
    .pr-hero__media { aspect-ratio: 4 / 3; }
    .pr-hero__actions .cms-btn { flex: 1 1 100%; }
}

/* 9.2 Partner's letter */
.pr-letter { display: grid; gap: var(--s-7); }
@media (min-width: 900px) { .pr-letter--photo { grid-template-columns: 17rem minmax(0, 1fr); column-gap: clamp(2rem, 1rem + 4vw, 5rem); } }
.pr-letter__author { align-self: start; }
@media (max-width: 899px) { .pr-letter__author { display: grid; grid-template-columns: 6.5rem 1fr; gap: 0 var(--s-4); align-items: end; order: 2; } .pr-letter__photo { grid-row: span 2; } }
.pr-letter__photo { aspect-ratio: 3 / 4; overflow: hidden; background: var(--pr-sunk); border-radius: var(--pr-r); }
.pr-letter__photo img { width: 100%; height: 100%; object-fit: cover; }
.pr-letter__name { margin: var(--s-4) 0 0; font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--c-text-strong); }
.pr-letter__role { margin: 0.25rem 0 0; font-size: 0.75rem; font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-text-faint); }
.pr-letter__title { margin: 0; font-size: clamp(1.8rem, 1.2rem + 2.2vw, 3rem); line-height: 1.12; max-width: 26ch; }
.pr-letter__lead { margin: var(--s-4) 0 0; font-size: var(--t-md); color: var(--c-text-muted); }
.pr-letter__text { margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--c-border-strong); font-size: 1.075rem; line-height: 1.7; color: var(--c-text); }
@media (min-width: 1100px) { .pr-letter__text { columns: 2; column-gap: var(--s-7); column-rule: 1px solid var(--c-border); } }
.pr-letter__text p { margin: 0 0 1em; break-inside: avoid-column; }
.pr-letter__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-4); margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--c-border); }
.pr-letter__sign { margin: 0; font-family: var(--pr-italic); font-style: italic; font-size: 1.35rem; color: var(--c-text-strong); }

/* 9.3 Case register */
.pr-cases__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-text-strong); }
.pr-case {
    display: grid;
    gap: var(--s-3) var(--s-6);
    padding: var(--s-6) 0;
    border-bottom: 1px solid var(--c-border-strong);
}
@media (min-width: 900px) { .pr-case { grid-template-columns: 8rem minmax(0, 1fr) 17rem; align-items: start; } }
.pr-case__docket { margin: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 0.8rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-text-faint); }
@media (min-width: 900px) { .pr-case__docket { flex-direction: column; padding-top: 0.35rem; } }
.pr-case__number { color: var(--c-text-strong); }
.pr-case__category { margin: 0 0 0.4rem; font-size: 0.75rem; font-weight: 650; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pr-accent); }
.pr-case__title { margin: 0; font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.85rem); line-height: 1.18; }
.pr-case__title a { color: inherit; text-decoration: none; }
.pr-case__title a:hover { color: var(--pr-accent); }
.pr-case__text { margin: var(--s-3) 0 0; max-width: 40rem; line-height: 1.6; color: var(--c-text-muted); }
.pr-case__result { padding-left: 0; }
@media (min-width: 900px) { .pr-case__result { padding-left: var(--s-5); border-left: 1px solid var(--c-border); text-align: right; } }
.pr-case__outcome { margin: 0; font-family: var(--pr-italic); font-style: italic; color: var(--c-text-strong); }
.pr-case__amount { margin: 0.35rem 0 0; font-family: var(--font-display); font-size: clamp(1.8rem, 1.4rem + 1.1vw, 2.4rem); font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; color: var(--pr-accent); text-wrap: balance; }
.pr-case__amount-label { margin: 0.3rem 0 0; font-size: var(--t-sm); color: var(--c-text-faint); }
.pr-cases__foot { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); align-items: center; justify-content: space-between; margin-top: var(--s-5); }
.pr-cases__note { margin: 0; max-width: 46rem; font-size: var(--t-xs); line-height: 1.6; color: var(--c-text-faint); }

/* 9.4 What we promise */
.pr-promise__grid { display: grid; gap: var(--pr-gap); }
@media (min-width: 800px) { .pr-promise__grid { grid-template-columns: 1fr 1fr; gap: 0; } }
.pr-promise__col { padding: var(--s-5) 0; border-top: var(--pr-double); }
@media (min-width: 800px) {
    .pr-promise__col--yes { padding-right: var(--s-7); }
    .pr-promise__col--no { padding-left: var(--s-7); border-left: 1px solid var(--c-border-strong); }
}
.pr-promise__title { margin: 0 0 var(--s-4); font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }
.pr-promise__list { list-style: none; margin: 0; padding: 0; }
.pr-promise__item { display: grid; grid-template-columns: 1.4rem 1fr; gap: var(--s-3); padding: 0.8rem 0; border-bottom: 1px solid var(--c-border); font-size: 1.05rem; line-height: 1.5; color: var(--c-text-strong); }
.pr-promise__item .cms-icon { width: 1.15rem; height: 1.15rem; margin-top: 0.2rem; color: var(--pr-accent); }
.pr-promise__col--no .pr-promise__item { color: var(--c-text-muted); }
.pr-promise__col--no .pr-promise__item .cms-icon { color: var(--c-text-faint); }
.pr-promise__note { margin: var(--s-5) 0 0; font-family: var(--pr-italic); font-style: italic; font-size: 1.1rem; color: var(--c-text-strong); }

/* 9.5 Consultation call */
.pr-cta__band {
    position: relative;
    isolation: isolate;
    display: grid;
    gap: var(--s-6);
    padding: clamp(2rem, 1rem + 4vw, 4.5rem) clamp(1.25rem, 0.5rem + 4vw, 4.5rem);
    background: var(--pr-night);
    color: var(--c-text);
    overflow: hidden;
    border-radius: var(--pr-r);
    border-top: 4px solid var(--pr-accent);
}
@media (min-width: 900px) { .pr-cta__band { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; column-gap: var(--s-8); } }
.pr-cta__seal { position: absolute; right: -4rem; bottom: -5rem; z-index: -1; width: 22rem; height: 22rem; color: rgb(246 243 236 / 0.05); --pr-mark-ink: rgb(246 243 236 / 0.08); }
.pr-cta__title { margin: 0; font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.2rem); color: #f6f3ec; }
.pr-cta__lead { margin: var(--s-4) 0 0; max-width: 36rem; font-size: var(--t-md); line-height: 1.55; color: var(--c-text-muted); }
.pr-cta__actions { margin-top: var(--s-6); }
.pr-cta__note { margin: var(--s-4) 0 0; font-size: var(--t-xs); color: var(--c-text-faint); }
.pr-cta__aside { padding-top: var(--s-5); border-top: 3px double rgb(246 243 236 / 0.45); }
@media (min-width: 900px) { .pr-cta__aside { padding: 0 0 0 var(--s-7); border-top: 0; border-left: 1px solid rgb(246 243 236 / 0.2); } }
.pr-cta__price { margin: 0; font-size: clamp(4rem, 2.5rem + 6vw, 7.5rem); font-weight: 700; line-height: 0.9; letter-spacing: -0.04em; color: #f6f3ec; }
.pr-cta__price-note { margin: 0.5rem 0 0; font-family: var(--pr-italic); font-style: italic; color: var(--c-text-muted); }
.pr-cta__phone { margin: var(--s-5) 0 0; }
.pr-cta__phone a { font-family: var(--font-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 600; color: #f6f3ec; text-decoration: none; border-bottom: 1px solid rgb(246 243 236 / 0.4); }
.pr-cta__phone a:hover { border-bottom-color: #fff; }
.pr-cta__phone-note { margin: 0.4rem 0 0; font-size: var(--t-xs); color: var(--c-text-faint); }

/* 10. Shared blocks ---------------------------------------------------------- */

/* 10.1 Services: every icon card is an «article» with a roman numeral; in
   the services_list block (one column) they line up as a table of
   contents with the price at the right margin. */
.pravo .svc-grid { counter-reset: pr-idx; }
.pravo .svc-grid > li { counter-increment: pr-idx; }
.pravo .svc-card--icon {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: var(--s-5) 0 var(--s-4);
    background: transparent;
    border: 0;
    border-top: 1px solid var(--c-text-strong);
    border-radius: 0;
    box-shadow: none;
}
.pravo .svc-card--icon:hover { transform: none; box-shadow: none; border-color: var(--c-text-strong); }
.pravo .svc-card--icon::before {
    content: counter(pr-idx, upper-roman) '.';
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--pr-accent);
    white-space: nowrap;
}
.pravo .svc-card--icon .svc-card__icon { display: none; }
.pravo .svc-card--icon .svc-card__badge { position: static; display: inline-block; margin-bottom: 0.4rem; }
.pravo .svc-card--icon .svc-card__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); margin-top: auto; padding: var(--s-3) 0 0; border: 0; }
.pravo .svc-card__title { font-family: var(--font-display); font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem); font-weight: 600; line-height: 1.2; color: var(--c-text-strong); hyphens: manual; overflow-wrap: normal; }
.pravo .svc-card:hover .svc-card__link { color: var(--pr-accent); }
.pravo .svc-card__text { margin-top: 0.3rem; font-size: 0.95rem; color: var(--c-text-muted); }
.pravo .svc-card__price { display: flex; flex-direction: column; }
.pravo .svc-card__amount { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; color: var(--c-text-strong); white-space: nowrap; }
.pravo .svc-card__unit { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-faint); }
.pravo .svc-card__arrow { width: 40px; height: 40px; border: 1px solid var(--c-border-strong); border-radius: var(--pr-r); background: transparent; color: var(--c-text-strong); }
.pravo .svc-card:hover .svc-card__arrow { background: var(--pr-accent); border-color: var(--pr-accent); color: #fff; }

.pravo .svc-list--icon .svc-grid { --svc-gap: 0; grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid var(--c-border-strong); }
@media (min-width: 641px) {
    .pravo .svc-list--icon .svc-card--icon {
        display: grid;
        grid-template-columns: 3.4rem minmax(0, 1fr) auto;
        gap: 0.25rem var(--s-5);
        align-items: start;
        padding: var(--s-5) 0;
    }
    .pravo .svc-list--icon .svc-grid > li + li .svc-card--icon { border-top-color: var(--c-border-strong); }
    .pravo .svc-list--icon .svc-card--icon::before { grid-row: span 2; font-size: 1.5rem; }
    .pravo .svc-list--icon .svc-card--icon .svc-card__body { grid-column: 2; }
    .pravo .svc-list--icon .svc-card--icon .svc-card__foot { grid-column: 3; grid-row: 1 / span 2; flex-direction: column; align-items: flex-end; margin: 0; padding: 0.35rem 0 0; }
    .pravo .svc-list--icon .svc-card__price { align-items: flex-end; text-align: right; }
}
.pravo .svc-badge { background: transparent; border: 1px solid var(--pr-accent); color: var(--pr-accent); border-radius: var(--pr-r); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.pravo .svc-card--image,
.pravo .svc-card--compact { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--pr-r); box-shadow: none; }
.pravo .svc-card--image:hover,
.pravo .svc-card--compact:hover { border-color: var(--c-text-strong); box-shadow: none; transform: none; }
.pravo .svc-list__more { margin-top: var(--s-6); }

/* 10.2 Team cards: portrait on a sheet, the name in the serif. */
.pravo .team-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.pravo .team-card--cards .team-card__body { padding: var(--s-4) 0 0; border-top: var(--pr-double); margin-top: var(--s-3); }
.pravo .team-card__photo { border-radius: var(--pr-r); overflow: hidden; background: var(--pr-sunk); }
.pravo .team-card__photo img { transition: filter 500ms var(--ease); }
.pravo .team-card:hover .team-card__photo img { filter: grayscale(0.2); }
.pravo .team-card__name { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.15; color: var(--c-text-strong); }
.pravo .team-card__link { color: inherit; text-decoration: none; }
.pravo .team-card:hover .team-card__link { color: var(--pr-accent); }
.pravo .team-card__position { margin-top: 0.35rem; font-size: 0.72rem; font-weight: 650; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-text-faint); }
.pravo .team-card__meta { color: var(--c-text-muted); font-size: var(--t-sm); }
.pravo .team-card__meta svg { color: var(--pr-accent); }
@media (max-width: 640px) {
    .pravo .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6) var(--s-4); }
    .pravo .team-card__name { font-size: 1.1rem; }
    .pravo .team-card__position { font-size: 0.64rem; letter-spacing: 0.08em; }
}
.pravo .team-card__badge { background: var(--pr-accent); color: #fff; border-radius: var(--pr-r); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }

/* 10.3 Stages: numbered articles on a rule. */
.pravo .cms-stages__item { border-radius: var(--pr-r); }
.pravo .cms-stages__marker { background: var(--pr-paper); border: 1px solid var(--c-text-strong); color: var(--c-text-strong); border-radius: 50%; font-family: var(--font-display); font-weight: 700; }
.pravo .cms-tone-soft .cms-stages__marker { background: var(--pr-sunk); }
.pravo .cms-stages__title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--c-text-strong); }
.pravo .cms-stages__meta { font-size: 0.72rem; font-weight: 650; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pr-accent); }
.pravo .cms-stages__text { color: var(--c-text-muted); }
.pravo .cms-stages__result { font-family: var(--pr-italic); font-style: italic; color: var(--c-text-strong); border-color: var(--c-border); }
.pravo .cms-stages__result-label { font-family: var(--font-ui); font-style: normal; }
.pravo .cms-stages__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.9rem; padding: 0; border: 0; border-radius: 0; background: transparent; }
.pravo .cms-stages__total-label { font-size: 0.72rem; font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-text-faint); }
.pravo .cms-stages__total-value { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; color: var(--pr-accent); }
.pravo .cms-stages--cards .cms-stages__item { background: transparent; border: 0; border-top: 1px solid var(--c-text-strong); box-shadow: none; padding-inline: 0; }

/* 10.4 Pricing table */
.pravo .cms-block--pricing_table { --ptable-yes: var(--pr-accent); }
.pravo .cms-ptable__plan-inner,
.pravo .cms-ptable__card { border-radius: var(--pr-r); box-shadow: none; }
.pravo .cms-ptable__name { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--c-text-strong); }
.pravo .cms-ptable__amount { font-family: var(--font-display); font-size: clamp(1.7rem, 1.4rem + 1vw, 2.3rem); font-weight: 700; letter-spacing: -0.02em; color: var(--c-text-strong); }
.pravo .cms-ptable__period { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-faint); }
.pravo .cms-ptable__old { color: var(--c-text-faint); }
.pravo .cms-ptable__badge { background: var(--pr-accent); color: #fff; border-radius: var(--pr-r); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.pravo .cms-ptable__plan.is-featured .cms-ptable__plan-inner,
.pravo .cms-ptable__card.is-featured { box-shadow: inset 0 3px 0 var(--pr-accent); }
.pravo .cms-ptable__group { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pr-accent); }
.pravo .cms-ptable__feature-title { color: var(--c-text-strong); }
.pravo .cms-ptable__table { border-top: var(--pr-double); }
.pravo .cms-ptable__note { font-family: var(--pr-italic); font-style: italic; color: var(--c-text-muted); }

/* 10.5 Booking */
.pravo .cms-booking__step { border-color: var(--c-border-strong); border-radius: var(--pr-r); }
.pravo .cms-booking__legend { font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; color: var(--c-text-strong); }
.pravo .cms-booking__num { background: transparent; border: 1px solid var(--c-text-strong); color: var(--c-text-strong); font-family: var(--font-display); font-weight: 700; }
.pravo .cms-booking__card,
.pravo .cms-booking__chip { border-radius: var(--pr-r); background: var(--c-surface); }
.pravo .cms-booking__option:has(input:checked) .cms-booking__card,
.pravo .cms-booking__option:has(input:checked) .cms-booking__chip { border-color: var(--pr-accent); box-shadow: inset 0 0 0 1px var(--pr-accent); background: var(--pr-accent-a); }
.pravo .cms-booking__price { font-family: var(--font-display); font-weight: 600; color: var(--pr-accent); }
.pravo .cms-booking__summary { border-radius: var(--pr-r); border-top: 3px solid var(--pr-accent); box-shadow: none; }
.pravo .cms-booking__summary-title { font-family: var(--font-display); font-weight: 600; }

/* 10.6 Reviews, FAQ, map, stats, lead form */
.pravo .cms-review--card { background: transparent; border: 0; border-top: var(--pr-double); border-radius: 0; box-shadow: none; padding-inline: 0; }
.pravo .cms-review__text { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.5; color: var(--c-text-strong); }
.pravo .cms-review__name { color: var(--c-text-strong); font-weight: 650; }
.pravo .cms-review__initial { background: var(--pr-night); color: #f6f3ec; font-family: var(--font-display); font-weight: 700; border-radius: 50%; }
.pravo .cms-rating-summary__value { font-family: var(--font-display); font-weight: 700; color: var(--c-text-strong); }
.pravo .cms-review svg,
.pravo .cms-rating-summary svg { color: var(--pr-accent); }

.pravo .cms-faq__item { border-color: var(--c-border-strong); }
.pravo .cms-faq__question { font-family: var(--font-display); font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); font-weight: 600; color: var(--c-text-strong); }
.pravo .cms-faq__question:hover { color: var(--pr-accent); }
.pravo .cms-faq__toggle { color: var(--pr-accent); }
.pravo .cms-faq__answer { color: var(--c-text-muted); }

.pravo .cms-map__canvas { border-radius: var(--pr-r); overflow: hidden; }
.pravo .cms-map__canvas--grey iframe { filter: grayscale(1) contrast(1.05); }
.pravo .cms-map__card { background: var(--c-surface); border: 1px solid var(--c-border); border-top: 3px solid var(--pr-ink); border-radius: var(--pr-r); box-shadow: none; }
.pravo .cms-map__title { font-family: var(--font-display); font-weight: 600; font-size: 1.6rem; color: var(--c-text-strong); }
.pravo .cms-map__rows svg { color: var(--pr-accent); }

.pravo .cms-stats__value,
.pravo .cms-stat__value { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.02em; color: var(--c-text-strong); }
.pravo .cms-stat__suffix { margin-left: 0.2em; font-size: 0.6em; color: var(--pr-accent); }
.pravo .cms-stat { border-top: var(--pr-double); border-radius: 0; background: transparent; box-shadow: none; }

.pravo .cms-leadform__box.cms-card { background: var(--c-surface); border: 1px solid var(--c-border-strong); border-top: 3px solid var(--pr-accent); border-radius: var(--pr-r); box-shadow: none; }
.pravo .cms-leadform__title { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem); }
.pravo .cms-leadform__bullets svg { color: var(--pr-accent); }

.pravo .cms-card { border-radius: var(--pr-r); }

/* 11. Module pages: Services and Team inherit the tokens; hero bands get
   the double rule, prices and numbers the serif. */
.pravo .svc-hero,
.pravo .team-page__head { border-bottom: var(--pr-double); }
.pravo .svc-hero__title,
.pravo .team-page__title,
.pravo .team-profile__name { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.025em; line-height: 1.02; }
.pravo .svc-page h1,
.pravo .team-page h1 { font-size: clamp(2.2rem, 1.4rem + 2.8vw, 3.8rem); hyphens: manual; overflow-wrap: normal; word-break: normal; }
.pravo .svc-crumbs,
.pravo .team-crumbs { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; }
.pravo .svc-h2,
.pravo .team-sec__title { font-family: var(--font-display); font-weight: 600; }
.pravo .svc-fact__value,
.pravo .svc-row__amount,
.pravo .svc-pack__amount,
.pravo .svc-includes__amount,
.pravo .team-facts__value,
.pravo .team-prices__price { font-family: var(--font-display); font-weight: 600; color: var(--c-text-strong); }
.pravo .svc-step__num,
.pravo .svc-steps__num { background: transparent; border: 1px solid var(--c-text-strong); color: var(--c-text-strong); border-radius: 50%; font-family: var(--font-display); font-weight: 700; }
.pravo .svc-benefit__icon { color: var(--pr-accent); background: transparent; border: 1px solid var(--c-border-strong); border-radius: var(--pr-r); }
.pravo .svc-row { border-color: var(--c-border-strong); }
.pravo .svc-prose,
.pravo .team-sec__prose { font-size: 1.075rem; line-height: 1.7; }
html.pravo[data-pravo-dropcap="on"] .svc-about .svc-prose > p:first-child::first-letter,
html.pravo[data-pravo-dropcap="on"] .team-profile__main .team-sec__prose > p:first-child::first-letter {
    float: left;
    margin: 0.06em 0.12em 0 0;
    font-family: var(--font-display);
    font-size: 3.6em;
    font-weight: 700;
    line-height: 0.82;
    color: var(--pr-accent);
}
.pravo .team-quote { font-family: var(--pr-italic); font-style: italic; font-size: 1.3rem; line-height: 1.5; color: var(--c-text-strong); border-left: 3px solid var(--pr-accent); }
.pravo .team-profile__position { font-size: 0.8rem; font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pr-accent); }
.pravo .team-profile__badge,
.pravo .team-tag--mark { background: var(--pr-accent); color: #fff; border-radius: var(--pr-r); }
.pravo .team-chip,
.pravo .team-tag { border-radius: var(--pr-r); }
.pravo .team-bookcard { border-radius: var(--pr-r); border-top: 3px solid var(--pr-accent); box-shadow: none; }
.pravo .team-filter__chip { border-radius: var(--pr-r); }
.pravo .team-filter__chip[aria-current="true"],
.pravo .team-filter__chip.is-active { background: var(--pr-ink); color: var(--pr-paper); border-color: var(--pr-ink); }

/* 12. Variants --------------------------------------------------------------- */

/* Paper */
html.pravo[data-pravo-paper="ivory"] { --pr-paper: #f5f0e5; --pr-sunk: #ebe4d5; --pr-sheet: #fbf8f1; }
html.pravo[data-pravo-paper="ink"] {
    --pr-paper: #0f141c;
    --pr-sunk: #161c27;
    --pr-sheet: #1b2230;
    --pr-ink: #f3f0e8;
    --pr-ink-2: #c9c7c0;
    --pr-ink-3: #9da1aa;
    --pr-line: rgb(243 240 232 / 0.14);
    --pr-line-2: rgb(243 240 232 / 0.32);
    --pr-night: #070a10;
    --pr-accent-2: color-mix(in srgb, var(--pr-accent) 80%, #fff);
    --c-link: color-mix(in srgb, var(--pr-accent) 55%, #fff);
    --c-mark-text: color-mix(in srgb, var(--pr-accent) 55%, #fff);
    color-scheme: dark;
}
html.pravo[data-pravo-paper="ink"] .pr-kicker,
html.pravo[data-pravo-paper="ink"] .pr-case__category,
html.pravo[data-pravo-paper="ink"] .cms-section__head--left::before,
html.pravo[data-pravo-paper="ink"] .pr-hdr .hdr-row--top .hdr-text,
html.pravo[data-pravo-paper="ink"] .pr-hdr .hdr-row--top .hdr-text svg,
html.pravo[data-pravo-paper="ink"] .pr-case__amount,
html.pravo[data-pravo-paper="ink"] .svc-card--icon::before,
html.pravo[data-pravo-paper="ink"] .pr-hero__fact-value::first-letter,
html.pravo[data-pravo-paper="ink"] .pr-dropcap > p:first-child::first-letter,
html.pravo[data-pravo-paper="ink"] .pr-promise__item .cms-icon { color: color-mix(in srgb, var(--pr-accent) 50%, #fff); }
html.pravo[data-pravo-paper="ink"] .svc-badge { border-color: color-mix(in srgb, var(--pr-accent) 50%, #fff); color: color-mix(in srgb, var(--pr-accent) 40%, #fff); }
html.pravo[data-pravo-paper="ink"] .pr-logo .pr-mark { --pr-mark-ink: #0f141c; }

/* Photos */
html.pravo[data-pravo-photos="muted"] { --pr-photo-filter: grayscale(0.55) contrast(1.02) sepia(0.08); }
html.pravo[data-pravo-photos="natural"] { --pr-photo-filter: none; }

/* Section numbers */
html.pravo[data-pravo-numbers="off"] .cms-section__head--left::before { content: none; }
html.pravo[data-pravo-numbers="off"] .svc-card--icon::before { content: none; }
@media (min-width: 641px) {
    html.pravo[data-pravo-numbers="off"] .svc-list--icon .svc-card--icon { grid-template-columns: minmax(0, 1fr) auto; }
    html.pravo[data-pravo-numbers="off"] .svc-list--icon .svc-card--icon .svc-card__body { grid-column: 1; }
    html.pravo[data-pravo-numbers="off"] .svc-list--icon .svc-card--icon .svc-card__foot { grid-column: 2; }
}

/* Drop cap */
html.pravo[data-pravo-dropcap="off"] .pr-dropcap > p:first-child::first-letter { float: none; margin: 0; font: inherit; color: inherit; }

/* Rules */
html.pravo[data-pravo-rules="single"] { --pr-rule-w: 1px; --pr-rule-s: solid; }
html.pravo[data-pravo-rules="none"] { --pr-rule-w: 0px; --pr-rule-s: none; }
html.pravo[data-pravo-rules="none"] .pr-hdr .hdr-row--main { border-bottom: 1px solid var(--pr-line); }
html.pravo[data-pravo-rules="none"] .cms-section__head--left { padding-top: 0; }

/* Header: classic one line; ink bar */
html.pravo[data-pravo-header="classic"] .pr-hdr .hdr-row--main { border-bottom: 1px solid var(--pr-line-2); }
html.pravo[data-pravo-header="ink"] .pr-hdr.site-header { background: var(--pr-night); color: #f3f0e8; }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-row--top { border-bottom-color: rgb(246 243 236 / 0.14); color: #c9c7c0; }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-row--top .hdr-text,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-row--top .hdr-text svg { color: #e7b9ae; }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-row--main { border-bottom: 3px solid var(--pr-accent); }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-logo,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-nav__link,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-phone__number,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-burger,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-icon-btn { color: #f3f0e8; }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-logo__tagline { color: #a9acb4; }
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-nav__link:hover,
html.pravo[data-pravo-header="ink"] .pr-hdr .hdr-nav__link[aria-current="page"] { color: #e7b9ae; box-shadow: none; }
html.pravo[data-pravo-header="ink"] .pr-hdr .pr-logo .pr-mark { --pr-mark-ink: var(--pr-night); }

/* Density */
html.pravo[data-pravo-density="compact"] { --sp-sm: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem); --sp-md: clamp(2.5rem, 2rem + 2.5vw, 3.75rem); --sp-lg: clamp(3.25rem, 2.5rem + 3.5vw, 4.75rem); --pr-gap: 0.75rem; }
html.pravo[data-pravo-density="airy"] { --sp-sm: clamp(2.5rem, 2rem + 3vw, 4rem); --sp-md: clamp(4.5rem, 3rem + 5vw, 7.5rem); --sp-lg: clamp(6rem, 4rem + 8vw, 10rem); --pr-gap: clamp(1.25rem, 0.8rem + 2vw, 2.75rem); }

/* 13. Motion */
@media (prefers-reduced-motion: reduce) {
    .pravo .team-card__photo img,
    .pravo .cms-btn { transition: none; }
}
@media (prefers-reduced-motion: no-preference) {
    .pr-hero__title { animation: pr-in 800ms var(--ease) both; }
    .pr-hero__docket { animation: pr-in 800ms 120ms var(--ease) both; }
}
@keyframes pr-in { from { opacity: 0; transform: translateY(14px); } }
