:root {
    --color-bg: #1B302D;
    --color-surface: #DDD6C6;
    --color-primary: #66754C;
    --color-primary-dark: #586640;
    --color-text: #1B302D;
    --color-text-light: #DDD6C6;
    --color-white: #FFFFFF;
    --color-accent: #8BA265;
    --color-pulse-glow: rgba(139, 162, 101, 0.6);
    --color-border: #BCB5A8;
    --color-border-subtle: rgba(221, 214, 198, 0.2);
    --font-primary: "Google Sans Flex", sans-serif;
    --radius-btn: 25px;
    --radius-card: 25px;
    --radius-nav: 20px;
    --section-gap: 150px;
    --inner-gap: 80px;
    --container-max: 1610px;
}

body {
    font-family: var(--font-primary);
    color: var(--color-text);
    background: var(--color-bg);
    line-height: 1.35;
    font-size: 20px;
    overflow-x: clip;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
    scroll-padding-top: 20px;
}

* {
    box-sizing: border-box;
    outline: none;
}

label.error {
    display: none !important;
}

.error {
    border-color: red !important;
}

.valid {
    border-color: green !important;
}

.form_message {
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 400;
    text-align: center;
    margin: 0;
}

.form_success {
    background: rgba(139, 162, 101, 0.2);
    color: #fff;
}

.form_error {
    background: rgba(220, 53, 69, 0.2);
    color: #fff;
}

button,
a {
    cursor: pointer;
    transition: .3s;
}

ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
}

p {
    margin-top: 0;
    font-size: 24px;
    font-weight: 300;
}

.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 40px;
}

.btn {
    display: inline-block;
    border: none;
    border-radius: var(--radius-btn);
    padding: 22px 28px;
    font-family: var(--font-primary);
    font-size: 20px;
    font-weight: 300;
    text-decoration: none;
    cursor: pointer;
    transition: .3s;
    line-height: 1.2;
}

.btn.primary {
    background: var(--color-primary);
    color: var(--color-text-light);
}

.btn.primary:hover {
    background: var(--color-primary-dark);
}

.btn.dark {
    background: var(--color-bg);
    color: var(--color-text-light);
}

.btn.dark:hover {
    opacity: 0.85;
}

.btn.light {
    background: var(--color-surface);
    color: var(--color-text);
}

.btn.light:hover {
    opacity: 0.85;
}

.btn.submit {
    background: var(--color-primary-dark);
    color: var(--color-text-light);
}

.btn.submit:hover {
    background: var(--color-primary);
}

.section {
    margin: var(--section-gap) 0;
}

.section--surface {
    background: var(--color-surface);
    padding: var(--section-gap) 0;
    margin: 0;
}

.section--surface + .section--surface {
    padding: 110px 0;
}

.section--surface:has(+.section--surface) {
    padding-bottom: 80px;
}

.section_title {
    font-size: 100px;
    font-weight: 300;
    color: var(--color-primary);
    text-transform: uppercase;
    margin: 0;
    line-height: 1.1;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    background: var(--color-surface);
    border: none;
    border-radius: var(--radius-btn);
    padding: 0 30px;
    height: 69px;
    font-family: var(--font-primary);
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    width: 100%;
    border: 2px solid transparent;
}

textarea {
    padding: 20px 30px;
    height: auto;
    min-height: 150px;
    resize: none;
}

input::placeholder,
textarea::placeholder {
    color: var(--color-text);
    opacity: 0.5;
}

header {
    padding: 38px 0;
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-bg);
    transition: .3s;
}

.header_flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.header_top {
    display: flex;
    align-items: center;
    gap: 50px;
}

.top_nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

.top_nav a {
    color: var(--color-text-light);
    font-weight: 300;
    font-size: 17px;
}

a {
    text-decoration: none;
}

.top_nav a:hover {
    text-decoration: underline;
}

.top_nav li {
    position: relative;
}

.top_nav .menu-item-has-children {
    display: flex;
    align-items: center;
    gap: 8px;
    top: 1.5px;
}

.submenu_toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--color-text-light);
}

.submenu_toggle::before {
    content: "";
    width: 6px;
    height: 6px;
    margin-top: -2px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s;
}

.top_nav li.open > .submenu_toggle::before {
    margin-top: 4px;
    transform: rotate(225deg);
}

.top_nav .sub-menu {
    position: absolute;
    top: 100%;
    left: -24px;
    min-width: 220px;
    margin-top: 16px;
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--color-bg);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .15s, transform .15s, visibility .15s;
}

