/* =========================================================================
   «Фундамент» — a template for companies that build private houses.

   Warm linen paper, pine green and timber, fine architectural line work
   (elevations, plans, dimension lines), an elegant light grotesque for
   headlines and a condensed drafting face for figures and annotations.

   1. Fonts            5. Header           9. Shared blocks re-dressed
   2. Design settings  6. Footer          10. Variants (data-fundament-…)
   3. Tokens and tones 7. Drawings        11. Phones
   4. Type, buttons    8. Own blocks
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Fonts — self-hosted: the parent's Onest, Inter, Manrope, Lora and
   the template's own Roboto Condensed (assets/fonts, OFL).
   ------------------------------------------------------------------------- */

@font-face { font-family: 'Fundament 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: 'Fundament 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: 'Fundament 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: 'Fundament Inter'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('/themes/default/assets/fonts/inter-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fundament 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: 'Fundament 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: 'Fundament 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: 'Fundament 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: 'Fundament Draft'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('../fonts/roboto-condensed-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: 'Fundament Draft'; font-style: normal; font-display: swap; font-weight: 100 900;
    src: url('../fonts/roboto-condensed-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

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

:root {
    --fundament-accent: #2f4a3a;
    --fundament-wood: #a8703e;
    --fundament-font-display: 'Fundament Onest', 'Onest', 'Segoe UI', system-ui, sans-serif;
    --fundament-font-body: 'Fundament Inter', 'Inter', 'Segoe UI', system-ui, sans-serif;
    --fundament-font-figures: 'Fundament Draft', 'Roboto Condensed', 'Arial Narrow', sans-serif;
    --fundament-radius: 2px;
}

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

:root:root {
    --fd-pine: var(--fundament-accent);
    --fd-pine-hi: color-mix(in srgb, var(--fd-pine), #ffffff 14%);
    --fd-pine-deep: color-mix(in srgb, var(--fd-pine), #000000 32%);
    --fd-pine-soft: color-mix(in srgb, var(--fd-pine) 12%, var(--fd-paper));
    --fd-wood: var(--fundament-wood);
    --fd-wood-ink: color-mix(in srgb, var(--fd-wood), #000000 30%);
    --fd-wood-hi: color-mix(in srgb, var(--fd-wood), #ffffff 45%);
    --fd-paper: #f4efe6;
    --fd-surface: #fbf8f2;
    --fd-sunk: #ebe3d5;
    --fd-line: #d8cdba;
    --fd-ink: #22241f;
    --fd-muted: #5b5d53;
    --fd-r: var(--fundament-radius);
    --fd-hair: 1px solid color-mix(in srgb, var(--fd-ink) 22%, transparent);
    --fd-figs: var(--fundament-font-figures);

    --c-bg: var(--fd-paper);
    --c-surface: var(--fd-surface);
    --c-surface-sunk: var(--fd-sunk);
    --c-text: #2d2f29;
    --c-text-strong: var(--fd-ink);
    --c-text-muted: var(--fd-muted);
    --c-text-faint: #7b7b70;
    --c-border: var(--fd-line);
    --c-border-strong: var(--fd-ink);
    --c-accent: var(--fd-pine);
    --c-accent-hover: var(--fd-pine-deep);
    --c-accent-contrast: #f7f3ea;
    --c-accent-soft: var(--fd-pine-soft);
    --c-link: var(--fd-pine);
    --c-link-hover: var(--fd-pine-deep);
    --c-mark: var(--fd-wood);
    --c-mark-text: var(--fd-wood-ink);
    --c-mark-soft: color-mix(in srgb, var(--fd-wood) 16%, var(--fd-paper));
    --c-slab: var(--fd-pine-deep);
    --c-slab-text: #f3efe6;
    --c-slab-muted: #c4cbbf;
    --c-danger: #a8321f;
    --c-success: #2e6b3f;

    --font-display: var(--fundament-font-display);
    --font-ui: var(--fundament-font-body);
    --font-prose: var(--fundament-font-body);
    --fw-heading: 400;
    --tr-tight: -0.03em;
    --tr-snug: -0.02em;
    --lh-tight: 1.04;
    --lh-snug: 1.14;
    --t-xl: clamp(1.9rem, 1.4rem + 1.9vw, 3rem);
    --t-2xl: clamp(2.5rem, 1.6rem + 3.6vw, 4.6rem);
    --t-3xl: clamp(2.9rem, 1.6rem + 5.4vw, 6.4rem);

    --r-xs: var(--fd-r);
    --r-sm: var(--fd-r);
    --r-md: var(--fd-r);
    --r-lg: var(--fd-r);
    --r-btn: var(--fd-r);
    --card-radius: var(--fd-r);
    --card-bg: var(--fd-surface);
    --card-border: 1px solid var(--fd-line);
    --card-shadow: none;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: 0 30px 60px -40px rgb(34 36 31 / 0.5);

    --w-container: 76rem;
    --w-wide: 88rem;
    --sp-sm: clamp(2.5rem, 2rem + 2.5vw, 4rem);
    --sp-md: clamp(4.5rem, 3rem + 6vw, 8.5rem);
    --sp-lg: clamp(5.5rem, 3.5rem + 8vw, 11rem);

    color-scheme: light;
}

html[data-fundament-paper="snow"] {
    --fd-paper: #f5f6f3;
    --fd-surface: #ffffff;
    --fd-sunk: #e8ebe6;
    --fd-line: #d3d8d0;
}

html[data-fundament-paper="kraft"] {
    --fd-paper: #ebe0cc;
    --fd-surface: #f6efe1;
    --fd-sunk: #dfd0b5;
    --fd-line: #c9b896;
}

body.fd-body {
    background-color: var(--fd-paper);
    color: var(--c-text);
    font-family: var(--font-ui);
    font-feature-settings: 'lnum' 1;
}

/* Tones. The id-level boost keeps the site's generated tones out. */
:is(.cms-tone-dark, .cms-on-dark):not(#fd) {
    --c-bg: var(--fd-pine-deep);
    --c-surface: color-mix(in srgb, var(--fd-pine-deep), #ffffff 7%);
    --c-surface-sunk: color-mix(in srgb, var(--fd-pine-deep), #000000 18%);
    --c-text: #e6e8df;
    --c-text-strong: #fbf8f1;
    --c-text-muted: #bfc7bb;
    --c-text-faint: #98a395;
    --c-border: color-mix(in srgb, #ffffff 18%, transparent);
    --c-border-strong: #f3efe6;
    --c-accent: #f3ead8;
    --c-accent-hover: #ffffff;
    --c-accent-contrast: var(--fd-pine-deep);
    --c-accent-soft: color-mix(in srgb, #ffffff 10%, var(--fd-pine-deep));
    --c-link: var(--fd-wood-hi);
    --c-link-hover: #ffffff;
    --c-mark: var(--fd-wood-hi);
    --c-mark-text: var(--fd-wood-hi);
    --card-bg: color-mix(in srgb, var(--fd-pine-deep), #ffffff 6%);
    --card-border: 1px solid color-mix(in srgb, #ffffff 16%, transparent);
    --fd-hair: 1px solid color-mix(in srgb, #ffffff 24%, transparent);
    color-scheme: dark;
}

.cms-tone-dark:not(#fd) { --section-bg: var(--fd-pine-deep); }
.cms-tone-soft:not(#fd) {
    --section-bg: var(--fd-sunk);
    --c-bg: var(--fd-sunk);
    --c-surface: var(--fd-surface);
}
.cms-tone-primary:not(#fd) {
    --section-bg: var(--fd-pine);
    --c-bg: var(--fd-pine);
    --c-text: #eef0e8;
    --c-text-strong: #ffffff;
    --c-text-muted: #cfd6cb;
    --c-border: color-mix(in srgb, #ffffff 22%, transparent);
    --c-border-strong: #ffffff;
    --c-accent: #f3ead8;
    --c-accent-hover: #ffffff;
    --c-accent-contrast: var(--fd-pine-deep);
    --c-link: #ffffff;
    color-scheme: dark;
}

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

.fd-body :is(h1, h2, h3, h4) { font-family: var(--font-display); }

.cms-section__head { max-width: 50rem; margin-block-end: clamp(2rem, 1.4rem + 2vw, 3.5rem); }

.cms-section__title {
    font-weight: var(--fw-heading);
    letter-spacing: var(--tr-snug);
}

/* A drawing tick before every section title: a short rule and a node. */
.cms-section__head .cms-section__title::before {
    content: '';
    display: block;
    width: 3.25rem;
    height: 0.6rem;
    margin-block-end: 1.1rem;
    background:
        linear-gradient(currentColor, currentColor) left center / 100% 1px no-repeat,
        radial-gradient(circle, var(--fd-wood) 0 3px, transparent 3.5px) right center / 0.6rem 0.6rem no-repeat;
    opacity: 0.85;
}
.cms-section__head--center .cms-section__title::before { margin-inline: auto; }

.cms-section__subtitle { max-width: 42rem; font-size: var(--t-md); line-height: 1.6; }

.cms-btn {
    min-height: 50px;
    padding: 0.85rem 1.7rem;
    border-radius: var(--r-btn);
    font-family: var(--font-ui);
    font-weight: 500;
    letter-spacing: 0.01em;
}

.cms-btn--primary { background-color: var(--c-accent); color: var(--c-accent-contrast); }
.cms-btn--primary:hover { background-color: var(--c-accent-hover); }
.cms-btn--ghost { border-width: 1px; border-color: color-mix(in srgb, var(--c-text-strong) 45%, transparent); }
.cms-btn--ghost:hover { border-color: var(--c-text-strong); background-color: color-mix(in srgb, var(--c-text-strong) 5%, transparent); }

.fd-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    min-height: 44px;
    color: var(--c-link);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}
.fd-arrow-link:hover { border-bottom-color: currentColor; }

.fd-note {
    margin-block-start: var(--s-6);
    padding-block-start: var(--s-4);
    border-top: var(--fd-hair);
    color: var(--c-text-muted);
    font-size: var(--t-sm);
}

.fd-ticks { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
.fd-ticks li { position: relative; padding-inline-start: 1.6rem; line-height: 1.5; }
.fd-ticks li::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 0.72em;
    width: 0.9rem;
    border-top: 1px solid var(--fd-wood);
}

/* Specification list: name … value on a dotted leader. */
.fd-spec { display: grid; margin: 0; }
.fd-spec__row {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding-block: 0.7rem;
    border-bottom: 1px dashed color-mix(in srgb, var(--c-text) 22%, transparent);
}
.fd-spec__row dt { flex: 1 1 auto; color: var(--c-text); }
.fd-spec__row dd {
    margin: 0;
    font-family: var(--fd-figs);
    font-size: 1.05rem;
    color: var(--c-text-strong);
    text-align: end;
}

/* The drawing's title block: thin ruled cells, small label, big figure. */
.fd-stamp { color: var(--c-text-strong); }
.fd-stamp__head {
    padding: 0.6rem 0.9rem;
    border: var(--fd-hair);
    border-bottom: 0;
    font-family: var(--fd-figs);
    font-size: 0.8rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.fd-stamp__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border-top: var(--fd-hair);
    border-left: var(--fd-hair);
}
.fd-stamp__cell {
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
    gap: 0.2rem;
    padding: 0.75rem 0.9rem 0.85rem;
    border-right: var(--fd-hair);
    border-bottom: var(--fd-hair);
    min-width: 0;
}
.fd-stamp__label {
    font-size: 0.78rem;
    line-height: 1.3;
    color: var(--c-text-muted);
}
.fd-stamp__value {
    margin: 0;
    font-family: var(--fd-figs);
    font-weight: 300;
    font-size: clamp(1.35rem, 1.1rem + 0.9vw, 2rem);
    line-height: 1.1;
    letter-spacing: -0.01em;
    overflow-wrap: anywhere;
}

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

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

.fd-hdr.site-header {
    background-color: color-mix(in srgb, var(--fd-paper) 94%, transparent);
    border-bottom: 0;
    backdrop-filter: blur(10px);
}

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

.fd-hdr .hdr-row--top {
    background: transparent;
    border-bottom: var(--fd-hair);
    color: var(--c-text-muted);
    font-family: var(--fd-figs);
    font-size: 0.8rem;
    letter-spacing: 0.06em;
}
.fd-hdr .hdr-row--top .hdr-row__inner { min-height: 2.35rem; }
.fd-hdr .hdr-row--top .cms-icon { color: var(--fd-wood); }

.fd-hdr .hdr-row--main { position: relative; }
.fd-hdr .hdr-row--main .hdr-row__inner { min-height: 5.25rem; }
.fd-hdr__rule {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--fd-line) 6%, var(--fd-line) 94%, transparent);
}
.fd-hdr__rule::before,
.fd-hdr__rule::after {
    content: '';
    position: absolute;
    bottom: -4px;
    width: 1px;
    height: 9px;
    background: var(--fd-muted);
    opacity: 0.6;
    left: max(var(--gutter), calc((100% - var(--w-wide)) / 2 + var(--gutter)));
}
.fd-hdr__rule::after { left: auto; right: max(var(--gutter), calc((100% - var(--w-wide)) / 2 + var(--gutter))); }

.fd-logo { color: var(--c-text-strong); gap: 0.7rem; }
.fd-logo__mark { width: 2.3rem; height: 2.3rem; color: var(--fd-pine); flex: none; }
.fd-hdr .hdr-logo__name {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 1.35rem;
    letter-spacing: -0.01em;
}
.fd-hdr .hdr-logo__tagline {
    font-family: var(--fd-figs);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-text-muted);
}

.fd-hdr .hdr-nav__link {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--c-text);
}
.fd-hdr .hdr-nav__link > span { background-image: linear-gradient(var(--fd-wood), var(--fd-wood)); }

.fd-hdr .hdr-phone__number {
    font-family: var(--fd-figs);
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    color: var(--c-text-strong);
}
.fd-hdr .hdr-phone__caption { font-size: 0.75rem; color: var(--c-text-muted); }
.fd-hdr .hdr-el--button .cms-btn { min-height: 46px; padding-inline: 1.3rem; }

.hdr-sub { border-radius: var(--fd-r); border-color: var(--fd-line); background: var(--fd-surface); }

/* Centred variant: the logo in the middle of its own line, the menu under it. */
@media (min-width: 60rem) {
    html[data-fundament-header="centered"] .fd-hdr .hdr-row--main .hdr-row__inner {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        grid-template-areas: 'left logo right' 'nav nav nav';
        row-gap: 0.25rem;
        padding-block: 1rem 0.35rem;
    }
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--left { display: contents; }
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--left > .hdr-el--logo { grid-area: logo; justify-self: center; }
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--left > .hdr-nav,
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--center { grid-area: nav; justify-self: center; }
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--center .hdr-nav__list { justify-content: center; }
    html[data-fundament-header="centered"] .fd-hdr .hdr-zone--right { grid-area: right; justify-self: end; }
    html[data-fundament-header="centered"] .fd-hdr .hdr-nav { width: 100%; }
}

.fd-drawer { background: var(--fd-paper); }
.fd-drawer__plan { display: block; width: 70%; margin: var(--s-6) auto 0; color: var(--fd-pine); opacity: 0.25; }

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

.fd-ftr.site-footer {
    --c-bg: var(--fd-pine-deep);
    position: relative;
    overflow: hidden;
    background: var(--fd-pine-deep);
    color: #dfe3d8;
    border-top: 0;
}
.fd-ftr .site-footer__inner { position: relative; z-index: 1; }

.fd-ftr__sheet {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--s-6);
    max-width: var(--w-wide);
    margin-inline: auto;
    padding: clamp(3rem, 2rem + 4vw, 5.5rem) var(--gutter) 0;
    color: #f2eee5;
}
.fd-ftr__word {
    order: -1;
    margin: 0;
    font-family: var(--font-display);
    font-weight: 300;
    font-size: clamp(2.6rem, 0.8rem + 6.4vw, 7.5rem);
    line-height: 0.9;
    letter-spacing: -0.045em;
    overflow-wrap: break-word;
}
.fd-ftr__drawing { color: color-mix(in srgb, #ffffff 42%, transparent); }
.fd-ftr__drawing .fd-draw { width: 100%; height: auto; max-height: 15rem; }

.fd-ftr .ftr-cols { border-top: 1px solid rgb(255 255 255 / 0.16); padding-top: var(--s-7); margin-top: var(--s-6); }
.fd-ftr .ftr-col__title {
    font-family: var(--fd-figs);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--fd-wood-hi);
}
.fd-ftr a { color: #f3efe6; }
.fd-ftr a:hover { color: #ffffff; }
.fd-ftr .ftr-contacts__phone a { font-family: var(--fd-figs); font-size: 1.35rem; font-weight: 300; }
.fd-ftr .ftr-about, .fd-ftr .ftr-text { color: #c9d0c4; }

.fd-ftr__stamp.ftr-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-top: var(--s-7);
    border: 1px solid rgb(255 255 255 / 0.2);
    padding: 0;
    font-family: var(--fd-figs);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    color: #b9c2b4;
}
.fd-ftr__stamp > * { margin: 0; padding: 0.8rem 1rem; }
.fd-ftr__stamp > * + *:not(.site-footer__slot) { border-left: 1px solid rgb(255 255 255 / 0.2); }
.fd-ftr__stamp > .site-footer__slot { padding: 0; margin-inline-start: auto; }
.fd-ftr__stamp .ftr-bottom__links { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; list-style: none; }

/* -------------------------------------------------------------------------
   7. Drawings
   ------------------------------------------------------------------------- */

.fd-draw { display: block; width: 100%; height: auto; overflow: visible; }
.fd-draw__figs text { font-family: var(--fd-figs); font-size: 13px; letter-spacing: 0.04em; }
.fd-draw__dims { opacity: 0.8; }
.fd-draw__marker circle { fill: var(--fd-wood); stroke: var(--fd-paper); stroke-width: 3; }
.fd-draw__marker text { fill: #ffffff; font-family: var(--fd-figs); font-size: 15px; font-weight: 600; }

html[data-fundament-drawings="off"] :is(.fd-hero__drawing, .fd-ftr__drawing, .fd-drawer__plan, .fd-cat__drawing, .fd-project__plan, .fd-hero__marks) { display: none; }
html[data-fundament-drawings="off"] .cms-section__head .cms-section__title::before { display: none; }

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

/* --- 8.1 First screen --------------------------------------------------- */
.cms-section:has(> .cms-section__inner > .fd-hero) { padding: 0; }

.fd-hero {
    position: relative;
    display: grid;
    min-height: clamp(38rem, 92vh, 62rem);
    color: #fbf8f1;
    isolation: isolate;
    overflow: hidden;
}
.fd-hero__photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.fd-hero__img { width: 100%; height: 100%; object-fit: cover; }
.fd-hero--photo .fd-hero__photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgb(20 26 20 / 0.28) 0%, rgb(20 26 20 / 0) 30%),
        linear-gradient(90deg, rgb(18 28 21 / 0.45) 0%, rgb(18 28 21 / 0) 55%),
        linear-gradient(20deg, rgb(18 28 21 / 0.86) 0%, rgb(18 28 21 / 0.55) 38%, rgb(18 28 21 / 0) 70%);
}
.fd-hero--no-photo { background: var(--fd-pine-deep); }

.fd-hero__marks i {
    position: absolute;
    z-index: 1;
    width: 2.2rem;
    height: 2.2rem;
    border: 0 solid rgb(255 255 255 / 0.7);
}
.fd-hero__marks i:nth-child(1) { top: 1.4rem; left: 1.4rem; border-width: 1px 0 0 1px; }
.fd-hero__marks i:nth-child(2) { top: 1.4rem; right: 1.4rem; border-width: 1px 1px 0 0; }
.fd-hero__marks i:nth-child(3) { bottom: 1.4rem; left: 1.4rem; border-width: 0 0 1px 1px; }
.fd-hero__marks i:nth-child(4) { bottom: 1.4rem; right: 1.4rem; border-width: 0 1px 1px 0; }

.fd-hero__frame {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.8fr);
    align-items: end;
    gap: var(--s-7);
    width: 100%;
    max-width: var(--w-wide);
    margin-inline: auto;
    padding: clamp(7rem, 5rem + 8vh, 10rem) var(--gutter) clamp(3rem, 2rem + 4vh, 5rem);
    align-self: end;
}
.fd-hero__eyebrow {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-block-end: 1.4rem;
    font-family: var(--fd-figs);
    font-size: 0.85rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--fd-wood-hi);
}
.fd-hero__eyebrow::before { content: ''; width: 2.5rem; border-top: 1px solid currentColor; }
.fd-hero__title {
    max-width: 18ch;
    font-family: var(--font-display);
    font-weight: 300;
    font-size: var(--t-3xl);
    line-height: 1.0;
    letter-spacing: -0.035em;
    color: #ffffff;
    text-wrap: balance;
}
.fd-hero__lead {
    max-width: 38rem;
    margin-block-start: 1.5rem;
    font-size: var(--t-md);
    line-height: 1.6;
    color: rgb(251 248 241 / 0.86);
}
.fd-hero__actions { margin-block-start: 2.2rem; }
.fd-hero--photo .fd-hero__actions .cms-btn--primary { background: #f3ead8; color: var(--fd-pine-deep); }
.fd-hero--photo .fd-hero__actions .cms-btn--primary:hover { background: #ffffff; }
.fd-hero--photo .fd-hero__actions .cms-btn--ghost { color: #ffffff; border-color: rgb(255 255 255 / 0.55); }
.fd-hero--photo .fd-hero__actions .cms-btn--ghost:hover { border-color: #ffffff; background: rgb(255 255 255 / 0.08); }

.fd-hero__stamp {
    --fd-hair: 1px solid rgb(255 255 255 / 0.38);
    --c-text-muted: rgb(251 248 241 / 0.75);
    color: #ffffff;
    background: rgb(18 28 21 / 0.28);
    backdrop-filter: blur(6px);
}

/* Split layout: paper, a faint elevation, the photo on the right. */
.fd-hero--split { min-height: clamp(34rem, 78vh, 50rem); color: var(--c-text); background: var(--fd-paper); }
.fd-hero--split .fd-hero__photo { left: 52%; z-index: 0; }
.fd-hero--split .fd-hero__frame { grid-template-columns: minmax(0, 1fr); max-width: var(--w-wide); padding-inline-end: calc(48% + var(--gutter)); align-self: center; }
.fd-hero--split .fd-hero__title { color: var(--c-text-strong); font-size: var(--t-2xl); }
.fd-hero--split .fd-hero__lead { color: var(--c-text-muted); }
.fd-hero--split .fd-hero__eyebrow { color: var(--fd-wood-ink); }
.fd-hero--split .fd-hero__marks i { border-color: var(--fd-muted); }
.fd-hero--split .fd-hero__marks i:nth-child(2), .fd-hero--split .fd-hero__marks i:nth-child(4) { display: none; }
.fd-hero--split .fd-hero__stamp { --fd-hair: 1px solid color-mix(in srgb, var(--fd-ink) 22%, transparent); --c-text-muted: var(--fd-muted); color: var(--c-text-strong); background: transparent; backdrop-filter: none; max-width: 30rem; }
.fd-hero__drawing {
    position: absolute;
    z-index: -1;
    left: 2%;
    bottom: -3rem;
    width: min(46rem, 55%);
    color: var(--fd-pine);
    opacity: 0.1;
}
.fd-hero--no-photo .fd-hero__drawing { color: #ffffff; opacity: 0.14; left: auto; right: 2%; }

/* --- 8.2 Technologies --------------------------------------------------- */
.fd-tech__list {
    display: grid;
    grid-template-columns: repeat(var(--fd-tech-n, 4), minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: var(--fd-hair);
    border-left: var(--fd-hair);
}
.fd-tech__item { display: flex; flex-direction: column; border-right: var(--fd-hair); border-bottom: var(--fd-hair); background: var(--c-surface); }
.fd-tech__media { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--fd-sunk); }
.fd-tech__img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.fd-tech__item:hover .fd-tech__img { transform: scale(1.04); }
.fd-tech__ph { display: grid; place-items: center; height: 100%; padding: 1.5rem; color: var(--fd-pine); opacity: 0.4; }
.fd-tech__no {
    position: absolute;
    top: 0.8rem;
    left: 0.9rem;
    font-family: var(--fd-figs);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    color: #ffffff;
    text-shadow: 0 1px 6px rgb(0 0 0 / 0.5);
}
.fd-tech__body { display: flex; flex: 1; flex-direction: column; gap: 0.9rem; padding: 1.5rem 1.4rem 1.6rem; }
.fd-tech__name { font-size: 1.6rem; font-weight: 400; letter-spacing: -0.02em; color: var(--c-text-strong); }
.fd-tech__tag {
    margin-top: -0.4rem;
    font-family: var(--fd-figs);
    font-size: 0.78rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--fd-wood-ink);
}
.fd-tech__text { color: var(--c-text-muted); font-size: var(--t-sm); line-height: 1.55; }
.fd-tech__scores { display: grid; gap: 0.45rem; margin: 0.2rem 0 0; }
.fd-tech__score { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; font-size: 0.85rem; }
.fd-tech__score dd { margin: 0; }
.fd-scale { display: inline-flex; gap: 3px; }
.fd-scale i { width: 12px; height: 12px; border: 1px solid color-mix(in srgb, var(--fd-pine) 55%, transparent); }
.fd-scale i.is-on { background: var(--fd-pine); border-color: var(--fd-pine); }
.fd-tech__figs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    margin: auto 0 0;
    padding-top: 1rem;
    border-top: var(--fd-hair);
}
.fd-tech__figs dt { font-size: 0.75rem; color: var(--c-text-muted); }
.fd-tech__figs dd { margin: 0.15rem 0 0; font-family: var(--fd-figs); font-size: 1.2rem; color: var(--c-text-strong); }
.fd-tech__link { margin-top: 0.2rem; }

/* --- 8.3 Own production --------------------------------------------------- */
.fd-prod {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: clamp(2rem, 1rem + 4vw, 5rem);
    align-items: start;
}
.fd-prod--no-photo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.fd-prod__photo { position: relative; margin: 0; aspect-ratio: 5 / 4; overflow: hidden; border-radius: var(--fd-r); }
.fd-prod__img { width: 100%; height: 100%; object-fit: cover; }
.fd-prod__caption {
    position: absolute;
    left: 1rem;
    top: 1rem;
    padding: 0.4rem 0.7rem;
    background: rgb(244 239 230 / 0.92);
    color: var(--fd-ink);
    font-family: var(--fd-figs);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
}
.fd-prod__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    margin: 0;
    border-left: var(--fd-hair);
}
.fd-prod__fact { display: flex; flex-direction: column-reverse; gap: 0.2rem; padding: 1.1rem 1.1rem 0.4rem; border-right: var(--fd-hair); }
.fd-prod__fact dd { margin: 0; font-family: var(--fd-figs); font-weight: 300; font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.5rem); line-height: 1; color: var(--c-text-strong); }
.fd-prod__fact dt { font-size: 0.8rem; color: var(--c-text-muted); }
.fd-prod__body { display: grid; gap: var(--s-5); }
.fd-prod__text { font-size: var(--t-md); line-height: 1.65; }
.fd-prod__list-title {
    font-family: var(--fd-figs);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--fd-wood-ink);
}

/* --- 8.4 Guarantee -------------------------------------------------------- */
.fd-guar {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
    gap: clamp(2rem, 1rem + 4vw, 5rem);
    align-items: start;
}
.fd-guar__big { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; color: var(--fd-pine); line-height: 0.82; }
.fd-guar__value { font-family: var(--fd-figs); font-weight: 200; font-size: clamp(7rem, 4rem + 11vw, 14rem); letter-spacing: -0.05em; }
.fd-guar__unit { margin-top: 0.6rem; font-family: var(--font-display); font-size: clamp(1.4rem, 1rem + 1.4vw, 2.3rem); color: var(--c-text-strong); }
.fd-guar__caption { margin-top: 1.2rem; max-width: 20rem; font-size: var(--t-md); color: var(--c-text-strong); }
.fd-guar__text { margin-top: 1rem; max-width: 26rem; color: var(--c-text-muted); line-height: 1.6; }
.fd-guar__sheet { padding: clamp(1rem, 0.5rem + 2vw, 2rem); border: var(--fd-hair); background: var(--c-surface); }
.fd-guar__drawing { color: var(--fd-pine); }
.fd-guar__drawing .fd-draw { max-height: 22rem; }
.fd-guar__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0 var(--s-6); margin: var(--s-5) 0 0; padding: 0; list-style: none; }
.fd-guar__item { display: flex; gap: 0.9rem; padding-block: 0.9rem; border-top: var(--fd-hair); }
.fd-guar__n {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: var(--fd-wood);
    color: #ffffff;
    font-family: var(--fd-figs);
    font-size: 0.9rem;
}
.fd-guar__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.2rem 0.8rem; }
.fd-guar__title { font-weight: 600; color: var(--c-text-strong); }
.fd-guar__term { font-family: var(--fd-figs); font-size: 1.1rem; color: var(--fd-pine); }
.fd-guar__desc { margin-top: 0.25rem; font-size: var(--t-sm); color: var(--c-text-muted); line-height: 1.5; }
.fd-guar__note { grid-column: 1 / -1; }

/* --- 8.5 Plot visit ------------------------------------------------------- */
.fd-visit {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(18rem, 0.9fr);
    gap: clamp(2rem, 1rem + 4vw, 5rem);
    align-items: start;
}
.fd-visit__text { max-width: 36rem; font-size: var(--t-md); line-height: 1.6; color: var(--c-text-muted); }
.fd-visit__steps { display: grid; margin: var(--s-6) 0 0; padding: 0; list-style: none; border-top: var(--fd-hair); }
.fd-visit__step { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--s-4); padding-block: 1.2rem; border-bottom: var(--fd-hair); }
.fd-visit__time { font-family: var(--fd-figs); font-size: 1.25rem; font-weight: 300; color: var(--c-mark-text); }
.fd-visit__title { font-size: 1.2rem; font-weight: 500; color: var(--c-text-strong); letter-spacing: -0.01em; }
.fd-visit__desc { margin-top: 0.3rem; color: var(--c-text-muted); font-size: var(--t-sm); line-height: 1.55; }
.fd-visit__card {
    display: grid;
    gap: 0.6rem;
    padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
    border: var(--fd-hair);
    background: color-mix(in srgb, var(--c-bg), #ffffff 5%);
}
.fd-visit__visual { margin-bottom: 0.8rem; color: var(--c-text-strong); opacity: 0.9; }
.fd-visit__visual .fd-draw { max-height: 16rem; }
.fd-visit__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fd-visit__price { font-family: var(--fd-figs); font-weight: 200; font-size: clamp(3.2rem, 2.2rem + 3vw, 5rem); line-height: 1; color: var(--c-text-strong); }
.fd-visit__price-note { color: var(--c-text-muted); font-size: var(--t-sm); }
.fd-visit__card .cms-actions { margin-top: 0.8rem; }
.fd-visit__card .cms-btn { width: 100%; }

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

/* Steps: a construction schedule — numbered nodes on one line. */
.fd-body .cms-steps--timeline .cms-step__marker {
    background: var(--c-bg);
    border: 1px solid var(--fd-pine);
    color: var(--fd-pine);
    font-family: var(--fd-figs);
    font-weight: 400;
    border-radius: 50%;
}
.fd-body .cms-step__title { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }
.fd-body .cms-step__duration {
    font-family: var(--fd-figs);
    letter-spacing: 0.06em;
    color: var(--c-mark-text);
}
.fd-body .cms-step__duration .cms-icon { color: var(--fd-wood); }

/* Reviews: quiet paper cards, a big quotation mark in timber. */
.fd-body .cms-review.cms-card { background: var(--c-surface); border: var(--fd-hair); box-shadow: none; }
.fd-body .cms-review__text { font-family: var(--font-display); font-size: 1.15rem; line-height: 1.55; font-weight: 400; color: var(--c-text-strong); }
.fd-body .cms-review__mark { color: var(--fd-wood); }
.fd-body .cms-rating-summary__value { font-family: var(--fd-figs); font-weight: 300; }
.fd-body .cms-stars { color: var(--fd-wood); }

/* FAQ: ruled rows like a spec sheet. */
.fd-body .cms-faq__question { font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; letter-spacing: -0.01em; }
.fd-body .cms-faq--divided .cms-faq__item { border-color: var(--fd-line); }

/* Stages: numbered nodes in pine, terms as drawing figures. */
.fd-body .cms-stages__marker { border-color: var(--fd-pine); color: var(--fd-pine); font-family: var(--fd-figs); background: var(--c-bg); }
.fd-body .cms-stages__item.is-done .cms-stages__marker { background: var(--fd-pine); color: #f7f3ea; }
.fd-body .cms-stages__title { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }
.fd-body .cms-stages__meta { font-family: var(--fd-figs); letter-spacing: 0.04em; color: var(--c-mark-text); }
.fd-body .cms-stages__total-value { font-family: var(--fd-figs); font-weight: 300; font-size: 2rem; }
.fd-body .cms-stages__result { background: var(--fd-surface); border: var(--fd-hair); border-radius: var(--fd-r); }

/* Mortgage calculator: paper cards, the payment in drafting figures. */
.fd-body .cms-calc__inputs, .fd-body .cms-calc__result { border: var(--fd-hair); box-shadow: none; }
.fd-body .cms-calc__total-value { font-family: var(--fd-figs); font-weight: 300; letter-spacing: -0.01em; }
.fd-body .cms-calc__result { background: var(--fd-surface); }

/* Features, stats */
.fd-body .cms-stat__value, .fd-body .cms-stats__value { font-family: var(--fd-figs); font-weight: 300; }

/* Lead form popover */
.fd-body .cms-lead { border-radius: var(--fd-r); }

/* -------------------------------------------------------------------------
   11. Phones and tablets
   ------------------------------------------------------------------------- */

@media (max-width: 63.99rem) {
    .fd-tech__list {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        border-left: 0;
        scrollbar-width: thin;
    }
    .fd-tech__item { flex: 0 0 min(19rem, 82%); scroll-snap-align: start; border-left: var(--fd-hair); margin-left: -1px; }
    .fd-guar, .fd-prod, .fd-visit { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 59.99rem) {
    .fd-hero__frame { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
    .fd-hero--split .fd-hero__photo { position: relative; left: 0; height: 18rem; order: -1; }
    .fd-hero--split { display: flex; flex-direction: column; }
    .fd-hero--split .fd-hero__frame { padding: var(--s-6) var(--gutter) var(--s-7); }
    .fd-hero--split .fd-hero__marks { display: none; }
    .fd-ftr__sheet { grid-template-columns: minmax(0, 1fr); }
    .fd-ftr__drawing { max-width: 26rem; }
    .fd-hdr .hdr-row--main .hdr-row__inner { min-height: 4.25rem; }
}

@media (max-width: 35.99rem) {
    .fd-hero { min-height: 40rem; }
    .fd-hero__marks i { width: 1.4rem; height: 1.4rem; }
    .fd-hero__marks i:nth-child(1), .fd-hero__marks i:nth-child(2) { top: 0.8rem; }
    .fd-hero__marks i:nth-child(1), .fd-hero__marks i:nth-child(3) { left: 0.8rem; }
    .fd-hero__marks i:nth-child(2), .fd-hero__marks i:nth-child(4) { right: 0.8rem; }
    .fd-hero__marks i:nth-child(3), .fd-hero__marks i:nth-child(4) { bottom: 0.8rem; }
    .fd-hero__actions .cms-btn { width: 100%; }
    .fd-visit__step { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; }
    .fd-ftr__stamp > * { width: 100%; }
    .fd-ftr__stamp > * + *:not(.site-footer__slot) { border-left: 0; border-top: 1px solid rgb(255 255 255 / 0.2); }
}

@media (prefers-reduced-motion: reduce) {
    .fd-tech__img, .fd-card__img { transition: none; }
}

.fd-hero--photo .fd-hero__eyebrow { color: #efe2c9; text-shadow: 0 1px 10px rgb(0 0 0 / 0.55); }
