* {
    margin: 0;
    padding: 0;
    box-sizing: border-box
}

html {
    overflow-x: hidden
}

:root {
    --heading-font: "Oswald", sans-serif;
    --body-font: "Inter", sans-serif;
    --theme-color: #A20004;
    --heading-color: #1F1F1F;
    --para-color: #636363;
    --black-color: #000000;
    --white: #FFFFFF
}

img {
    display: block;
    max-width: 100%;
    height: auto;
    -webkit-user-drag: none;
    user-select: none
}

video {
    width: 100%;
    height: auto;
    max-width: 100%
}

a {
    text-decoration: none;
    color: var(--black-color)
}

body {
    font-family: var(--body-font);
    overflow-x: clip
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--heading-color);
    font-family: var(--heading-font);
    font-style: normal;
    text-transform: uppercase;
    margin-bottom: 0;
    font-weight: 700
}

h1 {
    font-size: 70px;
    line-height: 80px;
    letter-spacing: 0
}

h2 {
    font-size: 56px;
    line-height: 1.15
}

p {
    color: var(--para-color);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 30px;
    margin-bottom: 0
}

main {
    background: #f7f7f7
}

.theme-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: 19px 42px;
    background: var(--theme-color);
    color: var(--white);
    border: 2px solid var(--theme-color);
    border-radius: 50px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    transition: color .4s ease, transform .3s ease, box-shadow .3s ease
}

.theme-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--white);
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .45s cubic-bezier(.7, 0, .2, 1);
    z-index: -1
}

.theme-btn::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -100%;
    width: 45%;
    height: 200%;
    background: rgba(255, 255, 255, .25);
    transform: rotate(25deg);
    transition: left .6s ease;
    pointer-events: none
}

.theme-btn:hover {
    color: var(--theme-color);
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(162, 0, 4, .25)
}

.theme-btn:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.theme-btn:hover::after {
    left: 150%
}

.theme-btn:active {
    transform: scale(.97)
}

.theme-btn:focus-visible {
    outline: 3px solid var(--theme-color);
    outline-offset: 4px
}

.theme-btn-white {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: 19px 42px;
    background: var(--white);
    color: var(--theme-color);
    border: 2px solid var(--white);
    border-radius: 50px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    transition: color .4s ease, transform .3s ease, box-shadow .3s ease
}

.theme-btn-white::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--theme-color);
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .45s cubic-bezier(.7, 0, .2, 1);
    z-index: -1
}

.theme-btn-white::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -100%;
    width: 45%;
    height: 200%;
    background: rgba(255, 255, 255, .25);
    transform: rotate(25deg);
    transition: left .6s ease;
    pointer-events: none
}

.theme-btn-white:hover {
    color: var(--white);
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(162, 0, 4, .25)
}

.theme-btn-white:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.theme-btn-white:hover::after {
    left: 150%
}

.theme-btn-white:active {
    transform: scale(.97)
}

.theme-btn-white:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 4px
}

.story-cta-btn.theme-btn-white {
    background-color: #fff;
    margin-left: 10px
}

.story-cta-btn.theme-btn-white:hover {
    color: #fff
}

.navbar-nav {
    padding: 0;
    display: flex;
    gap: 25px
}

.navbar-nav li {
    padding: 0
}

.navbar-nav li a {
    padding: 0 !important;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #080808;
    position: relative;
    transition: color .3s ease
}

.navbar-nav .nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 0;
    height: 2px;
    background: var(--theme-color);
    transition: width .3s ease
}

.navbar-nav .nav-link:hover {
    color: var(--theme-color)
}

.navbar-nav .nav-link:hover::after {
    width: 100%
}

.navbar-nav .nav-link.active {
    color: var(--theme-color);
    font-weight: 700
}

.navbar-nav .nav-link.active::after {
    width: 100%
}

.navbar-nav:has(.nav-link:hover) .nav-link.active:not(:hover)::after {
    width: 0
}

.navbar {
    display: flex;
    align-items: center
}

header {
    padding: 30px 0
}

.main-header-section {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1020;
    background: 0 0;
    transition: background .3s ease, box-shadow .3s ease, padding .3s ease
}

body.inner-page .main-header-section {
    background: #fff;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .08)
}

.main-header-section.header-scrolled {
    background: #fff;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .08);
    padding: 12px 0
}

.banner-sec {
    padding: 230px 0 130px;
    position: relative
}

.banner-text h1 {
    margin-bottom: 16px
}

.banner-text h4 {
    font-size: 26px;
    letter-spacing: 29%;
    margin-bottom: 30px;
    color: #9f000f
}

.banner-text p {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    margin-bottom: 50px
}

a.mega-promo-phone {
    background: 0 0;
    color: #fff !important
}

.banner-svgg1 {
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #e63d3b;
    border-radius: 50px;
    position: absolute;
    top: -100px;
    left: -2rem
}

.banner-svgg2 {
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #051d38;
    border-radius: 50px;
    position: absolute;
    top: -40px;
    right: -5rem
}

.banner-sec .container {
    position: relative
}

.rating-container {
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: system-ui, -apple-system, sans-serif;
    justify-content: center;
    margin-top: 70px
}

.avatar-group {
    display: flex
}

.avatar {
    width: 67px;
    height: 67px;
    border-radius: 50%;
    margin-left: -12px
}

.avatar:first-child {
    margin-left: 0
}

.stars {
    color: #f59e0b;
    font-size: 16px;
    display: flex;
    gap: 3px
}

.rating-text {
    font-size: 16px;
    font-weight: 500;
    color: #1f1f1f;
    margin: 0
}

.banner-text {
    position: relative;
    z-index: 1
}

.banner-text::before {
    content: "";
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(230, 61, 59, .3) 0, rgba(255, 206, 12, .25) 59%);
    filter: blur(100px);
    border-radius: 50%;
    z-index: -1;
    pointer-events: none
}

.reasons-section {
    position: relative;
    isolation: isolate;
    background: #2d3032;
    color: #fff;
    padding: 130px 0 0;
    overflow: hidden;
    clip-path: polygon(0 20%, 50% 0, 100% 20%, 100% 100%, 0 100%) !important;
    margin-top: -1px
}

.reasons-container {
    position: relative;
    z-index: 2
}

.reasons-top-left {
    position: absolute;
    top: -125px;
    left: 0;
    width: 32%;
    z-index: -1
}

.reasons-top-left img {
    width: 100%;
    height: auto;
    display: block
}

.reasons-top-right {
    position: absolute;
    top: -150px;
    right: 2%;
    width: 215px;
    z-index: 1;
    filter: drop-shadow(0 10px 12px rgba(230, 61, 59, .2))
}

.reasons-top-right img {
    display: block;
    width: 100%;
    height: auto
}

.reasons-heading {
    margin-bottom: 60px;
    padding-top: 0
}

.reasons-heading h5 {
    color: #fff;
    font-size: 40px;
    font-weight: 300;
    line-height: 1.4;
    margin: 0 0 8px
}

.reasons-heading h2 {
    color: #fff;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0
}

.reasons-row {
    margin: 0 auto
}

.reason-card {
    padding: 37px 30px;
    border-radius: 10px;
    transition: transform .3s ease, box-shadow .3s ease
}

.reason-dark {
    background: #191c1d;
    color: #fff
}

.reason-light {
    background: #f7f7f7;
    color: #171717
}

.reason-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, .18)
}

.reason-icon {
    display: flex;
    align-items: center;
    margin-bottom: 27px
}

.reason-icon i {
    font-size: 23px;
    font-weight: 400
}

.reason-dark .reason-icon i {
    color: #a8a8a8
}

.reason-light .reason-icon i {
    color: #171717
}

.reason-card h3 {
    font-family: Oswald, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 7px;
    text-transform: uppercase
}

.reason-dark h3 {
    color: #fff
}

.reason-light h3 {
    color: #171717
}

.reason-card p {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    margin: 0
}

.reason-dark p {
    color: #a9a9a9
}

.reason-light p {
    color: #666
}

.reasons-bottom-lines {
    position: relative;
    max-width: 1210px;
    height: 48px;
    margin: 11px auto 0;
    display: flex;
    justify-content: space-between
}

.reasons-bottom-lines span {
    width: 1px;
    height: 48px;
    background: #55595a
}

.redline {
    content: "";
    position: absolute;
    top: -80px;
    left: 50%;
    transform: translateX(-50%)
}

.blackline {
    content: "";
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%)
}

.banner-image1 {
    position: absolute;
    bottom: -9.2rem;
    width: 32%
}

.banner-image2 {
    position: absolute;
    right: 0;
    z-index: 1;
    bottom: -14rem;
    width: 22%
}

.theme-btn-arrow {
    display: inline-flex;
    gap: 10px
}

.publishing-services {
    position: relative;
    padding: 100px 0;
    background-image: url("../img/15.webp");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    overflow: clip
}

.services-heading {
    margin-bottom: 80px
}

.services-heading h2 {
    line-height: 1.12;
    font-weight: 900;
    color: #292929;
    margin-bottom: 0;
    letter-spacing: -.5px
}

.publishing-list {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.service-row {
    border-radius: 30px;
    overflow: hidden
}

.service-content {
    padding: 24px 50px 20px
}

.service-content h3 {
    font-size: 36px;
    line-height: 1.2;
    font-weight: 800;
    color: #303030;
    margin: 0 0 16px
}

.service-content p {
    line-height: 1.55;
    color: #333;
    margin: 0 0 32px;
    width: 90%
}

.service-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 18px 32px;
    background-color: #292929;
    color: #fff;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    border-radius: 30px;
    margin-top: auto;
    line-height: 100%;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color .35s ease, transform .3s ease, box-shadow .3s ease
}

.service-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--theme-color);
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .45s cubic-bezier(.7, 0, .2, 1);
    z-index: -1
}

.service-btn::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -80%;
    width: 40%;
    height: 200%;
    background: rgba(255, 255, 255, .22);
    transform: rotate(25deg);
    transition: left .55s ease;
    pointer-events: none
}

.service-btn i {
    transition: transform .35s ease
}

.service-btn:hover {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(162, 0, 4, .3)
}

.service-btn:hover::before {
    transform: scaleX(1);
    transform-origin: left
}

.service-btn:hover::after {
    left: 130%
}

.service-btn:hover i {
    transform: translateX(6px)
}

.service-btn:active {
    transform: scale(.97)
}

.service-image {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 56px;
    border-left: 12px dotted #fff
}

.service-image img {
    transition: transform .3s ease
}

.service-row:hover .service-image img {
    transform: scale(1.04)
}

.editing-row {
    background-color: #eee7e7
}

.cover-row {
    background-color: #ffebd3
}

.publishing-row {
    background-color: #e8f1ff
}

.audiobook-row {
    background-color: #f3e8ff
}

.about-sec {
    background: #f7f7f7
}

.about-image {
    position: relative
}

