/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #080909;
    color: #fff;
    font-family: "Manrope", sans-serif;
    overflow-x: hidden;
}

body.menu-open {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    font: inherit;
}

::selection {
    background: #ffffff;
    color: #080909;
}


/* =========================================================
   HEADER
========================================================= */

.site-header {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;

    z-index: 1000;

    padding: 22px 32px;

    transition:
        padding 0.5s ease,
        background 0.5s ease,
        backdrop-filter 0.5s ease;
}

.site-header.scrolled {
    padding-top: 12px;
    padding-bottom: 12px;

    background: rgba(7, 8, 8, 0.68);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}


.header-inner {
    width: 100%;
    max-width: 1540px;

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;
}


/* =========================================================
   LOGO
========================================================= */

.logo {
    display: flex;
    align-items: center;

    gap: 11px;

    position: relative;
    z-index: 1100;
}

.logo-mark {
    width: 32px;
    height: 32px;

    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.45);

    border-radius: 50%;

    overflow: hidden;
}

.logo-mark::before {
    content: "";

    position: absolute;

    width: 45px;
    height: 45px;

    background: radial-gradient(
        circle,
        rgba(255, 200, 100, 0.75),
        transparent 65%
    );

    filter: blur(6px);

    animation: logoGlow 3s ease-in-out infinite;
}

.logo-mark span {
    position: relative;

    display: block;

    width: 2px;
    height: 13px;

    margin: 0 1.5px;

    background: #fff;

    border-radius: 5px;

    box-shadow:
        0 0 5px rgba(255, 220, 160, 0.9),
        0 0 12px rgba(255, 170, 80, 0.45);
}

.logo-mark span:nth-child(1) {
    transform: rotate(-24deg);
    height: 9px;
}

.logo-mark span:nth-child(2) {
    height: 16px;
}

.logo-mark span:nth-child(3) {
    transform: rotate(24deg);
    height: 9px;
}

.logo-text {
    display: flex;
    flex-direction: column;

    line-height: 1;
}

.logo-text strong {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.logo-text small {
    margin-top: 4px;

    font-size: 7px;
    font-weight: 500;

    letter-spacing: 0.34em;

    color: rgba(255, 255, 255, 0.48);
}


/* =========================================================
   NAV
========================================================= */

.main-nav {
    display: flex;
    align-items: center;

    gap: 3px;

    padding: 5px;

    border: 1px solid rgba(255, 255, 255, 0.10);

    background: rgba(8, 9, 9, 0.28);

    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);

    border-radius: 100px;
}

.nav-link {
    position: relative;

    padding: 11px 17px;

    color: rgba(255, 255, 255, 0.66);

    font-size: 11px;
    font-weight: 600;

    letter-spacing: 0.03em;

    border-radius: 100px;

    transition:
        color 0.3s ease,
        background 0.3s ease;
}

.nav-link::after {
    content: "";

    position: absolute;

    left: 50%;
    bottom: 6px;

    width: 3px;
    height: 3px;

    transform: translateX(-50%) scale(0);

    background: #ffd58a;

    border-radius: 50%;

    box-shadow:
        0 0 7px #ffd58a,
        0 0 15px rgba(255, 180, 80, 0.8);

    transition: transform 0.3s ease;
}

.nav-link:hover {
    color: #fff;

    background: rgba(255, 255, 255, 0.07);
}

.nav-link:hover::after {
    transform: translateX(-50%) scale(1);
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.header-actions {
    display: flex;
    align-items: center;

    gap: 18px;
}

.header-phone {
    display: flex;
    align-items: center;

    gap: 8px;

    font-size: 11px;
    font-weight: 600;

    color: rgba(255, 255, 255, 0.78);

    transition: color 0.3s ease;
}

.header-phone:hover {
    color: #fff;
}

.phone-dot {
    width: 5px;
    height: 5px;

    background: #f7c978;

    border-radius: 50%;

    box-shadow:
        0 0 7px #f7c978,
        0 0 14px rgba(247, 201, 120, 0.55);

    animation: phonePulse 2s infinite;
}


.header-button {
    display: flex;
    align-items: center;

    gap: 13px;

    padding: 12px 14px 12px 18px;

    color: #111;

    background: #f6f3ed;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 0.03em;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background 0.3s ease;
}

.header-button:hover {
    transform: translateY(-2px);

    background: #fff;

    box-shadow:
        0 8px 30px rgba(255, 220, 160, 0.18);
}

.button-arrow {
    width: 27px;
    height: 27px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background: #111;

    border-radius: 50%;

    font-size: 14px;
}


/* =========================================================
   MOBILE MENU BUTTON
========================================================= */

.menu-toggle {
    display: none;

    position: relative;
    z-index: 1100;

    width: 46px;
    height: 46px;

    border: 1px solid rgba(255, 255, 255, 0.18);

    background: rgba(0, 0, 0, 0.22);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    border-radius: 50%;

    cursor: pointer;
}

.menu-toggle span {
    position: absolute;

    left: 50%;

    width: 17px;
    height: 1px;

    background: #fff;

    transition:
        transform 0.4s ease,
        top 0.4s ease;
}

.menu-toggle span:first-child {
    top: 19px;
    transform: translateX(-50%);
}

.menu-toggle span:last-child {
    top: 26px;
    transform: translateX(-50%);
}

.menu-toggle.active span:first-child {
    top: 22px;
    transform: translateX(-50%) rotate(45deg);
}

.menu-toggle.active span:last-child {
    top: 22px;
    transform: translateX(-50%) rotate(-45deg);
}


/* =========================================================
   MOBILE MENU
========================================================= */

.mobile-menu {
    position: fixed;

    inset: 0;

    z-index: 900;

    visibility: hidden;

    opacity: 0;

    transition:
        opacity 0.45s ease,
        visibility 0.45s ease;
}

.mobile-menu.active {
    visibility: visible;
    opacity: 1;
}

.mobile-menu-bg {
    position: absolute;

    inset: 0;

    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(255, 183, 93, 0.13),
            transparent 30%
        ),
        #080909;
}

.mobile-menu-inner {
    position: relative;

    height: 100%;

    padding:
        120px
        28px
        28px;

    display: flex;
    flex-direction: column;
}

.mobile-menu-top {
    display: flex;
    justify-content: space-between;

    color: rgba(255, 255, 255, 0.4);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.2em;
}

.mobile-nav {
    margin-top: 55px;

    display: flex;
    flex-direction: column;
}

.mobile-nav-link {
    display: grid;

    grid-template-columns: 35px 1fr 30px;

    align-items: center;

    padding: 22px 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.10);

    transform: translateY(20px);

    opacity: 0;

    transition:
        opacity 0.5s ease,
        transform 0.5s ease;
}

.mobile-menu.active .mobile-nav-link {
    opacity: 1;
    transform: translateY(0);
}

.mobile-menu.active .mobile-nav-link:nth-child(1) {
    transition-delay: 0.08s;
}

.mobile-menu.active .mobile-nav-link:nth-child(2) {
    transition-delay: 0.13s;
}

.mobile-menu.active .mobile-nav-link:nth-child(3) {
    transition-delay: 0.18s;
}

.mobile-menu.active .mobile-nav-link:nth-child(4) {
    transition-delay: 0.23s;
}

.mobile-nav-number {
    color: rgba(255, 255, 255, 0.3);

    font-size: 9px;
}

.mobile-nav-title {
    font-size: clamp(27px, 8vw, 38px);

    font-weight: 500;

    letter-spacing: -0.04em;
}

.mobile-nav-arrow {
    color: #f3c779;

    font-size: 22px;

    text-align: right;
}

.mobile-menu-bottom {
    margin-top: auto;

    display: flex;
    flex-direction: column;

    gap: 25px;

    font-size: 12px;
}

.mobile-contact-label {
    display: block;

    margin-bottom: 5px;

    color: rgba(255, 255, 255, 0.4);

    font-size: 9px;
    letter-spacing: 0.12em;
}

.mobile-menu-cta {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 17px 20px;

    color: #111;

    background: #f5f1e9;

    border-radius: 100px;

    font-size: 11px;
    font-weight: 800;
}

.mobile-menu-cta span {
    font-size: 18px;
}


/* =========================================================
   HERO
========================================================= */

.hero {
    position: relative;

    min-height: 100svh;

    height: max(760px, 100svh);

    overflow: hidden;

    background: #080909;
}

.hero-background {
    position: absolute;

    inset: 0;

    overflow: hidden;
}

.hero-image {
    position: absolute;

    inset: -2%;

   background-image: url("../img/work/hero_1.jpg");
    background-size: cover;
    background-position: center;

    transform:
        scale(1.03);

    transition:
        transform 1.2s cubic-bezier(.2,.7,.2,1);
}

.hero:hover .hero-image {
    transform:
        scale(1.045);
}


/* DARK OVERLAY */

.hero-dark-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(4, 5, 5, 0.88) 0%,
            rgba(4, 5, 5, 0.70) 27%,
            rgba(4, 5, 5, 0.28) 57%,
            rgba(4, 5, 5, 0.05) 100%
        );
}


/* BOTTOM GRADIENT */

.hero-vignette {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            0deg,
            rgba(4, 5, 5, 0.94) 0%,
            rgba(4, 5, 5, 0.25) 27%,
            transparent 55%
        );

    pointer-events: none;
}


/* =========================================================
   AMBIENT LIGHT
========================================================= */

.ambient-glow {
    position: absolute;

    width: 500px;
    height: 500px;

    border-radius: 50%;

    filter: blur(90px);

    pointer-events: none;

    opacity: 0.15;
}

.ambient-glow-1 {
    right: 5%;
    top: 20%;

    background: #ffb84d;

    animation:
        ambientMove1 8s ease-in-out infinite alternate;
}

.ambient-glow-2 {
    left: 25%;
    bottom: -20%;

    background: #ffe0a5;

    opacity: 0.07;

    animation:
        ambientMove2 11s ease-in-out infinite alternate;
}


/* =========================================================
   LIGHT TRACE
========================================================= */

.light-trace {
    position: absolute;

    z-index: 4;

    pointer-events: none;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 214, 146, 0.9),
        #fff,
        rgba(255, 177, 67, 0.8),
        transparent
    );

    box-shadow:
        0 0 6px rgba(255, 220, 160, 0.9),
        0 0 18px rgba(255, 177, 67, 0.7),
        0 0 45px rgba(255, 130, 40, 0.35);

    opacity: 0.7;
}

.light-trace-top {
    top: 0;
    left: -30%;

    width: 30%;
    height: 1px;

    animation:
        lightSweepHorizontal 7s linear infinite;
}

.light-trace-right {
    right: 0;
    top: -20%;

    width: 1px;
    height: 20%;

    background: linear-gradient(
        180deg,
        transparent,
        rgba(255, 214, 146, 0.9),
        #fff,
        transparent
    );

    animation:
        lightSweepVertical 7s linear infinite;
    animation-delay: 2.4s;
}

.light-trace-bottom {
    bottom: 0;
    right: -30%;

    width: 30%;
    height: 1px;

    animation:
        lightSweepHorizontalReverse 7s linear infinite;
    animation-delay: 3.7s;
}


/* =========================================================
   HERO CONTAINER
========================================================= */

.hero-container {
    position: relative;

    z-index: 10;

    width: min(1540px, calc(100% - 64px));

    height: 100%;

    margin: 0 auto;

    display: flex;
    flex-direction: column;

    justify-content: center;
}


/* =========================================================
   HERO CONTENT
========================================================= */

.hero-content {
    width: min(760px, 60%);

    padding-top: 70px;
}


.hero-eyebrow {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 28px;

    color: rgba(255, 255, 255, 0.56);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.19em;
}

.eyebrow-line {
    width: 35px;
    height: 1px;

    background: #f5c875;

    box-shadow:
        0 0 8px rgba(245, 200, 117, 0.75);
}


.hero-title {
    font-size: clamp(62px, 7vw, 110px);

    font-weight: 500;

    line-height: 0.92;

    letter-spacing: -0.065em;
}

.hero-title-line {
    display: block;
}

.hero-title-accent {
    color: #f7f4ee;
}

.title-dot {
    color: #f5c56f;

    text-shadow:
        0 0 12px rgba(245, 197, 111, 0.75),
        0 0 35px rgba(245, 150, 50, 0.45);
}


.hero-description {
    max-width: 440px;

    margin-top: 32px;

    color: rgba(255, 255, 255, 0.64);

    font-size: 14px;

    line-height: 1.75;
}


/* =========================================================
   HERO BUTTONS
========================================================= */

.hero-actions {
    display: flex;
    align-items: center;

    gap: 24px;

    margin-top: 38px;
}

.hero-primary-button {
    position: relative;

    display: flex;
    align-items: center;

    gap: 18px;

    padding: 5px 6px 5px 22px;

    overflow: hidden;

    color: #111;

    background: #f5f1e9;

    border-radius: 100px;

    font-size: 11px;
    font-weight: 800;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.hero-primary-button:hover {
    transform: translateY(-3px);

    box-shadow:
        0 12px 45px rgba(255, 200, 110, 0.20);
}

.button-shine {
    position: absolute;

    top: 0;
    left: -100%;

    width: 60%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,0.7),
        transparent
    );

    transform: skewX(-20deg);

    animation:
        buttonShine 4.5s ease-in-out infinite;
}

.hero-button-arrow {
    position: relative;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #fff;

    background: #111;

    border-radius: 50%;

    font-size: 17px;
}


.hero-secondary-button {
    display: flex;
    align-items: center;

    gap: 10px;

    color: rgba(255, 255, 255, 0.70);

    font-size: 10px;
    font-weight: 700;

    transition: color 0.3s ease;
}

