:root {
    --aa-black: #0c0b09;
    --aa-ink: #17140f;
    --aa-white: #fffdf8;
    --aa-paper: #f7f2e8;
    --aa-paper-strong: #eee4d2;
    --aa-gold: #c9a227;
    --aa-gold-deep: #9f7d16;
    --aa-gold-soft: rgba(201, 162, 39, .16);
    --aa-line: rgba(23, 20, 15, .14);
    --aa-shadow: 0 24px 80px rgba(12, 11, 9, .12);
    --bs-body-font-family: Raleway, "Helvetica Neue", sans-serif;
    --bs-body-bg: var(--aa-white);
    --bs-body-color: var(--aa-ink);
    --bs-primary: var(--aa-gold);
    --bs-primary-rgb: 201, 162, 39;
    --bs-link-color: var(--aa-gold-deep);
    --bs-link-hover-color: var(--aa-gold);
    --bs-border-radius: 1.25rem;
    --bs-border-radius-sm: .95rem;
    --bs-border-radius-lg: 1.75rem;
    --bs-border-radius-xl: 2.25rem;
    --bs-border-color: var(--aa-line);
}

[data-bs-theme="dark"] {
    --aa-black: #050504;
    --aa-ink: #f7f2e8;
    --aa-white: #0c0b09;
    --aa-paper: #15130f;
    --aa-paper-strong: #211d16;
    --aa-gold: #d7b84a;
    --aa-gold-deep: #e5cc70;
    --aa-gold-soft: rgba(215, 184, 74, .14);
    --aa-line: rgba(247, 242, 232, .15);
    --aa-shadow: 0 24px 80px rgba(0, 0, 0, .38);
    --bs-body-bg: var(--aa-white);
    --bs-body-color: var(--aa-ink);
    --bs-link-color: var(--aa-gold);
    --bs-link-hover-color: #f0d987;
    --bs-border-color: var(--aa-line);
}