.top_nav .sub-menu::before {
    content: "";
    position: absolute;
    top: -16px;
    left: 0;
    right: 0;
    height: 16px;
}

.top_nav li:hover > .sub-menu,
.top_nav li:focus-within > .sub-menu,
.top_nav li.open > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.top_nav .sub-menu a {
    white-space: nowrap;
}

.top_tel {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text-light);
    font-weight: 300;
}

.top_tel:hover {
    text-decoration: underline;
}

.tel_dot {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: var(--color-accent);
    border: 3px solid var(--color-primary);
    border-radius: 50%;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 var(--color-pulse-glow);
    }

    50% {
        box-shadow: 0 0 0 8px rgba(139, 162, 101, 0);
    }
}

header+.section,
header+main>.section:first-child {
    padding-top: 220px;
    margin-top: 0;
}

.intro h1 {
    margin: 0;
    margin-bottom: 65px;
    font-size: 60px;
    color: var(--color-text-light);
    font-weight: 300;
    line-height: 1.2;
}

.intro h1 span {
    display: block;
    font-size: 160px;
    color: var(--color-primary);
    text-transform: uppercase;
}

.intro_media {
    min-height: 100dvh;
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    padding-bottom: 90px;
}

.intro_media video {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.intro_media .container {
    position: relative;
    z-index: 100;
}

.intro_media_text {
    max-width: 925px;
}

.after_h1 {
    font-size: 50px;
    font-weight: 300;
    color: var(--color-white);
    line-height: 1.2;
    margin-bottom: 24px;
}

.intro_buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}

.intro {
    margin-bottom: 0;
}

.intro:not(:has(.intro_media)) h1 {
    margin-bottom: 0;
}

.promo {
    margin-top: 115px;
}

.nuovo_logo {
    max-width: 100%;
    display: block;
    height: auto;
}

.promo_subtext {
    font-size: 60px;
    color: var(--color-primary);
    font-weight: 300;
    margin-top: 34px;
}

.promo_desc {
    max-width: 1040px;
    margin-top: 80px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: flex-start;
}

.promo_desc p {
    font-size: 30px;
    color: var(--color-text-light);
    text-transform: uppercase;
    font-weight: 200;
    margin: 0;
    line-height: 1.2;
}

.patients_promo_flex {
    display: flex;
    overflow: hidden;
}

.patients_promo_img {
    flex: 1;
    min-height: 100dvh;
    overflow: hidden;
}

.patients_promo_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.patients_promo_text {
    flex: 1;
    background-color: var(--color-primary);
    padding: 80px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.patients_promo_text h2 {
    margin: 0;
    margin-bottom: 20px;
    font-size: 80px;
    color: var(--color-text);
    font-weight: 300;
}

.patients_promo_text p {
    margin-bottom: 30px;
    color: var(--color-text-light);
    font-size: 26px;
    font-weight: 300;
}

.patients_img {
    margin-top: 112px;
    width: 100%;
    margin-left: auto;
    flex: 1;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

.patients_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    max-width: 528px;
    max-height: 344px;
}

.promo_text {
    background-image: url(../img/logo_pattern.svg);
    background-repeat: no-repeat;
    margin: 0;
    background-color: var(--color-surface);
    background-position: center;
    padding-top: 130px;
    padding-bottom: 150px;
}

.text-center {
    text-align: center;
}

.flex-2 {
    flex: 2;
}

.flex-3 {
    flex: 3;
}

.flex-4 {
    flex: 4;
}

.promo_text h2 {
    margin: 0;
    font-weight: 300;
    font-size: 100px;
    color: var(--color-primary);
    text-transform: uppercase;
    line-height: 1.3;
    margin-bottom: 40px;
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
}

.services_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin: 0;
    border-top: 1px solid var(--color-text);
}

.services_card {
    background: var(--color-surface);
    padding: 60px 80px 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 560px;
    border-right: 1px solid var(--color-text);
    border-bottom: 1px solid var(--color-text);
    gap: 60px;
    transition: .3s;
}

.services_card:hover {
    background-color: var(--color-white);
}

.services_card_title {
    font-size: clamp(36px, 4.2vw, 80px);
    font-weight: 500;
    color: var(--color-text);
    margin: 0;
    line-height: 1.1;
}

.services_card_bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.services_card_img {
    max-width: 330px;
    width: 40%;
    flex-shrink: 0;
    max-height: 403px;
}

