/* =========================================================================
   «Эстетика» — a template for cosmetology clinics with a home care shop.

   Mineral porcelain and hairlines, thin large headlines, captions set like
   lines on a lab label, photos in capsules like ampoules and small round
   texture photos. Calm, clinical-premium, no ornaments beyond a droplet.

   1. Fonts             5. Header            9. Shared blocks re-dressed
   2. Design settings   6. Footer           10. Phones and motion
   3. Tokens and tones  7. Kit: label, capsule, orb, chips, drop line
   4. Type, buttons     8. Own blocks
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Fonts — self-hosted: Cormorant Garamond and JetBrains Mono
   (assets/fonts, OFL), the parent's Manrope, Inter, Onest, Lora, Unbounded.
   ------------------------------------------------------------------------- */

@font-face { font-family: 'Estetika 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: 'Estetika 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: 'Estetika 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: 'Estetika 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; }
@font-face { font-family: 'Estetika Onest'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('/themes/default/assets/fonts/onest-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Estetika Onest'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('/themes/default/assets/fonts/onest-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Estetika Lora'; font-style: normal; font-display: swap; font-weight: 400 700;
    src: url('/themes/default/assets/fonts/lora-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: 'Estetika Lora'; font-style: normal; font-display: swap; font-weight: 400 700;
    src: url('/themes/default/assets/fonts/lora-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: 'Estetika Lora'; font-style: italic; font-display: swap; font-weight: 400 700;
    src: url('/themes/default/assets/fonts/lora-cyrillic-wght-italic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Estetika Lora'; font-style: italic; font-display: swap; font-weight: 400 700;
    src: url('/themes/default/assets/fonts/lora-latin-wght-italic.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: 'Estetika Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900;
    src: url('/themes/default/assets/fonts/unbounded-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Estetika Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900;
    src: url('/themes/default/assets/fonts/unbounded-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Estetika Cormorant'; font-style: normal; font-display: swap; font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-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: 'Estetika Cormorant'; font-style: normal; font-display: swap; font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-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: 'Estetika Cormorant'; font-style: italic; font-display: swap; font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-cyrillic-wght-italic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Estetika Cormorant'; font-style: italic; font-display: swap; font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-latin-wght-italic.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: 'Estetika Mono'; font-style: normal; font-display: swap; font-weight: 100 800;
    src: url('../fonts/jetbrains-mono-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: 'Estetika Mono'; font-style: normal; font-display: swap; font-weight: 100 800;
    src: url('../fonts/jetbrains-mono-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; }

/* -------------------------------------------------------------------------
   2. Design settings (theme.json → design.controls). Core prints the
   owner's values as :root{--estetika-…} after this file.
   ------------------------------------------------------------------------- */

:root {
    --estetika-accent: #6e5a7e;
    --estetika-powder: #ecdcd2;
    --estetika-font-display: 'Estetika Manrope', 'Manrope', 'Segoe UI', system-ui, sans-serif;
    --estetika-font-body: 'Estetika Inter', 'Inter', 'Segoe UI', system-ui, sans-serif;
    --estetika-font-label: 'Estetika Mono', 'JetBrains Mono', ui-monospace, monospace;
    --estetika-radius: 24px;
}

/* -------------------------------------------------------------------------
   3. Tokens and tones
   ------------------------------------------------------------------------- */

:root:root {
    --es-accent: var(--estetika-accent);
    --es-accent-hi: color-mix(in srgb, var(--es-accent), #ffffff 12%);
    --es-accent-lo: color-mix(in srgb, var(--es-accent), #000000 18%);
    --es-accent-ink: color-mix(in srgb, var(--es-accent), #000000 12%);
    --es-accent-soft: color-mix(in srgb, var(--es-accent) 10%, var(--es-bg));
    --es-powder: var(--estetika-powder);
    --es-powder-soft: color-mix(in srgb, var(--es-powder) 45%, var(--es-bg));
    --es-on-accent: #fbfaf8;
    --es-label: var(--estetika-font-label);

    /* Porcelain — cool mineral white (default). */
    --es-bg: #eef0ee;
    --es-paper: #f9faf9;
    --es-sunk: #e3e7e5;
    --es-line: #d2d9d5;
    --es-line-hi: #b4bfba;
    --es-ink: #1b2321;
    --es-text: #37413e;
    --es-muted: #56625e;
    --es-faint: #6f7a76;
    --es-deep: #1f2527;

    --es-r: var(--estetika-radius);
    --es-shape: 999px;
    --es-hair: 1px solid var(--es-line);

    --c-bg: var(--es-bg);
    --c-surface: var(--es-paper);
    --c-surface-sunk: var(--es-sunk);
    --c-text: var(--es-text);
    --c-text-strong: var(--es-ink);
    --c-text-muted: var(--es-muted);
    --c-text-faint: var(--es-faint);
    --c-border: var(--es-line);
    --c-border-strong: var(--es-line-hi);
    --c-accent: var(--es-accent);
    --c-accent-hover: var(--es-accent-lo);
    --c-accent-contrast: var(--es-on-accent);
    --c-accent-soft: var(--es-accent-soft);
    --c-link: var(--es-accent-ink);
    --c-link-hover: var(--es-ink);
    --c-mark: var(--es-accent);
    --c-mark-text: var(--es-accent-ink);
    --c-mark-soft: var(--es-powder-soft);
    --c-slab: var(--es-deep);
    --c-slab-text: #f4f3f0;
    --c-slab-muted: #b9bec0;
    --c-danger: #b3413a;
    --c-success: #3f7a5a;

    --font-display: var(--estetika-font-display);
    --font-ui: var(--estetika-font-body);
    --font-prose: var(--estetika-font-body);
    --font-mono: var(--estetika-font-label);
    --fw-heading: 300;
    --tr-tight: -0.035em;
    --tr-snug: -0.025em;
    --lh-tight: 1.04;
    --lh-snug: 1.12;
    --t-lg: clamp(1.15rem, 1.05rem + 0.45vw, 1.4rem);
    --t-xl: clamp(1.5rem, 1.15rem + 1.4vw, 2.4rem);
    --t-2xl: clamp(2rem, 1.3rem + 2.8vw, 3.6rem);
    --t-3xl: clamp(2.4rem, 1.3rem + 3.8vw, 4.6rem);

    --r-xs: min(var(--es-r), 8px);
    --r-sm: min(var(--es-r), 12px);
    --r-md: min(var(--es-r), 18px);
    --r-lg: var(--es-r);
    --r-btn: var(--es-r);
    --card-radius: 0px;
    --card-bg: transparent;
    --card-border: 1px solid var(--es-line);
    --card-shadow: none;
    --shadow-sm: none;
    --shadow-md: 0 18px 40px -28px rgb(27 35 33 / 0.35);
    --shadow-lg: 0 30px 60px -34px rgb(27 35 33 / 0.4);
    --shadow-lift: 0 30px 60px -34px rgb(27 35 33 / 0.4);

    --w-container: 76rem;
    --w-wide: 84rem;
    --sp-sm: clamp(2.5rem, 2rem + 2.5vw, 4rem);
    --sp-md: clamp(4.5rem, 3rem + 5vw, 8rem);
    --sp-lg: clamp(5.5rem, 3.5rem + 7vw, 10rem);

    color-scheme: light;
}

html[data-estetika-palette="nude"]:root {
    --es-bg: #f3eee8;
    --es-paper: #fbf8f4;
    --es-sunk: #e9e1d8;
    --es-line: #ddd2c6;
    --es-line-hi: #c4b5a6;
    --es-ink: #2a211c;
    --es-text: #483d35;
    --es-muted: #665950;
    --es-faint: #7d6f65;
    --es-deep: #2b2420;
}

html[data-estetika-palette="sage"]:root {
    --es-bg: #e8ece6;
    --es-paper: #f6f8f4;
    --es-sunk: #dbe2d8;
    --es-line: #c9d3c5;
    --es-line-hi: #aebba9;
    --es-ink: #1c261f;
    --es-text: #3a483e;
    --es-muted: #56655a;
    --es-faint: #6c7a70;
    --es-deep: #1f2a23;
}

html[data-estetika-palette="graphite"]:root {
    --es-bg: #1c1e21;
    --es-paper: #24272b;
    --es-sunk: #151719;
    --es-line: #34383d;
    --es-line-hi: #4a4f55;
    --es-ink: #f2f0ec;
    --es-text: #d2d3d2;
    --es-muted: #a4a8ab;
    --es-faint: #8c9094;
    --es-deep: #111315;
    --es-accent-ink: color-mix(in srgb, var(--es-accent), #ffffff 45%);
    --es-accent-soft: color-mix(in srgb, var(--es-accent) 22%, var(--es-bg));
    --es-powder-soft: color-mix(in srgb, var(--es-powder) 12%, var(--es-bg));
    color-scheme: dark;
}

html.estetika { background-color: var(--es-bg); }

body.es-body {
    background-color: var(--es-bg);
    color: var(--c-text);
    font-family: var(--font-ui);
    font-feature-settings: 'lnum' 1;
    -webkit-font-smoothing: antialiased;
    counter-reset: es-sec;
}

::selection { background: var(--es-powder); color: var(--es-ink); }

/* Tones. The id-level boost keeps the site's generated tones out. */

/* Soft: a white «paper» band between hairlines. */
.cms-tone-soft:not(#es) {
    --section-bg: var(--es-paper);
    --c-bg: var(--es-paper);
    --c-surface: var(--es-bg);
    --card-bg: transparent;
    background-color: var(--es-paper);
    border-block: 1px solid var(--es-line);
}

:is(.cms-tone-dark, .cms-on-dark):not(#es) {
    --section-bg: var(--es-deep);
    --c-bg: var(--es-deep);
    --c-surface: color-mix(in srgb, var(--es-deep), #ffffff 6%);
    --c-text: #cfd3d2;
    --c-text-strong: #f4f3f0;
    --c-text-muted: #a9afae;
    --c-text-faint: #8b9291;
    --c-border: #363d3f;
    --c-border-strong: #4b5355;
    --c-link: var(--es-powder);
    --es-line: #363d3f;
    --es-ink: #f4f3f0;
    --es-text: #cfd3d2;
    --es-muted: #a9afae;
    --es-accent-ink: color-mix(in srgb, var(--es-accent), #ffffff 50%);
    color-scheme: dark;
}
.cms-tone-dark:not(#es) { background-color: var(--es-deep); color: #cfd3d2; }

.cms-tone-primary:not(#es),
.cms-tone-accent:not(#es) {
    --section-bg: var(--es-accent);
    --c-bg: var(--es-accent);
    --c-surface: var(--es-accent-lo);
    --c-text: color-mix(in srgb, #ffffff 86%, var(--es-accent));
    --c-text-strong: #ffffff;
    --c-text-muted: color-mix(in srgb, #ffffff 74%, var(--es-accent));
    --c-border: color-mix(in srgb, #ffffff 26%, transparent);
    --c-accent: #ffffff;
    --c-accent-hover: var(--es-powder);
    --c-accent-contrast: var(--es-accent-lo);
    --c-link: #ffffff;
    background-color: var(--es-accent);
    color-scheme: dark;
}

/* -------------------------------------------------------------------------
   4. Type, buttons, section heads
   ------------------------------------------------------------------------- */

body.es-body :is(h1, h2, h3, h4) {
    font-family: var(--font-display);
    color: var(--c-text-strong);
}

/* Page titles of module pages. */
body.es-body h1:not(.es-hero__title) {
    font-size: clamp(2.2rem, 1.3rem + 3.2vw, 4.2rem);
    font-weight: 300;
    line-height: 1.04;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

/* Section heads: a hairline across, the title on the left, the lead on the
   right and — with «numbers» on — a small protocol number above. */
.cms-section:has(> .cms-section__inner > .cms-section__head) { counter-increment: es-sec; }
.cms-section__head {
    max-width: none;
    margin-block-end: clamp(2.2rem, 1.5rem + 2vw, 3.6rem);
}
.cms-section__head--left {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    column-gap: clamp(2rem, 1rem + 4vw, 6rem);
    align-items: end;
    padding-block-start: 1.1rem;
    border-top: 1px solid var(--c-border);
}
.cms-section__head--left > * { grid-column: 1; }
.cms-section__head--left > .cms-section__subtitle { grid-column: 2; grid-row: 2; margin: 0; }
.cms-section__head--left > .cms-section__title { grid-row: 2; }
.cms-section__head--left::before {
    content: '';
    grid-column: 1 / -1;
    grid-row: 1;
    height: 0;
}
html[data-estetika-numbers="on"] .cms-section__head::before {
    content: counter(es-sec, decimal-leading-zero) ' /';
    display: block;
    height: auto;
    margin-block-end: 1.4rem;
    font-family: var(--es-label);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    color: var(--c-text-muted);
}
.cms-section__head--center {
    max-width: 48rem;
    margin-inline: auto;
}

.cms-section__title {
    font-size: var(--t-2xl);
    font-weight: var(--fw-heading);
    letter-spacing: var(--tr-snug);
    line-height: 1.06;
    text-wrap: balance;
}

.cms-section__subtitle {
    max-width: 36rem;
    color: var(--c-text-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.es-label {
    margin: 0;
    font-family: var(--es-label);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    line-height: 1.45;
    text-transform: uppercase;
    color: var(--c-text-muted);
}

.cms-btn {
    min-height: 52px;
    padding: 0.8rem 1.6rem;
    border-radius: var(--r-btn);
    font-family: var(--font-ui);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.005em;
    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.cms-btn--primary {
    background-color: var(--c-accent);
    color: var(--c-accent-contrast);
    border-color: var(--c-accent);
}
.cms-btn--primary:hover {
    background-color: var(--c-accent-hover);
    border-color: var(--c-accent-hover);
    color: var(--c-accent-contrast);
}
.cms-btn--ghost {
    border: 1px solid color-mix(in srgb, var(--c-text-strong) 35%, transparent);
    color: var(--c-text-strong);
    background: transparent;
}
.cms-btn--ghost:hover {
    border-color: var(--c-text-strong);
    color: var(--c-text-strong);
    background: color-mix(in srgb, var(--c-text-strong) 5%, transparent);
}

:focus-visible { outline-color: var(--es-accent); }

/* Density */
html[data-estetika-density="compact"]:root {
    --sp-sm: clamp(2rem, 1.6rem + 1.6vw, 3rem);
    --sp-md: clamp(3rem, 2.2rem + 3.4vw, 5rem);
    --sp-lg: clamp(4rem, 3rem + 4vw, 6.5rem);
}

/* Forms */
body.es-body .cms-form__input,
body.es-body .cms-calc__number {
    background-color: var(--es-paper);
    border: 1px solid var(--es-line-hi);
    border-radius: var(--r-sm);
    color: var(--c-text-strong);
}
body.es-body .cms-tone-soft :is(.cms-form__input, .cms-calc__number) { background-color: var(--es-bg); }
body.es-body .cms-form__input::placeholder { color: var(--c-text-faint); }
body.es-body :is(.cms-form__input, .cms-calc__number):focus {
    border-color: var(--es-accent);
    outline: 2px solid color-mix(in srgb, var(--es-accent) 25%, transparent);
    outline-offset: 0;
}
body.es-body .cms-form__label {
    font-family: var(--es-label);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--c-text-muted);
}
body.es-body .cms-form__req { color: var(--es-accent); }
body.es-body input[type="checkbox"],
body.es-body input[type="radio"] { accent-color: var(--es-accent); }
body.es-body .cms-form__check { color: var(--c-text-muted); font-size: 0.86rem; }

/* -------------------------------------------------------------------------
   5. Header
   ------------------------------------------------------------------------- */

.es-hdr.site-header {
    background-color: color-mix(in srgb, var(--es-bg) 92%, transparent);
    backdrop-filter: saturate(1.2) blur(14px);
    border-bottom: 0;
    color: var(--es-text);
}

.es-hdr .hdr-row__inner { max-width: var(--w-wide); }

.es-hdr .hdr-row--top {
    background: transparent;
    border-bottom: 1px solid var(--es-line);
    color: var(--es-muted);
    font-family: var(--es-label);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.es-hdr .hdr-row--top .hdr-row__inner { min-height: 2.3rem; }
.es-hdr .hdr-row--top .cms-icon { color: var(--es-accent); width: 0.95rem; height: 0.95rem; }
.es-hdr .hdr-row--top a { color: inherit; }
.es-hdr .hdr-row--top a:hover { color: var(--es-ink); }
.es-hdr .hdr-row--top .hdr-el + .hdr-el::before {
    content: '/';
    margin-inline-end: 1rem;
    color: var(--es-line-hi);
}

.es-hdr .hdr-row--main { position: relative; background: transparent; }
.es-hdr .hdr-row--main .hdr-row__inner { min-height: 5rem; }

.es-drop-line {
    position: relative;
    display: block;
    height: 1px;
    background: var(--es-line);
}
.es-drop-line::after {
    content: '';
    position: absolute;
    inset-inline-start: max(var(--gutter), calc((100% - var(--w-wide)) / 2 + var(--gutter)));
    top: -4px;
    width: 8px;
    height: 8px;
    border-radius: 0 50% 50% 50%;
    background: var(--es-accent);
    transform: rotate(45deg);
}
.es-hdr__line { position: absolute; inset-inline: 0; bottom: 0; }

.es-logo { color: var(--es-ink); gap: 0.75rem; }
.es-logo__mark { width: 1.35rem; height: 2.15rem; color: var(--es-ink); flex: none; }
.es-hdr .hdr-logo__text { gap: 0.2rem; }
.es-hdr .hdr-logo__name,
.es-drawer .hdr-logo__name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 1.4rem;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--es-ink);
}
.es-hdr .hdr-logo__tagline {
    font-family: var(--es-label);
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--es-muted);
}

.es-hdr .hdr-nav__link {
    font-size: 0.92rem;
    font-weight: 450;
    color: var(--es-text);
}
.es-hdr .hdr-nav__link:hover,
.es-hdr .hdr-nav__link.is-active { color: var(--es-ink); }
.es-hdr .hdr-nav__link.is-active { box-shadow: inset 0 -1px 0 var(--es-accent); }
.es-hdr .hdr-nav__toggle { color: var(--es-muted); }

.es-hdr .hdr-sub {
    background: var(--es-paper);
    border: 1px solid var(--es-line);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-lg);
}
.es-hdr .hdr-sub__link { color: var(--es-text); font-size: 0.93rem; border-radius: var(--r-xs); }
.es-hdr .hdr-sub__link:hover { background: var(--es-bg); color: var(--es-ink); }

.es-hdr .hdr-phone__number {
    font-family: var(--es-label);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--es-ink);
}
.es-hdr .hdr-phone__caption { font-size: 0.72rem; color: var(--es-muted); }
.es-hdr .hdr-phone__icon { color: var(--es-accent); }
.es-hdr .hdr-button { min-height: 46px; padding-inline: 1.4rem; }
.es-hdr .hdr-icon-btn,
.es-hdr .shop-hlink { color: var(--es-ink); }
.es-burger { color: var(--es-ink); }

/* «flush» (default): everything in one line, the booking button as a solid
   block of the accent flush to the right edge, the whole height of the bar. */
@media (min-width: 60rem) {
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-row__inner {
        max-width: none;
        padding-inline-end: 0;
        padding-inline-start: max(var(--gutter), calc((100% - var(--w-wide)) / 2 + var(--gutter)));
        align-items: stretch;
    }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-zone { align-items: center; }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-zone--right { align-self: stretch; gap: 1.4rem; }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-row__inner { padding-block: 0; }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-el--button { align-self: stretch; display: flex; order: 9; margin-inline-start: 0.4rem; }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-actions { order: 5; }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-button {
        align-self: stretch;
        min-height: 100%;
        margin: 0;
        padding-inline: clamp(1.6rem, 1rem + 2vw, 3rem);
        border-radius: 0;
        font-size: 0.95rem;
    }
    html:not([data-estetika-header="center"]) .es-hdr .hdr-row--main .hdr-actions:empty { display: none; }

    /* «center»: the logo in the middle, the phone and button on the right,
       the menu on its own line below, between hairlines. */
    html[data-estetika-header="center"] .es-hdr .hdr-row--main .hdr-row__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: center;
        row-gap: 0;
        min-height: 0;
        padding-block-start: 0.9rem;
    }
    html[data-estetika-header="center"] .es-hdr .es-hdr__zone--brand { grid-column: 2; grid-row: 1; justify-content: center; }
    html[data-estetika-header="center"] .es-hdr .es-hdr__zone--brand .es-logo { flex-direction: column; text-align: center; gap: 0.45rem; }
    html[data-estetika-header="center"] .es-hdr .es-hdr__zone--brand .hdr-logo__text { align-items: center; }
    html[data-estetika-header="center"] .es-hdr .hdr-row--main .hdr-zone--right { grid-column: 3; grid-row: 1; justify-content: flex-end; margin: 0; }
    html[data-estetika-header="center"] .es-hdr .es-hdr__zone--nav {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: center;
        margin-block-start: 0.9rem;
        border-top: 1px solid var(--es-line);
        min-height: 3.2rem;
    }
    html[data-estetika-header="center"] .es-hdr .es-hdr__zone--nav :is(.hdr-nav, .hdr-nav__list) { justify-content: center; }
}

.es-drawer.hdr-drawer {
    background: var(--es-paper);
    color: var(--es-text);
    border-left: 1px solid var(--es-line);
}
.es-drawer .hdr-drawer__close { color: var(--es-ink); }
.es-drawer a { color: var(--es-ink); }
.es-drawer .cms-icon { color: var(--es-accent); }

/* -------------------------------------------------------------------------
   6. Footer
   ------------------------------------------------------------------------- */

.es-ftr.site-footer {
    background-color: var(--es-sunk);
    color: var(--es-muted);
    border-top: 0;
    overflow: hidden;
}
.es-ftr.site-footer.cms-tone-dark { background-color: var(--es-deep); }

.es-ftr__mark {
    max-width: var(--w-wide);
    margin: 0 auto;
    padding: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) var(--gutter) 0;
}
.es-ftr__word {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(3.4rem, 1rem + 12vw, 12.5rem);
    font-weight: 200;
    line-height: 0.86;
    letter-spacing: -0.055em;
    color: var(--c-text-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}
.es-ftr__tagline {
    margin: 1rem 0 0;
    font-family: var(--es-label);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--c-text-muted);
}
.es-ftr__line { margin-block-start: clamp(1.6rem, 1rem + 2vw, 2.6rem); }
.es-ftr__line::after { inset-inline-start: 0; }

.es-ftr .site-footer__inner { max-width: var(--w-wide); }
.es-ftr .ftr-col__title {
    font-family: var(--es-label);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--c-text-muted);
}
.es-ftr .ftr-menu__link { color: var(--c-text); }
.es-ftr .ftr-menu__link:hover { color: var(--c-text-strong); }
.es-ftr .ftr-about { color: var(--c-text-muted); line-height: 1.65; max-width: 26rem; }
.es-ftr .ftr-contacts__phone a {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    color: var(--c-text-strong);
}
.es-ftr .ftr-contacts__line { color: var(--c-text); }
.es-ftr .ftr-contacts .cms-icon { color: var(--es-accent); }
.es-ftr__bottom.ftr-bottom {
    border-top: 1px solid var(--c-border);
    font-family: var(--es-label);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    line-height: 1.6;
    color: var(--c-text-muted);
}
.es-ftr__bottom a { color: var(--c-text-muted); }
.es-ftr__bottom a:hover { color: var(--c-text-strong); }

/* -------------------------------------------------------------------------
   7. Kit — capsule, orb, chips, tags, badge
   ------------------------------------------------------------------------- */

html[data-estetika-shape="soft"]:root { --es-shape: calc(var(--es-r) + 8px); }
html[data-estetika-shape="square"]:root { --es-shape: 0px; }

.es-capsule {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--es-shape);
    background: var(--es-powder-soft);
    isolation: isolate;
}
.es-capsule > img,
.es-capsule__img,
.es-capsule__empty {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 4.6;
    object-fit: cover;
}
.es-capsule__empty {
    background:
        radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--es-powder), #ffffff 30%), transparent 60%),
        var(--es-powder-soft);
}

.es-orb {
    margin: 0;
    overflow: hidden;
    border-radius: 50%;
    background: var(--es-powder-soft);
    aspect-ratio: 1;
}
.es-orb__img,
.es-orb > img,
.es-orb__empty { display: block; width: 100%; height: 100%; object-fit: cover; }
.es-orb__empty { background: radial-gradient(circle at 35% 30%, #ffffff, var(--es-powder) 70%); }

.es-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.es-chip {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.45rem 1rem;
    border: 1px solid var(--es-line-hi);
    border-radius: 999px;
    font-size: 0.9rem;
    color: var(--c-text-strong);
    text-decoration: none;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
a.es-chip:hover { background: var(--es-ink); border-color: var(--es-ink); color: var(--es-bg); }

.es-tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    background: var(--es-powder-soft);
    font-family: var(--es-label);
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    color: var(--c-text);
}

.es-badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--es-powder);
    color: #2a211c;
    font-family: var(--es-label);
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
    vertical-align: middle;
}

/* -------------------------------------------------------------------------
   8. Own blocks
   ------------------------------------------------------------------------- */

/* 8.1 First screen */
.es-hero {
    position: relative;
    overflow: hidden;
    background-color: var(--es-bg);
    background-image:
        radial-gradient(ellipse 50% 60% at 82% 30%, color-mix(in srgb, var(--es-powder) 55%, transparent), transparent 70%),
        linear-gradient(to right, transparent calc(50% - 0.5px), color-mix(in srgb, var(--es-line) 60%, transparent) calc(50% - 0.5px), color-mix(in srgb, var(--es-line) 60%, transparent) calc(50% + 0.5px), transparent calc(50% + 0.5px));
}
.es-hero__frame {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: clamp(2rem, 1rem + 4vw, 6rem);
    align-items: center;
    max-width: var(--w-wide);
    margin-inline: auto;
    padding: clamp(3rem, 2rem + 4vw, 6rem) var(--gutter) clamp(3.5rem, 2rem + 4vw, 6rem);
}
.es-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    margin-block-end: 1.8rem;
    color: var(--c-text-strong);
}
.es-hero__eyebrow::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 0 50% 50% 50%;
    background: var(--es-accent);
    transform: rotate(45deg);
    flex: none;
}
.es-hero__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 1.2rem + 4.8vw, 5.9rem);
    font-weight: 250;
    line-height: 1;
    letter-spacing: -0.045em;
    color: var(--es-ink);
    text-wrap: balance;
}
.es-hero__lead {
    max-width: 34rem;
    margin: 1.8rem 0 0;
    font-size: 1.06rem;
    line-height: 1.7;
    color: var(--es-text);
}
.es-hero__actions { margin-block-start: 2.2rem; }
.es-hero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 38rem;
    margin: 2.8rem 0 0;
    border-top: 1px solid var(--es-line-hi);
}
.es-hero__fact { padding: 1rem 1.2rem 0 0; }
.es-hero__fact + .es-hero__fact { padding-inline-start: 1.2rem; border-inline-start: 1px solid var(--es-line); }
.es-hero__fact-value {
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 1.1rem + 0.9vw, 2rem);
    font-weight: 300;
    letter-spacing: -0.03em;
    color: var(--es-ink);
}
.es-hero__fact-label {
    margin: 0.35rem 0 0;
    font-family: var(--es-label);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--es-muted);
}
.es-hero__concerns { margin-block-start: 2.4rem; }
.es-hero__concerns-title { margin-block-end: 0.8rem; }
.es-hero__note {
    margin: 2rem 0 0;
    font-size: 0.78rem;
    color: var(--es-muted);
}
.es-hero__media {
    position: relative;
    width: 100%;
    max-width: 27rem;
    justify-self: center;
    padding-block-end: 2.5rem;
}
.es-hero__photo { box-shadow: var(--shadow-lg); }
.es-hero__orb {
    position: absolute;
    width: 44%;
    left: -18%;
    bottom: 0;
    border: 8px solid var(--es-bg);
    box-shadow: var(--shadow-md);
}
.es-hero__caption {
    position: absolute;
    top: 8%;
    right: -2.4rem;
    writing-mode: vertical-rl;
    font-size: 0.66rem;
}
.es-hero__drop {
    position: absolute;
    top: -1.5rem;
    left: 50%;
    width: 1px;
    height: 3rem;
    background: var(--es-line-hi);
}
.es-hero__drop::after {
    content: '';
    position: absolute;
    left: -4px;
    bottom: -8px;
    width: 9px;
    height: 9px;
    border-radius: 0 50% 50% 50%;
    background: var(--es-accent);
    transform: rotate(45deg);
}
@media (prefers-reduced-motion: no-preference) {
    .es-hero__drop::after { animation: es-drip 4.8s var(--ease) infinite; }
}
@keyframes es-drip {
    0%, 60% { transform: translateY(-4px) rotate(45deg); opacity: 0; }
    75% { transform: translateY(0) rotate(45deg); opacity: 1; }
    100% { transform: translateY(0) rotate(45deg); opacity: 1; }
}

/* 8.2 Skin concerns */
.es-concerns { display: grid; gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.es-concerns--aside { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); }
.es-concerns__aside { position: sticky; top: 8rem; display: grid; gap: 1.6rem; justify-items: start; }
.es-concerns__photo { width: min(100%, 17rem); }
.es-concerns__photo .es-capsule__img { aspect-ratio: 3 / 4; }
.es-concerns__text { margin: 0; max-width: 24rem; color: var(--c-text-muted); line-height: 1.7; }
.es-concerns__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--c-border); }
.es-concerns__item { border-top: 1px solid var(--c-border); }
.es-concerns__row {
    display: grid;
    grid-template-columns: 3.2rem minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    padding: 1.6rem 0.4rem;
    color: inherit;
    text-decoration: none;
    transition: background-color var(--dur) var(--ease), padding var(--dur) var(--ease);
}
a.es-concerns__row:hover { background: color-mix(in srgb, var(--es-powder) 30%, transparent); padding-inline: 1rem; }
.es-concerns__num {
    padding-block-start: 0.55rem;
    font-family: var(--es-label);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: var(--c-text-muted);
}
.es-concerns__body { display: grid; gap: 0.5rem; }
.es-concerns__title {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 1.1rem + 0.9vw, 2rem);
    font-weight: 300;
    letter-spacing: -0.025em;
    line-height: 1.15;
    color: var(--c-text-strong);
}
.es-concerns__desc { color: var(--c-text-muted); line-height: 1.6; }
.es-concerns__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-block-start: 0.3rem; }
.es-concerns__arrow {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--c-border-strong);
    border-radius: 50%;
    color: var(--c-text-strong);
    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
a.es-concerns__row:hover .es-concerns__arrow { background: var(--es-accent); border-color: var(--es-accent); color: var(--es-on-accent); transform: rotate(45deg); }

/* 8.3 Procedure prices */
.es-prices { display: grid; gap: clamp(2.4rem, 1.8rem + 2vw, 3.6rem); --es-pcol: 9.5rem; }
.es-prices__head,
.es-prices__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--es-pcol) calc(var(--es-pcol) + 1.5rem) 2.75rem;
    column-gap: 1.2rem;
    align-items: baseline;
}
.es-prices__head { padding-block-end: 0.9rem; border-bottom: 1px solid var(--c-border-strong); }
.es-prices__group-title {
    margin: 0;
    font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.8rem);
    font-weight: 300;
    letter-spacing: -0.02em;
}
.es-prices__col { text-align: end; }
.es-prices__list { margin: 0; padding: 0; list-style: none; }
.es-prices__row {
    align-items: start;
    padding-block: 1.25rem;
    border-bottom: 1px solid var(--c-border);
}
.es-prices__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.7rem;
    margin: 0;
    font-size: 1.08rem;
    font-weight: 500;
    color: var(--c-text-strong);
}
.es-prices__link { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size var(--dur) var(--ease); }
.es-prices__link:hover { background-size: 100% 1px; color: inherit; }
.es-prices__link::after { content: ''; position: absolute; inset: 0; }
.es-prices__row--link { position: relative; transition: background-color var(--dur) var(--ease); }
.es-prices__row--link:hover { background: color-mix(in srgb, var(--es-powder) 25%, transparent); }
.es-prices__text { margin: 0.3rem 0 0; color: var(--c-text-muted); font-size: 0.92rem; line-height: 1.55; }
.es-prices__meta { display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem; margin-block-start: 0.55rem; font-size: 0.66rem; }
.es-prices__meta span { display: inline-flex; align-items: center; gap: 0.35rem; }
.es-prices__meta .cms-icon { width: 0.85rem; height: 0.85rem; color: var(--es-accent); }
.es-prices__cell { display: grid; justify-items: end; margin: 0; text-align: end; }
.es-prices__cell-label { display: none; }
.es-prices__price {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    white-space: nowrap;
    color: var(--c-text-strong);
}
.es-prices__price--course { color: var(--es-accent-ink); }
.es-prices__cell.is-empty .es-prices__price { color: var(--c-text-faint); }
.es-prices__arrow { display: grid; place-items: center; color: var(--c-text-muted); }
.es-prices__arrow .cms-icon { width: 1.1rem; height: 1.1rem; transition: transform var(--dur) var(--ease); }
.es-prices__row--link:hover .es-prices__arrow { color: var(--es-accent); }
.es-prices__row--link:hover .es-prices__arrow .cms-icon { transform: translateX(3px); }
.es-prices__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem 2rem;
}
.es-prices__note { max-width: 42rem; margin: 0; color: var(--c-text-muted); font-size: 0.9rem; line-height: 1.6; }