.about-image2 {
    position: absolute;
    top: 9rem;
    right: -9rem
}

.about-text {
    padding: 0 0 0 190px
}

.about-text h2 {
    margin-bottom: 30px;
    line-height: 1.2
}

.about-text p {
    margin-bottom: 20px;
    max-width: 64%
}

.about-text .theme-btn {
    margin-top: 30px
}

.stat-box {
    position: relative;
    padding: 20px 10px
}

.stat-box:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 100%;
    background-color: #e63d3b;
    opacity: .4
}

.stat-box:not(:last-child)::before {
    content: "";
    position: absolute;
    right: -8px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background-color: #8b0000;
    z-index: 2
}

.stat-number {
    font-size: 70px;
    font-weight: 300;
    margin-bottom: 30px;
    line-height: 1;
    font-family: var(--body-font)
}

.stat-text {
    font-size: 24px;
    margin: 0;
    line-height: 34px;
    font-weight: 300
}

section {
    padding: 100px 0
}

.book-slider-section {
    background-image: url(../img/27.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-color: #fbfbfb;
    position: relative;
    overflow: hidden
}

.custom-section-header {
    text-align: center;
    max-width: 802px;
    margin: 0 auto 80px auto
}

.custom-title {
    line-height: 1.15;
    margin-bottom: 16px;
    font-weight: 600
}

.custom-description {
    line-height: 1.6;
    margin: 0
}

.custom-book-swiper {
    max-width: 1600px;
    margin: 0 auto;
    padding: 30px 10px 40px
}

.custom-book-swiper .swiper-slide {
    height: auto;
    transition: opacity .4s ease
}

.book-card {
    width: 100%;
    border-radius: 6px;
    overflow: hidden;
    transform: scale(.92);
    transition: transform .5s ease, box-shadow .5s ease;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .1);
    background-color: #fff
}

.book-card img {
    width: 100%;
    aspect-ratio: 2/3;
    height: auto;
    object-fit: cover;
    display: block
}

.swiper-slide-active .book-card {
    transform: scale(1.02);
    z-index: 5
}

.custom-book-swiper .custom-swiper-pagination {
    position: static;
    transform: none
}

.custom-swiper-pagination {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    padding: 10px 0
}

.custom-swiper-pagination .swiper-pagination-bullet {
    width: 20px;
    height: 20px;
    background-color: #d9d9d9;
    opacity: 1;
    margin: 0 5px !important;
    transition: background-color .3s ease, transform .3s ease
}

.custom-swiper-pagination .swiper-pagination-bullet-active {
    background-color: #a20004;
    transform: scale(1.2)
}

.faq-section {
    background-color: #fff
}

.faq-main-title {
    text-align: center;
    color: #111;
    margin-bottom: 50px
}

.faq-container {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.faq-item {
    background-color: #efefef;
    border-radius: 15px;
    padding: 30px;
    cursor: pointer;
    transition: background-color .3s ease
}

.faq-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px
}

.faq-question {
    font-size: 18px;
    font-weight: 500;
    color: #000;
    margin: 0;
    font-family: var(--body-font)
}

.faq-icon {
    width: 32px;
    height: 32px;
    border: 1px solid #111;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #111;
    flex-shrink: 0
}

.faq-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease, margin-top .3s ease
}

.faq-item.active .faq-body {
    max-height: 200px;
    margin-top: 16px
}

.faq-answer {
    font-size: 1rem;
    color: #000;
    line-height: 1.5;
    margin: 0
}

.custom-section {
    background-color: #fff;
    padding: 80px 0 5vw;
    font-family: Arial, sans-serif;
    overflow: visible
}

.custom-heading {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: -2%;
    line-height: 1.2;
    margin-bottom: 20px
}

.custom-subtext {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 60px auto;
    line-height: 1.5
}

.custom-card-wrapper {
    position: relative;
    margin-top: 40px;
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%
}

.custom-section .row:has(> [class*=col] > .custom-card-wrapper)>[class*=col] {
    display: flex
}

.custom-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    padding: 50px 40px 30px 40px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .03);
    height: 100%;
    flex: 1 1 auto
}

.custom-icon-badge {
    position: absolute;
    top: -43px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    background-color: #d93838;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 9px solid #efefef
}

.custom-icon-badge svg {
    width: 24px;
    height: 24px;
    fill: #ffffff
}

.custom-card-title {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 14px;
    letter-spacing: .5px
}

.custom-card-desc {
    font-size: 16px;
    margin-bottom: 0
}

.ft-cta {
    display: none
}

body.inner-page .ft-cta {
    display: block;
    position: relative;
    padding: 0;
    overflow: hidden;
    margin-bottom: -70px
}

.ft-cta-inner::after,
.ft-cta-inner::before {
    content: "";
    position: absolute;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .12);
    pointer-events: none
}

.ft-cta-inner::before {
    width: 340px;
    height: 340px;
    left: -140px;
    top: -170px
}

.ft-cta-inner::after {
    width: 420px;
    height: 420px;
    right: -190px;
    bottom: -260px
}

.ft-cta-inner {
    overflow: hidden;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    background: linear-gradient(120deg, #c01418 0, var(--theme-color) 45%, #6e0002 100%);
    padding: 30px
}

.ft-cta-text {
    max-width: 720px
}

.ft-cta-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .85);
    margin-bottom: 10px
}

.ft-cta-text h2 {
    font-size: 35px;
    font-weight: 600;
    line-height: 1.15;
    color: #fff;
    margin-bottom: 14px
}

.ft-cta-text p {
    font-size: 14px;
    line-height: 1.4;
    color: rgba(255, 255, 255, .9);
    margin: 0
}

.ft-cta-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0
}

.ft-cta-call {
    white-space: nowrap
}

.ft-cta-chat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 17px 42px;
    background: #1c1c1c;
    color: #fff;
    border: 2px solid #1c1c1c;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background .3s ease, color .3s ease, transform .3s ease
}

.ft-cta-chat:hover {
    background: #fff;
    color: var(--theme-color);
    transform: translateY(-3px)
}

.custom-footer-section {
    color: #b0b0b0
}

.custom-footer-top {
    background-color: #383838;
    padding: 130px 0 60px
}

.custom-footer-logo {
    font-size: 25px;
    font-weight: 500;
    color: #fff;
    margin-bottom: 20px;
    letter-spacing: .5px;
    font-family: var(--body-font)
}

.custom-footer-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #c4c4c4;
    margin: 20px 0 0;
    padding-right: 15px
}

.custom-footer-title {
    font-size: 16px;
    font-weight: 600;
    color: #e63d3b;
    margin-bottom: 20px;
    font-family: var(--body-font)
}

.custom-footer-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.custom-footer-list li {
    position: relative;
    padding-left: 12px;
    margin-bottom: 10px
}

.custom-footer-list li::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 11px;
    color: #a0a0a0;
    font-size: 14px;
    width: 4px;
    height: 4px;
    background: #fff;
    border-radius: 50px
}

.custom-footer-list a {
    color: #fff;
    text-decoration: none;
    font-size: 16px;
    transition: color .2s ease
}

.custom-footer-list a:hover {
    color: #e63d3b
}

.custom-contact-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.custom-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px;
    font-size: 16px;
    color: #fff;
    line-height: 1.4
}

.custom-contact-list i {
    color: #e63d3b;
    font-size: 15px;
    margin-top: 3px;
    flex-shrink: 0
}

.custom-footer-bottom {
    background-color: #161616;
    padding: 22px 0;
    border-top: 1px solid rgba(255, 255, 255, .05)
}

.custom-copyright {
    font-size: 13px;
    color: #fff;
    margin: 0
}

.custom-social-icons {
    display: flex;
    justify-content: center;
    gap: 10px
}

.custom-social-icons a {
    width: 30px;
    height: 30px;
    background-color: #b80000;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    text-decoration: none;
    transition: background-color .2s ease
}

.custom-social-icons a:hover {
    background-color: #e63d3b
}

.custom-bottom-links {
    font-size: 13px
}

.custom-bottom-links a {
    color: #fff;
    text-decoration: none;
    transition: color .2s ease
}

.custom-bottom-links a:hover {
    color: #e63d3b
}

.custom-separator {
    color: #888;
    margin: 0 8px
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.footer-bottom ul {
    display: flex;
    padding: 0;
    gap: 20px;
    margin: 0
}

.footer-bottom ul li {
    color: #fff;
    list-style: none
}

.footer-bottom ul li a {
    color: #fff;
    font-family: var(--body-font)
}

.copyright p {
    color: #fff;
    font-family: var(--body-font)
}

.footer-bottom-sec {
    background: #000;
    padding: 30px 0
}

.publish-cta-sec {
    position: relative;
    z-index: 2;
    background: #383838;
    padding: 6.1vw 0 4.5vw;
    overflow: visible
}

.publish-cta-circle {
    position: absolute;
    left: -30.2vw;
    top: -7.8vw;
    width: 46.9vw;
    height: 46.9vw;
    background: var(--theme-color);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0
}

.publish-cta-book-left {
    position: absolute;
    left: .7vw;
    top: 3.5vw;
    width: 15.5vw;
    z-index: 1;
    pointer-events: none
}

.publish-cta-book-right {
    position: absolute;
    right: 0;
    bottom: 2.8vw;
    width: auto;
    height: min(49.7vw, max(calc((100vw - 1320px) * 1.645), calc(100% + 2.2vw + 30px)));
    z-index: 1;
    pointer-events: none
}

.publish-cta-content {
    position: relative;
    z-index: 2;
    padding-left: 18.5vw;
    padding-right: 27vw
}

.publish-cta-label {
    display: block;
    color: #e63d3b;
    font-family: var(--heading-font);
    font-size: max(16px, 1.35vw);
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
    margin-bottom: .5vw
}

.publish-cta-content h2 {
    color: var(--white);
    font-size: max(28px, 2.8vw);
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    margin-bottom: 1.2vw
}

.publish-cta-content p {
    color: #d9d9d9;
    font-size: max(14px, 1.1vw);
    font-weight: 400;
    line-height: 1.65;
    max-width: 49vw;
    margin-bottom: 2.6vw
}

.publish-cta-actions {
    display: flex;
    align-items: center;
    gap: 1.6vw
}

.publish-cta-btn {
    background: #e63d3b;
    border-color: #e63d3b;
    padding: 1.3vw 1.75vw;
    font-size: max(13px, 1.12vw);
    gap: .8vw
}

.publish-cta-btn:hover {
    color: #e63d3b
}

.publish-cta-arrow {
    width: 7.2vw;
    margin-top: -4.6vw
}

.shelves-sec {
    background: #f5f5f5;
    padding: 90px 0 100px
}

.shelves-title {
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--heading-color);
    margin-bottom: 56px
}

.shelves-swiper {
    overflow: hidden;
    padding-bottom: 0
}

.shelves-logos {
    display: flex;
    align-items: center
}

.shelves-logos .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto
}

