

/* Start:/local/templates/grosma/assets/css/main.css?1787595799168579*/
:root {
    /* CP-026 authoritative design tokens. */
    --color-bg: #f6f5f1;
    --color-surface: #ffffff;
    --color-surface-muted: #eeede8;
    --color-surface-dark: #22282d;
    --color-text: #1d2226;
    --color-text-muted: #686d70;
    --color-text-inverse: #f8f8f5;
    --color-line: #d8d8d2;
    --color-line-strong: #aeb2b2;
    --color-graphite: #2f363c;
    --color-accent: #e15c05;
    --color-accent-hover: #c94f00;
    --color-accent-strong: #a33f00;
    --focus-ring: #e15c05;
    --color-danger: #b42318;
    --color-success: #277a48;
    --color-overlay: rgba(22, 26, 29, .56);
    --color-surface-hover: #f3f1ec;

    --container-max: 1440px;
    --container-wide: 1680px;
    --container-narrow: 940px;
    --container-gutter: clamp(20px, 3.2vw, 52px);

    --font-family-base: Arial, Helvetica, sans-serif;
    --font-family-display: Arial, Helvetica, sans-serif;
    --text-xs: .75rem;
    --text-sm: .875rem;
    --text-base: 1rem;
    --text-lg: clamp(1.08rem, 1.15vw, 1.28rem);
    --text-lead: clamp(1.18rem, 1.55vw, 1.65rem);
    --display-xl: clamp(2.75rem, 5.6vw, 6rem);
    --heading-page: clamp(2.85rem, 4.8vw, 5.5rem);
    --heading-product: clamp(2.25rem, 3.2vw, 3.65rem);
    --heading-section: clamp(2.1rem, 3.45vw, 4rem);
    --heading-section-compact: clamp(1.9rem, 2.8vw, 3.2rem);
    --heading-card: clamp(1.35rem, 1.85vw, 2.05rem);
    --heading-card-sm: clamp(1.1rem, 1.35vw, 1.45rem);
    --heading-modal: clamp(2rem, 4vw, 3.5rem);
    --line-display: .94;
    --line-heading: 1.06;
    --line-body: 1.55;

    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4rem;
    --space-9: 6rem;
    --space-10: 8rem;
    --section-space: clamp(4.5rem, 8.5vw, 8rem);
    --section-heading-gap: clamp(1.5rem, 2.7vw, 2.5rem);
    --control-height: 3rem;
    --radius-control: 0;
    --radius-sm: .375rem;
    --radius-md: .75rem;
    --radius-lg: 1rem;
    --shadow-popover: 0 .75rem 2rem rgba(22, 26, 29, .14);
    --shadow-card-hover: 0 .75rem 1.75rem rgba(22, 26, 29, .1);
    --motion-fast: 160ms;
    --motion-base: 240ms;
    --motion-slow: 360ms;
    --ease-standard: cubic-bezier(.2, 0, 0, 1);
    --ease-emphasized: cubic-bezier(.2, .8, .2, 1);
    --transition-fast: var(--motion-fast) var(--ease-standard);
    --z-header: 900;
    --z-popover: 1150;
    --z-dialog: 1300;
    --control-height-sm: 2.75rem;
    --control-height-lg: 3.25rem;
    --icon-sm: 1rem;
    --icon-md: 1.25rem;
    --icon-lg: 1.5rem;

    /* Compatibility aliases used by older components during migration. */
    --color-muted: var(--color-text-muted);
    --color-border: var(--color-line);
    --color-brand: var(--color-graphite);
    --container: var(--container-max);
    --font-body: var(--font-family-base);
    --font-heading: var(--font-family-display);
    --font-size-base: var(--text-base);
    --font-size-h1: var(--heading-page);
    --font-size-h2: var(--heading-section);
    --font-size-h3: var(--heading-card);
    --line-height-body: var(--line-body);
    --line-height-heading: var(--line-heading);
    --type-space: var(--space-5);
}

.ui-icon {
    display: block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-action {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--control-height-sm);
    padding: var(--space-2) var(--space-3);
    border: 0;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: color var(--motion-fast) var(--ease-standard);
}
.header-action::after {
    content: "";
    position: absolute;
    right: var(--space-3);
    bottom: .2rem;
    left: var(--space-3);
    height: 2px;
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--motion-fast) var(--ease-standard);
}
.header-action:hover,
.header-action[aria-expanded="true"] { color: var(--color-accent-hover); background: transparent; }
.header-action:hover::after,
.header-action[aria-expanded="true"]::after { transform: scaleX(1); }
.header-action:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.header-action__icon { width: var(--icon-md); height: var(--icon-md); }
.ui-badge { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding-inline: .25rem; border-radius: 999px; background: var(--color-accent); color: var(--color-text-inverse); font-size: .7rem; line-height: 1; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Dynamic catalog foundation (CP-021). */
.catalog-section-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid var(--color-border);
    background: var(--color-border);
}

.catalog-section-card {
    display: grid;
    min-width: 0;
    color: var(--color-text);
    background: var(--color-bg);
    text-decoration: none;
}

.catalog-section-card:hover,
.catalog-section-card:focus-visible {
    color: var(--color-accent);
}

.catalog-section-card__media,
.catalog-leaf__media,
.catalog-product-card__media,
.catalog-detail__media {
    margin: 0;
    overflow: hidden;
    background: #eef0f1;
}

.catalog-section-card__media {
    aspect-ratio: 4 / 3;
}

.catalog-section-card__media img,
.catalog-leaf__media img,
.catalog-product-card__media img,
.catalog-detail__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.catalog-section-card__body {
    display: grid;
    align-content: start;
    gap: 14px;
    min-height: 210px;
    padding: clamp(24px, 3vw, 42px);
}

.catalog-section-card__body strong {
    color: inherit;
    font-size: var(--heading-card);
    line-height: var(--line-heading);
    overflow-wrap: anywhere;
}

.catalog-section-card__body > span:last-child {
    align-self: end;
    color: var(--color-brand);
    font-size: 14px;
}

.catalog-leaf__media,
.catalog-detail__media {
    aspect-ratio: 4 / 3;
}

.catalog-products__heading h2,
.catalog-detail__summary h1 {
    margin: 12px 0 24px;
}

.catalog-products-layout {
    display: grid;
    grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
    align-items: start;
    gap: clamp(32px, 5vw, 80px);
}

.catalog-products-layout:not(:has(.catalog-filter)) {
    grid-template-columns: 1fr;
}

.catalog-filter {
    border-top: 3px solid var(--color-accent);
    background: #f4f5f5;
}

.catalog-filter summary {
    padding: 20px 22px;
    font-weight: 700;
    cursor: pointer;
}

.catalog-filter form {
    display: grid;
    gap: 24px;
    padding: 0 22px 24px;
}

.catalog-filter fieldset {
    display: grid;
    gap: 9px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.catalog-filter legend {
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.catalog-filter label {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-width: 0;
    font-size: 14px;
}

.catalog-filter input {
    flex: 0 0 auto;
    margin-top: 3px;
}

.catalog-filter label span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.catalog-filter__actions {
    display: grid;
    gap: 14px;
}

.catalog-filter__actions a {
    color: var(--color-brand);
    text-decoration: none;
}

.catalog-products__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--color-border);
}

.catalog-products__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-4);
}

.catalog-products__meta p {
    margin: 0;
    color: var(--color-text-muted);
}

.catalog-view-toggle {
    display: inline-grid;
    grid-template-columns: repeat(2, var(--control-height-sm));
    border: 1px solid var(--color-line-strong);
    background: var(--color-surface);
}

.catalog-view-toggle button {
    display: grid;
    width: var(--control-height-sm);
    height: var(--control-height-sm);
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--color-text-muted);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.catalog-view-toggle button + button {
    border-left: 1px solid var(--color-line);
}

.catalog-view-toggle button:hover {
    color: var(--color-accent-hover);
}

.catalog-view-toggle button[aria-pressed="true"] {
    background: var(--color-graphite);
    color: var(--color-text-inverse);
}

.catalog-view-toggle button:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid var(--focus-ring);
    outline-offset: 2px;
}

.catalog-view-toggle .ui-icon {
    width: var(--icon-md);
    height: var(--icon-md);
}

.catalog-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid var(--color-border);
    background: var(--color-border);
}

.catalog-product-card {
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
    background: #fff;
}

.catalog-product-card > a {
    color: inherit;
}

.catalog-product-card__media {
    aspect-ratio: 4 / 3;
}

.catalog-product-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 24px;
}

.catalog-product-card__info {
    min-width: 0;
}

.catalog-product-card h3 {
    margin: 10px 0 18px;
    font-size: var(--heading-card-sm);
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.catalog-product-card h3 a,
.catalog-product-card__link {
    color: inherit;
    text-decoration: none;
}

.catalog-product-card h3 a:hover,
.catalog-product-card__link:hover {
    color: var(--color-accent);
}

.catalog-product-card ul {
    display: grid;
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    color: var(--color-brand);
    font-size: 13px;
}

.catalog-product-card__link {
    margin-top: auto;
    font-weight: 700;
}

.catalog-product-grid[data-catalog-view="list"] {
    grid-template-columns: minmax(0, 1fr);
}

.catalog-product-grid[data-catalog-view="list"] .catalog-product-card {
    grid-template-columns: clamp(10rem, 24vw, 15rem) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
}

.catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media-link,
.catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media {
    height: 100%;
    min-height: 13rem;
}

.catalog-product-grid[data-catalog-view="list"] .catalog-product-card__body {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(6.5rem, .45fr) minmax(14rem, 1fr);
    align-items: center;
    gap: var(--space-4) var(--space-6);
    min-width: 0;
}

.catalog-product-grid[data-catalog-view="list"] .catalog-product-card__info {
    min-width: 0;
}

.catalog-product-grid[data-catalog-view="list"] .product-price--card {
    align-self: end;
    margin: 0;
    padding: 0;
}

.catalog-product-grid[data-catalog-view="list"] .catalog-product-card__actions {
    align-self: center;
    margin: 0;
    min-width: 0;
}

.catalog-detail__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
    align-items: center;
    gap: clamp(32px, 4.5vw, 72px);
}

.catalog-detail.content-section {
    padding: clamp(30px, 3vw, 52px) 0 clamp(48px, 5.5vw, 82px);
}

.breadcrumbs--catalog-detail {
    padding-top: 18px;
    padding-bottom: 14px;
}

.catalog-detail__summary {
    min-width: 0;
}

.catalog-detail__summary .section-kicker {
    margin-bottom: 10px;
}

.catalog-detail__summary h1 {
    max-width: 16ch;
    margin: 0 0 clamp(18px, 2vw, 28px);
    font-size: var(--heading-product);
    letter-spacing: -.035em;
    line-height: var(--line-heading);
    overflow-wrap: break-word;
    word-break: normal;
}

.catalog-detail__summary > p:not(.section-kicker) {
    max-width: 580px;
    margin: 0 0 28px;
    color: var(--color-muted);
}

.catalog-specs.content-section,
.catalog-description.content-section,
.catalog-technical-table.content-section {
    padding: clamp(52px, 6vw, 88px) 0;
}

.catalog-specs__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border-top: 1px solid var(--color-border);
}

.catalog-specs__list > div {
    display: grid;
    grid-template-columns: minmax(160px, .8fr) minmax(0, 1.2fr);
    gap: 20px;
    padding: 18px 0;
    border-bottom: 1px solid var(--color-border);
}

.catalog-specs__list > div:nth-child(odd) {
    padding-right: 32px;
}

.catalog-specs__list > div:nth-child(even) {
    padding-left: 32px;
    border-left: 1px solid var(--color-border);
}

.catalog-specs dt {
    color: var(--color-brand);
}

.catalog-specs dd {
    min-width: 0;
    margin: 0;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.catalog-technical-table__heading {
    max-width: 780px;
    margin-bottom: clamp(28px, 4vw, 46px);
}

.catalog-technical-table__heading h2 {
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.045em;
    line-height: var(--line-heading);
}

.catalog-technical-table__scroll-hint {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.catalog-technical-table__scroll {
    max-width: 100%;
    overflow-x: auto;
    border-top: 2px solid var(--color-brand);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.catalog-technical-table__scroll:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 4px;
}

.catalog-technical-table table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    background: var(--color-bg);
}

.catalog-technical-table th,
.catalog-technical-table td {
    min-width: 128px;
    padding: 15px 18px;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
}

.catalog-technical-table th {
    background: var(--color-brand);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .025em;
}

.catalog-technical-table td:first-child,
.catalog-technical-table th:first-child {
    min-width: 170px;
}

.catalog-technical-table tbody tr:nth-child(even) td {
    background: #f6f6f4;
}

.catalog-final-cta {
    padding: clamp(48px, 6vw, 80px) 0;
    background: var(--color-bg);
}

.catalog-final-cta__panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
    align-items: center;
    gap: clamp(36px, 7vw, 104px);
    padding: clamp(34px, 4vw, 58px);
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: #f3f3f0;
}

.catalog-final-cta__panel::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 4px;
    background: var(--color-accent);
}

.catalog-final-cta h2 {
    max-width: 760px;
    margin: 0;
    color: var(--color-brand);
    font-size: var(--heading-section-compact);
    letter-spacing: -.04em;
    line-height: var(--line-heading);
}

.catalog-final-cta__action {
    justify-self: end;
    max-width: 620px;
}

.catalog-final-cta__action p {
    max-width: 620px;
    margin: 0 0 28px;
    color: var(--color-text);
}

