/* 
 * Custom CSS файл для дополнительных стилей
 * Добавляйте сюда ваши обычные CSS стили
 */

/* Header CSS Variables */
:root {
    --color-error: #e90000;
    --color-off-white: #f0f1fa;
    --color-white: #fff;
    --color-dark-white: #e4e6ef;
    --color-off-white-semi: rgba(240,241,250,.7);
    --color-black: #000;
    --color-green: #c1ff00;
    --color-blue: #1a2ffb;
    --color-red: #ff4c41;
    --color-grey-blue: #2b2e3a;
    --color-dark-blue: #071bdf;
    --color-purple: #8832f7;
    --color-project-details-logo-color: #f0f;
    --grid-space: calc(8.33333% - var(--grid-gap)*11/12);
    --grid-gap: 2vw;
    --global-border-radius: 20px;
    --base-padding-x: max(5vw,40px);
    --base-padding-y: clamp(30px,4vw,50px);
    --header-color: #0016ec;
    --header-text-color: #000;
    --project-details-bg: #000;
    --project-details-highlight: #000;
    --project-details-btn-bg: #000;
    --project-details-btn-text: #000;
    --project-details-icon-bg: #000;
    --project-details-icon-color: #000;
    --project-details-text: #000;
    --project-details-btn-bg-hover: #000;
    --project-details-btn-text-hover: #fff;
    --header-size: clamp(1rem,1vw,2rem);
    --cross-size: clamp(.875rem,1vw,2rem);
    --open-delay: 0s;
    --close-delay: 0s;
}

@media (max-width: 812px) {
    :root {
        --grid-gap: 4vw;
        --global-border-radius: 15px;
    }
}

@media (min-aspect-ratio: 7/3) {
    :root {
        --base-padding-x: max(6vw,60px);
    }
}

@media (max-width: 380px) {
    :root {
        --header-size: clamp(.75rem,1vw,2rem);
    }
}

/* Header Main Styles */
#header {
    color: var(--color-black);
    font-size: clamp(1rem,1vw,1.5rem);
    left: 0;
    padding: var(--base-padding-y) var(--base-padding-x);
    pointer-events: none;
    position: fixed;
    transition: color .25s;
    width: 100%;
    z-index: 52;
}

@media (max-width: 380px) {
    #header {
        font-size: clamp(.75rem,1vw,2rem);
    }
}

#header p {
    margin: 0;
}

html.is-black-bg #header,
html.is-blue-bg #header {
    color: var(--color-white);
}

@media (max-width: 812px) {
    #header.--menu-opened #header-logo {
        color: var(--color-white);
    }
}

#header.--menu-opened #header-right-sound-btn-background-layer1 {
    background: var(--color-white);
}

/* Header Container */
#header-container {
    align-items: center;
    display: flex;
    justify-content: space-between;
    overflow: hidden;
    padding-bottom: .1em;
}

/* Header Background */
#header-background {
    height: calc(var(--vh, 1vh)*100);
    opacity: 0;
    pointer-events: none;
    position: fixed;
    right: 0;
    top: 0;
    transition: opacity .4s .4s;
    width: 50vw;
    z-index: 51;
}

@media (max-width: 812px) {
    #header-background {
        background: var(--header-color);
        width: 100vw;
    }
}

#header-background.--opened {
    opacity: 1;
    pointer-events: auto;
    transition: opacity .4s;
}

/* Header Logo */
#header-logo {
    transition: color .5s;
    z-index: 1;
    pointer-events: auto;
}

#header-logo svg {
    height: auto;
    width: 7.5em;
}

@media (max-width: 812px) {
    #header-logo svg {
        width: 6em;
    }
}

.is-project-details-active #header-logo {
    color: var(--project-details-highlight);
}

/* Header Right */
#header-right {
    display: flex;
    gap: 0.4em;
    position: relative;
    will-change: transform;
    pointer-events: auto;
    align-items: flex-start;
}

/* Header Right Sound Button */
#header-right-sound-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: .875em;
    height: 3.2em;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 3.2em;
    z-index: 1;
    pointer-events: auto;
}

@media (max-width: 812px) {
    #header-right-sound-btn {
        display: none;
    }
}

#header-right-sound-btn canvas {
    height: 100%;
    width: 100%;
}

/* Header Right Menu and Talk Buttons */
#header-right-menu-btn,
#header-right-talk-btn {
    border: none;
    border-radius: 6.25em;
    cursor: pointer;
    font-size: .875em;
    font-weight: 500;
    height: 3.2em;
    padding: 0 1.125em 0 1.625em;
    text-transform: uppercase;
    transform: scale(1);
    transition: color .4s,background-color .4s;
    pointer-events: auto;
}


@media (max-width: 812px) {
    #header-right-menu-btn,
    #header-right-talk-btn {
        padding: 0;
        position: relative;
        transform: none;
        width: 3.2em;
    }
}

/* Header Right Talk Button Placeholder */
#header-right-talk-btn-placeholder {
    display: none;
}

/* Header Right Talk Button */
#header-right-talk-btn {
    background: var(--color-grey-blue);
    color: var(--color-white);
    overflow: hidden;
    position: relative;
    transition: color .4s,background-color .4s;
}

#header-right-talk-btn a {
    inset: 0;
    position: absolute;
    z-index: 1;
}


@media (hover:hover) {
    #header-right-talk-btn:not(.--is-contact-active):hover {
        background: var(--header-color);
        color: var(--project-details-btn-text-hover);
    }

    #header-right-talk-btn:not(.--is-contact-active):hover #header-right-talk-btn-dots {
        transform: scale(0) translateZ(0);
    }

    #header-right-talk-btn:not(.--is-contact-active):hover #header-right-talk-btn-text {
        transform: translate3d(1.5em,0,0);
    }

    #header-right-talk-btn:not(.--is-contact-active):hover #header-right-talk-btn-arrow {
        transform: translateZ(0);
    }

    #header-right-talk-btn.--is-contact-active:hover {
        background: #0016ec;
    }

    #header-right-talk-btn.--is-contact-active:hover #header-contact-close-svg {
        transform: translate3d(-50%,-50%,0) rotate(180deg);
    }
}

#header-right-talk-container {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .625em;
    justify-content: center;
    white-space: nowrap;
}

#header-right-talk-btn-arrow,
#header-right-talk-btn-text {
    transition: transform .3s cubic-bezier(.4,0,.1,1);
}

#header-right-talk-btn-arrow {
    height: 1em;
    left: 1.2em;
    position: absolute;
    top: calc(50% - .5em);
    transform: translate3d(-2.5em,0,0);
    width: 1em;
}

#header-right-talk-btn-arrow svg {
    height: 100%;
    width: 100%;
}