.shelves-logos img {
    height: 84px;
    width: auto;
    max-width: 100%;
    object-fit: contain
}

.shelves-sec .shelves-swiper .shelves-pagination {
    position: static;
    transform: none
}

.shelves-pagination {
    display: none;
    justify-content: center;
    gap: 6px;
    margin-top: 30px
}

.shelves-pagination .swiper-pagination-bullet {
    width: 9px;
    height: 9px;
    margin: 0 !important;
    background: #c9c9c9;
    opacity: 1;
    transition: width .3s ease, background .3s ease
}

.shelves-pagination .swiper-pagination-bullet-active {
    width: 26px;
    border-radius: 6px;
    background: var(--theme-color)
}

.steps-sec {
    --k: 2.1px;
    position: relative;
    background: var(--white);
    padding: 2.5vw 0 8.5vw;
    overflow: hidden
}

.steps-waves {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none
}

.steps-waves svg {
    width: 100%;
    height: 100%
}

.steps-sec .container {
    position: relative;
    z-index: 1
}

.steps-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: calc(55 * var(--k))
}

.steps-head h2 {
    font-size: calc(20 * var(--k));
    line-height: 1.3;
    font-weight: 600;
    color: var(--heading-color)
}

.steps-head p {
    width: calc(192 * var(--k));
    font-size: calc(5.6 * var(--k));
    line-height: 1.65;
    font-weight: 400;
    color: #8f8f8f;
    margin-top: calc(3 * var(--k));
    margin-right: calc(-4 * var(--k))
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    row-gap: calc(49 * var(--k))
}

.step-card {
    position: relative;
    min-height: calc(113 * var(--k));
    padding: calc(31 * var(--k)) calc(13 * var(--k)) calc(14 * var(--k));
    text-align: center
}

.step-card-top {
    border: 1.5px dashed #cfcfcf;
    border-bottom: 0;
    border-radius: calc(10 * var(--k)) calc(10 * var(--k)) 0 0
}

.step-card-bottom::after {
    content: "";
    position: absolute;
    left: -1.5px;
    right: -1.5px;
    bottom: 0;
    height: calc(10 * var(--k));
    border: 1.5px dashed #cfcfcf;
    border-top: 0;
    border-radius: 0 0 calc(10 * var(--k)) calc(10 * var(--k));
    pointer-events: none
}

.step-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: calc(4 * var(--k));
    right: calc(4 * var(--k));
    height: 46%;
    border-radius: calc(10 * var(--k)) calc(10 * var(--k)) 0 0;
    background: linear-gradient(180deg, #e8403d 0, rgba(236, 86, 83, .85) 25%, rgba(244, 160, 158, .35) 62%, rgba(255, 255, 255, 0) 100%);
    z-index: 0;
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none
}

.step-card:hover::before {
    opacity: 1
}

.step-card>* {
    position: relative;
    z-index: 1
}

.step-num {
    position: absolute;
    top: calc(-15 * var(--k));
    left: 50%;
    transform: translateX(-50%);
    width: calc(30 * var(--k));
    height: calc(30 * var(--k));
    border-radius: 50%;
    background: #2d2d2d;
    border: calc(2.5 * var(--k)) solid var(--white);
    box-shadow: 0 calc(1.5 * var(--k)) calc(5 * var(--k)) rgba(0, 0, 0, .18);
    color: var(--white);
    font-family: var(--heading-font);
    font-size: calc(10.5 * var(--k));
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center
}

.step-card-bottom .step-num {
    position: absolute;
    top: auto;
    bottom: calc(-15 * var(--k));
    z-index: 2
}

.step-card h3 {
    font-family: var(--heading-font);
    font-size: calc(7.6 * var(--k));
    font-weight: 500;
    line-height: 1.2;
    color: var(--heading-color);
    margin-bottom: calc(7 * var(--k))
}

.step-card p {
    font-size: calc(5.5 * var(--k));
    line-height: 1.7;
    font-weight: 400;
    color: #8f8f8f
}

.story-cta-sec {
    position: relative;
    background: #151515;
    padding: 8vw 0 6vw;
    overflow: hidden
}

.story-cta-blur {
    position: absolute;
    inset: -40px;
    right: 35%;
    background: url("../img/img-cta.webp") center 30%/cover no-repeat;
    transform: scaleX(-1);
    filter: blur(22px) brightness(.35);
    opacity: .85;
    pointer-events: none
}

.story-cta-sec::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 55%;
    height: 100%;
    background: radial-gradient(ellipse at 70% 38%, rgba(150, 18, 24, .85) 0, rgba(110, 14, 20, .45) 38%, rgba(21, 21, 21, 0) 70%);
    pointer-events: none
}

.story-cta-sec::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(21, 21, 21, .55) 0, rgba(21, 21, 21, 0) 45%);
    pointer-events: none
}

.story-cta-content {
    position: relative;
    z-index: 3
}

.story-cta-content h2 {
    display: flex;
    flex-direction: column;
    line-height: 1
}

.story-cta-content h2 span {
    display: block
}

.story-line-1 {
    color: #e63d3b;
    font-size: 5.9vw;
    font-weight: 300;
    line-height: 1.02
}

.story-line-2 {
    color: var(--white);
    font-size: 7.5vw;
    font-weight: 700;
    line-height: 1
}

.story-line-3 {
    color: #e63d3b;
    font-size: 3.05vw;
    font-weight: 700;
    line-height: 1.15;
    margin-top: .3vw
}

.story-cta-content p {
    color: #e2e2e2;
    font-size: max(14px, 1.15vw);
    line-height: 1.6;
    font-weight: 400;
    max-width: 31vw;
    margin: 2.2vw 0 3.2vw
}

.story-cta-btn {
    background: #e63d3b;
    border-color: #e63d3b;
    padding: 1.25vw 1.7vw;
    font-size: max(13px, 1.12vw);
    gap: .8vw
}

.story-cta-btn:hover {
    color: #e63d3b
}

.story-cta-arrow {
    position: absolute;
    left: 50.5vw;
    top: 7.6vw;
    width: 8vw;
    z-index: 3;
    transform: rotate(40deg);
    pointer-events: none
}

.story-cta-img {
    position: absolute;
    right: 0;
    bottom: -30px;
    height: 38.5vw;
    width: auto;
    z-index: 2;
    pointer-events: none
}

@media (min-width:1200px) {
    .steps-sec {
        --k: 2.51px
    }
}

@media (min-width:1400px) {
    .steps-sec {
        --k: 2.91px
    }
}

img {
    height: auto
}

.theme-btn i {
    transition: transform .35s ease
}

.theme-btn:hover i {
    transform: translateX(6px)
}

.custom-card {
    transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease
}

.custom-card-wrapper:hover .custom-card {
    transform: translateY(-8px);
    border-color: rgba(162, 0, 4, .35);
    box-shadow: 0 18px 40px rgba(162, 0, 4, .12)
}

.custom-icon-badge {
    z-index: 2;
    transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), background-color .3s ease
}

.custom-card-wrapper:hover .custom-icon-badge {
    transform: translateX(-50%) translateY(-8px) rotate(-10deg) scale(1.06);
    background-color: var(--theme-color)
}

.reasons-row>[class*=col] {
    display: flex
}

.reason-card {
    width: 100%;
    height: 100%
}

.reason-icon i,
.reason-icon img {
    transition: transform .4s cubic-bezier(.34, 1.56, .64, 1)
}

.reason-card:hover .reason-icon i,
.reason-card:hover .reason-icon img {
    transform: scale(1.15) rotate(-8deg)
}

.step-card {
    transition: transform .35s ease
}

.step-card:hover {
    transform: translateY(-6px)
}

.step-num {
    transition: background .3s ease, box-shadow .3s ease
}

.step-card:hover .step-num {
    background: var(--theme-color);
    box-shadow: 0 8px 18px rgba(162, 0, 4, .35)
}

.step-card h3 {
    transition: color .3s ease
}

.step-card:hover h3 {
    color: #e63d3b
}

.book-card img {
    transition: transform .6s ease
}

.book-card:hover {
    box-shadow: 0 18px 36px rgba(0, 0, 0, .2)
}

.book-card:hover img {
    transform: scale(1.05)
}

.faq-icon {
    transition: background-color .3s ease, color .3s ease, transform .3s ease
}

.faq-item:hover {
    background-color: #e4e4e4
}

.faq-item:hover .faq-icon {
    background-color: #111;
    color: #fff
}

.shelves-logos img {
    transition: transform .35s ease, filter .35s ease
}

.shelves-logos img:hover {
    transform: translateY(-6px) scale(1.06);
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .15))
}

.logo-brand img {
    display: block;
    width: 180px;
    height: auto
}

.navbar-nav li a {
    white-space: nowrap
}

.mobile-menu-cta,
.mobile-menu-head {
    display: none
}

@media (min-width:992px) and (max-width:1399.98px) {
    .navbar-nav {
        gap: 22x
    }

    .navbar-nav li a {
        font-size: 14px
    }
}

@media (min-width:992px) and (max-width:1199.98px) {
    .logo-brand img {
        width: 150px
    }

    .navbar-nav {
        gap: 16px
    }

    .navbar-nav li a {
        font-size: 14px
    }
}

.menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    backdrop-filter: blur(2px);
    z-index: 1055;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease
}

.menu-backdrop.show {
    opacity: 1;
    pointer-events: auto;
    z-index: 0
}

body.menu-locked {
    overflow: hidden
}

