* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    height: 100%;
}
body {
    overflow: hidden;
    font-family: PPNeueMontreal, Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: 15px;
    height: 100%;
    touch-action: pan-y;
    position: relative;
    color: #000;
}
a,
.purple {
    color: #9105b3;
}
a:hover {
    text-decoration: underline;
}
.black-link,
a.black-link {
    color: #000;
}
a.black-link:hover {
    color: #9105b3;    
}
#sectionsContainer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    overflow: hidden;
    z-index: 1;
    -webkit-perspective: 1200px;
    perspective: 1200px;
}

@font-face {
    font-display: swap;
    font-family: PPNeueMontreal;
    font-style: normal;
    font-weight: 400;
    src: url(fonts/PPNeueMontreal-Regular.woff2) format("woff2"), url(fonts/PPNeueMontreal-Regular.woff) format("woff")
}

@font-face {
    font-display: swap;
    font-family: GraphikLCG;
    font-style: normal;
    font-weight: 500;
    src: url(fonts/GraphikLCG-Medium.woff2) format("woff2"), url(fonts/GraphikLCG-Medium.woff) format("woff"), url(fonts/GraphikLCG-Medium.otf) format("opentype")
}
@font-face {
    font-display: swap;
    font-family: TTFors;
    font-style: normal;
    font-weight: 500;
    src: url(fonts/TTFors-Medium.woff2) format("woff2"), url(fonts/TTFors-Medium.woff) format("woff")
}
.grid {
    display: grid;
    gap: 30px;
}