#header-right-talk-btn-dots {
    height: 1.15em;
    position: relative;
    transform: scale(.9) translateZ(0);
    transition: transform .1s cubic-bezier(.4,0,.1,1);
    width: 1.15em;
}

.header-right-talk-btn-dot {
    background: var(--color-white);
    border-radius: 100%;
    display: block;
    height: .3125em;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%,-50%);
    width: .3125em;
}

/* Header Right Language Button */
#header-right-language-btn {
    background: var(--color-dark-white);
    border: none;
    border-radius: 6.25em;
    color: var(--color-black);
    cursor: pointer;
    font-size: .875em;
    font-weight: 500;
    height: 3.2em;
    overflow: visible;
    padding: 0;
    pointer-events: auto;
    position: relative;
    text-transform: uppercase;
    transform: scale(1);
    transition: color .4s,background-color .4s;
    width: 3.2em;
    z-index: 2;
}

@media (max-width: 812px) {
    #header-right-language-btn {
        padding: 0;
        width: 3.2em;
    }
}

#header-right-language-container {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .5em;
    justify-content: center;
    white-space: nowrap;
    position: relative;
    width: 100%;
    height: 100%;
}

#header-right-language-btn-text {
    transition: transform .3s cubic-bezier(.4,0,.1,1);
}

@media (hover:hover) {
    #header-right-language-btn:hover {
        background: var(--color-white);
    }
}

/* Language Dropdown */
#header-language-dropdown {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 61;
    pointer-events: none;
    display: none;
    width: auto;
}

#header-language-dropdown.--opened {
    display: block;
    pointer-events: auto;
}

#header-language-dropdown-content {
    transform: translate3d(0,5.5em,0) rotate(3.5deg);
    display: flex;
    flex-direction: column;
    padding: 1em .3125em;
    text-transform: uppercase;
    background: var(--color-white);
    border-radius: .625em;
    opacity: 0;
    min-width: 8em;
    white-space: nowrap;
    will-change: transform;
    transition: transform .5s var(--close-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--close-delay) cubic-bezier(.4,0,.1,1);
}

#header-language-dropdown.--opened #header-language-dropdown-content {
    opacity: 1;
    transform: translateZ(0);
    transition: transform .5s var(--open-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--open-delay) cubic-bezier(.4,0,.1,1);
}

.header-language-option {
    pointer-events: auto;
}

/* Override header-menu-link styles for language dropdown links */
#header-language-dropdown .header-menu-link {
    pointer-events: auto !important;
    text-decoration: none;
    text-align: left;
    display: block;
    width: 100%;
    cursor: pointer;
}

.header-language-option.--active {
    pointer-events: none!important;
    cursor: default;
}

.header-language-option.--active:before {
    transform: scale(1);
}

/* Prevent active link from being clickable */
#header-language-dropdown .header-menu-link.--active {
    pointer-events: none!important;
    cursor: default;
}

/* Header Right Menu Button */
#header-right-menu-btn {
    background: var(--color-dark-white);
    color: var(--color-black);
}

@media (hover:hover) {
    #header-right-menu-btn:hover {
        background: var(--color-white);
        color: var(--header-text-color);
    }

    #header-right-menu-btn:hover #header-right-menu-btn-dots {
        transform: translateY(-.1em) translateZ(0) rotate(270deg);
    }
}

#header-right-menu-btn.--opened {
    background: var(--color-white);
    color: var(--header-text-color);
}

#header-right-menu-btn.--opened #header-right-menu-btn-dots {
    transform: translateY(-.1em) translateZ(0) rotate(270deg);
}

@media (max-width: 812px) {
    #header-right-menu-btn.--opened #header-right-menu-btn-dots {
        transform: translate(.05em) translateY(-.1em) translateZ(0) rotate(270deg);
    }
}

#header-right-menu-btn.--opened #header-right-menu-btn-text {
    transform: translate3d(0,-100%,0);
}

#header-right-menu-btn.--opened #header-right-menu-btn-text-close {
    transform: translateZ(0);
}

#header-right-menu-btn-inner {
    align-items: center;
    background: transparent;
    display: flex;
    gap: .625em;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

@media (max-width: 812px) {
    #header-right-menu-btn-inner {
        right: .1em;
    }
}

#header-right-menu-btn-text {
    line-height: 1.2em;
}

@media (max-width: 812px) {
    #header-right-menu-btn-text {
        display: none;
    }
}

#header-right-menu-btn-text-close {
    left: 0;
    position: absolute;
    transform: translate3d(0,100%,0);
    transition: transform .3s cubic-bezier(.4,0,.1,1);
}

@media (max-width: 812px) {
    #header-right-menu-btn-text-close {
        display: none;
    }
}

#header-right-menu-btn-dots {
    height: 1.15em;
    position: relative;
    transform: translateZ(0) rotate(180deg);
    transition: transform .4s cubic-bezier(.4,0,.1,1);
    width: 1.15em;
}

@media (max-width: 812px) {
    #header-right-menu-btn-dots {
        font-size: 1.4em;
    }
}

#header-right-menu-btn-dots .header-right-menu-btn-dot {
    background: currentColor;
    border-radius: 100%;
    display: inline-block;
    height: .3125em;
    position: absolute;
    transform: translateY(-50%);
    transition: background-color .4s;
    width: .3125em;
}

#header-right-menu-btn-dots .header-right-menu-btn-dot:first-child {
    left: .1em;
    top: 50%;
}

#header-right-menu-btn-dots .header-right-menu-btn-dot:last-child {
    right: .1;
    top: 50%;
}

/* Header Menu */
#header-menu {
    color: var(--color-black);
    display: flex;
    flex-direction: column;
    gap: .625em;
    pointer-events: none;
    position: absolute;
    right: var(--base-padding-x);
    top: calc(var(--base-padding-y) + var(--header-size)*3.1 + .5em);
    width: 19.38em;
    z-index: 53;
}

@media (max-width: 1000px) {
    #header-menu {
        top: calc(var(--base-padding-y)*2 + var(--header-size)*3);
    }
}

#header-menu a,
#header-menu button,
#header-menu input,
#header-menu textarea {
    pointer-events: none;
}

#header-menu #header-menu-labs,
#header-menu #header-menu-links,
#header-menu #header-menu-newsletter,
#header-menu #header-menu-talk,
#header-menu #header-menu-contacts,
#header-menu #header-mega-menu,
#header-menu #header-menu-bottom {
    will-change: transform;
}