@media (max-width:991.98px) {
    .logo-brand img {
        width: 150px
    }

    .navbar-toggler {
        border: 1px solid rgba(0, 0, 0, .15);
        padding: 6px 10px;
        box-shadow: none !important
    }

    .navbar-collapse#navbarNav {
        position: fixed;
        align-items: baseline;
        top: 0;
        left: 0;
        height: 100vh;
        height: 100dvh;
        width: min(340px, 86vw);
        display: flex !important;
        flex-direction: column;
        background: #191919;
        z-index: 1060;
        transform: translateX(-105%);
        visibility: hidden;
        transition: transform .45s cubic-bezier(.77, 0, .18, 1), visibility 0s linear .45s;
        overflow-y: auto;
        padding: 0;
        box-shadow: 8px 0 40px rgba(0, 0, 0, .35)
    }

    #navbarNav.menu-open {
        transform: translateX(0);
        visibility: visible;
        transition: transform .45s cubic-bezier(.77, 0, .18, 1), visibility 0s
    }

    .mobile-menu-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 18px 20px;
        border-bottom: 1px solid rgba(255, 255, 255, .08)
    }

    .mobile-menu-logo {
        width: 150px;
        height: auto
    }

    .mobile-menu-close {
        width: 38px;
        height: 38px;
        border: 1px solid rgba(255, 255, 255, .25);
        border-radius: 50%;
        background: 0 0;
        color: #fff;
        font-size: 15px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background .3s ease, transform .3s ease;
        position: absolute;
        right: 20px;
        top: 20px
    }

    .mobile-menu-close:hover {
        background: var(--theme-color);
        border-color: var(--theme-color);
        transform: rotate(90deg)
    }

    #navbarNav .navbar-nav {
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding: 12px 24px;
        margin: 0
    }

    #navbarNav .navbar-nav li {
        border-bottom: 1px solid rgba(255, 255, 255, .07);
        opacity: 0;
        transform: translateX(-20px);
        transition: opacity .35s ease, transform .35s ease
    }

    #navbarNav.menu-open .navbar-nav li {
        opacity: 1;
        transform: translateX(0)
    }

    #navbarNav.menu-open .navbar-nav li:first-child {
        transition-delay: 0.12s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(2) {
        transition-delay: 0.17s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(3) {
        transition-delay: 0.22s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(4) {
        transition-delay: 0.27s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(5) {
        transition-delay: 0.32s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(6) {
        transition-delay: 0.37s
    }

    #navbarNav.menu-open .navbar-nav li:nth-child(7) {
        transition-delay: 0.42s
    }

    #navbarNav .nav-link {
        display: block;
        padding: 16px 0 !important;
        color: #e6e6e6;
        font-size: 16px;
        transition: color .3s ease, padding-left .3s ease
    }

    #navbarNav .nav-link::after {
        display: none
    }

    #navbarNav .nav-link.active,
    #navbarNav .nav-link:hover {
        color: #fff;
        padding-left: 10px !important
    }

    .mobile-menu-cta {
        display: inline-flex;
        align-self: center;
        margin: auto 24px 30px;
        justify-content: center
    }
}

.inner-banner {
    position: relative;
    min-height: 620px;
    display: flex;
    align-items: flex-start;
    padding: 110px 0 200px;
    overflow: hidden;
    background: #f7f7f7;
    clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
    margin-top: 110px
}

.inner-banner-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    z-index: 0
}

.inner-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(10, 10, 10, .72) 0, rgba(10, 10, 10, .55) 55%, rgba(60, 0, 2, .55) 100%);
    -webkit-mask: url("../img/about/about-banner.webp") center bottom/cover no-repeat;
    mask: url("../img/about/about-banner.webp") center bottom/cover no-repeat;
    pointer-events: none
}

.inner-banner .container {
    position: relative;
    z-index: 1
}

.inner-banner-frame {
    position: relative;
    max-width: 960px;
    margin: 0 auto;
    padding: 50px 40px 0
}

.inner-banner-frame::after,
.inner-banner-frame::before {
    content: "";
    position: absolute;
    height: 1px;
    background: rgba(255, 255, 255, .22)
}

.inner-banner-frame::before {
    top: -1px;
    right: 100%;
    width: 50vw
}

.inner-banner-frame::after {
    top: 70px;
    left: 100%;
    width: 50vw
}

.inner-banner-icon {
    position: absolute;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 0 0 8px rgba(255, 255, 255, .08)
}

.inner-banner-icon-left {
    top: -26px;
    left: -26px;
    background: #e63d3b;
    color: #1f1f1f
}

.inner-banner-icon-right {
    top: 44px;
    right: -26px;
    background: #d9d9d9;
    color: #555
}

.inner-banner-content {
    text-align: center;
    max-width: 880px;
    margin: 0 auto
}

.inner-banner-label {
    display: inline-block;
    font-family: var(--heading-font);
    font-size: 16px;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: #e63d3b;
    margin-bottom: 10px
}

.inner-banner h1 {
    color: #fff;
    font-size: 60px;
    line-height: 1.15;
    margin-bottom: 18px
}

.inner-banner p {
    color: rgba(255, 255, 255, .75);
    font-size: 15px;
    line-height: 1.6;
    font-weight: 400;
    max-width: 560px;
    margin: 0 auto 40px
}

.inner-banner .theme-btn {
    font-size: 16px;
    text-transform: none;
    padding: 16px 32px
}

.ab-who {
    position: relative;
    padding: 110px 0 190px;
    background: #f7f7f7;
    overflow: hidden
}

.ab-who-img {
    position: relative;
    padding: 14px 0 0 14px;
    max-width: 100%
}

.ab-who-img::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 72%;
    height: 82%;
    border-radius: 24px;
    background: linear-gradient(160deg, #5b2b2b 0, #a20004 55%, #7a0003 100%)
}

.ab-who-img img {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    border-radius: 22px;
    transition: transform .5s ease
}

.ab-who-img:hover img {
    transform: translate(-6px, -6px)
}

.ab-who-text {
    max-width: 560px
}

.ab-who-text h2 {
    font-size: 48px;
    line-height: 1.2;
    margin-bottom: 28px
}

.ab-who-text p {
    font-size: 15px;
    line-height: 1.7;
    font-weight: 400
}

.ab-who-text p+p {
    margin-top: 22px
}

.ab-who-outline {
    position: absolute;
    left: 50%;
    bottom: -.18em;
    transform: translateX(-50%);
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(80px, 13vw, 230px);
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, 0.1);
    pointer-events: none;
    user-select: none
}

.ab-mission {
    padding: 110px 0;
    overflow: hidden;
    background: #fff
}

.ab-mission-head {
    display: flex;
    align-items: center;
    gap: 60px;
    margin-bottom: 70px
}

.ab-mission-head h2 {
    flex: 0 0 auto;
    max-width: 480px;
    font-size: 52px;
    line-height: 1.15
}

.ab-mission-head p {
    font-size: 16px;
    line-height: 1.75;
    font-weight: 400
}

.ab-mission-body {
    --img-edge: 330px;
    --icon: 190px;
    position: relative;
    padding: 40px 0
}

.ab-mission-img {
    position: absolute;
    top: 0;
    bottom: 0;
    right: calc(100% - var(--img-edge));
    width: 50vw;
    border-radius: 0 28px 28px 0;
    overflow: hidden;
    background: #c8141a
}

.ab-mission-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    mix-blend-mode: multiply;
    filter: grayscale(1) contrast(2.2) brightness(1.05)
}

.ab-mission-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 70px;
    padding-left: calc(var(--img-edge) - var(--icon)/ 2)
}

.ab-mission-item+.ab-mission-item {
    margin-top: 40px
}

.ab-mission-icon {
    flex: 0 0 var(--icon);
    width: var(--icon);
    height: var(--icon);
    border-radius: 50%;
    background: #ffd98a;
    border: 8px solid #fff;
    box-shadow: 0 0 0 10px rgba(255, 217, 138, .25), 0 14px 30px rgba(0, 0, 0, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    transition: transform .4s ease
}

.ab-mission-icon img {
    width: 55%;
    height: auto
}

.ab-mission-item:hover .ab-mission-icon {
    transform: scale(1.08) rotate(-4deg)
}

.ab-mission-content {
    border-left: 1px solid #cfcfcf;
    padding: 10px 0 10px 40px;
    max-width: 680px
}

.ab-mission-content h3 {
    font-size: 44px;
    margin-bottom: 16px;
    transition: color .3s ease
}

.ab-mission-item:hover h3 {
    color: var(--theme-color)
}

.ab-mission-content p {
    font-size: 15px;
    line-height: 1.75;
    font-weight: 400
}

.ab-oneplace {
    padding: 110px 0;
    background: #f1f0ee url("../img/about/oneplace-bg.webp") center/cover no-repeat
}

.ab-oneplace-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px
}

.ab-oneplace-head h2 {
    font-size: 48px;
    line-height: 1.2;
    margin-bottom: 20px
}

.ab-oneplace-head p {
    font-size: 14px;
    line-height: 1.7;
    font-weight: 400
}

.ab-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin: 0 auto 50px
}

.ab-card {
    position: relative;
    display: block;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 395/300;
    background: #222;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
    text-decoration: none;
    transition: transform .4s ease, box-shadow .4s ease
}

.ab-card>img:not(.ab-card-cta-img) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease
}

.ab-card:not(.ab-card-cta)::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, .78) 0, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, .2) 100%);
    pointer-events: none;
    transition: background .4s ease
}

.ab-card:not(.ab-card-cta):hover::before {
    background: linear-gradient(180deg, rgba(0, 0, 0, .85) 0, rgba(162, 0, 4, .45) 60%, rgba(162, 0, 4, .6) 100%)
}

.ab-card h3 {
    position: absolute;
    top: 20px;
    left: 20px;
    right: 20px;
    z-index: 2;
    margin: 0;
    color: #fff;
    font-size: 22px;
    font-weight: 600;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .45)
}

.ab-card-arrow {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 2;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--theme-color);
    border: 2px solid #fff;
    color: #fff;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .35s ease, background .35s ease
}

.ab-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .2)
}

.ab-card:hover>img:not(.ab-card-cta-img) {
    transform: scale(1.08)
}

.ab-card:hover .ab-card-arrow {
    transform: rotate(-45deg) scale(1.1);
    background: #e63d3b
}

.ab-card-cta {
    grid-column: span 2;
    aspect-ratio: auto;
    display: flex;
    align-items: center;
    background: linear-gradient(110deg, #a20004 0, #b5080c 55%, #8a0003 100%);
    overflow: hidden
}

.ab-card-cta-text {
    position: relative;
    z-index: 2;
    width: 52%;
    padding: 24px 0 24px 22px
}

.ab-card-cta-label {
    display: block;
    font-size: 12px;
    font-style: italic;
    font-weight: 600;
    color: #fff;
    margin-bottom: 4px
}

.ab-card-cta h3 {
    position: static;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 8px
}

.ab-card-cta p {
    color: rgba(255, 255, 255, .9);
    font-size: 11px;
    line-height: 1.5;
    font-weight: 400;
    margin-bottom: 14px
}

.ab-card-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 50px;
    background: #1f1f1f;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .3s ease, color .3s ease, transform .3s ease
}

.ab-card-cta-btn:hover {
    background: #fff;
    color: var(--theme-color);
    transform: translateY(-2px)
}

.ab-card-cta-btn i {
    transition: transform .3s ease
}

.ab-card-cta-btn:hover i {
    transform: translateX(4px)
}

.ab-card-cta-img {
    position: absolute;
    right: 0;
    bottom: 0;
    height: 105%;
    width: auto;
    z-index: 1;
    transition: transform .5s ease
}

.ab-card-cta:hover {
    transform: none
}

.ab-card-cta:hover .ab-card-cta-img {
    transform: rotate(-3deg) scale(1.04)
}

.ab-oneplace-btn {
    font-size: 16px;
    text-transform: none;
    padding: 16px 32px
}

.side-cta {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%) translateX(110%);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    opacity: 0;
    visibility: hidden;
    transition: transform .45s ease, opacity .45s ease, visibility .45s
}

.side-cta.side-cta-visible {
    transform: translateY(-50%) translateX(0);
    opacity: 1;
    visibility: visible
}