/* 8.4 Licence and trust */
.es-trust { display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3rem); }
.es-trust__grid { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.es-trust--card .es-trust__grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.es-doc {
    position: relative;
    display: grid;
    gap: 0.9rem;
    padding: clamp(1.8rem, 1.4rem + 1.5vw, 2.8rem);
    background: var(--es-paper);
    border: 1px solid var(--es-line);
    border-radius: min(var(--es-r), 18px);
    box-shadow: var(--shadow-md);
}
.cms-tone-soft .es-doc { background: var(--es-bg); }
.es-doc::before {
    content: '';
    position: absolute;
    inset: 10px;
    border: 1px solid var(--es-line);
    border-radius: max(0px, calc(min(var(--es-r), 18px) - 6px));
    pointer-events: none;
}
.es-doc__seal { width: 3.6rem; height: 3.6rem; color: var(--es-accent); justify-self: end; margin-block-end: -3rem; }
.es-doc__seal svg { width: 100%; height: 100%; }
.es-doc__title {
    margin: 0;
    max-width: 17rem;
    padding-inline-end: 3.4rem;
    font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.8rem);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.es-doc__number { font-size: 0.95rem; color: var(--c-text-strong); letter-spacing: 0.08em; }
.es-doc__text { margin: 0; color: var(--c-text-muted); line-height: 1.6; }
.es-doc__scope { margin: 0; padding-block-start: 0.9rem; border-top: 1px dashed var(--es-line-hi); font-size: 0.92rem; color: var(--c-text); }
.es-doc__link { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; color: var(--es-accent-ink); font-weight: 500; }
.es-doc__link .cms-icon { width: 1.1rem; height: 1.1rem; }
.es-trust__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--c-border);
}
.es-trust__item { padding: 1.4rem 1.4rem 1.5rem 0; border-bottom: 1px solid var(--c-border); }
.es-trust__item:nth-child(even) { padding-inline: 1.4rem 0; border-inline-start: 1px solid var(--c-border); }
.es-trust__icon {
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    margin-block-end: 0.9rem;
    border-radius: 50%;
    background: var(--es-powder-soft);
    color: var(--es-accent-ink);
}
.es-trust__icon .cms-icon { width: 1.15rem; height: 1.15rem; }
.es-trust__title { margin: 0; font-family: var(--font-ui); font-size: 1rem; font-weight: 600; color: var(--c-text-strong); }
.es-trust__text { margin: 0.4rem 0 0; color: var(--c-text-muted); font-size: 0.93rem; line-height: 1.6; }
.es-trust__docs { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.es-trust__doc {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 48px;
    padding: 0.55rem 1.1rem;
    border: 1px solid var(--c-border-strong);
    border-radius: 999px;
    color: var(--c-text-strong);
    text-decoration: none;
    font-size: 0.92rem;
}
a.es-trust__doc:hover { border-color: var(--es-accent); color: var(--es-accent-ink); }
.es-trust__doc .cms-icon { width: 1rem; height: 1rem; color: var(--es-accent); }
.es-trust__doc-meta { font-size: 0.62rem; }
.es-trust__disclaimer {
    margin: 0;
    padding-block-start: 1.2rem;
    border-top: 1px solid var(--c-border);
    font-size: 0.8rem;
    line-height: 1.6;
    color: var(--c-text-muted);
}

/* 8.5 Home care routine */
.es-regimen { display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3rem); }
.es-regimen__intro { max-width: 40rem; margin: 0; color: var(--c-text-muted); font-size: 1.02rem; line-height: 1.7; }
.es-regimen__steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--es-steps, 4), minmax(0, 1fr));
    gap: clamp(1rem, 0.5rem + 2vw, 2.2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.es-regimen__steps::before {
    content: '';
    position: absolute;
    inset-inline: 0;
    top: calc(2.3rem + min(4.8rem, 8vw));
    height: 1px;
    background: var(--c-border-strong);
}
.es-regimen__step { position: relative; display: grid; gap: 0.7rem; align-content: start; }
.es-regimen__top { display: flex; justify-content: space-between; gap: 0.5rem; min-height: 1.3rem; }
.es-regimen__moment { color: var(--es-accent-ink); }
.es-regimen__orb {
    position: relative;
    width: min(9.6rem, 16vw);
    margin-block: 0.3rem 0.6rem;
    border: 6px solid var(--c-bg, var(--es-bg));
    box-shadow: 0 0 0 1px var(--c-border);
}
.es-regimen__title { margin: 0; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.55rem); font-weight: 300; letter-spacing: -0.02em; }
.es-regimen__text { margin: 0; color: var(--c-text-muted); font-size: 0.93rem; line-height: 1.6; }
.es-regimen__product {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    min-height: 44px;
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--es-accent-ink);
}
.es-regimen__product .cms-icon { width: 1rem; height: 1rem; transition: transform var(--dur) var(--ease); }
a.es-regimen__product:hover .cms-icon { transform: translateX(3px); }
.es-regimen__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; }
.es-regimen__note { margin: 0; font-family: var(--es-label); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-text-muted); }

