/**
 * Frontend Design System v2 — Authoritative visual layer
 * Enterprise engineering consultancy presentation.
 * Loads last — overrides Bootstrap defaults without changing CMS components.
 */

:root {
    --frontend-v2-design-system: frontend-v2;
    --frontend-v2-section-spacing: clamp(4.25rem, 7.5vw, 7rem);
    --frontend-v2-section-spacing-sm: clamp(2.75rem, 5vw, 4rem);
    --frontend-v2-section-spacing-xs: clamp(2rem, 3.5vw, 2.75rem);
    --frontend-v2-container-max: min(1280px, calc(100vw - 2rem));
    --frontend-v2-container-wide: min(1440px, calc(100vw - 2.5rem));
    --frontend-v2-container-ultra: min(1600px, calc(100vw - 3rem));
    --frontend-v2-container-gutter: clamp(1rem, 3vw, 1.5rem);
    --frontend-v2-card-radius: 0.75rem;
    --frontend-v2-card-radius-lg: 1rem;
    --frontend-v2-card-radius-xl: 1.25rem;
    --frontend-v2-heading-track: -0.028em;
    --frontend-v2-display-track: -0.035em;
    --frontend-v2-body-size: 1.0625rem;
    --frontend-v2-body-line: 1.72;
    --frontend-v2-lead-size: 1.125rem;
    --frontend-v2-shadow-xs: 0 1px 2px rgba(11, 42, 74, 0.04);
    --frontend-v2-shadow-sm: 0 2px 16px rgba(11, 42, 74, 0.06);
    --frontend-v2-shadow-md: 0 16px 48px rgba(15, 23, 42, 0.1);
    --frontend-v2-shadow-lg: 0 28px 72px rgba(15, 23, 42, 0.12);
    --frontend-v2-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --frontend-v2-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --frontend-v2-brand: var(--cm-v2-blue, #0B3D91);
    --frontend-v2-brand-deep: #082654;
    --frontend-v2-accent: var(--cm-v2-cyan, #00AEEF);
    --frontend-v2-accent-soft: rgba(0, 174, 239, 0.12);
    --frontend-v2-surface: #ffffff;
    --frontend-v2-surface-alt: #f4f7fb;
    --frontend-v2-surface-muted: #eef2f7;
    --frontend-v2-border: rgba(15, 23, 42, 0.08);
    --frontend-v2-border-strong: rgba(15, 23, 42, 0.12);
    --frontend-v2-text: var(--cm-charcoal, #0f172a);
    --frontend-v2-text-muted: #5b6577;
    --frontend-v2-grid-gap: clamp(1rem, 2vw, 1.75rem);
    --frontend-v2-row-gap: clamp(1.25rem, 2.5vw, 2rem);
}

@media (min-width: 768px) {
    :root {
        --frontend-v2-container-max: min(1320px, calc(100vw - 2.5rem));
    }
}

@media (min-width: 1440px) {
    :root {
        --frontend-v2-container-max: min(1360px, calc(100vw - 4rem));
        --frontend-v2-section-spacing: clamp(5rem, 6.5vw, 7.5rem);
    }
}

@media (min-width: 1920px) {
    :root {
        --frontend-v2-container-max: min(1400px, calc(100vw - 5rem));
    }
}

/* ── Base typography ──────────────────────────────────────────────── */

.cm-engineering-ui {
    font-size: var(--frontend-v2-body-size);
    line-height: var(--frontend-v2-body-line);
    color: var(--frontend-v2-text);
    background: var(--frontend-v2-surface-alt);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.cm-engineering-ui .cm-main {
    overflow-x: clip;
    background: var(--frontend-v2-surface);
}

.cm-engineering-ui h1,
.cm-engineering-ui h2,
.cm-engineering-ui h3,
.cm-engineering-ui .section-header__title {
    font-family: var(--font-heading, var(--cm-font-display, "Manrope", sans-serif));
    letter-spacing: var(--frontend-v2-heading-track);
    color: var(--frontend-v2-text);
}

/* Hero typography must stay light on media backgrounds */
.hero-image-slider .hero-image-slider__title,
.hero-image-slider .hero-image-slider__description,
.cms-hero:not(.hero-section--split) .hero-title,
.cms-hero:not(.hero-section--split) .hero-description,
.cms-hero:not(.hero-section--split) .hero-label,
.hero-section:not(.hero-section--split) .hero-title,
.hero-section:not(.hero-section--split) .hero-description,
.hero-section:not(.hero-section--split) .hero-label {
    color: #fff;
}

.cms-hero.hero-light .hero-title,
.cms-hero.hero-light .hero-description,
.hero-section.hero-light .hero-title,
.hero-section.hero-light .hero-description {
    color: var(--frontend-v2-text);
}

.cm-engineering-ui .lead,
.cm-engineering-ui .section-header__description,
.cm-engineering-ui .content-prose {
    font-size: var(--frontend-v2-lead-size);
    line-height: 1.65;
    color: var(--frontend-v2-text-muted);
}

/* ── Container & grid rhythm ──────────────────────────────────────── */

.cm-engineering-ui .container,
.cm-engineering-ui .container-lg,
.cm-engineering-ui .container-xl {
    max-width: var(--frontend-v2-container-max);
    padding-inline: var(--frontend-v2-container-gutter);
}

.cm-engineering-ui .row {
    --bs-gutter-x: var(--frontend-v2-grid-gap);
    --bs-gutter-y: var(--frontend-v2-row-gap);
}

.cm-engineering-ui .row.g-3 { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
.cm-engineering-ui .row.g-4 { --bs-gutter-x: var(--frontend-v2-grid-gap); --bs-gutter-y: var(--frontend-v2-grid-gap); }
.cm-engineering-ui .row.g-5 { --bs-gutter-x: var(--frontend-v2-row-gap); --bs-gutter-y: var(--frontend-v2-row-gap); }

/* ── Section rhythm & page composition ──────────────────────────────── */

.cm-engineering-ui .section-block,
.cm-engineering-ui .cm-page-section {
    --section-spacing: var(--frontend-v2-section-spacing);
    padding-block: var(--section-spacing);
    position: relative;
}

.cm-engineering-ui .section-block.section-block--compact,
.cm-engineering-ui .cm-section-spacing--compact {
    --section-spacing: var(--frontend-v2-section-spacing-sm);
}

.cm-engineering-ui .section-block > .container,
.cm-engineering-ui .cm-page-section > .container,
.cm-section-layout-container .container,
.cm-section-layout-narrow .container {
    max-width: var(--frontend-v2-container-max);
}

.cm-section-layout-narrow .container {
    max-width: min(760px, calc(100vw - 2rem));
}

/* Surface alternation — storytelling flow */
.cm-engineering-ui .cm-main > .section-block:nth-of-type(even):not(.cta-band):not(.hero-image-slider):not(.hero-section):not(.cms-hero):not(.hero-split-video),
.cm-engineering-ui .cm-main > .cm-page-section:nth-of-type(even):not(.cta-band):not([class*="hero"]) {
    background: var(--frontend-v2-surface-alt);
}

.cm-engineering-ui .section-block.alt-bg {
    background: linear-gradient(180deg, var(--frontend-v2-surface) 0%, var(--frontend-v2-surface-muted) 100%);
}

.cm-engineering-ui .section-block.alt-bg::before {
    opacity: 0.45;
}

/* First content section after hero — tighter top rhythm */
.cm-engineering-ui .cm-main > .hero-image-slider + .section-block,
.cm-engineering-ui .cm-main > .hero-section + .section-block,
.cm-engineering-ui .cm-main > .cms-hero + .section-block,
.cm-engineering-ui .cm-main > .hero-image-slider + .cm-page-section,
.cm-engineering-ui .cm-main > .hero-section + .cm-page-section {
    padding-top: var(--frontend-v2-section-spacing-sm);
}

.cm-engineering-ui .cm-main > .section-block:first-child,
.cm-engineering-ui .cm-main > .cm-page-section:first-child {
    padding-top: 0;
}

/* CMS section wrapper around heroes — remove double spacing, enable header overlap */
.cm-engineering-ui .cm-page-section:has(.hero-image-slider),
.cm-engineering-ui .cm-page-section:has(.cms-hero),
.cm-engineering-ui .cm-page-section:has(.hero-section),
.cm-engineering-ui .cm-page-section:has(.hero-split-video) {
    padding: 0 !important;
    margin-top: calc(-1 * var(--site-header-height, 126px));
}

.cm-engineering-ui .cm-page-section:has(.hero-image-slider) .hero-image-slider,
.cm-engineering-ui .cm-page-section:has(.cms-hero) .cms-hero,
.cm-engineering-ui .cm-page-section:has(.hero-section) .hero-section {
    margin-top: 0;
}

/* ── Section headers ────────────────────────────────────────────────── */

.cm-engineering-ui .section-header {
    margin-bottom: clamp(2rem, 4vw, 3.25rem);
    max-width: 52rem;
}

.cm-engineering-ui .section-header--center {
    margin-inline: auto;
    text-align: center;
}

.cm-engineering-ui .section-header--start {
    text-align: left;
}

.cm-engineering-ui .section-header__label {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.875rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--frontend-v2-accent);
}

.cm-engineering-ui .section-header__label::after {
    content: "";
    width: 2rem;
    height: 1px;
    background: linear-gradient(90deg, var(--frontend-v2-accent), transparent);
}

.cm-engineering-ui .section-header--center .section-header__label::after {
    display: none;
}

.cm-engineering-ui .section-header__title {
    font-size: clamp(1.625rem, 3.2vw, 2.375rem);
    font-weight: 700;
    line-height: 1.12;
    margin-bottom: 0.875rem;
    letter-spacing: var(--frontend-v2-heading-track);
}

.cm-engineering-ui .section-header__description {
    font-size: var(--frontend-v2-lead-size);
    line-height: 1.65;
    color: var(--frontend-v2-text-muted);
    max-width: 42rem;
    margin-bottom: 0;
}

.cm-engineering-ui .section-header--center .section-header__description {
    margin-inline: auto;
}

/* ── Intro / rich content panels ────────────────────────────────────── */

.cm-intro-panel {
    padding: clamp(1.75rem, 3.5vw, 2.75rem);
    border-radius: var(--frontend-v2-card-radius-xl);
    background: linear-gradient(145deg, #fff 0%, var(--frontend-v2-surface-alt) 100%);
    border: 1px solid var(--frontend-v2-border);
    box-shadow: var(--frontend-v2-shadow-sm);
}

.cm-intro-panel__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    background: var(--frontend-v2-accent-soft);
    color: var(--frontend-v2-brand);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-bottom: 1.125rem;
}

.cm-engineering-ui .content-prose {
    font-size: var(--frontend-v2-body-size);
    line-height: var(--frontend-v2-body-line);
    color: var(--frontend-v2-text-muted);
    max-width: 68ch;
}

.cm-engineering-ui .content-prose h2,
.cm-engineering-ui .content-prose h3 {
    color: var(--frontend-v2-text);
    margin-top: 1.75rem;
    margin-bottom: 0.75rem;
    letter-spacing: var(--frontend-v2-heading-track);
}

.cm-engineering-ui .section-block--entity-content .content-prose {
    max-width: 120ch;
    margin-inline: auto;
}

.cm-engineering-ui .section-block--entity-content .content-prose ul {
    padding-left: 1.25rem;
}

.cm-engineering-ui .section-block--entity-content .content-prose li + li {
    margin-top: 0.5rem;
}

/* ── Cards — de-generic Bootstrap ───────────────────────────────────── */

.cm-interactive-card,
.cm-engineering-ui .cm-card,
.cm-engineering-ui .card.cm-card,
.cm-engineering-ui .card:not(.card-flat) {
    border: 1px solid var(--frontend-v2-border);
    border-radius: var(--frontend-v2-card-radius-lg);
    box-shadow: var(--frontend-v2-shadow-xs), var(--frontend-v2-shadow-sm);
    background: var(--frontend-v2-surface);
    transition:
        transform 0.32s var(--frontend-v2-ease),
        box-shadow 0.32s var(--frontend-v2-ease),
        border-color 0.32s var(--frontend-v2-ease);
    overflow: hidden;
}

.cm-interactive-card:hover,
.cm-engineering-ui .cm-card:hover,
.cm-engineering-ui .card:not(.card-flat):hover {
    transform: translateY(-4px);
    box-shadow: var(--frontend-v2-shadow-md);
    border-color: rgba(0, 90, 156, 0.14);
}

.cm-engineering-ui .cm-card .card-body,
.cm-engineering-ui .card .card-body {
    padding: clamp(1.125rem, 2vw, 1.5rem);
}

.cm-engineering-ui .cm-card .card-title,
.cm-engineering-ui .card .card-title {
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: var(--frontend-v2-heading-track);
    margin-bottom: 0.5rem;
}

.cm-engineering-ui .cm-card .card-text,
.cm-engineering-ui .card .card-text {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--frontend-v2-text-muted);
}

.cm-engineering-ui .card-link,
.cm-engineering-ui .cm-card .card-link {
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    color: var(--frontend-v2-brand);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.cm-engineering-ui .card-link:hover,
.cm-engineering-ui .cm-card .card-link:hover {
    color: var(--frontend-v2-accent);
}

.cm-engineering-ui .card-img-top,
.cm-engineering-ui .cm-card__media,
.cm-engineering-ui .cm-media__img {
    object-fit: cover;
}

.cm-engineering-ui .cm-card:hover .card-img-top,
.cm-engineering-ui .cm-card:hover .cm-card__media img,
.cm-engineering-ui .cm-card:hover .cm-media__img {
    transform: scale(1.03);
}

.cm-page-section[data-entity-type="service"] .cm-card,
.cm-page-section[data-entity-type="project"] .cm-card,
.cm-engineering-ui .section-block .col .cm-card,
.cm-engineering-ui .section-block .col .card {
    height: 100%;
}

/* ── Buttons ────────────────────────────────────────────────────────── */

.cm-engineering-ui .btn {
    border-radius: 0.5rem;
    font-weight: 600;
    letter-spacing: 0.015em;
    min-height: 44px;
    padding-inline: 1.35rem;
    transition:
        transform 0.25s var(--frontend-v2-ease),
        box-shadow 0.25s var(--frontend-v2-ease),
        background-color 0.2s ease,
        border-color 0.2s ease;
}

.cm-engineering-ui .btn-primary,
.cm-engineering-ui .btn-cta {
    background: linear-gradient(135deg, var(--frontend-v2-brand) 0%, #0d4a9e 100%);
    border-color: transparent;
    box-shadow: 0 4px 16px rgba(11, 61, 145, 0.22);
}

.cm-engineering-ui .btn-primary:hover,
.cm-engineering-ui .btn-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(11, 61, 145, 0.28);
    background: linear-gradient(135deg, #0c4590 0%, var(--frontend-v2-brand) 100%);
}

.cm-engineering-ui .btn-outline-primary,
.cm-engineering-ui .btn-outline-steel {
    border-width: 1.5px;
    border-color: rgba(11, 61, 145, 0.35);
    color: var(--frontend-v2-brand);
    background: transparent;
}

.cm-engineering-ui .btn-outline-primary:hover,
.cm-engineering-ui .btn-outline-steel:hover {
    background: var(--frontend-v2-accent-soft);
    border-color: var(--frontend-v2-brand);
    color: var(--frontend-v2-brand-deep);
}

.cm-engineering-ui .hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.875rem;
    align-items: center;
    margin-top: clamp(1.5rem, 3vw, 2rem);
}

/* ── Entity statistics & workflow ───────────────────────────────────── */

.cm-entity-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: var(--frontend-v2-grid-gap);
}

.cm-entity-stat {
    text-align: center;
    padding: 1.625rem 1.125rem;
    border-radius: var(--frontend-v2-card-radius-lg);
    background: var(--frontend-v2-surface);
    border: 1px solid var(--frontend-v2-border);
    box-shadow: var(--frontend-v2-shadow-sm);
}

.cm-entity-stat__value {
    font-size: clamp(1.75rem, 3vw, 2.375rem);
    font-weight: 800;
    color: var(--frontend-v2-brand);
    line-height: 1.05;
    letter-spacing: var(--frontend-v2-display-track);
}

.cm-entity-stat__label {
    margin-top: 0.4rem;
    font-size: 0.875rem;
    color: var(--frontend-v2-text-muted);
}

.cm-workflow-steps,
.engineering-workflow {
    counter-reset: workflow;
}

.cm-workflow-step::before,
.engineering-workflow__step::before {
    counter-increment: workflow;
    content: counter(workflow);
    position: absolute;
    left: 0;
    top: 0;
    width: 2.125rem;
    height: 2.125rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--frontend-v2-brand), var(--frontend-v2-accent));
    box-shadow: 0 4px 14px rgba(0, 90, 156, 0.28);
}

/* ── Technology & certification visuals ─────────────────────────────── */

.technology-card-v2,
.software-expertise-grid__card,
.certification-badges__card,
.industry-showcase__card {
    border-radius: var(--frontend-v2-card-radius-lg);
    border: 1px solid var(--frontend-v2-border);
    background: var(--frontend-v2-surface);
    box-shadow: var(--frontend-v2-shadow-xs);
    transition:
        transform 0.28s var(--frontend-v2-ease),
        box-shadow 0.28s var(--frontend-v2-ease),
        border-color 0.28s var(--frontend-v2-ease);
}

.technology-card-v2:hover,
.software-expertise-grid__card:hover,
.certification-badges__card:hover,
.industry-showcase__card:hover {
    transform: translateY(-3px);
    box-shadow: var(--frontend-v2-shadow-md);
    border-color: rgba(0, 90, 156, 0.12);
}

.technology-card-v2 img,
.software-expertise-grid__logo,
.certification-badges__logo {
    max-height: 3.25rem;
    width: auto;
    object-fit: contain;
    filter: grayscale(0.2);
    transition: filter 0.25s ease;
}

.technology-card-v2:hover img,
.software-expertise-grid__card:hover .software-expertise-grid__logo,
.certification-badges__card:hover .certification-badges__logo {
    filter: none;
}

/* ── Software Stack v2 showcase ─────────────────────────────────────── */

.software-stack-v2__grid {
    margin-top: var(--frontend-v2-row-gap);
}

.software-stack-v2__card {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: clamp(1.35rem, 2.4vw, 1.85rem);
    border-radius: var(--frontend-v2-card-radius-lg);
    border: 1px solid var(--frontend-v2-border);
    background: linear-gradient(180deg, var(--frontend-v2-surface) 0%, var(--frontend-v2-surface-muted) 100%);
    box-shadow: var(--frontend-v2-shadow-xs);
    color: inherit;
    text-decoration: none;
    transition:
        transform 0.28s var(--frontend-v2-ease),
        box-shadow 0.28s var(--frontend-v2-ease),
        border-color 0.28s var(--frontend-v2-ease);
}

.software-stack-v2__card--link:hover,
.software-stack-v2__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--frontend-v2-shadow-md);
    border-color: rgba(0, 90, 156, 0.18);
    color: inherit;
    text-decoration: none;
}