#header-menu.--opened #header-menu-labs,
#header-menu.--opened #header-menu-links,
#header-menu.--opened #header-menu-newsletter,
#header-menu.--opened #header-menu-talk,
#header-menu.--opened #header-menu-contacts,
#header-menu.--opened #header-mega-menu,
#header-menu.--opened #header-menu-bottom {
    opacity: 1;
    transform: translateZ(0);
    transition: transform .5s var(--open-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--open-delay) cubic-bezier(.4,0,.1,1);
}

#header-menu.--opened a,
#header-menu.--opened button,
#header-menu.--opened input,
#header-menu.--opened textarea {
    pointer-events: auto;
}

@media (max-width: 812px) {
    #header-menu {
        width: calc(100% - var(--base-padding-x)*2);
    }
}

/* Header Menu Links */
#header-menu-links {
    transform: translate3d(0,5.5em,0) rotate(3.5deg);
    display: flex;
    flex-direction: column;
    padding: 1em .3125em;
    text-transform: uppercase;
    background: var(--color-white);
    border-radius: .625em;
}

#header-menu-labs,
#header-menu-links,
#header-menu-newsletter,
#header-menu-talk,
#header-menu-contacts,
#header-mega-menu,
#header-menu-bottom {
    opacity: 0;
    transition: transform .5s var(--close-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--close-delay) cubic-bezier(.4,0,.1,1);
}

#header-menu-labs,
#header-menu-newsletter,
#header-menu-talk,
#header-menu-contacts,
#header-mega-menu,
#header-menu-bottom {
    transform: translate3d(0,7.75em,0) rotate(-3.5deg);
}


#header-menu-links,
#header-menu-newsletter {
    background: var(--color-white);
    border-radius: .625em;
}

/* Header Menu Newsletter */
#header-menu-newsletter {
    padding: 1.875em;
}

@media (max-height: 650px) {
    #header-menu-newsletter {
        display: none;
    }
}

@media (max-height: 1080px) and (max-width:812px) and (min-width:380px) {
    #header-menu-newsletter {
        display: none;
    }
}

#header-menu-newsletter-title {
    font-size: 2.375em;
    margin: auto 0;
}

#header-menu-newsletter-input {
    font-size: 1.25em;
    height: 4.375em;
    height: fit-content;
    margin-top: 1.4em;
    position: relative;
}

#header-menu-newsletter-input-field {
    background-color: var(--color-off-white);
    border: 0;
    border-radius: 1.125rem;
    font-size: 1em;
    height: 3.5em;
    outline: none;
    padding: 1.25em;
    pointer-events: none;
    position: relative;
    width: 100%;
}

#header-menu-newsletter-input-field::placeholder {
    font-size: 1em;
    opacity: .3;
}

#header-menu-newsletter-input-arrow {
    display: inline-block;
    height: 1.5em;
    padding: 0;
    position: absolute;
    right: 1.5em;
    top: 1em;
    width: 1.5em;
}

#header-menu-newsletter-input-arrow svg {
    height: auto;
    width: 100%;
}

/* Header Menu Talk */
#header-menu-talk {
    align-items: center;
    background: var(--color-white);
    border-radius: .625em;
    color: var(--color-black);
    display: none;
    justify-content: space-between;
    padding: 1.875em;
}

#header-menu-talk a {
    inset: 0;
    position: absolute;
    z-index: 1;
}

@media (max-width: 812px) {
    #header-menu-talk {
        display: flex;
    }
}

#header-menu-text {
    font-size: 1.625em;
    text-transform: uppercase;
}

#header-menu-talk-icon {
    height: 1.5em;
    width: 1.5em;
}

/* Header Menu Link */
.header-menu-link {
    color: var(--color-black);
    cursor: pointer;
    display: inline-block;
    line-height: 1;
    overflow: hidden;
    padding: 1em 1.625em;
    pointer-events: none;
    position: relative;
    width: 100%;
}

.header-menu-link:before {
    background: var(--color-black);
    border-radius: 100%;
    content: "";
    height: .5em;
    position: absolute;
    right: 2em;
    top: calc(50% - .25em);
    transform: scale(0);
    transition: transform .3s cubic-bezier(.4,0,.1,1);
    width: .5em;
}

.header-menu-link.--active {
    pointer-events: none!important;
}

.header-menu-link.--active:before {
    transform: scale(1);
}

@media (hover:hover) {
    .header-menu-link:hover {
        color: var(--header-text-color);
    }

    .header-menu-link:hover .header-menu-link-text {
        transform: translate3d(0,-100%,0);
    }

    .header-menu-link:hover .header-menu-link-text-clone {
        transform: translate3d(0,0,0);
        color: var(--header-text-color);
    }

    .header-menu-link:hover .header-menu-link-background {
        opacity: .1;
        transform: scale(1);
    }

    .header-menu-link:hover .header-menu-link-svg {
        transform: scale(1);
        transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1) .2s;
    }

    .header-menu-link:hover.--active:before {
        transform: scale(0);
    }
}

button.header-menu-link,
.header-menu-mega-trigger {
    color: var(--color-black);
    cursor: pointer;
    display: inline-block;
    line-height: 1;
    overflow: hidden;
    padding: 1em 1.625em;
    pointer-events: none;
    position: relative;
    width: 100%;
    text-align: start;
    background: transparent;
    border: none;
}

.header-menu-link-background {
    background: var(--header-color);
    border-radius: 6.25em;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    transform: scale(.85);
    transition: opacity .3s,transform .4s cubic-bezier(.4,0,.1,1);
    width: 100%;
}

.header-menu-link-text {
    display: inline-block;
    font-size: 1.625em;
    position: relative;
    text-transform: uppercase;
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
    z-index: 1;
}

.header-menu-link-svg {
    height: 1.5em;
    position: absolute;
    right: 0;
    top: calc(50% - .75em);
    transform: scale(0);
    transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1);
    width: 1.5em;
}

.header-menu-link-inner {
    overflow: hidden;
    position: relative;
}

.header-menu-link-text-clone {
    font-size: 1.625em;
    left: 0;
    position: absolute;
    text-transform: uppercase;
    top: 0;
    transform: translate3d(0,100%,0);
    z-index: 1;
}

.header-menu-link-icon,
.header-menu-link-text-clone {
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
}

.header-menu-link-icon {
    height: 1em;
    left: -1.25em;
    position: absolute;
    top: 0;
    width: 1em;
}

.header-menu-link-icon-mobile {
    display: none;
    left: 6.875em;
    position: absolute;
    top: 0;
}

@media (max-width: 812px) {
    .header-menu-link-icon-mobile {
        display: block;
        left: 6.25em;
    }
}

/* Header Menu Labs */
#header-menu-labs {
    background: var(--color-black);
    border-radius: .625em;
    cursor: pointer;
    padding: 1.25em 1.875em;
    pointer-events: none;
}