.services_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.patients_promo {
    margin-bottom: 0;
}

.why_line {
    overflow: hidden;
    margin: 0;
    padding-bottom: 80px;
    padding-top: 42px;
}

.why_line_track {
    display: flex;
    width: max-content;
    will-change: transform;
    position: relative;
    z-index: 100;
}

.why_line_track img {
    display: block;
    height: auto;
    pointer-events: none;
    -webkit-user-select: none;
    user-select: none;
    flex-shrink: 0;
}

.benefits_grid {
    margin: 0;
}

.benefits_row {
    display: flex;
    min-height: 464px;
}

.benefits_img {
    overflow: hidden;
    position: relative;
}

.benefits_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    position: absolute;
}

.benefits_card {
    background: var(--color-primary);
    padding: 50px 60px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;
}

.benefits_card h3 {
    font-size: 66px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
    line-height: 1.1;
    text-transform: uppercase;
}

.benefits_card p {
    font-size: 24px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
}

.benefits_card h3 span {
    font-size: 50px;
    display: block;
    text-transform: lowercase;
}

.reviews_flex {
    display: flex;
    gap: 40px;
}

.reviews_left {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.reviews .section_title {
    margin-bottom: 60px;
}

.reviews_img {
    width: 372px;
    height: 426px;
    object-fit: cover;
    display: block;
}

.reviews_right {
    max-width: 679px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 50px;
    width: 100%;
    flex: 1;
    justify-content: space-between;
}

.reviews_list {
    display: flex;
    flex-direction: column;
    gap: 60px;
    width: 100%;
}

.review_card {
    display: flex;
    gap: 50px;
}

.review_line {
    width: 1px;
    flex-shrink: 0;
    background: var(--color-text);
}

.review_content {
    flex: 1;
    padding: 18px 0;
}

.review_content p {
    font-size: 20px;
    font-weight: 300;
    margin: 0 0 40px;
    line-height: 1.4;
}

.review_meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.review_author {
    font-size: 20px;
    font-weight: 500;
}

.review_stars {
    display: flex;
    align-items: center;
    gap: 4px;
}

.faq {
    border-top: 1px solid var(--color-primary);
}
.faq.faq--full {
    border-top: none;
}

.faq_flex {
    display: flex;
    gap: 24px;
}

.faq_left {
    flex: 1;
}

.faq_right {
    width: 713px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.faq_item {
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 20px;
}

.faq_item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-size: 24px;
    font-weight: 500;
    cursor: pointer;
    list-style: none;
}

.faq_item summary::-webkit-details-marker {
    display: none;
}

.faq_item summary span {
    font-size: 34px;
    font-weight: 300;
    color: var(--color-primary);
    flex-shrink: 0;
}

.faq_item[open] summary span {
    transform: rotate(45deg);
}

.faq--full .faq_flex {
    display: block;
}

.faq--full .faq_right {
    width: 100%;
}

.faq--full .faq_item {
    border-color: var(--color-text);
}

.faq--full .faq_item summary {
    font-size: 36px;
}

.faq_answer {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 24px;
}

.faq_answer p {
    font-size: 20px;
    font-weight: 300;
    margin: 0;
    line-height: 1.5;
}

.faq_answer h2,
.faq_answer h3,
.faq_answer h4 {
    font-size: 26px;
    font-weight: 500;
    margin: 0;
    line-height: 1.2;
}

.faq_answer li {
    font-size: 20px;
    font-weight: 300;
    line-height: 1.6;
}

.faq_apply {
    align-self: flex-start;
}

body.page-kariera .light_section h1 span {
    text-transform: none;
}

.contact_form {
    display: flex;
    margin: 0;
}

.contact_form_left {
    flex: 1;
    background: var(--color-primary);
    padding: 80px 106px;
    display: flex;
    flex-direction: column;
    gap: 100px;
}

.contact_form_header {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contact_form h2 {
    font-size: 80px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
    line-height: 1.1;
}

.contact_form .subtitle {
    font-size: 26px;
    font-weight: 300;
    color: var(--color-text-light);
    margin: 0;
}

.contact_form_fields {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
}

.contact_form_row {
    display: flex;
    gap: 20px;
    width: 100%;
}

.contact_form_row>* {
    flex: 1;
}

.contact_form select {
    background: var(--color-surface);
    border: none;
    border-radius: var(--radius-btn);
    padding: 0 30px;
    height: 69px;
    font-family: var(--font-primary);
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%231B302D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 30px center;
    cursor: pointer;
}

.contact_form textarea {
    min-height: 179px;
}

input[type="file"] {
    display: none;
}

.file_upload_btn,
.file_upload_info {
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--color-primary-dark);
    border: 1px solid var(--color-text-light);
    border-radius: var(--radius-btn);
    height: 69px;
    width: 100%;
    color: var(--color-text-light);
    font-family: var(--font-primary);
    font-size: 20px;
    font-weight: 300;
    cursor: pointer;
    transition: .3s;
}

.file_upload_btn {
    display: flex;
}

.file_upload_info {
    display: none;
}

.form_consent {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    cursor: pointer;
    color: var(--color-text-light);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.4;
}

.form_consent input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    margin: 0;
    border: 1.5px solid var(--color-text-light);
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
    transition: .2s;
}