.software-stack-v2__icon-area {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 5.5rem;
    padding: 1rem;
    border-radius: calc(var(--frontend-v2-card-radius-lg) - 4px);
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.software-stack-v2__logo-wrap,
.software-stack-v2__logo {
    max-height: 3.75rem;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.software-stack-v2__icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(0, 90, 156, 0.12) 0%, rgba(0, 174, 239, 0.16) 100%);
    color: var(--frontend-v2-brand);
    font-size: 1.75rem;
}

.software-stack-v2__content {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex: 1;
}

.software-stack-v2__name {
    margin: 0;
    font-family: var(--font-heading, var(--cm-font-display, "Manrope", sans-serif));
    font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--frontend-v2-text);
}

.software-stack-v2__description {
    margin: 0;
    font-family: var(--font-body, var(--cm-font-ui, "Inter", sans-serif));
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--frontend-v2-text-muted);
}

.software-stack-v2__link-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: auto;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--frontend-v2-brand);
}

.software-stack-v2__empty {
    border: 1px dashed var(--frontend-v2-border);
    border-radius: var(--frontend-v2-card-radius-lg);
    background: var(--frontend-v2-surface-muted);
}

@media (max-width: 767.98px) {
    .software-stack-v2__icon-area {
        min-height: 4.75rem;
    }
}