.side-cta-btn {
    position: relative;
    display: block;
    border: 0;
    cursor: pointer;
    background: #a20004;
    color: #fff;
    padding: 14px 10px;
    border-radius: 8px 0 0 8px;
    box-shadow: 0 8px 24px rgba(162, 0, 4, .45);
    transition: background .3s ease, box-shadow .3s ease
}

.side-cta-btn::before {
    content: "";
    position: absolute;
    left: -18px;
    top: 50%;
    transform: translateY(-50%);
    border: 10px solid transparent;
    border-right-color: #a20004;
    transition: border-right-color .3s ease;
    pointer-events: none
}

.side-cta-btn span {
    display: block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    white-space: nowrap;
    font-family: Anton, sans-serif;
    letter-spacing: 3px
}

.side-cta-btn:hover {
    background: #c8141a;
    box-shadow: 0 10px 30px rgba(162, 0, 4, .6)
}

.side-cta-btn:hover::before {
    border-right-color: #c8141a
}

.side-phone-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 56px;
    background: #161616;
    border-radius: 8px 0 0 8px;
    transition: background .3s ease
}

.side-phone-btn::before {
    content: "";
    position: absolute;
    left: -18px;
    top: 50%;
    transform: translateY(-50%);
    border: 10px solid transparent;
    border-right-color: #161616;
    transition: border-right-color .3s ease
}

.side-phone-btn:hover {
    background: #a20004
}

.side-phone-btn:hover::before {
    border-right-color: #a20004
}

.side-phone-btn img {
    width: 22px;
    height: 22px;
    filter: brightness(0) invert(1)
}

.lead-popup {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    visibility: hidden;
    opacity: 0;
    transition: opacity .35s ease, visibility .35s
}

.lead-popup.popup-open {
    visibility: visible;
    opacity: 1
}

.lead-popup-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 8, 8, .82);
    backdrop-filter: blur(3px)
}

.lead-popup-dialog {
    position: relative;
    width: min(900px, 100%, calc((100vh - 40px) * 995 / 721));
    aspect-ratio: 995/721;
    container-type: inline-size;
    transform: translateY(30px) scale(.96);
    transition: transform .45s cubic-bezier(.22, 1, .36, 1)
}

.popup-open .lead-popup-dialog {
    transform: translateY(0) scale(1)
}

.lead-popup-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .45));
    pointer-events: none
}

.lead-popup-badge {
    position: absolute;
    top: -2.2cqw;
    left: 34.5cqw;
    width: 11cqw;
    height: auto;
    z-index: 3;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .3));
    animation: popupBadgeFloat 3.5s ease-in-out infinite
}

@keyframes popupBadgeFloat {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-6px)
    }
}

.lead-popup-close {
    position: absolute;
    top: 2.2cqw;
    right: 5.4cqw;
    z-index: 4;
    width: 3.4cqw;
    height: 3.4cqw;
    min-width: 26px;
    min-height: 26px;
    padding: 0;
    border: 0;
    background: 0 0;
    color: #fff;
    font-size: max(2.6cqw, 20px);
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .3s ease, color .3s ease
}

.lead-popup-close:hover {
    color: #ffd98a;
    transform: rotate(90deg)
}

.lead-popup-panel {
    position: absolute;
    top: 4.6cqw;
    left: 47.5cqw;
    right: 6.4cqw;
    z-index: 2;
    color: #fff;
    text-align: center
}

.lead-popup-kicker {
    display: inline-flex;
    align-items: center;
    gap: 1.2cqw;
    font-size: 1.55cqw;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: .5cqw
}

.lead-popup-kicker::after,
.lead-popup-kicker::before {
    content: "";
    width: 3.4cqw;
    height: 2px;
    background: #ff3b3f
}

.lead-popup-title {
    font-family: Poppins, Inter, sans-serif;
    font-size: 3.3cqw;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 0 0 .7cqw;
    text-transform: none;
    letter-spacing: -.01em
}

.lead-popup-title em {
    font-style: normal;
    color: #ff3b3f
}

.lead-popup-sub {
    font-size: 1.3cqw;
    line-height: 1.5;
    color: rgba(255, 255, 255, .9);
    margin: 0 0 2cqw
}

.lead-popup-form .row {
    margin: 0;
    --bs-gutter-x: 0
}

.lead-popup-form .row>* {
    padding: 0
}

.lead-popup-form .mb-3,
.lead-popup-form .mb-4 {
    margin-bottom: 1.3cqw !important
}

.lead-popup-form .form-control,
.lead-popup-form .phone-group .iti {
    width: 100%;
    height: 5.4cqw;
    min-height: 40px;
    border: 0;
    border-radius: .8cqw;
    background: #fff;
    color: #161616;
    font-size: max(1.4cqw, 13px);
    padding: 0 2cqw;
    box-shadow: none;
    transition: box-shadow .25s ease
}

.lead-popup-form .phone-group .iti {
    padding: 0 1cqw 0 0
}

.lead-popup-form .contact-phone::placeholder,
.lead-popup-form .form-control::placeholder {
    color: #8a8a8a;
    opacity: 1
}

.lead-popup-form .form-control:focus,
.lead-popup-form .phone-group .iti:focus-within {
    box-shadow: 0 0 0 3px rgba(255, 59, 63, .45);
    outline: 0
}

.lead-popup-form .phone-group {
    min-height: 0 !important
}

.lead-popup-form .phone-group .iti .contact-phone {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    border: 0;
    background: 0 0;
    color: #161616;
    font-size: inherit;
    outline: 0;
    padding: 0
}

.lead-popup-form textarea.form-control {
    height: 8.2cqw;
    min-height: 70px;
    padding: 1.4cqw 2cqw;
    resize: none
}

.lead-popup .contact-form button.contact-submit-btn {
    position: relative;
    width: 100%;
    height: 6cqw;
    min-height: 44px;
    margin: .6cqw 0 0;
    padding: 0 2cqw;
    border-width: 2px !important;
    border-color: #e0262b !important;
    border-radius: 1cqw;
    background: linear-gradient(180deg, #2a2a2a 0, #050505 100%);
    color: #fff;
    font-family: Poppins, Inter, sans-serif;
    font-size: max(1.6cqw, 14px);
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8cqw;
    cursor: pointer;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease, background .3s ease
}

.lead-popup .contact-form button.contact-submit-btn::after {
    content: "\f35a";
    font-family: "Font Awesome 7 Free", "Font Awesome 6 Free";
    font-weight: 400;
    font-size: 1.15em;
    transition: transform .3s ease
}

.lead-popup .contact-form button.contact-submit-btn:hover {
    background: linear-gradient(180deg, #a20004 0, #6d0003 100%);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
    transform: translateY(-2px)
}

.lead-popup .contact-form button.contact-submit-btn:hover::after {
    transform: translateX(4px)
}

.lead-popup .contact-form button.contact-submit-btn:disabled {
    opacity: .75;
    cursor: wait
}

.lead-popup-form .mb-3,
.lead-popup-form .mb-4 {
    position: relative
}

.lead-popup-form .error-message {
    position: absolute;
    left: 2px;
    top: 100%;
    color: #ffd98a !important;
    text-align: left;
    font-size: 10px !important;
    line-height: 1.2;
    margin-top: 1px !important
}

.lead-popup-form .contact-error-message {
    display: block;
    color: #ffd98a;
    font-size: 12px;
    font-weight: 500
}

body.popup-locked {
    overflow: hidden
}

.bp-genres {
    position: relative;
    padding: 110px 0 0;
    overflow: hidden;
    background: #fff url("../img/sec-bg.webp") center top/cover no-repeat
}

.bp-genres .container {
    position: relative;
    z-index: 2
}

.bp-genres-group {
    text-align: center
}

.bp-genres-group+.bp-genres-group {
    margin-top: 80px
}

.bp-genres-head h3,
.bp-genres-head h4 {
    font-family: var(--heading-font);
    font-size: 56px;
    line-height: 1.1;
    margin: 0
}

.bp-genres-head h3 {
    font-weight: 700;
    color: var(--theme-color)
}

.bp-genres-head h4 {
    font-weight: 400;
    letter-spacing: .06em;
    color: #171717;
    margin-bottom: 34px
}

.bp-genres-pills {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px 14px;
    max-width: 1010px
}

.bp-genres-pills-narrow {
    max-width: 880px
}

.bp-pill {
    border: 1px dashed #cfcfcf;
    border-radius: 50px;
    background: #fff;
    color: #3a3a3a;
    font-size: 15px;
    font-weight: 500;
    padding: 12px 26px;
    cursor: default;
    transition: border-color .3s ease, color .3s ease, background .3s ease, transform .3s ease, box-shadow .3s ease
}

.bp-genres-visual {
    position: relative;
    margin-top: 70px;
    text-align: center
}

.bp-genres-watermark {
    position: absolute;
    left: 50%;
    bottom: -.16em;
    transform: translateX(-50%);
    z-index: 0;
    margin: 0;
    font-family: var(--heading-font);
    font-size: clamp(110px, 21vw, 400px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1.5px #d4d4d4;
    pointer-events: none;
    user-select: none
}

.bp-genres-img {
    position: relative;
    z-index: 1;
    display: inline-block
}

.bp-genres-img img {
    width: 520px;
    max-width: 82vw;
    height: auto;
    display: block
}

.gws {
    overflow: hidden;
    padding: 0
}

.gws-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 635px
}

.gws-text {
    display: flex;
    align-items: center;
    background: #fff;
    padding: 60px 0
}

.gws-text-dark {
    background: #1b1b1b
}

.gws-text-inner {
    width: 100%;
    max-width: 660px;
    padding: 0 100px 0 15px
}

.gws-row .gws-text:first-child .gws-text-inner {
    margin-left: auto
}

.gws-row .gws-text:last-child .gws-text-inner {
    margin-right: auto;
    padding-left: 100px
}

.gws-text h3 {
    font-size: 52px;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.1;
    color: #141414;
    margin-bottom: 22px
}

.gws-text-dark h3 {
    color: #fff
}

.gws-text .gws-lead {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    line-height: 1.6;
    margin-bottom: 14px
}

.gws-text-dark .gws-lead {
    color: #e8e8e8
}

.gws-text p:not(.gws-lead) {
    font-size: 13px;
    color: #6f6f6f;
    line-height: 1.75;
    margin: 0
}

.gws-text-dark p:not(.gws-lead) {
    color: #b5b5b5
}

.gws-img {
    position: relative;
    overflow: hidden;
    min-height: 320px
}

.gws-img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s ease
}

.gws-row:hover .gws-img img {
    transform: scale(1.05)
}

.ed-writers {
    background: #fff
}

.ed-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px
}

.ed-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 290px;
    padding: 40px 0 40px 40px;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 18px;
    overflow: hidden;
    transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease
}

.ed-card:hover {
    transform: translateY(-6px);
    border-color: rgba(162, 0, 4, .25);
    box-shadow: 0 22px 44px rgba(0, 0, 0, .08)
}