@media (max-width: 1100px) {
    .catalog-hero .inner-hero__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 38px;
    }

    .catalog-hero .inner-hero__lead {
        max-width: 720px;
    }

    .catalog-section-grid,
    .catalog-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-products-layout {
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 32px;
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card {
        grid-template-columns: minmax(8rem, 34%) minmax(0, 1fr);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__body {
        grid-template-columns: minmax(0, 1fr) minmax(6.5rem, auto);
        gap: var(--space-3);
        padding: var(--space-4);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__info {
        grid-column: 1;
    }

    .catalog-product-grid[data-catalog-view="list"] .product-price--card {
        grid-column: 2;
        grid-row: 1;
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__actions {
        grid-column: 1 / -1;
    }

    .catalog-detail__hero {
        grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
        gap: 32px;
    }

    .catalog-final-cta__panel {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr);
        gap: 48px;
    }

    .catalog-specs__list {
        grid-template-columns: 1fr;
    }

    .catalog-specs__list > div:nth-child(n) {
        padding-right: 0;
        padding-left: 0;
        border-left: 0;
    }
}

@media (max-width: 900px) {
    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media-link,
    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__body {
        grid-template-columns: minmax(0, 1fr);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__info,
    .catalog-product-grid[data-catalog-view="list"] .product-price--card,
    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__actions {
        grid-column: 1;
        grid-row: auto;
    }
}

@media (max-width: 767px) {
    .catalog-section-grid,
    .catalog-product-grid,
    .catalog-products-layout,
    .catalog-detail__hero {
        grid-template-columns: 1fr;
    }

    .catalog-section-card__body {
        min-height: 0;
        padding: 24px;
    }

    .catalog-products-layout {
        gap: 28px;
    }

    .catalog-filter:not([open]) form {
        display: none;
    }

    .catalog-products__heading {
        align-items: start;
        flex-direction: column;
    }

    .catalog-products__meta {
        width: 100%;
        justify-content: space-between;
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media-link,
    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__media {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__body {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-3);
        padding: var(--space-4);
    }

    .catalog-product-grid[data-catalog-view="list"] .catalog-product-card__info {
        grid-row: auto;
    }

    .catalog-specs__list > div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .catalog-description {
        overflow-x: clip;
    }

    .catalog-detail.content-section {
        padding: 28px 0 48px;
    }

    .breadcrumbs--catalog-detail {
        padding-top: 14px;
        padding-bottom: 10px;
    }

    .catalog-detail__hero {
        gap: 28px;
    }

    .catalog-detail__summary h1 {
        max-width: none;
        margin-bottom: 18px;
        font-size: var(--heading-product);
        line-height: 1.08;
    }

    .catalog-detail__summary > p:not(.section-kicker) {
        margin-bottom: 24px;
    }

    .catalog-specs.content-section,
    .catalog-description.content-section,
    .catalog-technical-table.content-section {
        padding: 46px 0;
    }

    .catalog-technical-table__scroll-hint {
        position: static;
        width: auto;
        height: auto;
        margin: -14px 0 16px;
        overflow: visible;
        clip: auto;
        white-space: normal;
        color: var(--color-muted);
        font-size: 13px;
    }

    .catalog-technical-table th,
    .catalog-technical-table td {
        min-width: 118px;
        padding: 13px 14px;
    }

    .catalog-final-cta {
        padding: 40px 0 48px;
    }

    .catalog-final-cta__panel {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 24px;
        padding: 30px 24px;
    }

    .catalog-final-cta h2 {
        font-size: var(--heading-section-compact);
    }

    .catalog-final-cta__action {
        justify-self: stretch;
    }

    .catalog-final-cta__action p {
        margin-bottom: 24px;
    }
}

.review-layout {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(30rem, 1fr);
    gap: clamp(3rem, 9vw, 9rem);
    align-items: start;
}

.review-layout h2 {
    margin: 0;
    font-size: var(--heading-section);
    line-height: var(--line-heading);
}

.review-layout__lead {
    max-width: 34rem;
    color: var(--color-text-muted);
    font-size: var(--text-lg);
}

.review-form {
    display: grid;
    gap: var(--space-5);
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid var(--color-line);
    background: var(--color-surface);
}

.review-form label:not(.review-form__consent) {
    display: grid;
    gap: var(--space-2);
}

.review-form label > span {
    font-size: var(--text-sm);
    font-weight: 700;
}

.review-form label small {
    color: var(--color-text-muted);
    font-weight: 400;
}

.review-form input[type="text"],
.review-form textarea {
    width: 100%;
    min-height: var(--control-height);
    padding: .85rem 1rem;
    border: 1px solid var(--color-line-strong);
    border-radius: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font: inherit;
}

.review-form textarea {
    resize: vertical;
}

.review-form__consent {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.review-form__consent input {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: .1rem;
    flex: 0 0 auto;
}

.review-form__honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}

.review-form__errors,
.review-form__success {
    padding: var(--space-4);
    border-left: 3px solid var(--color-accent);
    background: var(--color-surface-muted);
}

.review-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: var(--space-7);
    background: var(--color-line);
}

.review-card {
    min-height: 18rem;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: var(--color-surface);
}

.review-card blockquote {
    margin: 0;
    font-size: var(--text-lg);
}

.review-card footer {
    display: grid;
    gap: var(--space-1);
    margin-top: var(--space-7);
    color: var(--color-text-muted);
}

@media (max-width: 767px) {
    .review-layout,
    .review-card-grid {
        grid-template-columns: 1fr;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    scroll-padding-top: 112px;
}

body {
    margin: 0;
    padding: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    line-height: var(--line-height-body);
}

.site {
    position: relative;
}

.site-header-sentinel {
    position: absolute;
    z-index: -1;
    top: 24px;
    left: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

h1,
h2,
h3 {
    font-family: var(--font-heading);
}

body.menu-open {
    overflow: hidden;
}

body.modal-open {
    overflow: hidden;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

.ui-icon {
    width: 1.25em;
    height: 1.25em;
    flex: 0 0 auto;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.site-media {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: #eeefed;
    isolation: isolate;
}

.site-media::after {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    width: 34px;
    height: 34px;
    border-right: 4px solid var(--color-accent);
    border-bottom: 4px solid var(--color-accent);
    content: "";
    pointer-events: none;
}

.site-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a {
    color: inherit;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 3px;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.container {
    width: min(calc(100% - 48px), var(--container));
    margin: 0 auto;
}

.site-header {
    position: sticky;
    z-index: 900;
    top: var(--admin-panel-offset, 0px);
    pointer-events: none;
}

.site-header.is-scrolled {
    height: var(--site-header-flow-height);
}

.site-header__surface {
    position: relative;
    width: 100%;
    pointer-events: auto;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    transition: box-shadow .18s ease;
}

.site-header__utility {
    border-bottom: 1px solid var(--color-line);
    background: var(--color-surface-muted);
}

.site-header__utility-inner {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
}

.site-header__utility-contacts {
    display: flex;
    align-items: center;
    gap: var(--space-5);
}

.site-header.is-scrolled .site-header__surface {
    position: fixed;
    top: var(--admin-panel-offset, 0px);
    right: 0;
    left: 0;
    box-shadow: 0 8px 24px rgba(22, 22, 22, .08);
}

.site-header__inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: var(--space-5);
    transition: min-height .18s ease, gap .18s ease;
}

.site-logo {
    display: block;
    flex: 0 0 auto;
    width: 176px;
    text-decoration: none;
    transition: width .18s ease;
}

.site-logo img {
    width: 176px;
    height: auto;
    object-fit: contain;
    transition: width .18s ease, height .18s ease;
}

.site-header__menu {
    min-width: 0;
    flex: 1 1 auto;
}

.main-nav__list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(16px, 1.6vw, 30px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-nav__link {
    position: relative;
    display: block;
    padding: 27px 0 26px;
    color: var(--color-brand);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s ease, padding .18s ease;
}

.main-nav__link::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    height: 2px;
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: center;
    transition: bottom .18s ease, transform .2s ease;
}

.main-nav__link:hover,
.main-nav__link.is-active {
    color: var(--color-accent);
}

.main-nav__link:hover::after,
.main-nav__link.is-active::after {
    transform: scaleX(1);
}

.header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 20px;
    border-radius: 4px;
    background: var(--color-accent);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .2s ease;
}

.header-cta:hover {
    background: var(--color-accent-hover);
}

.header-cta--mobile {
    display: none;
}

.header-contacts {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--space-5);
    transition: gap .18s ease;
}

.header-mobile-contacts {
    display: none;
}

.header-callback,
.footer-callback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 14px;
    border: 1px solid var(--color-accent);
    background: transparent;
    color: var(--color-accent);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: min-height .18s ease, padding .18s ease, background-color .2s ease, color .2s ease;
}

.header-callback:hover,
.footer-callback:hover {
    background: var(--color-accent);
    color: #fff;
}

.contact-link {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
    vertical-align: middle;
}

.contact-link__value {
    min-width: 0;
    color: inherit;
    text-decoration: none;
    user-select: text;
    transition: color .2s ease, opacity .2s ease;
}

.contact-link__value:hover,
.contact-link__value:focus {
    color: inherit;
    text-decoration: none;
    opacity: .7;
}

.header-search-row { display: none; }

.header-search-compact {
    width: clamp(12rem, 17vw, 17rem);
    flex: 0 1 17rem;
}

.header-search-mobile {
    display: none;
}

.header-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: var(--control-height-sm);
    border: 1px solid #cfcfcb;
    background: var(--color-bg);
    transition: min-height .18s ease, border-color .2s ease;
}

@media (min-width: 1280px) {
    .site-header.is-scrolled .site-header__inner {
        min-height: 64px;
        gap: var(--space-4);
    }

    .site-header.is-scrolled .site-header__utility-inner { min-height: 34px; }

    .site-header.is-scrolled .site-logo,
    .site-header.is-scrolled .site-logo img {
        width: 168px;
    }

    .site-header.is-scrolled .site-logo img {
        height: 49px;
    }

    .site-header.is-scrolled .main-nav__link {
        padding-top: 21px;
        padding-bottom: 21px;
    }

    .site-header.is-scrolled .main-nav__link::after {
        bottom: 13px;
    }

    .site-header.is-scrolled .header-contacts {
        gap: 4px;
    }

    .site-header.is-scrolled .header-callback--desktop {
        min-height: 38px;
        padding: 8px 14px;
    }

    .site-header.is-scrolled .header-search-form--desktop {
        min-height: 34px;
    }

    .site-header.is-scrolled .header-search-form--desktop .header-search-form__input,
    .site-header.is-scrolled .header-search-form--desktop .header-search-form__button {
        padding-top: 5px;
        padding-bottom: 5px;
    }
}

.header-search-form:focus-within {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px rgba(225, 92, 5, .13);
}

.header-search-form__input {
    min-width: 0;
    width: 100%;
    padding: 9px 15px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-size: 14px;
    outline: 0;
    transition: padding .18s ease;
}

.header-search-form__input::placeholder {
    color: #74777a;
    opacity: 1;
}

.header-search-form__button {
    display: inline-flex;
    min-width: var(--control-height-sm);
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: var(--space-2);
    border: 0;
    border-left: 1px solid #cfcfcb;
    border-radius: 0;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);
    cursor: pointer;
}

.header-search-form--desktop .header-search-form__button-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.header-search-form__button:hover {
    background: var(--color-accent);
}

.header-search-form__icon {
    width: 18px;
    height: 18px;
}

.contact-copy {
    display: inline-flex;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    opacity: .62;
    transition: opacity .2s ease, color .2s ease, background-color .2s ease;
}

.contact-copy:hover,
.contact-copy.is-copied {
    opacity: 1;
}

.contact-copy__icon {
    width: 16px;
    height: 16px;
}

.contact-link--header {
    justify-content: flex-end;
    color: var(--color-brand);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.contact-link--header .contact-copy {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
}

.contact-link--header .contact-copy__icon {
    width: 14px;
    height: 14px;
}

.copy-feedback {
    position: fixed;
    z-index: 1300;
    right: 24px;
    bottom: 24px;
    padding: 11px 15px;
    background: var(--color-brand);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease;
}

.copy-feedback.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}

.social-links img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.form-modal {
    position: fixed;
    z-index: 1200;
    inset: 0;
}

.form-modal__overlay {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 24px;
    overflow-y: auto;
    background: rgba(22, 22, 22, .66);
    opacity: 0;
    transition: opacity .2s ease;
}

.form-modal.is-open .form-modal__overlay {
    opacity: 1;
}

.form-modal__dialog {
    position: relative;
    width: min(100%, 760px);
    min-height: calc(100vh - 48px);
    padding: clamp(32px, 5vw, 72px);
    background: var(--color-bg);
    color: var(--color-text);
    box-shadow: -20px 0 50px rgba(0, 0, 0, .16);
    transform: translateX(36px);
    transition: transform .22s ease;
}

.form-modal.is-open .form-modal__dialog {
    transform: translateX(0);
}

.form-modal__close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-brand);
    cursor: pointer;
}

.form-modal__close span {
    position: absolute;
    top: 23px;
    left: 12px;
    width: 24px;
    height: 2px;
    background: currentColor;
}

.form-modal__close span:first-child {
    transform: rotate(45deg);
}

.form-modal__close span:last-child {
    transform: rotate(-45deg);
}

.form-modal__heading {
    max-width: 560px;
    padding-right: 48px;
}

.form-modal__heading > p {
    margin: 0 0 14px;
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.form-modal__heading h2,
.form-modal__success h2 {
    margin: 0;
    font-size: var(--heading-modal);
    letter-spacing: -.055em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.form-modal__panels {
    margin-top: 38px;
}

.request-form--modal {
    max-width: none;
    margin-top: 0;
}

.request-form--modal .request-form__field {
    margin-bottom: 17px;
}

.request-form__honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.request-form--modal .request-form__field label {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
}

.request-form--modal .request-form__field input,
.request-form--modal .request-form__field textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font: inherit;
}

.request-form--modal .request-form__field textarea {
    min-height: 130px;
    resize: vertical;
}

.request-form--modal .request-form__field input:focus,
.request-form--modal .request-form__field textarea:focus {
    border-color: var(--color-accent);
    outline: 2px solid rgba(225, 92, 5, .18);
    outline-offset: 0;
}

.request-form--modal .request-form__hint,
.request-form--modal .request-form__required {
    color: var(--color-muted);
    font-size: 12px;
}

.request-form__consent {
    margin: 24px 0;
    font-size: 13px;
    line-height: 1.45;
}

.request-form__consent label {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: flex-start;
    gap: 10px;
}

.request-form__consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin: .12em 0 0;
}

.request-form__consent-text {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}

.request-form--modal .request-form__submit {
    width: 100%;
    cursor: pointer;
}

.request-form--modal .request-form__submit:disabled {
    cursor: wait;
    opacity: .62;
}

.form-modal__errors {
    margin-bottom: 22px;
    padding: 16px 18px;
    border: 1px solid #b42318;
    background: #fff4f2;
    color: #7a1710;
}

.form-modal__errors p {
    margin: 0 0 8px;
    font-weight: 700;
}

.form-modal__errors ul {
    margin: 0;
    padding-left: 20px;
}

.form-modal__success {
    padding-top: clamp(48px, 8vw, 100px);
}

.form-modal__success > p:not(.section-kicker) {
    max-width: 530px;
    margin: 24px 0 0;
    color: var(--color-muted);
}

.form-modal__success .button {
    margin-top: 34px;
}

.menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    margin-left: auto;
    padding: 10px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 26px;
    height: 2px;
    margin: 5px 0;
    background: var(--color-brand);
    transition:
        transform .2s ease,
        opacity .2s ease;
}

.site-main {
    min-height: 60vh;
}

.section-kicker {
    margin: 0 0 18px;
    color: var(--color-accent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 52px;
    padding: 15px 23px;
    border: 1px solid transparent;
    border-radius: 0;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.button--accent {
    background: var(--color-accent);
    color: #fff;
}

.button--accent:hover {
    background: var(--color-accent-hover);
}

.button--light {
    border-color: #fff;
    background: #fff;
    color: var(--color-brand);
}

.button--light:hover {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: #fff;
}

.button--outline {
    border-color: var(--color-brand);
    color: var(--color-brand);
}

.button--outline:hover {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: #fff;
}

.home-hero {
    overflow: hidden;
    padding: clamp(48px, 7vw, 118px) 0 clamp(64px, 8vw, 132px);
    background: #fff;
}

.home-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(410px, .82fr);
    align-items: stretch;
    gap: clamp(40px, 4.2vw, 76px);
}

.home-hero__content {
    display: flex;
    min-height: 510px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.home-hero__media {
    min-height: 510px;
}

.home-hero__title {
    max-width: 790px;
    margin: 0;
    color: var(--color-text);
    font-size: var(--display-xl);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: var(--line-display);
    text-transform: uppercase;
}

.home-hero__title span {
    display: block;
    color: var(--color-brand);
    white-space: nowrap;
}

.home-hero__title .home-hero__title-main {
    color: var(--color-text);
}

.home-hero__lead {
    max-width: 610px;
    margin: 31px 0 35px;
    color: var(--color-brand);
    font-size: clamp(18px, 1.45vw, 22px);
    line-height: 1.42;
}

.home-hero__competencies {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 0;
    margin: auto 0 0;
    padding: 47px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    list-style: none;
    text-transform: uppercase;
}

.home-hero__competencies li {
    display: flex;
    align-items: center;
}

.home-hero__competencies li:not(:last-child)::after {
    width: 30px;
    height: 1px;
    margin: 0 15px;
    background: var(--color-border);
    content: "";
}

.home-solutions {
    padding: clamp(65px, 8vw, 136px) 0 clamp(58px, 6vw, 96px);
    background: var(--color-brand);
    color: #fff;
}

.section-heading {
    max-width: 720px;
}

.section-heading h2 {
    margin: 0;
    color: var(--color-text);
    font-size: var(--heading-section);
    font-weight: 700;
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.section-heading--dark h2 {
    color: #fff;
}

.solutions-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1px;
    margin-top: clamp(42px, 5vw, 78px);
    background: rgba(255, 255, 255, .2);
}

.solution {
    position: relative;
    display: flex;
    min-height: 254px;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 26px;
    background: var(--color-brand);
    transition: background-color .25s ease;
    grid-column: span 2;
}

.solution--wide {
    grid-column: span 3;
}

.solution::before {
    position: absolute;
    right: -18%;
    bottom: -37%;
    width: 70%;
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, .18);
    content: "";
    transform: rotate(45deg);
    transition: border-color .25s ease, transform .25s ease;
}

.solution:hover {
    background: #30363c;
}

.solution:hover::before {
    border-color: var(--color-accent);
    transform: rotate(54deg);
}

.solution__number {
    color: var(--color-accent);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.solution__icon {
    position: absolute;
    z-index: 1;
    top: 24px;
    right: 24px;
    width: 34px;
    height: 34px;
    color: var(--color-accent);
}

.solution h3 {
    position: relative;
    z-index: 1;
    max-width: 460px;
    margin: auto 0 0;
    font-size: var(--heading-card);
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: var(--line-heading);
}

.solution h3 a {
    color: inherit;
    text-decoration: none;
}

.solution h3 a::after {
    position: absolute;
    inset: 0;
    content: "";
}

.solution__line {
    position: relative;
    z-index: 1;
    width: 54px;
    height: 2px;
    margin-top: 24px;
    background: var(--color-accent);
}

.home-solutions__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin-top: 32px;
    padding-top: 31px;
    border-top: 1px solid rgba(255, 255, 255, .22);
}

.home-solutions__bottom p {
    max-width: 510px;
    margin: 0;
    color: rgba(255, 255, 255, .75);
    font-size: 16px;
}

.home-products {
    padding: clamp(65px, 9vw, 148px) 0;
    background: #fff;
}

.home-products__grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: clamp(50px, 11vw, 180px);
}

.home-products__content {
    max-width: 650px;
}

.home-products__lead {
    margin: 0 0 38px;
    color: var(--color-brand);
    font-size: clamp(20px, 2vw, 31px);
    letter-spacing: -.03em;
    line-height: 1.23;
}

.product-preview {
    border-top: 2px solid var(--color-brand);
}

.product-preview__caption {
    margin: 19px 0 0;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.product-preview__list {
    margin: 15px 0 0;
    padding: 0;
    list-style: none;
}

.product-preview__list li {
    position: relative;
    padding: 19px 40px 19px 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: clamp(19px, 1.8vw, 28px);
    font-weight: 600;
    letter-spacing: -.03em;
    line-height: 1.15;
}

.product-preview__list li::after {
    position: absolute;
    top: 50%;
    right: 2px;
    width: 17px;
    height: 17px;
    border-top: 1px solid var(--color-accent);
    border-right: 1px solid var(--color-accent);
    content: "";
    transform: translateY(-50%) rotate(45deg);
}

.product-preview__list a {
    display: block;
    text-decoration: none;
}

.product-preview__list a:hover {
    color: var(--color-accent);
}

.home-products__note {
    max-width: 550px;
    margin: 25px 0 29px;
    color: var(--color-muted);
    font-size: 14px;
}

.home-metalwork {
    overflow: hidden;
    padding: clamp(72px, 9vw, 148px) 0;
    background: #f3f3f1;
}

.home-metalwork__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
    align-items: end;
    gap: clamp(50px, 9vw, 150px);
    margin-bottom: clamp(48px, 6vw, 88px);
}

.home-metalwork__heading .section-heading {
    max-width: 900px;
}

.home-metalwork__title span {
    display: block;
}

.home-metalwork__title span:last-child {
    color: var(--color-brand);
}

.home-metalwork__lead {
    max-width: 570px;
    margin: 0 0 4px;
    color: var(--color-brand);
    font-size: clamp(20px, 1.8vw, 29px);
    letter-spacing: -.03em;
    line-height: 1.25;
}

.home-metalwork__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
    gap: clamp(42px, 7vw, 112px);
}

.home-metalwork__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.home-metalwork__media {
    min-height: 570px;
}

.home-metalwork__caption {
    margin: 0;
    padding-bottom: 18px;
    border-bottom: 2px solid var(--color-brand);
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.home-metalwork__directions {
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-metalwork__directions li {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 13px;
    align-items: baseline;
    padding: 20px 0;
    border-bottom: 1px solid #d7d7d3;
    color: var(--color-text);
    font-size: clamp(20px, 1.8vw, 28px);
    font-weight: 600;
    letter-spacing: -.03em;
    line-height: 1.15;
}

.home-metalwork__directions li span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
}

.home-metalwork__action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-top: auto;
    padding-top: 38px;
}

.home-metalwork__action p {
    max-width: 310px;
    margin: 0;
    color: var(--color-muted);
    font-size: 14px;
}

.home-metalwork__action .button {
    flex: 0 0 auto;
}

.site-footer {
    padding: 72px 0 28px;
    background: var(--color-brand);
    color: #fff;
}

.site-footer__brand {
    display: inline-block;
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
}

.site-footer__top {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
    gap: clamp(60px, 9vw, 140px);
    padding-bottom: 64px;
}

.site-footer__intro p {
    max-width: 360px;
    margin: 22px 0 32px;
    color: rgba(255, 255, 255, .68);
}

.site-footer__contacts {
    display: grid;
    gap: 12px;
}

.contact-link--footer {
    justify-content: flex-start;
    color: #fff;
    font-size: clamp(17px, 1.45vw, 22px);
    font-weight: 600;
}

.footer-callback {
    margin-top: 24px;
}

.social-links--footer {
    margin-top: 18px;
    color: #fff;
    font-size: 13px;
}

.site-footer__nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
}

.site-footer__nav--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.site-footer__nav div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.site-footer__nav p {
    margin: 0 0 9px;
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.site-footer__nav a {
    color: rgba(255, 255, 255, .8);
    font-size: 14px;
    text-decoration: none;
    transition: color .2s ease;
}

.site-footer__nav a:hover {
    color: #fff;
}

.site-footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    color: rgba(255, 255, 255, .5);
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.site-footer__bottom a {
    color: inherit;
    text-underline-offset: 3px;
}

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    padding-top: 24px;
    padding-bottom: clamp(18px, 2vw, 28px);
    color: var(--color-muted);
    font-size: 12px;
    line-height: 1.45;
}