.form_consent input[type="checkbox"]:checked {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='10' viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5L4.5 8.5L11 1' stroke='%231B302D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

.form_consent a {
    color: var(--color-accent);
    text-decoration: underline;
}

.file_upload_btn:hover,
.file_upload_info:hover {
    opacity: 0.85;
}

.file_upload_name {
    color: var(--color-text-light);
    font-size: 18px;
    font-weight: 300;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file_upload_remove {
    background: none;
    border: none;
    color: var(--color-text-light);
    font-size: 24px;
    cursor: pointer;
    padding: 0 5px;
    line-height: 1;
}

.contact_form_right {
    flex: 1;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact_form_right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    user-select: none;
}

.contact_quick {
    background: var(--color-bg);
    border-radius: var(--radius-card);
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    z-index: 100;
    text-align: center;
}

.contact_quick_title {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-primary);
    text-transform: uppercase;
}

.contact_quick_item {
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text-light);
}

:focus::placeholder {
    color: transparent;
}

.file_upload_wrapper {
    width: 100%;
}

b,
strong {
    font-weight: 600;
}

.logo {
    display: flex;
}

.logo img {
    transition: .3s;
    width: 202px;
    height: auto;
}

.scrolled .logo img {
    width: 130px;
}

.scrolled header {
    padding: 20px 0;
}

header.header-hidden {
    transform: translateY(-100%);
}

footer {
    background: var(--color-bg);
    padding: 150px 0 50px;
}

.footer_top {
    display: flex;
    justify-content: space-between;
    gap: 234px;
}

.footer_logo {
    flex-shrink: 0;
}

.footer_logo img {
    display: block;
    height: auto;
}

.footer_columns {
    display: flex;
    flex: 1;
    justify-content: space-between;
}

.footer_col {
    display: flex;
    flex-direction: column;
    gap: 60px;
    min-width: 227px;
}

.footer_group {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.footer_heading {
    color: var(--color-primary);
    font-size: 20px;
    font-weight: 300;
}

.footer_group ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer_group ul li {
    color: var(--color-text-light);
    font-size: 16px;
    font-weight: 300;
}

.footer_group ul li a {
    color: inherit;
    display: block;
}

.footer_group ul li a:hover {
    text-decoration: underline;
}

.footer_socials {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer_socials a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text-light);
    font-size: 16px;
    font-weight: 300;
}

.footer_socials a:hover {
    text-decoration: underline;
}

.footer_bottom {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
    padding-top: 30px;
    border-top: 1px solid var(--color-border-subtle);
    font-size: 14px;
    font-weight: 300;
    color: var(--color-text-light);
}

.footer_bottom a {
    color: var(--color-text-light);
}

.footer_bottom a:hover {
    text-decoration: underline;
}

.contact_col ul a {
    text-decoration: underline;
}

.contact_col ul a:hover {
    text-decoration: none !important;
}

[data-animate] {
    opacity: 0;
    transition: opacity 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        background-color 0.3s;
}

[data-animate="fade-up"] {
    transform: translateY(30px);
}

[data-animate="slide-left"] {
    transform: translateX(-30px);
}

[data-animate="slide-right"] {
    transform: translateX(30px);
}

[data-animate="scale"] {
    transform: scale(0.96);
}

[data-animate].visible {
    opacity: 1;
    transform: none;
}

@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.intro h1 {
    animation: heroFadeUp 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s both;
}