/* -------------------------------------------------------------------------
   9. Shared blocks re-dressed
   ------------------------------------------------------------------------- */

/* Cards: hairline by default, or a soft filled plate. */
body.es-body .cms-card { border-radius: 0; background: transparent; border: 1px solid var(--c-border); box-shadow: none; }
html[data-estetika-cards="soft"] body.es-body .cms-card {
    border-color: transparent;
    border-radius: var(--es-r);
    background: var(--es-paper);
}
html[data-estetika-cards="soft"] body.es-body .cms-tone-soft .cms-card { background: var(--es-bg); }

/* Before and after: capsule-soft frames, label pills, a thin handle. */
body.es-body .cms-ba { border-radius: min(var(--es-shape), 28px); overflow: hidden; }
body.es-body .cms-ba__label {
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--es-paper) 88%, transparent);
    color: var(--es-ink);
    font-family: var(--es-label);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
body.es-body .cms-ba__handle { background: color-mix(in srgb, #ffffff 90%, transparent); width: 1px; }
body.es-body .cms-ba__knob { background: var(--es-paper); color: var(--es-ink); border: 1px solid var(--es-line); box-shadow: var(--shadow-md); }
body.es-body .cms-ba-item__caption {
    margin-block-start: 0.9rem;
    font-family: var(--es-label);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
    color: var(--c-text-muted);
}

/* Testimonials */
body.es-body .cms-review { border-radius: 0; background: transparent; border: 0; border-top: 1px solid var(--c-border-strong); padding-inline: 0; }
html[data-estetika-cards="soft"] body.es-body .cms-review { border: 0; border-radius: var(--es-r); background: var(--es-bg); padding-inline: 1.6rem; }
body.es-body .cms-review__text { color: var(--c-text-strong); font-family: var(--font-display); font-size: 1.15rem; font-weight: 300; line-height: 1.55; letter-spacing: -0.01em; }
body.es-body .cms-review__initial { border-radius: 50%; background: var(--es-powder); color: #2a211c; font-family: var(--font-display); font-weight: 400; }
body.es-body .cms-review__name { color: var(--c-text-strong); font-weight: 600; }
body.es-body :is(.cms-review__role, .cms-review__source) { font-family: var(--es-label); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-text-muted); }
body.es-body .cms-stars { color: var(--es-accent); }
body.es-body .cms-rating-summary__value { font-family: var(--font-display); font-weight: 300; letter-spacing: -0.03em; color: var(--c-text-strong); }

/* FAQ */
body.es-body .cms-faq__item { border-color: var(--c-border); }
body.es-body .cms-faq__question { font-family: var(--font-display); font-size: 1.15rem; font-weight: 400; letter-spacing: -0.01em; color: var(--c-text-strong); }
body.es-body .cms-faq__question:hover { color: var(--es-accent-ink); }
body.es-body .cms-faq__toggle { color: var(--es-accent); }

/* Stats */
body.es-body :is(.cms-stat__value, .cms-stats__value) { font-family: var(--font-display); font-weight: 200; letter-spacing: -0.04em; color: var(--c-text-strong); }
body.es-body :is(.cms-stat__label, .cms-stats__label) { font-family: var(--es-label); letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.72rem; color: var(--c-text-muted); }

/* Stages (first visit) */
body.es-body :is(.cms-stages__num, .cms-stage__num) { font-family: var(--es-label); background: var(--es-paper); color: var(--es-ink); border: 1px solid var(--es-line-hi); }
body.es-body :is(.cms-stages__title, .cms-stage__title) { font-family: var(--font-display); font-weight: 400; letter-spacing: -0.01em; }
body.es-body :is(.cms-stages__duration, .cms-stage__duration) { font-family: var(--es-label); font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; }

/* Contacts */
body.es-body :is(.cms-contacts__icon, .cms-contact__icon) { color: var(--es-accent-ink); background: var(--es-powder-soft); border-radius: 50%; }

/* "More" links under listings */
body.es-body :is(.svc-more, .team-more, .shop-more, .cms-more, .svc-list__more, .team-block__more, .shop-products-block__more) .cms-btn { min-width: 14rem; }

/* -------------------------------------------------------------------------
   10. Phones and motion
   ------------------------------------------------------------------------- */

@media (max-width: 64rem) {
    .es-hero__frame { grid-template-columns: minmax(0, 1fr) minmax(0, 0.75fr); }
    .es-hero__caption { display: none; }
    .es-prices { --es-pcol: 7.5rem; }
    .es-trust--card .es-trust__grid { grid-template-columns: minmax(0, 1fr); }
    .es-regimen__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.4rem; }
    .es-regimen__steps::before { display: none; }
    .es-regimen__orb { width: min(9rem, 30vw); }
}

@media (max-width: 52rem) {
    .es-hero { background-image: radial-gradient(ellipse 80% 40% at 70% 70%, color-mix(in srgb, var(--es-powder) 55%, transparent), transparent 70%); }
    .es-hero__frame { grid-template-columns: minmax(0, 1fr); padding-block-start: 2rem; }
    .es-hero__media { order: -1; max-width: 19rem; padding-block-end: 1.5rem; }
    .es-hero__photo .es-capsule__img,
    .es-hero__photo .es-capsule__empty { aspect-ratio: 4 / 4.4; }
    .es-hero__orb { width: 36%; left: -6%; }
    .es-hero__drop { display: none; }
    .es-hero__facts { grid-template-columns: minmax(0, 1fr); }
    .es-hero__fact,
    .es-hero__fact + .es-hero__fact { display: flex; align-items: baseline; gap: 0.9rem; padding: 0.8rem 0; border-inline-start: 0; border-bottom: 1px solid var(--es-line); }
    .es-hero__fact-label { margin: 0; }

    .cms-section__head--left { grid-template-columns: minmax(0, 1fr); }
    .cms-section__head--left > .cms-section__subtitle { grid-column: 1; grid-row: 3; margin-block-start: 1rem; }

    .es-concerns--aside { grid-template-columns: minmax(0, 1fr); }
    .es-concerns__aside { position: static; grid-template-columns: 7rem minmax(0, 1fr); align-items: center; column-gap: 1.2rem; }
    .es-concerns__photo { grid-row: span 2; width: 7rem; }
    .es-concerns__aside .cms-actions { grid-column: 1 / -1; }
    .es-concerns__row { grid-template-columns: 2.2rem minmax(0, 1fr) auto; padding-block: 1.3rem; }

    .es-prices__head { grid-template-columns: minmax(0, 1fr); }
    .es-prices__head .es-prices__col { display: none; }
    .es-prices__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 1.5rem; row-gap: 0.8rem; }
    .es-prices__name { grid-column: 1 / -1; }
    .es-prices__cell { justify-items: start; text-align: start; }
    .es-prices__cell-label { display: block; font-size: 0.6rem; }
    .es-prices__price { font-size: 1.05rem; white-space: normal; }
    .es-prices__arrow { align-self: end; }

    .es-trust__items { grid-template-columns: minmax(0, 1fr); }
    .es-trust__item,
    .es-trust__item:nth-child(even) { padding-inline: 0; border-inline-start: 0; }
}

@media (max-width: 40rem) {
    .es-hero__title { font-size: clamp(2.2rem, 1.2rem + 6.5vw, 3rem); }
    .es-hero__actions .cms-btn { flex: 1 1 100%; }
    .es-regimen__steps { grid-template-columns: minmax(0, 1fr); }
    .es-regimen__step { grid-template-columns: 6rem minmax(0, 1fr); column-gap: 1.1rem; align-items: start; }
    .es-regimen__top { grid-column: 1 / -1; }
    .es-regimen__orb { grid-row: span 3; width: 6rem; margin: 0; }
    .es-regimen__step > :not(.es-regimen__top, .es-regimen__orb) { grid-column: 2; }
    .es-ftr__word { font-size: clamp(3rem, 17vw, 5rem); }
}

@media (max-width: 59.99rem) {
    .es-hdr .hdr-row--main .hdr-row__inner { min-height: 4.2rem; }
    .es-hdr .hdr-row--top { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .es-concerns__row,
    .es-concerns__arrow,
    .es-prices__arrow .cms-icon,
    .es-chip { transition: none; }
}