.hero-secondary-button:hover {
    color: #fff;
}

.play-icon {
    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.35);

    border-radius: 50%;
}

.play-icon span {
    width: 0;
    height: 0;

    margin-left: 2px;

    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 6px solid #fff;
}


/* =========================================================
   SIDE INFO
========================================================= */

.hero-side-info {
    position: absolute;

    right: 0;
    top: 50%;

    transform: translateY(-50%);

    display: flex;
    flex-direction: column;

    gap: 13px;

    color: rgba(255, 255, 255, 0.4);

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.18em;

    writing-mode: vertical-rl;
}

.hero-side-line {
    width: 1px;
    height: 65px;

    margin: 0 auto 4px;

    background: linear-gradient(
        to bottom,
        transparent,
        rgba(255,255,255,0.7),
        transparent
    );
}


/* =========================================================
   HERO BOTTOM
========================================================= */

.hero-bottom {
    position: absolute;

    bottom: 28px;
    left: 0;
    right: 0;

    display: grid;

    grid-template-columns: 1fr 1fr 1fr;

    align-items: end;
}

.hero-location {
    display: flex;
    align-items: center;

    gap: 9px;

    color: rgba(255, 255, 255, 0.46);

    font-size: 9px;
    font-weight: 600;
}

.location-pulse {
    width: 5px;
    height: 5px;

    background: #f5c56f;

    border-radius: 50%;

    box-shadow:
        0 0 8px #f5c56f,
        0 0 17px rgba(245, 197, 111, 0.6);
}

.scroll-indicator {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 10px;
}

.scroll-text {
    color: rgba(255, 255, 255, 0.32);

    font-size: 7px;
    font-weight: 700;

    letter-spacing: 0.2em;
}

.scroll-line {
    position: relative;

    width: 60px;
    height: 1px;

    overflow: hidden;

    background: rgba(255,255,255,0.17);
}

.scroll-line span {
    position: absolute;

    top: 0;
    left: -30px;

    width: 30px;
    height: 1px;

    background: #f5c56f;

    box-shadow: 0 0 8px #f5c56f;

    animation:
        scrollLine 2.2s ease-in-out infinite;
}

.hero-index {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 10px;

    color: rgba(255, 255, 255, 0.32);

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.hero-index span:first-child {
    color: #fff;
}

.hero-index-line {
    width: 35px;
    height: 1px;

    background: rgba(255,255,255,0.25);
}


/* =========================================================
   CURSOR GLOW
========================================================= */

.cursor-glow {
    position: fixed;

    z-index: 5;

    width: 350px;
    height: 350px;

    pointer-events: none;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background: radial-gradient(
        circle,
        rgba(255, 196, 105, 0.07) 0%,
        rgba(255, 196, 105, 0.025) 35%,
        transparent 70%
    );

    filter: blur(4px);

    opacity: 0;

    transition: opacity 0.5s ease;
}


/* =========================================================
   DEMO SECTIONS
========================================================= */

.demo-section {
    min-height: 80vh;

    padding: 130px 8vw;

    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #f3f0e9;

    color: #111;
}

.demo-section.demo-dark {
    background: #090a0a;
    color: #fff;
}

.demo-section span {
    margin-bottom: 25px;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 0.2em;

    opacity: 0.45;
}

.demo-section h2 {
    max-width: 900px;

    font-size: clamp(45px, 7vw, 100px);

    line-height: 0.95;

    letter-spacing: -0.06em;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes logoGlow {
    0%,
    100% {
        opacity: 0.45;
        transform: scale(0.85);
    }

    50% {
        opacity: 1;
        transform: scale(1.1);
    }
}

@keyframes phonePulse {
    0%,
    100% {
        opacity: 0.45;
        transform: scale(0.8);
    }

    50% {
        opacity: 1;
        transform: scale(1.15);
    }
}

@keyframes ambientMove1 {
    from {
        transform: translate3d(-20px, -10px, 0) scale(0.9);
    }

    to {
        transform: translate3d(30px, 25px, 0) scale(1.15);
    }
}

@keyframes ambientMove2 {
    from {
        transform: translate3d(-40px, 20px, 0) scale(1);
    }

    to {
        transform: translate3d(40px, -20px, 0) scale(1.25);
    }
}

@keyframes lightSweepHorizontal {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(440vw);
    }
}

@keyframes lightSweepHorizontalReverse {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-440vw);
    }
}

@keyframes lightSweepVertical {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(620vh);
    }
}

@keyframes buttonShine {
    0%,
    55% {
        left: -100%;
    }

    75%,
    100% {
        left: 160%;
    }
}

@keyframes scrollLine {
    0% {
        left: -30px;
    }

    60%,
    100% {
        left: 60px;
    }
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 1150px) {

    .site-header {
        padding-left: 22px;
        padding-right: 22px;
    }

    .header-phone {
        display: none;
    }

    .main-nav {
        margin-left: auto;
    }

    .hero-container {
        width: calc(100% - 44px);
    }

    .hero-content {
        width: 65%;
    }

    .hero-side-info {
        right: 10px;
    }
}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 800px) {

    .site-header {
        padding:
            16px
            18px;
    }

    .site-header.scrolled {
        padding:
            10px
            18px;
    }

    .main-nav,
    .header-actions {
        display: none;
    }

    .menu-toggle {
        display: block;
    }

    .hero {
        min-height: 100svh;
        height: 100svh;

        max-height: 900px;
    }

    .hero-image {
        background-position:
            62% center;
    }

    .hero-dark-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(4, 5, 5, 0.72) 0%,
                rgba(4, 5, 5, 0.30) 36%,
                rgba(4, 5, 5, 0.78) 73%,
                rgba(4, 5, 5, 0.96) 100%
            );
    }

    .hero-container {
        width: calc(100% - 36px);
    }

    .hero-content {
        width: 100%;

        padding-top: 70px;
    }

    .hero-eyebrow {
        max-width: 280px;

        font-size: 7px;

        line-height: 1.6;

        margin-bottom: 20px;
    }

    .hero-title {
        font-size: clamp(48px, 13vw, 72px);

        line-height: 0.94;
    }

    .hero-description {
        max-width: 330px;

        margin-top: 25px;

        font-size: 12px;

        line-height: 1.7;
    }

    .hero-actions {
        flex-direction: column;
        align-items: flex-start;

        gap: 18px;

        margin-top: 30px;
    }

    .hero-primary-button {
        font-size: 10px;
    }

    .hero-secondary-button {
        font-size: 9px;
    }

    .hero-side-info {
        display: none;
    }

    .hero-bottom {
        bottom: 20px;

        grid-template-columns: 1fr auto;
    }

    .scroll-indicator {
        display: none;
    }

    .hero-location {
        font-size: 8px;
    }

    .hero-index {
        font-size: 7px;
    }

    .cursor-glow {
        display: none;
    }

    .light-trace-right {
    display: block;
    }

    .light-trace-top {
        opacity: 0.45;
    }

    .light-trace-bottom {
        opacity: 0.35;
    }

    .demo-section {
        min-height: 70vh;

        padding:
            100px
            24px;
    }

    .demo-section h2 {
        font-size: clamp(42px, 13vw, 70px);
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .logo-text strong {
        font-size: 11px;
    }

    .logo-mark {
        width: 29px;
        height: 29px;
    }

    .hero-title {
        font-size: 47px;
    }

    .hero-description {
        max-width: 290px;
    }

    .hero-primary-button {
        padding-left: 17px;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;

        scroll-behavior: auto !important;

        transition-duration: 0.01ms !important;
    }
}










/* ============================================================
   CALLBACK MODAL
   ============================================================ */

.callback-modal {
    position: fixed;
    inset: 0;

    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    visibility: hidden;
    opacity: 0;

    transition:
        opacity .35s ease,
        visibility .35s ease;
}

.callback-modal.active {
    visibility: visible;
    opacity: 1;
}


/* ============================================================
   OVERLAY
   ============================================================ */

.callback-modal-overlay {
    position: absolute;
    inset: 0;

    background:
        rgba(4, 6, 5, .82);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}


/* ============================================================
   WINDOW
   ============================================================ */

.callback-modal-window {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 560px;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #181b19 0%,
            #0c0f0e 100%
        );

    border:
        1px solid rgba(255, 255, 255, .10);

    box-shadow:
        0 40px 120px rgba(0, 0, 0, .65),
        0 0 80px rgba(255, 255, 255, .025);

    transform:
        translateY(25px)
        scale(.96);

    transition:
        transform .5s cubic-bezier(.22, 1, .36, 1);
}

.callback-modal.active
.callback-modal-window {

    transform:
        translateY(0)
        scale(1);
}


/* ============================================================
   DECORATIVE LIGHT
   ============================================================ */

.callback-modal-window::before {

    content: "";

    position: absolute;

    width: 260px;
    height: 260px;

    top: -150px;
    right: -100px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, .10) 0%,
            rgba(255, 255, 255, 0) 70%
        );

    pointer-events: none;
}

.callback-modal-window::after {

    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, .25),
            transparent
        );

    opacity: .7;
}


/* ============================================================
   CONTENT
   ============================================================ */

.callback-modal-content {

    position: relative;

    padding:
        54px 52px 48px;
}


/* ============================================================
   CLOSE
   ============================================================ */

.callback-modal-close {

    position: absolute;

    top: 18px;
    right: 18px;

    z-index: 5;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border:
        1px solid rgba(255, 255, 255, .10);

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .035);

    color:
        rgba(255, 255, 255, .65);

    font-family: inherit;
    font-size: 27px;
    font-weight: 300;

    line-height: 1;

    cursor: pointer;

    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        transform .25s ease;
}

.callback-modal-close:hover {

    background:
        rgba(255, 255, 255, .10);

    border-color:
        rgba(255, 255, 255, .22);

    color: #fff;

    transform:
        rotate(90deg);
}


/* ============================================================
   TEXT
   ============================================================ */

.callback-modal-kicker {

    display: flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 18px;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .18em;

    color:
        rgba(255, 255, 255, .42);
}

.callback-modal-kicker::before {

    content: "";

    width: 24px;
    height: 1px;

    background:
        rgba(255, 255, 255, .45);
}


.callback-modal-title {

    position: relative;

    margin: 0 0 15px;

    font-size:
        clamp(32px, 5vw, 48px);

    line-height: 1.02;

    font-weight: 700;

    letter-spacing: -.045em;

    color: #fff;
}


.callback-modal-text {

    max-width: 430px;

    margin: 0 0 32px;

    font-size: 14px;

    line-height: 1.7;

    color:
        rgba(255, 255, 255, .52);
}


/* ============================================================
   FIELDS
   ============================================================ */

.callback-field {

    position: relative;

    margin-bottom: 12px;
}


.callback-field::before {

    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 0;
    height: 1px;

    background: #fff;

    transition:
        width .35s ease;

    z-index: 2;
}


.callback-field:focus-within::before {

    width: 100%;
}


.callback-field input {

    width: 100%;
    height: 60px;

    padding:
        0 18px;

    border:
        1px solid rgba(255, 255, 255, .10);

    border-radius: 0;

    outline: none;

    background:
        rgba(255, 255, 255, .045);

    color: #fff;

    font-family: inherit;
    font-size: 16px;

    transition:
        border-color .25s ease,
        background .25s ease;
}


.callback-field input::placeholder {

    color:
        rgba(255, 255, 255, .30);
}


.callback-field input:focus {

    border-color:
        rgba(255, 255, 255, .20);

    background:
        rgba(255, 255, 255, .065);
}


/* ============================================================
   CONSENT
   ============================================================ */

.callback-consent {

    display: flex;
    align-items: flex-start;

    gap: 10px;

    margin:
        18px 0 22px;

    cursor: pointer;

    color:
        rgba(255, 255, 255, .40);

    font-size: 10px;

    line-height: 1.55;
}


.callback-consent input {

    flex:
        0 0 auto;

    width: 16px;
    height: 16px;

    margin:
        1px 0 0;

    accent-color: #fff;

    cursor: pointer;
}


/* ============================================================
   ERROR
   ============================================================ */

.callback-error {

    display: none;

    margin:
        -5px 0 15px;

    font-size: 12px;

    line-height: 1.4;

    color:
        #ff8d8d;
}

.callback-error.visible {
    display: block;
}


/* ============================================================
   SUBMIT
   ============================================================ */

.callback-submit {

    position: relative;

    width: 100%;
    min-height: 62px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    overflow: hidden;

    padding:
        0 21px;

    border: 0;

    background: #fff;

    color: #090a09;

    font-family: inherit;
    font-size: 13px;
    font-weight: 800;

    letter-spacing: -.01em;

    cursor: pointer;

    transition:
        transform .25s ease,
        background .25s ease;
}


.callback-submit::before {

    content: "";

    position: absolute;

    top: 0;
    left: -100%;

    width: 60%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, .75),
            transparent
        );

    transform:
        skewX(-20deg);

    transition:
        left .7s ease;
}


.callback-submit:hover::before {
    left: 140%;
}


.callback-submit:hover {

    transform:
        translateY(-2px);

    background:
        #eeeeee;
}


.callback-submit:disabled {

    opacity: .55;

    cursor: wait;

    transform: none;
}


/* ============================================================
   SUCCESS
   ============================================================ */

.callback-success {

    display: none;

    padding:
        18px 0 8px;

    text-align: center;
}

.callback-success.active {
    display: block;
}


.callback-success-icon {

    width: 62px;
    height: 62px;

    margin:
        0 auto 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255, 255, 255, .16);

    border-radius: 50%;

    color: #fff;

    font-size: 21px;

    box-shadow:
        0 0 40px rgba(255, 255, 255, .05);
}


