/* =========================================================================
   Сад Проект — a landscape design studio theme (child of Default).

   ART DIRECTION
   A studio, not a nursery. Deep conifer green and sand stone, with one
   brass line as the only accent. The page is warm paper (sand), dark bands
   are the green, light bands are pale stone. Nothing is rounded except the
   arch of the first screen: structure comes from hairline rules, big
   margins and the numbered sections of a printed monograph.

   Type: Cormorant Garamond (display, set large and light, with italics for
   the emphasised word) over Onest for text and interface. Headings are
   sentence case — never upper case.

   The site's own design settings (/design.css, loaded before this file)
   are outranked with :root:root and :not(#sp), so the theme keeps its
   character on any site it is switched on for.
   ========================================================================= */

@font-face {
    font-family: 'Sadproekt Cormorant';
    font-style: normal;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-cyrillic-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Sadproekt Cormorant';
    font-style: normal;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Sadproekt Cormorant';
    font-style: italic;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-cyrillic-wght-italic.woff2') format('woff2-variations');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Sadproekt Cormorant';
    font-style: italic;
    font-display: swap;
    font-weight: 300 700;
    src: url('../fonts/cormorant-garamond-latin-wght-italic.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Alternatives offered in the design settings (files of the Default theme). */
@font-face {
    font-family: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt Playfair';
    font-style: normal;
    font-display: swap;
    font-weight: 400 900;
    src: url('../fonts/playfair-display-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: 'Sadproekt Playfair';
    font-style: normal;
    font-display: swap;
    font-weight: 400 900;
    src: url('../fonts/playfair-display-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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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: 'Sadproekt 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;
}

/* The owner's design settings (theme.json → design.controls). Core prints
   the chosen values as :root{--sadproekt-…} after this file, so these are only
   the defaults; the tokens below derive from them. */
:root {
    --sadproekt-accent: #b8975a;
    --sadproekt-font-display: 'Sadproekt Cormorant', 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --sadproekt-font-body: 'Sadproekt Onest', 'Segoe UI', Arial, system-ui, sans-serif;
    --sadproekt-radius: 0px;
}

/* -------------------------------------------------------------------------
   1. Tokens
   ------------------------------------------------------------------------- */

:root:root {
    --sp-forest: #1c372b;
    --sp-forest-deep: #12251c;
    --sp-forest-soft: #2a4a3a;
    --sp-paper: #efe8d9;
    --sp-paper-2: #e6ddca;
    --sp-card: #f8f4ea;
    --sp-ink: #1d2721;
    --sp-ink-soft: #55604f;
    --sp-line: #cfc4aa;
    --sp-brass: var(--sadproekt-accent);
    --sp-brass-deep: color-mix(in srgb, var(--sp-brass), #000000 32%);
    --sp-brass-soft: color-mix(in srgb, var(--sp-brass) 26%, var(--sp-paper));
    --sp-r: var(--sadproekt-radius);

    --c-bg: var(--sp-paper);
    --c-surface: var(--sp-card);
    --c-surface-sunk: var(--sp-paper-2);
    --c-text: var(--sp-ink);
    --c-text-strong: #101a14;
    --c-text-muted: var(--sp-ink-soft);
    --c-text-faint: #7d8574;
    --c-border: var(--sp-line);
    --c-border-strong: var(--sp-ink);
    --c-accent: var(--sp-forest);
    --c-accent-hover: var(--sp-forest-soft);
    --c-accent-contrast: #f4efe2;
    --c-accent-soft: var(--sp-brass-soft);
    --c-link: var(--sp-forest);
    --c-link-hover: #000;
    --c-mark: var(--sp-brass);
    --c-mark-text: var(--sp-brass-deep);
    --c-mark-soft: var(--sp-brass-soft);
    --c-slab: var(--sp-forest);
    --c-slab-text: #f1ebdb;
    --c-slab-muted: #b9c2b0;

    --font-display: var(--sadproekt-font-display);
    --font-ui: var(--sadproekt-font-body);
    --font-prose: var(--font-ui);
    --fw-heading: 500;
    --tr-tight: -0.01em;
    --tr-snug: 0;
    --lh-tight: 1;
    --lh-snug: 1.08;
    --t-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
    --t-xl: clamp(2.3rem, 1.7rem + 2.6vw, 3.9rem);
    --t-2xl: clamp(2.8rem, 1.9rem + 4vw, 5.2rem);
    --t-3xl: clamp(3.2rem, 2rem + 5.6vw, 7rem);

    --r-xs: var(--sp-r);
    --r-sm: var(--sp-r);
    --r-md: var(--sp-r);
    --r-lg: var(--sp-r);
    --r-pill: var(--sp-r);
    --r-btn: 2px;
    --card-radius: var(--sp-r);
    --card-bg: var(--sp-card);
    --card-border: 1px solid var(--sp-line);
    --card-shadow: none;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: 0 30px 60px -36px rgb(18 37 28 / 0.55);
    --shadow-lift: 0 26px 50px -30px rgb(18 37 28 / 0.5);

    --w-container: 80rem;
    --w-wide: 84rem;
    --sp-md: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
    --sp-lg: clamp(4.5rem, 3rem + 6vw, 9rem);

    color-scheme: light;
}

html[data-sadproekt-tone="moss"]:root:root { --sp-forest: #2f3f27; --sp-forest-deep: #1e2a19; --sp-forest-soft: #43593a; }
html[data-sadproekt-tone="spruce"]:root:root { --sp-forest: #173a3c; --sp-forest-deep: #0e2829; --sp-forest-soft: #25585a; }

html[data-sadproekt-paper="stone"]:root:root { --sp-paper: #e9e7e0; --sp-paper-2: #dedbd0; --sp-card: #f6f5f0; --sp-line: #c9c6b8; }
html[data-sadproekt-paper="white"]:root:root { --sp-paper: #fbfaf6; --sp-paper-2: #f0eee6; --sp-card: #ffffff; --sp-line: #d9d6c9; }

:is(.cms-tone-dark, .cms-on-dark):not(#sp) {
    --c-bg: var(--sp-forest);
    --c-surface: var(--sp-forest-soft);
    --c-surface-sunk: var(--sp-forest-deep);
    --c-text: #e9e4d4;
    --c-text-strong: #fffdf5;
    --c-text-muted: #b6c0ad;
    --c-text-faint: #8d9a86;
    --c-border: rgb(233 228 212 / 0.2);
    --c-border-strong: #e9e4d4;
    --c-accent: var(--sp-brass);
    --c-accent-hover: color-mix(in srgb, var(--sp-brass), #ffffff 18%);
    --c-accent-contrast: var(--sp-forest-deep);
    --c-accent-soft: color-mix(in srgb, var(--sp-brass) 16%, var(--sp-forest));
    --c-link: #e9d6a8;
    --c-link-hover: #fff;
    --c-mark: var(--sp-brass);
    --c-mark-text: #e9d6a8;
    --card-bg: var(--sp-forest-soft);
    --card-border: 1px solid rgb(233 228 212 / 0.16);
    color-scheme: dark;
}

.cms-tone-dark:not(#sp) {
    --section-bg: var(--sp-forest);
}

.cms-tone-soft:not(#sp) {
    --section-bg: var(--sp-paper-2);
    --c-bg: var(--sp-paper-2);
    --c-surface: var(--sp-card);
    --c-surface-sunk: color-mix(in srgb, var(--sp-paper-2), #000 6%);
}

.cms-tone-primary:not(#sp) {
    --section-bg: var(--sp-brass-soft);
    --c-bg: var(--sp-brass-soft);
    --c-surface: var(--sp-card);
    --c-accent: var(--sp-forest);
    --c-accent-contrast: #f4efe2;
    --c-text: var(--sp-ink);
    --c-border: rgb(29 39 33 / 0.2);
    color-scheme: light;
}

.cms-tone-accent:not(#sp) {
    --section-bg: var(--sp-forest-soft);
    --c-bg: var(--sp-forest-soft);
    --c-surface: var(--sp-forest);
    --c-text: #eee9da;
    --c-text-strong: #fff;
    --c-text-muted: #bcc6b3;
    --c-border: rgb(238 233 218 / 0.22);
    --c-accent: var(--sp-brass);
    --c-accent-contrast: var(--sp-forest-deep);
    --c-link: #e9d6a8;
    color-scheme: dark;
}

.cms-on-light:not(#sp) {
    --c-bg: var(--sp-paper);
    --c-text: var(--sp-ink);
    --c-text-strong: #101a14;
    --c-text-muted: var(--sp-ink-soft);
    --c-border: var(--sp-line);
    --c-link: var(--sp-forest);
    color-scheme: light;
}

/* -------------------------------------------------------------------------
   2. Base
   ------------------------------------------------------------------------- */

body {
    background-color: var(--sp-paper);
    font-family: var(--font-ui);
    font-size: var(--t-base);
    line-height: 1.62;
    -webkit-font-smoothing: antialiased;
}

html[data-sadproekt-grain="on"] body {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35  0 0 0 0 .3  0 0 0 0 .2  0 0 0 .11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

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

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.012em;
    line-height: var(--lh-snug);
    text-wrap: balance;
}

h1 { font-weight: 500; line-height: 1; }

h1 em, h2 em, h3 em, .cms-section__title em { font-style: italic; color: var(--sp-brass-deep); }
.cms-tone-dark h1 em, .cms-tone-dark h2 em, .cms-tone-dark h3 em, .cms-on-dark h2 em { color: #e3cb97; }

a {
    text-decoration-color: var(--sp-brass);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.22em;
}

a:hover { text-decoration-color: currentColor; }

:focus-visible {
    outline: 2px solid var(--sp-brass);
    outline-offset: 3px;
}

::selection { background: var(--sp-brass); color: var(--sp-forest-deep); }

.cms-prose :where(ul) > li::marker { color: var(--sp-brass-deep); }
.cms-prose h2, .cms-prose h3 { font-weight: 500; }
.cms-prose blockquote {
    border-inline-start: 1px solid var(--sp-brass);
    font-family: var(--font-display);
    font-size: 1.5em;
    font-style: italic;
    line-height: 1.3;
}

/* -------------------------------------------------------------------------
   3. Buttons
   ------------------------------------------------------------------------- */

.cms-btn {
    min-height: 3.1rem;
    padding-inline: 1.7rem;
    border-radius: var(--r-btn);
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.25s, color 0.25s, border-color 0.25s, transform 0.25s;
}

.cms-btn--primary {
    border: 1px solid var(--sp-forest);
    background: var(--sp-forest);
    color: #f4efe2;
}

.cms-btn--primary:hover {
    border-color: var(--sp-forest-soft);
    background: var(--sp-forest-soft);
    color: #fff;
}

.cms-btn--ghost {
    border: 1px solid var(--c-border-strong);
    background: transparent;
    color: var(--c-text-strong);
}

.cms-btn--ghost:hover {
    border-color: var(--sp-forest);
    background: var(--sp-forest);
    color: #f4efe2;
}

:is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary {
    border-color: var(--sp-brass);
    background: var(--sp-brass);
    color: var(--sp-forest-deep);
}

:is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary:hover {
    border-color: #e3cb97;
    background: #e3cb97;
    color: var(--sp-forest-deep);
}

:is(.cms-tone-dark, .cms-on-dark) .cms-btn--ghost {
    border-color: rgb(233 228 212 / 0.5);
    color: #f1ebdb;
}

:is(.cms-tone-dark, .cms-on-dark) .cms-btn--ghost:hover {
    border-color: #f1ebdb;
    background: #f1ebdb;
    color: var(--sp-forest-deep);
}

html[data-sadproekt-buttons="outline"] .cms-btn--primary:not(#sp) {
    background: transparent;
    color: var(--sp-forest);
}

html[data-sadproekt-buttons="outline"] .cms-btn--primary:not(#sp):hover { background: var(--sp-forest); color: #f4efe2; }

html[data-sadproekt-buttons="outline"] :is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary:not(#sp) {
    background: transparent;
    color: #e3cb97;
}

html[data-sadproekt-buttons="outline"] :is(.cms-tone-dark, .cms-on-dark) .cms-btn--primary:not(#sp):hover { background: var(--sp-brass); color: var(--sp-forest-deep); }

html[data-sadproekt-buttons="pill"] .cms-btn:not(#sp) { border-radius: 999px; }

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

.cms-field__input, .cms-field__select, .cms-field__textarea { border-radius: var(--sp-r); }

/* -------------------------------------------------------------------------
   4. Sections: numbered, with a left-set heading
   ------------------------------------------------------------------------- */

.site-main { counter-reset: sp-n; }

.cms-section__head {
    max-width: none;
    margin-block-end: clamp(2.2rem, 1.6rem + 2.4vw, 4rem);
}

.cms-section__head--center,
.cms-section__head--left {
    margin-inline: 0;
    text-align: start;
}

.cms-section__title {
    max-width: 18ch;
    font-size: var(--t-xl);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.015em;
}

.cms-section__subtitle {
    max-width: 38rem;
    margin-block-start: var(--s-4);
    color: var(--c-text-muted);
    font-size: 1.0625rem;
    line-height: 1.6;
}

.cms-section__head { counter-increment: sp-n; }

html[data-sadproekt-numbers="on"] .cms-section__head::before {
    content: "№ " counter(sp-n, decimal-leading-zero);
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-block-end: var(--s-5);
    color: var(--sp-brass-deep);
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.22em;
}

html[data-sadproekt-numbers="on"] .cms-section__head::after { content: none; }

html[data-sadproekt-numbers="on"] :is(.cms-tone-dark, .cms-on-dark) .cms-section__head::before { color: #e3cb97; }

@media (min-width: 62rem) {
    .cms-section__head:has(.cms-section__subtitle) {
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
        column-gap: var(--s-8);
        align-items: end;
    }

    html[data-sadproekt-numbers="on"] .cms-section__head:has(.cms-section__subtitle)::before { grid-column: 1 / -1; }

    .cms-section__head:has(.cms-section__subtitle) .cms-section__subtitle {
        margin: 0 0 0.4rem;
        padding-inline-start: var(--s-5);
        border-inline-start: 1px solid var(--sp-brass);
    }
}

html[data-sadproekt-density="normal"] .site-main { --sp-lg: clamp(3.5rem, 2.4rem + 4.4vw, 6.5rem); --sp-md: clamp(2.6rem, 2rem + 3vw, 4.5rem); }
html[data-sadproekt-density="compact"] .site-main { --sp-lg: clamp(2.6rem, 2rem + 3vw, 4.5rem); --sp-md: clamp(2rem, 1.6rem + 2vw, 3.2rem); }

/* -------------------------------------------------------------------------
   5. Header: menu — logo — actions
   ------------------------------------------------------------------------- */

.sp-hdr {
    position: sticky;
    top: 0;
    z-index: 40;
    background: color-mix(in srgb, var(--sp-paper) 94%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--sp-line);
    color: var(--sp-ink);
    transition: box-shadow 0.3s;
}

.sp-hdr.is-scrolled { box-shadow: 0 18px 30px -26px rgb(18 37 28 / 0.55); }

.sp-hdr__top {
    background: var(--sp-forest-deep);
    color: #d9d4c1;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
}

.sp-hdr__top-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 2.25rem;
}

.sp-hdr__top a { color: inherit; text-decoration: none; }
.sp-hdr__top a:hover { color: #e3cb97; }
.sp-hdr__top .cms-icon { color: var(--sp-brass); }

.sp-hdr__bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1.5rem;
    min-height: 5.25rem;
}

.sp-hdr__brand { justify-self: center; }

.sp-hdr__nav { justify-self: start; min-width: 0; }

.sp-hdr__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
}

.sp-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: var(--sp-forest);
    text-decoration: none;
}

.sp-logo__mark { flex: none; width: 1.7rem; height: 2.05rem; color: var(--sp-brass-deep); }

.sp-logo .hdr-logo__name {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: 0.005em;
    line-height: 1;
    color: var(--sp-forest);
    white-space: nowrap;
}

.sp-logo .hdr-logo__tagline {
    display: block;
    margin-block-start: 0.2rem;
    color: var(--sp-ink-soft);
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.sp-hdr .hdr-nav__list { display: flex; flex-wrap: nowrap; gap: 0; justify-content: flex-start; }

.sp-hdr .hdr-nav__link {
    min-height: 2.75rem;
    padding: 0 0.6rem;
    white-space: nowrap;
    color: var(--sp-ink);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
}

.sp-hdr .hdr-nav__link > span {
    background-image: linear-gradient(var(--sp-brass), var(--sp-brass));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0 1px;
    padding-block: 0.3rem;
    transition: background-size 0.3s;
}

.sp-hdr .hdr-nav__link:hover > span,
.sp-hdr .hdr-nav__link.is-active > span { background-size: 100% 1px; }

.sp-hdr .hdr-nav__link:hover, .sp-hdr .hdr-nav__link.is-active { color: var(--sp-forest); }

.sp-hdr .hdr-sub__list {
    padding: 0.6rem;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-card);
    box-shadow: var(--shadow-lg);
}

.sp-hdr .hdr-sub__link { border-radius: 0; font-size: 0.9375rem; }
.sp-hdr .hdr-sub__link:hover { background: var(--sp-paper-2); color: var(--sp-forest); }

.sp-hdr__phone {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--sp-forest);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    white-space: nowrap;
}

.sp-hdr__phone-icon { display: inline-flex; color: var(--sp-brass-deep); }
.sp-hdr__phone:hover { color: #000; }

.sp-hdr__cta.cms-btn { min-height: 2.75rem; padding-inline: 1.3rem; }

.sp-hdr__burger { display: none; }

.hdr-burger.sp-hdr__burger { color: var(--sp-forest); }

.sp-drawer { background: var(--sp-paper); color: var(--sp-ink); }
.sp-drawer .hdr-drawer__head { border-bottom: 1px solid var(--sp-line); }
.sp-drawer .hdr-dmenu__link { font-family: var(--font-display); font-size: 1.6rem; font-weight: 500; }
.sp-drawer__cta { padding: 1rem var(--gutter, 1.25rem); }
.sp-drawer__cta .cms-btn { width: 100%; }

/* variants */
html[data-sadproekt-header="left"] .sp-hdr__bar {
    grid-template-columns: auto minmax(0, 1fr) auto;
}

html[data-sadproekt-header="left"] .sp-hdr__brand { grid-column: 1; grid-row: 1; justify-self: start; }
html[data-sadproekt-header="left"] .sp-hdr__nav { grid-column: 2; grid-row: 1; justify-self: end; }
html[data-sadproekt-header="left"] .sp-hdr__actions { grid-column: 3; grid-row: 1; }

html[data-sadproekt-header="dark"] .sp-hdr {
    background: color-mix(in srgb, var(--sp-forest) 96%, transparent);
    border-bottom-color: rgb(233 228 212 / 0.14);
    color: #e9e4d4;
}

html[data-sadproekt-header="dark"] .sp-hdr .sp-logo,
html[data-sadproekt-header="dark"] .sp-hdr .sp-logo .hdr-logo__name,
html[data-sadproekt-header="dark"] .sp-hdr .hdr-nav__link,
html[data-sadproekt-header="dark"] .sp-hdr__phone,
html[data-sadproekt-header="dark"] .hdr-burger.sp-hdr__burger { color: #f1ebdb; }

html[data-sadproekt-header="dark"] .sp-hdr .sp-logo__mark,
html[data-sadproekt-header="dark"] .sp-hdr__phone-icon { color: var(--sp-brass); }

html[data-sadproekt-header="dark"] .sp-hdr .sp-logo .hdr-logo__tagline { color: #b6c0ad; }
html[data-sadproekt-header="dark"] .sp-hdr .hdr-nav__link:hover,
html[data-sadproekt-header="dark"] .sp-hdr .hdr-nav__link.is-active { color: #e3cb97; }

html[data-sadproekt-header="dark"] .sp-hdr__cta.cms-btn--primary {
    border-color: var(--sp-brass);
    background: var(--sp-brass);
    color: var(--sp-forest-deep);
}

@media (max-width: 71.99rem) {
    .sp-hdr__nav { display: none; }
    .sp-hdr__bar,
    html[data-sadproekt-header="left"] .sp-hdr__bar { grid-template-columns: minmax(0, 1fr) auto; min-height: 4.25rem; gap: 0.75rem; }
    html[data-sadproekt-header="left"] .sp-hdr__brand,
    .sp-hdr__brand { grid-column: 1; grid-row: 1; justify-self: start; }
    html[data-sadproekt-header="left"] .sp-hdr__actions,
    .sp-hdr__actions { grid-column: 2; grid-row: 1; gap: 0.75rem; }
    .sp-hdr__burger { display: inline-flex; }
    .sp-hdr__cta { display: none; }
    .sp-hdr__top { display: none; }
    .sp-logo .hdr-logo__name { font-size: 1.45rem; }
    .sp-logo__mark { width: 1.45rem; height: 1.75rem; }
}

@media (max-width: 47.99rem) {
    .sp-hdr__phone-number { display: none; }
    .sp-hdr__phone { min-width: 2.75rem; min-height: 2.75rem; justify-content: center; }
}

/* -------------------------------------------------------------------------
   6. First screen
   ------------------------------------------------------------------------- */

.cms-section:has(> .cms-section__inner > .sp-hero) { overflow: clip; }

.sp-hero { position: relative; }

.sp-hero__grid {
    display: grid;
    gap: clamp(2rem, 1rem + 4vw, 5rem);
    align-items: center;
}

@media (min-width: 62rem) {
    .sp-hero--photo .sp-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
}

.sp-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 var(--s-6);
    color: var(--sp-brass-deep);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.sp-hero__eyebrow::before { content: ""; width: 2.75rem; height: 1px; background: currentColor; }

.sp-hero__title {
    margin: 0;
    max-width: 13ch;
    font-size: clamp(3rem, 1.6rem + 6.6vw, 7rem);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 0.94;
}

.sp-hero__title em { font-weight: 400; }

.sp-hero__lead {
    max-width: 33rem;
    margin: var(--s-6) 0 0;
    color: var(--sp-ink-soft);
    font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem);
    line-height: 1.6;
}

.sp-hero__actions { margin-block-start: var(--s-8); gap: 1rem; }

.sp-hero__media { position: relative; padding-block-end: 2.5rem; }

.sp-hero__arch {
    position: relative;
    margin: 0;
    margin-inline-start: auto;
    width: min(100%, 31rem);
    aspect-ratio: 4 / 5.2;
    overflow: hidden;
    border-radius: 999px 999px 0 0;
    background: var(--sp-forest-soft);
}

.sp-hero__arch::after {
    content: "";
    position: absolute;
    inset: 0.85rem;
    border: 1px solid rgb(255 253 245 / 0.55);
    border-radius: 999px 999px 0 0;
    pointer-events: none;
}

.sp-hero__img { width: 100%; height: 100%; object-fit: cover; }

.sp-hero__inset {
    position: absolute;
    inset-inline-start: 0;
    inset-block-end: 0;
    width: min(46%, 14rem);
    margin: 0;
    background: var(--sp-paper);
    padding: 0.55rem;
    border-radius: var(--sp-r);
    box-shadow: var(--shadow-lg);
}

.sp-hero__img2 { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }

.sp-hero__inset figcaption {
    padding: 0.55rem 0.15rem 0.1rem;
    color: var(--sp-ink-soft);
    font-family: var(--font-display);
    font-size: 1rem;
    font-style: italic;
    line-height: 1.2;
}

.sp-hero__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: clamp(2.5rem, 2rem + 2vw, 4.5rem) 0 0;
    padding: 0;
    list-style: none;
    border-block: 1px solid var(--sp-line);
}

@media (min-width: 48rem) {
    .sp-hero__facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.sp-hero__fact {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 1.5rem 1.25rem 1.5rem 0;
}

.sp-hero__fact + .sp-hero__fact { padding-inline-start: 1.25rem; border-inline-start: 1px solid var(--sp-line); }
.sp-hero__fact:nth-child(3) { border-inline-start: 0; padding-inline-start: 0; }

@media (min-width: 48rem) {
    .sp-hero__fact:nth-child(3) { border-inline-start: 1px solid var(--sp-line); padding-inline-start: 1.25rem; }
}

.sp-hero__fact-value {
    color: var(--sp-forest);
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 1.7rem + 1.8vw, 3.4rem);
    font-weight: 500;
    line-height: 1;
}

.sp-hero__fact-label {
    color: var(--sp-ink-soft);
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
}

/* -------------------------------------------------------------------------
   7. Services: an editorial index
   ------------------------------------------------------------------------- */

.sp-svc__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--c-border-strong); }

.sp-svc__row {
    position: relative;
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    column-gap: 1rem;
    align-items: center;
    padding-block: clamp(1.1rem, 0.8rem + 1vw, 1.7rem);
    border-bottom: 1px solid var(--c-border);
    transition: background-color 0.3s, padding 0.3s;
}

.sp-svc__row:hover { background: color-mix(in srgb, var(--sp-brass) 9%, transparent); padding-inline: 1rem; }

.sp-svc__n {
    color: var(--sp-brass-deep);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.2em;
}

.sp-svc__thumb { display: none; }

.sp-svc__title {
    margin: 0;
    font-size: clamp(1.7rem, 1.3rem + 1.3vw, 2.6rem);
    font-weight: 500;
    line-height: 1.05;
}

.sp-svc__link { color: inherit; text-decoration: none; }
.sp-svc__link::after { content: ""; position: absolute; inset: 0; }
.sp-svc__row:hover .sp-svc__title { font-style: italic; }

.sp-svc__text {
    max-width: 38rem;
    margin: 0.5rem 0 0;
    color: var(--c-text-muted);
    font-size: 0.96rem;
    line-height: 1.55;
}

.sp-svc__foot { display: flex; align-items: center; gap: 1.25rem; }

.sp-svc__price { margin: 0; text-align: end; line-height: 1.2; }
.sp-svc__amount { display: block; color: var(--c-text-strong); font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; white-space: nowrap; }
.sp-svc__unit { color: var(--c-text-muted); font-size: 0.75rem; letter-spacing: 0.05em; }

.sp-svc__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid var(--c-border-strong);
    border-radius: 50%;
    transition: background-color 0.25s, color 0.25s, transform 0.25s;
}

.sp-svc__row:hover .sp-svc__arrow { background: var(--sp-forest); color: #f4efe2; transform: rotate(45deg); }

.svc-list--image .sp-svc__row { grid-template-columns: 2.6rem 6.5rem minmax(0, 1fr) auto; }
.svc-list--image .sp-svc__thumb { display: block; width: 6.5rem; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--sp-r); }
.svc-list--image .sp-svc__thumb img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 47.99rem) {
    .sp-svc__row,
    .svc-list--image .sp-svc__row { grid-template-columns: 2rem minmax(0, 1fr); row-gap: 0.75rem; }
    .svc-list--image .sp-svc__thumb { display: none; }
    .sp-svc__foot { grid-column: 2; justify-content: space-between; }
    .sp-svc__price { text-align: start; }
    .sp-svc__amount { font-size: 1.3rem; }
}

/* the compact services catalogue pages keep the module's cards, softened */
.svc-card { border-radius: var(--sp-r); }

/* -------------------------------------------------------------------------
   8. Finished gardens: an editorial mosaic
   ------------------------------------------------------------------------- */

.sp-objects__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(2rem, 1.4rem + 2vw, 3.5rem) clamp(1rem, 0.6rem + 1.6vw, 2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.sp-obj { grid-column: 1 / -1; min-width: 0; }

@media (min-width: 48rem) {
    .sp-obj--lead { grid-column: 1 / span 8; }
    .sp-obj--1 { grid-column: span 4; align-self: end; }
    .sp-obj--2 { grid-column: span 5; }
    .sp-obj--3 { grid-column: span 7; }
    .sp-obj--0:not(.sp-obj--lead) { grid-column: span 6; }
    .sp-obj--1:not(.sp-obj--lead) { grid-column: span 4; }
}

.sp-obj__link { display: block; color: inherit; text-decoration: none; }

.sp-obj__frame {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: var(--sp-r);
    background: var(--sp-forest-soft);
}

.sp-obj--lead .sp-obj__frame { aspect-ratio: 16 / 11; }
.sp-obj--1:not(.sp-obj--lead) .sp-obj__frame { aspect-ratio: 4 / 5; }
.sp-obj--2 .sp-obj__frame { aspect-ratio: 5 / 4; }

.sp-obj__img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.2, 0.7, 0.2, 1); }
.sp-obj__link:hover .sp-obj__img { transform: scale(1.045); }

.sp-obj__open {
    position: absolute;
    inset-inline-end: 1rem;
    inset-block-end: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.95rem;
    background: var(--sp-paper);
    color: var(--sp-forest);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(0.5rem);
    transition: opacity 0.3s, transform 0.3s;
}

.sp-obj__link:hover .sp-obj__open,
.sp-obj__link:focus-visible .sp-obj__open { opacity: 1; transform: none; }

.sp-obj__cap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 0.9rem;
    row-gap: 0.15rem;
    padding-block-start: 1rem;
}

.sp-obj__n {
    grid-row: span 2;
    padding-block-start: 0.35rem;
    color: var(--sp-brass-deep);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.18em;
}

.sp-obj__title {
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.9rem);
    font-weight: 500;
    line-height: 1.1;
}

.sp-obj__meta { display: flex; flex-wrap: wrap; gap: 0 0.9rem; color: var(--c-text-muted); font-size: 0.8125rem; letter-spacing: 0.03em; }
.sp-obj__meta > span + span::before { content: "·"; margin-inline-end: 0.9rem; color: var(--sp-brass-deep); }

.sp-objects__more { margin: clamp(2rem, 1.5rem + 2vw, 3.5rem) 0 0; }

/* -------------------------------------------------------------------------
   9. Care by season
   ------------------------------------------------------------------------- */

.sp-seasons__grid {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgb(233 228 212 / 0.3);
}

@media (min-width: 48rem) { .sp-seasons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 72rem) { .sp-seasons__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.sp-season {
    padding: 2rem 1.5rem 2.25rem 0;
    border-bottom: 1px solid rgb(233 228 212 / 0.2);
}

@media (min-width: 72rem) {
    .sp-season { padding-inline: 1.75rem; border-bottom: 0; border-inline-start: 1px solid rgb(233 228 212 / 0.2); }
    .sp-season:first-child { padding-inline-start: 0; border-inline-start: 0; }
}

.sp-season__name {
    margin: 0;
    color: #e3cb97;
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 2rem + 2.4vw, 4rem);
    font-style: italic;
    font-weight: 400;
    line-height: 1;
}

.sp-season__months {
    margin: 0.55rem 0 0;
    color: #b6c0ad;
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.sp-season__title { margin: 1.5rem 0 0.75rem; color: #fffdf5; font-size: 1.5rem; }

.sp-season__works { margin: 0; padding: 0; list-style: none; }

.sp-season__works li {
    padding: 0.55rem 0 0.55rem 1.3rem;
    position: relative;
    border-top: 1px solid rgb(233 228 212 / 0.14);
    color: #d6d9c9;
    font-size: 0.9375rem;
    line-height: 1.45;
}

.sp-season__works li::before { content: ""; position: absolute; inset-inline-start: 0; top: 1.2em; width: 0.6rem; height: 1px; background: var(--sp-brass); }

.sp-seasons__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin-block-start: 2.5rem;
}

.sp-seasons__note { max-width: 32rem; margin: 0; color: #d6d9c9; font-family: var(--font-display); font-size: 1.5rem; font-style: italic; line-height: 1.25; }

/* -------------------------------------------------------------------------
   10. Shared blocks, re-dressed
   ------------------------------------------------------------------------- */

/* features: ruled columns, serif titles */
.cms-feature.cms-card,
.cms-feature { border-radius: var(--sp-r); }
.cms-feature .cms-card__title,
.cms-feature__title { font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; }
.cms-badge-icon { border-radius: 50%; background: var(--sp-brass-soft); color: var(--sp-forest); }
.cms-feature--numbered .cms-feature__num { font-family: var(--font-display); color: var(--sp-brass-deep); }

/* stats */
.cms-stat__value, .cms-stat__num { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }
.cms-stat__num { font-size: clamp(2.8rem, 2rem + 3vw, 4.8rem); line-height: 1; }
.cms-stats--divided .cms-stat { border-color: var(--c-border); }

/* steps */
.cms-step__title, .cms-stage__title { font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; }
.cms-step__marker { font-family: var(--font-display); }

/* reviews */
.cms-review.cms-card { border-top: 1px solid var(--sp-brass); }
.cms-review__text { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.35; }
.cms-stars__star { color: var(--sp-brass); }
.cms-review__name { font-weight: 600; }

/* faq */
.cms-faq__question { font-family: var(--font-display); font-size: 1.45rem; font-weight: 500; }
.cms-faq__toggle { color: var(--sp-brass-deep); }

/* contacts */
.cms-contact__title { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-text-muted); }
.cms-contact__value { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; }
.cms-contacts--card .cms-contact.cms-card { border-top: 1px solid var(--sp-brass); }

/* media + text */
.cms-block--media_text img { border-radius: var(--sp-r); }

/* team */
.cms-team__name, .cms-person__name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; }
.cms-team__role, .cms-person__role { color: var(--sp-brass-deep); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; }
.cms-block--team img { border-radius: var(--sp-r); }

/* gallery */
.cms-block--gallery img { border-radius: var(--sp-r); }

/* calculator (shared block, estimate) */
.cms-calc {
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-card);
    box-shadow: var(--shadow-lg);
}

.cms-calc__total, .cms-calc__result-value { font-family: var(--font-display); font-weight: 500; color: var(--sp-forest); }

.cms-calc input[type="range"] { accent-color: var(--sp-forest); }

/* stages / objects map */
.cms-stages { --stages-accent: var(--sp-brass); }
.cms-stages__title, .cms-stages__item-title { font-family: var(--font-display); font-weight: 500; }
.cms-objmap__title { font-family: var(--font-display); font-weight: 500; }
.cms-objmap__map, .cms-stages__item { border-radius: var(--sp-r); }

/* form / cta */
.cms-block--cta .cms-cta, .cms-cta { border-radius: var(--sp-r); }
.cms-block--form .cms-card { border-radius: var(--sp-r); }
.cms-popover__title { font-family: var(--font-display); font-weight: 500; }

/* images: a quiet, slightly warmer grade */
.cms-block--media_text img,
.cms-block--gallery img,
.sp-obj__img,
.sp-hero__img { filter: saturate(0.95) contrast(1.02); }

/* -------------------------------------------------------------------------
   11. Footer
   ------------------------------------------------------------------------- */

.sp-ftr {
    margin-block-start: 0;
    background: var(--sp-forest);
    color: #d9d9c9;
    --c-text: #d9d9c9;
    --c-text-strong: #fffdf5;
    --c-border: rgb(233 228 212 / 0.18);
    --c-link: #e9d6a8;
}

.sp-ftr a { color: #e9e4d4; text-decoration: none; }
.sp-ftr a:hover { color: #e3cb97; text-decoration: underline; text-decoration-color: var(--sp-brass); }

.sp-ftr__invite { border-bottom: 1px solid rgb(233 228 212 / 0.18); background: var(--sp-forest-deep); }

.sp-ftr__invite-inner {
    display: grid;
    gap: 2rem;
    padding-block: clamp(3rem, 2rem + 4vw, 6rem);
}

@media (min-width: 62rem) {
    .sp-ftr__invite-inner { grid-template-columns: minmax(0, 1.4fr) auto; align-items: end; gap: 4rem; }
}

.sp-ftr__kicker {
    margin: 0 0 1.25rem;
    color: #e3cb97;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.sp-ftr__invite-title {
    max-width: 16ch;
    margin: 0;
    color: #fffdf5;
    font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.4rem);
    font-weight: 400;
    letter-spacing: -0.02em;
    line-height: 0.98;
}

.sp-ftr__invite-lead { max-width: 34rem; margin: 1.5rem 0 0; color: #c3cbb9; font-size: 1.0625rem; line-height: 1.6; }

.sp-ftr__invite-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }

.sp-ftr .sp-ftr__btn.cms-btn--primary { border-color: var(--sp-brass); background: var(--sp-brass); color: var(--sp-forest-deep); }
.sp-ftr .sp-ftr__btn.cms-btn--primary:hover { border-color: #e3cb97; background: #e3cb97; }

.sp-ftr__phone { font-family: var(--font-display); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); font-weight: 500; letter-spacing: 0.01em; }

.sp-ftr__body { padding-block: clamp(2.5rem, 2rem + 2vw, 4.5rem) 1.5rem; }

.sp-ftr__cols { gap: 2.5rem; }

.sp-ftr .ftr-col__title {
    margin: 0 0 1.1rem;
    color: #e3cb97;
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.sp-ftr .ftr-brand__name { color: #fffdf5; font-family: var(--font-display); font-size: 2rem; font-weight: 500; }
.sp-ftr .ftr-about, .sp-ftr .ftr-text { color: #bcc5b2; line-height: 1.65; }
.sp-ftr .ftr-menu__link { display: inline-block; padding-block: 0.3rem; font-size: 0.9875rem; }
.sp-ftr .ftr-contacts__phone a { font-family: var(--font-display); font-size: 1.6rem; font-weight: 500; }
.sp-ftr .ftr-contacts__line { color: #c3cbb9; }
.sp-ftr .cms-icon { color: var(--sp-brass); }

.sp-ftr__note { max-width: 46rem; margin: 2rem 0 0; color: #98a58f; font-size: 0.8125rem; line-height: 1.6; }

.sp-ftr__wordmark {
    margin: clamp(2rem, 1.5rem + 3vw, 4.5rem) 0 0;
    color: rgb(233 228 212 / 0.09);
    font-family: var(--font-display);
    font-size: clamp(4rem, 2rem + 13vw, 15rem);
    font-style: italic;
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 0.82;
    overflow: hidden;
    white-space: nowrap;
    user-select: none;
}

.sp-ftr .ftr-bottom {
    margin-block-start: 1.5rem;
    padding-block-start: 1.25rem;
    border-top: 1px solid rgb(233 228 212 / 0.18);
    color: #98a58f;
    font-size: 0.8125rem;
}

.sp-ftr .ftr-bottom a { color: #c3cbb9; }

/* -------------------------------------------------------------------------
   12. Module pages (service, portfolio): headings and quiet frames
   ------------------------------------------------------------------------- */

.svc-page h1, .pf-project h1, .site-main > article > header h1 { font-weight: 400; letter-spacing: -0.02em; }

/* -------------------------------------------------------------------------
   13. Phones
   ------------------------------------------------------------------------- */

@media (max-width: 47.99rem) {
    .sp-hero__title { font-size: clamp(2.7rem, 2rem + 8vw, 3.8rem); max-width: none; }
    .sp-hero__media { padding-block-end: 1.5rem; }
    .sp-hero__arch { width: 86%; margin-inline: auto 0; }
    .sp-hero__inset { width: 42%; }
    .sp-hero__actions .cms-btn { width: 100%; }
    .sp-objects__grid { gap: 2rem; }
    .sp-obj__open { opacity: 1; transform: none; }
    .sp-ftr__wordmark { font-size: clamp(3.5rem, 2rem + 12vw, 6rem); }
}

@media (prefers-reduced-motion: reduce) {
    .sp-obj__img, .sp-svc__row, .sp-svc__arrow, .cms-btn { transition: none; }
}