@media (hover:hover) {
    #header-menu-labs:hover #header-menu-labs-arrow {
        transform: translate3d(1.5em,-2.375em,0);
    }

    #header-menu-labs:hover #header-menu-labs-arrow2 {
        transform: translateZ(0);
    }

    #header-menu-labs:hover #header-menu-labs-text {
        transform: translate3d(0,-100%,0);
    }

    #header-menu-labs:hover #header-menu-labs-text-clone {
        transform: translateZ(0);
    }
}

#header-menu-labs-inner {
    align-items: center;
    display: flex;
    gap: 1.5em;
    overflow: hidden;
    position: relative;
}

#header-menu-labs-lucy {
    height: 2.375em;
    width: 2.375em;
}

#header-menu-labs-lucy svg {
    height: 100%;
    width: 100%;
}

#header-menu-labs-texts {
    color: var(--color-white);
    font-size: 1.625em;
    position: relative;
    text-transform: uppercase;
    width: 100%;
}

#header-menu-labs-text,
#header-menu-labs-text-clone {
    transition: transform .4s cubic-bezier(.4,0,.1,1);
}

#header-menu-labs-text-clone {
    position: absolute;
    top: 0;
    transform: translate3d(0,100%,0);
}

#header-menu-labs-arrow {
    flex-shrink: 0;
    height: 1.5em;
    transform: translateZ(0);
    transition: transform .3s cubic-bezier(.4,0,.1,1);
    width: 1.5em;
}

#header-menu-labs-arrow2 {
    right: 0;
    top: calc(50% - .75em);
    transform: translate3d(-1.5em,2.375em,0);
}

#header-contact-close-svg,
#header-menu-labs-arrow2 {
    position: absolute;
    transition: transform .3s cubic-bezier(.4,0,.1,1);
}

#header-contact-close-svg {
    height: 36.36364%;
    left: 50%;
    top: 50%;
    transform: translate3d(-50%,-50%,0) rotate(90deg);
    width: 36.36364%;
}

#header-menu-newsletter-feedback-message {
    font-size: .6em;
    margin: .5em 1em 0;
}

#header-menu-newsletter-feedback-message .error {
    color: red;
}

/* Mega Menu Tabs (Left Side) - отдельно от основной панели */
#header-mega-menu-tabs {
    display: none;
    flex-direction: column;
    gap: .5em;
    min-width: 16em;
    background: var(--color-white);
    border-radius: .625em;
    padding: 1.5em;
    position: absolute;
    right: calc(100% + 1em);
    top: 0;
    transform: translateX(-100%);
    opacity: 0;
    transition: transform .5s cubic-bezier(.4,0,.1,1), opacity .5s cubic-bezier(.4,0,.1,1);
    z-index: 54;
    pointer-events: auto;
}

/* Кнопка "Назад" для мобильной версии */
.header-mega-menu-back {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 1em 1.625em;
    text-align: left;
    color: var(--color-black);
    position: relative;
    pointer-events: auto;
    width: 100%;
    overflow: hidden;
    margin-bottom: 1em;
    border-bottom: 1px solid var(--color-dark-white);
    padding-bottom: 1.5em;
}

.header-mega-menu-back .header-menu-link-background {
    background: var(--header-color);
    border-radius: 6.25em;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    transform: scale(.85);
    transition: opacity .3s,transform .4s cubic-bezier(.4,0,.1,1);
    width: 100%;
}

.header-mega-menu-back .header-menu-link-inner {
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
}

.header-mega-menu-back .header-menu-link-text {
    display: inline-block;
    font-size: 1.625em;
    position: relative;
    text-transform: uppercase;
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
    z-index: 1;
}

.header-mega-menu-back .header-menu-link-text-clone {
    font-size: 1.625em;
    left: 0;
    position: absolute;
    text-transform: uppercase;
    top: 0;
    transform: translate3d(0,100%,0);
    z-index: 1;
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
    color: inherit;
    width: 100%;
    white-space: nowrap;
}

.header-mega-menu-back .header-menu-link-svg {
    height: 1.5em;
    position: relative;
    transform: scale(1);
    transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1);
    width: 1.5em;
    margin-right: 0.5em;
}

@media (hover:hover) {
    .header-mega-menu-back:hover {
        color: var(--header-text-color);
    }

    .header-mega-menu-back:hover .header-menu-link-text {
        transform: translate3d(0,-100%,0);
    }

    .header-mega-menu-back:hover .header-menu-link-text-clone {
        transform: translate3d(0,0,0);
        color: var(--header-text-color);
    }

    .header-mega-menu-back:hover .header-menu-link-background {
        opacity: .1;
        transform: scale(1);
    }
}

/* Скрыть мега-меню на мобильных */
@media (max-width: 812px) {
    #header-mega-menu-tabs,
    #header-mega-menu {
        display: none !important;
    }
    
    .header-mega-menu-back,
    #header-mega-menu-back,
    #header-mega-menu-back-panel {
        display: none !important;
    }
}

#header-mega-menu-tabs.--opened {
    display: flex;
    transform: translateX(0);
    opacity: 1;
    transition: transform .5s .2s cubic-bezier(.4,0,.1,1), opacity .5s .2s cubic-bezier(.4,0,.1,1);
}

/* Mega Menu Styles (Main Panel) */
#header-mega-menu {
    display: none;
    flex-direction: column;
    gap: 2em;
    background: var(--color-white);
    border-radius: .625em;
    padding: 1.5em;
    min-height: 20em;
    width: 19.38em;
    max-width: 19.38em;
    opacity: 0;
    transform: translate3d(0,7.75em,0) rotate(-3.5deg);
    transition: transform .5s var(--close-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--close-delay) cubic-bezier(.4,0,.1,1);
    position: relative;
    pointer-events: auto;
}

#header-mega-menu.--opened {
    display: flex;
    opacity: 1;
    transform: translateZ(0);
    transition: transform .5s var(--open-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--open-delay) cubic-bezier(.4,0,.1,1);
}

.header-mega-menu-tab {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 1em 1.625em;
    text-align: left;
    color: var(--color-black);
    position: relative;
    pointer-events: auto;
    width: 100%;
    overflow: hidden;
}

.header-mega-menu-tab .header-menu-link-background {
    background: var(--header-color);
    border-radius: 6.25em;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    transform: scale(.85);
    transition: opacity .3s,transform .4s cubic-bezier(.4,0,.1,1);
    width: 100%;
}

.header-mega-menu-tab .header-menu-link-inner {
    overflow: hidden;
    position: relative;
}

.header-mega-menu-tab .header-menu-link-text {
    display: inline-block;
    font-size: 1.625em;
    position: relative;
    text-transform: uppercase;
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
    z-index: 1;
}