.ed-card-text {
    flex: 1 1 auto;
    position: relative;
    z-index: 1
}

.ed-card-text h3 {
    font-size: 24px;
    font-weight: 600;
    color: #171717;
    margin-bottom: 14px;
    transition: color .3s ease
}

.ed-card:hover .ed-card-text h3 {
    color: var(--theme-color)
}

.ed-card-text p {
    font-size: 14px;
    line-height: 1.7;
    color: #6f6f6f;
    margin: 0
}

.ed-card-media {
    position: relative;
    flex: 0 0 230px;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-start
}

.ed-card-media::before {
    content: "";
    position: absolute;
    top: -40px;
    bottom: -40px;
    right: -1px;
    width: 140px;
    background: linear-gradient(160deg, #c8141a 0, #8a0003 100%);
    border-radius: 140px 0 0 140px;
    transition: width .5s cubic-bezier(.22, 1, .36, 1)
}

.ed-card:hover .ed-card-media::before {
    width: 160px
}

.ed-card-media img {
    position: relative;
    z-index: 1;
    width: 250px;
    height: auto;
    filter: drop-shadow(0 14px 18px rgba(0, 0, 0, .25));
    transition: transform .5s ease
}

.ed-card:hover .ed-card-media img {
    transform: rotate(-4deg) scale(1.05)
}

.ed-process {
    background: #f7f7f7
}

.ed-timeline {
    position: relative;
    max-width: 1000px;
    margin: 0 auto
}

.ed-timeline::before {
    content: "";
    position: absolute;
    top: 30px;
    bottom: 30px;
    left: 50%;
    border-left: 2px dashed #d0d0d0;
    transform: translateX(-1px)
}

.ed-step {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 64px 1fr;
    align-items: center;
    gap: 40px
}

.ed-step+.ed-step {
    margin-top: 40px
}

.ed-step-media {
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
    width: 100%;
    max-width: 406px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .08)
}

.ed-step-media img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .6s ease
}

.ed-step:hover .ed-step-media img {
    transform: scale(1.06)
}

.ed-step-num {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    z-index: 1;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--theme-color);
    color: #fff;
    font-family: var(--heading-font);
    font-size: 20px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 8px #f7f7f7, 0 0 0 9px rgba(162, 0, 4, .2);
    transition: transform .4s ease, background .3s ease
}

.ed-step:hover .ed-step-num {
    transform: scale(1.1);
    background: #171717
}

.ed-step-text {
    grid-column: 3;
    grid-row: 1;
    max-width: 360px
}

.ed-step-text h3 {
    font-size: 22px;
    font-weight: 600;
    color: #171717;
    margin-bottom: 10px
}

.ed-step-text p {
    font-size: 15px;
    line-height: 1.6;
    color: #6f6f6f;
    margin: 0
}

.ed-step-rev .ed-step-media {
    grid-column: 3;
    justify-self: start
}

.ed-step-rev .ed-step-text {
    grid-column: 1;
    justify-self: end;
    text-align: right
}

.ed-cta {
    position: relative;
    padding: 0;
    background: #f7f7f7
}

.ed-cta-circle {
    position: absolute;
    z-index: 2;
    border-radius: 50%;
    background: linear-gradient(160deg, #c8141a 0, #8a0003 100%)
}

.ed-cta-circle-left {
    width: 37vw;
    height: 37vw;
    max-width: 720px;
    max-height: 720px;
    left: -22vw;
    top: 60px;
    opacity: .5
}

.ed-cta-circle-right {
    width: 37vw;
    height: 37vw;
    max-width: 640px;
    max-height: 640px;
    right: -22vw;
    bottom: 60px
}

.ed-cta-band {
    position: relative;
    z-index: 1;
    background: #262626;
    padding: 110px 0;
    overflow: hidden
}

.ed-cta-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left 30%;
    -webkit-mask: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.75) 35%, transparent 70%);
    mask: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.75) 35%, transparent 70%);
    opacity: .55
}

.ed-cta-band::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20, 20, 20, .25) 0, rgba(30, 30, 30, .85) 60%)
}

.ed-cta-band .container {
    position: relative;
    z-index: 2
}

.ed-cta-content {
    max-width: 860px;
    margin: 0 auto;
    text-align: center
}

.ed-cta-label {
    display: block;
    font-family: var(--heading-font);
    font-size: 26px;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #e63d3b;
    margin-bottom: 8px
}

.ed-cta-content h2 {
    font-size: 50px;
    font-weight: 600;
    line-height: 1.15;
    color: #fff;
    margin-bottom: 18px
}

.ed-cta-content p {
    font-size: 17px;
    line-height: 1.6;
    color: #dedede;
    max-width: 640px;
    margin: 0 auto 34px
}

.ed-cta-action {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap
}

.ed-cta-btn {
    background: #e63d3b;
    border-color: #e63d3b;
    border-radius: 50px
}

.ed-cta-btn:hover {
    color: #e63d3b
}

.ed-cta-arrow {
    position: absolute;
    left: calc(100% + 18px);
    bottom: 10px;
    width: 96px;
    height: auto;
    transform: scaleY(-1) rotate(10deg);
    filter: brightness(0) invert(1);
    pointer-events: none
}

.cd-process {
    position: relative;
    background: #fff;
    padding-bottom: 100px;
    overflow: hidden
}

.cd-dots {
    position: absolute;
    width: 200px;
    height: 200px;
    background-image: radial-gradient(#2b2b2b 2.2px, transparent 2.6px);
    background-size: 16px 16px;
    opacity: .9;
    pointer-events: none;
    z-index: 0
}

.cd-dots-tl {
    left: 9vw;
    top: 18%
}

.cd-dots-br {
    right: 9vw;
    bottom: 16%
}

.cd-process::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 400px;
    height: 250px;
    background: #1b1b1b;
    opacity: .9;
    pointer-events: none
}

.cd-process .custom-heading {
    margin-bottom: 14px
}

.cd-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 40px auto 0;
    box-shadow: 0 14px 50px rgba(0, 0, 0, .1)
}

.cd-cell {
    aspect-ratio: 1/1.05;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    overflow: hidden
}

.cd-cell-text {
    flex-direction: column;
    padding: 30px 34px;
    transition: all .5s ease
}

.cd-cell-text:hover {
    background: linear-gradient(135deg, #fff 0, #000 100%);
    transition: all .5s ease
}

.cd-cell-text:hover p {
    color: #fff;
    transition: all .5s ease
}

.cd-num {
    font-family: var(--heading-font);
    font-size: 40px;
    font-weight: 600;
    color: var(--theme-color);
    line-height: 1;
    margin-bottom: 12px
}

.cd-cell-text h3 {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
    color: #171717;
    margin-bottom: 14px
}

.cd-cell-text p {
    font-size: 15px;
    line-height: 1.5;
    color: #7a7a7a;
    margin: 0
}

.cd-cell-img {
    padding: 0
}

.cd-cell-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s ease
}

.cd-cell:hover .cd-cell-img img {
    transform: scale(1.06)
}

.cd-types {
    background: #f7f7f7
}

.cd-type-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin: 50px auto 0
}

.cd-type-card {
    background: #fff;
    padding: 22px 22px 30px;
    border-radius: 6px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .09);
    transition: transform .4s ease, box-shadow .4s ease
}

.cd-type-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 26px 50px rgba(0, 0, 0, .14)
}

.cd-type-img {
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 20px
}

.cd-type-img img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform .6s ease
}

.cd-type-card:hover .cd-type-img img {
    transform: scale(1.05)
}

.cd-type-card h3 {
    font-size: 18px;
    font-weight: 600;
    color: #171717;
    margin-bottom: 12px
}

.cd-type-card h3::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    background: var(--theme-color);
    margin-top: 10px;
    transition: width .4s ease
}

.cd-type-card:hover h3::after {
    width: 80px
}

.cd-type-card p {
    font-size: 13px;
    line-height: 1.7;
    color: #7a7a7a;
    margin: 0
}

.pb-authors {
    overflow: hidden
}

.pb-authors-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 60px;
    align-items: start
}

.pb-authors-title {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.12;
    color: #171717;
    margin-bottom: 50px
}

.pb-authors-items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 40px;
    margin-bottom: 46px
}

.pb-author-item h3 {
    font-size: 19px;
    font-weight: 700;
    color: #171717;
    margin-bottom: 16px;
    padding-bottom: 12px;
    position: relative
}

.pb-author-item h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 54px;
    height: 3px;
    background: var(--theme-color);
    transition: width .35s ease
}

.pb-author-item:hover h3::after {
    width: 90px
}

.pb-author-item p {
    font-size: 13px;
    line-height: 1.65;
    color: #7a7a7a;
    margin: 0
}

.pb-authors-btn {
    background: var(--theme-color);
    border-color: var(--theme-color);
    border-radius: 50px;
    padding: 15px 30px
}

.pb-authors-btn:hover {
    color: var(--theme-color)
}

.pb-authors-right>p {
    font-size: 14px;
    line-height: 1.7;
    color: #6f6f6f;
    margin: 0 0 30px
}

.pb-authors-img img {
    width: 100%;
    max-width: 560px;
    height: auto;
    display: block;
    margin-left: auto
}

.pb-steps {
    position: relative;
    background: #f7f7f7;
    overflow: hidden
}

.pb-steps-swirl {
    position: absolute;
    left: 3vw;
    top: 80px;
    width: clamp(90px, 9vw, 170px);
    height: auto;
    pointer-events: none
}

.pb-steps-quarter {
    position: absolute;
    right: -12vw;
    bottom: -16vw;
    width: 30vw;
    height: 30vw;
    border-radius: 50%;
    background: linear-gradient(160deg, #c8141a 0, #8a0003 100%);
    pointer-events: none
}

.pb-steps .container {
    position: relative;
    z-index: 1
}

.pb-list {
    max-width: 980px;
    margin: 30px auto 0
}

.pb-row {
    display: grid;
    grid-template-columns: 0.9fr 120px 1.6fr;
    align-items: center;
    gap: 30px;
    padding: 26px 10px;
    border-bottom: 1px solid #dedede;
    transition: padding-left .35s ease
}

.pb-row:hover {
    padding-left: 26px
}

.pb-row h3 {
    font-size: 20px;
    font-weight: 600;
    color: #171717;
    margin: 0;
    transition: color .3s ease
}

.pb-row:hover h3 {
    color: var(--theme-color)
}

.pb-row-num {
    font-family: var(--heading-font);
    font-size: 58px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    color: transparent;
    -webkit-text-stroke: 1.6px var(--theme-color);
    transition: transform .4s ease
}

.pb-row:hover .pb-row-num {
    transform: scale(1.1)
}

.pb-row p {
    font-size: 13px;
    line-height: 1.6;
    color: #7a7a7a;
    margin: 0
}

.pb-cta {
    padding: 0;
    background: #fff
}

.pb-cta .ed-cta-circle-left {
    width: 27vw;
    height: 27vw;
    max-width: 720px;
    max-height: 720px;
    left: -330px;
    top: 12px;
    opacity: .5
}

.pb-cta .ed-cta-circle-right {
    z-index: 0;
    width: 46vw;
    height: 46vw;
    max-width: 880px;
    max-height: 880px;
    right: -14vw;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%)
}

