/* =========================================================================
   «Пульс» — a fitness club or studio.

   Bold athletic: near-black stage, one electric accent (red-orange by
   default), condensed italic capitals, diagonal cuts on photos and bands,
   slanted motion stripes and running tickers. 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 — Roboto Condensed and Oswald ship with the template (OFL,
   licences in assets/fonts); Unbounded, Inter, Manrope and Onest are the
   parent's. The italic is the browser's slant of the upright cut. */
@font-face { font-family: 'Puls Condensed'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/roboto-condensed-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: 'Puls Condensed'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/roboto-condensed-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: 'Puls Oswald'; font-style: normal; font-display: swap; font-weight: 200 700; src: url(../fonts/oswald-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: 'Puls Oswald'; font-style: normal; font-display: swap; font-weight: 200 700; src: url(../fonts/oswald-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: 'Puls Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url(/themes/default/assets/fonts/unbounded-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: 'Puls Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url(/themes/default/assets/fonts/unbounded-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: 'Puls 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: 'Puls 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: 'Puls 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: 'Puls 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; }
@font-face { font-family: 'Puls 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: 'Puls 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; }

/* 2. The owner's design settings (theme.json → design.controls). Core
   prints the chosen values as :root{--puls-…} after this file. */
:root {
    --puls-accent: #ff4b1f;
    --puls-font-display: 'Puls Condensed', 'Roboto Condensed', 'Arial Narrow', Impact, sans-serif;
    --puls-font-body: 'Puls Inter', 'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
    --puls-radius: 0px;
}

/* 3. Tokens. The stage is black; `.cms-tone-soft` is one step lighter, the
   dark tone is pure black, primary/accent tones are the accent fill. */
html.puls {
    --pl-0: #0a0a0b;
    --pl-1: #121214;
    --pl-2: #1a1a1d;
    --pl-3: #26262a;
    --pl-line: rgb(255 255 255 / 0.1);
    --pl-line-2: rgb(255 255 255 / 0.22);
    --pl-ink: #f3f3ef;
    --pl-ink-2: #b4b4ae;
    --pl-ink-3: #8a8a85;
    --pl-accent: var(--puls-accent);
    --pl-accent-2: color-mix(in srgb, var(--pl-accent) 78%, #fff);
    --pl-accent-a: color-mix(in srgb, var(--pl-accent) 16%, transparent);
    --pl-on-accent: #0a0a0b;
    --pl-r: var(--puls-radius);
    --pl-skew: -12deg;
    --pl-cut: clamp(28px, 6vw, 88px);
    --pl-cut-sm: 22px;
    --pl-stripe: repeating-linear-gradient(115deg, transparent 0 18px, color-mix(in srgb, var(--pl-accent) 55%, transparent) 18px 22px);
    --pl-gap: clamp(1rem, 0.6rem + 1.4vw, 1.75rem);

    --paper: var(--pl-0);
    --c-bg: var(--pl-0);
    --c-surface: var(--pl-2);
    --c-surface-sunk: var(--pl-1);
    --c-text: var(--pl-ink);
    --c-text-strong: #fff;
    --c-text-muted: var(--pl-ink-2);
    --c-text-faint: var(--pl-ink-3);
    --c-border: var(--pl-line);
    --c-border-strong: var(--pl-line-2);
    --c-accent: var(--pl-accent);
    --c-accent-hover: var(--pl-accent-2);
    --c-accent-soft: var(--pl-accent-a);
    --c-accent-contrast: var(--pl-on-accent);
    --c-link: var(--pl-accent-2);
    --c-link-hover: #fff;
    --c-mark: var(--pl-accent);
    --c-mark-text: var(--pl-accent-2);
    --c-mark-soft: var(--pl-accent-a);
    --c-slab: #000;
    --c-slab-text: #fff;
    --c-slab-muted: var(--pl-ink-2);
    --c-danger: #ff6b6b;
    --c-success: #7ee08a;

    --font-ui: var(--puls-font-body);
    --font-display: var(--puls-font-display);
    --font-prose: var(--puls-font-body);
    --fw-heading: 800;
    --tr-tight: -0.01em;
    --tr-snug: 0;
    --r-xs: min(var(--pl-r), 3px);
    --r-sm: var(--pl-r);
    --r-md: var(--pl-r);
    --r-lg: var(--pl-r);
    --r-btn: var(--pl-r);
    --card-radius: var(--pl-r);
    --card-bg: var(--pl-2);
    --card-border: 1px solid var(--pl-line);
    --w-container: 72rem;
    --w-wide: 84rem;
    --shadow-lift: 0 24px 60px -24px rgb(0 0 0 / 0.8);
    color-scheme: dark;
}

/* Graphite: a softer stage. */
html.puls[data-puls-surface="graphite"] {
    --pl-0: #17181b;
    --pl-1: #1f2024;
    --pl-2: #28292e;
    --pl-3: #33353b;
}

/* Light: white stage, black type, the accent stays loud. */
html.puls[data-puls-surface="light"] {
    --pl-0: #f5f5f1;
    --pl-1: #eaeae4;
    --pl-2: #ffffff;
    --pl-3: #dcdcd4;
    --pl-line: rgb(10 10 11 / 0.12);
    --pl-line-2: rgb(10 10 11 / 0.26);
    --pl-ink: #151517;
    --pl-ink-2: #4b4b50;
    --pl-ink-3: #6c6c70;
    --c-text-strong: #0a0a0b;
    --c-link: color-mix(in srgb, var(--pl-accent) 70%, #000);
    --c-link-hover: #0a0a0b;
    --c-mark-text: color-mix(in srgb, var(--pl-accent) 70%, #000);
    color-scheme: light;
}

.puls .cms-tone-soft { --section-bg: var(--pl-1); --c-bg: var(--pl-1); --c-surface: var(--pl-2); }
.puls .cms-tone-dark,
.puls .cms-on-dark {
    --c-bg: #000; --c-surface: #151517; --c-surface-sunk: #0d0d0e;
    --c-text: #f3f3ef; --c-text-strong: #fff; --c-text-muted: #b4b4ae; --c-text-faint: #8a8a85;
    --c-border: rgb(255 255 255 / 0.12); --c-border-strong: rgb(255 255 255 / 0.26);
    --c-link: var(--pl-accent-2); --c-link-hover: #fff;
    color-scheme: dark;
}
.puls .cms-tone-dark { --section-bg: #000; }
.puls .cms-tone-primary,
.puls .cms-tone-accent {
    --section-bg: var(--pl-accent);
    --c-bg: var(--pl-accent); --c-surface: color-mix(in srgb, var(--pl-accent) 85%, #000);
    --c-text: #0a0a0b; --c-text-strong: #000; --c-text-muted: rgb(10 10 11 / 0.78); --c-text-faint: rgb(10 10 11 / 0.6);
    --c-border: rgb(10 10 11 / 0.2); --c-border-strong: rgb(10 10 11 / 0.4);
    --c-accent: #0a0a0b; --c-accent-hover: #26262a; --c-accent-contrast: #fff;
    --c-link: #000; --c-link-hover: #000;
}
.puls .cms-on-light {
    --c-bg: #f5f5f1; --c-surface: #fff; --c-surface-sunk: #eaeae4;
    --c-text: #151517; --c-text-strong: #0a0a0b; --c-text-muted: #4b4b50; --c-text-faint: #6c6c70;
    --c-border: rgb(10 10 11 / 0.12); --c-border-strong: rgb(10 10 11 / 0.26);
    color-scheme: light;
}

/* 4. Base */
html.puls,
.puls body { background: var(--pl-0); color: var(--pl-ink); }
.puls body { font-family: var(--font-ui); -webkit-font-smoothing: antialiased; }
.puls ::selection { background: var(--pl-accent); color: var(--pl-on-accent); }
.puls :focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 3px; }

.pl-display,
.puls h1, .puls h2, .puls h3,
.puls .cms-section__title {
    font-family: var(--font-display);
    font-weight: var(--fw-heading);
    font-style: var(--pl-italic, italic);
    text-transform: var(--pl-caps, uppercase);
    letter-spacing: 0;
    line-height: 0.98;
}
html.puls[data-puls-italic="off"] { --pl-italic: normal; }
html.puls[data-puls-caps="off"] { --pl-caps: none; }
html.puls[data-puls-caps="off"] .pl-display,
html.puls[data-puls-caps="off"] .cms-section__title { line-height: 1.05; }

.pl-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    margin: 0 0 var(--s-4);
    font-family: var(--font-display);
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pl-accent);
}
.pl-eyebrow::before { content: ''; width: 2.2em; height: 3px; background: currentColor; transform: skewX(var(--pl-skew)); }

.pl-tag {
    display: inline-block;
    margin: 0;
    padding: 0.3em 0.9em;
    background: var(--pl-accent);
    color: var(--pl-on-accent);
    font-family: var(--font-display);
    font-size: var(--t-xs);
    font-weight: 800;
    font-style: italic;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transform: skewX(var(--pl-skew));
    border-radius: var(--pl-r);
}

.pl-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--pl-r);
}

.pl-panel {
    background: var(--pl-1);
    border: 1px solid var(--pl-line);
    border-top: 4px solid var(--pl-accent);
    border-radius: var(--pl-r);
    box-shadow: var(--shadow-lift);
}

/* The cut: a parallelogram edge on photos (design setting «Срезы»). */
.pl-cut { clip-path: polygon(var(--pl-cut-x, 0px) 0, 100% 0, calc(100% - var(--pl-cut-x, 0px)) 100%, 0 100%); }
.pl-cut { --pl-cut-x: 28px; }
.pl-stripes { position: absolute; inset: 0; pointer-events: none; background: var(--pl-stripe); opacity: 0.35; }

/* 5. Buttons and forms. The fill is a slanted plate behind the label
   (::before), so the focus ring stays a clear rectangle. */
.puls .cms-btn {
    position: relative;
    isolation: isolate;
    min-height: 50px;
    padding: 0.85rem 1.9rem;
    border: 0;
    border-radius: 0;
    background: none;
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    font-style: var(--pl-italic, italic);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    box-shadow: none;
}
.puls .cms-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: var(--pl-r);
    transform: skewX(var(--pl-skew));
    transition: background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform 180ms var(--ease);
}
.puls .cms-btn--primary { color: var(--c-accent-contrast); }
.puls .cms-btn--primary::before { background: var(--c-accent); }
.puls .cms-btn--primary:hover { background: none; color: var(--c-accent-contrast); }
.puls .cms-btn--primary:hover::before { background: var(--c-accent-hover); transform: skewX(var(--pl-skew)) translateX(3px); }
.puls .cms-btn--ghost { color: var(--c-text-strong); }
.puls .cms-btn--ghost::before { box-shadow: inset 0 0 0 2px var(--c-border-strong); }
.puls .cms-btn--ghost:hover { background: none; color: var(--c-text-strong); }
.puls .cms-btn--ghost:hover::before { box-shadow: inset 0 0 0 2px var(--c-text-strong); }
.puls .cms-btn--link { padding: 0.25rem 0; }
.puls .cms-btn--link::before { content: none; }
.puls .pl-btn-invert { color: var(--pl-accent); }
.puls .pl-btn-invert::before { background: #0a0a0b; }
.puls .pl-btn-invert:hover { color: #fff; }
.puls .pl-btn-invert:hover::before { background: #000; }

.puls .cms-form__label { font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-text-muted); }
.puls .cms-form__input {
    min-height: 50px;
    background: var(--pl-0);
    border: 1px solid var(--c-border-strong);
    border-radius: var(--pl-r);
    color: var(--c-text-strong);
}
.puls .cms-form__input:focus { border-color: var(--pl-accent); outline: none; box-shadow: 0 0 0 3px var(--pl-accent-a); }
.puls .cms-form__input::placeholder { color: var(--pl-ink-3); }
.puls .cms-form__req { color: var(--pl-accent); }
.puls .cms-form__check input { accent-color: var(--pl-accent); }
.puls .cms-form__success { border-left: 4px solid var(--pl-accent); background: var(--pl-accent-a); color: var(--c-text-strong); border-radius: var(--pl-r); }
.puls .cms-form__actions .cms-btn,
.puls .cms-form button[type="submit"] { width: 100%; }

/* 6. Header */
.pl-hdr.site-header {
    position: relative;
    background: var(--pl-0);
    color: var(--pl-ink);
    border-bottom: 1px solid var(--pl-line);
}
.pl-hdr.site-header--sticky { position: sticky; top: 0; z-index: 50; }
.pl-hdr__stripe { display: block; height: 4px; background: linear-gradient(90deg, var(--pl-accent) 0 38%, transparent 38% 40%, var(--pl-accent) 40% 41%, transparent 41%); }
.pl-hdr .hdr-row__inner { max-width: var(--w-wide); }
.pl-hdr .hdr-row--top {
    background: var(--pl-1);
    border-bottom: 1px solid var(--pl-line);
    font-size: var(--t-xs);
    color: var(--pl-ink-2);
}
.pl-hdr .hdr-row--top .hdr-text {
    font-family: var(--font-display);
    font-weight: 800;
    font-style: var(--pl-italic, italic);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pl-accent);
}
.pl-hdr .hdr-row--top .hdr-text svg { color: var(--pl-accent); }
.pl-hdr .hdr-row--top a { color: inherit; }
.pl-hdr .hdr-row--main { min-height: 76px; }
.pl-hdr .hdr-row--main .hdr-row__inner { min-height: 76px; }

.pl-hdr .hdr-logo { color: #fff; gap: 0.6rem; text-decoration: none; }
.pl-hdr .hdr-logo__name,
.pl-drawer .hdr-logo__name,
.pl-ftr .pl-ftr__name {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 900;
    font-style: var(--pl-italic, italic);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1;
}
.pl-logo .pl-mark,
.pl-ftr__mark { width: 44px; height: auto; color: var(--pl-accent); flex: none; }

.pl-hdr .hdr-nav__link {
    font-family: var(--font-display);
    font-size: 0.95rem;
    padding-inline: 0.55rem;
    font-weight: 700;
    font-style: var(--pl-italic, italic);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pl-ink);
}
.pl-hdr .hdr-nav__link:hover,
.pl-hdr .hdr-nav__link.is-active,
.pl-hdr .hdr-nav__link[aria-current="page"] { color: var(--pl-accent); }
.pl-hdr .hdr-nav__link[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--pl-accent); }
.pl-hdr .hdr-sub {
    background: var(--pl-1);
    border: 1px solid var(--pl-line);
    border-top: 3px solid var(--pl-accent);
    border-radius: var(--pl-r);
    box-shadow: var(--shadow-lift);
}
.pl-hdr .hdr-sub__link { color: var(--pl-ink); border-radius: var(--pl-r); }
.pl-hdr .hdr-sub__link:hover { background: var(--pl-accent-a); color: #fff; }
.pl-hdr .hdr-phone__number {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 800;
    font-style: var(--pl-italic, italic);
    letter-spacing: 0.02em;
    color: #fff;
}
.pl-hdr .hdr-phone__caption { color: var(--pl-ink-3); }
.pl-hdr .hdr-button,
.pl-hdr .hdr-el--button .cms-btn { white-space: nowrap; }
.pl-hdr .hdr-burger { color: #fff; }
.pl-hdr .hdr-icon-btn { color: var(--pl-ink); }

.pl-drawer.hdr-drawer { background: var(--pl-0); color: var(--pl-ink); border-left: 4px solid var(--pl-accent); }
.pl-drawer .hdr-dmenu__link {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 800;
    font-style: var(--pl-italic, italic);
    text-transform: uppercase;
    color: var(--pl-ink);
}
.pl-drawer .hdr-drawer__phone { color: #fff; }
.pl-drawer .hdr-drawer__line { color: var(--pl-ink-2); }

/* 7. Footer */
.pl-ftr.site-footer {
    position: relative;
    margin-top: 0;
    background: #000;
    color: var(--pl-ink-2);
    border-top: 0;
    overflow: hidden;
}
.pl-wrap { width: 100%; max-width: var(--w-wide); margin-inline: auto; padding-inline: var(--gutter); }

.pl-ticker {
    position: relative;
    overflow: hidden;
    background: var(--pl-accent);
    color: var(--pl-on-accent);
    white-space: nowrap;
}
.pl-ticker__track { display: flex; width: max-content; animation: pl-run 38s linear infinite; }
.pl-ticker.is-paused .pl-ticker__track,
.pl-ticker:hover .pl-ticker__track { animation-play-state: paused; }
.pl-ticker__group { display: flex; }
.pl-ticker__item {
    display: inline-flex;
    align-items: center;
    gap: 1.4rem;
    padding: 0.85rem 0 0.85rem 1.4rem;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 0.9rem + 1vw, 1.6rem);
    font-weight: 900;
    font-style: var(--pl-italic, italic);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.pl-ticker__item::after { content: '/'; opacity: 0.55; }
@keyframes pl-run { to { transform: translateX(-50%); } }

.pl-ftr__ticker { transform: rotate(-1.6deg); margin: 1.4rem -1rem 0; }
.pl-ftr__band { background: var(--pl-1); border-bottom: 1px solid var(--pl-line); padding-block: var(--s-7); }
.pl-ftr__band-inner { display: grid; gap: var(--s-5); align-items: center; }
@media (min-width: 860px) { .pl-ftr__band-inner { grid-template-columns: 1fr 1.2fr; } }
.pl-ftr__band-title { font-size: var(--t-xl); color: #fff; }
.pl-ftr__main {
    display: grid;
    gap: var(--s-7);
    padding-block: var(--s-8) var(--s-7);
}
@media (min-width: 960px) { .pl-ftr__main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); } }
.pl-ftr__brand { display: inline-flex; align-items: center; gap: 0.6rem; color: #fff; text-decoration: none; }
.pl-ftr__lead { margin-top: var(--s-4); max-width: 30rem; line-height: 1.6; }
.pl-ftr__grid { display: grid; gap: var(--s-6); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.pl-ftr__title {
    margin: 0 0 var(--s-4);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: var(--pl-accent);
}
.pl-ftr__title--about { color: #fff; font-size: var(--t-lg); }
.pl-ftr__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.pl-ftr__menu a { color: var(--pl-ink); text-decoration: none; }
.pl-ftr__menu a:hover { color: var(--pl-accent); }
.pl-ftr__contacts { font-style: normal; display: grid; gap: 0.5rem; }
.pl-ftr__phone a {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 900;
    font-style: var(--pl-italic, italic);
    color: #fff;
    text-decoration: none;
}
.pl-ftr__phone span { display: block; font-size: var(--t-xs); color: var(--pl-ink-3); }
.pl-ftr__line a { color: var(--pl-ink); }
.pl-ftr__line--muted { color: var(--pl-ink-3); }
.pl-ftr__socials { margin-top: var(--s-5); }
.pl-ftr .site-socials__link { background: var(--pl-2); color: #fff; border-radius: var(--pl-r); }
.pl-ftr .site-socials__link:hover { background: var(--pl-accent); color: var(--pl-on-accent); }
.pl-ftr__bottom { border-top: 1px solid var(--pl-line); padding-block: var(--s-5); font-size: var(--t-xs); color: var(--pl-ink-3); }
.pl-ftr__bottom-inner { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); align-items: center; }
.pl-ftr__links { display: flex; flex-wrap: wrap; gap: var(--s-4); list-style: none; margin: 0; padding: 0; }
.pl-ftr__links a { color: var(--pl-ink-2); }
.pl-ftr__copy, .pl-ftr__company { margin: 0; }
.pl-ftr .site-footer__slot { margin-left: auto; }

/* 8. Section heads: left-aligned by the demo, with a slanted accent bar. */
.puls .cms-section__title { font-size: clamp(2.1rem, 1.4rem + 3vw, 4rem); }
.puls h1.cms-section__title { font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.4rem); }
.puls .cms-section__head--left .cms-section__title::before {
    content: '';
    display: block;
    width: 64px;
    height: 6px;
    margin-bottom: 1.1rem;
    background: var(--c-accent);
    transform: skewX(var(--pl-skew));
}
.puls .cms-section__subtitle { font-size: var(--t-md); color: var(--c-text-muted); max-width: 40rem; }
.puls .cms-section__head { max-width: 52rem; margin-block-end: clamp(1.75rem, 1rem + 2.5vw, 3rem); }

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

/* 9.1 Hero */
.pl-hero { position: relative; background: var(--pl-0); overflow: hidden; }
.pl-hero__stage { position: relative; min-height: min(88vh, 820px); display: flex; align-items: stretch; }
.pl-hero__media {
    position: absolute;
    inset: 0 0 0 38%;
    margin: 0;
    --pl-cut-x: 0px;
    clip-path: polygon(var(--pl-hero-cut, 18%) 0, 100% 0, 100% 100%, 0 100%);
    background: linear-gradient(135deg, var(--pl-2), var(--pl-0));
}
.pl-hero__img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.08) saturate(1.05); }
.pl-hero__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgb(10 10 11 / 0.85) 0%, rgb(10 10 11 / 0.1) 45%, rgb(10 10 11 / 0) 70%), linear-gradient(0deg, rgb(10 10 11 / 0.6), transparent 40%);
}
.pl-hero__stripes { z-index: 1; opacity: 0.5; mask-image: linear-gradient(90deg, #000 0 22%, transparent 45%); }
.pl-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--w-wide);
    margin-inline: auto;
    padding: clamp(3rem, 2rem + 5vw, 6.5rem) var(--gutter) clamp(2.5rem, 2rem + 3vw, 4.5rem);
    display: grid;
    gap: var(--s-7);
    align-items: end;
}
@media (min-width: 1000px) { .pl-hero--form .pl-hero__inner { grid-template-columns: minmax(0, 1fr) 380px; } }
.pl-hero__title {
    margin: 0;
    font-size: clamp(3.2rem, 1.6rem + 7.4vw, 8.4rem);
    line-height: 0.88;
    color: #fff;
    text-wrap: balance;
    max-width: 13ch;
    hyphens: manual;
    overflow-wrap: normal;
}
html.puls[data-puls-caps="off"] .pl-hero__title { line-height: 0.95; }
.pl-hero__lead { margin: var(--s-5) 0 0; max-width: 34rem; font-size: var(--t-md); line-height: 1.55; color: var(--pl-ink); }
.pl-hero__actions { margin-top: var(--s-6); }
.pl-hero__stats { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-7); margin: var(--s-7) 0 0; padding-top: var(--s-5); border-top: 1px solid var(--pl-line-2); max-width: 40rem; }
.pl-hero__stat { margin: 0; }
.pl-hero__stat-value {
    font-family: var(--font-display);
    font-size: clamp(2rem, 1.5rem + 2vw, 3.2rem);
    font-weight: 900;
    font-style: var(--pl-italic, italic);
    line-height: 1;
    color: var(--pl-accent);
}
.pl-hero__stat-label { margin: 0.3rem 0 0; font-size: var(--t-sm); color: var(--pl-ink-2); }
.pl-hero__form { position: relative; padding: var(--s-6) var(--s-5) var(--s-5); background: rgb(10 10 11 / 0.92); backdrop-filter: blur(8px); }
.pl-hero__form .pl-tag { position: absolute; top: -14px; left: var(--s-5); }
.pl-hero__form-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 900;
    font-style: var(--pl-italic, italic);
    text-transform: var(--pl-caps, uppercase);
    line-height: 1;
    color: #fff;
}
.pl-hero__form-note { margin: 0.5rem 0 var(--s-4); color: var(--pl-ink-2); font-size: var(--t-sm); }
.pl-hero__form .cms-form { gap: var(--s-3); }
.pl-hero__form .cms-form__field { margin: 0; }
.pl-hero__ticker { transform: none; }
@media (max-width: 999px) {
    .pl-hero__stage { flex-direction: column; min-height: 0; }
    .pl-hero__media { position: relative; inset: auto; height: 62vw; max-height: 460px; clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
    .pl-hero__media::after { background: linear-gradient(0deg, rgb(10 10 11 / 0.9), transparent 55%); }
    .pl-hero__stripes { mask-image: linear-gradient(0deg, #000, transparent 50%); }
    .pl-hero__inner { margin-top: -2.5rem; padding-top: 0; }
    .pl-hero__title { max-width: none; }
}
@media (max-width: 560px) {
    .pl-hero__stats { gap: var(--s-4) var(--s-5); }
    .pl-hero__actions .cms-btn { flex: 1 1 auto; }
}

/* 9.2 Trial band */
.pl-trial__band {
    position: relative;
    isolation: isolate;
    display: grid;
    gap: var(--s-6);
    padding: clamp(2rem, 1.2rem + 4vw, 4.5rem) clamp(1.25rem, 0.5rem + 4vw, 4.5rem);
    background: var(--pl-accent);
    color: var(--pl-on-accent);
    overflow: hidden;
    border-radius: var(--pl-r);
    clip-path: polygon(0 var(--pl-band-cut, 36px), 100% 0, 100% calc(100% - var(--pl-band-cut, 36px)), 0 100%);
}
@media (min-width: 900px) { .pl-trial__band { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr); align-items: center; } }
.pl-trial__stripes { z-index: -1; background: repeating-linear-gradient(115deg, transparent 0 26px, rgb(0 0 0 / 0.08) 26px 30px); opacity: 1; }
.pl-trial__eyebrow { margin: 0; font-family: var(--font-display); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.pl-trial__amount { margin: 0; font-size: clamp(6rem, 3rem + 12vw, 13rem); line-height: 0.85; color: #0a0a0b; letter-spacing: -0.02em; }
.pl-trial__was { margin: 0.4rem 0 0; font-weight: 600; text-decoration: line-through; opacity: 0.75; }
.pl-trial__title { margin: 0; font-size: clamp(2rem, 1.3rem + 2.8vw, 3.6rem); color: #0a0a0b; }
.pl-trial__lead { margin: var(--s-3) 0 0; font-size: var(--t-md); line-height: 1.5; color: rgb(10 10 11 / 0.85); max-width: 36rem; }
.pl-trial__steps { list-style: none; margin: var(--s-5) 0 0; padding: 0; display: grid; gap: var(--s-3); }
@media (min-width: 640px) { .pl-trial__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pl-trial__step { display: grid; gap: 0.2rem; padding: var(--s-3) var(--s-4); background: rgb(10 10 11 / 0.1); border-left: 3px solid #0a0a0b; }
.pl-trial__num { font-family: var(--font-display); font-weight: 900; font-style: italic; font-size: 1.4rem; line-height: 1; }
.pl-trial__step-title { font-weight: 800; }
.pl-trial__step-text { font-size: var(--t-sm); color: rgb(10 10 11 / 0.8); }
.pl-trial__actions { margin-top: var(--s-5); }
.pl-trial__note { margin: var(--s-3) 0 0; font-size: var(--t-xs); color: rgb(10 10 11 / 0.72); }

/* 9.3 Zones */
.pl-zones__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pl-gap); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
@media (min-width: 900px) {
    .pl-zones__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 15rem; }
    .pl-zone--lead { grid-column: span 2; grid-row: span 2; }
    .pl-zones__grid--many .pl-zone:nth-child(n+6):nth-last-child(-n+2) { grid-column: span 2; }
    .pl-zone:nth-child(6):last-child { grid-column: span 4; }
}
.pl-zone { position: relative; min-height: 15rem; overflow: hidden; }
.pl-zone__media { position: absolute; inset: 0; margin: 0; background: linear-gradient(135deg, var(--pl-2), var(--pl-3)); }
.pl-zone__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.pl-zone:hover .pl-zone__media img { transform: scale(1.05); }
.pl-zone__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / 0.88), rgb(0 0 0 / 0.1) 60%); }
.pl-zone__body { position: absolute; inset: auto 0 0; padding: var(--s-5) calc(var(--s-5) + 14px); color: #fff; }
.pl-zone__num { font-family: var(--font-display); font-weight: 900; font-style: italic; color: var(--pl-accent); font-size: 1rem; }
.pl-zone__title { margin: 0.2rem 0 0; font-size: clamp(1.25rem, 0.95rem + 0.8vw, 1.6rem); color: #fff; overflow-wrap: anywhere; hyphens: auto; }
.pl-zone--lead .pl-zone__title { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); }
.pl-zone__area { display: inline-block; margin: 0.5rem 0 0; padding: 0.15em 0.6em; background: var(--pl-accent); color: var(--pl-on-accent); font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.pl-zone__text { margin: 0.5rem 0 0; font-size: var(--t-sm); color: rgb(255 255 255 / 0.82); max-width: 28rem; }

/* 9.4 Results */
.pl-results__top { display: grid; gap: var(--pl-gap); align-items: stretch; }
@media (min-width: 900px) { .pl-results__top { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.pl-results__media { margin: 0; min-height: 18rem; background: var(--pl-2); }
.pl-results__media img { width: 100%; height: 100%; object-fit: cover; }
.pl-results__stats { margin: 0; display: grid; gap: 0; align-content: center; }
.pl-results__stat { padding: var(--s-5) 0; border-bottom: 1px solid var(--c-border); }
.pl-results__stat:first-child { padding-top: 0; }
.pl-results__value { margin: 0; font-size: clamp(3rem, 2rem + 4vw, 5.5rem); line-height: 0.9; color: var(--c-accent); }
.pl-results__label { margin: 0.4rem 0 0; color: var(--c-text-muted); font-size: var(--t-md); }
.pl-results__stories { list-style: none; margin: var(--pl-gap) 0 0; padding: 0; display: grid; gap: var(--pl-gap); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.pl-story { position: relative; padding: var(--s-6) var(--s-5) var(--s-5); border-top: 4px solid var(--c-accent); }
.pl-story__result { margin: 0; font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); line-height: 1; color: var(--c-text-strong); }
.pl-story__period { margin: 0.3rem 0 0; font-weight: 700; color: var(--c-accent); text-transform: uppercase; letter-spacing: 0.06em; font-size: var(--t-xs); }
.pl-story__text { margin: var(--s-4) 0 0; color: var(--c-text); line-height: 1.55; }
.pl-story__who { margin: var(--s-4) 0 0; padding-top: var(--s-3); border-top: 1px solid var(--c-border); display: flex; flex-wrap: wrap; gap: 0.2rem 0.6rem; font-size: var(--t-sm); color: var(--c-text-muted); }
.pl-story__who strong { color: var(--c-text-strong); }
.pl-results__note { margin: var(--s-5) 0 0; font-size: var(--t-xs); color: var(--c-text-faint); }

/* 9.5 App entry */
.pl-app { display: grid; gap: var(--s-7); align-items: center; }
@media (min-width: 900px) { .pl-app { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.pl-app__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-4); counter-reset: pl; }
.pl-app__step { display: grid; grid-template-columns: 3.4rem 1fr; gap: 0.15rem var(--s-4); align-items: start; }
.pl-app__num {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 3.4rem;
    height: 3.4rem;
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 900;
    font-style: italic;
    color: var(--pl-on-accent);
    background: var(--c-accent);
    clip-path: polygon(18% 0, 100% 0, 82% 100%, 0 100%);
}
.pl-app__step-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 800; font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); color: var(--c-text-strong); line-height: 1.1; }
.pl-app__step-text { color: var(--c-text-muted); }
.pl-app__features { list-style: none; margin: var(--s-6) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pl-app__features li { padding: 0.4rem 0.9rem; border: 1px solid var(--c-border-strong); font-size: var(--t-sm); border-radius: var(--pl-r); }
.pl-app__stores { margin-top: var(--s-6); }
.pl-app__visual { position: relative; margin-bottom: 1rem; }
.pl-app__media { margin: 0; aspect-ratio: 4 / 3; background: var(--pl-2); }
.pl-app__media img { width: 100%; height: 100%; object-fit: cover; }
.pl-app__qr {
    position: absolute;
    right: clamp(0.5rem, 3vw, 2rem);
    bottom: -1rem;
    width: clamp(9rem, 7rem + 6vw, 12rem);
    padding: 0.9rem 0.9rem 0.7rem;
    background: #fff;
    color: #0a0a0b;
    box-shadow: var(--shadow-lift);
    border-bottom: 5px solid var(--pl-accent);
    border-radius: var(--pl-r);
}
.pl-app__visual:not(:has(.pl-app__media)) .pl-app__qr { position: static; }
.pl-app__qr img, .pl-app__pattern { display: block; width: 100%; height: auto; }
.pl-app__qr-caption { margin: 0.5rem 0 0; font-size: var(--t-xs); font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: 0.06em; }

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

/* 10.1 Services list (directions): tall photo tiles, text over a gradient. */
.puls .svc-grid { --svc-gap: var(--pl-gap); }
.puls .svc-list--image .svc-grid > li { display: flex; }
.puls .svc-card--image {
    position: relative;
    min-height: 26rem;
    padding: 0;
    background: var(--pl-2);
    border: 0;
    border-radius: var(--pl-r);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    box-shadow: none;
}
.puls .svc-card--image .svc-card__media { position: absolute; inset: 0; aspect-ratio: auto; margin: 0; border-radius: 0; }
.puls .svc-card--image .svc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.puls .svc-card--image:hover .svc-card__media img { transform: scale(1.06); }
.puls .svc-card--image .svc-card__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / 0.92) 8%, rgb(0 0 0 / 0.15) 62%); }
.puls .svc-card--image .svc-card__body,
.puls .svc-card--image .svc-card__foot { position: relative; z-index: 1; padding-inline: var(--s-5); }
.puls .svc-card--image .svc-card__body { margin-top: auto; padding-top: var(--s-5); }
.puls .svc-card--image .svc-card__badge { position: absolute; top: var(--s-4); right: var(--s-4); left: auto; }
.puls .svc-card--image .svc-card__foot { margin-top: var(--s-3); padding-bottom: var(--s-5); display: flex; align-items: center; justify-content: space-between; border: 0; }
.puls .svc-card__title { font-family: var(--font-display); font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); font-weight: 900; font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); line-height: 0.98; color: #fff; }
.puls .svc-card__link { color: inherit; text-decoration: none; }
.puls .svc-card__text { color: rgb(255 255 255 / 0.8); }
.puls .svc-card__amount { font-family: var(--font-display); font-weight: 800; font-style: italic; font-size: 1.2rem; color: var(--pl-accent); }
.puls .svc-card__unit { color: rgb(255 255 255 / 0.7); }
.puls .svc-card__arrow { display: grid; place-items: center; width: 44px; height: 44px; background: var(--pl-accent); color: var(--pl-on-accent); clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%); }
.puls .svc-badge { background: var(--pl-accent); color: var(--pl-on-accent); border-radius: 0; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; transform: skewX(var(--pl-skew)); }
.puls .svc-card__badge { z-index: 2; }
.puls .svc-card--icon,
.puls .svc-card--compact { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--pl-r); }
.puls .svc-card--icon .svc-card__title,
.puls .svc-card--compact .svc-card__title { color: var(--c-text-strong); }
.puls .svc-card--icon .svc-card__text { color: var(--c-text-muted); }
.puls .svc-card__icon { color: var(--pl-accent); background: var(--pl-accent-a); border-radius: var(--pl-r); }
.puls .svc-list__more { margin-top: var(--s-6); }