.header-mega-menu-tab .header-menu-link-text-clone {
    font-size: 1.625em;
    left: 0;
    position: absolute;
    text-transform: uppercase;
    top: 0;
    transform: translate3d(0,100%,0);
    z-index: 1;
    transition: color .4s,transform .4s cubic-bezier(.4,0,.1,1);
}

.header-mega-menu-tab .header-menu-link-svg {
    height: 1.5em;
    position: absolute;
    right: 0;
    top: calc(50% - .75em);
    transform: scale(0);
    transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1);
    width: 1.5em;
}

/* Hover state */
@media (hover:hover) {
    .header-mega-menu-tab:hover {
        color: var(--header-text-color);
    }

    .header-mega-menu-tab:hover .header-menu-link-text {
        transform: translate3d(0,-100%,0);
    }

    .header-mega-menu-tab:hover .header-menu-link-text-clone {
        transform: translateZ(0);
    }

    .header-mega-menu-tab:hover .header-menu-link-background {
        opacity: .1;
        transform: scale(1);
    }

    .header-mega-menu-tab:hover .header-menu-link-svg {
        transform: scale(1);
        transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1) .2s;
    }
}

/* Active state - более яркий цвет */
.header-mega-menu-tab.--active {
    color: var(--header-text-color);
}

.header-mega-menu-tab.--active .header-menu-link-text {
    transform: translate3d(0,-100%,0);
}

.header-mega-menu-tab.--active .header-menu-link-text-clone {
    transform: translateZ(0);
}

.header-mega-menu-tab.--active .header-menu-link-background {
    opacity: .2;
    transform: scale(1);
}

.header-mega-menu-tab.--active .header-menu-link-svg {
    transform: scale(1);
    transition: color .4s,transform .2s cubic-bezier(.4,0,.1,1) .2s;
}

/* Mega Menu Content (Right Side) */
#header-mega-menu-content {
    flex: 1;
    position: relative;
    min-height: 20em;
    pointer-events: auto;
}

.header-mega-menu-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translateX(1em);
    transition: opacity .4s cubic-bezier(.4,0,.1,1), transform .4s cubic-bezier(.4,0,.1,1), visibility .4s;
    display: flex;
    flex-direction: column;
    gap: .5em;
}

.header-mega-menu-panel.--active {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    position: relative;
    transition: opacity .4s .1s cubic-bezier(.4,0,.1,1), transform .4s .1s cubic-bezier(.4,0,.1,1), visibility .4s .1s;
}

/* Bottom Section */
#header-menu-bottom {
    display: flex;
    flex-direction: column;
    gap: .625em;
    opacity: 0;
    transform: translate3d(0,7.75em,0) rotate(-3.5deg);
    transition: transform .5s var(--close-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--close-delay) cubic-bezier(.4,0,.1,1);
}

#header-menu.--opened #header-menu-bottom {
    opacity: 1;
    transform: translateZ(0);
    transition: transform .5s var(--open-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--open-delay) cubic-bezier(.4,0,.1,1);
}

@media (max-width: 812px) {
    #header-menu {
        width: calc(100vw - var(--base-padding-x) * 2);
        max-width: none;
    }

    #header-mega-menu {
        flex-direction: column;
        gap: 1.5em;
        padding: 1em;
    }

    #header-mega-menu-tabs {
        flex-direction: row;
        overflow-x: auto;
        border-right: none;
        border-bottom: 1px solid var(--color-dark-white);
        padding-right: 0;
        padding-bottom: 1em;
        min-width: auto;
        gap: .5em;
    }

    .header-mega-menu-tab {
        white-space: nowrap;
        padding: .5em 1em;
    }

    .header-mega-menu-tab.--active::before {
        left: auto;
        top: auto;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 3px;
        transform: none;
        border-radius: 2px 2px 0 0;
    }

    #header-mega-menu-content {
        min-height: auto;
    }
}

/* Header Menu Contacts */
#header-menu-contacts {
    background: var(--color-white);
    border-radius: .625em;
    display: flex;
    flex-direction: column;
    opacity: 0;
    padding: 1em .3125em;
    text-transform: uppercase;
    transform: translate3d(0,7.75em,0) rotate(-3.5deg);
    transition: transform .5s var(--close-delay) cubic-bezier(.4,0,.1,1),opacity .5s var(--close-delay) cubic-bezier(.4,0,.1,1);
}

/* Header Center Project Back Button */
#header-center-project-back-btn {
    align-items: center;
    background: #fff;
    border: none;
    border-radius: 100px;
    color: var(--project-details-btn-text);
    color: var(--color-black);
    cursor: pointer;
    display: flex;
    font-size: .875em;
    font-weight: 500;
    gap: .625em;
    height: 3.2em;
    left: 54.5em;
    overflow: hidden;
    padding: 0 1.5em 0 1em;
    pointer-events: auto;
    position: absolute;
    text-transform: uppercase;
    top: calc(var(--base-padding-y));
    transform: scale(0);
    width: fit-content;
}

@media (min-aspect-ratio: 7/3) {
    #header-center-project-back-btn {
        left: 68.5em;
    }
}

@media (max-width: 1200px) {
    #header-center-project-back-btn {
        left: inherit;
        right: 27.5em;
    }
}

@media (max-width: 812px) {
    #header-center-project-back-btn {
        justify-content: center;
        left: inherit;
        padding: 0;
        right: calc(var(--base-padding-x) + 4em);
        width: 3.2em;
    }
}

#header-center-project-back-btn svg {
    height: 1.2em;
    transition: color .5s,transform .4s cubic-bezier(.4,0,.1,1);
    width: 1.2em;
    z-index: 1;
}

@media (hover:hover) {
    #header-center-project-back-btn:hover {
        color: var(--project-details-btn-text);
    }

    #header-center-project-back-btn:hover #header-center-project-back-btn-svg {
        transform: translate3d(-2em,0,0);
    }

    #header-center-project-back-btn:hover #header-center-project-back-btn-text {
        transform: translate3d(-1.3em,0,0);
    }

    #header-center-project-back-btn:hover #header-center-project-back-btn-svg2 {
        transform: translate3d(-1em,0,0);
    }
}

#header-center-project-back-btn-svg2 {
    position: absolute;
    right: 0;
    transform: translate3d(1em,0,0);
    z-index: 1;
}

#header-center-project-back-btn-text {
    margin: 0;
    transition: color .5s,transform .4s cubic-bezier(.4,0,.1,1);
    z-index: 1;
}

#project-details-header-back-background {
    background: var(--project-details-btn-bg-hover);
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform .3s cubic-bezier(.16,1,.3,1);
    width: 100%;
}