.services_card_img img {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.services_card:hover .services_card_img img {
    transform: scale(1.05);
}

[data-parallax] {
    transform: scale(1.15);
}

.burger {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    z-index: 1001;
}

.burger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--color-text-light);
    border-radius: 2px;
    transition: transform 0.3s, opacity 0.3s;
}

.burger.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.burger.active span:nth-child(2) {
    opacity: 0;
}

.burger.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

.menu-open header {
    transform: none;
}

.header_icons {
    display: none;
}

.intro_media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    left: 0;
    top: 0;
}

.inner_page h1 {
    font-size: 30px;
}

.why_choose {
    background-color: var(--color-surface);
    background-image: url(../img/logo_pattern.svg);
    background-position: 50% 10px;
    background-repeat: no-repeat;
    margin-bottom: 0;
    padding-bottom: 140px;
}

.why_choose_img {
    overflow: hidden;
    position: relative;
    display: flex;
}

.why_choose_img img {
    width: 100%;
    height: auto;
}

.why_choose h2 {
    padding: 110px 0;
    margin: 0;
    text-align: center;
    font-size: 100px;
    font-weight: 300;
    text-transform: uppercase;
    color: var(--color-primary);
    line-height: 1.15;
}

.why_choose_flex {
    max-width: 1472px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    margin-top: -350px;
    position: relative;
    z-index: 100;
}

.why_choose_flex_column:nth-child(1) {
    padding-top: 550px;
}

.why_choose_flex_column {
    max-width: 570px;
}

.why_choose_flex_column img {
    max-width: 100%;
    height: auto;
    display: flex;
    margin-bottom: 68px;
}

.why_choose_card {
    margin-bottom: 400px;
}

.why_choose_card h3 {
    margin: 0;
    margin-bottom: 10px;
    font-size: 50px;
    color: var(--color-primary);
    text-transform: uppercase;
    font-weight: 300;
}

.why_choose_card p {
    margin: 0;
    font-size: 26px;
}

.why_choose_card:last-child {
    margin-bottom: 0;
}

.why_choose_card .btn {
    margin-top: 30px;
}

.banner_img {
    margin: 0;
    position: relative;
}

.banner_img_media {
    position: relative;
    aspect-ratio: 14/9;
    overflow: hidden;
}

.banner_img_media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.banner_quote {
    position: absolute;
    z-index: 100;
    bottom: 145px;
    left: 80px;
    font-size: 58px;
    color: var(--color-text-light);
    font-weight: 300;
    text-transform: uppercase;
    max-width: 890px;
    margin: 0;
    width: 100%;
    line-height: 1.3;
}

.price_block {
    margin-bottom: 150px;
}

.price_block:last-child {
    margin: 0;
}

.price_block h2 {
    margin: 0;
    margin-bottom: 60px;
    color: var(--color-primary);
    font-weight: 300;
    font-size: 60px;
}

.price_row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 30px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 40px;
    color: var(--color-text);
    line-height: 1.2;
    font-weight: 300;
    gap: 30px;
}

.price_row:nth-child(2) {
    padding-top: 0;
}

.price_row span:nth-child(2) {
    font-size: 24px;
    font-weight: bold;
    text-align: right;
    display: block;
    margin-top: 10px;
}

.price_block:last-child .price_row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.services_about_text {
    font-size: 24px;
    font-weight: 300;
    padding-right: 10px;
}

.services_about_text span {
    display: block;
    text-transform: uppercase;
    color: var(--color-primary);
}

.references_main_section {
    padding-bottom: 150px;
    background-color: var(--color-surface);
}

header:has(+ .light_section) {
    background-color: transparent;
}

header:has(+ .light_section) .top_nav a {
    color: var(--color-text);
}

header:has(+ .light_section) .top_nav > li > .submenu_toggle {
    color: var(--color-text);
}

header:has(+ .light_section) .top_nav .sub-menu a {
    color: var(--color-text-light);
}

header:has(+ .light_section) .top_tel {
    color: var(--color-text);
}