/* 10.2 Schedule: black day columns, the class as a slab with an accent edge. */
.puls .cms-schedule__filter { gap: 0.5rem; margin-bottom: var(--s-5); }
.puls .cms-schedule__chip {
    min-height: 44px;
    padding: 0.5rem 1.2rem;
    border: 1px solid var(--c-border-strong);
    border-radius: var(--pl-r);
    background: transparent;
    color: var(--c-text);
    font-family: var(--font-display);
    font-weight: 700;
    font-style: var(--pl-italic, italic);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: var(--pl-r);
}
.puls .cms-schedule__chip[aria-pressed="true"] { background: var(--pl-accent); border-color: var(--pl-accent); color: var(--pl-on-accent); }
.puls .cms-schedule__week { gap: 6px; }
.puls .cms-schedule__day { background: var(--pl-0); border: 1px solid var(--c-border); border-radius: var(--pl-r); padding: 0; }
.puls .cms-schedule__day.is-today { border-color: var(--pl-accent); box-shadow: inset 0 3px 0 var(--pl-accent); }
.puls .cms-schedule__day-title {
    margin: 0;
    padding: 0.8rem 0.9rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #fff;
    border-bottom: 1px solid var(--c-border);
    letter-spacing: 0.04em;
}
.puls .cms-schedule__day.is-today .cms-schedule__day-title { color: var(--pl-accent); }
.puls .cms-schedule__list { padding: 0.5rem; gap: 0.5rem; }
.puls .cms-schedule__item {
    padding: 0.7rem 0.75rem;
    background: var(--pl-2);
    border: 0;
    border-left: 3px solid var(--c-border-strong);
    border-radius: var(--pl-r);
}
.puls .cms-schedule__item.is-highlight { border-left-color: var(--pl-accent); background: linear-gradient(90deg, var(--pl-accent-a), var(--pl-2) 70%); }
.puls .cms-schedule__time { font-family: var(--font-display); font-weight: 800; font-style: italic; font-size: 1.05rem; color: var(--pl-accent); }
.puls .cms-schedule__time svg { display: none; }
.puls .cms-schedule__title { font-family: var(--font-ui); font-style: normal; text-transform: none; font-size: 0.95rem; font-weight: 700; color: #fff; line-height: 1.25; }
.puls .cms-schedule__meta { color: var(--pl-ink-2); font-size: var(--t-xs); }
.puls .cms-schedule__category { background: transparent; border: 1px solid var(--c-border-strong); color: var(--pl-ink-2); border-radius: var(--pl-r); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; }
.puls .cms-schedule__note { color: var(--pl-accent-2); font-weight: 700; font-size: var(--t-xs); }
.puls .cms-schedule__none { color: var(--pl-ink-3); padding: 0.8rem 0.9rem; }
html.puls[data-puls-surface="light"] .cms-schedule__day-title,
html.puls[data-puls-surface="light"] .cms-schedule__title { color: var(--c-text-strong); }

/* 10.3 Pricing table */
.puls .cms-ptable__plan-inner,
.puls .cms-ptable__card { border-radius: var(--pl-r); }
.puls .cms-ptable__name { font-family: var(--font-display); font-size: 1.6rem; font-weight: 900; font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); color: var(--c-text-strong); }
.puls .cms-ptable__amount { font-family: var(--font-display); font-size: clamp(2rem, 1.6rem + 1.4vw, 2.8rem); font-weight: 900; font-style: italic; color: var(--c-text-strong); letter-spacing: -0.01em; }
.puls .cms-ptable__period { color: var(--c-text-muted); }
.puls .cms-ptable__old { color: var(--c-text-faint); }
.puls .cms-ptable__badge { background: var(--pl-accent); color: var(--pl-on-accent); border-radius: 0; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; transform: skewX(var(--pl-skew)); }
.puls .cms-ptable__plan.is-featured .cms-ptable__plan-inner,
.puls .cms-ptable__card.is-featured { background: var(--pl-accent); color: var(--pl-on-accent); --c-text-strong: #0a0a0b; --c-text-muted: rgb(10 10 11 / 0.75); --c-text-faint: rgb(10 10 11 / 0.6); --c-accent: #0a0a0b; --c-accent-hover: #26262a; --c-accent-contrast: #fff; --c-border: rgb(10 10 11 / 0.2); }
.puls .cms-ptable__plan.is-featured .cms-ptable__badge,
.puls .cms-ptable__card.is-featured .cms-ptable__badge { background: #0a0a0b; color: var(--pl-accent); }
.puls .cms-ptable__group { font-family: var(--font-display); font-weight: 800; font-style: var(--pl-italic, italic); text-transform: uppercase; letter-spacing: 0.1em; color: var(--pl-accent); }
.puls .cms-block--pricing_table { --ptable-yes: var(--pl-accent); }
.puls .cms-ptable__badge { border-radius: var(--pl-r); }
.puls .cms-ptable__note { color: var(--c-text-faint); }

/* 10.4 Team cards: photo with the name over a black gradient, cut corner. */
.puls .team-card { border-radius: var(--pl-r); background: var(--pl-2); border: 0; overflow: hidden; }
.puls .team-card--overlay .team-card__body { background: linear-gradient(0deg, rgb(0 0 0 / 0.92) 20%, transparent); padding: var(--s-6) var(--s-5) var(--s-5); }
.puls .team-card__photo img { filter: grayscale(0.35) contrast(1.08); transition: filter 400ms var(--ease), transform 600ms var(--ease); }
.puls .team-card:hover .team-card__photo img { filter: none; transform: scale(1.04); }
.puls .team-card__name { font-family: var(--font-display); font-size: 1.7rem; font-weight: 900; font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); line-height: 1; color: #fff; }
.puls .team-card__link { color: inherit; text-decoration: none; }
.puls .team-card__position { color: var(--pl-accent-2); font-weight: 600; }
.puls .team-card__meta { color: rgb(255 255 255 / 0.72); }
.puls .team-card__badge { background: var(--pl-accent); color: var(--pl-on-accent); border-radius: 0; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; transform: skewX(var(--pl-skew)); }
.puls .team-card--cards .team-card__name,
.puls .team-card--round .team-card__name { color: var(--c-text-strong); }

/* 10.5 Reviews, FAQ, map, stats, lead form, booking */
.puls .cms-review--card { background: var(--c-surface); border: 1px solid var(--c-border); border-top: 4px solid var(--pl-accent); border-radius: var(--pl-r); }
.puls .cms-review__text { color: var(--c-text); font-size: var(--t-md); line-height: 1.55; }
.puls .cms-review__name { color: var(--c-text-strong); font-weight: 800; }
.puls .cms-review__initial { background: var(--pl-accent); color: var(--pl-on-accent); font-family: var(--font-display); font-style: italic; font-weight: 900; border-radius: 0; clip-path: polygon(18% 0, 100% 0, 82% 100%, 0 100%); }
.puls .cms-rating-summary__value { font-family: var(--font-display); font-style: italic; font-weight: 900; color: var(--pl-accent); }
.puls .cms-review svg, .puls .cms-rating-summary svg { color: var(--pl-accent); }

.puls .cms-faq__item { border-color: var(--c-border); }
.puls .cms-faq__question { font-family: var(--font-display); font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem); font-weight: 800; font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); letter-spacing: 0.01em; color: var(--c-text-strong); }
.puls .cms-faq__question:hover { color: var(--pl-accent); }
.puls .cms-faq__toggle { color: var(--pl-accent); }
.puls .cms-faq__answer { color: var(--c-text-muted); }