.callback-success h3 {

    margin:
        0 0 10px;

    color: #fff;

    font-size: 27px;

    line-height: 1.15;
}


.callback-success p {

    margin: 0;

    color:
        rgba(255, 255, 255, .50);

    font-size: 13px;

    line-height: 1.6;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 600px) {

    .callback-modal {

        padding: 12px;
    }


    .callback-modal-window {

        max-height:
            calc(100vh - 24px);

        overflow-y: auto;
    }


    .callback-modal-content {

        padding:
            48px 23px 28px;
    }


    .callback-modal-title {

        font-size: 34px;
    }


    .callback-modal-text {

        margin-bottom: 25px;

        font-size: 13px;
    }


    .callback-modal-close {

        top: 12px;
        right: 12px;

        width: 38px;
        height: 38px;

        font-size: 24px;
    }


    .callback-field input {

        height: 56px;
    }


    .callback-submit {

        min-height: 58px;
    }

}


/* =========================================================
   MOBILE — STATIC HERO IMAGE
========================================================= */

@media (max-width: 768px) {

    .hero-image {
        inset: 0;

        transform: none !important;

        transition: none !important;

        animation: none !important;

        background-size: cover;

        background-position: 62% center;
    }

    .hero:hover .hero-image {
        transform: none !important;
    }

}


/* =========================================================
   MOBILE — arrow header
========================================================= */
/* =========================================================
   MOBILE — HERO BUTTON ARROW
========================================================= */

@media (max-width: 800px) {

    .hero-button-arrow {
        font-size: 0;
    }

    .hero-button-arrow::after {
        content: "";

        position: absolute;

        width: 17px;
        height: 17px;

        top: 10px;
        left: 10px;

        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }

}


/* =========================================================
   MOBILE MENU — ARROWS
========================================================= */

@media (max-width: 800px) {

    .mobile-nav-arrow {
        font-size: 0;
    }

    .mobile-nav-arrow::after {
        content: "";

        display: inline-block;

        width: 17px;
        height: 17px;

        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }


    .mobile-menu-cta span {
        font-size: 0;
    }

   .mobile-menu-cta span::after {
    content: "";

    display: inline-block;

    width: 17px;
    height: 17px;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23111' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    
    }
}



/* =========================================================
   MOBILE — LIGHT TRACE
========================================================= */

@media (max-width: 800px) {

    /* Верх: уходит далеко вправо */
    .light-trace-top {
        left: -30%;

        width: 30%;
        height: 1px;

        animation:
            lightSweepHorizontalMobile 7s linear infinite;
    }


    /* Правая сторона: сверху вниз */
    .light-trace-right {
        right: 0;
        top: -20%;

        width: 1px;
        height: 20%;

        animation:
            lightSweepVerticalMobile 7s linear infinite;

        animation-delay: 2.4s;
    }


    /* Низ: уходит далеко влево */
    .light-trace-bottom {
        bottom: 0;
        right: -30%;

        width: 30%;
        height: 1px;

        animation:
            lightSweepHorizontalReverseMobile 7s linear infinite;

        animation-delay: 3.7s;
    }

}


/* =========================================================
   MOBILE — LIGHT TRACE ANIMATIONS
========================================================= */

@keyframes lightSweepHorizontalMobile {

    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(400vw);
    }

}


@keyframes lightSweepVerticalMobile {

    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(450vh);
    }

}


@keyframes lightSweepHorizontalReverseMobile {

    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-500vw);
    }

}














/* =========================================================
   PROJECTS
========================================================= */

.projects-section {
    position: relative;

    overflow: hidden;

    padding: 150px 0 55px;

    background:
        radial-gradient(
            circle at 82% 18%,
            rgba(255, 188, 90, 0.055),
            transparent 28%
        ),
        #080909;

    color: #fff;
}


.projects-section::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.12),
            transparent
        );
}


.projects-container {
    width: min(1400px, calc(100% - 64px));

    margin: 0 auto;
}



/* =========================================================
   PROJECTS HEADER
========================================================= */

.projects-header {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 60px;

    margin-bottom: 60px;
}


.projects-kicker {
    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 24px;

    color: rgba(255,255,255,.42);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .20em;
}


.projects-kicker-line {
    width: 35px;
    height: 1px;

    background: #f5c875;

    box-shadow:
        0 0 8px rgba(245,200,117,.75);
}


.projects-title {
    max-width: 850px;

    margin: 0;

    font-size:
        clamp(52px, 6.5vw, 94px);

    line-height: .92;

    font-weight: 500;

    letter-spacing: -.065em;
}


.projects-title span {
    color: rgba(255,255,255,.48);
}


.projects-intro {
    max-width: 310px;

    padding-bottom: 7px;

    color: rgba(255,255,255,.42);

    font-size: 12px;

    line-height: 1.75;
}



/* =========================================================
   FILTERS
========================================================= */

.projects-filters {
    display: flex;

    align-items: center;

    gap: 6px;

    margin-bottom: 25px;

    padding: 5px;

    width: fit-content;

    border:
        1px solid rgba(255,255,255,.09);

    background:
        rgba(255,255,255,.025);

    border-radius: 100px;
}


.project-filter {
    position: relative;

    padding: 10px 17px;

    border: 0;

    border-radius: 100px;

    background: transparent;

    color: rgba(255,255,255,.42);

    font-family: inherit;

    font-size: 10px;
    font-weight: 700;

    cursor: pointer;

    transition:
        color .3s ease,
        background .3s ease,
        transform .3s ease;
}


.project-filter:hover {
    color: rgba(255,255,255,.85);
}


.project-filter.active {
    color: #111;

    background: #f5f1e9;

    box-shadow:
        0 4px 20px rgba(255,210,140,.08);
}



/* =========================================================
   PROJECT VIEWER
========================================================= */

.projects-viewer {
    display: grid;

    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(340px, .72fr);

    min-height: 620px;

    border:
        1px solid rgba(255,255,255,.09);

    background:
        #0d0f0e;
}



/* =========================================================
   MAIN IMAGE
========================================================= */

.projects-main {
    position: relative;

    min-width: 0;

    overflow: hidden;

    background: #111;
}


.project-image-button {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    padding: 0;

    border: 0;

    overflow: hidden;

    background: #111;

    cursor: zoom-in;
}


.project-image-button img {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transform: scale(1.001);

    transition:
        transform 1s cubic-bezier(.22,1,.36,1),
        opacity .35s ease;
}


.project-image-button:hover img {
    transform: scale(1.035);
}


.project-image-overlay {
    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            rgba(0,0,0,.18),
            transparent 35%,
            rgba(0,0,0,.35)
        );
}


.project-image-number {
    position: absolute;

    top: 25px;
    left: 27px;

    display: flex;

    align-items: center;

    gap: 7px;

    color: rgba(255,255,255,.72);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .13em;
}


.project-image-number span:first-child {
    color: #fff;
}


.project-image-open {
    position: absolute;

    right: 25px;
    bottom: 25px;

    display: flex;

    align-items: center;

    gap: 10px;

    color: rgba(255,255,255,.65);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .08em;

    opacity: 0;

    transform: translateY(8px);

    transition:
        opacity .35s ease,
        transform .35s ease;
}


.project-image-button:hover .project-image-open {
    opacity: 1;

    transform: translateY(0);
}


.project-open-icon {
    width: 30px;
    height: 30px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,.35);

    border-radius: 50%;

    color: #fff;

    font-size: 13px;
}



/* =========================================================
   PROJECT ARROWS
========================================================= */

.project-arrow {
    position: absolute;

    top: 50%;

    z-index: 5;

    width: 52px;
    height: 52px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,.22);

    border-radius: 50%;

    background:
        rgba(8,9,9,.28);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    color: #fff;

    font-size: 17px;

    cursor: pointer;

    transform: translateY(-50%);

    transition:
        background .3s ease,
        border-color .3s ease,
        transform .3s ease;
}


.project-arrow:hover {
    background:
        rgba(255,255,255,.13);

    border-color:
        rgba(255,255,255,.45);

    transform:
        translateY(-50%) scale(1.05);
}


.project-arrow-prev {
    left: 24px;
}


.project-arrow-next {
    right: 24px;
}



/* =========================================================
   PROJECT INFO
========================================================= */

.project-info {
    display: flex;

    flex-direction: column;

    padding: 40px 36px 30px;

    border-left:
        1px solid rgba(255,255,255,.07);
}


.project-info-top {
    display: flex;

    justify-content: space-between;

    gap: 20px;
}


.project-number {
    margin-bottom: 13px;

    color: rgba(255,255,255,.30);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .20em;
}


.project-number span {
    color: #f5c875;
}


.project-name {
    margin: 0;

    font-size:
        clamp(30px, 3vw, 46px);

    line-height: .98;

    font-weight: 500;

    letter-spacing: -.055em;
}


.project-year {
    color: rgba(255,255,255,.30);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .15em;
}


.project-description {
    max-width: 390px;

    margin-top: 30px;

    color: rgba(255,255,255,.47);

    font-size: 12px;

    line-height: 1.75;
}



/* =========================================================
   PROJECT STATS
========================================================= */

.project-stats {
    display: flex;

    flex-direction: column;

    gap: 0;

    margin-top: 32px;
}


.project-stat {
    display: flex;

    align-items: center;

    gap: 11px;

    padding: 13px 0;

    border-top:
        1px solid rgba(255,255,255,.07);

    color: rgba(255,255,255,.62);

    font-size: 10px;

    line-height: 1.4;
}


.project-stat::before {
    content: "";

    width: 4px;
    height: 4px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: #f5c875;

    box-shadow:
        0 0 8px rgba(245,200,117,.65);
}



/* =========================================================
   THUMBNAILS
========================================================= */

.project-thumbnails {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 6px;

    margin-top: auto;

    padding-top: 30px;
}


.project-thumbnail {
    position: relative;

    aspect-ratio: 1.25 / 1;

    overflow: hidden;

    padding: 0;

    border: 0;

    background: #111;

    cursor: pointer;
}


.project-thumbnail::after {
    content: "";

    position: absolute;

    inset: 0;

    border:
        1px solid transparent;

    transition:
        border-color .3s ease,
        background .3s ease;
}


.project-thumbnail img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    opacity: .45;

    transform: scale(1);

    transition:
        opacity .3s ease,
        transform .5s ease;
}


.project-thumbnail:hover img {
    opacity: .8;

    transform: scale(1.05);
}


.project-thumbnail.active img {
    opacity: 1;
}


.project-thumbnail.active::after {
    border-color: #f5c875;

    box-shadow:
        inset 0 0 0 1px rgba(245,200,117,.15);
}



/* =========================================================
   PROJECTS BOTTOM
========================================================= */

.projects-bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    padding-top: 18px;
}


.projects-bottom-label {
    display: flex;

    align-items: center;

    gap: 9px;

    color: rgba(255,255,255,.28);

    font-size: 8px;
    font-weight: 700;

    letter-spacing: .14em;
}


.projects-bottom-dot {
    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: #f5c875;

    box-shadow:
        0 0 8px #f5c875;
}


.projects-bottom-count {
    color: rgba(255,255,255,.24);

    font-size: 8px;
    font-weight: 700;

    letter-spacing: .12em;
}


.projects-bottom-count span {
    color: rgba(255,255,255,.65);
}



/* =========================================================
   LIGHTBOX
========================================================= */

.project-lightbox {
    position: fixed;

    inset: 0;

    z-index: 10000;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 30px;

    visibility: hidden;

    opacity: 0;

    transition:
        opacity .4s ease,
        visibility .4s ease;
}


.project-lightbox.active {
    visibility: visible;

    opacity: 1;
}


.project-lightbox-backdrop {
    position: absolute;

    inset: 0;

    background:
        rgba(3,4,4,.93);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}


.project-lightbox-window {
    position: relative;

    z-index: 2;

    width: min(1500px, 94vw);
    height: min(900px, 90vh);

    display: flex;

    align-items: center;
    justify-content: center;
}


.lightbox-image-wrap {
    width: 100%;
    height: 100%;

    display: flex;

    align-items: center;
    justify-content: center;

    overflow: hidden;
}


.lightbox-image-wrap img {
    max-width: 100%;
    max-height: 100%;

    width: auto;
    height: auto;

    object-fit: contain;

    display: block;

    box-shadow:
        0 30px 100px rgba(0,0,0,.55);

    user-select: none;

    -webkit-user-drag: none;
}


.project-lightbox-close {
    position: absolute;

    top: -4px;
    right: -4px;

    z-index: 10;

    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,.20);

    border-radius: 50%;

    background:
        rgba(8,9,9,.55);

    color: rgba(255,255,255,.8);

    font-size: 28px;
    font-weight: 300;

    cursor: pointer;

    transition:
        transform .3s ease,
        background .3s ease,
        color .3s ease;
}


.project-lightbox-close:hover {
    transform: rotate(90deg);

    background:
        rgba(255,255,255,.12);

    color: #fff;
}


.lightbox-counter {
    position: absolute;

    top: 5px;
    left: 50%;

    z-index: 10;

    display: flex;

    gap: 7px;

    color: rgba(255,255,255,.42);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .12em;

    transform: translateX(-50%);
}


.lightbox-counter span:first-child {
    color: #fff;
}


.lightbox-arrow {
    position: absolute;

    top: 50%;

    z-index: 10;

    width: 58px;
    height: 58px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(255,255,255,.20);

    border-radius: 50%;

    background:
        rgba(8,9,9,.35);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    color: #fff;

    font-size: 18px;

    cursor: pointer;

    transform: translateY(-50%);

    transition:
        background .3s ease,
        transform .3s ease,
        border-color .3s ease;
}