header:has(+ .light_section) .btn {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.scrolled header:has(+ .light_section) {
    background-color: var(--color-surface);
}

.light_section h1 {
    margin: 0;
    margin-bottom: 110px;
    font-size: 30px;
    font-weight: 300;
    color: var(--color-text);
    max-width: 1030px;
    line-height: 1.5;
}

.light_section h1 span {
    display: block;
    font-size: 100px;
    color: var(--color-primary);
    text-transform: uppercase;
    line-height: 1;
}

.reviews_all {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 60px;
}

.reviews_all .review_card {
    max-width: 680px;
    width: calc(50% - 70px);
}

.reviews_all .review_card[hidden] {
    display: none;
}

.reviews_load_more_wrp {
    margin-top: 100px;
    text-align: center;
}

.light_section {
    background-color: var(--color-surface);
}

.grant_section {
    margin-bottom: 0;
    padding-bottom: 140px;
}

.grant_flex {
    display: flex;
    justify-content: space-between;
    gap: 28px;
}

.grant_flex h2 {
    margin: 0;
    font-size: 60px;
    color: var(--color-primary);
    font-weight: 300;
    text-transform: uppercase;
    line-height: 1.2;
}

.grant_content {
    max-width: 680px;
}

.grant_content p {
    margin-bottom: 40px;
    font-size: 20px;
}

.grant_images img {
    width: 100%;
    height: auto;
    max-width: 170px;
}

.grant_images div {
    display: flex;
    align-items: center;
    flex: auto;
}

.grant_images {
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: space-between;
}

.service_detail_heading {
    background-image: url(../img/logo_pattern.svg);
    background-repeat: no-repeat;
    background-size: 1720px;
    background-position: 50% 160px;
}

.service_detail_heading h1 {
    max-width: 100%;
    text-align: center;
    padding-top: 50px;
    padding-bottom: 80px;
}

.service_detail_heading h1 span {
    margin-bottom: 20px;
}

.service_about_flex {
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.service_about_flex>div:nth-child(1) {
    max-width: 670px;
}

.service_about_flex>div:nth-child(2) {
    max-width: 680px;
}

.service_about_flex h2 {
    margin: 0;
    margin-bottom: 50px;
    color: var(--color-primary);
    font-weight: 300;
    text-transform: uppercase;
    font-size: 60px;
}

.service_about_img {
    max-width: 490px;
    width: 100%;
    height: 606px;
    display: flex;
}

.service_about_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.service_about_content {
    position: sticky;
    top: 120px;
}

.service_about_content h3 {
    margin: 0;
    margin-bottom: 12px;
    color: var(--color-text);
    text-transform: uppercase;
    font-weight: 500;
    font-size: 30px;
}

.service_about_content p {
    font-size: 20px;
    font-weight: 300;
    margin-bottom: 40px;
}

.service_about_content p:last-child {
    margin-bottom: 0;
}

.service_about_content_section .price_block {
    margin: 140px 0;
}

/* single full-width text row (no price column) — 40px row font is too big for running text */
.service_about_content_section .price_row span:only-child {
    font-size: 20px;
    line-height: 1.35;
}

.services_card_title span {
    display: block;
    font-size: 22px;
    font-weight: 300;
    margin-top: 17px;
    line-height: 1.3;
}

.error404 .intro {
    text-align: center;
}

.error404 .intro h1 {
    max-width: 100%;
}

.error404 .promo_desc {
    max-width: 100%;
    text-align: center;
    align-items: center;
}

@media (min-width: 768px) {
    .reviews-swiper .swiper-wrapper {
        display: flex;
        flex-direction: column;
        gap: 60px;
        transform: none !important;
    }

    .reviews-swiper .swiper-slide {
        width: auto !important;
        height: auto !important;
        margin-right: 0 !important;
    }

    .reviews-pagination {
        display: none;
    }
}

.swiper-pagination-bullet {
    background: var(--color-primary);
    opacity: 0.3;
    width: 8px;
    height: 8px;
}

.swiper-pagination-bullet-active {
    background: var(--color-primary);
    opacity: 1;
}

.contact_map_flex {
    display: flex;
    justify-content: space-between;
    gap: 130px;
}

.contact_map_flex h2 {
    margin: 0;
    margin-bottom: 60px;
    font-size: 100px;
    color: var(--color-primary);
    font-weight: 300;
    text-transform: uppercase;
    line-height: 1.1;
}

.contact_map_el {
    display: flex;
    position: relative;
    cursor: pointer;
    transition: .3s;
}

.contact_map_el img {
    max-width: 100%;
    height: auto;
}

.contact_map_el:hover {
    transform: scale(.95);
}

.contact_map_info_item {
    padding: 58px 50px;
    padding-right: 0;
    border-left: 1px solid var(--color-text);
}

.contact_map_info {
    max-width: 670px;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.contact_map_info_item p {
    font-size: 20px;
    font-weight: bold;
    color: var(--color-text);
    margin-bottom: 10px;
}

.contact_map_info_item span {
    display: block;
    font-size: 20px;
    font-weight: 300;
}

.contact_section {
    margin: 0;
    padding: 120px 0;
    background-color: var(--color-surface);
}

.inner_page+.contact_section {
    padding-top: 0;
}

.contact_section_flex {
    display: flex;
}

.inner_page+.contact_section .contact_section_flex {
    margin-top: -300px;
    position: relative;
    z-index: 100;
    gap: 80px;
}

.contact_section_img {
    flex: none;
    width: 52%;
    position: relative;
}

.contact_section_img img {
    max-width: 575px;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 0;
    display: flex;
}

.contact_section_text {
    flex: 1;
    padding-top: 490px;
}

.contact_section_text>p {
    font-size: 30px;
    color: var(--color-text);
    font-weight: 300;
    line-height: 1.35;
}

.contact_info {
    margin-top: 540px;
    gap: 33px;
    display: flex;
    flex-direction: column;
}

.contact_info_item p {
    margin: 0;
    font-size: 30px;
    color: var(--color-primary);
    text-transform: uppercase;
    font-weight: 300;
}

.contact_info_item span {
    display: block;
    font-size: 30px;
    color: var(--color-text);
    font-weight: 300;
}

.contact_section_img p {
    position: absolute;
    white-space: nowrap;
    font-size: 344px;
    color: var(--color-primary);
    line-height: 1;
    bottom: -30px;
    left: -30px;
}

.swiper-pagination {
    position: relative;
    bottom: 0;
    margin-top: 20px;
}

header:has(+ .light_section) .header_icon img {
    filter: none;
}

header:has(+ .light_section) .burger span {
    background-color: #66754C;
}
.contact_map_flex > div:nth-child(1) {
    flex: auto;
    width: 100%;
    max-width: 780px;
}

.map_wrp {
    width: 100%;
    max-width: 780px;
    aspect-ratio: 16/9;
    display: flex;
}

.map_wrp iframe {
    width: 100%;
    height: 100%;
}
.grant_images div:last-child {
    justify-content: flex-end;
}

.team_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin: 0;
    border-top: 1px solid var(--color-text);
}

.team_card {
    background: var(--color-surface);
    padding: 60px 80px 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 600px;
    gap: 60px;
    border-right: 1px solid var(--color-text);
    border-bottom: 1px solid var(--color-text);
    transition: .3s;
}

.team_card:not(.team_card--cta):hover {
    background: var(--color-white);
}

.team_card_name {
    font-size: 60px;
    font-weight: 500;
    color: var(--color-text);
    margin: 0;
    text-transform: uppercase;
    line-height: 1.1;
}

.team_card_bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.team_card_meta {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.team_card_role {
    font-size: 24px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
    line-height: 1.2;
}

.team_card_desc {
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
}

.team_card_img {
    width: 45%;
    max-width: 414px;
    flex-shrink: 0;
    aspect-ratio: 414 / 506;
    overflow: hidden;
}

.team_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.team_card:hover .team_card_img img {
    transform: scale(1.05);
}

.team_card--cta {
    background: var(--color-primary);
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 40px;
}

.team_card--cta .team_card_name {
    color: var(--color-text-light);
}

.insurance_logos_title {
    font-size: 60px;
    font-weight: 300;
    color: var(--color-primary);
    text-transform: uppercase;
    margin: 0 0 60px;
    line-height: 1.2;
}

.insurance_logos_row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
}

.insurance_logo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.insurance_logo img {
    max-width: 180px;
    max-height: 90px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: grayscale(100%);
    transition: filter .3s ease;
}

.insurance_logo:hover img {
    filter: none;
}

.info_block {
    margin-bottom: 120px;
}

.info_block:last-child {
    margin-bottom: 0;
}

.info_block_title {
    margin: 0 0 40px;
    color: var(--color-primary);
    font-weight: 300;
    font-size: 60px;
    line-height: 1.2;
    text-transform: uppercase;
}

.info_items {
    display: flex;
    flex-direction: column;
    list-style-type: disc;
    gap: 4px;
    padding-left: 26px;
}

.info_items li {
    font-size: 26px;
    font-weight: 300;
    color: var(--color-text);
    padding: 0;
    line-height: 1.55;
}

.info_notes {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.info_note {
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
    line-height: 1.4;
}

.info_note--bold {
    font-weight: 700;
}

.career_form {
    background: var(--color-primary);
    padding: var(--section-gap) 0;
    margin: 0;
}

.career_form_inner {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.career_form .contact_form_header {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.career_form h1,
.career_form h2 {
    font-size: 80px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0;
    line-height: 1.1;
}

.career_form .subtitle {
    font-size: 26px;
    font-weight: 300;
    color: var(--color-text-light);
    margin: 0;
}

.text_block_inner {
    max-width: 1040px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
}

.text_block_eyebrow {
    font-size: 30px;
    font-weight: 300;
    color: var(--color-primary);
    text-transform: uppercase;
}

.text_block_title {
    font-size: 60px;
    font-weight: 300;
    color: var(--color-text-light);
    margin: 0;
    line-height: 1.2;
}

.text_block_content {
    color: var(--color-text-light);
}

.text_block_content p {
    font-size: 30px;
    font-weight: 300;
    color: var(--color-text-light);
    line-height: 1.4;
    margin: 0 0 24px;
    text-transform: uppercase;
}

.text_block_content p:last-child {
    margin-bottom: 0;
}

.text_block_callout {
    align-self: flex-start;
    background: var(--color-primary);
    color: var(--color-text-light);
    border-radius: var(--radius-card);
    padding: 22px 28px;
    font-size: 20px;
    font-weight: 300;
    line-height: 1.4;
}

.text_block_callout p {
    margin: 0 0 1em;
}

.text_block_callout p:last-child {
    margin: 0;
}

.price_list_note {
    margin-top: 40px;
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.5;
}

.price_list_note p {
    font-size: 20px;
    font-weight: 300;
    color: var(--color-text);
    margin: 0 0 16px;
    line-height: 1.5;
}

.price_list_note p:last-child {
    margin-bottom: 0;
}

.price_block:has(+.price_list_note) {
    margin-bottom: 0;
}

.info_list {
    background-image: url(../img/logo_pattern.svg);
    background-repeat: no-repeat;
    background-position: top center;
}

.price_block h2 span {
    display: block;
    color: #1B302D;
    font-size: 20px;
    font-weight: 600;
}
.team_card_role span {
    display: block;
    text-transform: uppercase;
    color: #66754C;
    font-weight: 300;
}

.page-band {
    background: var(--color-surface);
    color: var(--color-text);
    padding: 220px 0 calc(var(--section-gap) / 1.5);
}

.page-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 40px;
}

.page-content h1 {
    margin: 0 0 0.5em;
    color: var(--color-primary);
    font-size: 56px;
    font-weight: 300;
    line-height: 1.15;
}

.page-content h2 {
    margin: 1.4em 0 0.5em;
    color: var(--color-primary);
    font-size: 36px;
    font-weight: 300;
    line-height: 1.2;
}

.page-content h3 {
    margin: 1.2em 0 0.4em;
    color: var(--color-primary);
    font-size: 26px;
    font-weight: 400;
    line-height: 1.25;
}

.page-content time {
    display: block;
    margin-bottom: 1.5em;
    color: var(--color-primary-dark);
    font-size: 18px;
}

.page-content p,
.page-content li {
    font-size: 20px;
    font-weight: 300;
    line-height: 1.6;
}

.page-content p {
    margin: 0 0 1em;
}

.page-content ul,
.page-content ol {
    margin: 0 0 1em;
    padding-left: 1.4em;
    list-style-position: outside;
}

.page-content ul {
    list-style-type: disc;
}

.page-content ol {
    list-style-type: decimal;
}

.page-content li {
    margin-bottom: 0.4em;
}

.page-content a {
    color: var(--color-primary);
    text-decoration: underline;
}

.page-content a:hover {
    color: var(--color-primary-dark);
}

.page-content strong {
    font-weight: 600;
}

.page-content blockquote {
    margin: 1.5em 0;
    padding: 0.5em 1.2em;
    border-left: 4px solid var(--color-primary);
    color: var(--color-primary-dark);
    font-style: italic;
}

.page-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-card);
}

.page-content table {
    width: 100%;
    margin: 1.5em 0;
    border-collapse: collapse;
}

.page-content th,
.page-content td {
    padding: 12px 16px;
    border: 1px solid var(--color-border);
    text-align: left;
    font-size: 18px;
}

.page-content th {
    background: rgba(102, 117, 76, 0.1);
    font-weight: 600;
}

.service_about_content_section .price_block:last-child {
    margin-bottom: 0;
}