.puls .cms-map__canvas { border-radius: var(--pl-r); overflow: hidden; }
.puls .cms-map__canvas--grey iframe { filter: grayscale(1) invert(0.92) contrast(0.9); }
.puls .cms-map__card { background: var(--pl-1); border: 1px solid var(--c-border); border-left: 4px solid var(--pl-accent); border-radius: var(--pl-r); }
.puls .cms-map__title { font-family: var(--font-display); font-style: var(--pl-italic, italic); text-transform: var(--pl-caps, uppercase); font-weight: 900; font-size: 1.8rem; color: var(--c-text-strong); }
.puls .cms-map__rows svg { color: var(--pl-accent); }

.puls .cms-stats__value,
.puls .cms-stat__value { font-family: var(--font-display); font-style: var(--pl-italic, italic); font-weight: 900; color: var(--pl-accent); }

.puls .cms-leadform__box.cms-card { background: var(--pl-0); border: 1px solid var(--c-border); border-top: 4px solid var(--pl-accent); border-radius: var(--pl-r); }
.puls .cms-leadform__title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.4rem); }
.puls .cms-leadform__bullets svg { color: var(--pl-accent); }

.puls .cms-booking { --c-surface: var(--pl-1); }
.puls .cms-booking fieldset,
.puls .cms-booking__step { border-color: var(--c-border); border-radius: var(--pl-r); }
.puls .cms-booking legend,
.puls .cms-booking__legend { font-family: var(--font-display); font-style: var(--pl-italic, italic); font-weight: 900; text-transform: var(--pl-caps, uppercase); color: var(--c-text-strong); }
.puls .cms-booking input[type="radio"]:checked + *,
.puls .cms-booking label:has(input:checked) { border-color: var(--pl-accent); box-shadow: inset 0 0 0 1px var(--pl-accent); }