.lightbox-arrow:hover {
    background:
        rgba(255,255,255,.12);

    border-color:
        rgba(255,255,255,.42);

    transform:
        translateY(-50%) scale(1.06);
}


.lightbox-prev {
    left: 5px;
}


.lightbox-next {
    right: 5px;
}


.lightbox-caption {
    position: absolute;

    left: 50%;
    bottom: -5px;

    z-index: 10;

    display: flex;

    align-items: center;

    gap: 12px;

    transform: translateX(-50%);

    white-space: nowrap;

    color: rgba(255,255,255,.65);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .10em;
}


.lightbox-caption span:last-child {
    color: rgba(255,255,255,.30);
}



/* =========================================================
   PROJECTS — TABLET
========================================================= */

@media (max-width: 1000px) {

    .projects-header {
        align-items: flex-start;

        flex-direction: column;

        gap: 25px;
    }


    .projects-viewer {
        grid-template-columns:
            1fr;
    }


    .projects-main {
        min-height: 60vw;
        height: 65vh;
        max-height: 650px;
    }


    .project-info {
        border-left: 0;

        border-top:
            1px solid rgba(255,255,255,.07);

        min-height: 390px;
    }


    .project-description {
        max-width: 600px;
    }


    .project-thumbnails {
        margin-top: 20px;
    }

}



/* =========================================================
   PROJECTS — MOBILE
========================================================= */

@media (max-width: 700px) {

    .projects-section {
        padding:
            100px 0 35px;
    }


    .projects-container {
        width:
            calc(100% - 36px);
    }


    .projects-header {
        margin-bottom: 38px;
    }


    .projects-kicker {
        margin-bottom: 20px;

        font-size: 8px;
    }


    .projects-title {
        font-size:
            clamp(43px, 13vw, 67px);
    }


    .projects-intro {
        max-width: 290px;

        font-size: 11px;
    }


    .projects-filters {
        width: 100%;

        overflow-x: auto;

        scrollbar-width: none;

        border-radius: 14px;

        padding: 4px;

        margin-bottom: 12px;
    }


    .projects-filters::-webkit-scrollbar {
        display: none;
    }


    .project-filter {
        flex: 0 0 auto;

        padding:
            10px 14px;

        font-size: 9px;
    }


    .projects-viewer {
        display: block;

        min-height: 0;
    }


    .projects-main {
        height: 62vw;

        min-height: 320px;
        max-height: 500px;
    }


    .project-arrow {
        width: 42px;
        height: 42px;

        font-size: 14px;
    }


    .project-arrow-prev {
        left: 12px;
    }


    .project-arrow-next {
        right: 12px;
    }


    .project-image-number {
        top: 16px;
        left: 17px;

        font-size: 8px;
    }


    .project-image-open {
        display: none;
    }


    .project-info {
        padding:
            27px 20px 20px;

        min-height: 0;
    }


    .project-name {
        font-size: 34px;
    }


    .project-year {
        font-size: 8px;
    }


    .project-description {
        margin-top: 22px;

        font-size: 11px;
    }


    .project-stats {
        margin-top: 20px;
    }


    .project-stat {
        padding: 11px 0;

        font-size: 9px;
    }


    .project-thumbnails {
        margin-top: 5px;

        padding-top: 20px;

        gap: 5px;
    }


    .project-thumbnail {
        aspect-ratio: 1.3 / 1;
    }


    .projects-bottom {
        padding-top: 13px;
    }


    .projects-bottom-label,
    .projects-bottom-count {
        font-size: 7px;
    }


    /* LIGHTBOX */

    .project-lightbox {
        padding: 12px;
    }


    .project-lightbox-window {
        width: 100%;
        height: 90vh;
    }


    .project-lightbox-close {
        top: -2px;
        right: -2px;

        width: 42px;
        height: 42px;

        font-size: 24px;
    }


    .lightbox-arrow {
        width: 43px;
        height: 43px;

        font-size: 14px;
    }


    .lightbox-prev {
        left: 0;
    }


    .lightbox-next {
        right: 0;
    }


    .lightbox-counter {
        top: 5px;

        font-size: 8px;
    }


    .lightbox-caption {
        bottom: 3px;

        font-size: 7px;
    }

        .lightbox-thumbnails {
        left: 50%;

        bottom: 45px;

        max-width: calc(100vw - 70px);

        padding: 5px;

        gap: 5px;

        border-radius: 8px;
    }


    .lightbox-thumbnail {
        flex-basis: 64px;

        width: 64px;
        height: 45px;
    }

}



/* =========================================================
   PROJECTS — VERY SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .projects-container {
        width:
            calc(100% - 28px);
    }


    .projects-title {
        font-size: 42px;
    }


    .projects-main {
        height: 72vw;

        min-height: 290px;
    }


    .project-name {
        font-size: 30px;
    }

}












/* =========================================================
   LIGHTBOX — THUMBNAILS
========================================================= */

.lightbox-thumbnails {
    position: absolute;

    left: 50%;
    bottom: 42px;

    z-index: 10;

    display: flex;

    align-items: center;

    gap: 7px;

    max-width: min(620px, 70vw);

    padding: 6px;

    overflow-x: auto;

    transform: translateX(-50%);

    scrollbar-width: none;

    background:
        rgba(8,9,9,.38);

    border:
        1px solid rgba(255,255,255,.08);

    border-radius: 10px;

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}


.lightbox-thumbnails::-webkit-scrollbar {
    display: none;
}


.lightbox-thumbnail {
    position: relative;

    flex: 0 0 78px;

    width: 78px;
    height: 54px;

    padding: 0;

    overflow: hidden;

    border:
        1px solid rgba(255,255,255,.08);

    border-radius: 5px;

    background: #111;

    cursor: pointer;

    opacity: .42;

    transition:
        opacity .3s ease,
        border-color .3s ease,
        transform .3s ease;
}


.lightbox-thumbnail:hover {
    opacity: .8;

    transform: translateY(-2px);
}


.lightbox-thumbnail.active {
    opacity: 1;

    border-color: #f5c875;

    box-shadow:
        0 0 14px rgba(245,200,117,.12);
}


.lightbox-thumbnail img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}














/* =========================================================
   ADVANTAGES
========================================================= */

.advantages-section {

    position: relative;

    overflow: hidden;

    padding: 150px 0 120px;

    background:
        radial-gradient(
            circle at 18% 35%,
            rgba(245, 200, 117, 0.045),
            transparent 28%
        ),
        #080909;

    color: #fff;
}


/* TOP LINE */

.advantages-section::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.12),
            transparent
        );
}


.advantages-container {

    width:
        min(1400px, calc(100% - 64px));

    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.advantages-header {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 80px;

    margin-bottom: 70px;
}


.advantages-kicker {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 24px;

    color:
        rgba(255,255,255,.42);

    font-size: 9px;

    font-weight: 800;

    letter-spacing: .20em;
}


.advantages-kicker-line {

    width: 35px;

    height: 1px;

    background: #f5c875;

    box-shadow:
        0 0 8px
        rgba(245,200,117,.75);
}


.advantages-title {

    max-width: 850px;

    margin: 0;

    font-size:
        clamp(52px, 6.5vw, 94px);

    line-height: .92;

    font-weight: 500;

    letter-spacing: -.065em;
}


.advantages-title span {

    display: block;

    color:
        rgba(255,255,255,.38);
}


.advantages-intro {

    width: min(360px, 100%);

    padding-bottom: 5px;

    color:
        rgba(255,255,255,.48);

    font-size: 13px;

    line-height: 1.75;
}


/* =========================================================
   GRID
========================================================= */

.advantages-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 1px;

    background:
        rgba(255,255,255,.09);

    border:
        1px solid rgba(255,255,255,.09);
}


/* =========================================================
   CARD
========================================================= */

.advantage-card {

    position: relative;

    min-height: 330px;

    padding: 38px;

    overflow: hidden;

    background:
        rgba(10,11,11,.94);

    transition:
        background .45s ease,
        transform .45s ease;
}


.advantage-card-large {

    min-height: 390px;
}


.advantage-card::before {

    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 0;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            #f5c875,
            rgba(245,200,117,0)
        );

    box-shadow:
        0 0 12px
        rgba(245,200,117,.45);

    transition:
        width .55s cubic-bezier(.2,.7,.2,1);
}


.advantage-card:hover {

    background:
        radial-gradient(
            circle at 80% 15%,
            rgba(245,200,117,.07),
            transparent 35%
        ),
        #0b0c0c;
}


.advantage-card:hover::before {

    width: 100%;
}


/* =========================================================
   NUMBER
========================================================= */

.advantage-number {

    position: absolute;

    top: 25px;
    right: 30px;

    color:
        rgba(255,255,255,.045);

    font-size: 76px;

    line-height: 1;

    font-weight: 500;

    letter-spacing: -.07em;

    transition:
        color .4s ease,
        transform .5s ease;
}


.advantage-card:hover
.advantage-number {

    color:
        rgba(245,200,117,.08);

    transform:
        translateY(-4px);
}


/* =========================================================
   ICON
========================================================= */

.advantage-icon {

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 85px;

    border:
        1px solid rgba(255,255,255,.13);

    border-radius: 50%;

    color:
        #f5c875;

    font-size: 17px;

    font-weight: 400;

    transition:
        border-color .4s ease,
        box-shadow .4s ease,
        transform .4s ease;
}


.advantage-card:hover
.advantage-icon {

    border-color:
        rgba(245,200,117,.55);

    box-shadow:
        0 0 20px
        rgba(245,200,117,.10);

    transform:
        rotate(8deg);
}


/* =========================================================
   CONTENT
========================================================= */

.advantage-content {

    position: relative;

    z-index: 2;
}


.advantage-label {

    margin-bottom: 15px;

    color:
        rgba(255,255,255,.34);

    font-size: 8px;

    font-weight: 800;

    letter-spacing: .20em;
}


.advantage-content h3 {

    max-width: 470px;

    margin: 0;

    font-size:
        clamp(28px, 3vw, 42px);

    line-height: .98;

    font-weight: 500;

    letter-spacing: -.045em;
}


.advantage-content h3 span {

    display: block;

    color:
        rgba(255,255,255,.35);
}


.advantage-content p {

    max-width: 420px;

    margin-top: 22px;

    color:
        rgba(255,255,255,.45);

    font-size: 12px;

    line-height: 1.7;
}


/* =========================================================
   ENERGY
========================================================= */

.advantage-card-energy {

    display: flex;

    flex-direction: column;

    justify-content: space-between;
}


.advantage-energy {

    position: absolute;

    top: 28px;
    left: 38px;

    display: flex;

    align-items: flex-end;

    gap: 8px;

    color: #f5c875;
}


.advantage-energy strong {

    font-size: 72px;

    line-height: .8;

    font-weight: 500;

    letter-spacing: -.08em;

    text-shadow:
        0 0 30px
        rgba(245,200,117,.18);
}


.advantage-energy span {

    padding-bottom: 4px;

    color:
        rgba(255,255,255,.35);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .12em;
}


.advantage-card-energy
.advantage-content {

    margin-top: auto;
}


/* =========================================================
   CTA
========================================================= */

.advantages-cta {

    position: relative;

    display: grid;

    grid-template-columns:
        80px 1fr auto;

    align-items: center;

    gap: 45px;

    margin-top: 1px;

    padding: 42px 38px;

    background:
        linear-gradient(
            110deg,
            rgba(245,200,117,.10),
            rgba(245,200,117,.025) 45%,
            rgba(255,255,255,.025)
        );

    border:
        1px solid
        rgba(245,200,117,.16);
}


.advantages-cta-number {

    color:
        rgba(245,200,117,.65);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: .12em;
}


.advantages-cta-label {

    margin-bottom: 12px;

    color:
        rgba(255,255,255,.30);

    font-size: 8px;

    font-weight: 800;

    letter-spacing: .20em;
}


.advantages-cta-content h3 {

    margin: 0;

    font-size:
        clamp(25px, 3vw, 40px);

    line-height: 1;

    font-weight: 500;

    letter-spacing: -.045em;
}


.advantages-cta-content h3 span {

    color:
        rgba(255,255,255,.42);
}


.advantages-cta-content p {

    max-width: 600px;

    margin-top: 14px;

    color:
        rgba(255,255,255,.40);

    font-size: 11px;

    line-height: 1.65;
}


/* =========================================================
   CTA BUTTON
========================================================= */

.advantages-cta-button {

    position: relative;

    display: flex;

    align-items: center;

    gap: 20px;

    min-width: 205px;

    padding:
        6px 7px 6px 20px;

    color: #111;

    background: #f5f1e9;

    border-radius: 100px;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: .03em;

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}


.advantages-cta-button span:last-child {

    width: 34px;
    height: 34px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-left: auto;

    border-radius: 50%;

    background: #111;

    color: #fff;

    font-size: 15px;
}


.advantages-cta-button:hover {

    transform:
        translateY(-2px);

    box-shadow:
        0 10px 35px
        rgba(245,200,117,.12);
}


/* =========================================================
   ADVANTAGES — TABLET
========================================================= */

@media (max-width: 1000px) {

    .advantages-header {

        align-items: flex-start;

        flex-direction: column;

        gap: 25px;
    }


    .advantages-intro {

        width: min(520px, 100%);
    }


    .advantages-grid {

        grid-template-columns:
            1fr;
    }


    .advantage-card,
    .advantage-card-large {

        min-height: 330px;
    }


    .advantages-cta {

        grid-template-columns:
            55px 1fr;

        gap: 25px;
    }


    .advantages-cta-button {

        grid-column: 2;

        width: max-content;
    }

}