.breadcrumbs > * {
    min-width: 0;
}

.breadcrumbs a {
    text-decoration: none;
}

.breadcrumbs a:hover {
    color: var(--color-accent);
}

.inner-hero {
    overflow: hidden;
    padding: clamp(48px, 7vw, 112px) 0 clamp(60px, 8vw, 128px);
    border-bottom: 1px solid var(--color-border);
}

.inner-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
    align-items: end;
    gap: clamp(52px, 10vw, 160px);
}

.inner-hero__grid--media {
    grid-template-columns: minmax(0, 1fr) minmax(500px, 1fr);
    grid-template-areas:
        "title media"
        "lead media";
    align-items: stretch;
    column-gap: clamp(3rem, 8vw, 1.5rem);
    row-gap: 30px;
}

.inner-hero__grid--media > :first-child {
    grid-area: title;
    align-self: end;
}

.inner-hero__grid--media > .inner-hero__lead {
    grid-area: lead;
    align-self: start;
}

.inner-hero__media {
    min-height: 350px;
    grid-area: media;
}

.inner-hero--dark .inner-hero__media {
    border-color: rgba(255, 255, 255, .2);
}

.inner-hero h1 {
    max-width: 900px;
    margin: 0;
    font-size: var(--heading-page);
    font-weight: 700;
    letter-spacing: -.06em;
    line-height: var(--line-display);
    text-transform: uppercase;
}

.inner-hero__lead {
    max-width: 600px;
    margin: 0;
    color: var(--color-brand);
    font-size: clamp(19px, 1.75vw, 27px);
    letter-spacing: -.025em;
    line-height: 1.28;
}

.inner-hero--dark {
    background: var(--color-brand);
    color: #fff;
}

.inner-hero--dark .inner-hero__lead {
    color: rgba(255, 255, 255, .76);
}

.content-section {
    padding: clamp(68px, 8vw, var(--section-space)) 0;
}

.content-section--soft {
    background: #f3f3f1;
}

.split-content {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    gap: clamp(60px, 11vw, 180px);
}

.split-content > * {
    min-width: 0;
}

.split-content h2,
.empty-state h2,
.contact-action h2,
.page-cta h2 {
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.prose {
    max-width: 720px;
    color: var(--color-brand);
    font-size: clamp(18px, 1.5vw, 23px);
}

.prose p {
    margin: 0;
}

.prose p + p {
    margin-top: 25px;
}

.direction-lines {
    margin-top: clamp(42px, 6vw, 76px);
    border-top: 2px solid var(--color-brand);
}

.direction-lines > a,
.direction-lines > div {
    display: grid;
    grid-template-columns: 54px minmax(220px, .8fr) minmax(220px, 1.2fr);
    gap: 24px;
    align-items: center;
    min-height: 92px;
    padding: 20px 0;
    border-bottom: 1px solid #d4d4d1;
    text-decoration: none;
}

.direction-lines > a {
    transition: color .2s ease, padding-left .2s ease;
}

.direction-lines > a:hover {
    padding-left: 8px;
    color: var(--color-accent);
}

.direction-lines span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
}

.direction-lines strong {
    font-size: clamp(21px, 2vw, 30px);
    letter-spacing: -.03em;
    line-height: 1.1;
}

.direction-lines small {
    color: var(--color-muted);
    font-size: 15px;
}

.direction-lines--compact > a,
.direction-lines--compact > div {
    grid-template-columns: 54px minmax(0, 1fr);
}

.direction-lines--editorial {
    display: grid;
    margin-top: 0;
    border-top: 0;
    gap: 1px;
    background: var(--color-line);
}

.direction-entry {
    display: grid;
    min-height: clamp(22rem, 30vw, 29rem);
    padding: clamp(2rem, 4vw, 4.5rem);
    grid-template-columns: clamp(3.5rem, 6vw, 6rem) minmax(0, 1fr);
    gap: clamp(1.5rem, 3.5vw, 4.5rem);
    align-items: start;
    background: var(--color-surface);
}

.direction-entry > * {
    min-width: 0;
}

.direction-entry--protective {
    background: var(--color-graphite);
    color: #fff;
}

.direction-entry__number {
    color: var(--color-accent);
    font-size: clamp(2.5rem, 5vw, 5.5rem);
    font-weight: 650;
    letter-spacing: -.07em;
    line-height: .8;
}

.direction-entry__heading p {
    margin: 0 0 var(--space-5);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.direction-entry__heading {
    grid-column: 2;
}

.direction-entry--protective .direction-entry__heading p {
    color: rgba(255, 255, 255, .58);
}

.direction-entry__heading h3 {
    margin: 0;
    font-size: clamp(2rem, 3vw, 3.5rem);
    letter-spacing: -.055em;
    line-height: var(--line-heading);
    text-transform: uppercase;
    overflow-wrap: break-word;
    hyphens: auto;
}

.direction-entry__heading h3 a {
    color: inherit;
    text-decoration: none;
}

.direction-entry__heading h3 a:focus-visible,
.direction-entry__action:focus-visible,
.direction-entry__body li a:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 4px;
}

.direction-entry__body {
    display: grid;
    max-width: none;
    grid-column: 2;
    grid-template-columns: minmax(16rem, .78fr) minmax(0, 1.22fr);
    gap: clamp(1.5rem, 4vw, 5rem);
    align-items: start;
}

.direction-entry__body > p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-lg);
    line-height: 1.55;
}

.direction-entry--protective .direction-entry__body > p {
    color: rgba(255, 255, 255, .72);
}

.direction-entry__body ul {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--space-5);
    list-style: none;
}

.direction-entry__body li {
    min-width: 0;
    padding: .8rem 0;
    border-top: 1px solid var(--color-line);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.direction-entry--protective .direction-entry__body li {
    border-top-color: rgba(255, 255, 255, .18);
    color: rgba(255, 255, 255, .78);
}

.direction-entry__body li a {
    display: block;
    color: inherit;
    text-decoration: none;
    overflow-wrap: break-word;
}

.direction-entry__body li a:hover {
    color: var(--color-accent);
}

.direction-entry__action {
    display: inline-flex;
    margin-top: clamp(2rem, 5vw, 4rem);
    gap: var(--space-3);
    align-items: center;
    color: inherit;
    font-size: var(--text-sm);
    font-weight: 700;
    text-underline-offset: .3em;
}

.catalog-direction-groups {
    border-top: 2px solid var(--color-graphite);
}

.catalog-direction-group {
    display: grid;
    padding-block: clamp(2rem, 4vw, 3.75rem);
    border-bottom: 1px solid var(--color-line);
    grid-template-columns: clamp(3rem, 6vw, 6rem) minmax(16rem, .75fr) minmax(20rem, 1.25fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: start;
}

.catalog-direction-group > span {
    color: var(--color-accent);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .11em;
}

.catalog-direction-group h3 {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 2.25rem);
    letter-spacing: -.035em;
    line-height: 1.12;
}

.catalog-direction-group h3 a {
    color: inherit;
    text-decoration: none;
}

.catalog-direction-group h3 a:hover {
    color: var(--color-accent);
}

.catalog-direction-group p {
    max-width: 34rem;
    margin: var(--space-4) 0 0;
    color: var(--color-text-muted);
}

.catalog-direction-group ul {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) var(--space-5);
    list-style: none;
}

.catalog-direction-group li {
    position: relative;
    padding-left: 1rem;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.catalog-direction-group li::before {
    position: absolute;
    top: .65em;
    left: 0;
    width: .35rem;
    height: .35rem;
    background: var(--color-accent);
    content: "";
}

.catalog-direction-group__action {
    justify-self: start;
    color: var(--color-text);
    font-weight: 700;
    text-underline-offset: .3em;
}

.section-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin-top: 42px;
}

.section-action p {
    max-width: 620px;
    margin: 0;
    color: var(--color-muted);
}

.empty-state {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    gap: clamp(50px, 10vw, 150px);
    margin-top: clamp(62px, 9vw, 130px);
    padding: clamp(36px, 5vw, 72px);
    border: 1px solid #d5d5d2;
    background: #fff;
}

.empty-state--large {
    margin-top: 0;
}

.empty-state p {
    max-width: 560px;
    margin: 0 0 28px;
    color: var(--color-muted);
}

.empty-state > * {
    min-width: 0;
}

.plain-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 2px solid var(--color-brand);
}

.plain-list li {
    padding: 20px 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-brand);
    font-size: clamp(18px, 1.6vw, 24px);
}

.page-cta {
    padding: clamp(70px, 8vw, 120px) 0;
    background: var(--color-brand);
    color: #fff;
}

.page-cta__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .7fr);
    gap: clamp(60px, 11vw, 170px);
    align-items: end;
}

.page-cta__grid p:not(.section-kicker) {
    max-width: 530px;
    margin: 0 0 29px;
    color: rgba(255, 255, 255, .72);
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
    gap: clamp(60px, 12vw, 190px);
}

.contact-primary > a,
.contact-primary__item > a,
.contact-link--contact-page .contact-link__value {
    display: inline-block;
    color: var(--color-text);
    font-size: clamp(29px, 4vw, 60px);
    font-weight: 700;
    letter-spacing: -.05em;
    line-height: 1;
    overflow-wrap: anywhere;
    text-underline-offset: 8px;
}

.contact-link--contact-page .contact-copy {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
}

.contact-primary__item + .contact-primary__item {
    margin-top: 34px;
}

.contact-primary__item > span:not(.contact-link) {
    display: block;
    margin-bottom: 10px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.requisites-layout {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: clamp(60px, 11vw, 180px);
}

.requisites-layout h2 {
    max-width: 600px;
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.requisites-list {
    margin: 0;
    border-top: 2px solid var(--color-brand);
}

.requisites-list > div {
    display: grid;
    grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr);
    gap: 24px;
    padding: 20px 0;
    border-bottom: 1px solid var(--color-border);
}

.requisites-list dt {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.requisites-list dd {
    margin: 0;
    color: var(--color-brand);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.requisites-list a {
    text-underline-offset: 4px;
}

.company-facts .text-link {
    display: inline-block;
    margin-top: 28px;
}

.contact-primary > p:last-child,
.contact-action p {
    max-width: 560px;
    margin: 29px 0 0;
    color: var(--color-muted);
}

.contact-action {
    padding-left: clamp(28px, 4vw, 60px);
    border-left: 1px solid var(--color-border);
}

.contact-action h2 {
    font-size: var(--heading-section-compact);
}

.contact-action .button {
    margin-top: 30px;
}

.solution-detail__two-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(60px, 10vw, 150px);
}

.solution-detail__two-columns h2,
.solution-flow h2,
.solution-related__heading h2 {
    margin: 0 0 38px;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.solution-flow {
    padding: clamp(70px, 9vw, 140px) 0;
    background: var(--color-brand);
    color: #fff;
}

.solution-flow ol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: clamp(44px, 6vw, 78px) 0 0;
    padding: 0;
    background: rgba(255, 255, 255, .2);
    list-style: none;
}

.solution-flow li {
    display: flex;
    min-height: 270px;
    flex-direction: column;
    padding: 26px;
    background: var(--color-brand);
}

.solution-flow li span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
}

.solution-flow li strong {
    margin-top: auto;
    font-size: clamp(21px, 2vw, 29px);
    letter-spacing: -.03em;
    line-height: 1.08;
}

.solution-flow li small {
    margin-top: 17px;
    color: rgba(255, 255, 255, .62);
    font-size: 13px;
}

.solution-related__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
}

.solution-related__heading h2 {
    margin-bottom: 0;
}

.solution-related__heading > a {
    color: var(--color-brand);
    font-weight: 700;
    text-underline-offset: 5px;
}

.solution-related {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 45px;
    background: #d3d3d0;
}

.solution-related > a {
    display: flex;
    min-height: 150px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding: 28px;
    background: #fff;
    font-size: clamp(19px, 1.8vw, 27px);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.1;
    text-decoration: none;
    transition: color .2s ease;
}

.solution-related > a:hover {
    color: var(--color-accent);
}

.solution-related > a span {
    flex: 0 0 auto;
    color: var(--color-accent);
}

.catalog-criteria {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: clamp(60px, 10vw, 150px);
}

.catalog-criteria h2,
.catalog-list-section h2 {
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.catalog-criteria ol {
    margin: 0;
    padding: 0;
    border-top: 2px solid var(--color-brand);
    list-style: none;
}

.catalog-criteria li {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 22px 0;
    border-bottom: 1px solid #d4d4d1;
}

.catalog-criteria li span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
}

.catalog-criteria li strong {
    color: var(--color-brand);
    font-size: clamp(18px, 1.6vw, 24px);
    line-height: 1.2;
}

.catalog-list-section {
    padding: clamp(70px, 9vw, 140px) 0;
}

.catalog-list-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr);
    gap: clamp(50px, 9vw, 140px);
    align-items: end;
}

.catalog-list-section__heading > p {
    max-width: 550px;
    margin: 0;
    color: var(--color-muted);
}

.product-list-shell {
    margin-top: clamp(45px, 6vw, 78px);
    border-top: 2px solid var(--color-brand);
}

.product-list-shell__header {
    display: grid;
    grid-template-columns: 1fr 1fr .7fr;
    gap: 24px;
    padding: 17px 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.product-list-shell__empty {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(300px, 1fr) auto;
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
    min-height: 210px;
    padding: 36px 0;
    border-bottom: 1px solid var(--color-border);
}

.product-list-shell__empty strong {
    font-size: clamp(22px, 2.2vw, 34px);
    letter-spacing: -.03em;
    line-height: 1.08;
}

.product-list-shell__empty p {
    margin: 0;
    color: var(--color-muted);
}

.process-section {
    padding: clamp(72px, 9vw, 140px) 0;
    background: var(--color-brand);
    color: #fff;
}

.process-section--light {
    background: #f3f3f1;
    color: var(--color-text);
}

.process-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr);
    gap: clamp(50px, 9vw, 140px);
    align-items: end;
}

.process-section__heading h2 {
    max-width: 840px;
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.process-section__heading > p {
    margin: 0;
    color: rgba(255, 255, 255, .65);
}

.process-section--light .process-section__heading > p {
    color: var(--color-muted);
}

.process-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: clamp(48px, 6vw, 80px) 0 0;
    padding: 0;
    background: rgba(255, 255, 255, .18);
    list-style: none;
}

.process-section--light .process-track {
    background: #d4d4d1;
}

.process-track li {
    position: relative;
    display: flex;
    min-height: 260px;
    flex-direction: column;
    padding: 26px;
    background: var(--color-brand);
}

.process-track .stage-icon {
    position: absolute;
    top: 25px;
    right: 25px;
    width: 32px;
    height: 32px;
    color: var(--color-accent);
}

.process-section--light .process-track li {
    background: #fff;
}

.process-track span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
}

.process-track strong {
    margin-top: auto;
    font-size: clamp(20px, 1.8vw, 28px);
    letter-spacing: -.03em;
    line-height: 1.1;
}

.process-track p {
    margin: 15px 0 0;
    color: rgba(255, 255, 255, .6);
    font-size: 13px;
}

.process-section--light .process-track p {
    color: var(--color-muted);
}

.faq-list {
    max-width: 1050px;
}

.faq-list details {
    border-top: 1px solid var(--color-border);
}

.faq-list details:last-child {
    border-bottom: 1px solid var(--color-border);
}

.faq-list summary {
    position: relative;
    padding: 28px 58px 28px 0;
    font-size: clamp(20px, 2vw, 29px);
    font-weight: 600;
    letter-spacing: -.025em;
    cursor: pointer;
    list-style: none;
}

.faq-list summary::-webkit-details-marker {
    display: none;
}

.faq-list summary::after {
    position: absolute;
    top: 50%;
    right: 4px;
    color: var(--color-accent);
    content: "+";
    font-size: 28px;
    transform: translateY(-50%);
}

.faq-list details[open] summary::after {
    content: "−";
}

.faq-list details div {
    max-width: 760px;
    padding: 0 0 30px;
    color: var(--color-muted);
    font-size: 17px;
}

.faq-list details p {
    margin: 0;
}

.material-topics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: clamp(46px, 6vw, 78px);
    background: #d4d4d1;
}

.material-topics > div {
    min-height: 240px;
    padding: clamp(25px, 3vw, 42px);
    background: #fff;
}

.material-topics span,
.case-schema span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
}

.material-topics strong {
    display: block;
    margin-top: 75px;
    font-size: clamp(22px, 2.2vw, 34px);
    letter-spacing: -.03em;
    line-height: 1.08;
}

.material-topics p {
    max-width: 470px;
    margin: 17px 0 0;
    color: var(--color-muted);
}

.material-list-shell {
    margin-top: 48px;
    border-top: 2px solid var(--color-brand);
}

.material-list-shell > div {
    display: grid;
    grid-template-columns: .5fr 1fr .4fr;
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.material-list-shell section {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(300px, 1fr) auto;
    gap: clamp(30px, 5vw, 70px);
    align-items: center;
    min-height: 200px;
    padding: 32px 0;
    border-bottom: 1px solid var(--color-border);
}

.material-list-shell section strong {
    font-size: clamp(22px, 2vw, 32px);
    letter-spacing: -.03em;
    line-height: 1.1;
}

.material-list-shell section p {
    margin: 0;
    color: var(--color-muted);
}

.material-detail__header {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(50px, 9vw, 150px);
    align-items: end;
}

.material-detail__header--media {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
    grid-template-areas:
        "title media"
        "lead media";
    align-items: stretch;
    row-gap: 30px;
}

.material-detail__header--media > :first-child {
    grid-area: title;
    align-self: end;
}

.material-detail__header--media > .inner-hero__lead {
    grid-area: lead;
    align-self: start;
}

.material-detail__header--media > .inner-hero__media {
    grid-area: media;
}

.material-detail__body {
    max-width: 960px;
    padding-top: clamp(68px, 8vw, 120px);
    padding-bottom: clamp(68px, 8vw, 120px);
    font-size: 18px;
}

.material-detail__body h2 {
    margin: 58px 0 20px;
    font-size: var(--heading-section-compact);
    letter-spacing: -.04em;
    line-height: var(--line-heading);
}

.case-schema {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--color-border);
}

.case-schema > div {
    min-height: 220px;
    padding: 28px;
    background: #fff;
}

.case-schema strong {
    display: block;
    margin-top: 65px;
    font-size: clamp(20px, 1.8vw, 27px);
    letter-spacing: -.03em;
}

.case-schema p {
    margin: 13px 0 0;
    color: var(--color-muted);
    font-size: 14px;
}

.home-calculation {
    padding: clamp(72px, 9vw, 145px) 0;
    background: var(--color-brand);
    color: #fff;
}

.home-calculation__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr);
    gap: clamp(60px, 11vw, 175px);
    align-items: center;
}