.pb-cta .ed-cta-band {
    padding: 80px 0;
    overflow: hidden
}

.pb-cta .ed-cta-bg {
    -webkit-mask: none;
    mask: none;
    object-fit: contain;
    object-position: right center;
    opacity: 1;
    right: 4%;
    left: auto;
    width: 44%;
    height: auto;
    max-height: 92%;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    z-index: 1;
    filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .4))
}

.pb-cta .ed-cta-band::after {
    display: none
}

.pb-cta .ed-cta-content {
    max-width: 46%;
    margin: 0;
    text-align: left
}

.pb-cta .ed-cta-content p {
    margin: 0 0 30px;
    max-width: 420px
}

.pb-cta .ed-cta-arrow {
    left: calc(100% + 20px);
    bottom: auto;
    top: -45%;
    width: 82px;
    transform: rotate(6deg)
}

.bm-tips {
    background: #fff;
    overflow: hidden
}

.bm-tips-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 70px;
    align-items: center
}

.bm-tips-text h2 {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
    color: #171717;
    margin-bottom: 26px
}

.bm-tips-text>p {
    font-size: 13px;
    line-height: 1.75;
    color: #7a7a7a;
    margin-bottom: 20px
}

.bm-checks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 40px;
    margin: 34px 0 40px
}

.bm-check-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 500;
    color: #2b2b2b;
    transition: color .3s ease, transform .3s ease
}

.bm-check-item:hover {
    color: var(--theme-color);
    transform: translateX(4px)
}

.bm-tick {
    position: relative;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 2px solid var(--theme-color);
    border-radius: 50%;
    transition: background .3s ease, transform .3s ease
}

.bm-tick::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 5px;
    width: 8px;
    height: 4px;
    border-left: 2px solid var(--theme-color);
    border-bottom: 2px solid var(--theme-color);
    transform: rotate(-45deg) translateY(-1px);
    transition: border-color .3s ease
}

.bm-check-item:hover .bm-tick {
    background: var(--theme-color);
    transform: scale(1.1)
}

.bm-check-item:hover .bm-tick::after {
    border-color: #fff
}

.bm-btn {
    background: var(--theme-color);
    border-color: var(--theme-color);
    border-radius: 50px;
    padding: 15px 30px
}

.bm-btn:hover {
    color: var(--theme-color)
}

.bm-tips-media {
    position: relative;
    max-width: 460px;
    margin-left: auto
}

.bm-tips-glow {
    position: absolute;
    inset: -18% -30% -30% -20%;
    background: radial-gradient(ellipse at -12% 22%, rgba(229, 79, 64, .32) 0, transparent -58%), radial-gradient(ellipse at 70% 8%, rgba(255, 196, 107, .5) 0, transparent 55%);
    filter: blur(10px);
    pointer-events: none;
    z-index: 0
}

.bm-tips-img {
    position: relative;
    z-index: 1;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .18)
}

.bm-tips-img img {
    display: block;
    width: 100%;
    height: auto
}

.bm-tips-curl {
    position: absolute;
    top: -46px;
    right: -34px;
    z-index: 2;
    width: 96px;
    height: auto;
    transform: rotate(96deg);
    pointer-events: none
}

.bm-plans {
    position: relative;
    background: #fbfbfb;
    overflow: hidden
}

.bm-deco {
    position: absolute;
    z-index: 0;
    pointer-events: none
}

.bm-deco-desk {
    left: -30px;
    top: 0;
    width: clamp(250px, 30vw, 600px);
    transform: rotate(4deg)
}

.bm-deco-swirl {
    right: 0;
    top: 100px;
    width: clamp(90px, 10vw, 100px);
    transform: rotate(0) !important;
    opacity: 1
}

.bm-deco-letter {
    right: -40px;
    bottom: -60px;
    width: clamp(220px, 26vw, 380px);
    opacity: .9
}

.bm-plans .container {
    position: relative;
    z-index: 1
}

.bm-plans .custom-heading {
    margin-bottom: 16px
}

.bm-plans .custom-subtext {
    margin-bottom: 56px
}

.bm-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1060px;
    margin: 0 auto 50px
}

.bm-grid::after,
.bm-grid::before {
    content: "";
    position: absolute;
    z-index: 2;
    width: 12px;
    height: 12px;
    background: var(--theme-color)
}

.bm-grid::before {
    left: 33.33%;
    top: 50%;
    transform: translate(-50%, -50%)
}

.bm-grid::after {
    left: 66.66%;
    top: 50%;
    transform: translate(-50%, -50%)
}

.bm-cell {
    padding: 34px 40px;
    transition: transform .35s ease;
    position: relative
}

.bm-cell .sm-before {
    position: absolute;
    height: 40px;
    width: 2px;
    background: var(--theme-color)
}

.bm-cell .sm-before.top {
    top: 0;
    right: 0;
    transform: translateX(-50%)
}

.bm-cell .sm-before.bottom {
    bottom: 0;
    right: 0;
    transform: translateX(-50%)
}

.bm-cell:hover {
    transform: translateY(-6px)
}

.bm-cell:nth-child(3n),
.bm-cell:nth-child(3n+2) {
    border-left: 1px solid #e6e6e6
}

.bm-cell:nth-child(n+4) {
    border-top: 1px solid #e6e6e6
}

.bm-cell h3 {
    font-size: 20px;
    font-weight: 600;
    color: #171717;
    margin-bottom: 14px;
    transition: color .3s ease
}

.bm-cell:hover h3 {
    color: var(--theme-color)
}

.bm-cell p {
    font-size: 13px;
    line-height: 1.7;
    color: #8a8a8a;
    margin: 0
}

.bm-plans .text-center {
    position: relative;
    z-index: 1
}

.ab-prod {
    background: #fff;
    overflow: hidden;
    position: relative
}

.ab-prod .custom-subtext {
    margin: 0 auto 150px auto
}

.ab-prod-grid {
    display: grid;
    grid-template-columns: 1fr
}

.ab-prod-media {
    position: absolute;
    left: 0;
    bottom: 0;
    width: min(750px, 46%);
    max-width: none;
    height: auto;
    pointer-events: none
}

.ab-prod-media img {
    display: block;
    width: 100%;
    height: auto
}

.ab-prod-list {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 40px;
    max-width: 55%;
    margin-left: auto
}

.ab-prod-item h3 {
    font-size: 18px;
    font-weight: 700;
    color: #171717;
    margin-bottom: 14px;
    padding-bottom: 12px;
    position: relative;
    transition: color .3s ease
}

.ab-prod-item h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 54px;
    height: 3px;
    background: var(--theme-color);
    transition: width .35s ease
}

.ab-prod-item:hover h3 {
    color: var(--theme-color)
}

.ab-prod-item:hover h3::after {
    width: 90px
}

.ab-prod-item p {
    font-size: 13px;
    line-height: 1.65;
    color: #7a7a7a;
    margin: 0
}

.ab-prod-btn {
    grid-column: 1/-1;
    justify-self: start;
    background: var(--theme-color);
    border-color: var(--theme-color);
    border-radius: 50px;
    padding: 15px 30px
}

.ab-prod-btn:hover {
    color: var(--theme-color)
}

.aw-career {
    padding: 0;
    background: #fff;
    overflow: hidden
}

.aw-career-strip {
    background: linear-gradient(140deg, #b3080e 0, #8a0003 100%);
    padding: 84px 0 170px
}

.aw-career-head {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px;
    align-items: center
}

.aw-career-head h2 {
    font-size: 46px;
    font-weight: 700;
    line-height: 1.15;
    color: #fff;
    margin: 0
}

.aw-career-head p {
    font-size: 13px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .85);
    margin: 0;
    max-width: 460px
}

.aw-career-panel {
    position: relative;
    z-index: 2;
    background: #f4f4f4;
    margin-top: -110px;
    margin-bottom: 90px;
    padding: 50px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .1)
}

.aw-career-items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 44px 34px
}

.aw-item-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: var(--theme-color);
    color: #fff;
    font-size: 12px;
    margin-bottom: 12px;
    transition: transform .3s ease
}

.aw-item:hover .aw-item-ic {
    transform: scale(1.15) rotate(8deg)
}

.aw-item h3 {
    font-size: 18px;
    font-weight: 700;
    color: #171717;
    margin-bottom: 10px;
    transition: color .3s ease
}

.aw-item:hover h3 {
    color: var(--theme-color)
}

.aw-item p {
    font-size: 15px;
    line-height: 1.65;
    color: #7a7a7a;
    margin: 0
}

.aw-career-media {
    display: flex;
    justify-content: flex-end
}

.aw-career-media img {
    width: 100%;
    max-width: 480px;
    height: auto;
    display: block
}

.ct-sec {
    position: relative;
    background: #fff;
    overflow: hidden
}

.ct-sec-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
    pointer-events: none
}

.ct-sec .container {
    position: relative;
    z-index: 1
}

.ct-info {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin-bottom: 90px
}

.ct-box {
    position: relative;
    background: url("../img/contact/box-bg.webp") center/cover no-repeat, linear-gradient(150deg, #3a3a3a 0, #242424 100%);
    border-radius: 14px;
    padding: 34px 30px;
    color: #fff;
    overflow: hidden;
    transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s ease, background-color .3s ease
}

.ct-box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(150deg, #b3080e 0, #8a0003 100%);
    opacity: 0;
    transition: opacity .45s ease
}

.ct-box:hover {
    transform: translateY(-12px);
    box-shadow: 0 30px 50px rgba(162, 0, 4, .28)
}

.ct-box:hover::after {
    opacity: .88
}

.ct-box-red {
    background: linear-gradient(150deg, #c8141a 0, #8a0003 100%)
}

.ct-box-red:hover {
    transform: translateY(-12px);
    box-shadow: 0 30px 50px rgba(0, 0, 0, .3)
}

.ct-box-red:hover::after {
    opacity: .25;
    background: #000
}

.ct-box>* {
    position: relative;
    z-index: 1
}

.ct-box h3 {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .03em;
    color: #fff;
    margin-bottom: 8px;
    transition: letter-spacing .35s ease
}

.ct-box:hover h3 {
    letter-spacing: .08em
}

.ct-box>p {
    font-size: 13px;
    color: rgba(255, 255, 255, .75);
    margin-bottom: 24px
}

.ct-box-row {
    display: flex;
    align-items: center;
    gap: 12px
}

.ct-box-ic {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: transform .4s ease, background .3s ease
}

.ct-box-red .ct-box-ic {
    background: rgba(255, 255, 255, .22)
}

.ct-box:hover .ct-box-ic {
    transform: scale(1.12) rotate(-8deg);
    background: rgba(255, 255, 255, .3)
}

.ct-box-row small {
    display: block;
    font-size: 11px;
    color: rgba(255, 255, 255, .65);
    margin-bottom: 3px
}

.ct-box-addr,
.ct-box-row a {
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    line-height: 1.45;
    display: block
}

.ct-box-addr {
    font-size: 13px;
    font-weight: 500
}

.ct-box-note {
    position: relative;
    z-index: 1;
    font-size: 11px;
    color: rgba(255, 255, 255, .65);
    margin: 24px 0 0
}

.ct-form-wrap {
    position: relative;
    padding: 20px 30px 30px
}

.ct-form-shape {
    position: absolute;
    inset: 0 -60px 60px;
    background: url("../img/contact/form-bg1.webp") center top/90% 70% no-repeat;
    z-index: 0
}

.ct-books {
    position: absolute;
    z-index: 1;
    bottom: 0;
    pointer-events: none
}

.ct-books img {
    display: block;
    width: 100%;
    max-width: 430px;
    height: auto
}

.ct-books-l {
    left: 0;
    bottom: 50px
}

.ct-books-r {
    right: 0;
    bottom: 50px
}

.ct-books-l img {
    animation: ct-book-float 5s ease-in-out infinite
}

.ct-books-r img {
    animation: ct-book-float 5s ease-in-out 1.2s infinite
}

@keyframes ct-book-float {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-12px)
    }
}