/* ── Gallery & media ────────────────────────────────────────────────── */

.gallery-masonry__item,
.video-gallery__item {
    border-radius: var(--frontend-v2-card-radius);
    overflow: hidden;
    box-shadow: var(--frontend-v2-shadow-sm);
    background: var(--frontend-v2-surface-muted);
}

.gallery-masonry__item img,
.video-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--frontend-v2-ease-out);
}

.gallery-masonry__item:hover img {
    transform: scale(1.04);
}

.cm-media {
    background: var(--frontend-v2-surface-muted);
    border-radius: var(--frontend-v2-card-radius);
    overflow: hidden;
}

.cm-media:not(.cm-media--loaded) .cm-media__img {
    opacity: 0;
}

.cm-media.cm-media--loaded .cm-media__img {
    opacity: 1;
    transition: opacity 0.4s ease;
}

img[loading="lazy"] {
    content-visibility: auto;
}

/* ── CTA bands ──────────────────────────────────────────────────────── */

.cm-engineering-ui .cta-band,
.cm-page-section.cta-band,
.section-block.cta-band {
    padding-block: clamp(3.75rem, 7vw, 6rem);
    background: linear-gradient(135deg, var(--frontend-v2-brand-deep) 0%, var(--frontend-v2-brand) 52%, #0e4a9e 100%);
    color: #fff;
    border-radius: 0;
    position: relative;
    overflow: hidden;
}

.cm-engineering-ui .cta-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 85% 15%, rgba(0, 174, 239, 0.22) 0%, transparent 45%),
        radial-gradient(circle at 10% 90%, rgba(255, 255, 255, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.cm-engineering-ui .cta-band .container {
    position: relative;
    z-index: 1;
}

.cm-engineering-ui .cta-band h2,
.cm-engineering-ui .cta-band p,
.cm-engineering-ui .cta-band .section-header__title,
.cm-engineering-ui .cta-band .section-header__description {
    color: #fff;
}

.cm-engineering-ui .cta-band .btn-outline-light,
.cm-engineering-ui .cta-band .btn-outline-steel {
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
}

.cm-engineering-ui .cta-band .btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* ── FAQ & accordion ────────────────────────────────────────────────── */

.cm-engineering-ui .cm-faq__item,
.cm-engineering-ui .accordion-item {
    border: 1px solid var(--frontend-v2-border);
    border-radius: var(--frontend-v2-card-radius) !important;
    margin-bottom: 0.75rem;
    overflow: hidden;
    box-shadow: var(--frontend-v2-shadow-xs);
}

.cm-engineering-ui .accordion-button {
    font-weight: 600;
    font-size: 1rem;
    padding: 1.125rem 1.25rem;
    letter-spacing: 0.01em;
}

.cm-engineering-ui .accordion-button:not(.collapsed) {
    color: var(--frontend-v2-brand);
    background: var(--frontend-v2-accent-soft);
    box-shadow: none;
}

/* ── Hero system ────────────────────────────────────────────────────── */

.hero-image-slider__frame {
    border-radius: 0;
}

.cm-main > .hero-image-slider:first-child,
.cm-main > .hero-section:first-child,
.cm-main > .cms-hero:first-child {
    margin-top: calc(-1 * var(--site-header-height, 126px));
}

.cm-main > .hero-image-slider:first-child .hero-image-slider__frame {
    min-height: clamp(420px, 72vh, 860px);
}

.hero-image-slider__overlay {
    background: linear-gradient(
        105deg,
        rgba(8, 38, 84, 0.92) 0%,
        rgba(11, 61, 145, 0.58) 44%,
        rgba(15, 23, 42, 0.28) 100%
    );
}

.hero-image-slider__content {
    padding-block: clamp(3rem, 8vh, 5rem);
}

.hero-image-slider__title {
    font-size: clamp(2rem, 4.8vw, 3.625rem);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: var(--frontend-v2-display-track);
    max-width: 14ch;
}

.hero-image-slider__description {
    font-size: clamp(1rem, 1.8vw, 1.1875rem);
    line-height: 1.68;
    margin-top: 1.125rem;
    max-width: 44ch;
    color: rgba(255, 255, 255, 0.9);
}

.cm-engineering-ui .hero-section--split {
    background: linear-gradient(135deg, var(--frontend-v2-brand-deep) 0%, var(--frontend-v2-brand) 55%, #0a2f6a 100%);
}

.cm-engineering-ui .hero-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--frontend-v2-accent);
    margin-bottom: 1rem;
}

/* ── Header polish ──────────────────────────────────────────────────── */

.site-header.site-header--premium {
    transition:
        background-color 0.35s var(--frontend-v2-ease),
        box-shadow 0.35s var(--frontend-v2-ease),
        backdrop-filter 0.35s var(--frontend-v2-ease),
        border-color 0.35s var(--frontend-v2-ease);
}

body.header-scrolled .site-header.site-header--premium,
.site-header.site-header--premium.is-scrolled {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    background-color: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 1px 0 var(--frontend-v2-border), var(--frontend-v2-shadow-sm);
}

.main-navigation .nav-link.active {
    color: var(--frontend-v2-brand);
    font-weight: 600;
}

.main-navigation .nav-link.active::after {
    width: 100%;
    background: var(--frontend-v2-accent);
}

.main-navigation .mega-menu {
    border-radius: var(--frontend-v2-card-radius-xl);
    padding: 1.375rem 1.625rem;
    box-shadow: var(--frontend-v2-shadow-lg);
}

.main-navigation .mega-menu__description {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--frontend-v2-text-muted);
}