.home-calculation__intro h2,
.home-approach h2,
.home-production h2,
.home-projects h2,
.home-documents h2,
.home-installation h2,
.home-final h2 {
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.055em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.home-calculation__intro > p:not(.section-kicker) {
    max-width: 650px;
    margin: 30px 0 35px;
    color: rgba(255, 255, 255, .7);
    font-size: 18px;
}

.home-calculation__sheet {
    padding: clamp(28px, 4vw, 58px);
    background: #fff;
    color: var(--color-text);
}

.home-calculation__sheet > p {
    margin: 0 0 20px;
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-calculation__sheet ol {
    margin: 0;
    padding: 0;
    border-top: 2px solid var(--color-brand);
    list-style: none;
}

.home-calculation__sheet li {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    padding: 19px 0;
    border-bottom: 1px solid var(--color-border);
}

.home-calculation__sheet li span {
    color: var(--color-accent);
    font-size: 11px;
}

.home-calculation__sheet li strong {
    font-size: clamp(18px, 1.6vw, 24px);
}

.home-calculation__sheet small {
    display: block;
    margin-top: 25px;
    color: var(--color-muted);
}

.home-approach {
    padding: clamp(72px, 9vw, 145px) 0;
}

.home-approach__heading,
.home-materials__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, .65fr);
    gap: clamp(50px, 10vw, 160px);
    align-items: end;
}

.home-approach__heading > p,
.home-materials__heading > p {
    margin: 0;
    color: var(--color-muted);
    font-size: 18px;
}

.home-approach__axis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: clamp(48px, 6vw, 82px);
    background: var(--color-border);
}

.home-approach__axis article {
    position: relative;
    display: flex;
    min-height: 280px;
    flex-direction: column;
    padding: 28px;
    background: #f3f3f1;
}

.home-approach__axis .stage-icon {
    position: absolute;
    top: 27px;
    right: 27px;
    width: 32px;
    height: 32px;
    color: var(--color-accent);
}

.home-approach__axis span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
}

.home-approach__axis h3 {
    margin: auto 0 0;
    font-size: var(--heading-card);
    letter-spacing: -.035em;
    line-height: var(--line-heading);
}

.home-approach__axis p {
    margin: 17px 0 0;
    color: var(--color-muted);
    font-size: 14px;
}

.home-production {
    padding: clamp(72px, 9vw, 145px) 0;
    background: #f3f3f1;
}

.home-production__layout {
    display: grid;
    grid-template-columns: minmax(390px, .9fr) minmax(0, 1.1fr);
    gap: clamp(55px, 9vw, 145px);
}

.home-production__media {
    min-height: 590px;
}

.home-production__content {
    align-self: center;
}

.home-production__content > p:not(.section-kicker) {
    max-width: 680px;
    margin: 28px 0;
    color: var(--color-muted);
    font-size: 18px;
}

.home-production__content ul,
.home-installation ul {
    margin: 0 0 34px;
    padding: 0;
    border-top: 2px solid var(--color-brand);
    list-style: none;
}

.home-production__content li,
.home-installation li {
    padding: 17px 0;
    border-bottom: 1px solid #d4d4d1;
    font-size: 18px;
    font-weight: 600;
}

.home-stages {
    padding: clamp(72px, 9vw, 145px) 0;
    background: var(--color-brand);
    color: #fff;
}

.home-stages__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr);
    gap: clamp(50px, 9vw, 145px);
    align-items: end;
}

.home-stages__heading > p {
    margin: 0;
    color: rgba(255,255,255,.65);
}

.home-stages ol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: clamp(48px, 6vw, 80px) 0 0;
    padding: 0;
    background: rgba(255,255,255,.18);
    list-style: none;
}

.home-stages li {
    position: relative;
    display: flex;
    min-height: 275px;
    flex-direction: column;
    padding: 27px;
    background: var(--color-brand);
}

.home-stages .stage-icon {
    position: absolute;
    top: 26px;
    right: 26px;
    width: 32px;
    height: 32px;
    color: var(--color-accent);
}

.home-stages li span { color: var(--color-accent); font-size: 11px; font-weight: 700; }
.home-stages li strong { margin-top: auto; font-size: clamp(21px, 1.9vw, 29px); line-height: 1.08; }
.home-stages li p { margin: 15px 0 0; color: rgba(255,255,255,.6); font-size: 13px; }

.home-projects {
    padding: clamp(72px, 9vw, 145px) 0;
}

.home-projects__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .75fr);
    gap: clamp(60px, 11vw, 175px);
}

.home-projects__empty {
    align-self: end;
    padding: clamp(28px, 4vw, 50px);
    border: 1px solid var(--color-border);
    background: #f3f3f1;
}

.home-projects__empty span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-projects__empty p {
    margin: 24px 0 30px;
    color: var(--color-muted);
}

.home-documents {
    padding: clamp(72px, 9vw, 145px) 0;
    background: #252a2f;
    color: #fff;
}

.home-documents__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .7fr);
    gap: clamp(60px, 11vw, 170px);
}

.home-documents__content > p:not(.section-kicker) {
    max-width: 650px;
    margin: 30px 0 35px;
    color: rgba(255,255,255,.68);
}

.home-documents__content > div {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.home-documents__content .button--outline {
    border-color: rgba(255,255,255,.6);
    color: #fff;
}

.home-documents__register {
    align-self: center;
    padding: clamp(27px, 4vw, 50px);
    border: 1px solid rgba(255,255,255,.22);
}

.home-documents__register span {
    display: grid;
    grid-template-columns: 22px 35px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255,255,255,.18);
    color: var(--color-accent);
    font-size: 11px;
}

.home-documents__register .document-icon {
    width: 20px;
    height: 20px;
}

.home-documents__register strong { color: #fff; font-size: 20px; }
.home-documents__register small { display: block; margin-top: 25px; color: rgba(255,255,255,.5); }

.home-installation {
    padding: clamp(72px, 9vw, 145px) 0;
    background: #f3f3f1;
}

.home-installation__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr);
    gap: clamp(60px, 11vw, 175px);
}

.home-installation__grid > div:last-child > p {
    margin: 0 0 29px;
    color: var(--color-muted);
    font-size: 18px;
}

.home-materials {
    padding: clamp(72px, 9vw, 145px) 0;
}

.home-materials__topics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 1px;
    margin-top: clamp(48px, 6vw, 80px);
    background: var(--color-border);
}

.home-materials__topics span {
    display: flex;
    min-height: 150px;
    align-items: flex-end;
    padding: 24px;
    background: #f3f3f1;
    font-size: clamp(18px,1.7vw,25px);
    font-weight: 600;
    letter-spacing: -.025em;
}

.home-materials__actions {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 34px;
}

.home-materials__actions > a:last-child { font-weight:700; text-underline-offset:5px; }

.home-final {
    padding: clamp(72px, 9vw, 145px) 0;
    background: var(--color-accent);
    color: #fff;
}

.home-final__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .65fr);
    gap: clamp(60px, 11vw, 175px);
    align-items: end;
}

.home-final .section-kicker { color: #fff; }
.home-final__grid > div:last-child > p { margin:0 0 28px; color:rgba(255,255,255,.83); }
.home-final__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px 28px;
}

.home-final__email {
    display: inline-flex;
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.not-found-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.search-page-section {
    padding: clamp(58px, 7vw, 108px) 0 clamp(84px, 10vw, 150px);
}

.search-page-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
    gap: 48px;
    align-items: end;
    padding-bottom: 42px;
    border-bottom: 1px solid var(--color-border);
}

.search-page-section__heading .section-kicker {
    grid-column: 1 / -1;
    margin-bottom: -28px;
}

.search-page-section__heading h1 {
    margin: 0;
    font-size: var(--heading-page);
    letter-spacing: -.065em;
    line-height: var(--line-display);
    text-transform: uppercase;
}

.site-search {
    max-width: 1080px;
    margin-top: 48px;
}

.site-search__form > label {
    display: block;
    margin-bottom: 10px;
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 700;
}

.site-search__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
}

.site-search__controls input {
    min-width: 0;
    width: 100%;
    min-height: 56px;
    padding: 13px 16px;
    border: 1px solid var(--color-brand);
    border-right: 0;
    border-radius: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font: inherit;
}

.site-search__controls input:focus {
    border-color: var(--color-accent);
    outline: 3px solid rgba(225, 92, 5, .18);
    outline-offset: 0;
}

.site-search__controls .button {
    min-width: 132px;
    border: 0;
    border-radius: 0;
    cursor: pointer;
}