/* =========================================================
   ADVANTAGES — MOBILE
========================================================= */

@media (max-width: 700px) {

    .advantages-section {

        padding:
            100px 0 55px;
    }


    .advantages-container {

        width:
            calc(100% - 36px);
    }


    .advantages-header {

        margin-bottom: 42px;
    }


    .advantages-kicker {

        margin-bottom: 20px;

        font-size: 8px;
    }


    .advantages-title {

        font-size:
            clamp(43px, 13vw, 67px);
    }


    .advantages-intro {

        max-width: 300px;

        font-size: 11px;
    }


    .advantage-card,
    .advantage-card-large {

        min-height: 330px;

        padding: 28px 24px;
    }


    .advantage-number {

        top: 20px;
        right: 20px;

        font-size: 62px;
    }


    .advantage-icon {

        margin-bottom: 70px;
    }


    .advantage-content h3 {

        font-size: 31px;
    }


    .advantage-content p {

        max-width: 310px;

        margin-top: 18px;

        font-size: 10px;
    }


    .advantage-energy {

        top: 25px;
        left: 24px;
    }


    .advantage-energy strong {

        font-size: 62px;
    }


    .advantages-cta {

        display: block;

        padding: 30px 24px;
    }


    .advantages-cta-number {

        margin-bottom: 40px;
    }


    .advantages-cta-content h3 {

        font-size: 29px;
    }


    .advantages-cta-content p {

        font-size: 10px;
    }


    .advantages-cta-button {

        width: 100%;

        margin-top: 28px;

        justify-content: space-between;
    }

}


/* =========================================================
   ADVANTAGES — VERY SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .advantages-container {

        width:
            calc(100% - 28px);
    }


    .advantage-card,
    .advantage-card-large {

        min-height: 310px;
    }


    .advantage-content h3 {

        font-size: 29px;
    }

}














/* =========================================================
   SOLUTIONS
   ========================================================= */

.solutions-section {
    position: relative;
    padding: 150px 0 120px;
    background:
        radial-gradient(
            circle at 78% 42%,
            rgba(245, 200, 117, 0.055),
            transparent 30%
        ),
        #080909;
    overflow: hidden;
}


/* subtle architectural glow */

.solutions-section::before {
    content: "";
    position: absolute;
    top: 18%;
    right: -15%;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: rgba(245, 200, 117, 0.025);
    filter: blur(100px);
    pointer-events: none;
}


.solutions-container {
    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
   ========================================================= */

.solutions-header {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 70px;
    margin-bottom: 85px;
}


.solutions-kicker {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding-top: 15px;
}


.solutions-kicker span {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    color: rgba(255, 255, 255, 0.48);
    white-space: nowrap;
}


.solutions-kicker i {
    display: block;
    width: 34px;
    height: 1px;
    margin-top: 6px;
    background: rgba(245, 200, 117, 0.6);
}


.solutions-heading {
    max-width: 1050px;
}


.solutions-heading h2 {
    margin: 0;
    font-size: clamp(52px, 6.3vw, 92px);
    line-height: 0.96;
    letter-spacing: -0.055em;
    font-weight: 500;
}


.solutions-heading h2 span {
    color: rgba(255, 255, 255, 0.38);
}


.solutions-heading p {
    max-width: 560px;
    margin: 38px 0 0;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.52);
}


/* =========================================================
   SHOWCASE
   ========================================================= */

.solutions-showcase {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(430px, 0.85fr);
    gap: 0;
    min-height: 690px;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
}


/* =========================================================
   VISUAL
   ========================================================= */

.solutions-visual {
    position: relative;
    min-width: 0;
    padding: 28px 28px 28px 0;
}


.solutions-image-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 630px;
    overflow: hidden;
    background: #111;
}


.solutions-image {
    position: absolute;
    inset: -1%;
    width: 102%;
    height: 102%;
    object-fit: cover;
    display: block;

    transform: scale(1.025);

    transition:
        opacity 0.35s ease,
        transform 1.2s cubic-bezier(.16, 1, .3, 1);

    will-change: opacity, transform;
}


.solutions-image.is-changing {
    opacity: 0;
    transform: scale(1.055);
}


.solutions-image-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.04) 0%,
            rgba(0, 0, 0, 0.05) 45%,
            rgba(0, 0, 0, 0.48) 100%
        );

    pointer-events: none;
}


.solutions-image-glow {
    position: absolute;
    z-index: 2;
    width: 35%;
    height: 35%;
    left: 15%;
    top: 18%;

    background: rgba(245, 200, 117, 0.08);
    filter: blur(70px);

    pointer-events: none;
}


.solutions-image-number {
    position: absolute;
    z-index: 4;
    left: 30px;
    bottom: 28px;

    display: flex;
    align-items: center;
    gap: 12px;

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: rgba(255, 255, 255, 0.72);
}


.solutions-image-number i {
    width: 32px;
    height: 1px;
    background: rgba(255, 255, 255, 0.45);
}


.solutions-visual-caption {
    position: absolute;
    z-index: 5;

    right: 52px;
    bottom: 51px;

    display: flex;
    align-items: center;
    gap: 18px;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}


.solutions-visual-caption span:first-child {
    color: white;
}


.solutions-visual-caption span:last-child {
    color: rgba(255, 255, 255, 0.38);
}


/* =========================================================
   LIST
   ========================================================= */

.solutions-list {
    display: flex;
    flex-direction: column;

    border-left: 1px solid rgba(255, 255, 255, 0.11);
}


.solution-item {
    position: relative;

    display: grid;
    grid-template-columns: 55px minmax(0, 1fr) 32px;
    align-items: center;
    gap: 18px;

    width: 100%;
    flex: 1;

    padding: 25px 28px 25px 34px;

    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);

    background: transparent;
    color: white;

    text-align: left;
    font-family: inherit;

    cursor: pointer;

    transition:
        background 0.4s ease,
        padding 0.45s cubic-bezier(.16, 1, .3, 1);
}


.solution-item:last-child {
    border-bottom: 0;
}


.solution-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 2px;
    height: 0;

    background: #f5c875;

    transition: height 0.45s cubic-bezier(.16, 1, .3, 1);
}


.solution-item:hover,
.solution-item.active {
    background:
        linear-gradient(
            90deg,
            rgba(245, 200, 117, 0.065),
            rgba(245, 200, 117, 0.012)
        );
}


.solution-item.active {
    padding-left: 42px;
}


.solution-item.active::before {
    height: 100%;
}


.solution-number {
    align-self: start;
    padding-top: 4px;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;

    color: rgba(255, 255, 255, 0.27);

    transition: color 0.3s ease;
}


.solution-item.active .solution-number {
    color: rgba(245, 200, 117, 0.9);
}


.solution-content {
    display: flex;
    flex-direction: column;
    gap: 7px;
}


.solution-content strong {
    font-size: clamp(19px, 1.65vw, 25px);
    line-height: 1.1;
    font-weight: 500;
    letter-spacing: -0.025em;

    transition: color 0.3s ease;
}


.solution-item.active .solution-content strong {
    color: white;
}


.solution-content small {
    max-width: 240px;

    font-size: 12px;
    line-height: 1.5;

    color: rgba(255, 255, 255, 0.34);

    transition:
        color 0.3s ease,
        opacity 0.3s ease;
}


.solution-item:not(.active) .solution-content small {
    opacity: 0.65;
}


.solution-item.active .solution-content small {
    color: rgba(255, 255, 255, 0.52);
    opacity: 1;
}


.solution-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 50%;

    font-size: 13px;
    line-height: 1;

    color: rgba(255, 255, 255, 0.35);

    transition:
        color 0.35s ease,
        border-color 0.35s ease,
        background 0.35s ease,
        transform 0.45s cubic-bezier(.16, 1, .3, 1);
}


.solution-item:hover .solution-arrow,
.solution-item.active .solution-arrow {
    color: #111;
    border-color: #f5c875;
    background: #f5c875;
    transform: rotate(0deg);
}


/* =========================================================
   BOTTOM LINE
   ========================================================= */

.solutions-bottom {
    display: grid;
    grid-template-columns: auto minmax(40px, 1fr) auto;
    align-items: center;
    gap: 20px;

    padding-top: 24px;

    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.28);
}


.solutions-bottom-line {
    height: 1px;
    background: rgba(255, 255, 255, 0.09);
}


/* =========================================================
   REVEAL
   ========================================================= */

.solutions-header,
.solutions-showcase,
.solutions-bottom {
    opacity: 0;
    transform: translateY(28px);

    transition:
        opacity 0.9s ease,
        transform 1s cubic-bezier(.16, 1, .3, 1);
}


.solutions-section.is-visible .solutions-header,
.solutions-section.is-visible .solutions-showcase,
.solutions-section.is-visible .solutions-bottom {
    opacity: 1;
    transform: translateY(0);
}


.solutions-section.is-visible .solutions-showcase {
    transition-delay: 0.12s;
}


.solutions-section.is-visible .solutions-bottom {
    transition-delay: 0.2s;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .solutions-header {
        grid-template-columns: 1fr;
        gap: 35px;
        margin-bottom: 60px;
    }


    .solutions-kicker {
        padding-top: 0;
    }


    .solutions-showcase {
        grid-template-columns: 1fr;
    }


    .solutions-visual {
        padding: 20px;
        padding-left: 0;
        padding-right: 0;
    }


    .solutions-image-wrap {
        min-height: 62vw;
        max-height: 680px;
    }


    .solutions-list {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.11);
    }


    .solution-item {
        min-height: 105px;
        flex: none;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .solutions-section {
        padding: 100px 0 80px;
    }


    .solutions-container {
        width: calc(100% - 36px);
    }


    .solutions-header {
        gap: 28px;
        margin-bottom: 48px;
    }


    .solutions-kicker {
        gap: 14px;
    }


    .solutions-kicker span {
        font-size: 9px;
    }


    .solutions-kicker i {
        width: 25px;
    }


    .solutions-heading h2 {
        font-size: clamp(43px, 12vw, 60px);
        line-height: 0.98;
        letter-spacing: -0.06em;
    }


    .solutions-heading p {
        margin-top: 26px;
        font-size: 14px;
        line-height: 1.65;
    }


    .solutions-showcase {
        min-height: 0;
    }


    .solutions-visual {
        padding: 14px 0 0;
    }


    .solutions-image-wrap {
        min-height: 0;
        height: 118vw;
        max-height: 580px;
    }


    .solutions-image {
        transform: scale(1.015);
        transition:
            opacity 0.3s ease,
            transform 0.7s cubic-bezier(.16, 1, .3, 1);
    }


    .solutions-image.is-changing {
        transform: scale(1.035);
    }


    .solutions-image-number {
        left: 20px;
        bottom: 20px;
    }


    .solutions-visual-caption {
        right: 20px;
        bottom: 20px;
        gap: 10px;
        font-size: 8px;
    }


    .solutions-list {
        margin-top: 0;
    }


    .solution-item {
        grid-template-columns: 38px minmax(0, 1fr) 30px;
        gap: 12px;

        min-height: 88px;

        padding: 20px 0;
    }


    .solution-item.active {
        padding-left: 12px;
    }


    .solution-number {
        font-size: 9px;
    }


    .solution-content {
        gap: 5px;
    }


    .solution-content strong {
        font-size: 19px;
    }


    .solution-content small {
        font-size: 11px;
        line-height: 1.4;
    }


    .solution-arrow {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }


    .solutions-bottom {
        padding-top: 20px;
        font-size: 8px;
    }


    .solutions-bottom-line {
        min-width: 20px;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .solutions-container {
        width: calc(100% - 28px);
    }


    .solutions-section {
        padding-top: 90px;
    }


    .solutions-heading h2 {
        font-size: 42px;
    }


    .solutions-image-wrap {
        height: 125vw;
    }


    .solution-item {
        grid-template-columns: 34px minmax(0, 1fr) 28px;
    }


    .solution-content strong {
        font-size: 18px;
    }


    .solution-content small {
        max-width: 190px;
    }

}






/* =========================================================
   SOLUTIONS — MOBILE ARROWS
========================================================= */

@media (max-width: 800px) {

    .solution-arrow {
        font-size: 0;
    }

    .solution-arrow::after {
        content: "";

        display: inline-block;

        width: 15px;
        height: 15px;

        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }

}



/* =========================================================
   ADVANTAGES — MOBILE ARROWS
========================================================= */

@media (max-width: 800px) {

    .advantage-card:first-child .advantage-icon {
        font-size: 0;
    }

    .advantage-card:first-child .advantage-icon::after {
        content: "";

        display: inline-block;

        width: 18px;
        height: 18px;

        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23f5c875' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }


    /* =====================================================
       CTA — WHITE ARROW
    ===================================================== */

    .advantages-cta-button > span:last-child {
        font-size: 0;
    }

    .advantages-cta-button > span:last-child::after {
        content: "";

        display: inline-block;

        width: 17px;
        height: 17px;

        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }

}









/* =========================================================
   PROCESS
========================================================= */

.process-section {
    position: relative;

    padding: 150px 0 125px;

    background:
        radial-gradient(
            circle at 18% 58%,
            rgba(245, 200, 117, 0.035),
            transparent 30%
        ),
        #080909;

    overflow: hidden;
}


/* subtle grid */

.process-section::before {
    content: "";

    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.018) 1px,
            transparent 1px
        ),
        linear-gradient(
            rgba(255, 255, 255, 0.018) 1px,
            transparent 1px
        );

    background-size: 80px 80px;

    mask-image:
        linear-gradient(
            to bottom,
            transparent,
            black 20%,
            black 80%,
            transparent
        );

    pointer-events: none;
}