#project-details-header-info {
    align-items: center;
    color: var(--project-details-highlight);
    display: flex;
    font-size: .75em;
    gap: .625em;
    overflow: hidden;
    position: absolute;
    right: var(--base-padding-x);
    text-transform: uppercase;
    z-index: 1;
}

#project-details-header-info svg {
    height: 1em;
    transition: color .5s;
    width: 1em;
}

@media (max-width: 812px) {
    #header-center-project-back-btn-text,
    #project-details-header-info {
        display: none;
    }
}

/* Section Base */
.section {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: var(--grid-gap);
    padding: var(--base-padding-y) var(--base-padding-x);
    position: relative;
}

@media (max-width: 812px) {
    .section {
        grid-template-columns: repeat(6, 1fr);
    }
}

/* Home Featured Section */
#home-featured:after,
#services-section:after {
    clear: both;
    content: "";
    display: block;
}

#home-featured-title-top,
#services-title-top {
    grid-column: 1/span 12;
    line-height: 0;
    position: relative;
}

@media (max-width: 812px) {
    #home-featured-title-top,
    #services-title-top {
        grid-column: 1/span 6;
    }
}

#home-featured-title-wrapper,
#services-title-wrapper {
    font-size: 8vw;
    letter-spacing: -.02em;
    position: relative;
    width: fit-content;
}

@media (min-aspect-ratio: 7/3) {
    #home-featured-title-wrapper,
    #services-title-wrapper {
        font-size: 5.3vw;
    }
}

@media (max-width: 812px) {
    #home-featured-title-wrapper,
    #services-title-wrapper {
        font-size: 15vw;
    }
}

#home-featured-title,
#services-title {
    display: inline-block;
    line-height: .9;
    margin: 0 0 0 -.07em;
    overflow: hidden;
    padding-top: .5em;
    position: relative;
    will-change: transform;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Анимация выдвижения стрелки слева направо */
@keyframes slideArrowIn {
    from {
        opacity: 0;
        transform: translateX(-2em);
    }
    to {
        opacity: 1;
        transform: translateX(-1em);
    }
}

#home-featured-disclaimer,
#services-disclaimer {
    bottom: 0;
    font-size: .9vw;
    line-height: 1.4;
    position: absolute;
    right: 0;
    text-transform: uppercase;
    width: calc(var(--grid-space)*3 + var(--grid-gap)*2);
    will-change: transform;
    font-weight: 400;
}

@media (min-aspect-ratio: 7/3) {
    #home-featured-disclaimer,
    #services-disclaimer {
        font-size: .6vw;
        width: calc(var(--grid-space)*2 + var(--grid-gap)*2);
    }
}

@media (max-width: 812px) {
    #home-featured-disclaimer,
    #services-disclaimer {
        font-size: 2.5vw;
        margin: 3em 0;
        position: relative;
        width: 100%;
    }
}

@media (max-width: 480px) {
    #home-featured-disclaimer,
    #services-disclaimer {
        font-size: 3.5vw;
    }
}

/* Project List */
.project-list {
    column-gap: var(--grid-gap);
    display: grid;
    grid-column: 1/span 12;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-top: calc(var(--vh, 1vh)*8);
    position: relative;
}

/* Экраны меньше 1024px - 1 столбец */
@media (max-width: 1024px) {
    .project-list {
        grid-column: 1/span 12;
        grid-template-columns: 1fr;
        margin-top: 0;
    }
    
    .project-item {
        grid-column: 1 / -1;
        width: 100%;
        float: none;
        clear: both;
    }
    
    .project-item:not(:first-child) {
        margin-top: 4em;
    }
    
    .project-item:nth-child(n+3) {
        margin-top: 4em;
    }
}

@media (max-width: 812px) {
    .project-list {
        grid-column: 1/span 6;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        margin-top: 0;
    }
}

/* Project Item */
.project-item {
    cursor: pointer;
    float: left;
    grid-column: span 6/span 6;
    pointer-events: auto;
    position: relative;
}

.project-item:nth-child(n+3) {
    margin-top: 5em;
}

@media (min-aspect-ratio: 7/3) {
    .project-item:nth-child(n+3) {
        margin-top: 10em;
    }
}

/* Мобильные устройства - 1 столбец и большие отступы */
@media (max-width: 812px) {
    .project-item {
        grid-column: span 6/span 6;
        width: 100%;
        clear: both;
    }
    
    .project-item:not(:first-child) {
        margin-top: 4em;
    }
}

/* Очень маленькие экраны - гарантированно 1 столбец */
@media (max-width: 480px) {
    .project-list {
        grid-template-columns: 1fr !important;
    }
    
    .project-item {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        float: none !important;
    }
    
    .project-item:not(:first-child) {
        margin-top: 5em;
    }
}

.project-item-main {
    padding-top: 65%;
    position: relative;
}

.project-item-image {
    border-radius: 15px;
    height: 100%;
    left: 0;
    object-fit: contain;
    position: absolute;
    top: 0;
    width: 100%;
    background-color: #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2vw;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.project-item-footer {
    position: relative;
    width: 100%;
}

.project-item-line-1 {
    font-size: .9vw;
    margin: 1.5em 0 1em;
    text-transform: uppercase;
    will-change: transform;
    font-weight: 400;
}

@media (min-aspect-ratio: 7/3) {
    .project-item-line-1 {
        font-size: .6vw;
    }
}

@media (max-width: 812px) {
    .project-item-line-1 {
        font-size: 2.5vw;
    }
}