.site-search__summary {
    margin-top: 42px;
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-search__results {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    border-top: 2px solid var(--color-brand);
}

.site-search__result {
    padding: 30px 0 32px;
    border-bottom: 1px solid var(--color-border);
}

.site-search__result-meta {
    margin-bottom: 13px;
    color: var(--color-muted);
    font-size: 12px;
}

.site-search__result-meta span:first-child {
    color: var(--color-accent);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-search__result h2 {
    margin: 0;
    font-size: var(--heading-card);
    letter-spacing: -.04em;
    line-height: var(--line-heading);
}

.site-search__result h2 a {
    text-decoration: none;
}

.site-search__result h2 a:hover {
    color: var(--color-accent);
}

.site-search__result p {
    max-width: 820px;
    margin: 14px 0 0;
    color: var(--color-muted);
}

.site-search__empty {
    margin-top: 42px;
    padding: clamp(28px, 5vw, 58px);
    border-left: 4px solid var(--color-accent);
    background: #f3f3f1;
}

.site-search__empty h2 {
    margin: 0;
    font-size: var(--heading-section-compact);
    letter-spacing: -.045em;
    line-height: var(--line-heading);
}

.site-search__empty p {
    max-width: 690px;
    margin: 18px 0 0;
    color: var(--color-muted);
}

@media (max-width: 1199px) {
    .site-header__inner {
        min-height: 72px;
    }

    .site-logo {
        width: 172px;
    }

    .site-logo img {
        width: 172px;
        height: auto;
    }

    .menu-toggle {
        display: block;
    }

    .site-header__menu {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100vh - 114px);
        overflow-y: auto;
        padding: 24px;
        background: #fff;
        border-top: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
    }

    .site-header.is-menu-open .site-header__menu {
        display: block;
    }

    .main-nav__list {
        display: block;
    }

    .main-nav__item + .main-nav__item {
        border-top: 1px solid var(--color-border);
    }

    .main-nav__link {
        padding: 15px 0;
        font-size: 16px;
    }

    .main-nav__link::after {
        display: none;
    }

    .header-cta--mobile {
        display: flex;
        margin-top: 24px;
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .home-hero__grid {
        grid-template-columns: minmax(0, 1fr) minmax(330px, .82fr);
        gap: 42px;
    }

    .home-hero__content {
        min-height: 455px;
    }

    .home-hero__media {
        min-height: 455px;
    }

    .home-metalwork__heading {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
        gap: 48px;
    }

    .home-metalwork__layout {
        grid-template-columns: minmax(0, 1fr) minmax(350px, .88fr);
        gap: 48px;
    }

    .home-metalwork__media {
        min-height: 500px;
    }

    .home-metalwork__action {
        display: block;
    }

    .home-metalwork__action .button {
        margin-top: 22px;
    }
}

@media (max-width: 1023px) {
    .home-hero__grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .home-hero__content {
        min-height: 0;
    }

    .home-hero__title span {
        white-space: normal;
    }

    .home-hero__media,
    .home-metalwork__media,
    .home-production__media {
        min-height: 430px;
    }

    .home-metalwork__heading,
    .home-metalwork__layout {
        grid-template-columns: 1fr;
    }

    .home-metalwork__heading {
        gap: 28px;
    }

    .home-metalwork__lead {
        max-width: 680px;
    }

    .home-metalwork__layout {
        gap: 44px;
    }

    .home-metalwork__content {
        min-height: 470px;
    }

    .home-metalwork__action {
        display: flex;
    }

    .home-metalwork__action .button {
        margin-top: 0;
    }

    .inner-hero__grid,
    .split-content,
    .contact-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 38px;
    }

    .inner-hero__grid--media,
    .material-detail__header--media {
        grid-template-areas:
            "title"
            "lead"
            "media";
    }

    .inner-hero__media {
        min-height: 360px;
    }

    .direction-lines > a,
    .direction-lines > div {
        grid-template-columns: 44px minmax(210px, .8fr) minmax(0, 1.2fr);
    }

    .site-footer__top {
        grid-template-columns: 1fr;
        gap: 54px;
    }

    .contact-action {
        padding-top: 38px;
        padding-left: 0;
        border-top: 1px solid var(--color-border);
        border-left: 0;
    }

    .solution-detail__two-columns {
        grid-template-columns: 1fr;
        gap: 62px;
    }

    .solution-flow ol {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .solution-related {
        grid-template-columns: 1fr;
    }

    .catalog-criteria,
    .catalog-list-section__heading {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .product-list-shell__empty {
        grid-template-columns: 1fr;
    }

    .process-section__heading {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .process-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__nav--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .material-list-shell section,
    .material-detail__header {
        grid-template-columns: 1fr;
    }

    .home-calculation__grid,
    .home-approach__heading,
    .home-production__layout,
    .home-stages__heading,
    .home-projects__grid,
    .home-documents__grid,
    .home-installation__grid,
    .home-materials__heading,
    .home-final__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 44px;
    }

    .home-approach__axis,
    .home-stages ol,
    .home-materials__topics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (min-width: 1200px) and (max-width: 1279px) {
    .site-header__inner {
        min-height: 72px;
    }

    .site-logo,
    .site-logo img {
        width: 172px;
        height: auto;
    }

    .menu-toggle {
        display: block;
    }

    .site-header__menu {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100vh - 114px);
        overflow-y: auto;
        padding: 24px;
        background: var(--color-bg);
        border-top: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
    }

    .site-header.is-menu-open .site-header__menu {
        display: block;
    }

    .main-nav__list {
        display: block;
    }

    .main-nav__item + .main-nav__item {
        border-top: 1px solid var(--color-border);
    }

    .main-nav__link {
        padding: 15px 0;
        font-size: 16px;
    }

    .main-nav__link::after,
    .header-contacts,
    .header-callback--desktop {
        display: none;
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header.is-menu-open .menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
}

@media (max-width: 1279px) {
    .site-header.is-scrolled .site-header__inner {
        min-height: 68px;
        gap: 24px;
    }

    .site-header.is-scrolled .site-logo,
    .site-header.is-scrolled .site-logo img {
        width: 154px;
        height: auto;
    }

    .header-search-compact { display: none; }

    .header-search-mobile {
        display: block;
        margin-bottom: 18px;
    }

    .header-search-form--mobile {
        min-height: 48px;
    }

    .site-header__utility-contacts {
        display: none;
    }

    .site-header__utility-inner { min-height: 42px; }

    .header-mobile-contacts {
        display: grid;
        gap: 14px;
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid var(--color-border);
    }

    .contact-link--header-mobile {
        justify-content: space-between;
        color: var(--color-brand);
        font-size: 18px;
        font-weight: 700;
    }

    .header-callback--mobile {
        width: 100%;
        min-height: 48px;
        margin-top: 4px;
        font-size: 14px;
    }

    .social-links--header-mobile {
        margin-top: 6px;
        color: var(--color-brand);
        font-size: 14px;
    }
}

@media (max-width: 767px) {
    .container {
        width: min(calc(100% - 32px), var(--container));
    }

    .requisites-layout,
    .requisites-list > div {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .site-header__inner {
        min-height: 64px;
        gap: 16px;
    }

    .site-logo,
    .site-logo img {
        width: 148px;
        height: auto;
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: 62px;
        gap: 14px;
    }

    .site-header.is-scrolled .site-logo,
    .site-header.is-scrolled .site-logo img {
        width: 136px;
    }

    .header-cta--desktop {
        display: none;
    }

    .site-header__menu {
        max-height: calc(100vh - 106px);
        padding: 20px 16px 24px;
    }

    .header-search-form__button {
        min-width: 104px;
        padding-right: 13px;
        padding-left: 13px;
    }

    .header-search-form__input {
        padding-right: 11px;
        padding-left: 11px;
        font-size: 13px;
    }

    .search-page-section__heading {
        display: block;
        padding-bottom: 30px;
    }

    .search-page-section__heading .section-kicker {
        margin-bottom: 18px;
    }

    .search-page-section__heading h1 {
        font-size: var(--heading-page);
    }

    .site-search {
        margin-top: 34px;
    }

    .site-search__controls {
        grid-template-columns: minmax(0, 1fr) 104px;
    }

    .site-search__controls input {
        padding-right: 11px;
        padding-left: 11px;
    }

    .site-search__controls .button {
        min-width: 0;
        padding-right: 12px;
        padding-left: 12px;
    }

    .site-search__result {
        padding: 25px 0 27px;
    }

    .contact-link--header-mobile {
        font-size: 16px;
    }

    .copy-feedback {
        right: 16px;
        bottom: 16px;
    }

    .form-modal__overlay {
        display: block;
        padding: 0;
    }

    .form-modal__dialog {
        width: 100%;
        min-height: 100%;
        padding: 82px 20px 36px;
        box-shadow: none;
    }

    .form-modal__close {
        top: 16px;
        right: 16px;
    }

    .form-modal__heading {
        padding-right: 0;
    }

    .form-modal__heading h2,
    .form-modal__success h2 {
        font-size: var(--heading-modal);
    }

    .home-hero {
        padding: 42px 0 72px;
    }

    .home-hero__grid,
    .home-products__grid {
        grid-template-columns: 1fr;
        gap: 37px;
    }

    .home-hero__content {
        min-height: 0;
    }

    .home-hero__title {
        max-width: 100%;
        font-size: var(--display-xl);
        letter-spacing: -.06em;
        overflow-wrap: normal;
    }

    .home-hero__title span {
        white-space: normal;
    }

    .home-hero__lead {
        margin: 24px 0 29px;
        font-size: 18px;
    }

    .home-hero__media,
    .home-metalwork__media,
    .home-production__media,
    .inner-hero__media {
        min-height: 330px;
    }

    .home-hero__competencies {
        padding-top: 37px;
        font-size: 11px;
    }

    .home-hero__competencies li:not(:last-child)::after {
        width: 18px;
        margin: 0 9px;
    }

    .home-solutions {
        padding: 70px 0 58px;
    }

    .solutions-grid {
        grid-template-columns: 1fr;
        margin-top: 41px;
    }

    .solution,
    .solution--wide {
        min-height: 198px;
        padding: 22px;
        grid-column: auto;
    }

    .solution__icon {
        top: 20px;
        right: 20px;
        width: 30px;
        height: 30px;
    }

    .home-solutions__bottom {
        display: block;
        margin-top: 26px;
        padding-top: 26px;
    }

    .home-solutions__bottom .button {
        width: 100%;
        margin-top: 25px;
    }

    .home-products {
        padding: 70px 0;
    }

    .home-products__lead {
        margin-bottom: 31px;
    }

    .home-metalwork {
        padding: 70px 0;
    }

    .home-metalwork__heading {
        margin-bottom: 39px;
    }

    .home-metalwork__title {
        font-size: clamp(33px, 10.4vw, 43px);
        overflow-wrap: normal;
    }

    .home-metalwork__lead {
        font-size: 20px;
    }

    .home-metalwork__layout {
        gap: 37px;
    }

    .home-metalwork__content {
        min-height: 0;
    }

    .home-metalwork__directions li {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 8px;
        padding: 18px 0;
        font-size: 21px;
    }

    .home-metalwork__action {
        display: block;
        padding-top: 30px;
    }

    .home-metalwork__action .button {
        width: 100%;
        margin-top: 24px;
    }

    .button {
        min-height: 50px;
    }

    .breadcrumbs {
        padding-top: 18px;
    }

    .inner-hero {
        padding: 46px 0 68px;
    }

    .inner-hero h1 {
        font-size: var(--heading-page);
        overflow-wrap: anywhere;
    }

    .section-heading h2 {
        overflow-wrap: anywhere;
    }

    .solutions-index__heading h2 {
        font-size: var(--heading-section);
        overflow-wrap: normal;
    }

    .inner-hero__grid {
        gap: 28px;
    }

    .content-section {
        padding: 68px 0;
    }

    .split-content {
        gap: 34px;
    }

    .split-content h2 {
        overflow-wrap: anywhere;
    }

    .direction-lines {
        margin-top: 38px;
    }

    .direction-lines > a,
    .direction-lines > div,
    .direction-lines--compact > a,
    .direction-lines--compact > div {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 8px;
        min-height: 78px;
    }

    .direction-lines small {
        display: none;
    }

    .section-action,
    .site-footer__bottom {
        display: block;
    }

    .section-action .button {
        width: 100%;
        margin-top: 26px;
    }

    .empty-state,
    .page-cta__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .empty-state h2 {
        overflow-wrap: anywhere;
    }

    .empty-state {
        margin-top: 58px;
        padding: 28px 22px;
    }

    .empty-state--large {
        margin-top: 0;
    }

    .page-cta__grid .button {
        width: 100%;
    }

    .site-footer {
        padding-top: 58px;
    }

    .site-footer__nav {
        grid-template-columns: 1fr 1fr;
        gap: 38px 26px;
    }

    .site-footer__bottom span {
        display: block;
    }

    .site-footer__bottom span + span {
        margin-top: 8px;
    }

    .contact-primary > a,
    .contact-link--contact-page .contact-link__value {
        font-size: 28px;
    }

    .solution-flow ol {
        grid-template-columns: 1fr;
    }

    .solution-flow li {
        min-height: 190px;
        padding: 22px;
    }

    .solution-flow h2,
    .solution-detail__two-columns h2,
    .solution-related__heading h2 {
        overflow-wrap: anywhere;
    }

    .solution-related__heading {
        display: block;
    }

    .solution-related__heading > a {
        display: inline-block;
        margin-top: 22px;
    }

    .solution-related > a {
        min-height: 110px;
        padding: 22px;
    }

    .catalog-criteria h2,
    .catalog-list-section h2 {
        overflow-wrap: anywhere;
    }

    .product-list-shell__header {
        display: none;
    }

    .product-list-shell__empty {
        min-height: 0;
        gap: 24px;
        padding: 32px 0;
    }

    .product-list-shell__empty .button {
        width: 100%;
    }

    .process-section__heading h2 {
        overflow-wrap: anywhere;
    }

    .process-track {
        grid-template-columns: 1fr;
    }

    .process-track li {
        min-height: 190px;
        padding: 22px;
    }

    .material-topics,
    .case-schema {
        grid-template-columns: 1fr;
    }

    .material-topics > div,
    .case-schema > div {
        min-height: 190px;
        padding: 22px;
    }

    .material-topics strong,
    .case-schema strong {
        margin-top: 52px;
    }

    .material-list-shell > div {
        display: none;
    }

    .material-list-shell section {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .material-list-shell section .button {
        width: 100%;
    }

    .home-calculation,
    .home-approach,
    .home-production,
    .home-stages,
    .home-projects,
    .home-documents,
    .home-installation,
    .home-materials,
    .home-final {
        padding: 70px 0;
    }

    .home-calculation__grid,
    .home-approach__heading,
    .home-production__layout,
    .home-stages__heading,
    .home-projects__grid,
    .home-documents__grid,
    .home-installation__grid,
    .home-materials__heading,
    .home-final__grid {
        gap: 36px;
    }

    .home-calculation__intro h2,
    .home-approach h2,
    .home-production h2,
    .home-projects h2,
    .home-documents h2,
    .home-installation h2,
    .home-final h2,
    .home-stages h2,
    .home-materials h2 {
        font-size: var(--heading-section);
        overflow-wrap: anywhere;
    }

    .home-calculation__intro .button,
    .home-projects__empty .button,
    .home-installation .button,
    .home-final .button {
        width: 100%;
    }

    .home-calculation__sheet {
        padding: 27px 22px;
    }

    .home-approach__axis,
    .home-stages ol,
    .home-materials__topics {
        grid-template-columns: 1fr;
    }

    .home-approach__axis article,
    .home-stages li {
        min-height: 205px;
        padding: 22px;
    }

    .home-approach__axis .stage-icon,
    .home-stages .stage-icon,
    .process-track .stage-icon {
        top: 21px;
        right: 21px;
        width: 28px;
        height: 28px;
    }

    .home-production__content > p:not(.section-kicker),
    .home-installation__grid > div:last-child > p {
        font-size: 16px;
    }

    .home-projects__empty {
        padding: 27px 22px;
    }

    .home-documents__content > div {
        display: block;
    }

    .home-documents__content .button {
        width: 100%;
    }

    .home-documents__content .button + .button {
        margin-top: 12px;
    }

    .home-documents__register {
        padding: 25px 22px;
    }

    .home-materials__topics span {
        min-height: 105px;
        padding: 22px;
    }

    .home-materials__actions {
        display: block;
    }

    .home-materials__actions .button {
        width: 100%;
    }

    .home-materials__actions > a:last-child {
        display: inline-block;
        margin-top: 24px;
    }

    .home-final__actions {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
    }

    .home-final__email {
        justify-content: flex-start;
    }

    .not-found-actions {
        display: block;
    }

    .not-found-actions .button {
        width: 100%;
    }

    .not-found-actions .button + .button {
        margin-top: 12px;
    }
}

/* CP-025: editorial engineering content and conceptual media system. */
.engineering-page {
    overflow: clip;
}

.engineering-hero {
    position: relative;
    display: grid;
    min-height: min(780px, calc(100svh - 112px));
    overflow: hidden;
    background: #1d2328;
    color: #fff;
    isolation: isolate;
}

.engineering-hero__media {
    position: absolute;
    z-index: -2;
    inset: 0;
    border: 0;
}

.engineering-hero__media::after,
.home-hero__backdrop::after {
    display: none;
}

.engineering-hero__media img,
.home-hero__backdrop img {
    object-position: center center;
}

.engineering-hero__media--right img {
    object-position: 68% center;
}

.engineering-hero__shade {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, rgba(12, 17, 21, .7) 0%, rgba(12, 17, 21, .48) 48%, rgba(12, 17, 21, .12) 82%);
}

.engineering-hero__content {
    position: relative;
    display: flex;
    width: min(calc(100% - 48px), var(--container));
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-top: clamp(74px, 10vw, 150px);
    padding-bottom: clamp(70px, 9vw, 138px);
}

.engineering-hero__content::before {
    content: none;
}

.engineering-hero__content > * {
    position: relative;
    z-index: 1;
}

.engineering-hero h1 {
    max-width: 990px;
    margin: 0;
    font-size: var(--heading-page);
    letter-spacing: -.06em;
    line-height: var(--line-display);
    text-transform: uppercase;
}

.engineering-hero__lead {
    max-width: 700px;
    margin: 30px 0 34px;
    color: rgba(255,255,255,.8);
    font-size: clamp(18px, 1.65vw, 25px);
    line-height: 1.38;
}

.engineering-heading {
    margin-bottom: clamp(40px, 6vw, 76px);
}

.engineering-heading h2,
.engineering-system h2,
.engineering-break h2,
.concept-case h2 {
    margin: 0;
    font-size: var(--heading-section);
    letter-spacing: -.05em;
    line-height: var(--line-heading);
    text-transform: uppercase;
}

.engineering-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 2px solid var(--color-brand);
}

.engineering-card-grid article {
    min-width: 0;
    padding: 28px clamp(20px, 2.5vw, 38px) 34px;
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.engineering-card-grid article:first-child { border-left: 1px solid var(--color-border); }
.engineering-card-grid span,
.concept-case__facts > div > span {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.engineering-card-grid h3,
.engineering-variants h3 {
    margin: 52px 0 14px;
    font-size: var(--heading-card);
    letter-spacing: -.035em;
    line-height: var(--line-heading);
}

.engineering-card-grid p,
.engineering-variants p {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.55;
}

.engineering-system__grid {
    display: grid;
    grid-template-columns: minmax(300px, .78fr) minmax(500px, 1.22fr);
    gap: clamp(48px, 8vw, 126px);
    align-items: center;
}

.engineering-system__copy > p:not(.section-kicker),
.engineering-side-note {
    max-width: 620px;
    margin: 28px 0 0;
    color: var(--color-muted);
    font-size: clamp(17px, 1.35vw, 21px);
    line-height: 1.55;
}

.engineering-elements {
    margin: 34px 0 0;
    padding: 0;
    border-top: 2px solid var(--color-brand);
    list-style: none;
}

.engineering-elements li {
    position: relative;
    padding: 17px 0 17px 27px;
    border-bottom: 1px solid var(--color-border);
}

.engineering-elements li::before {
    position: absolute;
    top: 25px;
    left: 2px;
    width: 7px;
    height: 7px;
    background: var(--color-accent);
    content: "";
}

.engineering-diagram {
    min-width: 0;
    margin: 0;
    border: 1px solid var(--color-border);
    background: #f2f2ef;
}

.engineering-diagram img {
    width: 100%;
    aspect-ratio: 5 / 3;
    object-fit: contain;
}

.engineering-diagram figcaption {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    padding: 18px 22px;
    border-top: 1px solid var(--color-border);
    font-size: 13px;
}

.engineering-diagram figcaption span { max-width: 370px; color: var(--color-muted); }

.engineering-break {
    padding: clamp(60px, 7vw, 105px) 0;
    background: var(--color-brand);
    color: #fff;
}

.engineering-break__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .65fr);
    gap: clamp(46px, 8vw, 120px);
    align-items: center;
}

.engineering-break__media { min-height: 420px; border-color: rgba(255,255,255,.18); }
.engineering-break__grid > div > p:not(.section-kicker) { color: rgba(255,255,255,.7); line-height: 1.55; }

.engineering-variants {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--color-border);
}

.engineering-variants article {
    min-height: 240px;
    padding: clamp(24px, 3vw, 40px);
    background: #fff;
}

.engineering-variants h3 { margin-top: 0; }

.engineering-inputs {
    margin: 0;
    padding: 0;
    border-top: 2px solid var(--color-brand);
    list-style: none;
}

.engineering-inputs li {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid var(--color-border);
}

.engineering-inputs span { color: var(--color-accent); font-size: 11px; font-weight: 700; }
.engineering-inputs strong { font-size: clamp(18px, 1.6vw, 24px); line-height: 1.2; }

.engineering-process {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1px;
    margin: clamp(42px, 5vw, 68px) 0 0;
    padding: 0;
    background: rgba(255,255,255,.16);
    list-style: none;
}

.engineering-process li {
    display: flex;
    min-height: 225px;
    flex-direction: column;
    padding: 24px;
    background: var(--color-brand);
}

.engineering-process span { color: var(--color-accent); font-size: 11px; font-weight: 700; }
.engineering-process strong { margin-top: auto; font-size: clamp(18px, 1.55vw, 23px); line-height: 1.08; }
.engineering-process small { margin-top: 13px; color: rgba(255,255,255,.62); line-height: 1.45; }
.engineering-process__note,
.concept-note { max-width: 780px; margin: 28px 0 0; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.55; }
.concept-note { color: var(--color-muted); }

.solution-overview__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.solution-visual-card:first-child { grid-column: 1 / -1; }
.solution-visual-card a { position: relative; display: block; min-height: 430px; overflow: hidden; background: #1d2328; color: #fff; text-decoration: none; }
.solution-visual-card__media { position: absolute; inset: 0; border: 0; transition: transform .45s ease; }
.solution-visual-card__media::after { display: none; }
.solution-visual-card a::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(17,22,26,.88)); content:""; }
.solution-visual-card__body { position:absolute; z-index:2; right:0; bottom:0; left:0; display:grid; grid-template-columns:50px minmax(0,1fr); gap:8px 20px; padding:30px; }
.solution-visual-card__body small { color:var(--color-accent); grid-row:1/4; }
.solution-visual-card__body strong { font-size:clamp(26px,3vw,44px); line-height:1; }
.solution-visual-card__body > span { color:rgba(255,255,255,.7); }
.solution-visual-card__body b { margin-top:8px; font-size:13px; text-transform:uppercase; letter-spacing:.08em; }
.solution-visual-card a:hover .solution-visual-card__media { transform: scale(1.025); }

.engineering-object-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    border-top: 2px solid var(--color-brand);
}
.engineering-object-list span { padding:20px 0; border-bottom:1px solid var(--color-border); font-size:clamp(18px,1.6vw,24px); }
.engineering-object-list span:nth-child(odd) { padding-right:24px; }

.production-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 1px;
    margin: clamp(40px,5vw,70px) 0 0;
    padding: 0;
    background: var(--color-border);
    list-style: none;
}
.production-steps li { min-height:220px; padding:25px; background:#fff; }
.production-steps span { color:var(--color-accent); font-size:11px; font-weight:700; }
.production-steps strong { display:block; margin-top:58px; font-size:clamp(18px,1.5vw,23px); line-height:1.1; }
.production-steps p { margin:14px 0 0; color:var(--color-muted); font-size:14px; line-height:1.5; }
.production-steps--compact { grid-template-columns:repeat(7,minmax(0,1fr)); }
.production-steps--compact li { min-height:145px; }
.production-steps--compact strong { margin-top:38px; font-size:16px; }

.production-gallery__grid,
.montage-gallery__grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px;
}
.process-visual { min-width:0; margin:0; background:#fff; border:1px solid var(--color-border); }
.process-visual:first-child { grid-column:1 / -1; }
.process-visual__media { aspect-ratio:16/9; border:0; }
.process-visual__media::after { display:none; }
.process-visual figcaption { display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; padding:23px; }
.process-visual figcaption > span { color:var(--color-accent); font-size:11px; font-weight:700; }
.process-visual strong { display:block; font-size:clamp(19px,1.6vw,24px); }
.process-visual p { margin:9px 0 0; color:var(--color-muted); line-height:1.5; }

.diagram-legend { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:30px 0 0; padding:0; list-style:none; }
.diagram-legend li { font-size:12px; color:var(--color-muted); }
.diagram-legend span { display:block; width:28px; height:28px; margin-bottom:8px; border-radius:50%; background:var(--color-accent); color:#fff; line-height:28px; text-align:center; font-weight:700; }

.concept-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:2px solid var(--color-brand); }
.concept-nav a { display:flex; min-height:210px; flex-direction:column; padding:24px 20px; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); text-decoration:none; }
.concept-nav a:first-child { border-left:1px solid var(--color-border); }
.concept-nav span { color:var(--color-accent); font-size:11px; font-weight:700; }
.concept-nav strong { margin-top:auto; font-size:20px; }
.concept-nav small { margin-top:8px; color:var(--color-muted); line-height:1.35; }