/* ── Contact & forms on public pages ────────────────────────────────── */

.cm-engineering-ui .contact-form-section .contact-form-card {
    border-radius: var(--frontend-v2-card-radius-xl);
    border: 1px solid var(--frontend-v2-border);
    box-shadow: var(--frontend-v2-shadow-md);
    background: var(--frontend-v2-surface);
}

.cm-engineering-ui .contact-form .form-control,
.cm-engineering-ui .contact-form .form-select,
.cm-engineering-ui .contact-form textarea.form-control {
    min-height: 48px;
    border-radius: 0.5rem;
    border-color: var(--frontend-v2-border-strong);
    font-size: 1rem;
}

.cm-engineering-ui .contact-form textarea.form-control {
    min-height: 140px;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.cm-engineering-ui .contact-form .form-control:focus,
.cm-engineering-ui .contact-form .form-select:focus {
    border-color: var(--frontend-v2-brand);
    box-shadow: 0 0 0 3px var(--frontend-v2-accent-soft);
}

.cm-engineering-ui .contact-form .btn-primary {
    min-width: 10rem;
}

/* ── Footer rhythm ──────────────────────────────────────────────────── */

.cm-engineering-ui .site-footer--minimal-corporate {
    margin-top: 0;
    border-top: 1px solid var(--frontend-v2-border);
}

.cm-engineering-ui .site-footer--minimal-corporate .site-footer__heading {
    letter-spacing: 0.1em;
}

/* ── Testimonials & knowledge grids ─────────────────────────────────── */

.cm-engineering-ui .testimonial-card,
.cm-engineering-ui blockquote.testimonial {
    border-radius: var(--frontend-v2-card-radius-lg);
    border: 1px solid var(--frontend-v2-border);
    background: var(--frontend-v2-surface);
    box-shadow: var(--frontend-v2-shadow-sm);
    padding: clamp(1.5rem, 3vw, 2rem);
}

.cm-engineering-ui .global-presence-map,
.cm-engineering-ui .project-location-map {
    border-radius: var(--frontend-v2-card-radius-xl);
    overflow: hidden;
    border: 1px solid var(--frontend-v2-border);
    box-shadow: var(--frontend-v2-shadow-sm);
}

/* ── Responsive behaviour ───────────────────────────────────────────── */

@media (max-width: 991.98px) {
    :root {
        --frontend-v2-section-spacing: var(--frontend-v2-section-spacing-sm);
    }

    .cm-engineering-ui .section-header__title {
        font-size: 1.5rem;
    }

    .cm-intro-panel {
        padding: 1.375rem;
    }

    .cm-entity-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-image-slider__title {
        max-width: none;
    }

    .cm-engineering-ui .section-block .row > [class*="col-"] {
        margin-bottom: 0;
    }
}

@media (max-width: 767.98px) {
    .cm-engineering-ui .hero-actions .btn {
        flex: 1 1 calc(50% - 0.5rem);
        min-width: 0;
    }

    .hero-image-slider__content .container {
        padding-inline: 1.25rem;
    }
}

@media (max-width: 575.98px) {
    :root {
        --frontend-v2-container-gutter: 1rem;
    }

    .cm-entity-stat-grid {
        grid-template-columns: 1fr;
    }

    .cm-engineering-ui .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cm-engineering-ui .hero-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .cm-engineering-ui .section-header__label::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cm-interactive-card,
    .cm-engineering-ui .cm-card,
    .cm-engineering-ui .card,
    .cm-engineering-ui .btn,
    .gallery-masonry__item img,
    .site-header.site-header--premium,
    .technology-card-v2,
    .software-expertise-grid__card,
    .software-stack-v2__card {
        transition: none !important;
    }

    .cm-interactive-card:hover,
    .cm-engineering-ui .cm-card:hover,
    .cm-engineering-ui .card:hover,
    .software-stack-v2__card:hover,
    .software-stack-v2__card--link:hover {
        transform: none;
    }
}