.ct-form-card {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    background: url("../img/contact/form-bg2.webp") center top/100% 100% no-repeat;
    padding: 56px 96px 100px;
    text-align: center
}

.ct-form-card h2 {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #171717;
    margin-bottom: 10px
}

.ct-form-card>p {
    font-size: 13px;
    color: #7a7a7a;
    line-height: 1.6;
    max-width: 480px;
    margin: 0 auto 30px
}

.ct-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 10px
}

.ct-form input,
.ct-form textarea {
    width: 100%;
    background: #f6f8fc;
    border: 1px solid #e8ecf5;
    border-radius: 8px;
    padding: 14px 18px;
    font-size: 13px;
    color: #333;
    font-family: var(--body-font);
    outline: 0;
    transition: border-color .3s ease, box-shadow .3s ease
}

.ct-form input:focus,
.ct-form textarea:focus {
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(162, 0, 4, .1)
}

.ct-form textarea {
    resize: vertical;
    min-height: 120px
}

.ct-form-full {
    grid-template-columns: 1fr
}

.ct-form .ct-phone-group {
    min-height: 0;
    margin: 0;
    display: flex;
    flex-direction: column
}

.ct-form .ct-phone-group .iti {
    display: flex;
    flex: 1 0 auto;
    min-height: 49px;
    width: 100%;
    background: #f6f8fc;
    border: 1px solid #e8ecf5;
    border-radius: 8px;
    transition: border-color .3s ease, box-shadow .3s ease
}

.ct-form .ct-phone-group .iti:focus-within {
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(162, 0, 4, .1)
}

.ct-form .ct-phone-group .iti .contact-phone {
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
    min-height: 47px;
    border: 0;
    background: 0 0;
    padding: 14px 12px 14px 0;
    box-shadow: none !important;
    outline: 0
}

.ct-form .contact-error-message {
    display: block;
    color: #e0262b;
    font-size: 13px;
    font-weight: 500;
    margin-top: 12px;
    text-align: left
}

.ct-form .error-message {
    color: #e0262b !important;
    margin-bottom: 0;
    text-align: left
}

.ct-form .ct-field {
    width: 100%;
    min-width: 0
}

.ct-form .contact-submit-btn.ct-submit {
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 15px 34px;
    background: var(--theme-color);
    border-color: var(--theme-color) !important;
    border-radius: 50px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1
}

.ct-form-action {
    margin-top: 26px
}

.ct-submit {
    background: var(--theme-color);
    border-color: var(--theme-color);
    border-radius: 50px;
    padding: 15px 34px
}

.ct-submit:hover {
    color: var(--theme-color)
}

.ct-form .ct-submit:hover {
    color: #000
}

.ct-form .ct-submit:hover i {
    color: #000
}

.lg-sec {
    background: #fbfbfb
}

.lg-block {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid #f0f0f0
}

.lg-block:last-of-type {
    border-bottom: 0;
    margin-bottom: 0
}

.lg-block h3 {
    position: relative;
    font-size: 20px;
    font-weight: 700;
    color: #171717;
    margin-bottom: 16px;
    padding-left: 18px
}

.lg-block h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 7px;
    height: 22px;
    border-radius: 4px;
    background: var(--theme-color)
}

.lg-block p {
    font-size: 14.5px;
    line-height: 1.8;
    color: #5f5f5f;
    margin-bottom: 14px
}

.lg-block p:last-child {
    margin-bottom: 0
}

.lg-block strong {
    color: #171717
}

.lg-block a {
    color: var(--theme-color);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(162, 0, 4, .35);
    transition: border-color .3s ease, color .3s ease
}

.lg-block a:hover {
    border-color: var(--theme-color)
}

.lg-bullets {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.lg-bullets li {
    position: relative;
    padding-left: 22px;
    font-size: 14.5px;
    line-height: 1.75;
    color: #5f5f5f
}

.lg-bullets li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 10px;
    height: 3px;
    border-radius: 2px;
    background: var(--theme-color)
}

.lg-contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
    background: #fbecec;
    background: #fbefef;
    border-radius: 16px;
    padding: 26px 30px;
    margin-top: 40px
}

.lg-contact-text h3 {
    font-size: 20px;
    font-weight: 700;
    color: #171717;
    margin-bottom: 6px
}

.lg-contact-text p {
    font-size: 13px;
    color: #7a7a7a;
    margin: 0
}

.lg-contact-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end
}

.lg-contact-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 50px;
    background: #fff;
    color: #171717;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .06);
    transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease
}

.lg-contact-btn i {
    color: var(--theme-color);
    transition: color .3s ease
}

.lg-contact-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(162, 0, 4, .18)
}

.lg-contact-btn-red {
    background: var(--theme-color);
    color: #fff
}

.lg-contact-btn-red i {
    color: #fff
}

.cds {
    position: relative;
    padding: 0 0 80px;
    background: #fff;
    overflow-x: clip
}

.cds-head {
    position: relative;
    z-index: 0;
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 50px;
    align-items: center;
    padding: 70px 46px 100px
}

.cds-head::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: -50vw;
    right: 12%;
    background: linear-gradient(135deg, #a80006 0, #9a0005 100%)
}

.cds-head h2 {
    font-size: 44px;
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
    margin: 0
}

.cds-head p {
    font-size: 14px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .9);
    max-width: 420px;
    margin: 0
}

.cds-panel {
    position: relative;
    z-index: 1;
    margin-top: -56px;
    margin-right: calc((100% - 100vw)/ 2);
    background: #f4f4f4;
    padding: 50px 46px;
    min-height: 300px
}

.cds-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 46px 30px;
    max-width: 66%
}

.cds-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    cursor: default
}

.cds-ic {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #6e6e6e;
    color: #fff;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 4px #fff;
    transition: background .3s ease, transform .35s ease, box-shadow .3s ease
}

.cds-label {
    font-size: 17px;
    line-height: 1.3;
    color: #2f2f2f;
    transition: color .3s ease, transform .3s ease
}

.cds-item:hover .cds-ic {
    background: var(--theme-color);
    transform: scale(1.12) rotate(-8deg);
    box-shadow: 0 0 0 4px rgba(162, 0, 4, .15)
}

.cds-item:hover .cds-label {
    color: var(--theme-color);
    transform: translateX(3px)
}

.cds-books {
    position: absolute;
    right: 3vw;
    top: -42px;
    width: clamp(220px, 22vw, 360px);
    aspect-ratio: 322/367;
    pointer-events: none
}

.cds-books img {
    position: absolute;
    height: auto
}

.cds-books img:first-child {
    left: 0;
    top: 0;
    width: 22%;
    transform: rotate(-7deg)
}

.cds-books img:nth-child(2) {
    left: 17%;
    top: 24%;
    width: 43%;
    transform: rotate(4deg);
    z-index: 2
}

.cds-books img:nth-child(3) {
    left: 63%;
    top: 2%;
    width: 37%;
    transform: rotate(8deg)
}

.cds-books img:nth-child(4) {
    left: 52%;
    top: 47%;
    width: 46%;
    transform: rotate(5deg);
    z-index: 3
}

.ty-sec {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 60px 20px;
    background: radial-gradient(55% 55% at 78% 0, rgba(236, 156, 60, .5), transparent 65%), radial-gradient(75% 85% at 28% 42%, rgba(196, 45, 30, .85), transparent 72%), linear-gradient(155deg, #7e1a10 0, #921e13 42%, #2a0f0c 100%)
}

.ty-box {
    max-width: 780px
}

.ty-box h1 {
    font-size: 72px;
    font-weight: 500;
    line-height: 1.08;
    color: #fff;
    margin-bottom: 26px
}

.ty-msg {
    font-size: 17px;
    line-height: 1.75;
    color: rgba(255, 255, 255, .92);
    max-width: 700px;
    margin: 0 auto 44px
}

.ty-cant {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 12px
}

.ty-sub {
    font-size: 16px;
    font-style: italic;
    color: rgba(255, 255, 255, .85);
    margin-bottom: 34px
}

.ty-btns {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 40px
}

.ty-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 220px;
    padding: 18px 34px;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    transition: transform .3s ease, box-shadow .3s ease, background .3s ease
}

.ty-btn-dark {
    background: #150d0b;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .15);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35)
}

.ty-btn-dark:hover {
    background: #000;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, .45)
}

.ty-btn-line {
    background: rgba(255, 255, 255, .06);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .55);
    backdrop-filter: blur(4px)
}

.ty-btn-line:hover {
    background: #fff;
    color: #a20004;
    transform: translateY(-3px)
}

.ty-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 500;
    color: rgba(255, 255, 255, .85);
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: color .3s ease
}

.ty-back:hover {
    color: #fff
}

@media (max-width:1280px) {
    .ty-box h1 {
        font-size: 50px
    }
}

@media (max-width:991px) {
    .ty-box h1 {
        font-size: 40px
    }
}

@media (max-width:767px) {
    .ty-box h1 {
        font-size: 35px;
        margin-bottom: 20px
    }

    .ty-msg {
        font-size: 15px;
        margin-bottom: 36px
    }
}

@media (max-width:480px) {
    .ty-box h1 {
        font-size: 25px
    }

    .ty-btns {
        flex-direction: column;
        gap: 14px
    }

    .ty-btn {
        width: 100%;
        max-width: 300px;
        padding: 16px 24px;
        font-size: 15px
    }
}