.concept-case { padding:clamp(70px,8vw,125px) 0; border-top:1px solid var(--color-border); scroll-margin-top:150px; }
.concept-case:nth-of-type(even) { background:#f3f3f1; }
.concept-case__header { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:50px; align-items:end; }
.concept-case__header > p { margin:0; padding-top:18px; border-top:2px solid var(--color-brand); }
.concept-case__header > p strong,.concept-case__header > p span { display:block; }
.concept-case__header > p strong { color:var(--color-accent); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.concept-case__header > p span { margin-top:10px; font-size:18px; }
.concept-case__visual { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:24px; margin-top:45px; }
.concept-case__media { min-height:480px; border:0; }
.concept-case__media::after { display:none; }
.concept-case__diagram { margin:0; border:1px solid var(--color-border); background:#f2f2ef; }
.concept-case__diagram img { width:100%; height:calc(100% - 48px); object-fit:contain; }
.concept-case__diagram figcaption { min-height:48px; padding:15px 18px; border-top:1px solid var(--color-border); color:var(--color-muted); font-size:12px; }
.concept-case__facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:24px; background:var(--color-border); }
.concept-case__facts > div { min-height:210px; padding:27px; background:#fff; }
.concept-case__facts p { margin:28px 0 0; line-height:1.5; }
.concept-case__facts ul { margin:25px 0 0; padding-left:18px; color:var(--color-muted); }
.concept-case__action { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; }

.home-hero--visual {
    position:relative;
    display:grid;
    min-height:min(820px,calc(100svh - 112px));
    padding:0;
    background:#1d2328;
    color:#fff;
    isolation:isolate;
}
.home-hero__backdrop { position:absolute; z-index:-2; inset:0; border:0; }
.home-hero__backdrop img { object-position:67% center; }
.home-hero__shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(12,17,21,.7) 0%,rgba(12,17,21,.46) 48%,rgba(12,17,21,.1) 82%); }
.home-hero__visual-content { display:flex; align-items:stretch; }
.home-hero--visual .home-hero__content { position:relative; max-width:850px; min-height:0; padding:clamp(75px,10vw,150px) clamp(2rem,4vw,4.5rem) clamp(70px,8vw,125px) 0; }
.home-hero--visual .home-hero__content::before { content:none; }
.home-hero--visual .home-hero__content > * { position:relative; z-index:1; }
.home-hero--visual .home-hero__title,.home-hero--visual .home-hero__title span,.home-hero--visual .home-hero__lead { color:#fff; }
.home-hero--visual .home-hero__title { font-size:var(--display-xl); line-height:var(--line-display); }
.home-hero--visual .home-hero__title { overflow-wrap:anywhere; }
.home-hero--visual .home-hero__title span { white-space:normal; }
.home-hero--visual .home-hero__lead { max-width:700px; color:rgba(255,255,255,.78); }
.home-hero--visual .home-hero__competencies { margin-top:auto; color:rgba(255,255,255,.58); }

.home-solution-visuals { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; margin-top:clamp(45px,6vw,78px); }
.home-solution-visuals article { grid-column:span 2; }
.home-solution-visuals article:first-child,.home-solution-visuals article:nth-child(2) { grid-column:span 3; }
.home-solution-visuals a { position:relative; display:block; min-height:340px; overflow:hidden; text-decoration:none; background:#1c2227; }
.home-solution-visuals__media { position:absolute; inset:0; border:0; transition:transform .4s ease; }
.home-solution-visuals__media::after { display:none; }
.home-solution-visuals a::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(15,20,24,.9)); content:""; }
.home-solution-visuals a > span { position:absolute; z-index:2; right:0; bottom:0; left:0; display:grid; padding:25px; }
.home-solution-visuals small { color:var(--color-accent); font-weight:700; }
.home-solution-visuals strong { margin-top:9px; font-size:clamp(23px,2.3vw,36px); line-height:1.02; }
.home-solution-visuals em { margin-top:9px; color:rgba(255,255,255,.65); font-style:normal; }
.home-solution-visuals a:hover .home-solution-visuals__media { transform:scale(1.025); }

.home-projects__heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.55fr); gap:clamp(45px,8vw,120px); align-items:end; }
.home-projects__heading h2 { max-width:900px; }
.home-projects__heading > p { margin:0; color:var(--color-muted); }
.home-concepts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:clamp(40px,6vw,72px); }
.home-concepts a { position:relative; display:block; min-height:420px; overflow:hidden; color:#fff; text-decoration:none; }
.home-concepts__media { position:absolute; inset:0; border:0; }
.home-concepts__media::after { display:none; }
.home-concepts a::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(15,20,24,.9)); content:""; }
.home-concepts a > span { position:absolute; z-index:2; right:0; bottom:0; left:0; display:flex; flex-direction:column; padding:25px; }
.home-concepts small { color:var(--color-accent); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.home-concepts strong { margin-top:10px; font-size:clamp(24px,2.4vw,34px); }
.home-concepts em { margin-top:8px; color:rgba(255,255,255,.65); font-style:normal; }
.home-projects__action { margin-top:30px; text-align:right; }

@media (max-width: 1100px) {
    .engineering-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .engineering-variants { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .engineering-process { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .production-steps,.production-steps--compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .concept-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .concept-case__visual { grid-template-columns:minmax(0,1fr); }
    .concept-case__media { min-height:420px; }
    .concept-case__diagram img { height:auto; }
    .concept-case__facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
    .engineering-hero,.home-hero--visual { min-height:700px; }
    .engineering-hero__shade,.home-hero__shade { background:linear-gradient(90deg,rgba(12,17,21,.66) 0%,rgba(12,17,21,.44) 58%,rgba(12,17,21,.16) 100%); }
    .engineering-hero__content::before { width:90%; }
    .engineering-hero__media--right img,.home-hero__backdrop img { object-position:70% center; }
    .engineering-system__grid,.engineering-break__grid { grid-template-columns:minmax(0,1fr); }
    .engineering-break__media { min-height:360px; }
    .solution-overview__grid { grid-template-columns:minmax(0,1fr); }
    .solution-visual-card:first-child { grid-column:auto; }
    .solution-visual-card a { min-height:380px; }
    .home-solution-visuals { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-solution-visuals article,.home-solution-visuals article:first-child,.home-solution-visuals article:nth-child(2) { grid-column:span 1; }
    .home-concepts { grid-template-columns:minmax(0,1fr); }
    .home-projects__heading { grid-template-columns:minmax(0,1fr); }
}

@media (max-width: 600px) {
    .engineering-hero,.home-hero--visual { min-height:calc(100svh - 78px); }
    .engineering-hero__content { justify-content:flex-end; padding-top:90px; padding-bottom:54px; }
    .engineering-hero__content { width:min(calc(100% - 32px),var(--container)); }
    .engineering-hero h1 { max-width:100%; font-size:var(--heading-page); overflow-wrap:anywhere; }
    .engineering-hero__lead { margin:22px 0 26px; font-size:17px; }
    .engineering-hero__media--right img,.home-hero__backdrop img { object-position:74% center; }
    .engineering-hero__shade,.home-hero__shade { background:rgba(15,20,24,.22); }
    .engineering-hero__content::before { top:auto; right:calc(-1 * var(--container-gutter)); bottom:1rem; left:calc(-1 * var(--container-gutter)); width:auto; height:72%; }
    .engineering-card-grid,.engineering-variants,.engineering-process,.production-steps,.production-steps--compact,.production-gallery__grid,.montage-gallery__grid,.concept-nav,.concept-case__facts,.home-solution-visuals { grid-template-columns:minmax(0,1fr); }
    .engineering-card-grid article { border-left:1px solid var(--color-border); }
    .engineering-card-grid h3 { margin-top:32px; }
    .engineering-variants article { min-height:auto; }
    .engineering-diagram figcaption { display:block; }
    .engineering-diagram figcaption span { display:block; margin-top:8px; }
    .engineering-process li { min-height:155px; }
    .production-steps li,.production-steps--compact li { min-height:130px; }
    .production-steps strong,.production-steps--compact strong { margin-top:32px; }
    .process-visual:first-child { grid-column:auto; }
    .diagram-legend { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .concept-case__header { grid-template-columns:minmax(0,1fr); gap:25px; }
    .concept-case__media { min-height:290px; }
    .concept-case__facts > div { min-height:auto; }
    .solution-visual-card__body { grid-template-columns:38px minmax(0,1fr); padding:22px; }
    .engineering-object-list { grid-template-columns:minmax(0,1fr); }
    .home-hero--visual .home-hero__content { justify-content:flex-end; padding:90px 0 52px; }
    .home-hero--visual .home-hero__content::before { top:auto; right:calc(-1 * var(--container-gutter)); bottom:1rem; height:76%; }
    .home-hero--visual .home-hero__title { font-size:var(--display-xl); }
    .home-hero--visual .home-hero__competencies { margin-top:34px; padding-top:0; }
    .home-hero--visual .home-hero__competencies li:not(:last-child)::after { display:none; }
    .home-hero--visual .home-hero__competencies { gap:8px 18px; }
    .home-solution-visuals a { min-height:310px; }
    .home-concepts a { min-height:340px; }
    .home-projects__action .button { width:100%; }
}

/* CP-027 dynamic editorial content */
.dynamic-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5);
}

.dynamic-card {
    min-width: 0;
    border: 1px solid var(--color-line);
    background: var(--color-surface);
    transition: border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);
}
.dynamic-card:hover { border-color: var(--color-line-strong); box-shadow: var(--shadow-card-hover); transform: translateY(-.2rem); }
.dynamic-card:focus-within { border-color: var(--color-accent); }

.dynamic-card > a {
    display: flex;
    height: 100%;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.dynamic-card__media {
    width: 100%;
    aspect-ratio: 16 / 10;
    margin: 0;
    overflow: hidden;
    background: var(--color-surface-muted);
}

img.dynamic-card__media,
.dynamic-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--motion-slow) var(--ease-emphasized);
}
.dynamic-card:hover .dynamic-card__media img, .dynamic-card:hover img.dynamic-card__media { transform: scale(1.025); }

.dynamic-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: var(--space-5);
}

.dynamic-card__body small,
.dynamic-card__body time {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.dynamic-card__body strong {
    margin-top: var(--space-3);
    font-size: var(--heading-card-sm);
    line-height: var(--line-heading);
}

.dynamic-card__body p {
    margin: var(--space-4) 0 0;
    color: var(--color-text-muted);
}

.dynamic-card__body em {
    margin-top: var(--space-3);
    color: var(--color-text-muted);
    font-style: normal;
}

.load-more-shell {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.load-more-status {
    margin: 0;
    color: var(--color-text-muted);
}

.load-more-fallback {
    margin-left: auto;
}

.projects-showcase-section {
    overflow: clip;
    background: var(--color-surface);
}

.projects-showcase-heading {
    display: grid;
    max-width: none;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .46fr);
    column-gap: clamp(2.5rem, 7vw, 7rem);
    align-items: end;
}

.projects-showcase-heading .section-kicker,
.projects-showcase-heading h2 {
    grid-column: 1;
}

.projects-showcase-heading > p:last-child {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-lg);
    line-height: var(--line-body);
}

.project-showcase {
    display: grid;
    gap: clamp(5rem, 10vw, 10rem);
}

.project-showcase__item {
    position: relative;
    min-width: 0;
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-line);
}

.project-showcase__link {
    display: grid;
    min-height: clamp(30rem, 43vw, 39rem);
    grid-template-columns: minmax(0, 1.28fr) minmax(19rem, .72fr);
    grid-template-areas: "media content";
    gap: clamp(2rem, 5vw, 5.75rem);
    align-items: stretch;
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--motion-base) var(--ease-standard);
}

.project-showcase__item:nth-child(even) .project-showcase__link {
    grid-template-columns: minmax(19rem, .72fr) minmax(0, 1.28fr);
    grid-template-areas: "content media";
}

.project-showcase__item:nth-child(3n) .project-showcase__link {
    grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr);
}

.project-showcase__content {
    display: flex;
    min-width: 0;
    grid-area: content;
    flex-direction: column;
    align-items: flex-start;
    padding-block: clamp(1rem, 3vw, 3.5rem);
}

.project-showcase__number {
    color: var(--color-accent);
    font-size: clamp(3.75rem, 7vw, 7.5rem);
    font-weight: 650;
    letter-spacing: -.07em;
    line-height: .8;
}

.project-showcase__meta {
    margin-top: auto;
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.project-showcase__content > strong {
    max-width: 34rem;
    margin-top: var(--space-4);
    font-size: clamp(2rem, 3.5vw, 3.75rem);
    font-weight: 650;
    letter-spacing: -.05em;
    line-height: .98;
    text-transform: uppercase;
}

.project-showcase__content > em {
    margin-top: var(--space-4);
    color: var(--color-accent);
    font-size: var(--text-sm);
    font-style: normal;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.project-showcase__summary {
    max-width: 36rem;
    margin-top: var(--space-5);
    color: var(--color-text-muted);
    font-size: var(--text-lg);
    line-height: 1.5;
}

.project-showcase__action {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: clamp(2rem, 4vw, 4rem);
    padding-bottom: .45rem;
    border-bottom: 1px solid currentColor;
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition: color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard);
}

.project-showcase__media {
    position: relative;
    min-width: 0;
    overflow: hidden;
    grid-area: media;
    background: var(--color-graphite);
}

.project-showcase__image,
.project-showcase__media > figure,
.project-showcase__media > figure img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.project-showcase__image {
    transition: transform var(--motion-slow) var(--ease-emphasized);
}

.project-showcase__link:hover .project-showcase__image {
    transform: scale(1.025);
}
.project-showcase__link:hover { color: var(--color-accent-hover); }

.project-showcase__link:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 5px;
}

.project-detail-hero {
    position: relative;
    min-height: min(47rem, 76vh);
    overflow: hidden;
    background: var(--color-graphite);
    color: #fff;
}

.project-detail-hero > img,
.project-detail-hero > figure {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    opacity: .72;
}