html {
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    background:
        radial-gradient(circle at 12% 8%, var(--aa-gold-soft), transparent 34rem),
        linear-gradient(180deg, var(--aa-white) 0%, var(--aa-paper) 100%);
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand {
    letter-spacing: -.045em;
}

.site-header {
    border-bottom: 1px solid var(--aa-line);
    background: color-mix(in srgb, var(--aa-white) 88%, transparent);
    backdrop-filter: blur(18px);
}

.navbar-toggler {
    border-radius: 999px;
    border-color: var(--aa-line);
    padding: .7rem .85rem;
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: .85rem;
    color: var(--aa-ink);
    text-decoration: none;
}

.brand-mark:hover {
    color: var(--aa-ink);
}

.brand-mark__sign {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid var(--aa-gold);
    border-radius: 1.05rem;
    background: linear-gradient(145deg, var(--aa-gold), var(--aa-gold-deep));
    color: #0c0b09;
    font-weight: 700;
    letter-spacing: -.08em;
    box-shadow: 0 16px 36px rgba(201, 162, 39, .22);
}

.brand-mark__text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.brand-mark__text span {
    font-size: 1.25rem;
    font-weight: 700;
}

.brand-mark__text small {
    color: color-mix(in srgb, var(--aa-ink) 62%, transparent);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nav-link {
    border-radius: 999px;
    color: color-mix(in srgb, var(--aa-ink) 72%, transparent);
    font-weight: 700;
    padding: .65rem 1rem !important;
}

.nav-link:hover,
.nav-link.active {
    background: var(--aa-gold-soft);
    color: var(--aa-ink);
}

.header-actions .btn {
    white-space: nowrap;
}

.btn {
    --bs-btn-border-radius: 999px;
    --bs-btn-padding-x: 1.25rem;
    --bs-btn-padding-y: .72rem;
    font-weight: 700;
}

.btn-lg {
    --bs-btn-padding-x: 1.55rem;
    --bs-btn-padding-y: .95rem;
}

.btn-aa-gold {
    --bs-btn-bg: var(--aa-gold);
    --bs-btn-border-color: var(--aa-gold);
    --bs-btn-color: #0c0b09;
    --bs-btn-hover-bg: var(--aa-gold-deep);
    --bs-btn-hover-border-color: var(--aa-gold-deep);
    --bs-btn-hover-color: #0c0b09;
    --bs-btn-active-bg: var(--aa-gold-deep);
    --bs-btn-active-border-color: var(--aa-gold-deep);
    box-shadow: 0 18px 42px rgba(201, 162, 39, .22);
}

.btn-aa-outline,
.btn-aa-ghost {
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--aa-line);
    --bs-btn-color: var(--aa-ink);
    --bs-btn-hover-bg: var(--aa-ink);
    --bs-btn-hover-border-color: var(--aa-ink);
    --bs-btn-hover-color: var(--aa-white);
}

.dropdown-menu {
    --bs-dropdown-border-radius: 1rem;
    --bs-dropdown-link-active-bg: var(--aa-gold);
    --bs-dropdown-link-active-color: #0c0b09;
    border-color: var(--aa-line);
    box-shadow: var(--aa-shadow);
}

.section-pad {
    padding: clamp(4rem, 7vw, 7.5rem) 0;
}

.hero-section {
    position: relative;
    overflow: hidden;
    color: #fffdf8;
    background:
        linear-gradient(135deg, rgba(201, 162, 39, .28), transparent 42%),
        linear-gradient(120deg, #0c0b09 0%, #17140f 58%, #2a2110 100%);
}

.hero-section::after {
    position: absolute;
    inset: auto -12rem -18rem auto;
    width: 34rem;
    height: 34rem;
    content: "";
    border: 1px solid rgba(201, 162, 39, .28);
    border-radius: 45%;
    transform: rotate(18deg);
}

.hero-section .container-xxl {
    position: relative;
    z-index: 1;
}

.eyebrow {
    margin-bottom: 1rem;
    color: var(--aa-gold);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.hero-title {
    max-width: 13ch;
}

.hero-lead {
    max-width: 42rem;
    color: rgba(255, 253, 248, .75);
}

.hero-card,
.service-card,
.project-card,
.principle-card,
.footer-panel,
.cta-panel {
    border: 1px solid var(--aa-line);
    border-radius: var(--bs-border-radius-xl);
    box-shadow: var(--aa-shadow);
}

.hero-card {
    position: relative;
    overflow: hidden;
    min-height: 27rem;
    padding: clamp(2rem, 4vw, 3rem);
    background: rgba(255, 253, 248, .08);
    backdrop-filter: blur(20px);
}

.hero-card__line {
    display: block;
    width: 5rem;
    height: .25rem;
    margin-bottom: 2rem;
    border-radius: 999px;
    background: var(--aa-gold);
}

.hero-card__label {
    color: var(--aa-gold);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.hero-card h2 {
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.hero-card p:last-child {
    color: rgba(255, 253, 248, .72);
}

.stats-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stat-card {
    padding: 1.4rem;
    border: 1px solid rgba(255, 253, 248, .13);
    border-radius: var(--bs-border-radius-lg);
    background: rgba(255, 253, 248, .07);
}

.stat-card strong {
    display: block;
    color: var(--aa-gold);
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: .95;
}

.stat-card span {
    display: block;
    margin-top: .75rem;
    color: rgba(255, 253, 248, .74);
}

.section-text {
    color: color-mix(in srgb, var(--aa-ink) 68%, transparent);
    font-size: 1.08rem;
}

.service-card,
.project-card,
.principle-card {
    position: relative;
    overflow: hidden;
    padding: 2rem;
    background: color-mix(in srgb, var(--aa-white) 84%, var(--aa-paper));
}

.service-card::before,
.project-card::before,
.principle-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: .35rem;
    content: "";
    background: linear-gradient(180deg, var(--aa-gold), transparent);
}

.service-card__number,
.project-card__type {
    color: var(--aa-gold-deep);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.service-card h3,
.project-card h3,
.principle-card h3 {
    margin: 1rem 0;
    font-size: 1.45rem;
    font-weight: 700;
}

.service-card p,
.project-card p,
.principle-card p {
    color: color-mix(in srgb, var(--aa-ink) 70%, transparent);
}

.muted-section {
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--aa-paper) 88%, transparent), transparent),
        var(--aa-paper);
    border-block: 1px solid var(--aa-line);
}

.advantage-list {
    display: grid;
    gap: 1rem;
}

.advantage-item {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 1.2rem 1.35rem;
    border: 1px solid var(--aa-line);
    border-radius: var(--bs-border-radius-lg);
    background: color-mix(in srgb, var(--aa-white) 72%, transparent);
}

.advantage-item span {
    flex: 0 0 auto;
    width: .85rem;
    height: .85rem;
    border-radius: 50%;
    background: var(--aa-gold);
    box-shadow: 0 0 0 .45rem var(--aa-gold-soft);
}

.advantage-item p {
    margin: 0;
    font-weight: 700;
}

.project-card {
    min-height: 18rem;
}

.link-aa,
.cta-mail,
.footer-nav a,
.footer-contacts a {
    color: var(--aa-gold-deep);
    font-weight: 700;
    text-decoration: none;
}

.link-aa:hover,
.cta-mail:hover,
.footer-nav a:hover,
.footer-contacts a:hover {
    color: var(--aa-gold);
}

.cta-section {
    padding-top: 0;
}

.cta-panel {
    padding: clamp(2rem, 5vw, 4rem);
    background:
        linear-gradient(135deg, var(--aa-gold-soft), transparent 48%),
        color-mix(in srgb, var(--aa-white) 84%, var(--aa-paper));
}

.page-hero {
    background:
        radial-gradient(circle at 90% 20%, var(--aa-gold-soft), transparent 30rem),
        var(--aa-paper);
    border-bottom: 1px solid var(--aa-line);
}

.competency-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
}

.competency-pill {
    padding: 1rem 1.2rem;
    border: 1px solid var(--aa-line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--aa-white) 82%, transparent);
    font-weight: 700;
}

.process-list {
    counter-reset: process;
}

.process-list li {
    display: grid;
    gap: 1rem;
    grid-template-columns: 4rem 1fr;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--aa-line);
}

.process-list li:first-child {
    padding-top: 0;
}

.process-list span {
    color: var(--aa-gold-deep);
    font-size: 1.15rem;
    font-weight: 700;
}

.process-list p {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 700;
}

.site-footer {
    padding: 4rem 0;
    background: var(--aa-black);
    color: #fffdf8;
}

.site-footer .brand-mark,
.site-footer .brand-mark:hover {
    color: #fffdf8;
}

.footer-panel {
    padding: clamp(2rem, 4vw, 3rem);
    background: rgba(255, 253, 248, .06);
    border-color: rgba(255, 253, 248, .12);
}

.footer-title {
    margin-bottom: 1rem;
    color: var(--aa-gold);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.footer-lead,
.footer-contacts li {
    color: rgba(255, 253, 248, .7);
}

.footer-nav li + li,
.footer-contacts li + li {
    margin-top: .65rem;
}

@media (max-width: 991.98px) {
    .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-title,
    .page-hero h1 {
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .brand-mark__text small {
        display: none;
    }

    .stats-grid {
        grid-template-columns: 1fr;
    }

    .hero-card {
        min-height: auto;
    }

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