.process-container {
    position: relative;
    z-index: 1;

    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;
}


/* =========================================================
   HEADER
========================================================= */

.process-header {
    display: grid;

    grid-template-columns: 180px minmax(0, 1fr);

    gap: 70px;

    margin-bottom: 100px;
}


.process-kicker {
    display: flex;
    align-items: flex-start;

    gap: 18px;

    padding-top: 15px;
}


.process-kicker span {
    font-size: 11px;
    font-weight: 600;

    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.46);

    white-space: nowrap;
}


.process-kicker i {
    display: block;

    width: 34px;
    height: 1px;

    margin-top: 6px;

    background: rgba(245, 200, 117, 0.65);
}


.process-heading {
    max-width: 1050px;
}


.process-heading h2 {
    margin: 0;

    font-size: clamp(52px, 6.3vw, 92px);

    line-height: 0.96;

    letter-spacing: -0.055em;

    font-weight: 500;
}


.process-heading h2 span {
    color: rgba(255, 255, 255, 0.36);
}


.process-heading p {
    max-width: 570px;

    margin: 38px 0 0;

    font-size: 16px;

    line-height: 1.7;

    color: rgba(255, 255, 255, 0.48);
}


/* =========================================================
   PATH
========================================================= */

.process-path {
    position: relative;

    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 0;

    min-height: 570px;

    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}


/* =========================================================
   LINE
========================================================= */

.process-line {
    position: absolute;

    z-index: 1;

    left: 6%;
    right: 6%;

    top: 198px;

    height: 1px;

    pointer-events: none;
}


.process-line-base {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.05),
            rgba(255, 255, 255, 0.17),
            rgba(255, 255, 255, 0.05)
        );
}


.process-line-progress {
    position: absolute;

    left: 0;
    top: 0;

    width: 0;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(245, 200, 117, 0.8),
            #f5c875
        );

    box-shadow:
        0 0 12px rgba(245, 200, 117, 0.45),
        0 0 30px rgba(245, 200, 117, 0.12);

    transition:
        width 2.2s cubic-bezier(.16, 1, .3, 1);
}


.process-line-light {
    position: absolute;

    top: 50%;

    left: 0;

    width: 4px;
    height: 4px;

    margin-top: -2px;

    border-radius: 50%;

    background: #fff;

    box-shadow:
        0 0 8px #fff,
        0 0 18px #f5c875,
        0 0 38px rgba(245, 200, 117, 0.7);

    opacity: 0;

    transition: opacity 0.4s ease;
}


.process-section.is-visible .process-line-progress {
    width: 100%;
}


.process-section.is-visible .process-line-light {
    opacity: 1;

    animation:
        processLightMove 2.2s
        cubic-bezier(.16, 1, .3, 1)
        forwards;
}


@keyframes processLightMove {

    0% {
        left: 0;
        opacity: 0;
    }

    8% {
        opacity: 1;
    }

    90% {
        opacity: 1;
    }

    100% {
        left: 100%;
        opacity: 0;
    }

}


/* =========================================================
   STEP
========================================================= */

.process-step {
    position: relative;

    z-index: 2;

    min-width: 0;

    padding:
        32px
        26px
        55px;

    opacity: 0;

    transform: translateY(35px);

    transition:
        opacity 0.8s ease,
        transform 0.9s cubic-bezier(.16, 1, .3, 1);
}


.process-section.is-visible .process-step {
    opacity: 1;

    transform: translateY(0);
}


.process-section.is-visible .process-step:nth-child(2) {
    transition-delay: 0.1s;
}


.process-section.is-visible .process-step:nth-child(3) {
    transition-delay: 0.22s;
}


.process-section.is-visible .process-step:nth-child(4) {
    transition-delay: 0.34s;
}


.process-section.is-visible .process-step:nth-child(5) {
    transition-delay: 0.46s;
}


.process-section.is-visible .process-step:nth-child(6) {
    transition-delay: 0.58s;
}


/* =========================================================
   STEP TOP
========================================================= */

.process-step-top {
    display: flex;

    align-items: center;
    justify-content: space-between;

    margin-bottom: 111px;
}


.process-step-number {
    font-size: 11px;

    font-weight: 600;

    letter-spacing: 0.14em;

    color: rgba(245, 200, 117, 0.85);
}


.process-step-status {
    font-size: 8px;

    font-weight: 600;

    letter-spacing: 0.17em;

    color: rgba(255, 255, 255, 0.19);
}


/* =========================================================
   NODE
========================================================= */

.process-node {
    position: absolute;

    z-index: 4;

    top: 191px;
    left: 26px;

    width: 15px;
    height: 15px;

    border: 1px solid rgba(255, 255, 255, 0.28);

    border-radius: 50%;

    background: #080909;

    transition:
        border-color 0.4s ease,
        box-shadow 0.4s ease,
        transform 0.5s cubic-bezier(.16, 1, .3, 1);
}


.process-node span {
    position: absolute;

    top: 50%;
    left: 50%;

    width: 4px;
    height: 4px;

    margin:
        -2px
        0
        0
        -2px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.25);

    transition:
        background 0.4s ease,
        box-shadow 0.4s ease;
}


.process-step:hover .process-node,
.process-step.active .process-node {
    border-color: #f5c875;

    box-shadow:
        0 0 0 5px rgba(245, 200, 117, 0.045),
        0 0 25px rgba(245, 200, 117, 0.12);

    transform: scale(1.1);
}


.process-step:hover .process-node span,
.process-step.active .process-node span {
    background: #f5c875;

    box-shadow:
        0 0 8px #f5c875,
        0 0 18px rgba(245, 200, 117, 0.65);
}


.process-node-final {
    border-color: rgba(245, 200, 117, 0.5);
}


/* =========================================================
   CONTENT
========================================================= */

.process-step-content {
    max-width: 220px;
}


.process-step-label {
    margin-bottom: 15px;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.3);
}


.process-step h3 {
    margin: 0;

    font-size: clamp(22px, 2vw, 29px);

    line-height: 1.08;

    letter-spacing: -0.035em;

    font-weight: 500;
}


.process-step h3 span {
    color: rgba(255, 255, 255, 0.38);
}


.process-step p {
    margin: 22px 0 0;

    font-size: 12px;

    line-height: 1.65;

    color: rgba(255, 255, 255, 0.4);
}


/* =========================================================
   HOVER
========================================================= */

.process-step {
    transition:
        opacity 0.8s ease,
        transform 0.9s cubic-bezier(.16, 1, .3, 1),
        background 0.45s ease;
}


.process-step:hover {
    background:
        radial-gradient(
            circle at 50% 32%,
            rgba(245, 200, 117, 0.045),
            transparent 40%
        );
}


.process-step:hover .process-step-label {
    color: rgba(245, 200, 117, 0.7);
}


.process-step:hover .process-step-content p {
    color: rgba(255, 255, 255, 0.55);
}


/* =========================================================
   BOTTOM
========================================================= */

.process-bottom {
    display: grid;

    grid-template-columns:
        auto
        minmax(50px, 1fr)
        auto;

    align-items: center;

    gap: 20px;

    padding-top: 25px;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.25);
}


.process-bottom-line {
    position: relative;

    height: 1px;

    background: rgba(255, 255, 255, 0.08);

    overflow: hidden;
}


.process-bottom-line span {
    position: absolute;

    top: 0;
    left: -20%;

    width: 20%;
    height: 1px;

    background: #f5c875;

    box-shadow:
        0 0 12px rgba(245, 200, 117, 0.65);

    opacity: 0;
}


.process-section.is-visible .process-bottom-line span {
    opacity: 1;

    animation:
        processBottomSweep
        3.5s
        linear
        infinite;
}