.project-item-line-2 {
    font-size: 3vw;
    height: 1em;
    left: -.06em;
    overflow: hidden;
    position: relative;
    will-change: transform;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (min-aspect-ratio: 7/3) {
    .project-item-line-2 {
        font-size: 2vw;
    }
}

@media (max-width: 812px) {
    .project-item-line-2 {
        font-size: 6.5vw;
    }
}

.project-item-line-2-icon {
    position: absolute;
    top: 50%;
    /* Начальное состояние - стрелка скрыта слева */
    left: -1.5em;
    opacity: 0;
    transform: translateY(-50%);
    transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-block;
    height: .8em;
    width: .8em;
    line-height: 1;
    text-align: center;
    font-size: .8em;
    z-index: 10;
}

/* SVG стрелка через псевдоэлемент */
.project-item-line-2-icon::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background-image: url('https://creex.team/assets/images/icons/arrow-right.svg');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.project-item-line-2-inner {
    bottom: .2em;
    display: flex;
    position: relative;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    transform: translateX(0);
}

/* ============================================
   АНИМАЦИИ ДЛЯ КАРТОЧЕК ПРОЕКТОВ И УСЛУГ
   ============================================ */

/* Анимация появления карточек */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.project-item {
    animation: fadeInUp 0.6s ease-out forwards;
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Задержка анимации для каждой карточки */
.project-item:nth-child(1) {
    animation-delay: 0.1s;
}

.project-item:nth-child(2) {
    animation-delay: 0.2s;
}

.project-item:nth-child(3) {
    animation-delay: 0.3s;
}

.project-item:nth-child(4) {
    animation-delay: 0.4s;
}

.project-item:nth-child(5) {
    animation-delay: 0.5s;
}

.project-item:nth-child(6) {
    animation-delay: 0.6s;
}

/* Анимация при наведении на карточку - карточка не поднимается */
/* Карточка остается на месте, только изображение и текст анимируются */

/* Анимация изображения при наведении - эффект zoom и overlay */
/* Добавляем transition к существующим стилям .project-item-image */
.project-item-image {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                filter 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

/* Overlay через псевдоэлемент */
.project-item-main {
    position: relative;
}

.project-item-main::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.15);
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    border-radius: 15px;
    pointer-events: none;
}

.project-item:hover .project-item-image {
    transform: scale(1.08);
}

.project-item:hover .project-item-main::after {
    opacity: 1;
}

/* Категория проекта - без анимации, просто текст */
.project-item-line-1 {
    position: relative;
}

.project-item-line-1-text {
    display: inline-block;
}

.project-item-line-1-clone {
    display: none;
}

/* Анимация основного заголовка при наведении - через клон */
.project-item-line-2-inner {
    position: relative;
}

.project-item-line-2-text,
.project-item-line-2-clone {
    display: inline-block;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.project-item-line-2-clone {
    position: absolute;
    left: 0;
    top: 0;
    transform: translate3d(0, 100%, 0);
    width: 100%;
    /* Клон текста скрыт, так как анимация вращения отключена */
    display: none;
}

/* Убрана анимация вращения текста - текст остается на месте */

/* Увеличение заголовка при наведении */
.project-item:hover .project-item-line-2 {
    transform: scale(1.05);
}

/* Анимация иконки стрелки - выезжает слева направо при наведении, дальше для видимости всей стрелки */
.project-item:hover .project-item-line-2-icon {
    left: 0.5em;
    opacity: 1;
    transform: translateY(-50%);
}

/* Заголовок сдвигается вправо вместе со стрелкой при наведении */
.project-item:hover .project-item-line-2-inner {
    transform: translateX(1.5em);
}

/* Плавная анимация футера - без подъема */
.project-item-footer {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Футер остается на месте, только текст внутри двигается */

/* Анимация для активного состояния (клик) - легкое уменьшение */
.project-item:active {
    transform: scale(0.98);
}

/* Оптимизация производительности */
.project-item,
.project-item-image,
.project-item-footer {
    will-change: transform;
}

/* Отключение анимаций для пользователей с prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .project-item {
        animation: none;
        opacity: 1;
    }
    
    .project-item-line-2-icon {
        opacity: 0;
        left: -1.5em;
        transform: translateY(-50%);
    }
    
    .project-item:hover .project-item-line-2-icon {
        opacity: 1;
        left: 0;
        transform: translateY(-50%);
    }
    
    .project-item:hover {
        transform: none;
    }
    
    .project-item:hover .project-item-image {
        transform: none;
    }
    
    .project-item:hover .project-item-image::before {
        opacity: 0;
    }
    
    .project-item:hover .project-item-line-1,
    .project-item:hover .project-item-line-2 {
        transform: none;
    }
    
    .project-item:hover .project-item-line-2-icon {
        left: 0.5em;
        opacity: 1;
        transform: translateY(-50%);
    }
    
    .project-item:hover .project-item-line-2-inner {
        transform: translateX(1.5em);
    }
    
    .project-item:hover .project-item-footer {
        transform: none;
    }
    
    .project-item:active {
        transform: none;
    }
}

/* CTA Button */
#home-featured-cta {
    align-items: center;
    background: #fff;
    border-radius: 5.3125em;
    box-shadow: 0 6px 10px #0000000a, 0 2px 4px #0000000a;
    color: var(--project-details-btn-text);
    display: flex;
    float: left;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: clamp(.875rem, 1vw, 1.75rem);
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    gap: 1em;
    grid-column: 1/span 12;
    height: 3.375em;
    margin-top: calc(var(--vh, 1vh)*12);
    overflow: hidden;
    padding: 1em 1.5em 1em 1.625em;
    place-self: center;
    pointer-events: auto;
    position: relative;
    text-transform: uppercase;
    transition: background .2s cubic-bezier(.35, 0, 0, 1);
    width: fit-content;
    will-change: transform;
}

@media (max-width: 812px) {
    #home-featured-cta {
        grid-column: 1/span 6;
        margin-bottom: 5em;
        margin-top: 4em;
    }
}

@media (hover: hover) {
    #home-featured-cta:hover {
        background: var(--color-blue);
        color: var(--color-white);
        transition: background .5s cubic-bezier(.35, 0, 0, 1) .3s;
    }

    #home-featured-cta:hover #home-featured-cta-text {
        transform: translate3d(-1.5em, 0, 0);
    }

    #home-featured-cta:hover #home-featured-cta-dot {
        background: var(--color-blue);
        transform: translate3d(4em, 0, 0) scale(32);
    }

    #home-featured-cta:hover #home-featured-cta-arrow {
        transform: translateZ(0);
    }

    #home-featured-cta:hover #home-featured-cta-arrow svg {
        color: var(--color-white);
    }
}

#home-featured-cta-dot {
    background: var(--color-black);
    border-radius: 100px;
    display: inline-block;
    height: .5em;
    position: relative;
    transition: background .5s cubic-bezier(.35, 0, 0, 1), transform .4s cubic-bezier(.35, 0, 0, 1);
    width: .5em;
    z-index: 1;
}

#home-featured-cta-text {
    position: relative;
    transition: color .5s cubic-bezier(.35, 0, 0, 1), transform .4s cubic-bezier(.35, 0, 0, 1);
    z-index: 1;
}

#home-featured-cta-arrow {
    align-items: center;
    border-radius: 100%;
    color: var(--color-blue);
    display: flex;
    height: 1.2em;
    justify-content: center;
    position: absolute;
    right: 1em;
    transform: translate3d(3em, 0, 0);
    transition: transform .4s cubic-bezier(.4, 0, 0, 1);
    width: 1.2em;
    z-index: 1;
}

#home-featured-cta-arrow svg {
    height: 100%;
    transition: color .5s;
    width: 100%;
}