.project-detail-hero > figure img { width: 100%; height: 100%; object-fit: cover; }
.project-detail-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,19,23,.88) 0%, rgba(14,19,23,.68) 38%, rgba(14,19,23,.2) 76%, rgba(14,19,23,.08) 100%); }
.project-detail-hero__inner { position: relative; z-index: 1; display: flex; min-height: inherit; align-items: flex-end; }
.project-detail-hero__content { width: min(100%, 58rem); padding-block: clamp(4rem, 8vw, 8rem); }
.project-detail-hero__content h1 { max-width: 58rem; margin: 0; color: #fff; font-size: var(--heading-page); letter-spacing: -.055em; line-height: var(--line-display); text-transform: uppercase; }
.project-detail-hero__content > p:last-child { max-width: 44rem; margin: var(--space-5) 0 0; color: rgba(255,255,255,.8); font-size: var(--text-lg); line-height: 1.5; }

.project-passport { border-bottom: 1px solid var(--color-line); background: var(--color-surface); }
.project-passport dl { display: grid; margin: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.project-passport dl > div { min-width: 0; padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1rem, 3vw, 2.5rem); border-left: 1px solid var(--color-line); }
.project-passport dl > div:last-child { border-right: 1px solid var(--color-line); }
.project-passport dt { color: var(--color-text-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.project-passport dd { margin: var(--space-3) 0 0; font-size: var(--text-lg); font-weight: 650; }

.project-story { padding-block: var(--section-space); }
.project-story--solution { background: var(--color-surface-muted); }
.project-story--result { background: var(--color-graphite); color: #fff; }
.project-story__grid { display: grid; grid-template-columns: minmax(17rem, .54fr) minmax(0, 1fr); gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.project-story__heading > span { display: block; margin-bottom: clamp(2rem, 5vw, 4.5rem); color: var(--color-accent); font-size: clamp(3.5rem, 7vw, 7rem); font-weight: 650; letter-spacing: -.07em; line-height: .8; }
.project-story__heading h2 { margin: 0; font-size: var(--heading-section); letter-spacing: -.05em; line-height: var(--line-heading); text-transform: uppercase; }
.project-story__body { max-width: 48rem; padding-top: clamp(1rem, 2.2vw, 2rem); font-size: var(--text-lg); }
.project-story--result h2 { color: #fff; }
.project-story--result .project-story__body { color: rgba(255,255,255,.78); }

.project-block { padding-block: var(--section-space); }
.project-block__grid { display: grid; grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.28fr); gap: clamp(3rem, 7vw, 8rem); align-items: center; }
.project-block__content { max-width: 48rem; }
.project-block__content h2 { margin: 0; font-size: var(--heading-section); letter-spacing: -.05em; line-height: var(--line-heading); text-transform: uppercase; }
.project-block__eyebrow { display: flex; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-5); color: var(--color-text-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.project-block__eyebrow span { color: var(--color-accent); }
.project-block__text { margin-top: var(--space-5); color: var(--color-text-muted); font-size: var(--text-lg); line-height: 1.55; }
.project-block__text > :first-child { margin-top: 0; }
.project-block__text > :last-child { margin-bottom: 0; }
.project-block__text ul { display: grid; gap: var(--space-3); padding-left: 1.25rem; }
.project-block__media { display: grid; min-width: 0; gap: var(--space-3); overflow: hidden; background: var(--color-graphite); }
.project-block__media--gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-block__image { display: block; width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
.project-block--text .project-block__grid { grid-template-columns: minmax(0, 48rem); justify-content: center; }
.project-block--text-image { background: var(--color-surface-muted); }
.project-block--image-text .project-block__grid { grid-template-columns: minmax(0, 1.28fr) minmax(18rem, .72fr); }
.project-block--gallery { padding-block: clamp(5.5rem, 10vw, 9rem); border-block: 1px solid var(--color-line); }
.project-block--gallery .project-block__grid { grid-template-columns: minmax(17rem, .42fr) minmax(0, 1.58fr); align-items: start; }
.project-block--gallery .project-block__media { grid-column: 2; }
.project-block--accent { position: relative; overflow: hidden; border-block: 1px solid var(--color-line); background: linear-gradient(135deg, var(--color-surface-muted) 0 68%, var(--color-surface) 68%); color: var(--color-text); }
.project-block--accent .project-block__grid { min-height: clamp(28rem, 42vw, 38rem); grid-template-columns: minmax(20rem, .88fr) minmax(0, 1.12fr); gap: clamp(2rem, 5vw, 6rem); align-items: stretch; }
.project-block--accent .project-block__content { position: relative; align-self: center; max-width: none; margin: 0; padding: clamp(2rem, 5vw, 5rem); border-left: 4px solid var(--color-accent); background: rgba(255,255,255,.94); box-shadow: 0 1.5rem 4rem rgba(25,30,34,.14); }
.project-block--accent h2 { color: var(--color-text); }
.project-block--accent .project-block__eyebrow,.project-block--accent .project-block__text { color: var(--color-text-muted); }
.project-block--accent .project-block__media { position: relative; min-height: 100%; background: var(--color-graphite); }
.project-block--accent .project-block__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24,30,34,.28), rgba(24,30,34,.03) 55%); content: ""; pointer-events: none; }
.project-block--accent .project-block__image { height: 100%; min-height: 28rem; object-fit: cover; filter: saturate(.82) contrast(1.04); }
.project-block--accent + .page-cta { border-top: clamp(.75rem, 1.3vw, 1.25rem) solid var(--color-bg); }
.project-block--technical { background: var(--color-surface-muted); }
.project-block--technical + .project-block--technical { background: var(--color-surface); }
.project-block--technical .project-block__content { padding-left: clamp(1.25rem, 3vw, 3rem); border-left: 2px solid var(--color-accent); }
.project-block--diagram { --project-diagram-bg: #f4f1eb; background: linear-gradient(180deg, var(--color-surface) 0, var(--project-diagram-bg) 12%, var(--project-diagram-bg) 88%, var(--color-surface) 100%); }
.project-block--diagram .project-block__grid { grid-template-areas: "copy media"; grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); gap: clamp(2.5rem, 5vw, 6rem); align-items: start; }
.project-block--diagram .project-block__content { grid-area: copy; min-width: 0; padding-block: clamp(.5rem, 2vw, 1.5rem); }
.project-block--diagram .project-block__content h2 { overflow-wrap: break-word; hyphens: auto; }
.project-block--diagram .project-block__media { grid-area: media; min-width: 0; margin: 0; padding: clamp(1.25rem, 3vw, 2.75rem); border: 1px solid rgba(45,51,55,.12); background: var(--project-diagram-bg); }
.project-block--diagram .project-block__image { aspect-ratio: 5 / 3; object-fit: contain; background: var(--project-diagram-bg); }

.document-filters { margin-bottom: clamp(1.75rem,3vw,2.5rem); }
.document-filters ul { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.document-filters a { display: inline-flex; min-height: 2.75rem; align-items: center; padding: .65rem 1rem; border: 1px solid var(--color-line); color: var(--color-text); text-decoration: none; }
.document-filters a:hover,.document-filters a:focus-visible { border-color: var(--color-accent); color: var(--color-accent); }
.document-filters a.is-current { border-color: var(--color-accent); background: var(--color-accent); color: #fff; font-weight: 700; }
.document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.document-card { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); border: 1px solid var(--color-line); background: #fff; transition: border-color .2s ease; }
.document-card:hover { border-color: var(--color-graphite); }
.document-card__icon { display: flex; min-height: 100%; align-items: flex-start; justify-content: center; padding: var(--space-5) var(--space-4); border-right: 1px solid var(--color-line); background: var(--color-surface-muted); color: var(--color-graphite); }
.document-file-icon { position: relative; display: block; width: 4.5rem; height: 5.25rem; flex: 0 0 auto; color: var(--color-graphite); }
.document-file-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; stroke-linejoin: miter; }
.document-file-icon__fold { fill: #fff; }
.document-file-icon__line { opacity: .38; }
.document-file-icon__badge { position: absolute; right: -.2rem; bottom: .45rem; display: inline-flex; min-width: 3.35rem; min-height: 1.65rem; align-items: center; justify-content: center; padding: .2rem .42rem; border: 1px solid currentColor; background: #fff; color: var(--color-graphite); font-size: .68rem; font-weight: 800; line-height: 1; letter-spacing: .075em; }
.document-file-icon--pdf .document-file-icon__badge { border-color: var(--color-accent); background: var(--color-accent); color: #fff; }
.document-card__body { padding: var(--space-5); }
.document-card__body small { color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .08em; }
.document-card__body dl { display: grid !important; width: auto; gap: var(--space-2); }
.document-card__body dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: var(--space-3); }
.document-card__body dt,.document-card__body dd { width: auto !important; margin: 0; }
.document-card__body dt { color: var(--color-text-muted); }
.document-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-top: var(--space-5); }
.document-card__actions a { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; }
.document-card__download { min-width: 7rem; padding: .65rem 1rem; border: 1px solid var(--color-graphite); color: var(--color-graphite); font-weight: 700; text-decoration: none; }
.document-card__download:hover,.document-card__download:focus-visible { border-color: var(--color-accent); color: var(--color-accent); }
.company-document-links a { grid-template-columns: 3.75rem minmax(0,1fr); align-items: center; min-height: 5.5rem; }
.document-section-icon { display: inline-flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; color: var(--color-graphite); }
.document-section-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; stroke-linejoin: miter; }
.company-document-links__copy { display: grid; min-width: 0; gap: .3rem; }
.company-document-links__copy small { color: var(--color-text-muted); font-size: .78rem; line-height: 1.35; }
.company-document-links a:hover .document-section-icon,.company-document-links a:focus-visible .document-section-icon { color: var(--color-accent); }
.material-detail__header--media > img.inner-hero__media { width: 100%; height: 100%; max-width: 100%; object-fit: cover; }

@media (max-width: 1199px) {
    .project-block--diagram .project-block__grid { grid-template-areas: "copy" "media"; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 3.5rem); }
    .project-block--diagram .project-block__content { padding-block: 0; }
    .direction-entry { min-height: 0; grid-template-columns: clamp(3rem, 7vw, 5rem) minmax(0, 1fr); }
    .direction-entry__body { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .direction-entry__body ul { margin-top: var(--space-5); }
}

@media (max-width: 1023px) {
    .dynamic-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .projects-showcase-heading { grid-template-columns: minmax(0, 1fr); }
    .projects-showcase-heading > p:last-child { max-width: 42rem; margin-top: var(--space-5); grid-column: 1; grid-row: auto; }
    .project-showcase__link,.project-showcase__item:nth-child(even) .project-showcase__link,.project-showcase__item:nth-child(3n) .project-showcase__link { min-height: 0; grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "media"; gap: var(--space-5); }
    .project-showcase__content { min-height: 25rem; padding-bottom: 0; }
    .project-showcase__media { min-height: clamp(22rem, 62vw, 34rem); }
    .project-story__grid,.project-block__grid,.project-block--image-text .project-block__grid,.project-block--gallery .project-block__grid,.project-block--accent .project-block__grid,.document-grid { grid-template-columns: minmax(0, 1fr); }
    .project-block--gallery .project-block__media,.project-block--accent .project-block__content { grid-column: auto; }
    .project-block--accent .project-block__content { margin: 0; }
    .project-block--accent .project-block__grid { gap: clamp(2rem, 5vw, 3.5rem); }
    .project-block--accent .project-block__media { min-height: clamp(22rem, 58vw, 32rem); }
    .project-block--image-text .project-block__media { grid-row: auto; }
    .catalog-direction-group { grid-template-columns: clamp(3rem, 7vw, 5rem) minmax(0, 1fr); }
    .catalog-direction-group > :nth-child(3) { grid-column: 2; }
    .material-detail__header--media { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .dynamic-card-grid,.document-card { grid-template-columns: minmax(0, 1fr); }
    .document-card__icon { min-height: 7rem; align-items: center; border-right: 0; border-bottom: 1px solid var(--color-line); }
    .load-more-shell { align-items: stretch; flex-direction: column; }
    .load-more-fallback { margin-left: 0; }
    .project-showcase { gap: 5rem; }
    .project-showcase__content { min-height: 0; }
    .project-showcase__number { margin-bottom: 3.5rem; }
    .project-showcase__meta { margin-top: 0; }
    .project-showcase__media { min-height: 18rem; }
    .project-detail-hero { min-height: min(42rem, calc(100svh - 4.5rem)); }
    .project-detail-hero::after { background: linear-gradient(180deg,rgba(14,19,23,.15) 0%,rgba(14,19,23,.44) 43%,rgba(14,19,23,.9) 100%); }
    .project-detail-hero__content { padding-block: 4rem 3rem; }
    .project-block--gallery { padding-block: clamp(4rem, 17vw, 5.5rem); }
    .project-block--accent .project-block__content { padding: 2rem 1.5rem; }
    .project-block--accent .project-block__media,
    .project-block--accent .project-block__image { min-height: 18rem; }
    .direction-entry { padding: 2.25rem 1.25rem; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
    .direction-entry__number,.direction-entry__heading,.direction-entry__body { grid-column: 1; }
    .direction-entry__heading h3 { font-size: clamp(1.5rem, 6vw, 2rem); overflow-wrap: anywhere; }
    .direction-entry__body ul { margin-top: var(--space-5); grid-template-columns: minmax(0, 1fr); }
    .catalog-direction-group { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
    .catalog-direction-group > :nth-child(3) { grid-column: 1; }
    .catalog-direction-group ul { grid-template-columns: minmax(0, 1fr); }
    .project-passport dl { grid-template-columns: minmax(0, 1fr); }
    .project-passport dl > div,.project-passport dl > div:last-child { border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
    .project-story__grid { gap: var(--space-5); }
    .project-story__heading > span { margin-bottom: 2.5rem; }
    .project-block__grid { gap: var(--space-5); }
    .project-block--diagram .project-block__content h2 { font-size: clamp(1.875rem, 8vw, 2.25rem); overflow-wrap: normal; }
    .project-block--technical .project-block__content { padding-left: 1rem; }
    .project-block__media--gallery { grid-template-columns: minmax(0, 1fr); }
    .document-card__body dl > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* CP-026 corporate design system: semantic contracts, not page-specific sizes. */
html {
    background: var(--color-bg);
}

body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family-base);
    font-size: var(--text-base);
    line-height: var(--line-body);
}

h1,
h2,
h3,
h4 {
    font-family: var(--font-family-display);
    text-wrap: balance;
}

.container {
    width: min(calc(100% - (2 * var(--container-gutter))), var(--container-max));
}

.container--wide {
    width: min(calc(100% - (2 * var(--container-gutter))), var(--container-wide));
    margin-inline: auto;
}

.container--narrow {
    width: min(calc(100% - (2 * var(--container-gutter))), var(--container-narrow));
    margin-inline: auto;
}

.content-section {
    padding-block: var(--section-space);
}

.content-section--soft {
    background: var(--color-surface-muted);
}

.section-kicker,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-5);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.section-kicker::before,
.eyebrow::before {
    width: 1.75rem;
    height: 2px;
    flex: 0 0 auto;
    background: var(--color-accent);
    content: "";
}

.inner-hero--dark .section-kicker,
.page-cta .section-kicker,
.engineering-hero .section-kicker,
.home-hero--visual .section-kicker {
    color: rgba(255, 255, 255, .72);
}

.button,
.header-callback,
.footer-callback {
    min-height: var(--control-height);
    padding: .8rem 1.4rem;
    border-radius: var(--radius-control);
    font-size: var(--text-sm);
    letter-spacing: .015em;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.button:active,
.header-callback:active,
.footer-callback:active {
    transform: translateY(1px);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid var(--focus-ring);
    outline-offset: 3px;
}

.site-media,
.catalog-section-card,
.catalog-product-card,
.solution,
.solution-visual-card,
.concept-case__visual,
.material-list-shell,
.empty-state {
    border-color: var(--color-line);
}

.catalog-section-card,
.catalog-product-card,
.empty-state {
    background: var(--color-surface);
}

.inner-hero {
    padding-block: clamp(3.75rem, 7vw, 7.5rem);
    border-color: var(--color-line);
    background: var(--color-bg);
}

.inner-hero__grid--media > *,
.material-detail__header--media > * {
    min-width: 0;
}

.inner-hero__media {
    min-height: clamp(22rem, 35vw, 34rem);
}

.inner-hero h1 {
    font-size: var(--heading-page);
    letter-spacing: -.045em;
    line-height: var(--line-display);
    text-transform: none;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (max-width: 1599px) {
    .inner-hero__grid--media,
    .material-detail__header--media {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "title"
            "lead"
            "media";
        row-gap: clamp(1.75rem, 4vw, 3rem);
    }
}

.inner-hero__lead {
    color: var(--color-text-muted);
    font-size: var(--text-lead);
    line-height: 1.38;
}

.section-heading h2,
.split-content h2,
.page-cta h2,
.empty-state h2,
.engineering-heading h2,
.engineering-system h2,
.engineering-break h2,
.concept-case h2 {
    font-size: var(--heading-section);
    letter-spacing: -.04em;
    line-height: var(--line-heading);
    text-transform: none;
}

.catalog-detail__summary h1 {
    font-size: var(--heading-product);
}

.main-nav__item {
    position: relative;
}

@media (min-width: 1280px) {
    .site-header__inner,
    .site-header__utility-inner {
        width: min(calc(100% - (2 * var(--container-gutter))), var(--container-wide));
    }
}

@media (min-width: 1280px) and (max-width: 1599px) {
    .site-header__inner {
        gap: var(--space-3);
    }

    .site-logo,
    .site-logo img {
        width: 154px;
    }

    .main-nav__list {
        justify-content: flex-start;
        gap: 8px;
    }

    .main-nav__link {
        font-size: 13px;
    }

    .main-nav__disclosure {
        width: 1.5rem;
        padding: .4rem;
    }

    .site-header .header-callback--desktop {
        min-height: 34px;
        padding: .45rem .85rem;
        font-size: .78rem;
    }

    .header-search-compact {
        width: 12.5rem;
        flex-basis: 12.5rem;
    }
}

.main-nav__primary {
    display: flex;
    align-items: center;
}

.main-nav__disclosure {
    display: grid;
    width: 2rem;
    height: 2rem;
    margin-left: .2rem;
    padding: .55rem;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--color-graphite);
    cursor: pointer;
}

.main-nav__disclosure svg {
    width: .75rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    transition: transform var(--transition-fast);
}

.main-nav__disclosure[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.main-nav__panel[hidden] {
    display: none;
}

.main-nav__panel {
    position: fixed;
    z-index: 920;
    top: var(--nav-panel-top, calc(var(--admin-panel-offset, 0px) + 151px));
    right: 0;
    left: 0;
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line-strong);
    background: var(--color-surface);
    box-shadow: 0 22px 38px rgba(24, 30, 34, .12);
}

.main-nav__panel-inner {
    display: grid;
    width: min(calc(100% - (2 * var(--container-gutter))), var(--container-max));
    margin-inline: auto;
    padding-block: var(--space-7);
    grid-template-columns: minmax(14rem, .32fr) minmax(0, 1fr);
    gap: var(--space-8);
}

.main-nav__panel-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-right: 1px solid var(--color-line);
}

.main-nav__panel-heading > a {
    margin-top: auto;
    font-weight: 700;
    text-decoration: none;
}

.main-nav__panel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 0;
    background: var(--color-line);
    list-style: none;
}

.main-nav__panel-grid a {
    display: flex;
    min-height: 9.5rem;
    padding: var(--space-5);
    flex-direction: column;
    background: var(--color-surface);
    text-decoration: none;
    transition: background-color var(--transition-fast);
}

.main-nav__panel-grid a:hover,
.main-nav__panel-grid a:focus-visible {
    background: var(--color-surface-muted);
}

.main-nav__panel-grid strong {
    font-size: var(--heading-card-sm);
    line-height: var(--line-heading);
}

.main-nav__panel-grid span {
    margin-top: auto;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.main-nav__panel--catalog {
    max-height: calc(100dvh - var(--nav-panel-top, 9.5rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: none;
}

.main-nav__panel-inner--catalog {
    display: block;
    padding-block: clamp(1.5rem, 2.5vw, 2.25rem);
}

.main-nav__catalog-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-nav__catalog-column {
    min-width: 0;
    padding-inline: clamp(1.5rem, 3vw, 3rem);
}

.main-nav__catalog-column:first-child {
    padding-left: 0;
}

.main-nav__catalog-column:last-child {
    padding-right: 0;
}

.main-nav__catalog-column + .main-nav__catalog-column {
    border-left: 1px solid var(--color-line);
}

.main-nav__catalog-root {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: var(--space-2);
}

.main-nav__catalog-root-link,
.main-nav__catalog-child-link {
    min-width: 0;
    color: var(--color-text);
    overflow-wrap: anywhere;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.main-nav__catalog-root-link {
    display: flex;
    min-height: 44px;
    align-items: center;
    color: var(--color-graphite);
    font-size: var(--heading-card-sm);
    font-weight: 700;
    line-height: var(--line-heading);
}

.main-nav__catalog-direct {
    display: grid;
    gap: var(--space-1);
    margin: var(--space-3) 0 0;
    padding: 0;
    list-style: none;
}

.main-nav__catalog-child-link {
    display: flex;
    min-height: 44px;
    padding-block: .55rem;
    align-items: center;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.main-nav__catalog-root-link:hover,
.main-nav__catalog-root-link:focus-visible,
.main-nav__catalog-root-link.is-active,
.main-nav__catalog-child-link:hover,
.main-nav__catalog-child-link:focus-visible,
.main-nav__catalog-child-link.is-active {
    color: var(--color-accent);
}

.main-nav__catalog-root-toggle {
    display: none;
}

@media (max-width: 1279px) {
    .main-nav__primary {
        justify-content: space-between;
        border-bottom: 1px solid var(--color-line);
    }

    .main-nav__item + .main-nav__item {
        border-top: 0;
    }

    .main-nav__link {
        flex: 1 1 auto;
    }

    .main-nav__disclosure {
        width: 3rem;
        height: 3rem;
    }

    .main-nav__panel,
    .site-header:not(.is-scrolled) .main-nav__panel,
    .site-header.is-scrolled .main-nav__panel {
        position: static;
        border: 0;
        background: var(--color-surface-muted);
        box-shadow: none;
    }

    .main-nav__panel-inner {
        display: block;
        width: auto;
        padding: var(--space-5);
    }

    .main-nav__panel-heading {
        padding-bottom: var(--space-4);
        border-right: 0;
    }

    .main-nav__panel-heading .eyebrow {
        display: none;
    }

    .main-nav__panel-grid {
        grid-template-columns: 1fr;
        margin-top: var(--space-4);
    }

    .main-nav__panel-grid a {
        min-height: 0;
        padding: var(--space-4);
    }

    .main-nav__panel-grid span {
        margin-top: var(--space-2);
    }

    .main-nav__panel--catalog {
        max-height: none;
        overflow: visible;
    }

    .main-nav__panel-inner--catalog {
        padding: 0;
    }

    .main-nav__catalog-columns {
        display: block;
    }

    .main-nav__catalog-column {
        padding: 0;
    }

    .main-nav__catalog-column + .main-nav__catalog-column {
        border-top: 1px solid var(--color-line);
        border-left: 0;
    }

    .main-nav__catalog-root {
        min-height: 48px;
    }

    .main-nav__catalog-root-link {
        min-height: 48px;
        flex: 1 1 auto;
        padding: .7rem var(--space-4);
        font-size: 1rem;
    }

    .main-nav__catalog-root-toggle {
        display: grid;
        width: 48px;
        height: 48px;
        flex: 0 0 48px;
        padding: 1rem;
        place-items: center;
        border: 0;
        background: transparent;
        color: var(--color-graphite);
        cursor: pointer;
    }

    .main-nav__catalog-root-toggle svg {
        width: .75rem;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.5;
        transition: transform var(--transition-fast);
    }

    .main-nav__catalog-root-toggle[aria-expanded="true"] svg {
        transform: rotate(180deg);
    }

    .main-nav__catalog-direct[hidden] {
        display: none;
    }

    .main-nav__catalog-direct {
        gap: 0;
        margin: 0;
        padding: 0 0 var(--space-3) var(--space-5);
    }

    .main-nav__catalog-child-link {
        min-height: 44px;
        padding: .55rem var(--space-4);
    }

    .inner-hero__grid--media {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .inner-hero,
    .content-section {
        padding-block: clamp(3.5rem, 14vw, 5rem);
    }

    .inner-hero__media {
        min-height: 18rem;
    }
}

/* CP-026.1: visual/commerce corrections built on the design-token layer. */
.inner-hero {
    --hero-background: var(--color-bg);
    --hero-foreground: var(--color-text);
    --hero-muted: var(--color-text-muted);
    background: var(--hero-background);
    color: var(--hero-foreground);
}

.inner-hero--dark {
    --hero-background: var(--color-surface-dark);
    --hero-foreground: var(--color-text-inverse);
    --hero-muted: rgba(255, 255, 255, .78);
}

.inner-hero h1,
.inner-hero .section-kicker {
    color: var(--hero-foreground);
}

.inner-hero .inner-hero__lead {
    color: var(--hero-muted);
}

.glass-panel {
    position: relative;
}

@media (max-width: 600px) {
    .engineering-hero__shade,
    .home-hero__shade {
        background: linear-gradient(180deg, rgba(12, 17, 21, .16) 0%, rgba(12, 17, 21, .45) 42%, rgba(12, 17, 21, .78) 100%);
    }
}

/* One content rhythm for a heading followed by any section body. */
.section-heading {
    margin-block: 0 var(--section-heading-gap);
}

.section-heading + :is(.dynamic-card-grid, .catalog-section-grid, .direction-lines, .catalog-specs__list, .empty-state, .material-topics, .material-list-shell, .document-grid, .concept-nav, .engineering-card-grid, .solution-overview__grid, .home-solution-visuals, .reviews-list, form) {
    margin-top: 0;
}

.contact-hero {
    padding-block: clamp(3.5rem, 6vw, 6.5rem);
}

.contact-hero__grid {
    display: grid;
    min-height: clamp(31rem, 42vw, 39rem);
    grid-template-columns: minmax(0, .82fr) minmax(31rem, 1.18fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: stretch;
}

.contact-hero__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
}

.contact-hero__content h1 {
    margin: 0;
}

.contact-hero__content .inner-hero__lead {
    margin-top: var(--space-6);
}

.contact-hero__address {
    max-width: 36rem;
    margin: auto 0 0;
    padding-top: var(--space-6);
    border-top: 1px solid var(--color-line);
    color: var(--color-text-muted);
    line-height: var(--line-body);
}

.contact-map {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid var(--color-line-strong);
    background: var(--color-surface-muted);
}

.contact-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 31rem;
    border: 0;
}

.contact-map__fallback {
    position: absolute;
    right: var(--space-4);
    bottom: var(--space-4);
    padding: .75rem 1rem;
    border: 1px solid rgba(255, 255, 255, .65);
    background: rgba(32, 38, 43, .9);
    color: #fff;
    font-size: var(--text-sm);
    font-weight: 700;
    text-decoration: none;
}

.site-footer__brand img {
    display: block;
    width: 13.125rem;
    height: auto;
}

.product-price {
    color: var(--color-text);
    font-weight: 700;
    line-height: 1.25;
}

.product-price--card {
    margin-top: auto;
    padding-top: var(--space-4);
    color: var(--color-text);
    font-size: var(--text-base);
    font-variant-numeric: tabular-nums;
}

.catalog-price-note {
    max-width: 52rem;
    margin: calc(var(--space-3) * -1) 0 var(--space-6);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: 1.5;
}

.catalog-detail__conversion {
    display: grid;
    grid-template-columns: minmax(0, auto) auto;
    align-items: center;
    justify-content: start;
    gap: var(--space-4) var(--space-5);
}

.catalog-detail__conversion-block {
    display: grid;
    margin-top: var(--space-6);
    gap: var(--space-4);
}

.catalog-detail__conversion .button {
    min-height: var(--control-height-lg);
}

.product-price--detail {
    min-width: 11rem;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-variant-numeric: tabular-nums;
}

.catalog-price-note--detail {
    max-width: 37rem;
    margin: 0;
    font-size: var(--text-xs);
}

.grosma-file-upload {
    position: relative;
}

.grosma-file-upload__label {
    display: block;
    margin-bottom: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 700;
}

.grosma-file-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.grosma-file-upload__dropzone {
    display: grid;
    min-height: 8.5rem;
    padding: var(--space-5);
    place-content: center;
    border: 1px dashed var(--color-line-strong);
    background: var(--color-surface-muted);
    text-align: center;
    cursor: pointer;
    transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.grosma-file-upload__dropzone strong {
    color: var(--color-text);
}

.grosma-file-upload__dropzone span {
    margin-top: var(--space-2);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.grosma-file-upload.is-dragover .grosma-file-upload__dropzone,
.grosma-file-upload__dropzone:hover,
.grosma-file-upload__dropzone:focus-visible {
    border-color: var(--color-accent);
    background: rgba(225, 92, 5, .055);
}

.grosma-file-upload__selection {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-line);
    background: var(--color-surface);
}

.grosma-file-upload__selection[hidden] {
    display: none;
}

.grosma-file-upload__selection span {
    display: grid;
    min-width: 0;
}

.grosma-file-upload__selection strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.grosma-file-upload__selection small,
.grosma-file-upload__hint {
    color: var(--color-text-muted);
}

.grosma-file-upload__selection button {
    min-height: 2.75rem;
    padding-inline: var(--space-4);
    border: 1px solid var(--color-line-strong);
    background: transparent;
    color: var(--color-text);
    cursor: pointer;
}

.grosma-file-upload__hint,
.grosma-file-upload__error {
    margin: var(--space-2) 0 0;
    font-size: var(--text-xs);
    line-height: 1.45;
}

.grosma-file-upload__error {
    color: #a43121;
}

.home-solutions {
    background: var(--color-bg);
    color: var(--color-text);
}

.home-solution-visuals {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-4);
}

.home-solution-visuals article,
.home-solution-visuals article:first-child,
.home-solution-visuals article:nth-child(2) {
    grid-column: span 5;
}

.home-solution-visuals article:first-child {
    grid-row: span 2;
    grid-column: span 7;
}

.home-solution-visuals article:nth-child(4),
.home-solution-visuals article:nth-child(5) {
    grid-column: span 6;
}

.home-solution-visuals article:first-child a {
    min-height: 100%;
}

.home-solution-visuals a {
    min-height: 20rem;
    border: 1px solid var(--color-line);
    background: var(--color-graphite);
    color: #fff;
}

.home-solution-visuals strong {
    color: #fff;
}

.home-solutions__bottom {
    border-color: var(--color-line);
}

.home-solutions__bottom p {
    color: var(--color-text-muted);
}

.section-heading__note {
    max-width: 42rem;
    margin: var(--space-4) 0 0;
    color: var(--color-text-muted);
}

/* CP-032 USER QA: shared server-side pagination for search, catalog and content lists. */
.grosma-pagination {
    --pagination-text: #161616;
    --pagination-graphite: #383e45;
    --pagination-accent: #e15c05;
    --pagination-accent-hover: #c94f00;
    --pagination-line: #e5e5e5;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(1.25rem, 4vw, 4rem);
    margin-top: clamp(2rem, 4vw, 3.5rem);
    color: var(--pagination-text);
}

.grosma-pagination__summary {
    flex: 0 1 auto;
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.grosma-pagination__summary strong {
    color: var(--pagination-text);
    font-weight: 700;
}

.grosma-pagination__list {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .5rem;
    max-width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.grosma-pagination__item {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.grosma-pagination__link {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    box-sizing: border-box;
    place-items: center;
    border: 1px solid var(--pagination-line);
    background: var(--color-surface);
    color: var(--pagination-text);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);
}

.grosma-pagination a.grosma-pagination__link:hover {
    border-color: var(--pagination-graphite);
    background: var(--pagination-graphite);
    color: #fff;
}

.grosma-pagination a.grosma-pagination__link:focus-visible {
    outline: 3px solid var(--pagination-accent);
    outline-offset: 3px;
}

.grosma-pagination__link.is-current {
    border: 2px solid var(--pagination-accent);
    background: var(--pagination-accent);
    color: #fff;
    font-weight: 800;
}

.grosma-pagination__item--ellipsis {
    width: 1.25rem;
    height: 2.75rem;
    color: var(--pagination-graphite);
    font-weight: 700;
}

.grosma-pagination__link svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: square;
    stroke-linejoin: miter;
    stroke-width: 1.8;
}

@media (max-width: 767px) {
    .grosma-pagination {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .grosma-pagination__list {
        gap: .25rem;
    }

    .grosma-pagination__item--context {
        display: none;
    }
}

@media (max-width: 1279px) {
    .contact-hero__grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .contact-hero__content {
        min-height: 22rem;
    }

    .contact-map,
    .contact-map iframe {
        min-height: clamp(24rem, 58vw, 34rem);
    }
}

@media (max-width: 820px) {
    .home-solution-visuals {
        grid-template-columns: 1fr;
    }

    .home-solution-visuals article,
    .home-solution-visuals article:first-child,
    .home-solution-visuals article:nth-child(2),
    .home-solution-visuals article:nth-child(4),
    .home-solution-visuals article:nth-child(5) {
        grid-column: auto;
        grid-row: auto;
    }

    .home-solution-visuals article:first-child a {
        min-height: 20rem;
    }
}

@media (max-width: 600px) {
    .contact-hero__content {
        min-height: 0;
    }

    .contact-map,
    .contact-map iframe {
        min-height: 22rem;
    }

    .catalog-detail__conversion {
        align-items: stretch;
        grid-template-columns: minmax(0, 1fr);
    }

    .product-price--detail {
        min-width: 0;
    }
}

/* End */


/* Start:/local/templates/grosma/assets/css/region.css?17875673337478*/
.region-switcher { position: relative; min-width: 0; }
.region-switcher__button { max-width: 18rem; }
.region-switcher__city { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.region-switcher__chevron { width: var(--icon-sm); height: var(--icon-sm); transition: transform var(--motion-fast) var(--ease-standard); }
.region-switcher__button[aria-expanded="true"] .region-switcher__chevron { transform: rotate(180deg); }

.region-dialog-backdrop { position: fixed; inset: 0; z-index: var(--z-dialog); display: grid; place-items: center; padding: var(--space-5); background: var(--color-overlay); }
.region-dialog { position: relative; width: min(50rem, 100%); max-height: min(42rem, calc(100dvh - 2 * var(--space-5))); overflow: hidden; border: 1px solid var(--color-line-strong); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-popover); }
.region-dialog__close { position: absolute; top: var(--space-4); right: var(--space-4); z-index: 1; width: var(--control-height-sm); height: var(--control-height-sm); padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--color-text); cursor: pointer; transition: color var(--motion-fast) var(--ease-standard); }
.region-dialog__close:hover { color: var(--color-accent-hover); background: transparent; }
.region-dialog__close:focus-visible, .region-dialog button:focus-visible, .region-dialog input:focus-visible, .region-confirmation button:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.region-dialog__close .ui-icon { width: var(--icon-lg); height: var(--icon-lg); margin: auto; }

.region-chooser { display: grid; grid-template-rows: auto auto minmax(0, 1fr); }
.region-chooser__heading { padding: var(--space-6) calc(var(--space-8) + var(--space-3)) var(--space-4) var(--space-6); }
.region-chooser__heading h2 { margin: 0; font-size: var(--heading-section-compact); line-height: var(--line-heading); }
.region-chooser__tools { display: grid; grid-template-columns: minmax(16rem, 28rem) auto; justify-content: start; gap: var(--space-3); padding: 0 var(--space-6) var(--space-5); }
.region-chooser__search { position: relative; display: block; }
.region-chooser__search .ui-icon { position: absolute; top: 50%; left: var(--space-4); width: var(--icon-md); height: var(--icon-md); transform: translateY(-50%); color: var(--color-text-muted); pointer-events: none; }
.region-chooser__search input { width: 100%; min-height: var(--control-height-lg); padding: var(--space-3) var(--space-4) var(--space-3) calc(var(--space-4) * 2 + var(--icon-md)); border: 1px solid var(--color-line-strong); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text); font: inherit; }
.region-chooser__search input::-webkit-search-cancel-button { appearance: none; }
.region-chooser__detect { display: inline-flex; min-width: 7rem; min-height: var(--control-height-lg); align-items: center; justify-content: center; gap: var(--space-2); padding-inline: var(--space-4); border: 1px solid var(--color-line-strong); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text); font: inherit; font-weight: 700; cursor: pointer; transition: border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.region-chooser__detect:hover { border-color: var(--color-accent); color: var(--color-accent-hover); }
.region-chooser__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-content: start; gap: var(--space-6) var(--space-5); padding: 0 var(--space-6) var(--space-6); overflow: auto; overscroll-behavior: contain; }
.region-chooser__list section { min-width: 0; }
.region-chooser__list h3 { margin: 0 0 var(--space-2); padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-line); color: var(--color-text-muted); font-size: var(--text-sm); text-transform: uppercase; letter-spacing: .05em; }
.region-chooser__cities { display: grid; gap: var(--space-1); }
.region-chooser__city { min-width: 0; min-height: var(--control-height-sm); padding: var(--space-2) var(--space-3); border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--color-text); overflow-wrap: anywhere; font: inherit; line-height: 1.35; text-align: left; cursor: pointer; transition: color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard); }
.region-chooser__city:hover { background: transparent; color: var(--color-accent-hover); box-shadow: inset 2px 0 0 var(--color-accent); }
.region-chooser__city[aria-current="true"] { background: transparent; box-shadow: inset 2px 0 0 var(--color-accent); font-weight: 700; }
.region-chooser__empty, .region-chooser__status { grid-column: 1 / -1; margin: var(--space-4) 0; color: var(--color-text-muted); }
.region-chooser__loader { width: var(--icon-lg); height: var(--icon-lg); animation: region-spin var(--motion-slow) linear infinite; }

.region-confirmation { position: fixed; z-index: var(--z-popover); top: 3.25rem; left: max(var(--container-gutter), calc((100vw - var(--container-wide)) / 2 + var(--container-gutter))); width: min(24rem, calc(100vw - 2 * var(--space-4))); padding: var(--space-5); border: 1px solid var(--color-line-strong); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-popover); }
.region-confirmation p { margin: 0 0 var(--space-4); padding-right: var(--space-7); font-size: var(--text-lg); line-height: 1.35; }
.region-confirmation__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.region-confirmation__actions button { min-height: var(--control-height-sm); padding-inline: var(--space-4); border: 1px solid var(--color-line-strong); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text); font: inherit; font-weight: 700; cursor: pointer; }
.region-confirmation__confirm { border-color: var(--color-accent) !important; background: var(--color-accent) !important; color: var(--color-text-inverse) !important; }
.region-confirmation__actions button:hover { border-color: var(--color-accent-hover); }
.region-dialog-open { overflow: hidden; }
@keyframes region-spin { to { transform: rotate(360deg); } }

@media (max-width: 1279px) {
    .site-header__utility-inner { justify-content: flex-start; }
    .region-switcher__button { max-width: min(22rem, calc(100vw - 2 * var(--container-gutter))); }
}

@media (max-width: 767px) {
    .region-dialog-backdrop { align-items: end; padding: 0; }
    .region-dialog { width: 100%; max-height: min(90dvh, 48rem); border-width: 1px 0 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
    .region-chooser__heading { padding: var(--space-5) var(--space-8) var(--space-3) var(--space-4); }
    .region-chooser__tools { grid-template-columns: minmax(0, 1fr) auto; padding: 0 var(--space-4) var(--space-4); }
    .region-chooser__detect { min-width: 6.25rem; padding-inline: var(--space-3); }
    .region-chooser__list { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: 0 var(--space-4) var(--space-6); }
    .region-confirmation { top: auto; right: var(--space-3); bottom: var(--space-3); left: var(--space-3); width: auto; }
}

@media (max-width: 479px) {
    .region-switcher__button { max-width: calc(100vw - 2 * var(--container-gutter)); }
}

/* End */


/* Start:/local/templates/grosma/assets/css/quote.css?17875901116011*/
.quote-header-action { position: relative; white-space: nowrap; }
.quote-header-action .ui-badge { position: absolute; top: .1rem; right: .1rem; transform: translate(35%, -15%); }
.catalog-product-card__actions { display: grid; gap: var(--space-3); margin-top: auto; }
.catalog-product-card__actions .button { width: 100%; }
.catalog-product-card__quote { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-2); min-width: 0; }
.button--secondary { border: 1px solid var(--color-line-strong); background: var(--color-surface); color: var(--color-text); }
.button--secondary:hover { border-color: var(--color-accent); color: var(--color-accent-hover); }
.button--accent[data-quote-add].is-added { border-color: var(--color-accent-strong); background: var(--color-accent-strong); color: var(--color-text-inverse); }
.button--secondary[data-quote-add].is-added { border-color: var(--color-accent); background: var(--color-surface); color: var(--color-accent-hover); }
.catalog-detail__quote-group { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-2); min-width: 0; }
.catalog-detail__quote-group .button { width: 100%; }
.product-quantity-control { visibility: visible; pointer-events: auto; }
.product-quantity-control { grid-template-columns: var(--control-height-sm) 2rem var(--control-height-sm); }
.product-quantity-control button:disabled { color: var(--color-text-muted); cursor: not-allowed; opacity: .55; }
.quote-page { padding-block: var(--section-space); }
.quote-page__header { display: grid; min-width: 0; gap: var(--space-4); max-width: var(--container-narrow); margin-bottom: var(--space-7); }
.quote-page__header h1 { min-width: 0; margin: 0; font-size: var(--heading-page); line-height: var(--line-heading); overflow-wrap: anywhere; }
.quote-list { display: grid; gap: 1px; border: 1px solid var(--color-line); background: var(--color-line); }
.quote-item { display: grid; grid-template-columns: 8rem minmax(0, 1fr) auto var(--control-height-sm); align-items: center; gap: var(--space-5); min-width: 0; padding: var(--space-4); background: var(--color-surface); }
.quote-item__media { display: grid; place-items: center; aspect-ratio: 4/3; overflow: hidden; background: var(--color-surface-muted); color: var(--color-text-muted); }
.quote-item__media img { width: 100%; height: 100%; object-fit: cover; }
.quote-item__placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--color-text-muted); }
.quote-item__media .ui-icon { width: calc(var(--icon-lg) * 1.75); height: calc(var(--icon-lg) * 1.75); }
.quote-item__copy { min-width: 0; }
.quote-item__copy p { margin: 0 0 var(--space-2); color: var(--color-text-muted); font-size: var(--text-sm); }
.quote-item__copy h2 { margin: 0; font-size: var(--heading-card-sm); }
.quote-item__copy a { color: inherit; }
.quantity-control { display: grid; grid-template-columns: var(--control-height-sm) 3rem var(--control-height-sm); align-items: center; border: 1px solid var(--color-line-strong); border-radius: var(--radius-sm); }
.quantity-control button, .icon-button { display: grid; place-items: center; width: var(--control-height-sm); height: var(--control-height-sm); padding: 0; border: 0; background: transparent; color: var(--color-text); cursor: pointer; }
.quantity-control button:hover, .icon-button:hover { color: var(--color-accent-hover); background: var(--color-surface-hover); }
.quantity-control output,
.quantity-control input {
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-weight: 700;
    text-align: center;
    appearance: textfield;
}
.quantity-control input::-webkit-inner-spin-button,
.quantity-control input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.quantity-control input:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.quantity-control .ui-icon, .icon-button .ui-icon { width: var(--icon-md); height: var(--icon-md); }
.quantity-control button:focus-visible, .icon-button:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.quote-actions { display: flex; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-6); }
.quote-empty { display: grid; justify-items: start; gap: var(--space-4); padding: var(--space-7); border: 1px solid var(--color-line); background: var(--color-surface); }
.quote-empty > div { color: var(--color-accent); }
.quote-empty .ui-icon { width: 3rem; height: 3rem; }
.quote-empty h2, .quote-empty p { margin: 0; }
.form-status { padding: var(--space-4); border: 1px solid var(--color-line-strong); background: var(--color-surface); }
.form-status--error { border-color: var(--color-danger); }
@media (max-width: 767px) {
    .quote-item { grid-template-columns: 5rem minmax(0, 1fr) var(--control-height-sm); gap: var(--space-3); }
    .quantity-control { grid-column: 1 / -1; justify-self: start; }
    .quote-actions { align-items: stretch; flex-direction: column-reverse; }
    .quote-actions .button { width: 100%; }
    .catalog-detail__quote-group { grid-template-columns: auto minmax(0, 1fr); width: 100%; }
}
@media (max-width: 479px) {
    .quote-header-action { width: var(--control-height-sm); padding-inline: 0; }
    .quote-header-action .header-action__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .catalog-detail__quote-group { grid-template-columns: auto minmax(0, 1fr); }
    .catalog-product-card__quote { grid-template-columns: auto minmax(0, 1fr); }
    .product-quantity-control { justify-self: start; }
}
@media (max-width: 359px) {
    .quote-item { grid-template-columns: 4rem minmax(0, 1fr) var(--control-height-sm); padding: var(--space-3); }
    .catalog-detail__quote-group .button, .catalog-product-card__quote .button { padding-inline: var(--space-2); font-size: var(--text-sm); }
}

/* End */
/* /local/templates/grosma/assets/css/main.css?1787595799168579 */
/* /local/templates/grosma/assets/css/region.css?17875673337478 */
/* /local/templates/grosma/assets/css/quote.css?17875901116011 */