.puls .cms-card { border-radius: var(--pl-r); }

/* 11. Module pages: Services and Team inherit the tokens; headings and
   hero bands get the athletic treatment. */
.puls .svc-hero,
.puls .team-hero { background: var(--pl-1); border-bottom: 4px solid var(--pl-accent); }
.puls .svc-price,
.puls .team-price { font-family: var(--font-display); font-style: italic; font-weight: 900; color: var(--pl-accent); }
.puls .svc-step__num,
.puls .svc-steps__num { background: var(--pl-accent); color: var(--pl-on-accent); border-radius: 0; font-family: var(--font-display); font-style: italic; font-weight: 900; }
.puls .svc-page h1,
.puls .team-page h1 { font-size: clamp(2.2rem, 1.3rem + 3vw, 4rem); line-height: 0.95; overflow-wrap: normal; word-break: normal; hyphens: manual; }

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

/* Cuts */
html.puls[data-puls-cut="soft"] { --pl-hero-cut: 8%; --pl-band-cut: 14px; }
html.puls[data-puls-cut="soft"] .pl-cut { --pl-cut-x: 12px; }
html.puls[data-puls-cut="none"] { --pl-hero-cut: 0%; --pl-band-cut: 0px; --pl-skew: 0deg; }
html.puls[data-puls-cut="none"] .pl-cut { --pl-cut-x: 0px; }
html.puls[data-puls-cut="none"] .pl-app__num,
html.puls[data-puls-cut="none"] .svc-card__arrow,
html.puls[data-puls-cut="none"] .cms-review__initial { clip-path: none; }
@media (max-width: 999px) { html.puls[data-puls-cut="none"] .pl-hero__media { clip-path: none; } }