.cols-2 {
    grid-template-columns: repeat(2, 1fr);
}
.cols-2-1 {
    grid-template-columns: 1fr 33.333%;
}
.flex-btns {
    display:flex;
    justify-content: space-between;
}
.formbg {
    background-image: url(img/royallab.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
/* ========== ФОН С ИЗОБРАЖЕНИЯМИ ========== */
.bg-container {
    position: fixed;
    top: -5%;
    left: -5%;
    width: 110%;
    height: 110%;
    z-index: 0;
    transition: transform 0.05s linear;
    will-change: transform;
}

.bg-layer {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: opacity 0.9s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity;
}
.ncolor {
    color: #b7b1a2;
}
/* Фоновые изображения (чередование) */
.bg-layer[data-bg="0"] {
    background-image: url('img/bg00.jpg');
}

.bg-layer[data-bg="1"] {
    background-image: url('img/01.PNG');
}

.bg-layer[data-bg="2"] {
    background-image: url('img/02.PNG');
}

.bg-layer[data-bg="3"] {
    background-image: url('img/03.PNG');
}

.bg-layer[data-bg="4"] {
    background-image: url('img/04.PNG');
}

.bg-layer[data-bg="5"] {
    background-image: url('img/05.PNG');
}

.bg-layer[data-bg="6"] {
    background-image: url('img/06.PNG');
}

.bg-layer[data-bg="7"] {
    background-image: url('img/07.PNG');
}

.bg-layer[data-bg="8"] {
    background-image: url('img/08.PNG');
}

.bg-layer[data-bg="9"] {
    background-image: url('img/09.PNG');
}
.bg-layer[data-bg="10"] {
    background-image: url('img/10.PNG');
}
.bg-layer[data-bg="11"] {
    background-image: url('img/10.PNG');
}
.bg-layer[data-bg="12"] {
    background-image: url('img/01-1.jpg');
}
.bg-layer[data-bg="13"] {
    background-image: url('img/01-2.jpg');
}
.bg-layer[data-bg="14"] {
    background-image: url('img/01-3.jpg');
}
.bg-layer[data-bg="15"] {
    background-image: url('img/01-4.jpg');
}
.bg-layer[data-bg="16"] {
    background-image: url('img/01-1.jpg');
}
.bg-layer[data-bg="17"] {
    background-image: url('img/01-4.jpg');
}
.bg-layer[data-bg="18"] {
    background-image: url('img/09.PNG');
}
.bg-layer {
    background-size: cover;
    background-position: center;
}
.color {
    color: rgb(186, 143, 113);
}
/* ========== СЕКЦИИ ========== */
.section {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.9s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.9s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
    z-index: 1;
}

.section.horizontal {
    transform: translateX(100%) rotateY(25deg) scale(0.9);
    opacity: 0;
}

.section.horizontal.active {
    transform: translateX(0) rotateY(0) scale(1);
    opacity: 1;
    z-index: 10;
}

.section.horizontal.prev {
    transform: translateX(-100%) rotateY(-25deg) scale(0.9);
    opacity: 0;
    z-index: 5;
}

.section.vertical {
    transform: translateY(100%);
    opacity: 1;
}

.section.vertical.active {
    transform: translateY(0);
    z-index: 10;
}

.section.vertical.prev {
    transform: translateY(-100%);
    z-index: 5;
}

.section:first-child {
    transform: translateX(0) translateY(0);
    opacity: 1;
}

.section.last {
    transform: translateY(100%);
}

.section.last.active {
    transform: translateY(0);
}

.section.last .counter-number,
.section.last .btn-detail {
    display: none !important;
}
/* ========== КАРТОЧКА ========== */
.card-3d {
    width: 50vw;
    height: 60vh;
    position: relative;
    will-change: transform;
    text-align: center;
    z-index: 5;
    /* Safari fix: do NOT use preserve-3d on card itself — causes clipping when parent transforms */
    transform-style: flat;
    -webkit-transform-style: flat;
}
.section .card-3d {
    /* Safari clip fix: flat transform-style prevents clipping during 3D mouse movement */
    -webkit-transform-style: flat;
    transform-style: flat;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
/* Safari fix: section must NOT use preserve-3d, otherwise card clips at its bounds */
.section {
    -webkit-transform-style: flat;
    transform-style: flat;
}
/* Video sections: overflow hidden on video wrapper, but not on section itself */
.section > [style*="overflow:hidden"],
.section > div[style*="overflow: hidden"] {
    -webkit-transform-style: flat;
    transform-style: flat;
}
img {
    max-width: 100%;
    height: auto;
}

.card-3d img {
    height: 100%;
    width: auto;
    display: block;
    margin: 0 auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* ========== АНИМАЦИИ ПОЯВЛЕНИЯ ========== */
@keyframes enterHorizontal {
    0% {
        opacity: 0;
        transform: translateX(-150%) rotateY(0deg);
    }

    100% {
        opacity: 1;
        transform: translateX(0) rotateY(0deg);
    }
}

@keyframes enterHorizontalRight {
    0% {
        opacity: 0;
        transform: translateX(150%) rotateY(0deg);
    }

    100% {
        opacity: 1;
        transform: translateX(0) rotateY(0deg);
    }
}

@keyframes enterDiagonal {
    0% {
        opacity: 0;
        transform: translate(-120%, 80%) scale(0.7) rotate(-5deg);
    }

    100% {
        opacity: 1;
        transform: translate(0, 0) scale(1) rotate(0deg);
    }
}

@keyframes enterDiagonalTR {
    0% {
        opacity: 0;
        transform: translate(120%, -80%) scale(0.7) rotate(5deg);
    }

    100% {
        opacity: 1;
        transform: translate(0, 0) scale(1) rotate(0deg);
    }
}

@keyframes enterArc {
    0% {
        opacity: 0;
        transform: translateY(120%) rotateX(-15deg) scale(0.8);
    }

    50% {
        opacity: 0.5;
        transform: translateY(60%) rotateX(5deg) scale(0.9);
    }

    100% {
        opacity: 1;
        transform: translateY(0) rotateX(0deg) scale(1);
    }
}

@keyframes enterArcTop {
    0% {
        opacity: 0;
        transform: translateY(-120%) rotateX(15deg) scale(0.8);
    }

    50% {
        opacity: 0.5;
        transform: translateY(-60%) rotateX(-5deg) scale(0.9);
    }

    100% {
        opacity: 1;
        transform: translateY(0) rotateX(0deg) scale(1);
    }
}

@keyframes enterScale {
    0% {
        opacity: 0;
        transform: scale(0.3) rotateY(-20deg);
    }

    70% {
        opacity: 0.7;
        transform: scale(1.05) rotateY(2deg);
    }

    100% {
        opacity: 1;
        transform: scale(1) rotateY(0deg);
    }
}

@keyframes enterRotate {
    0% {
        opacity: 0;
        transform: rotate(180deg) scale(0.5);
    }

    100% {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
}

/* ========== АНИМАЦИИ ИСЧЕЗНОВЕНИЯ ========== */
@keyframes exitHorizontal {
    0% {
        opacity: 1;
        transform: translateX(0);
    }

    100% {
        opacity: 0;
        transform: translateX(-150%);
    }
}

@keyframes exitHorizontalRight {
    0% {
        opacity: 1;
        transform: translateX(0);
    }

    100% {
        opacity: 0;
        transform: translateX(150%);
    }
}

@keyframes exitDiagonal {
    0% {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }

    100% {
        opacity: 0;
        transform: translate(120%, -80%) scale(0.7) rotate(5deg);
    }
}

@keyframes exitDiagonalTR {
    0% {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }

    100% {
        opacity: 0;
        transform: translate(-120%, 80%) scale(0.7) rotate(-5deg);
    }
}

@keyframes exitArc {
    0% {
        opacity: 1;
        transform: translateY(0) rotateX(0deg);
    }

    100% {
        opacity: 0;
        transform: translateY(120%) rotateX(-15deg) scale(0.8);
    }
}

@keyframes exitArcTop {
    0% {
        opacity: 1;
        transform: translateY(0) rotateX(0deg);
    }

    100% {
        opacity: 0;
        transform: translateY(-120%) rotateX(15deg) scale(0.8);
    }
}

@keyframes exitScale {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    100% {
        opacity: 0;
        transform: scale(0.3) rotateY(20deg);
    }
}

@keyframes exitRotate {
    0% {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }

    100% {
        opacity: 0;
        transform: rotate(-180deg) scale(0.5);
    }
}

/* Классы анимаций - используют !important чтобы переопределить встроенный transform */
.card-3d.enter-horizontal {
    animation: enterHorizontal 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-horizontal-right {
    animation: enterHorizontalRight 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-diagonal {
    animation: enterDiagonal 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-diagonal-tr {
    animation: enterDiagonalTR 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-arc {
    animation: enterArc 0.85s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-arc-top {
    animation: enterArcTop 0.85s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-scale {
    animation: enterScale 0.7s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.enter-rotate {
    animation: enterRotate 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards !important;
}

.card-3d.exit-horizontal {
    animation: exitHorizontal 0.6s ease-in forwards !important;
}

.card-3d.exit-horizontal-right {
    animation: exitHorizontalRight 0.6s ease-in forwards !important;
}

.card-3d.exit-diagonal {
    animation: exitDiagonal 0.6s ease-in forwards !important;
}

.card-3d.exit-diagonal-tr {
    animation: exitDiagonalTR 0.6s ease-in forwards !important;
}

.card-3d.exit-arc {
    animation: exitArc 0.6s ease-in forwards !important;
}

.card-3d.exit-arc-top {
    animation: exitArcTop 0.6s ease-in forwards !important;
}

.card-3d.exit-scale {
    animation: exitScale 0.5s ease-in forwards !important;
}

.card-3d.exit-rotate {
    animation: exitRotate 0.6s ease-in forwards !important;
}
.vid-bg {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}
.vid-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* ========== ОСТАЛЬНЫЕ СТИЛИ ========== */
.section[data-index="0"] .counter,
.section[data-index="0"] .btn-detail {
    display: none !important;
}

.counter.hidden {
    opacity: 0;
    visibility: hidden;
}

.content {
    position: absolute;
    z-index: 20;
    color: #000;
    width: 100%;
    padding: 7vw;
    height: 100%;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.full-width .content {
    padding-left: 1vw;
    padding-right: 1vw;
}
.section1 .content,
.sectionexp .content {
    max-width: none;
    width: max-content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
    padding: 0;
}
.right,
.content.right {
    right: 0;
    text-align: right;
    margin-left: auto;
}

.content.left {
    left: 0;
    text-align: left;
}

.content.center {
    text-align: center;
    left: 50%;
    transform: translateX(-50%);
    justify-content: center;
}
.logo-label {
    font-size: 40px;
    color: #fff;
    font-weight: bold;
    text-align: right;
    position: relative;
    top:25%;
}
.logo-label-center .logo-label {
    text-align: center;
    position: relative;
    top: 0;    
}
.overline,
.title,
.subtitle,
.logo-label,
.btn-restart {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1), transform 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1);
}

.section.active .overline {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.3s;
}

.section.active .title {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.45s;
    max-width: max-content;
}
.section.active .title.fw,
.section.active .desc.fw {
    max-width: 80%;
}
.section.active .center-center.title {
    max-width: none;
    width: 100%;
}
.w50 {
    width: 50%;
}
.section.active .subtitle {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.6s;
}

.section.active .logo-label {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.2s;
}

.section.active .btn-restart {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.75s;
}

.overline {
    font-size: 0.8rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 1rem;
}

.title {
    font-size: 50px;
    line-height: 1;
    font-weight: 600;
    text-transform: uppercase;
}
.content .title {
    text-transform: none;
}
.big {
    font-size: 110px;
    font-weight: 100;
}
.medbig {
    font-size: 90px;
}
.title span {
    font-size: 24px;
    display: block;
    font-weight: 500;
    margin-top: 10px;
    line-height: 1.3;
}
.title .cptl {
    text-transform: none;
}
.desc {
    color: #000;
    line-height: 1.3;
    text-transform: uppercase;
    max-width: 40%;
}
.desc strong {
    margin-bottom: 10px;
}
.desc ul {
    margin-left: 14px;
}
.desc ul li {
    margin-bottom: 3px;
}
.desc ul li:last-child {
    margin-bottom: 0;
}
.desc p {
    margin-bottom: 10px;
}
.desc p:last-child {
    margin-bottom: 0;
}
.steps {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.modal-full-content .steps {
    color: #fff;
}
.step {
    line-height: 1.2;
}
.step strong {
    display: block;
}
strong {
    font-weight: 600;
}
.menu-btn,
.btn-detail,
.btn-fos {
    border: none;
}
.ftrsection .btn-arrow.right-bottom {
    box-shadow: 0px 0px 50px 0px rgba(34, 60, 80, 0.3);
    flex-direction: column-reverse;
}
.btn-detail,
.ftrsection .btn-arrow.right-bottom,
.neonbtn,
.btn-fos {
    width: 120px;
    height: 120px;
    position: absolute;
    bottom: 1vw;
    left: 2vw;
    z-index: 20;
    padding: 10px;
    cursor: pointer;
    background-color: #fff;
    border-radius: 30px;
    font-size: 0.7rem;
    -webkit-transition: 0.5s all;
    -moz-transition: 0.5s all;
    -ms-transition: 0.5s all;
    -o-transition: 0.5s all;
    transition: 0.5s all;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    letter-spacing: 1px;
    opacity: 0;
    transform: translateY(20px);
    color: #000;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0px 10px 60px 0px rgba(0, 0, 0, 0.07);
}
.btn-fos.black-btn {
    background-color: #000;
    color: #fff;
}
.black-btn .btn-plus {
    color: #000;
    background-color: #fff;
}
.btn-detail.btn {
    width: unset!important;
    height: unset!important;
    position: relative!important;
    bottom: 0;
    left: 0;
    transform: translateY(0)!important;
    display: inline-block;
    font-size: 13px!important;
    opacity: 1!important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: none;
}
.btn-detail.btn:hover {
    border-radius: 30px!important;
}
.neonbtn {
    text-align: center;
    background-color: transparent;
    color: #fff;
    background-image: linear-gradient(to left, #7b0197, #9003a9, #a705bb, #be06cd, #d605df, #d305df, #d106de, #ce06de, #b107ca, #9505b6, #7a03a2, #60008d);
}
.lc .btn-detail,
.rc .btn-detail,
.lc .btn-fos {
    bottom: auto;
}
.ftrsection .btn-arrow.right-bottom {
    font-size: 1rem;
    bottom: auto;
    left: auto;
    right: 2vw;
}
.ftrsection .btn-arrow .arr-label {
    font-size: 0.7rem!important;
    color: #fff; 
    opacity: 1;  
}
.ftrsection .btn-arrow.right-bottom {
    background-color: #000;
    color: #fff;
    box-shadow: none;
}
.desc .btn-detail,
.desc .neonbtn,
.btn-fos {
    position: relative;
    bottom: 0;
    left: 0;
}
.right-top,
.left-top,
.left-bottom,
.right-bottom,
.center-top,
.center-center {
    position: absolute;
    max-width: 30%;
}
.center-top {
    left: 50%;
    transform: translateX(-50%)!important;
}
.center-center {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%)!important;
}
.center-center-top {
    position: absolute;
    left: 50%;
    top: 20%;
    transform: translate(-50%, 0);    
}
.center-right-top {
    position: absolute;
    top: 20%;
    right: 10vw;
}
.left-top {
    top: 1vw;
    left: 10vw;
}

.right-top {
    top: 1vw;
    right: 2vw;
    left: auto;
}

.left-bottom {
    left: 4vw;
    bottom: 1vw;
}
.desc.left-bottom {
    left: 10vw;
}
.left-bottom.lc,
.right-bottom.rc,
.desc.left-bottom,
.desc.right-bottom,
.ftrsection .btn-arrow.right-bottom {
    max-width: 250px;
}
.desc.left-bottom.hw {
    left: 3vw;
}
.desc.left-bottom.hw,
.desc.right-bottom.rc.hw {
    max-width: 30%;
}
.desc.right-bottom.rc.hw {
    right: 3vw;
}
.center-top.hw,
.center-center.hw {
    max-width: 60%!important;
}
.left-bottom.lc,
.right-bottom.rc,
.ftrsection .btn-arrow.right-bottom {
    bottom: auto;
    top: 50%;
    transform: translateY(-50%)!important;
} 
.podl {
    background-color: rgb(3, 5, 90, 0.85);
    padding: 25px;
    border-radius: 10px;
}
.title .desc {
    font-size: 15px;
    margin-top: 50px;
    max-width: none;
    font-weight: 400;
    line-height: 1.5;
}
.title.center-center {
    text-align: center;
}
.funcs .desc.right-top {
    top: 50%;
    transform: translateY(-50%)!important;
}
@media (min-width: 2200px) {
    .left-bottom.lc,
    .right-bottom.rc,
    .ftrsection .btn-arrow.right-bottom {
        bottom: auto;
        top: 50%;
        transform: translateY(-50%);
    } 
    .left-bottom.lc {
        left: 17vw;
    }
    .rt .left-bottom.lc {
        left: 4vw;
    }
    .right-bottom.rc,
    .ftrsection .btn-arrow.right-bottom {
        right: 17vw;
    }
    .left-bottom.lc,
    .right-bottom.rc,
    .desc.left-bottom,
    .desc.right-bottom,
    .ftrsection .btn-arrow.right-bottom {
        max-width: 420px;
    }
    .center-center-top {
        top: 10%;
    }
    .page-text h2 {
        margin-bottom: 75px;
    }
    .page-text {
        font-size: 50px;
    }
    .dop-text h2 {
        margin-bottom: 60px;
    }
    .dop-text {
        font-size:44px;
    }
}
.desc:has(p) .btn-detail,
.desc:has(p) .neonbtn,
.desc:has(p) .btn-fos {
    margin-top: 50px;
}
.right-bottom {
    right: 2vw;
    bottom: 1vw;
    left: auto;
}
.desc.right-bottom {
    right: 10vw;
}
.madar .desc {
    padding: 20px;
    background-color: rgba(18, 34, 101, 0.9);
    border-radius: 15px;
}
.madar .madr.desc {
    padding: 0;
    background-color: transparent;
    border-radius: 0;
}
.madar .desc.right-bottom {
    right: 2vw;
}
.center-top {
   top: 2vw;
   left: 50%;
   transform: translateX(-50%);
}
.center-bottom {
   top: 2vw;
   left: 50%;
   transform: translateX(-50%);
}
.section.active .btn-detail,
.section.active .neonbtn,
.section.active .btn-fos {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0;
}

.fullvid {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.white,
.white .desc,
.white .title {
    color: #fff;
}
.orange {
    color: #f88d1c;
}
.btn-plus {
    margin-left: auto;
    width: 28px;
    height: 28px;
    color: #fff;
    background-color: #000;
    text-align: center;
    line-height: 25px;
    border-radius: 100%;
    font-size: 16px;
    -webkit-transition: 0.2s all;
    -moz-transition: 0.2s all;
    -ms-transition: 0.2s all;
    -o-transition: 0.2s all;
    transition: 0.2s all;
}

.btn-detail:hover .btn-plus,
.neonbtn:hover .btn-plus,
.btn-fos:hover .btn-plus {
    transform: rotate(45deg);
}

.section.active .btn-detail:hover,
.section.active .neonbtn:hover,
.section.active .btn-fos {
    border-radius: 20px;
}

.last-content {
    text-align: center;
    z-index: 20;
}

.last-title {
    font-size: clamp(4rem, 10vw, 10rem);
    margin-bottom: 2rem;
    letter-spacing: 0.05em;
}

.last-subtitle {
    font-size: 1.2rem;
    opacity: 0.8;
    margin-bottom: 3rem;
}

.btn-restart {
    padding: 15px 40px;
    background: rgba(255, 255, 255, 0.2);
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: 50px;
    color: white;
    cursor: pointer;
    font-size: 1rem;
    letter-spacing: 0.2em;
    transition: all 0.3s;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.btn-restart:hover {
    background: white;
    color: #1a1a2e;
    border-color: white;
}

.menu-btn {
    position: fixed;
    top: 25px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
    padding: 8px 16px;
    background: #000;
    color: #fff;
    border-radius: 40px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s;
}

.counter {
    position: fixed;
    top: 0;
    left: 20px;
    z-index: 100;
    height: 300px;
    overflow: hidden;
    pointer-events: none;
}

.counter-track {
    display: flex;
    flex-direction: column;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    -webkit-transition: -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.counter-digit {
    font-size: 300px;
    line-height: 1;
    height: 300px;
    display: flex;
    align-items: center;
    color: #000;
}
.counter-white .counter-digit {
    color: #fff;
}
.counter.hidden {
    opacity: 0;
    transition: opacity 0.3s;
}

.modal-full {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(10, 10, 26, 0.95);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
}
.modal-full::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        #1a0b2e 0%,
        #2d1b4e 15%,
        #1e3a5f 30%,
        #2d1b4e 45%,
        #4a2080 60%,
        #1e3a5f 75%,
        #2d1b4e 90%,
        #1a0b2e 100%
    );
    background-size: 400% 400%;
    animation: livingGradient 10s ease infinite;
    z-index: -2;
}
.modal-full::after {
    content: '';
    position: absolute;
    inset: 0;
    background: 
        radial-gradient(circle at 20% 30%, rgba(120, 60, 200, 0.5), transparent 60%),
        radial-gradient(circle at 80% 70%, rgba(200, 100, 220, 0.4), transparent 50%),
        radial-gradient(circle at 40% 80%, rgba(100, 80, 255, 0.3), transparent 40%),
        radial-gradient(circle at 70% 20%, rgba(255, 120, 200, 0.35), transparent 55%),
        radial-gradient(circle at 10% 90%, rgba(80, 200, 255, 0.25), transparent 45%);
    animation: pulseGlow 8s ease-in-out infinite alternate, floatGradients 12s ease-in-out infinite;
    z-index: -1;
}

/* Третий слой - движущиеся цветные пятна */
.modal-full .gradient-overlay {
    position: absolute;
    inset: 0;
    background: 
        radial-gradient(ellipse at 50% 50%, rgba(255, 200, 100, 0.15), transparent 50%),
        radial-gradient(ellipse at 80% 30%, rgba(100, 255, 200, 0.12), transparent 45%),
        radial-gradient(ellipse at 20% 70%, rgba(255, 100, 150, 0.1), transparent 40%);
    animation: shiftColors 15s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
}

@keyframes livingGradient {
    0% { background-position: 0% 0%; }
    25% { background-position: 50% 100%; }
    50% { background-position: 100% 50%; }
    75% { background-position: 50% 0%; }
    100% { background-position: 0% 0%; }
}

@keyframes pulseGlow {
    0% { 
        opacity: 0.3;
        transform: scale(1);
    }
    50% { 
        opacity: 0.7;
        transform: scale(1.05);
    }
    100% { 
        opacity: 0.5;
        transform: scale(1.02);
    }
}

@keyframes floatGradients {
    0% {
        background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
    }
    25% {
        background-position: 10% 20%, 5% 15%, 15% 5%, 20% 10%, 5% 25%;
    }
    50% {
        background-position: 20% 10%, 15% 5%, 5% 15%, 10% 20%, 15% 10%;
    }
    75% {
        background-position: 5% 25%, 20% 10%, 10% 20%, 5% 15%, 20% 5%;
    }
    100% {
        background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
    }
}

@keyframes shiftColors {
    0% {
        filter: hue-rotate(0deg) brightness(1);
    }
    33% {
        filter: hue-rotate(30deg) brightness(1.1);
    }
    66% {
        filter: hue-rotate(60deg) brightness(0.95);
    }
    100% {
        filter: hue-rotate(0deg) brightness(1);
    }
}
.modal-full.active {
    opacity: 1;
    visibility: visible;
}

.modal-full-content {
    background-color: #000000;
    width: 36.33333%;
    margin-left: auto;
    transform: translateY(30px);
    transition: transform 0.4s ease 0.1s;
    border-radius: 40px;
    padding: 30px;
    height: 100%;
    min-height: max-content;
}

.modal-full.active .modal-full-content {
    transform: translateY(0);
}

.modal-full-content h2,
.modal-full-content p,
.modal-full-content ul,
.modal-full-content ol,
.txt-slider-page h2,
.txt-slider-page p,
.txt-slider-page ul,
.txt-slider-page ol,
.txt-slider-page {
    color: #fff;
}
.csh {
    font-family: "Chiron Sung HK", serif;
}
.pat {
    font-family: "Pattaya", sans-serif;
}
.grv {
    font-family: "Great Vibes", cursive;
}
.cormi {
    font-family: "Cormorant Infant", serif;
}
.page-text h2,
.dop-text h2,
.black h2,
.light h2 {
    text-transform: uppercase;
    font-size: 50px;
    margin-bottom: 50px;
    max-width: 80%;
    line-height: 1.2;
}
.dop-text h2 {
    line-height: 1;
    max-width: 90%;
}
.dop-text ol {
    margin-left: 20px;
}
.page-text h2.center {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.page-text {
    width: 100%;
    max-width: 60%;
}
@media (min-width: 1920px) {
    .page-text {
        max-width: 65%;
    }    
}
@media (min-width: 2400px) {
    .page-text {
        max-width: 70%;
    }  
}
.page-text {
    font-size: 30px;
}
.page-text p,
.page-text ul {
    line-height: 1.1;
    margin-bottom: 15px;
}
.page-text ul::marker {
    color: #7f53a2;
}
.page-text p:last-child,
.page-text ul:last-child {
    margin-bottom: 0;
}
.page-text ul {
    margin-left: 20px;
}
.modal-full-content ul,
.modal-full-content ol {
    margin-left: 20px;
    margin-bottom: 15px;
}
.modal-full-content ul:last-child,
.modal-full-content ol:last-child {
    margin-bottom: 0;
}
.modal-full-content ul li,
.modal-full-content ol li {
    line-height: 1.6;
}
/* ===== СЛАЙДЕР ДЛЯ МОДАЛЬНОГО ОКНА ===== */
.modal-full-layout {
    display: flex;
    width: 100%;
    padding-left: 1%;
    padding-right: 1%;
    height: 90%;
    gap: 30px;
    transform: translateY(30px);
    transition: transform 0.4s ease 0.1s;
}

.modal-full.active .modal-full-layout {
    transform: translateY(0);
}
.modal-form-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all .3s ease;
    background-color: rgba(0,0,0,0.7);
}
.modal-form-overlay.active {
    opacity: 1;
    visibility: visible;
}
.modal-form-box {
    background: #0a0a1a;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 30px;
    padding: 0;
    width: 90%;
    max-width: 1280px;
    position: relative;
    z-index: 11;
    color: #f4f4f4;
}
.p40 {
    padding: 40px;
}
.modal-form-box h3 {
    color: #f4f4f4;
    font-size: 24px;
    margin-bottom: 24px;
    text-align: center;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.modal-form-box h3 svg {
    width: 30px;
    height: 25px;
    fill: #f1f1f1;
}
.modal-form-box .grid {
    gap: 30px;
}
.modal-form-box p {
    line-height: 1.3;
    font-size: 17px;
}
.modal-form-field {
    margin-bottom: 16px;
}
.modal-form-field input,
.modal-form-field textarea {
    width: 100%;
    background: rgba(255,255,255,0.08);
    border: 1.5px solid rgba(255,255,255,0.15);
    border-radius: 12px;
    color: #fff;
    padding: 14px 18px;
    font-size: 15px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.2s;
}
.modal-form-field input::placeholder,
.modal-form-field textarea::placeholder {
    color: rgba(255,255,255,0.35);
}
.modal-form-field input:focus,
.modal-form-field textarea:focus {
    border-color: rgba(255,255,255,0.5);
}
.modal-form-field textarea {
    resize: vertical;
    min-height: 80px;
}
.modal-form-submit {
    width: 100%;
    padding: 16px;
    background: #fff;
    color: #000;
    border: none;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    margin-top: 8px;
    transition: background 0.2s;
}
.modal-form-submit:hover {
    background: #eee;
}
.modal-form-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 28px;
    height: 28px;
    background: rgba(255,255,255,0.1);
    border: none;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}
.modal-form-close:hover {
    background: rgba(255,255,255,0.2);
}
.modal-form-msg {
    margin-top: 14px;
    font-size: 14px;
    text-align: center;
    min-height: 20px;
}
.form-note {
    margin-bottom: 10px;
    font-size: 12px;
    color: #f4f4f4;
}
.privacy-checkbox {
    margin-bottom: 10px;

}
.checkbox-wrapper {
    display: flex;
    gap: 10px;
    cursor: pointer;
    font-size: 13px;
    align-items: flex-start;
}
.modal-form-msg.ok  { color: #4ade80; }
.modal-form-msg.err { color: #f87171; }
.modal-slider {
    flex: 1.2;
    position: relative;
    border-radius: 40px;
    overflow: hidden;
}
.simple-slider {
    position: relative;
    width: 44%;
    margin: 0 auto;
    border-radius: 20px;
    padding-bottom: 40px;
}
@media (min-width: 1281px) and (max-width: 1400px) and (min-height: 900px) and (max-height: 1024px) {
    .simple-slider {
        width: 54%;
        margin-top: 8%;
    }
}
@media (min-width: 2300px) {
    .simple-slider {
        margin-top: 80px;
    }
}
.slider-track {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 133.333%;
}
.slider-track img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity .4s ease;
    border-radius: 20px;
}

.slider-track img.active {
    opacity: 1;
}

.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    color: white;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slider-arrow:hover {
    background: rgba(255, 255, 255, 0.4);
    transform: translateY(-50%) scale(1.05);
}
.slider-arrow.prev {
    left: -20px;
}
.slider-arrow.next {
    right: -20px;
}
.slider-dots {
    position: absolute;
    top: 100%; 
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 12px;
    display: flex;
    gap: 12px;
    z-index: 10;
}

.slider-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

.slider-dot.active {
    width: 24px;
    border-radius: 4px;
    background: white;
}
.slider-arrow[style*="display: none"],
.slider-arrow[style*="display:none"] {
    display: none !important;
}

.slider-dots[style*="display: none"],
.slider-dots[style*="display:none"] {
    display: none !important;
}
.dop-text {
    font-size: 20px;
}
body.modal-open .counter {
    z-index: 999;
}

body.modal-open .counter-digit {
    color: #fff;
}

.modal-full-content h2 {
    font-size: 40px;
    color: white;
    margin-bottom: 2rem;
}
.modal-full-content p:first-child {
    padding-top: 15px;
    border-top: 1px solid #222;
}
.modal-full-content p,
.modal-full-content ul,
.modal-full-content ol {
    line-height: 1.6;
    margin-bottom: 10px;
    font-size: 17px;
}
.modal-full-content p:last-child {
    margin-bottom: 0;
}
.txt-slider-page.active {
    max-height: 88%;
}
.txt-slider-counter {
    display: none;
}
.txt-slider-buttons-track {
  padding: 16px 0 0;
  flex-shrink: 0;
  min-height: 60px;
  right: 15px;
  bottom: 15px;
}
.txt-slider-nav {
    left: 15px;
    bottom: 15px;
}
.txt-slider-nav,
.txt-slider-buttons-track {
    position: absolute;
}
.txt-slider-buttons {
  display: none;
}
.txt-slider-buttons.active {
    display: flex;
    gap: 10px;
}
.modal-page-btns {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 8px 0;
}
.modal-full-content .btn,
.txt-slider-btn {
    background-color: #fff;
    padding: 20px 30px;
    border-radius: 30px;
    display: inline-flex;
    align-self: end;
    margin-top: 20px;
    cursor: pointer;
}
@media (max-width: 1366px) {
    .modal-full-content .btn,
    .txt-slider-btn {
        padding: 15px 20px;        
    }
}
.modal-close-full,
.copy-link {
    position: absolute;
    right: 38%;
    background: none;
    border: none;
    cursor: pointer;
    color: white;
    transition: transform 0.2s;
   color: #000;
   background-color: #fff;
   border-radius: 100%;
   width: 28px;
   height: 28px;
   z-index: 9;    
}
.modal-close-full {
    top: 5%;
}
.copy-link {
    top: 10%;
}
.copy-link svg {
    width: 16px;
    height: 16px;
    fill: #fff;
}
.modal-close-full:hover,
.copy-link:hover {
    transform: scale(1.1);
}
.copy-link span {
    display: none;
    width: 130px;
    position: absolute;
    left: -130px;
    color: #fff;
    text-transform: uppercase;
    font-size: 10px;
}
.copy-link:hover span {
    display: block;
}
.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    z-index: 150;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

.menu-panel {
    background: #000;
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-radius: 30px;
    padding: 30px;
    min-width: 280px;
    transform: translateY(-20px);
    transition: transform 0.3s;
}

.menu-overlay.active .menu-panel {
    transform: translateY(0);
    width: 80%;
    max-width: 700px;
    height: 80%;
    overflow-y: auto;
}

.menu-panel button {
    width: 100%;
   padding: 0 0 10px 0;
    margin: 8px 0;
    background: none;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    cursor: pointer;
    font-size: 1rem;
    text-align: left;
    color: white;
    transition: all 0.2s;
    border-bottom: 1px solid #222;
    flex-direction: column;
   gap: 100px;
   padding-right: 50%;
  text-transform: uppercase;
}

.menu-panel button.menu-close {
    display: block;
    position: sticky;
    top: 10px;
    width: auto !important;
    padding: 5px 15px;
    margin: 8px auto 20px !important;
    background-color: #fff;
    border: none;
    border: none;
    cursor: pointer;
    text-align: left;
    color: #000;
    transition: all 0.2s;
    text-align: center;
    font-size: 13px;
    border-radius: 30px;
}

.scroll-hint {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    color: rgba(255, 255, 255, 0.5);
    animation: bounce 2s infinite;
    white-space: nowrap;
    z-index: 15;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(8px);
    }
}

@media (max-width: 768px) {
    .card-3d {
        width: 85vw;
        height: 45vh;
    }

    .content {
        max-width: 85%;
    }

    .counter {
        height: 70px;
        top: 15px;
        left: 15px;
    }

    .counter-digit {
        font-size: 3.5rem;
        height: 70px;
    }
}

.menu-button {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.menu-button span {
    display: block;
    font-size: 100px;
    color: #555;
    -webkit-transition: .5s all;
    -moz-transition: .5s all;
    -ms-transition: .5s all;
    -o-transition: .5s all;
    transition: .5s all;
}

.menu-button:hover span {
    color: #fff;
}

.menu-button::after {
    content: '';
    width: 220px;
    height: 220px;
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    border-radius: 15px 15px 0 0;
    overflow: hidden;
    background-size: cover;
}
#gradient-canvas {
  width:100%;
  height:100%;
  --gradient-color-1: #010107; 
  --gradient-color-2: #8556a4; 
  --gradient-color-3: #dc718f;  
  --gradient-color-4: #3d318c;
}
#gradient-canvas2 {
  width:100%;
  height:100%;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  --gradient-color-1: #fff; 
  --gradient-color-2: #3b7ca4; 
  --gradient-color-3: #ffe6e6;  
}
.funcs .btn-detail {
    cursor-pointer: none;
}
.funcs .left-top {
    left: 2vw;
}
.funcs .title {
    text-transform: none;
    font-size: 300px;
}
.funcs .content {
    padding: 0;
}
.func-counter-digit {
    color: #fff;
    font-size: 420px;
    letter-spacing: -20px;
    position: absolute;
    left: 0;
    top: 0;
    line-height: 0.75;
}
.func-counter-digit,
.section.funcs .title {
    font-weight: 400;
}
.func-square {
    background-color: #000;
    color: #fff;
}
.funcs .desc.left-bottom {
    left: 2vw;
}
.grey {
    color: #999;
}
.funcs .title.right-bottom {
    width: 100%;
    max-width: none!important;
    font-size: 95px;
    line-height: 0.75;
}
.funcs .title.right-bottom div {
    padding-left: 14%;
}
.bg-layer[data-bg="31"] {
    background-size: 40%;
    background-position: left 10% bottom 5%;
}
.ftrsection .title {
    font-size: 100px;
    max-width: none!important;
    width: 100%;
    text-align: right;
    margin-top: 9%;
}
.future {
    width: 100%;
    display: inline-block;
    background: linear-gradient(90deg, #0055cc 0%, #ff3399 50%, #0055cc 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
    text-align: right;
}
.future div,
.funcs .title div {
    display: block;
    text-align: left;
}
.future div {
    margin-left: 100px;
}

.section1 .title.right-bottom {
    text-transform: none;
}
.dop-text{
    min-height: 0;
    position: relative;
    padding: 50px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.dop-text::-webkit-scrollbar {
    width: 8px;
    background: rgba(0, 0, 0, 0.05);
}
.dop-text::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
}
.dop-text::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.5);
}
.dop-text {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.3) rgba(0, 0, 0, 0.05);
}
.dop-text .btn,
.bform .btn {
    margin-top: 25px;
    background-color: #000;
    color: #fff;
    border: none;
    padding: 20px 30px;
    border-radius: 30px;
    cursor: pointer;
}
.bform .btn {
    margin-top: 0;
}
.dop-text p,
.dop-text ol,
.dop-text ul {
    margin-bottom: 15px;
}
.dop-text p:last-child {
    margin-bottom: 0;
}
.dop-text ul {
    margin-left: 20px;
}
a {
    text-decoration: none;
}
.bform .form-note {
    color: #000;
}
.bform,
.bform input[type="tel"],
.bform input[type="text"],
.bform input[type="email"],
.bform textarea {
    color: #000;
    font-size: 16px;
}
.bform input[type="tel"],
.bform input[type="text"],
.bform input[type="email"],
.bform textarea {
    display: block;
    padding: 10px 0;
    margin-bottom: 15px;
    border: none;
    border-bottom: 1px solid #999;
    background-color: transparent;
    font-family: PPNeueMontreal, Helvetica, Arial, sans-serif;
    width: 100%;
}
.bform button {
    text-transform: uppercase;
}
.bform input[type="tel"]:focus,
.bform input[type="text"]:focus,
.bform input[type="email"]:focus,
.bform textarea:focus,
.bform input[type="tel"]:active,
.bform input[type="text"]:active,
.bform input[type="email"]:active,
.bform textarea:active {
    outline: none;
}
.bformtxt span {
    color: #998170;
    font-size: 40px;
    font-weight: 600;
}
.bformwrap .right-bottom {
    max-width: none;
    width: 50%;
}
.privacy-link {
    color: #000;
    text-decoration: none;
    text-transform: uppercase;
}
.privacy-link:hover {
    text-decoration: underline;
}
.flex-privacy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 25px;
}
.rt .left-bottom.lc,
.bformwrap .left-top {
    max-width: max-content;
}
.bformwrap {
    width: 85%;
    left: 15%;
    background-color: #fff;
    z-index: 1000000;
}
.bformwrap.active ~ .rt,
.rt:has(+ .bformwrap.active) {
    transform: none !important;
    opacity: 1 !important;
    z-index: 1;
    filter: none;
}
.rt:has(+ .bformwrap.active) .title {
     opacity: 1 !important;   
}
.rt:has(+ .bformwrap.active) .overline,
.rt:has(+ .bformwrap.active) .subtitle,
.rt:has(+ .bformwrap.active) .logo-label,
.rt:has(+ .bformwrap.active) .btn-restart,
.rt:has(+ .bformwrap.active) .desc,
.rt:has(+ .bformwrap.active) .btn-detail,
.rt:has(+ .bformwrap.active) .btn-arrow {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.bformwrap .left-top {
    margin-top: 50px;
}
@media (min-width: 931px) and (max-width: 1024px) {
    .bformwrap .right-bottom {
        width: 50%;
    }
}
@media (min-width: 769px) and (max-width: 930px) {
    .bformwrap .right-bottom {
        width: 70%;
    }
}
@media (max-width: 768px) {
    .bformwrap .right-bottom {
        width: 100%;
    }   
}
@media (min-width: 1920px) {
    .title,
    .page-text h2,
    .dop-text h2,
    .black h2,
    .light h2 {
        font-size: 60px;
    }
    .ftrsection .title {
        font-size: 170px;
    }
    .section1 .title.left-bottom {
        font-size: 60px;
    }
    .big {
        font-size: 230px;
    }
    .medbig {
        font-size: 120px;
    }
    .menu-overlay.active .menu-panel {
        max-width: 780px;
    }
    .btn-detail,
    .ftrsection .btn-arrow.right-bottom,
    .neonbtn,
    .btn-fos {
        width: 195px;
        height: 195px;
    }
    .modal-full-content {
        width: 613px;
        max-width: none;
    }
    .modal-close-full,
    .copy-link {
        right: 656px;
    }
    .counter {
        top: 20px;
    }
    .func-counter-digit {
        font-size: 600px;
    }
    .funcs .title.right-bottom {
        font-size: 150px;
    }
    .funcs .title.right-bottom div {
        padding-left: 5%;
    }
    .counter,
    .counter-digit {
        height: 335px!important;
    }
    .counter-digit {
        font-size: 440px!important;
        font-weight: 400;
    }
    .btn-detail,
    .neonbtn,,
    .btn-fos,
    .ftrsection .btn-arrow.right-bottom {
        padding: 20px;
    }
    .ftrsection .btn-arrow .arr-label {
        font-size: 0.85rem!important;
    }
    .dop-text {
        padding: 80px;
    }
    .logo-label {
        font-size: 65px;
    }
}
@media (min-width: 2200px) {
    .ftrsection .btn-arrow.right-bottom {
        margin-top: 100px;
    }
    .ftrsection .btn-arrow.right-bottom {
        left: auto;
    }
    .left-bottom.lc {
        left: 17vw;
    }
    .right-bottom.rc,
    .ftrsection .btn-arrow.right-bottom {
        right: 17vw;
    }
    .left-bottom.lc,
    .right-bottom.rc,
    .desc.left-bottom,
    .desc.right-bottom,
    .ftrsection .btn-arrow.right-bottom {
        max-width: 420px;
    }
    .center-center-top {
        top: 10%;
    }
    .page-text h2 {
        margin-bottom: 75px;
    }
    .dop-text h2 {
        font-size: 60px;
    }
    .page-text {
        font-size: 50px;
    }
    .dop-text {
        font-size: 35px;
    }
    .logo-label {
        font-size: 80px;
    }
    .medbig {
        font-size: 135px;
    }
    .funcs .title.right-bottom {
        font-size: 200px;
    }
    .copy-link {
        top: 8%;
    }
    .stitle {
        font-size: 140px;
    }
}
@media (min-width: 2400px) {
    .modal-full-content {
        width: 826px;
    }  
    .modal-close-full,
    .copy-link {
        right: 870px;
    }
    .title .future {
        font-size: 210px;
    }
    .title {
        font-size: 65px;
    }
    .section1 .title.left-bottom {
        font-size: 45px;
    }
    .page-text h2,
    .black h2,
    .light h2 {
        font-size: 75px;        
    }
    .dop-text h2 {
        font-size: 70px;
    }
    .medbig {
        font-size: 170px;
    }
}
@media only screen and (min-width: 1280px) and (max-width: 1366px) {
    .rt .right-top {
        width: 50%;
    }
}
@media (min-width: 3200px) {
    .modal-full-content {
        width: 1150px;
    } 
    .modal-close-full,
    .copy-link {
        right: 1193px;
    }  
}
.tnr {
    font-family: "Times New Roman", Times, serif;
}
.italic {
    font-style: italic;
}
.ttfors {
    font-family: 'TTFors', Helvetica, Arial, sans-serif;
}
.ftrsection .desc a {
    color: #000;
    text-decoration: underline;
}
.ftrsection .desc a:hover {
    text-decoration: none;
}
.ftrsection .desc.right-bottom {
    max-width: none;
    right: 2vw;
}
.goback {
    transform: rotate(90deg);
    border: none;
    background-color: transparent;
    cursor: pointer;
}
.goback svg {
    width: 40px;
    height: 40px;
}
@media (min-width: 1680px) {
  .ttfors {
    font-size: 130px;
  }
  .ttfors .desc {
    font-size: 55px;
  }
}
@media (min-width: 2220px) {
  .ttfors {
    font-size: 170px;
  }
  .ttfors .desc {
    font-size: 95px;
    }
}
.section-3d-right .card-3d {
    width: 600px;
    height: 600px;
    margin-left: auto;
}
.section-3d-right .desc.left-bottom {
    max-width: 450px;
}
.abs-full {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    max-height: 100vh;
}
.img-half-screen {
    max-height: 100vh;
}
.img-half-screen img,
.img-half-screen video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.psr {
    position: relative;
}
.fh {
    height: 100vh;
}
.grid {
    display:grid;
    gap: 0;
}
.cols-2 {
    grid-template-columns: repeat(2,1fr);   
}
.black,
.light {
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.black {
    background-color: #323740;
    color: #fff;
}
.light {
    background-color: transparent;
}
.right-bottom-text {
    padding-top: 30px;
    text-transform: uppercase;
    line-height: 1.4;
}
.right-bottom-text div {
    width: 50%;
    margin-left: auto;
}
.flex-content {
    display: flex;
    gap: 50px;
    align-items: center;
}
.reverse {
    flex-direction: row-reverse;
}
.flex-content .media-block,
.flex-content .info-block {
    width: 50%;
}
.flex-content .info-block {
    padding: 40px;
    border-radius: 30px;
    background-size: cover;
    background-position: center;
}
.media-block video,
.media-block img {
    max-width: 100%;
    border-radius: 30px;
}
body:has(.sectionexp.active) .counter,
body:has(.ftrsection.active) .counter,
body:has(.nocount.active) .counter {
    display: none!important;
}
.tenfl {
    display: flex;
    flex-direction: column;
    gap: 80px;
    width: 60%;
    position: relative;
    justify-content: end;
    max-width: none;
}
.ten-stitles2 {
    cursor: pointer;
    -webkit-transition: .3s all;
    -moz-transition: .3s all;
    -ms-transition: .3s all;
    -o-transition: .3s all;
    transition: .3s all;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 0;
    line-height: 1;
    position: relative;
    z-index: 2;
}
.tenimgs2 {
    display: none;
}
.tenimg-cursor {
    position: absolute;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
    transform: translate(-50%, -50%);
    width: 320px;
    height: 320px;
    transition: opacity 1.5s ease;
}
@media (min-width: 1920px) {
    .tenimg-cursor {
        width: 520px;
        height: 520px;
    }
}
.tenimg-cursor img {
    width: 100%;
    height: auto;
    display: block;
}
.logore.left-top {
    left: 1vw;
    top: 1vw;
}
.logore img {
    width: 100px;
    height: auto;
}
@media (min-width: 1024px) {
    .feedback-txt {
        margin-top: 58%;
    }
}
@media (min-width: 1080px) {
    .feedback-txt {
        margin-top: 22%;
    }
}
@media (min-width: 1133px) {
    .feedback-txt {
        margin-top: 34%;
    }
}
@media (min-width: 1180px) {
    .feedback-txt {
        margin-top: 14%;
    }
}
@media (min-width: 1280px) {
    .feedback-txt {
        margin-top: 8%;
    }
}
@media (min-width: 1366px) {
    .feedback-txt {
        margin-top: 10%;
    }
}
@media (min-width: 1440px) {
    .feedback-txt {
        margin-top: 11%;
    }
}
@media (min-width: 1920px) {
    .feedback-txt {
        margin-top: 20%;
    }
}
@media (min-width: 2400px) {
    .feedback-txt {
        margin-top: 24%;
    }
}
.feedback-re {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
    align-items: baseline;
    position: relative;
    justify-content: end;
}
.feedback-re a,
.feedback-re button {
    color: #000;
    font-weight: 700;
    font-size: 12px;
    box-sizing: border-box;
}
@media (max-width: 1920px) {
    .feedback-re a,
    .feedback-re button {
        font-size: 12px;
    }    
}
.feedback-re button {
    border: none;
    background-color: transparent;
    cursor: pointer;
}
body.ppbody {
    overflow: auto;
    padding: 20px 0;
}
.pp-wrapper h1 {
    font-size: 45px;
    margin-bottom: 80px;
}
.pp-wrapper {
    background-color: #000;
    border-radius: 40px;
    width: 50%;
    margin: 0 auto;
    color: #fff;
    padding: 30px;
    z-index: 9;
    position: relative;
}
.pp-wrapper.white-wrapper {
    background-color: #fff;
    color: #000;
}
.ppitem {
    padding: 40px 0;
    display: flex;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.ppnum {
    font-size: 100px;
}
.ppnum-small,
.ppnum {
    width: 38%;
}
.pptxtitem {
    width: 62%;
}
.pptxtitem p {
    font-size: 20px;
    line-height: 1.3;
}
.pptxtitem p.pptxtsmall {
    color: rgba(255,255,255,.6);
    text-transform: uppercase;
    margin-bottom: 80px;
    font-size: 11px;
    width: 50%;
}
.ppnum-small {
    font-size: 20px;
    color: rgba(255,255,255,.6);
}
.pptop {
    position: fixed;
    top: 30px;
    left: 30px;
}
.pptop a {
    color: #000;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 15px;
}
/*Выпадающее меню
li,
a + ul {
    position: relative;
}
a + ul {
    position: absolute;
    top: 5px;
    right: 0;
    margin: 0;
    padding-top: 20px;
    background-color: transparent;
    list-style: none;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition:
        opacity .3s ease,
        transform .3s ease,
        visibility .3s ease;
    pointer-events: none;
    border-radius: 5px;
    box-shadow: 0px 10px 60px 0px rgba(0, 0, 0, 0.07);
}
a + ul li a {
    padding: 5px 10px;
    background-color: #fff;
    width: 100%;
    display: inline-block;
    text-transform: none;
}
a + ul li:first-child a {
    border-bottom: 1px solid #ddd;
    border-radius: 5px 5px 0 0;
}
a + ul li:last-child a {
    border-radius: 0 0 5px 5px;
}
a + ul li {
    margin-bottom: 0!important;
}
a:hover + ul,
a + ul:hover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}*/
.feedback-re {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
    align-items: baseline;
    position: relative;
    justify-content: end;
}

/* Скрываем чекбокс */
.burger-toggle {
    display: none;
}

/* Кнопка-гамбургер (по умолчанию скрыта) */
.burger-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    z-index: 1001;
}
.burger-btn span {
    display: block;
    height: 2px;
    width: 100%;
    background: #000;
    transition: transform .3s ease, opacity .3s ease;
}
.feedback-re__menu {
    display: flex;
    gap: 15px;
    align-items: baseline;
    justify-content: end;
    flex-wrap: nowrap;
    z-index: 9;
}
.feedback-re__menu a:hover {
    text-decoration: none;
}
.top-phone,
.top-cases {
    cursor: default;
}
/*Выпадающее меню (подменю "Кейсы")*/
.dropdown {
    position: relative;
}
.dropdown ul {
    position: absolute;
    top: 5px;
    right: 0;
    margin: 0;
    padding-top: 20px;
    background-color: transparent;
    list-style: none;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition:
        opacity .3s ease,
        transform .3s ease,
        visibility .3s ease;
    pointer-events: none;
    border-radius: 5px;
    box-shadow: 0px 10px 60px 0px rgba(0, 0, 0, 0.07);
}
.dropdown ul li a {
    padding: 5px 10px;
    background-color: #fff;
    width: 100%;
    display: inline-block;
    text-transform: none;
    border-bottom: 1px solid #ddd;
}
.dropdown ul li:first-child a {
    border-radius: 5px 5px 0 0;
}
.dropdown ul li:last-child a {
    border-radius: 0 0 5px 5px;
    border: none;
}
.dropdown ul li {
    margin-bottom: 0 !important;
}
.dropdown > a:hover + ul,
.dropdown ul:hover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}
@media (min-width: 2049px) {
    .rt .right-top {
        max-width: 33%;
    }
}
/* === Мобильная версия === */
@media (max-width: 2048px) {
    .feedback-re {
        justify-content: flex-end;
    }

    .burger-btn {
        display: flex;
    }

    .feedback-re__menu {
        position: absolute;
        top: 100%;
        right: 0;
        flex-direction: column;
        align-items: flex-end;
        flex-wrap: wrap;
        gap: 12px;
        padding: 15px;
        background: #f4f3f1;
        box-shadow: 0px 10px 60px 0px rgba(0, 0, 0, 0.1);
        border-radius: 7px;
        min-width: max-content;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
        pointer-events: none;
        z-index: 1000;
    }

    .dropdown ul {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
        box-shadow: none;
        padding-top: 8px;
    }
    .dropdown ul li a {
        background: transparent;
    }
    .feedback-re a, 
    .feedback-re button {
        font-size: 15px;
        font-weight: 500;
    }
    .dropdown ul {
        text-align: right;
    }
    .dropdown ul li a {
        color: #726c5a;
        border: none;
    }
    .burger-toggle:checked ~ .feedback-re__menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
    }

    .burger-toggle:checked ~ .burger-btn span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .burger-toggle:checked ~ .burger-btn span:nth-child(2) {
        opacity: 0;
    }
    .burger-toggle:checked ~ .burger-btn span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
    .dropdown ul li:first-child a {
        border: none;
    }
}
/* ---------- Ноутбуки шириной до 1280px (MacBook 13"/14") ---------- */
@media (max-width: 1280px) {
    .content {
        padding: 5vw;
    }
    .title {
        font-size: 40px;
    }
    .big {
        font-size: 90px;
    }
    .medbig {
        font-size: 60px;
    }
    .logo-label {
        /*font-size: 32px;*/
        font-size: 45px;
    }
    .mb30 {
        margin-bottom: 30px;
    }
    .desc {
        max-width: 45%;
        font-size: 14px;
    }
    /*[data-index="32"] .desc {
        max-width: 70%;
    }*/
    .modal-full-content h2 {
        hyphens: auto;
    }
    .modal-full-content h2 br {
        display: none;
    }
    .btn-detail,
    .ftrsection .btn-arrow.right-bottom,
    .neonbtn,
    .btn-fos {
        width: 100px;
        height: 100px;
        padding: 8px;
        text-align: center;
    }
    .counter,
    .counter-digit {
        height: 200px!important;
    }
    .counter-digit {
        font-size: 200px!important;
    }
    .func-counter-digit {
        font-size: 320px;
    }
    .funcs .title {
        font-size: 220px;
    }
    .funcs .title.right-bottom {
        font-size: 70px;
    }
    .card-3d {
        width: 55vw;
        height: 50vh;
    }
    .modal-full-content {
        width: 46%;
    }
    .modal-close-full,
    .copy-link {
        right: 48%;
    }
    .page-text {
        max-width: 70%;
        font-size: 24px;
    }
    .page-text h2,
    .dop-text h2,
    .black h2,
    .light h2 {
        font-size: 38px;
        margin-bottom: 30px;
    }
    .dop-text {
        padding: 35px;
        font-size: 17px;
    }
    .ftrsection .title {
        font-size: 70px;
    }
    .future div {
        margin-left: 40px;
    }
    .simple-slider {
        width: 60%;
    }

    .pp-wrapper {
        width: 70%;
    }
} 
@media (min-width: 1024px) and (max-width: 1440px) {
    .modal-slider {
        margin-top: 8%;
    }
} 
@media (min-width: 1281px) and (max-width: 1366px) {
    .modal-slider {
        margin-top: 1%;
    }
}
@media (max-width: 1180px) {
    .pp-wrapper h1 {
        font-size: 40px;
    }
}
@media (max-width: 1080px) {
    .stitle.fl {
        font-size: 40px;
    }
    .stitle.fl span {
        font-size: 20px;
        margin-top: 5px;
    }
    body.ppbody {
        padding: 70px 0 20px;
    }
}
/* ---------- Планшеты, альбомная ориентация (<=1024px) ---------- */
@media (max-width: 1024px) {
    .grid.cols-2 {
        grid-template-columns: 1fr;
    }
    .img-half-screen {
        max-height: 50vh;
    }
    .content {
        padding: 6vw;
    }
    .title {
        font-size: 40px;
    }
    .title span {
        font-size: 28px;
    }
    .big {
        font-size: 74px;
    }
    .medbig {
        font-size: 50px;
    }
    .logo-label {
        font-size: 36px;
        top: 15%;
    }
    .overline {
        font-size: 0.7rem;
    }
    .desc {
        max-width: 55%;
        font-size: 11px;
    }
    .right-top,
    .left-top,
    .left-bottom,
    .right-bottom,
    .center-top,
    .center-center {
        max-width: 60%;
    }
    .rt .right-top {
        max-width: 50%;        
    } 
    .left-bottom.lc,
    .right-bottom.rc,
    .desc.left-bottom,
    .desc.right-bottom,
    .ftrsection .btn-arrow.right-bottom {
        max-width: 220px;
    }
    .btn-detail,
    .neonbtn,
    .ftrsection .btn-arrow.right-bottom,
    .btn-fos {
        width: 120px;
        height: 120px;
        font-size: 0.7rem;
    }
    .counter,
    .counter-digit {
        height: 120px!important;
    }
    .counter-digit {
        font-size: 120px!important;
    }
    .func-counter-digit {
        font-size: 120px;
        letter-spacing: -8px;
    }
    .btn-detail,
    .neonbtn,
    .btn-fos {
        border-radius: 15px;
    }
    .funcs .title {
        font-size: 150px;
    }
    .funcs .title.right-bottom {
        font-size: 50px;
    }
    .funcs .title.right-bottom div {
        padding-left: unset;
    }
    .funcs .title div {
        text-align: right;
    }
    .card-3d {
        width: 65vw;
        height: 42vh;
    }
    .section-3d-right .card-3d {
        width: 400px;
        height: 400px;
    }
    /* Модальное окно занимает всю ширину на планшетах */
    .modal-full-content {
        width: 50%;
        padding: 25px;
    }
    .simple-slider  {
        width: 70%;
    }
    .modal-close-full,
    .copy-link {
        right: 52%;
    }
    .modal-full-content h2 {
        font-size: 30px;
    }
    .modal-full-content p,
    .modal-full-content ul,
    .modal-full-content ol {
        font-size: 15px;
    }
    .menu-overlay.active .menu-panel {
        width: 90%;
        max-width: 560px;
        padding: 20px;
    }
    .menu-button span {
        font-size: 60px;
    }
    .menu-button::after {
        width: 170px;
        height: 170px;
    }
    /* Блоки "картинка + текст" (nocount) — уменьшаем отступы и текст */
    .dop-text {
        padding: 30px;
        font-size: 17px;
    }
    .page-text h2,
    .dop-text h2,
    .black h2,
    .light h2 {
        font-size: 35px;
        margin-bottom: 24px;
        max-width: 100%;
    }
    .page-text {
        max-width: 100%;
        font-size: 18px;
    }
    .ftrsection .title {
        font-size: 70px;
    }
    .future div {
        margin-left: 20px;
    }
    .flex-content {
        gap: 25px;
    }
    .ten-stitles2 {
        gap: 10px;
    }
    .stitle.fl {
        font-size: 25px;
    }
    .stitle.fl span {
        font-size: 15px;
        margin-top: 0;
    }
}
@media (min-width: 730px) and (max-width: 930px) {
    .stitle.fl {
        font-size: 52px;
    }
}
/* ---------- Планшеты, портретная ориентация / маленькие ноутбуки (<=900px) ---------- */
@media (max-width: 900px) {
    .abs-full .psr.grid.cols-2.fh {
        height: auto;
    }
    .ten-stitles2 {
        margin-top: 25px;
    }
    .stitle.fl {
        font-size: 22px;
    }
    .img-half-screen img,
    .img-half-screen video {
        height: 100%;
    }
    .dop-text {
        height: auto;
        max-height: 50vh;
    }
    .flex-content {
        flex-direction: column;
    }
    .flex-content.reverse {
        flex-direction: column;
    }
    .flex-content .media-block,
    .flex-content .info-block {
        width: 100%;
    }
    .desc {
        font-size: 10px;
    }
    .dop-text .btn {
        padding: 10px 8px;
    }
    .section.horizontal .flex-btns {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        margin-top: 24px;
        margin-bottom: 0;
        justify-content: center;
    }
    .section.horizontal .flex-btns .btn {
        max-width: 100%;
        white-space: normal;
        margin-top: 0;
        padding: 10px 20px;
    }
}
@media (max-width: 874px) {
    .title {
        font-size: 27px;
    }
}
@media (min-width: 768px) and (max-width: 1080px) {
    .modal-slider {
        flex-direction: column;
        display: flex;
        justify-content: center;
    }
}
/* ---------- Телефоны (<=767px) ---------- */
@media (max-width: 767px) {
    body {
        font-size: 13px;
    }
    .content {
        padding: 6vw 5vw;
    }
    .title {
        font-size: 34px;
    }
    .title span {
        font-size: 24px;
    }
    .big {
        font-size: 42px;
    }
    .medbig {
        font-size: 40px;
    }
    .logo-label {
        font-size: 25px;
        top: 10%;
    }
    .overline {
        font-size: 0.6rem;
        margin-bottom: 0.6rem;
    }
    .desc {
        max-width: 80%;
        font-size: 12px;
    }
    .right-top,
    .left-top,
    .left-bottom,
    .right-bottom,
    .center-top,
    .center-center {
        max-width: 80%;
    }
    .left-top {
        left: 5vw;
    }
    .desc.left-bottom {
        left: 5vw;
    }
    .desc.right-bottom {
        right: 5vw;
    }
    .left-bottom.lc,
    .right-bottom.rc,
    .desc.left-bottom,
    .desc.right-bottom,
    .ftrsection .btn-arrow.right-bottom {
        max-width: 170px;
    }
    .btn-detail,
    .neonbtn,
    .ftrsection .btn-arrow.right-bottom,
    .btn-fos {
        width: 72px;
        height: 72px;
        padding: 6px;
        font-size: 0.5rem;
        border-radius: 20px;
    }
    .btn-plus {
        width: 20px;
        height: 20px;
        line-height: 18px;
        font-size: 12px;
    }
    .menu-btn {
        top: 12px;
        padding: 6px 12px;
        font-size: 12px;
    }
    .counter,
    .counter-digit {
        height: 60px!important;
    }
    .counter-digit {
        font-size: 60px!important;
    }
    .counter {
        left: 12px;
    }
    .func-counter-digit {
        font-size: 110px;
        letter-spacing: -4px;
    }
    .funcs .left-top {
        left: 5vw;
    }
    .funcs .title {
        font-size: 80px;
    }
    .funcs .title.right-bottom {
        font-size: 30px;
        line-height: 1;
    }
    .funcs .title.right-bottom div {
        padding-left: 0;
    }
    .card-3d {
        width: 80vw;
        height: 38vh;
    }
    .section-3d-right .card-3d {
        width: 80vw;
        height: 38vh;
        margin: 0 auto;
    }
    /* Модальное окно — на всю ширину экрана */
    .modal-full-content {
        width: 100%;
        border-radius: 24px;
        padding: 20px;
        font-size: 14px;
    }
    .modal-close-full,
    .copy-link {
        right: 16px;
        width: 26px;
        height: 26px;
    }
    .modal-close-full {
        top: 16px;
    }
    .copy-link {
        top: 56px;
    }
    .modal-full-content h2 {
        font-size: 24px;
        margin-bottom: 1.2rem;
    }
    .modal-full-content p,
    .modal-full-content ul,
    .modal-full-content ol {
        font-size: 14px;
    }
    .modal-full-content .btn,
    .txt-slider-btn {
        padding: 12px 16px;
        font-size: 13px;
    }
    .modal-form-box {
        padding: 24px;
        border-radius: 20px;
    }
    .modal-form-box h3 {
        font-size: 19px;
        margin-bottom: 16px;
    }
    .menu-overlay.active .menu-panel {
        width: 92%;
        max-width: none;
        height: 85%;
        padding: 16px;
        border-radius: 20px;
    }
    .menu-panel button {
        font-size: 0.8rem;
        padding-right: 20%;
        gap: 40px;
    }
    .menu-button span {
        font-size: 40px;
    }
    .menu-button::after {
        width: 110px;
        height: 110px;
    }
    .dop-text {
        padding: 20px;
        font-size: 14px;
    }
    .img-half-screen {
        max-height: 34vh;
    }
    .img-half-screen img,
    .img-half-screen video {
        height: 34vh;
    }
    .dop-text {
        max-height: 66vh;
    }
    .page-text h2,
    .dop-text h2,
    .black h2,
    .light h2 {
        font-size: 22px;
        margin-bottom: 16px;
    }
    .page-text {
        font-size: 15px;
    }
    .last-title {
        font-size: clamp(2.2rem, 12vw, 4rem);
        margin-bottom: 1rem;
    }
    .last-subtitle {
        font-size: 0.9rem;
        margin-bottom: 1.6rem;
    }
    .btn-restart {
        padding: 12px 26px;
        font-size: 0.8rem;
    }
    .ftrsection .title {
        font-size: 32px;
        margin-top: 4%;
    }
    .future div {
        margin-left: 10px;
    }
    .black,
    .light {
        padding: 16px;
    }
    .right-bottom-text {
        padding-top: 16px;
    }
    .right-bottom-text div {
        width: 100%;
    }
    .tenfl {
        flex-direction: column;
    }
    /*Последний экран*/
    [data-index="32"] .desc.right-top {
        max-width: none;
    }
    .ten-stitles2 {
        gap: 10px;
    }
        .modal-full-layout {
        flex-direction: column;
        width: 90%;
        height: 85%;
        gap: 15px;
    }

    .modal-slider {
        flex: 1;
        min-height: 200px;
    }

    .modal-full-content {
        flex: 1;
        padding: 25px;
    }

    .slider-arrow {
        width: 36px;
        height: 36px;
        font-size: 20px;
    }
    [data-index="32"] .title.left-bottom {
        right: 0vw;
        text-align: right;
        bottom: 3vw;
        left: auto;
    }
    .tenfl {
        width: 100%;
    }
    [data-index="32"] .title.left-bottom {
        text-align: left;
    }
    [data-index="32"] .left-bottom,
    [data-index="32"] .right-top {
        position: relative;
    }
    [data-index="32"] .left-bottom.lc {
        top: 0;
        transform: none!important;
    }
    .stitle {
        font-size: 24px;
    }
    .stitle span {
        font-size: 15px;
        margin-top: 7px;
    }
    .formbg {
        display: none;
    }
    .p40 {
        padding: 25px;
    }
}
@media (max-width: 730px) {
    .pdn p {
        display: none;
    }
}
@media (max-width: 569px) {
    .pp-wrapper h1 {
        font-size: 30px;
        margin-bottom: 40px;
    }
    .pp-wrapper {
        border-radius: 35px;
        width: 97%;
        padding: 25px;
    }
    .ppitem {
        padding: 25px 0;
        display: flex;
        border-top: 1px solid rgba(255,255,255,0.1);
    }
    .ppnum {
        font-size: 50px;
    }
    .menu-panel button {
        padding-right: 33%;
    }
    .ppnum-small,
    .ppnum {
        width: 25%;
    }
    .pptxtitem {
        width: 75%;
    }
    .pptxtitem p {
        font-size: 15px;
    }
    .pptxtitem p.pptxtsmall {
        margin-bottom: 30px;
        font-size: 11px;
        width: 100%;
    }
    .ppnum-small {
        font-size: 18px;
    }
    .grid.cols-2-1 {
        grid-template-columns: 1fr;
    }
    .p40 {
        padding: 15px;
    }
    .modal-form-box h3 {
        font-size: 17px;
    }
    .modal-form-box p {
        font-size: 14px;
    }
}
@media (min-width: 730px) and (max-width: 930px) {
    .desc.right-bottom:has(p) {
        right: 1vw;
    }
    .bg-layer[data-bg="31"] {
        bottom: 0;
    }
}
@media (max-width: 480px) {
    .rt .content {
        flex-direction: column;
        max-width: 100%;
        justify-content: flex-start;
    }
    .rt .content .title {
        position: relative;
        top: 20px;
        left: 0;
        transform: none!important;
    }
    .rt .ten-stitles2 {
        margin-top: 0;
    }
    .rt .content .desc {
        position: relative;
        max-width: max-content;
        top: 0;
        right: 0;
        left: 0;
    }
}
/* ---------- Маленькие телефоны (<=480px) ---------- */
@media (max-width: 480px) {
    .title {
        font-size: 27px;
    }
    .big {
        font-size: 34px;
    }
    .medbig {
        font-size: 28px;
        font-weight: 800;
    }
    .logo-label {
        font-size: 17px;
    }
    .simple-slider {
        width: 50%;
        margin-top: 40px;
    }
    .slider-dots {
        margin-top: 0;
    }
    .modal-full-content .btn, .txt-slider-btn {
        padding: 12px 10px;
    }
    .section1 .logo-label,
    .sectionexp .logo-label {
        position: absolute;
        top: auto;
        bottom: 1vw;
        right: 1vw;
    }
    .content {
        max-width: 95%;
    }
    .desc {
        max-width: 70%;
        font-size: 11px;
    }
    .btn-detail,
    .neonbtn,
    .ftrsection .btn-arrow.right-bottom,
    .btn-fos {
        width: 80px;
        height: 80px;
        border-radius: 10px;
    }
    .desc.left-bottom {
        left: 0vw;
    }
    .desc.right-bottom {
        right: 0;
    }
    .func-counter-digit,
    .counter-digit {
        font-size: 78px!important;
    }
    .counter {
        height: 78px!important
    }
    .counter-digit {
        height: 78px!important;
    } 
    .funcs .title {
        font-size: 58px;
    }
    .funcs .title.right-bottom {
        font-size: 27px;
    }
    .funcs .title div {
        text-align: right;
    }
    .right-bottom {
        right: 0vw;
        bottom: 3vw;
    }
    .ftrsection .desc.right-bottom {
        bottom: 35vw;
    }
    .card-3d {
        width: 88vw;
        height: 32vh;
    }
    .modal-full-content h2 {
        font-size: 20px;
    }
    .modal-full-content p,
    .modal-full-content ul,
    .modal-full-content ol {
        font-size: 13px;
    }
    .page-text h2,
    .dop-text h2,
    .black h2,
    .light h2 {
        font-size: 18px;
    }
    .page-text {
        font-size: 13.5px;
    }
    .dop-text {
        font-size: 13px;
        padding: 16px;
    }
    .ftrsection .title {
        font-size: 34px;
        margin-top: 10%;
    }
    .bg-layer[data-bg="31"] {
        background-size: 80%;
        background-position: left 20% bottom 0;
    }
    .modal-form-box {
        overflow-y: auto;
        height: 100%;
    }
}

/* ---------- Альбомная ориентация телефонов (низкая высота) ---------- */
@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape) {
    .card-3d {
        height: 65vh;
    }
    .img-half-screen {
        max-height: 100vh;
    }
    .img-half-screen img,
    .img-half-screen video {
        height: 100%;
    }
    .grid.cols-2{
        grid-template-columns: 1fr 1fr;
    }
    .modal-form-box .grid.cols-2-1 {
        grid-template-columns: 1fr;
    }
    .formbg {
        display: none;
    }
    .abs-full .psr.grid.cols-2.fh {
        height: 100vh;
    }
    .dop-text {
        max-height: 100vh;
        overflow-y: auto;
    }
    .modal-full-content {
        width: 60%;
        height: 92%;
    }
    .menu-overlay.active .menu-panel {
        height: 90%;
    }
    .modal-close-full, 
    .copy-link {
        right: 62%;
    }
    .copy-link {
        top: 15%;
    }
    .txt-slider-page {
        height: 80%;
    }
    .bg-layer[data-bg="31"] {
        background-position: left 10% bottom 0;
    }
    .ftrsection .title {
        margin-top: 5%;
    }
    .modal-form-field input, 
    .modal-form-field textarea {
        padding-top: 8px;
        padding-bottom: 8px;
    }
    .modal-form-field textarea {
        min-height: 60px;
    }
    .modal-form-submit {
        padding: 10px;
    }
    .simple-slider {
        margin-right: 20px;
    }
    .modal-form-box {
        overflow-y: auto;
        height: 100%;
    }
    .ftrsection .title {
        font-size: 62px;
    }
}
/*Calculation page*/
.pp-wrapper.white-wrapper h1 {
    margin-bottom: 20px;
}
.intro {
  padding: 0 0 34px;
  text-align: left;
}
.intro-title {
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  margin: 0 0 10px;
  letter-spacing: 0.1px;
}
.intro p {
  font-size: 15px;
  line-height: 1.45;
  margin-bottom: 15px;
  color: #16161a;
}
.intro p:last-child {
    margin-bottom: 0;
}
.report-cover {
  border-top: 1px solid #e5e5e8;
  padding-top: 34px;
}
.report-head {
  display: grid;
  grid-template-columns: 1fr 142px;
  gap: 30px;
  align-items: start;
  padding: 0 0 32px;
  border-bottom: 1px solid #e5e5e8;
}
.report-title {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 13px;
}
.report-subtitle {
  font-size: 15px;
  color: #777784;
  margin-bottom: 31px;
}
.meta {
  font-size: 15px;
  color: #858590;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.dot {
  font-weight: 700;
  color: #8c8c95;
}
.logo {
  width: max-content;
  object-fit: cover;
  display: block;
}
.before-after {
  display: grid;
  grid-template-columns: 1fr 74px 1fr;
  align-items: center;
  gap: 14px;
  margin: 34px 0 38px;
}
.photo-card {
  border: 1px solid #dedee2;
  border-radius: 13px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
.photo-card img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
.photo-caption {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  font-size: 16px;
  color: #777780;
}
.badge {
  font-size: 13px;
  font-weight: 600;
  color: #202028;
  background: #f0f0f3;
  padding: 6px 12px;
  border-radius: 999px;
}
.badge.purple {
  background: #7045d8;
  color: white;
}
.arrow {
  font-size: 48px;
  text-align: center;
  color: #6949c9;
  font-weight: 300;
  line-height: 1;
}
.total-card {
  border: 2px solid #ded8f6;
  border-radius: 15px;
  padding: 32px 34px 28px;
  background: linear-gradient(145deg, #fff 0%, #faf9ff 100%);
}
.total-label {
  font-size: 16px;
  color: #777784;
  text-align: center;
  letter-spacing: 0.4px;
  margin-bottom: 10px;
}
.total-value {
  font-size: 48px;
  line-height: 1.05;
  font-weight: 700;
  color: #704bd1;
  text-align: center;
  letter-spacing: -1.2px;
}
.total-note {
  font-size: 15px;
  color: #7b7b86;
  text-align: center;
  margin-top: 14px;
}
.confidence {
  border-top: 1px solid #e8e8ec;
  margin-top: 30px;
  padding-top: 23px;
}
.confidence-line {
  display: flex;
  justify-content: space-between;
  color: #777784;
  font-size: 14px;
  margin-bottom: 9px;
}
.progress {
  height: 12px;
  background: #d5d5d8;
  border-radius: 999px;
  overflow: hidden;
}
.progress > span {
  display: block;
  width: 85%;
  height: 100%;
  background: #09090f;
}
.section-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #5e46bd;
  font-size: 17px;
  font-weight: 700;
}
.section-icon svg {
  stroke: #5e46bd; 
  height: 20px;  
}
.section-title {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 15px;
}
.panel {
  border: 1px solid #e3e3e7;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 6px rgba(20, 20, 30, 0.025);
}
.analysis-list {
  list-style: none;
  margin: 0;
  padding: 0 24px;
}
.analysis-list li {
  display: grid;
  grid-template-columns: 29px 1fr;
  gap: 12px;
  align-items: start;
  padding: 21px 0;
  border-bottom: 1px solid #e4e4e7;
  font-size: 15px;
  line-height: 1.45;
  color: #24242a;
}
.analysis-list li:last-child {
  border-bottom: 0;
}
.num {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #f0edfb;
  color: #6b50c5;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
}
.conf-card {
  padding: 26px 25px 28px;
}
.muted {
  color: #858590;
}
.lead {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 27px;
}
.subhead {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 14px;
}
.factor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 26px;
}
.factor {
  border: 1px solid #e0e0e4;
  border-radius: 8px;
  background: #fafafa;
  padding: 13px 12px;
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}
.factor strong {
  font-size: 14px;
}
.bullet-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.bullet-list li {
  position: relative;
  padding-left: 25px;
  margin: 0 0 13px;
  font-size: 15px;
  line-height: 1.45;
}
.bullet-list.ok li:before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #55b982;
  font-weight: 700;
}
.bullet-list.warn li:before {
  content: "△";
  position: absolute;
  left: 0;
  top: 0;
  color: #4d73bd;
  font-weight: 700;
}
.table-wrap {
  border: 1px solid #e0e0e4;
  border-radius: 13px;
  overflow: hidden;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
th {
  background: #f8f8f9;
  font-weight: 600;
  text-align: left;
  padding: 13px 10px;
  border-bottom: 1px solid #dddde1;
}
th:nth-child(2),
th:nth-child(3),
th:nth-child(4) {
  text-align: center;
}
td {
  padding: 12px 10px;
  border-bottom: 1px solid #e1e1e4;
  vertical-align: middle;
  line-height: 1.35;
}
td.qty,
td.cost,
td.source {
  text-align: center;
  white-space: nowrap;
}
.main-row td {
  background: #fff;
  font-size: 14px;
}
.sub-row.tools td {
  background: #fffcef;
}
.sub-row.materials td {
  background: #eef4ff;
}
.sub-row td:first-child {
  padding-left: 24px;
}
.sub-label {
  font-weight: 600;
  display: block;
  margin-bottom: 5px;
}
.sub-desc {
  font-size: 13px;
  color: #666;
  display: block;
}
.source-badge {
  display: inline-block;
  border-radius: 6px;
  padding: 6px 7px;
  font-size: 10px;
  background: #efeff2;
}
.source-badge.selected {
  background: #edf0ff;
  color: #4669ad;
}
.source-badge.yellow {
  background: #fff2bf;
  color: #9a781e;
}
.totals td {
  font-weight: 700;
  background: #fff;
}
.totals .label {
  text-align: left;
}
.grand-total td {
  background: #eeeafb;
  font-size: 13px;
}
.source-card {
  border: 1px solid #eeeef1;
  border-radius: 12px;
  background: #f9f9f9;
  padding: 23px 22px;
}
.source-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 15px;
  padding: 0 0 20px;
  margin: 0 0 20px;
  border-bottom: 1px solid #e7e7ea;
}
.source-item:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.source-name {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 9px;
}
.source-desc {
  font-size: 14px;
  line-height: 1.5;
  color: #444;
}
.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  align-content: start;
  max-width: 190px;
}
.tag {
  border: 1px solid #e3e3e6;
  border-radius: 6px;
  padding: 7px 8px;
  font-size: 10px;
  background: #fff;
}
.disclaimer-card {
  background-color: #f9f9f9;
  border: 1px solid #e5e5e8;
  border-radius: 14px;
  padding: 28px 26px;
  margin-top: 0;
}
.disclaimer-title {
  font-weight: 700;
  font-size: 16px;
  margin: 0 0 14px;
}
.disclaimer-text {
  font-size: 15px;
  line-height: 1.55;
  color: #444;
  margin: 0;
}
.report-id {
  text-align: right;
  color: #858590;
  font-size: 14px;
  margin-top: 34px;
}
.final-logo {
  width: auto;
  height: 70px;
  object-fit: cover;
  margin-top: 45px;
}
.ru-disclaimer {
  font-size: 14px;
  line-height: 1.45;
  margin-top: 28px;
  color: #18181d;
}
.total-card,
.panel,
.table-wrap,
.source-card {
    margin-bottom: 38px;
}
.nine-form {
    display: flex;
    justify-content: space-between;
    align-items: end;
    position: relative;
    z-index: 999;
    gap: 40px;
    height: 100vh;
    padding: 30px;
    width: 100%;
    padding: 30px 30px 30px 130px;
}
.bform {
    width: 65%;
}
.bform .modal-form-msg {
    margin-top: 10px!important;
}
.social {
    margin-bottom: 25px;
    display: flex;
    gap: 10px;
}
.social svg {
    width: 40px;
    height: 40px;
}
.social a:hover {
    opacity: 0.5;
}
@media (max-width: 1024px) {
    .dop-text {
        padding-bottom: 100px;
    }
}
@media (max-width: 768px) {
    .bform {
        width: 100%;
        order: 1;
        margin-top: auto;
    }
    .social {
        margin: 0 auto;
        order: 2;
        flex-wrap: wrap;
        gap: 5px;
        justify-content: center;
    }
    .nine-form {
        padding: 30px;
        flex-direction: column;
    }
    .bformwrap {
        width: 100%;
        left: 0;
    }
}
@media (max-width: 549px) {
    .flex-privacy {
        flex-direction: column;
        gap: 25px;
    }
}
@media (max-width: 900px) and (orientation: portrait) {
    .section.horizontal .abs-full {
        height: 100%;
        max-height: 100dvh;
    }
    .section.horizontal .abs-full .psr.grid.cols-2.fh {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
        gap: 0;
    }
    .section.horizontal .img-half-screen {
        flex: 0 0 auto;
        max-height: 30dvh;
        overflow: hidden;
    }
    .section.horizontal .img-half-screen img,
    .section.horizontal .img-half-screen video {
        display: block;
        width: 100%;
        height: 30dvh;
        object-fit: cover;
    }
    .section.horizontal .dop-text {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        max-height: none;
        overflow-y: auto;
        padding-bottom: 0;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
        box-sizing: border-box;
        padding: 24px 20px calc(50px + env(safe-area-inset-bottom));
    }
}