@keyframes processBottomSweep {

    0% {
        left: -20%;
    }

    100% {
        left: 120%;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {

    .process-header {
        grid-template-columns: 1fr;

        gap: 35px;

        margin-bottom: 65px;
    }


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

        min-height: auto;

        padding: 0;
    }


    .process-line {
        display: none;
    }


    .process-step {
        min-height: 360px;

        border-right:
            1px solid rgba(255, 255, 255, 0.08);

        border-bottom:
            1px solid rgba(255, 255, 255, 0.08);
    }


    .process-step:nth-child(2n) {
        border-right: 0;
    }


    .process-step-top {
        margin-bottom: 80px;
    }


    .process-node {
        top: 157px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .process-section {
        padding: 100px 0 80px;
    }


    .process-container {
        width: calc(100% - 36px);
    }


    .process-header {
        gap: 28px;

        margin-bottom: 50px;
    }


    .process-kicker {
        gap: 14px;

        padding-top: 0;
    }


    .process-kicker span {
        font-size: 9px;
    }


    .process-kicker i {
        width: 25px;
    }


    .process-heading h2 {
        font-size: clamp(43px, 12vw, 60px);

        line-height: 0.98;
    }


    .process-heading p {
        margin-top: 26px;

        font-size: 14px;

        line-height: 1.65;
    }


    .process-path {
        display: flex;

        flex-direction: column;

        border-top: 1px solid rgba(255, 255, 255, 0.1);

        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }


    .process-step {
        min-height: 0;

        padding:
            30px
            0
            34px
            45px;

        border-right: 0;

        border-bottom:
            1px solid rgba(255, 255, 255, 0.08);
    }


    .process-step:last-child {
        border-bottom: 0;
    }


    .process-step-top {
        margin-bottom: 24px;
    }


    .process-step-number {
        font-size: 10px;
    }


    .process-step-status {
        font-size: 7px;
    }


    .process-step-content {
        max-width: 300px;
    }


    .process-step-label {
        margin-bottom: 12px;

        font-size: 8px;
    }


    .process-step h3 {
        font-size: 25px;
    }


    .process-step p {
        margin-top: 16px;

        font-size: 12px;

        line-height: 1.65;
    }


    .process-node {
        top: 32px;
        left: 0;

        width: 14px;
        height: 14px;
    }


    /*
     * Вертикальная световая линия
     */

    .process-path::before {
        content: "";

        position: absolute;

        top: 38px;
        bottom: 38px;

        left: 6px;

        width: 1px;

        background:
            linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0.18),
                rgba(245, 200, 117, 0.28),
                rgba(255, 255, 255, 0.08)
            );
    }


    .process-path::after {
        content: "";

        position: absolute;

        left: 4px;
        top: 40px;

        width: 5px;
        height: 5px;

        border-radius: 50%;

        background: #f5c875;

        box-shadow:
            0 0 8px #f5c875,
            0 0 20px rgba(245, 200, 117, 0.5);

        opacity: 0;
    }


    .process-section.is-visible .process-path::after {

        opacity: 1;

        animation:
            processMobileLight
            3.8s
            ease-in-out
            infinite;

    }


    @keyframes processMobileLight {

        0% {
            top: 40px;
        }

        45% {
            top: 50%;
        }

        100% {
            top: calc(100% - 43px);
        }

    }


    .process-bottom {
        grid-template-columns:
            1fr
            auto;

        gap: 15px;

        font-size: 8px;
    }


    .process-bottom-line {
        display: none;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .process-container {
        width: calc(100% - 28px);
    }


    .process-section {
        padding-top: 90px;
    }


    .process-heading h2 {
        font-size: 42px;
    }


    .process-step {
        padding-left: 40px;
    }


    .process-step h3 {
        font-size: 23px;
    }


    .process-step p {
        font-size: 11px;
    }

}






/* =========================================================
   PROCESS — NEW DESKTOP DIRECTION
   Mobile version stays visually unchanged
========================================================= */

@media (min-width: 1051px) {

    .process-section {
        padding: 165px 0 125px;

        background:
            radial-gradient(
                circle at 72% 48%,
                rgba(245, 200, 117, 0.045),
                transparent 28%
            ),
            #080909;
    }


    /* -----------------------------------------
       HEADER
    ----------------------------------------- */

    .process-header {
        grid-template-columns: 180px minmax(0, 1fr);

        gap: 70px;

        margin-bottom: 105px;
    }


    .process-heading h2 {
        font-size: clamp(58px, 6.4vw, 94px);

        line-height: 0.94;

        letter-spacing: -0.06em;
    }


    .process-heading p {
        max-width: 520px;

        margin-top: 34px;

        font-size: 15px;

        color: rgba(255, 255, 255, 0.43);
    }


    /* -----------------------------------------
       PATH
    ----------------------------------------- */

    .process-path {
        position: relative;

        display: grid;

        grid-template-columns:
            repeat(5, minmax(0, 1fr));

        min-height: 430px;

        border: 0;

        overflow: visible;
    }


    /* Remove old line completely */

    .process-line {
        display: none;
    }


    /* -----------------------------------------
       NEW LIGHT ROUTE
    ----------------------------------------- */

    .process-path::before {
        content: "";

        position: absolute;

        z-index: 0;

        left: 2.5%;
        right: 2.5%;

        top:  165px;

        height: 1px;

        background:
            linear-gradient(
                90deg,
                transparent 0%,
                rgba(255, 255, 255, 0.07) 4%,
                rgba(255, 255, 255, 0.16) 25%,
                rgba(255, 255, 255, 0.16) 75%,
                rgba(255, 255, 255, 0.07) 96%,
                transparent 100%
            );

        transform-origin: left center;

        pointer-events: none;
    }


    /*
     * Warm route segments
     */

    .process-path::after {
        content: "";

        position: absolute;

        z-index: 1;

        left: 3%;
        right: 3%;

        top: 165px;

        height: 1px;

        background:
            linear-gradient(
                90deg,
                transparent,
                rgba(245, 200, 117, 0.42),
                rgba(245, 200, 117, 0.08),
                transparent
            );

        opacity: 0;

        pointer-events: none;
    }


    .process-section.is-visible .process-path::after {
        opacity: 1;

        animation:
            processDesktopRoute
            4.8s
            linear
            infinite;
    }


    @keyframes processDesktopRoute {

        0% {
            transform: translateX(-115%);
        }

        100% {
            transform: translateX(115%);
        }

    }


    /* -----------------------------------------
       STEP
    ----------------------------------------- */

    .process-step {
        position: relative;

        z-index: 2;

        min-height: 500px;

        padding:
            0
            30px
            40px;

        border: 0;

        background: transparent;

        opacity: 0;

        transform: translateY(28px);

        transition:
            opacity 0.8s ease,
            transform 0.9s cubic-bezier(.16, 1, .3, 1);
    }


    .process-section.is-visible .process-step {
        opacity: 1;

        transform: translateY(0);
    }


    /* -----------------------------------------
       NUMBER
    ----------------------------------------- */

    .process-step-number {
        display: block;

        margin-bottom: 10px;

        font-size: 13px;

        letter-spacing: 0.16em;

        color: rgba(245, 200, 117, 0.72);
    }


    .process-step-status {
        position: absolute;

        top: 4px;
        right: 30px;

        font-size: 8px;

        letter-spacing: 0.18em;

        color: rgba(255, 255, 255, 0.18);
    }


    /* -----------------------------------------
       GIANT GHOST NUMBER
    ----------------------------------------- */

    .process-step::before {
        content: attr(class);

        position: absolute;

        z-index: -1;

        top: -24px;
        left: 12px;

        font-size: 112px;

        font-weight: 600;

        line-height: 1;

        letter-spacing: -0.08em;

        color: rgba(255, 255, 255, 0.025);

        pointer-events: none;
    }


    .process-step-1::before {
        content: "01";
    }

    .process-step-2::before {
        content: "02";
    }

    .process-step-3::before {
        content: "03";
    }

    .process-step-4::before {
        content: "04";
    }

    .process-step-5::before {
        content: "05";
    }


    /* -----------------------------------------
       NODE
    ----------------------------------------- */

    .process-node {
        position: absolute;

        z-index: 5;

        top: 157px;
        left: 50%;

        width: 17px;
        height: 17px;

        margin-left: -8px;

        border: 1px solid rgba(255, 255, 255, 0.26);

        border-radius: 50%;

        background: #080909;

        transition:
            border-color 0.4s ease,
            box-shadow 0.4s ease,
            transform 0.5s cubic-bezier(.16, 1, .3, 1);
    }


    .process-node span {
        width: 4px;
        height: 4px;

        margin:
            -2px
            0
            0
            -2px;

        background: rgba(255, 255, 255, 0.28);
    }


    .process-step:hover .process-node,
    .process-step.active .process-node {
        border-color: #f5c875;

        transform: scale(1.15);

        box-shadow:
            0 0 0 6px rgba(245, 200, 117, 0.035),
            0 0 25px rgba(245, 200, 117, 0.2);
    }


    .process-step:hover .process-node span,
    .process-step.active .process-node span {
        background: #f5c875;

        box-shadow:
            0 0 7px #f5c875,
            0 0 18px rgba(245, 200, 117, 0.7);
    }


    /* -----------------------------------------
       CONTENT
    ----------------------------------------- */

    .process-step-top {
        display: block;

        margin: 0;

        padding-top: 4px;
    }


    .process-step-content {
        position: absolute;

        top: 205px;
        left: 30px;
        right: 30px;

        max-width: 220px;
    }


    .process-step-label {
        margin-bottom: 14px;

        font-size: 9px;

        letter-spacing: 0.17em;

        color: rgba(245, 200, 117, 0.48);
    }


    .process-step h3 {
        font-size: 25px;

        line-height: 1.06;

        letter-spacing: -0.04em;
    }


    .process-step p {
        margin-top: 18px;

        font-size: 12px;

        line-height: 1.65;

        color: rgba(255, 255, 255, 0.36);
    }


    /* -----------------------------------------
       VERTICAL MICRO MARKERS
    ----------------------------------------- */

    .process-step-content::before {
        content: "";

        position: absolute;

        top: -42px;
        left: 0;

        width: 1px;
        height: 25px;

        background:
            linear-gradient(
                to bottom,
                rgba(245, 200, 117, 0),
                rgba(245, 200, 117, 0.65)
            );
    }


    /* -----------------------------------------
       HOVER
    ----------------------------------------- */

    .process-step:hover {
        background: transparent;
    }


    .process-step:hover .process-step-label {
        color: #f5c875;
    }


    .process-step:hover .process-step-content p {
        color: rgba(255, 255, 255, 0.55);
    }


    /* -----------------------------------------
       FINAL STEP
    ----------------------------------------- */

    .process-step-5 .process-node {
        border-color: rgba(245, 200, 117, 0.45);
    }


    /* -----------------------------------------
       BOTTOM
    ----------------------------------------- */

    .process-bottom {
        position: relative;

        margin-top: 12px;

        padding-top: 26px;

        grid-template-columns:
            auto
            minmax(100px, 1fr)
            auto;

        gap: 24px;
    }


    .process-bottom strong {
        color: rgba(245, 200, 117, 0.48);

        font-size: 9px;

        letter-spacing: 0.18em;
    }

}


/* =========================================================
   PROCESS — MOBILE OVERRIDE
   Keep the already approved mobile composition
========================================================= */

@media (max-width: 700px) {

    .process-path::before {
        top: 38px;
        bottom: 38px;

        left: 6px;

        width: 1px;
        height: auto;

        background:
            linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0.18),
                rgba(245, 200, 117, 0.28),
                rgba(255, 255, 255, 0.08)
            );
    }


    .process-path::after {
        left: 4px;
        right: auto;

        top: 40px;

        width: 5px;
        height: 5px;

        background: #f5c875;

        box-shadow:
            0 0 8px #f5c875,
            0 0 20px rgba(245, 200, 117, 0.5);

        opacity: 0;
    }


    .process-section.is-visible .process-path::after {
        animation:
            processMobileLight
            3.8s
            ease-in-out
            infinite;
    }


    .process-step::before {
        content: none;
    }


    .process-step-status {
        position: static;

        font-size: 7px;
    }


    .process-step-content::before {
        display: none;
    }


    .process-node {
        margin-left: 0;
    }

}















/* =========================================================
   FINAL CTA
========================================================= */

.final-cta {
    position: relative;

    min-height: 760px;

    overflow: hidden;

    background: #080909;
}


/* =========================================================
   PHOTO MOSAIC
========================================================= */

.final-cta-media {
    position: absolute;

    inset: 0;

    display: grid;

    grid-template-columns:
        repeat(6, 1fr);

    gap: 2px;

    transform: scale(1.015);

    transition:
        transform 1.8s cubic-bezier(.16, 1, .3, 1);

    pointer-events: none;
}


.final-cta-photo {
    position: relative;

    height: 100%;

    overflow: hidden;
}


.final-cta-photo img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transform: scale(1.035);

    filter:
        saturate(0.72)
        contrast(1.08)
        brightness(0.7);

    transition:
        transform 2s cubic-bezier(.16, 1, .3, 1),
        filter 1.2s ease;
}


/* individual framing */

.final-cta-photo-1 img {
    object-position: center;
}

.final-cta-photo-2 img {
    object-position: center;
}

.final-cta-photo-3 img {
    object-position: center;
}

.final-cta-photo-4 img {
    object-position: center;
}

.final-cta-photo-5 img {
    object-position: center;
}

.final-cta-photo-6 img {
    object-position: center;
}


/* subtle movement */

.final-cta:hover .final-cta-media {
    transform: scale(1.025);
}


.final-cta:hover .final-cta-photo img {
    transform: scale(1.06);
}


/* =========================================================
   CINEMATIC OVERLAY
========================================================= */

.final-cta-overlay {
    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(8, 9, 9, 0.97) 0%,
            rgba(8, 9, 9, 0.86) 26%,
            rgba(8, 9, 9, 0.53) 57%,
            rgba(8, 9, 9, 0.76) 100%
        );
}


.final-cta-vignette {
    position: absolute;

    z-index: 2;

    inset: 0;

    background:
        radial-gradient(
            circle at 48% 48%,
            transparent 0%,
            rgba(8, 9, 9, 0.12) 40%,
            rgba(8, 9, 9, 0.7) 100%
        );

    pointer-events: none;
}


/* warm architectural glow */

.final-cta::after {
    content: "";

    position: absolute;

    z-index: 2;

    left: 34%;
    top: 30%;

    width: 500px;
    height: 500px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(245, 200, 117, 0.09),
            transparent 68%
        );

    filter: blur(20px);

    pointer-events: none;
}


/* =========================================================
   CONTAINER
========================================================= */

.final-cta-container {
    position: relative;

    z-index: 5;

    width: min(1400px, calc(100% - 64px));

    min-height: 760px;

    margin: 0 auto;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    padding:
        55px
        0
        30px;
}


/* =========================================================
   TOP
========================================================= */

.final-cta-top {
    display: flex;

    align-items: center;

    justify-content: space-between;
}


.final-cta-kicker {
    display: flex;

    align-items: center;

    gap: 18px;
}


.final-cta-kicker span {
    font-size: 11px;

    font-weight: 600;

    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.62);
}


.final-cta-kicker i {
    width: 34px;
    height: 1px;

    background:
        rgba(245, 200, 117, 0.75);
}


.final-cta-top-label {
    font-size: 8px;

    font-weight: 600;

    letter-spacing: 0.2em;

    color: rgba(255, 255, 255, 0.25);
}


/* =========================================================
   MAIN
========================================================= */

.final-cta-main {
    display: flex;

    align-items: center;
}


.final-cta-copy {
    max-width: 850px;
}


.final-cta-copy h2 {
    margin: 0;

    font-size: clamp(58px, 7vw, 102px);

    line-height: 0.91;

    letter-spacing: -0.065em;

    font-weight: 500;

    text-shadow:
        0 4px 30px rgba(0, 0, 0, 0.28);
}


.final-cta-copy h2 span {
    display: block;

    color: rgba(255, 255, 255, 0.42);
}


.final-cta-copy p {
    max-width: 510px;

    margin: 38px 0 0;

    font-size: 15px;

    line-height: 1.7;

    color: rgba(255, 255, 255, 0.58);
}


/* =========================================================
   BUTTON
========================================================= */

.final-cta-button {
    display: inline-flex;

    align-items: center;

    gap: 20px;

    margin-top: 38px;

    min-height: 58px;

    padding:
        0
        10px
        0
        25px;

    color: #111;

    background: #f5c875;

    text-decoration: none;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 0.08em;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        background 0.35s ease;
}


.final-cta-button-arrow {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    background: #111;

    color: #fff;

    font-size: 14px;

    transition:
        transform 0.35s ease;
}


.final-cta-button:hover {
    transform: translateY(-2px);

    box-shadow:
        0 12px 40px rgba(245, 200, 117, 0.18);
}


.final-cta-button:hover
.final-cta-button-arrow {
    transform: rotate(45deg);
}


/* =========================================================
   BOTTOM ROUTE
========================================================= */

.final-cta-bottom {
    display: grid;

    grid-template-columns:
        auto
        minmax(100px, 1fr)
        auto;

    align-items: center;

    gap: 24px;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 0.16em;

    color: rgba(255, 255, 255, 0.36);
}


.final-cta-bottom strong {
    font-size: 9px;

    font-weight: 600;

    letter-spacing: 0.2em;

    color:
        rgba(245, 200, 117, 0.62);
}


/* =========================================================
   LIGHT ROUTE
========================================================= */

.final-cta-route {
    position: relative;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.06),
            rgba(255, 255, 255, 0.22),
            rgba(255, 255, 255, 0.06)
        );

    overflow: hidden;
}


.final-cta-route-line {
    position: absolute;

    left: -20%;

    top: 0;

    width: 20%;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #f5c875
        );

    box-shadow:
        0 0 12px rgba(245, 200, 117, 0.65);
}


.final-cta-route-light {
    position: absolute;

    top: 50%;

    left: -2px;

    width: 4px;
    height: 4px;

    margin-top: -2px;

    border-radius: 50%;

    background: #fff;

    box-shadow:
        0 0 8px #fff,
        0 0 18px #f5c875,
        0 0 34px rgba(245, 200, 117, 0.7);
}


/* =========================================================
   CTA REVEAL
========================================================= */

.final-cta-copy,
.final-cta-top,
.final-cta-bottom {
    opacity: 0;

    transform: translateY(25px);

    transition:
        opacity 1s ease,
        transform 1.1s cubic-bezier(.16, 1, .3, 1);
}


.final-cta.is-visible .final-cta-top {
    opacity: 1;

    transform: translateY(0);
}


.final-cta.is-visible .final-cta-copy {
    opacity: 1;

    transform: translateY(0);

    transition-delay: 0.12s;
}


.final-cta.is-visible .final-cta-bottom {
    opacity: 1;

    transform: translateY(0);

    transition-delay: 0.28s;
}


.final-cta.is-visible .final-cta-route-line {
    animation:
        finalCtaRoute
        4s
        linear
        infinite;
}


.final-cta.is-visible .final-cta-route-light {
    animation:
        finalCtaLight
        4s
        linear
        infinite;
}


@keyframes finalCtaRoute {

    0% {
        left: -20%;
    }

    100% {
        left: 120%;
    }

}