/* Stripes */
html.puls[data-puls-stripes="off"] .pl-stripes,
html.puls[data-puls-stripes="off"] .pl-hdr__stripe { display: none; }
html.puls[data-puls-stripes="off"] .pl-ticker { display: none; }

/* Header */
html.puls[data-puls-header="accent"] .pl-hdr .hdr-row--top { background: var(--pl-accent); color: var(--pl-on-accent); border-bottom: 0; }
html.puls[data-puls-header="accent"] .pl-hdr .hdr-row--top .hdr-text,
html.puls[data-puls-header="accent"] .pl-hdr .hdr-row--top .hdr-text svg { color: var(--pl-on-accent); }
html.puls[data-puls-header="accent"] .pl-hdr__stripe { display: none; }
html.puls[data-puls-header="accent"] .pl-hdr .hdr-row--main { border-bottom: 3px solid var(--pl-accent); }
html.puls[data-puls-header="light"] .pl-hdr.site-header { background: #f5f5f1; color: #151517; border-bottom-color: rgb(10 10 11 / 0.12); }
html.puls[data-puls-header="light"] .pl-hdr .hdr-row--top { background: #eaeae4; color: #4b4b50; border-bottom-color: rgb(10 10 11 / 0.1); }
html.puls[data-puls-header="light"] .pl-hdr .hdr-logo,
html.puls[data-puls-header="light"] .pl-hdr .hdr-nav__link,
html.puls[data-puls-header="light"] .pl-hdr .hdr-phone__number,
html.puls[data-puls-header="light"] .pl-hdr .hdr-burger,
html.puls[data-puls-header="light"] .pl-hdr .hdr-icon-btn { color: #0a0a0b; }
html.puls[data-puls-header="light"] .pl-hdr .hdr-sub { background: #fff; }
html.puls[data-puls-header="light"] .pl-hdr .hdr-sub__link { color: #151517; }
html.puls[data-puls-header="light"] .pl-hdr .hdr-sub__link:hover { color: #0a0a0b; }
html.puls[data-puls-header="light"] .pl-hdr .cms-btn--ghost { color: #0a0a0b; }
html.puls[data-puls-header="light"] .pl-logo .pl-mark { --pl-mark-ink: #f5f5f1; }

/* Light surface: dark type on the photo tiles stays white (they sit on black gradients). */
html.puls[data-puls-surface="light"] .pl-hero { background: #0a0a0b; }
html.puls[data-puls-surface="light"] .pl-hero { --c-text-strong: #fff; --c-border-strong: rgb(255 255 255 / 0.3); }
html.puls[data-puls-surface="light"] .pl-hero__form { color: #f3f3ef; --c-text-muted: #b4b4ae; --c-text-strong: #fff; }
html.puls[data-puls-surface="light"] .pl-hero__form .cms-form__input { background: #0a0a0b; color: #fff; }
html.puls[data-puls-surface="light"] .cms-schedule__day { background: #fff; }
html.puls[data-puls-surface="light"] .cms-schedule__item { background: var(--pl-1); }

/* Density */
html.puls[data-puls-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.5rem, 2.5rem + 4vw, 5rem); --pl-gap: 0.75rem; }
html.puls[data-puls-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); --pl-gap: clamp(1.25rem, 0.8rem + 2vw, 2.5rem); }

/* 13. Motion */
@media (prefers-reduced-motion: reduce) {
    .pl-ticker__track { animation: none; }
    .pl-zone__media img,
    .puls .svc-card--image .svc-card__media img,
    .puls .team-card__photo img,
    .puls .cms-btn::before { transition: none; }
}
@media (prefers-reduced-motion: no-preference) {
    .pl-hero__title { animation: pl-in 700ms var(--ease) both; }
    .pl-hero__stripes { animation: pl-slide 1.2s var(--ease) both; }
}
@keyframes pl-in { from { opacity: 0; transform: translateX(-24px) skewX(-4deg); } }
@keyframes pl-slide { from { transform: translateX(-12%); opacity: 0; } }