/* Cookie banner toast animation */
@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* CookieConsent CSS Variables - Custom Theme */
:root {
    --cc-bg: #ffffff;
    --cc-primary-color: #1f2937;
    --cc-secondary-color: #4b5563;
    
    --cc-btn-primary-bg: #2563eb;
    --cc-btn-primary-color: #ffffff;
    --cc-btn-primary-border-color: var(--cc-btn-primary-bg);
    --cc-btn-primary-hover-bg: #1d4ed8;
    --cc-btn-primary-hover-color: #ffffff;
    --cc-btn-primary-hover-border-color: var(--cc-btn-primary-hover-bg);
    
    --cc-btn-secondary-bg: #f3f4f6;
    --cc-btn-secondary-color: var(--cc-primary-color);
    --cc-btn-secondary-border-color: #d1d5db;
    --cc-btn-secondary-hover-bg: #e5e7eb;
    --cc-btn-secondary-hover-color: #000000;
    --cc-btn-secondary-hover-border-color: #d1d5db;
    
    --cc-separator-border-color: #e5e7eb;
    
    --cc-toggle-on-bg: var(--cc-btn-primary-bg);
    --cc-toggle-off-bg: #9ca3af;
    --cc-toggle-on-knob-bg: #ffffff;
    --cc-toggle-off-knob-bg: var(--cc-toggle-on-knob-bg);
    
    --cc-toggle-enabled-icon-color: var(--cc-bg);
    --cc-toggle-disabled-icon-color: var(--cc-bg);
    
    --cc-toggle-readonly-bg: #d1d5db;
    --cc-toggle-readonly-knob-bg: #fff;
    --cc-toggle-readonly-knob-icon-color: var(--cc-toggle-readonly-bg);
    
    --cc-section-category-border: var(--cc-cookie-category-block-bg);
    
    --cc-cookie-category-block-bg: #f9fafb;
    --cc-cookie-category-block-border: #e5e7eb;
    --cc-cookie-category-block-hover-bg: #f3f4f6;
    --cc-cookie-category-block-hover-border: #d1d5db;
    --cc-cookie-category-expanded-block-bg: transparent;
    --cc-cookie-category-expanded-block-hover-bg: #e5e7eb;
    
    --cc-overlay-bg: rgba(0, 0, 0, 0.65);
    --cc-webkit-scrollbar-bg: var(--cc-section-category-border);
    --cc-webkit-scrollbar-hover-bg: var(--cc-btn-primary-hover-bg);
    
    --cc-footer-bg: var(--cc-btn-secondary-bg);
    --cc-footer-color: var(--cc-secondary-color);
    --cc-footer-border-color: #e5e7eb;
}

/* CookieConsent banner styling - toast style in bottom-left corner */
#cc-main {
    animation: slideUp 0.3s ease-out;
    max-width: 32rem !important;
    width: auto !important;
    min-width: 24rem !important;
}

#cc-main .cm {
    position: fixed !important;
    bottom: 1rem !important;
    left: 1rem !important;
    right: auto !important;
    top: auto !important;
    max-width: 32rem !important;
    width: auto !important;
    min-width: 24rem !important;
    border-radius: 1rem !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}

#cc-main .cm-wrapper {
    max-width: 32rem !important;
    width: auto !important;
    min-width: 24rem !important;
}

#cc-main .cm__inner {
    max-width: 32rem !important;
    width: auto !important;
    min-width: 24rem !important;
}

/* Responsive adjustments for cookie banner */
@media (max-width: 640px) {
    #cc-main {
        bottom: 1rem !important;
        left: 1rem !important;
        right: 1rem !important;
        max-width: 100% !important;
    }
}

/* Form Messages Styles - Success and Error */
.form-message {
    position: relative;
    width: 100%;
    opacity: 0;
    transform: translateY(-10px) scale(0.95);
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.form-message--visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Card replacement animation */
[data-card] {
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

[data-card].card--replacing {
    opacity: 0;
    transform: scale(0.95) translateY(-10px);
}

.form-message__content {
    display: flex;
    flex-direction: column;
}

.form-message__text {
    flex: 1;
    min-width: 0;
}

.form-message--success .form-message__text {
    color: #1f2937;
}

.form-message--error .form-message__text {
    color: #1f2937;
}

.form-message--success .form-message__text p,
.form-message--error .form-message__text p {
    margin: 0;
    line-height: 1.6;
}

/* Field Error Styles */
.field-error {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    opacity: 0;
    transform: translateY(-5px) scale(0.95);
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    animation: shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97);
}

.field-error svg {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    animation: pulse 0.6s ease-in-out;
}

/* PIN Input Styles */
.pin-digit {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pin-digit:focus {
    transform: scale(1.05);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.pin-digit.border-red-600 {
    animation: shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
}

.pin-digit:not(:placeholder-shown) {
    animation: popIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* PIN Error Message */
#pinError {
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#pinError:not(.hidden) {
    animation: slideDown 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animations */
@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(-4px);
    }
    20%, 40%, 60%, 80% {
        transform: translateX(4px);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
}

@keyframes popIn {
    0% {
        transform: scale(0.8);
        opacity: 0.5;
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes slideDown {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Card replacement animation */
.card-replace-enter {
    animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.card-replace-exit {
    animation: fadeOutDown 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeOutDown {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
}

/* Responsive adjustments */
@media (min-width: 768px) {
    .form-message {
        border-radius: 1.25rem;
    }
    
    .form-message__icon {
        width: 2.5rem;
        height: 2.5rem;
    }
    
    .form-message__icon svg {
        width: 1.5rem;
        height: 1.5rem;
    }
    
    .form-message__content {
        gap: 1.25rem;
    }
}

/* Rate Us Page Styles */

/* Star Rating Styles */
.star-rating .star-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: transform 0.2s;
}

.star-rating .star-btn:hover {
    transform: scale(1.1);
}

.star-rating .star-btn:active {
    transform: scale(0.95);
}

.star-rating .star-btn svg {
    transition: all 0.2s;
}

/* Scale Rating (0-10) Styles */
.scale-rating .scale-btn {
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border: 2px solid #e5e7eb;
    border-radius: 0.5rem;
    background: #f9fafb;
    color: #374151;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scale-rating .scale-btn:hover {
    background: #e5e7eb;
    border-color: #d1d5db;
}

.scale-rating .scale-btn:active {
    transform: scale(0.95);
}

.scale-rating .scale-btn.bg-blue-600 {
    background-color: #2563eb !important;
    color: white !important;
    border-color: #2563eb !important;
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .scale-rating .scale-btn {
        min-width: 2.25rem;
        height: 2.25rem;
        padding: 0.375rem 0.5rem;
        font-size: 0.75rem;
    }
}

/* Rating question spacing */
.rating-question {
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e5e7eb;
}

.rating-question:last-of-type {
    border-bottom: none;
}