@keyframes finalCtaLight {

    0% {
        left: 0;
        opacity: 0;
    }

    5% {
        opacity: 1;
    }

    92% {
        opacity: 1;
    }

    100% {
        left: 100%;
        opacity: 0;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .final-cta {
        min-height: 700px;
    }


    .final-cta-container {
        min-height: 700px;

        padding-top: 42px;
    }


    .final-cta-copy h2 {
        font-size: clamp(52px, 8vw, 76px);
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .final-cta {
        min-height: 680px;
    }


    .final-cta-media {
        grid-template-columns:
            repeat(3, 1fr);

        grid-template-rows:
            repeat(2, 1fr);

        gap: 1px;

        transform: scale(1.02);
    }


    .final-cta-photo img {
        transform: scale(1.08);

        filter:
            saturate(0.62)
            contrast(1.06)
            brightness(0.58);
    }


    .final-cta:hover .final-cta-media {
        transform: scale(1.02);
    }


    .final-cta:hover .final-cta-photo img {
        transform: scale(1.08);
    }


    .final-cta-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(8, 9, 9, 0.9) 0%,
                rgba(8, 9, 9, 0.68) 38%,
                rgba(8, 9, 9, 0.88) 100%
            );
    }


    .final-cta-vignette {
        background:
            radial-gradient(
                circle at 50% 45%,
                transparent 0%,
                rgba(8, 9, 9, 0.72) 100%
            );
    }


    .final-cta-container {
        width: calc(100% - 36px);

        min-height: 680px;

        padding:
            30px
            0
            22px;
    }


    .final-cta-top {
        align-items: flex-start;
    }


    .final-cta-kicker {
        gap: 13px;
    }


    .final-cta-kicker span {
        font-size: 9px;
    }


    .final-cta-kicker i {
        width: 25px;
    }


    .final-cta-top-label {
        display: none;
    }


    .final-cta-main {
        align-items: center;
    }


    .final-cta-copy {
        max-width: 100%;
    }


    .final-cta-copy h2 {
        font-size: clamp(43px, 12vw, 60px);

        line-height: 0.96;

        letter-spacing: -0.06em;
    }


    .final-cta-copy p {
        max-width: 330px;

        margin-top: 25px;

        font-size: 13px;

        line-height: 1.65;

        color: rgba(255, 255, 255, 0.56);
    }


    .final-cta-button {
        margin-top: 28px;

        min-height: 54px;

        padding-left: 21px;

        gap: 15px;

        font-size: 10px;
    }


    .final-cta-button-arrow {
        width: 36px;
        height: 36px;

        font-size: 0;
    }


    .final-cta-button-arrow::after {
        content: "";

        display: inline-block;

        width: 16px;
        height: 16px;

        background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }


    .final-cta-bottom {
        grid-template-columns:
            1fr
            auto;

        gap: 15px;

        font-size: 7px;
    }


    .final-cta-route {
        display: none;
    }


    .final-cta-bottom strong {
        font-size: 8px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .final-cta {
        min-height: 650px;
    }


    .final-cta-container {
        width: calc(100% - 28px);

        min-height: 650px;
    }


    .final-cta-copy h2 {
        font-size: 42px;
    }


    .final-cta-copy p {
        font-size: 12px;
    }


    .final-cta-button {
        width: 100%;

        justify-content: space-between;
    }

}






 /* =========================================================
    CALLBACK MODAL — MOBILE ARROW
 ========================================================= */

@media (max-width: 800px) {

    .callback-submit > span:last-child {
        font-size: 0;

        display: flex;

        align-items: center;
        justify-content: center;

        width: 38px;
        height: 38px;

        flex-shrink: 0;

        border-radius: 50%;

        background: #111;
    }


    .callback-submit > span:last-child::after {
        content: "";

        display: inline-block;

        width: 16px;
        height: 16px;

        background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }

}










/* =========================================================
   CALLBACK MODAL — MOBILE FIX
========================================================= */

@media (max-width: 800px) {

    /* -----------------------------------------------------
       CONSENT CHECKBOX
    ----------------------------------------------------- */

    .callback-consent input {
        appearance: none;
        -webkit-appearance: none;

        position: relative;

        width: 17px;
        height: 17px;

        flex: 0 0 17px;

        margin: 1px 0 0;

        border: 1px solid rgba(255, 255, 255, .28);

        border-radius: 2px;

        background: rgba(255, 255, 255, .035);

        cursor: pointer;

        transition:
            background .2s ease,
            border-color .2s ease,
            box-shadow .2s ease;
    }


    .callback-consent input:checked {
        border-color: #fff;

        background: #fff;

        box-shadow:
            0 0 12px rgba(255, 255, 255, .08);
    }


    .callback-consent input:checked::after {
        content: "";

        position: absolute;

        left: 4px;
        top: 1px;

        width: 5px;
        height: 9px;

        border-right: 2px solid #111;
        border-bottom: 2px solid #111;

        transform: rotate(45deg);
    }


    /* -----------------------------------------------------
       SUBMIT BUTTON
    ----------------------------------------------------- */

    .callback-submit {
        display: flex;

        align-items: center;
        justify-content: space-between;

        width: 100%;

        padding:
            0 21px;

        min-height: 58px;

        font-size: 13px;
    }


    /* Текст кнопки ВСЕГДА остаётся видимым */

    .callback-submit > span:first-child {
        display: block;

        flex: 1 1 auto;

        min-width: 0;

        font-size: 13px;
        line-height: 1;

        color: #090a09;

        white-space: nowrap;

        opacity: 1;

        visibility: visible;
    }


    /* Круг со стрелкой */

    .callback-submit > span:last-child {
        display: flex;

        align-items: center;
        justify-content: center;

        flex: 0 0 38px;

        width: 38px;
        height: 38px;

        margin-left: 15px;

        border-radius: 50%;

        background: #111;

        font-size: 0;

        opacity: 1;

        visibility: visible;

        transform: none;
    }


    /* Сама стрелка */

    .callback-submit > span:last-child::after {
        content: "";

        display: block;

        width: 16px;
        height: 16px;

        background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19L19 5M9 5h10v10' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }


    /* Не даём hover-состоянию сдвигать отдельные элементы */

    .callback-submit:hover > span:first-child {
        transform: none;
    }

    .callback-submit:hover > span:last-child {
        transform: none;
    }

}











/* =========================================================
   FOOTER
========================================================= */

.site-footer {
    position: relative;

    background: #080909;
    color: #fff;

    border-top: 1px solid rgba(255, 255, 255, .07);
}


.footer-inner {
    width: min(1400px, calc(100% - 80px));
    margin: 0 auto;
}


/* ---------------------------------------------------------
   TOP
--------------------------------------------------------- */

.footer-top {
    display: grid;
    grid-template-columns:
        minmax(220px, 1fr)
        minmax(300px, 1.2fr)
        minmax(250px, .8fr);

    gap: 70px;

    padding: 75px 0 70px;
}


/* ---------------------------------------------------------
   BRAND
--------------------------------------------------------- */

.footer-brand-name {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1;
}


.footer-brand-text {
    margin-top: 22px;

    font-size: 13px;
    line-height: 1.7;

    color: rgba(255, 255, 255, .34);
}


/* ---------------------------------------------------------
   LABEL
--------------------------------------------------------- */

.footer-label {
    margin-bottom: 24px;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .18em;

    color: rgba(255, 255, 255, .28);
}


/* ---------------------------------------------------------
   LINKS
--------------------------------------------------------- */

.footer-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 11px;
}


.footer-links a {
    position: relative;

    display: inline-block;

    color: rgba(255, 255, 255, .58);

    font-size: 12px;
    line-height: 1.5;

    text-decoration: none;

    transition:
        color .25s ease,
        transform .25s ease;
}


.footer-links a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -2px;

    width: 0;
    height: 1px;

    background: #f5c875;

    transition: width .3s ease;
}


.footer-links a:hover {
    color: #fff;
    transform: translateX(3px);
}


.footer-links a:hover::after {
    width: 100%;
}


/* ---------------------------------------------------------
   COMPANY
--------------------------------------------------------- */

.footer-company-name {
    max-width: 260px;

    font-size: 13px;
    line-height: 1.5;

    color: rgba(255, 255, 255, .68);
}


.footer-company-details {
    margin-top: 13px;

    font-size: 11px;
    line-height: 1.8;

    color: rgba(255, 255, 255, .30);

    letter-spacing: .02em;
}


/* ---------------------------------------------------------
   BOTTOM
--------------------------------------------------------- */

.footer-bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;

    min-height: 74px;

    border-top: 1px solid rgba(255, 255, 255, .07);
}


.footer-copy {
    font-size: 9px;
    letter-spacing: .14em;

    color: rgba(255, 255, 255, .25);
}


.footer-developed {
    display: flex;
    align-items: center;
    gap: 9px;

    font-size: 9px;
    letter-spacing: .12em;
}


.footer-developed span {
    color: rgba(255, 255, 255, .22);
}


.footer-developed a {
    color: rgba(255, 255, 255, .55);

    text-decoration: none;

    transition: color .25s ease;
}


.footer-developed a:hover {
    color: #f5c875;
}


.footer-panda-link {
    justify-self: end;

    font-size: 9px;
    letter-spacing: .08em;

    color: rgba(255, 255, 255, .22);

    text-decoration: none;

    transition: color .25s ease;
}


.footer-panda-link:hover {
    color: rgba(255, 255, 255, .55);
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 800px) {

    .footer-inner {
        width: min(100% - 40px, 1400px);
    }


    .footer-top {
        grid-template-columns: 1fr;
        gap: 45px;

        padding: 55px 0 48px;
    }


    .footer-brand-text {
        margin-top: 17px;
    }


    .footer-label {
        margin-bottom: 18px;
    }


    .footer-links {
        gap: 12px;
    }


    .footer-links a {
        font-size: 11px;
    }


    .footer-company-name {
        max-width: 100%;
    }


    .footer-bottom {
        grid-template-columns: 1fr;
        gap: 16px;

        padding: 22px 0 25px;
    }


    .footer-copy {
        order: 1;
    }


    .footer-developed {
        order: 2;

        flex-wrap: wrap;
    }


    .footer-panda-link {
        order: 3;

        justify-self: start;
    }


    .footer-desktop-break {
        display: none;
    }

}











/* =========================================================
   MOBILE CALLBACK TAB
========================================================= */

.mobile-callback-tab {
    display: none;
}


@media (max-width: 800px) {

    .mobile-callback-tab {
        position: fixed;

        top: 40%;
        right: 0;

        z-index: 850;

        display: flex;
        align-items: center;
        justify-content: center;

        width: 38px;
        height: 158px;

        padding: 0;

        border: 1px solid rgba(245, 200, 117, .28);
        border-right: 0;

        border-radius: 14px 0 0 14px;

        background:
            linear-gradient(
                180deg,
                rgba(19, 21, 20, .94),
                rgba(8, 9, 9, .97)
            );

        color: #fff;

        box-shadow:
            -8px 0 28px rgba(0, 0, 0, .32),
            -1px 0 18px rgba(245, 200, 117, .04);

        transform: translateY(-50%);

        cursor: pointer;

        -webkit-tap-highlight-color: transparent;

        transition:
            width .3s ease,
            border-color .3s ease,
            box-shadow .3s ease,
            background .3s ease;
    }


    /* тонкая светящаяся линия */

    .mobile-callback-tab-line {
        position: absolute;

        left: -1px;
        top: 14px;
        bottom: 14px;

        width: 1px;

        background:
            linear-gradient(
                180deg,
                transparent 0%,
                rgba(245, 200, 117, .12) 18%,
                #f5c875 50%,
                rgba(245, 200, 117, .12) 82%,
                transparent 100%
            );

        opacity: .8;

        box-shadow:
            0 0 8px rgba(245, 200, 117, .28);
    }


    /* текст */

    .mobile-callback-tab-text {
        display: block;

        font-family: inherit;
        font-size: 8px;
        font-weight: 700;
        line-height: 1;

        letter-spacing: .18em;

        white-space: nowrap;

        color: rgba(255, 255, 255, .72);

        transform: rotate(-90deg);

        transition:
            color .3s ease,
            letter-spacing .3s ease;
    }


    /* маленькая световая точка */

    .mobile-callback-tab-dot {
        position: absolute;

        bottom: 13px;
        left: 50%;

        width: 4px;
        height: 4px;

        margin-left: -2px;

        border-radius: 50%;

        background: #f5c875;

        box-shadow:
            0 0 6px rgba(245, 200, 117, .75),
            0 0 14px rgba(245, 200, 117, .32);

        animation: mobileCallbackPulse 2.4s ease-in-out infinite;
    }


    /* hover / tap */

    .mobile-callback-tab:hover,
    .mobile-callback-tab:focus-visible {
        width: 42px;

        border-color: rgba(245, 200, 117, .55);

        background:
            linear-gradient(
                180deg,
                rgba(25, 24, 21, .97),
                rgba(10, 10, 9, .98)
            );

        box-shadow:
            -10px 0 32px rgba(0, 0, 0, .38),
            -1px 0 22px rgba(245, 200, 117, .10);

        outline: none;
    }


    .mobile-callback-tab:hover .mobile-callback-tab-text,
    .mobile-callback-tab:focus-visible .mobile-callback-tab-text {
        color: #fff;
        letter-spacing: .21em;
    }


    /* когда открыто мобильное меню —
       кнопка не мешает меню */

    body.menu-open .mobile-callback-tab {
        opacity: 0;
        pointer-events: none;
        transform: translate(12px, -50%);
    }


    @keyframes mobileCallbackPulse {

        0%,
        100% {
            opacity: .45;
            transform: scale(.8);
        }

        50% {
            opacity: 1;
            transform: scale(1.35);
        }
    }
}