html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
    /* Account for sticky header */
}

body {
    margin: 0;
    padding: 0;
    font-family: "Manrope", sans-serif;
    color: #1f2428;
    overflow-x: hidden;
    /* Prevent horizontal scroll on mobile */
    width: 100%;
    position: relative;
}

.site-header {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(227, 231, 229, 0.5);
    position: sticky;
    top: 0;
    z-index: 300;
    transition: all 0.3s ease;
}

.site-header--scrolled {
    padding: 4px 0;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

body.nav-is-open {
    overflow: hidden;
    /* Avoid double scrolling */
}

body.nav-is-open .site-header {
    background: transparent;
    border-bottom-color: transparent;
}

.site-header__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 16px 24px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 24px;
    transition: padding 0.3s ease;
}

.site-header--scrolled .site-header__inner {
    padding: 10px 24px;
}

.site-logo {
    justify-self: start;
    text-decoration: none;
    color: #1f5f4b;
    font-family: "Playfair Display", serif;
    font-size: clamp(30px, 1.95vw, 44px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.2px;
    white-space: nowrap;
}

.site-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(20px, 2vw, 44px);
    padding-right: 20px;
}

.site-nav a {
    color: #1f2428;
    text-decoration: none;
   /* font-size: clamp(16px, 1.1vw, 22px);*/
   font-size: 15px;
    line-height: 1;
    font-weight: 500;
    white-space: nowrap;
    transition: color 0.18s ease;
}

.site-nav a:hover {
    color: #1f5f4b;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-self: end;
}

.site-cta {
    text-decoration: none;
    background: #2f6f58;
    color: #fff;
    border-radius: 10px;
    padding: 15px 24px;
    font-size: 15px;
    line-height: 1;
    font-weight: 600;
    white-space: nowrap;
    transition: background-color 0.2s ease;
}

.site-cta:hover {
    background: #275b49;
}

.site-burger {
    display: none;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 6px;
    z-index: 400;
    /* Must be above the overlay (z-index: 250) and header (300) */
    position: relative;
    transition: all 0.3s ease;
}

/* When mobile nav is open, fix the burger so it stays on screen when scrolling */
body.nav-is-open .site-burger {
    position: fixed;
  /*  top: 18px;
    right: 124px;*/
	top:100px;
	left: 50%;
  transform: translate(-50%, -50%);
    display: flex;
    z-index: 400;
}

.site-burger span {
    display: block;
    width: 28px;
    height: 2.5px;
    background: #1f5f4b;
    border-radius: 2px;
    transition: all 0.3s ease;
}

.site-burger span:nth-child(2) {
    width: 18px;
}

.site-burger.is-open span:nth-child(1) {
    transform: translateY(8.5px) rotate(45deg);
    width: 28px;
}

.site-burger.is-open span:nth-child(2) {
    opacity: 0;
    transform: translateX(10px);
}

.site-burger.is-open span:nth-child(3) {
    transform: translateY(-8.5px) rotate(-45deg);
    width: 28px;
}

/* Mobile Nav Overlay Premium Redesign */
.site-nav-mobile {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    /* For modern mobile browsers */
    background: rgba(244, 248, 246, 0.75);
    /* Elegant glassmorphism base */
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    z-index: 250;
    /* Header is at 300, so it sits above */
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-nav-mobile.is-open {
    opacity: 1;
    pointer-events: auto;
}

.site-nav-mobile__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 24px;
    text-align: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    margin: 0;
}

.site-nav-mobile__inner a {
    color: #1a4f3e;
    text-decoration: none;
    font-family: "Playfair Display", serif;
    font-size: clamp(34px, 9vw, 46px);
    font-weight: 500;
    letter-spacing: -0.5px;
    opacity: 0;
    transform: translateY(20px);
    transition: color 0.3s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.4s ease;
}

.site-nav-mobile__inner a:hover {
    color: #2f6f58;
}

.site-nav-mobile.is-open .site-nav-mobile__inner a {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered animation for links */
.site-nav-mobile.is-open .site-nav-mobile__inner a:nth-child(1) {
    transition-delay: 0.10s;
}

.site-nav-mobile.is-open .site-nav-mobile__inner a:nth-child(2) {
    transition-delay: 0.15s;
}

.site-nav-mobile.is-open .site-nav-mobile__inner a:nth-child(3) {
    transition-delay: 0.20s;
}

.site-nav-mobile.is-open .site-nav-mobile__inner a:nth-child(4) {
    transition-delay: 0.25s;
}

.site-nav-mobile.is-open .site-nav-mobile__inner a:nth-child(5) {
    transition-delay: 0.30s;
}

.site-nav-mobile__inner a.mobile-cta {
    margin-top: 36px;
    padding: 20px 48px;
    background: linear-gradient(135deg, #2f6f58 0%, #1a4f3e 100%);
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.5px;
    border-radius: 50px;
    box-shadow: 0 16px 32px rgba(26, 79, 62, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition-delay: 0.35s;
}

.site-nav-mobile__inner a.mobile-cta:hover {
    box-shadow: 0 20px 40px rgba(26, 79, 62, 0.4);
    transform: translateY(-2px);
}

@media screen and (min-width: 961px) {
    .site-nav-mobile {
        display: none !important;
    }
}

.hero {
	position: relative;
	overflow: hidden;
	min-height: 705px;
	/*background-color: #b9d0b7;
	background-image: linear-gradient(90deg, rgba(187, 210, 183, 0.92) 0%, rgba(170, 199, 164, 0.86) 45%, rgba(150, 182, 144, 0.9) 100%), url("/img/bgr_girl.jpg"), url("/img/bgr_base.jpg");
	background-repeat: no-repeat, no-repeat, repeat-x;
	background-size: cover, cover, auto 100%;
	background-position: top center, top center, top center;
	*/
	background: url("/img/bgr_top.jpg") no-repeat top center;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("/img/bgr_top.jpg") no-repeat top center;
    pointer-events: none;
}

.hero__inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    min-height: 705px;
    padding: 0 24px;
    display: block;
    /* Default to block/flex for mobile */
}

@media screen and (min-width: 961px) {
    .hero__inner {
        display: grid;
        grid-template-columns: minmax(420px, 1fr) minmax(420px, 560px);
        grid-template-areas:
            "content image"
            "actions image";
        column-gap: 18px;
        row-gap: 10px;
        align-items: end;
    }
}

.hero__content {
    grid-area: content;
    padding: 72px 0 0;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 1);
}

.hero__title {
    margin: 0;
    color: #32624a;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(62px, 6vw, 108px);*/
	font-size: 82px;
    line-height: 80px;
    letter-spacing: -1.1px;
}

.hero__title span {
    display: block;
}

.hero__subtitle {
    margin: 14px 0 0;
    /*color: rgba(39, 87, 70, 0.93);
    font-size: clamp(28px, 2.2vw, 47px);
    line-height: 0.95;*/
	color: #204c36;
	font-size: 33px;
    line-height: 30px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-weight: 100;
}

.hero__description {
    margin: 28px 0 0;
   /* color: rgba(31, 69, 55, 0.86);
    font-size: clamp(18px, 1.25vw, 29px);
    line-height: 1.35;*/
	color: #204c36;
	font-size: 18px;
	line-height:30px;
    font-weight: 100;
}

.hero__actions {
    grid-area: actions;
    padding: 0 0 96px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
   /* min-width: 258px;*/
    padding: 15px 28px;
    border-radius: 10px;
    border: 2px solid #2f6f58;
    text-decoration: none;
    /*font-size: clamp(16px, 1.08vw, 20px);
    line-height: 1;*/
	font-size: 17px;
	line-height:30px;
    font-weight: 500;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.hero-btn--primary {
    background: #2f6f58;
    color: #fff;
}

.hero-btn--primary:hover {
    background: #295f4d;
}

.hero-btn--secondary {
    background: rgba(255, 255, 255, 0.15);
    color: #275947;
}

.hero-btn--secondary:hover {
    background: rgba(255, 255, 255, 0.35);
}

.hero__image-wrap {
    grid-area: image;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    min-height: 705px;
}

.hero__image {
    width: clamp(410px, 36vw, 560px);
    height: auto;
    object-fit: contain;
    object-position: bottom right;
}

.hero-event-teaser {
    padding: 0 40px 40px;
    margin-top: -20px;
}

.hero-event-teaser__inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
    padding: 24px;
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(242, 235, 225, 0.96), rgba(248, 244, 237, 0.96));
    box-shadow: 0 18px 60px rgba(45, 57, 49, 0.12);
}

.hero-event-teaser__media img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 22px;
    display: block;
}

.hero-event-teaser__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
}

.hero-event-teaser__eyebrow,
.event-modal-detail__eyebrow {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8c6c47;
    font-weight: 700;
}

.hero-event-teaser__title {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 36px;
    color: #18352d;
}

.hero-event-teaser__meta,
.hero-event-teaser__text {
    margin: 0;
    color: #44554e;
}

.hero-event-teaser__btn {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 999px;
    background: #23483d;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
}

.event-modal-detail__media img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 20px;
    margin-bottom: 18px;
}

.event-entry__media img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 20px;
    margin-bottom: 18px;
}

.event-entry__eyebrow,
.event-quiz__eyebrow {
    margin-bottom: 10px;
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8c6c47;
    font-weight: 700;
}

.event-entry__actions,
.event-quiz__actions {
    display: flex;
    gap: 12px;
    margin-top: 22px;
}

.event-quiz__wrap .appt-modal__subtitle {
    margin-bottom: 12px;
}

.event-quiz__progress {
    margin-bottom: 12px;
    color: #6d7b74;
    font-size: 13px;
}

.event-quiz__question {
    margin: 0 0 20px;
    color: #20332b;
    font-size: 18px;
    line-height: 1.5;
}

.event-quiz__actions .quiz-btn {
    flex: 1 1 0;
}

/* ===== BLOCK 2: О СПЕЦИАЛИСТЕ ===== */
.about {
    padding: 60px 0 70px;
    background: #fff;
}

.about__title {
    text-align: center;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(36px, 3.2vw, 56px);*/
	font-size:50px;
	line-height:50px;
    font-weight: 500;
    color: #3c3c3c;
    margin: 0 0 40px;
    font-style: normal;
    transform: translateX(-100px);
    /* Сдвигаем левее по желанию пользователя */
}

.about__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: block;
    /* Default for mobile */
}

@media screen and (min-width: 961px) {
    .about__inner {
        display: grid;
        grid-template-columns: minmax(400px, 490px) 1fr;
        column-gap: 50px;
        align-items: flex-end;
    }
}


.about__photo-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    /* Removed margin-top since we're using align-items: center on the grid to keep button and bottom of circle aligned */
}

.about__photo-wrap img {
    width: 100%;
    max-width: 490px;
    height: auto;
    display: block;
}

.about__info {
    padding-top: 0;
    padding-bottom: 10px;
}

.about__name {
    font-family: "Playfair Display", serif;
    /*font-size: clamp(28px, 2.4vw, 42px);
    font-weight: 500;*/
	font-size:36px;
	line-height:30px;
    font-style: normal;
	font-weight: 500;
    color: #356c4f;
    margin: 0 0 4px;
}

.about__role {
    /*font-size: clamp(13px, 1vw, 16px);
    font-weight: 500;
    color: #216155;*/
	font-size:18px;
	line-height:30px;
    font-style: normal;
	font-weight: 100;
    color: #356c4f;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 10px 0 16px;
}

.about__lead {
   /* font-size: clamp(15px, 1.1vw, 18px);
    line-height: 1.55;
    color: #125147;
	  font-weight: 400;
	*/
	font-size:16px;
	line-height:30px;
    font-style: normal;
	font-weight: 400;
    color: #356c4f;
    margin: 0 0 10px;
}

.about__text {
    /*font-size: clamp(14px, 1vw, 16px);
    line-height: 1.6;*/
	font-size:15px;
	line-height:22px;
    color: #3c3c3c;
    margin: 0 0 20px;
}

.about__subtitle {
    font-family: "Playfair Display", serif;
    /*font-size: clamp(22px, 1.8vw, 32px);
    font-weight: 600;*/
	font-size:24px;
	line-height:30px;
	font-weight: 500;
    font-style: normal;
    color: #356c4f;
    margin: 0 0 10px;
}

.about__edu {
    /*font-size: clamp(14px, 1vw, 16px);
    line-height: 1.6;
    color: #555;*/
	font-size:15px;
	line-height:22px;
    color: #3c3c3c;
    margin: 0 0 20px;
}

.about__competencies {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
}

.about__competencies li {
    display: flex;
    align-items: center;
    gap: 12px;
    /*font-size: clamp(14px, 1.05vw, 17px);
    line-height: 1.5;
    color: #333;*/
	font-size:15px;
    color: #3c3c3c;
    padding: 5px 0;
}

.about__competencies li::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: url("/img/check.png") no-repeat center;
    background-size: contain;
}

.about__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 18px 40px;
    border-radius: 10px;
    background: #2f6f58;
    color: #fff;
    text-decoration: none;
    /*font-size: clamp(16px, 1.1vw, 20px);*/
	font-size:17px;
    font-weight: 500;
    transition: background-color 0.2s ease;
}

.about__btn:hover {
    background: #275b49;
}

/* ===== BLOCK 3: ДИПЛОМЫ И СЕРТИФИКАТЫ ===== */
.diplomas {
	position: relative;
	padding: 50px 0 60px;
	z-index: 1;
	/*background-image: url("/img/diplomas-bg-desktop.png"), url("/img/bgr_base.jpg"), linear-gradient(180deg, #d7e8d3 0%, #d1e1cd 52%, #d9e8d6 100%);
	background-repeat: no-repeat, no-repeat;
	background-repeat: repeat-x;
	background-position: top center, top center;
	background-size: cover, cover;
	*/
	background-color: #fff;
	background-image : url("/img/bgr_base.jpg");
	background-position : top center;
	background-repeat : repeat-x;
}

.diplomas__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 24px;
    max-width: 1320px;
    margin: 0 auto 40px;
    padding: 0 24px;
}

.diplomas__header-center {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	
}

.diplomas__title {
    font-family: "Playfair Display", serif;
    /*font-size: clamp(32px, 3vw, 52px);*/
	font-size: 50px;
  line-height: 50px;
    font-weight: 500;
    font-style: normal;
    color: #363a38;
    margin: 0 0 15px;
}

.diplomas__subtitle {
   /* font-size: clamp(11px, 0.85vw, 14px);*/
   font-size: 18px;
  line-height: 30px;
    font-weight: 100;
    text-transform: uppercase;
    letter-spacing: 1.1px;
    color: #356c4f;
    margin: 6px 0 0 0;
}

.diplomas__carousel {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0px 24px;
}

.diplomas__track {
    display: flex;
   /* gap: 34px;*/
    overflow: hidden;
    scroll-behavior: smooth;
	 padding: 30px 20px 20px 0px;
	 margin: 0px 0px 0px 0px;
}

.diplomas__slide {
    flex: 0 0 calc(33.333% - 16px);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-radius: 6px;
    overflow: hidden;
   /* box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);*/
	 margin: 0px 12px 0px 12px;
	 
	 box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.3);
}

.diplomas__slide:hover {
    transform: scale(1.02);
    /*box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3);*/
	 box-shadow: none;
}

.diplomas__slide img {
    width: 100%;
    height: auto;
    display: block;
}

.diplomas__arrow {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    background: none;
    border: none;
    cursor: pointer;
    opacity: 0.88;
    color: #363a38;
    transition: opacity 0.2s ease, transform 0.18s ease;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.diplomas__arrow::before {
    content: "";
    display: block;
    width: 26px;
    height: 26px;
    border-top: 4px solid currentColor;
    border-right: 4px solid currentColor;
}

.diplomas__arrow:hover {
    opacity: 1;
    transform: scale(1.05);
}

.diplomas__arrow:active {
    transform: scale(0.97);
}

.diplomas__arrow:focus-visible {
    outline: 2px solid rgba(54, 58, 56, 0.35);
    outline-offset: 4px;
    border-radius: 10px;
}

.diplomas__arrow--prev::before {
    transform: rotate(-135deg);
    margin-left: 8px;
}

.diplomas__arrow--next::before {
    transform: rotate(45deg);
    margin-right: 8px;
}

.diplomas__dots {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-top: 30px;
}

.diplomas__dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: #b7ceb5;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.diplomas__dot.is-active {
    background: #7a9a8a;
}

.diplomas__dot:hover {
    transform: scale(1.03);
}

/* Lightbox */
.diploma-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.85);
    align-items: center;
    justify-content: center;
    padding: 30px;
}

.diploma-lightbox.is-open {
    display: flex;
}

.diploma-lightbox__img {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4);
}

.diploma-lightbox__close {
    position: absolute;
    top: 20px;
    right: 30px;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    color: #fff;
    font-size: 36px;
    cursor: pointer;
    line-height: 1;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.diploma-lightbox__close:hover {
    opacity: 1;
}

/* ===== BLOCK 4: КАК ПОПАСТЬ НА ПРИЁМ ===== */
.appointment {
    position: relative;
    z-index: 1;
    background: #7ca184 url("/img/bgr_girl.jpg") center center no-repeat;
    background-size: cover;
    padding: 0;
    min-height: 220px;
    overflow: visible;

}

.appointment__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 30px 24px;
	display: grid;
	grid-template-columns: 1fr minmax(320px, 400px);
	column-gap: 22px;
	align-items: stretch;
	overflow: visible;
	/* Both columns fill the full height */
	position: relative;
}

.appointment__content {
    max-width: 760px;
    margin-left: 58px;
    padding: 20px 0 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
	text-shadow: 0 1px 0 rgba(66, 101, 58, 1);
}

.appointment__title {
    font-family: "Playfair Display", serif;
    font-size: clamp(42px, 2.52vw, 48px);
    font-weight: 400;
    font-style: normal;
    line-height: 1.08;
    letter-spacing: 0;
    color: #f9fdfc;
    
    margin: 0 0 34px;
}

.appointment__text {
    max-width: 740px;
   /* font-size: clamp(19px, 1.15vw, 22px);
    line-height: 1.58;*/
	font-size:20px;
	line-height:36px;
    font-weight: 400;
    color: rgba(249, 253, 252, 0.94);
    margin: 0 0 32px;
}

.appointment__text a {
    color: rgba(249, 253, 252, 0.97);
    text-decoration: none;
    font-weight: 400;
}

.appointment__text a:hover {
    text-decoration: underline;
}

.appointment__online {
    font-family: "Playfair Display", serif;
    font-size: clamp(27px, 1.57vw, 30px);
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    color: #f8f5a6;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(66, 101, 58, 0.6);
    margin: 0 0 18px;
}

.appointment__tg {
    max-width: 740px;
   /* font-size: clamp(19px, 1.15vw, 22px);
    line-height: 1.42;*/
	font-size:20px;
	line-height:36px;
    font-weight: 400;
    color: rgba(249, 253, 252, 0.94);
    margin: 0;
}

.appointment__tg a {
    color: #f9fdfc;
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}

.appointment__tg a:hover {
    color: #fff;
    text-decoration: underline;
}

.appointment__image-wrap {
   /*  display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    align-self: end;
    padding-bottom: 0;
    margin-bottom: 0;
    line-height: 0;
    overflow: visible;
    Remove any inline whitespace below image */
	position:absolute;
	bottom:0px;
	right:0px;
	width: 328px;
	height:auto;
}

.appointment__image {
    /* width: clamp(220px, 22vw, 328px);
    height: auto;
    display: block;
    object-fit: contain;
    object-position: right bottom;
    margin-top: -120px;
    margin-bottom: -90px;
    vertical-align: bottom;
    position: relative;
    z-index: 2;
    Kill baseline gap */
}
.appointment__image-wrap img{
	display : block;
	width : 100%;
	height : auto;
}
@media screen and (max-width: 1024px) {.appointment__image-wrap{	width: 300px;	height:auto;}.appointment__inner {	padding: 0px 24px 0px 24px;}}
@media screen and (max-width: 900px) {.appointment__image-wrap{	display:none;}}
/* ===== BLOCK 5: ОЗДОРОВИТЕЛЬНЫЕ ПРОГРАММЫ ===== */
.programs {
    position: relative;
    z-index: 1;
    padding:46px 0 56px;
   /* background-color: #d5e5d1;
    background-image:
        url("/img/programs-bg-desktop.png"),
        linear-gradient(180deg, #d6e7d2 0%, #d0e0cd 54%, #dce9d9 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: top center, top center;
    background-size: cover, cover;*/
	background-color: #fff;
	background-image : url("/img/bgr_base.jpg");
	background-position : top center;
	background-repeat : repeat-x;
}

.programs__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 22px;
    max-width: 1320px;
    margin: 0 auto 38px;
    padding: 0 24px;
}

.programs__header-center {
    text-align: center;
    max-width: 1160px;
    margin: 0 auto;
}

.programs__title {
    margin: 0 0 20px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(40px, 3.35vw, 64px);
    line-height: 1.04;	*/
    letter-spacing: -0.2px;
    font-weight: 600;
    font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.programs__subtitle {
    margin: 0;
   /* color: #5f8d7f;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: clamp(11px, 1vw, 15px);
    line-height: 1.35;
    font-weight: 500;*/
	font-size: 18px;
  line-height: 30px;
  font-weight: 100;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  color: #356c4f;
  margin: 6px 0 0 0;
}

.programs__carousel {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0 34px;
}

.programs__track {
    display: flex;
    align-items: stretch;
    gap: 34px;
    overflow: hidden;
    scroll-behavior: smooth;
	padding: 30px 0px 20px 0px;
}

.programs__slide {
    flex: 0 0 calc((100% - 68px) / 3);
    display: flex;
}

.program-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 16px rgba(31, 36, 40, 0.12);
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.program-card__media {
    aspect-ratio: 900 / 345;
}

.program-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.program-card__body {
    padding: 12px 22px 14px;
    display: flex;
    flex-direction: column;
    min-height: 108px;
}

.program-card__title {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(22px, 1.8vw, 40px);
    line-height: 1.08;*/
	font-size:24px;
	line-height:30px;
    font-weight: 500;
    color: #32624a;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.program-card__text {
    margin: 0 0 8px;
    color: #555c59;
   /* font-size: clamp(12px, 0.82vw, 16px);
    line-height: 1.34;*/
	font-size:15px;
	line-height:22px;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.program-card__link {
    margin-top: 14px;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    text-decoration: none;
    color: #3f7b63;
    /*font-size: clamp(14px, 0.9vw, 17px);
    line-height: 1;*/
	font-size:16px;
	line-height:16px;
    font-weight: 100;
    letter-spacing: 0.1px;
    text-transform: uppercase;
}

.program-card__link:hover {
    color: #2f6f58;
}

.programs__arrow,
.support-groups__arrow,
.events__arrow,
.reviews__arrow,
.materials__arrow {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    background: none;
    border: none;
    cursor: pointer;
    opacity: 0.88;
    color: #363a38;
    transition: opacity 0.2s ease, transform 0.18s ease;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.programs__arrow::before,
.support-groups__arrow::before,
.events__arrow::before,
.reviews__arrow::before,
.materials__arrow::before {
    content: "";
    display: block;
    width: 26px;
    height: 26px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

.programs__arrow--prev::before,
.support-groups__arrow--prev::before,
.events__arrow--prev::before,
.reviews__arrow--prev::before,
.materials__arrow--prev::before {
    transform: rotate(-135deg);
    margin-left: 8px;
}

.programs__arrow--next::before,
.support-groups__arrow--next::before,
.events__arrow--next::before,
.reviews__arrow--next::before,
.materials__arrow--next::before {
    transform: rotate(45deg);
    margin-right: 8px;
}

.programs__arrow:hover,
.support-groups__arrow:hover,
.events__arrow:hover,
.reviews__arrow:hover,
.materials__arrow:hover {
    opacity: 1;
    transform: scale(1.05);
}

.programs__arrow:active,
.support-groups__arrow:active,
.events__arrow:active,
.reviews__arrow:active,
.materials__arrow:active {
    transform: scale(0.97);
}

.programs__dots,
.support-groups__dots,
.events__dots,
.materials__dots {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-top: 22px;
}

.programs__dot,
.support-groups__dot,
.events__dot,
.materials__dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: #b7ceb5;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.programs__dot.is-active,
.support-groups__dot.is-active,
.events__dot.is-active,
.materials__dot.is-active {
    background: #7a9a8a;
}

.programs__dot:hover,
.support-groups__dot:hover,
.events__dot:hover,
.materials__dot:hover {
    transform: scale(1.03);
}

/* ===== BLOCK 6: САМОДИАГНОСТИКА ===== */
.diagnostics {
    position: relative;
    z-index: 1;
    padding: 52px 0 74px;
    /*background-color: #d5e5d1;
    background-image:
        url("/img/diagnostics-bg-desktop.png"),
        linear-gradient(180deg, #d6e7d2 0%, #d2e3ce 48%, #dce8d8 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: top center, top center;
    background-size: cover, cover;*/
	background-color: #fff;
	background-image : url("/img/bgr_base.jpg");
	background-position : top center;
	background-repeat : repeat-x;
}

.diagnostics__header {
    max-width: 1180px;
    margin: 0 auto 30px;
    text-align: center;
    padding: 0 24px;
}

.diagnostics__title {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
  /*  font-size: clamp(42px, 3.15vw, 60px);
    line-height: 1.05;
    font-weight: 600;
    color: #363a38;*/
	font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.diagnostics__subtitle {
    margin: 0;
        text-transform: uppercase;
  /*  font-size: clamp(12px, 1vw, 15px);
    line-height: 1.32;*/
	font-size: 18px;
  line-height: 30px;
  font-weight: 100;
  letter-spacing: 1.1px;
  color: #356c4f;
}

.diagnostics__grid {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0 34px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    align-items: stretch;
}

.diagnostics-card {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
}

.diagnostics-card__media {
    position: relative;
    aspect-ratio: 900 / 345;
	background: rgba(0, 0, 0, 1);
}

.diagnostics-card__media img {
opacity: 0.75;
}



.diagnostics-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.diagnostics-card__num {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(92px, 5.7vw, 148px);
    line-height: 1;*/
    color: #f8fdf9;
	font-size:150px;line-height:20px;
    text-shadow:
        0 3px 0 rgba(52, 94, 76, 0.52),
        0 0 8px rgba(244, 252, 247, 0.35);
    -webkit-text-stroke: 1.6px rgba(64, 108, 89, 0.48);
    letter-spacing: 1px;
    font-weight: 600;
    opacity: 0.98;
    pointer-events: none;
}

.diagnostics-card__body {
    padding: 24px 24px 32px;
    display: flex;
    flex-direction: column;
    flex: 1;
    box-sizing: border-box;
}

.diagnostics-card__title {
    margin: 0 0 12px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(18px, 1.1vw, 22px);
    line-height: 1.2;
    font-weight: 700;
    color: #1a4d3c;*/
	font-size: 24px;
  line-height: 30px;
  font-weight: 500;
  color: #32624a;
    letter-spacing: -0.02em;
}

.diagnostics-card__text {
    margin: 0 0 24px;
    color: #555c59;
   /* font-size: clamp(14px, 0.9vw, 16px);
    line-height: 1.5;*/
	font-size: 15px;
  line-height: 22px;
    min-height: 3em;
}

.diagnostics-card__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	margin-top: auto;
	padding: 0 16px;
	border-radius: 10px;
	background: #3a634e;
	color: #fff;
	text-decoration: none;
	font-size: clamp(15px, 0.95vw, 18px);
	font-weight: 500;
	line-height: 1;
	transition: background-color 0.2s ease;
	box-sizing: border-box;
	border : 1px solid #3a634e;
	cursor:pointer;
}

.diagnostics-card__btn:hover {
    background: #2d4f3e;
}

/* ===== BLOCK 7: ГРУППЫ ПОДДЕРЖКИ ===== */
.support-groups {
    position: relative;
    z-index: 1;
    padding: 52px 0 50px;
    background-color: #eff6ef;
}

.support-groups__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 22px;
    max-width: 1320px;
    margin: 0 auto 24px;
    padding: 0 24px;
}

.support-groups__header-center {
    text-align: center;
    max-width: 980px;
    margin: 0 auto;
}

.support-groups__title {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
  /*  font-size: clamp(40px, 3.15vw, 62px);
    line-height: 1.04;
    letter-spacing: -0.2px;
    font-weight: 600;
    color: #363a38;*/
	font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.support-groups__subtitle {
    margin: 0;
    text-transform: uppercase;
   /* color: #5f8d7f;
   letter-spacing: 1.5px;
    font-size: clamp(11px, 1vw, 15px);
    line-height: 1.32;*/
	font-size: 18px;
  line-height: 30px;
  font-weight: 100;
  letter-spacing: 1.1px;
  color: #356c4f;
}

.support-groups__carousel {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0 34px;
}

.support-groups__track {
    display: flex;
    align-items: stretch;
    gap: 34px;
    overflow: hidden;
    scroll-behavior: smooth;
	padding: 30px 0px 20px 0px;
}

.support-groups__slide {
    flex: 0 0 calc((100% - 34px) / 2);
    display: flex;
}

.support-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    min-height: 380px;
    width: 100%;
}

.support-card__body {
    padding: 32px 32px 28px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.support-card__media {
    position: relative;
    overflow: hidden;
}

.support-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.support-card__title {
    margin: 0 0 16px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(24px, 1.6vw, 32px);
    line-height: 1.1;*/
	font-size:30px;line-height:36px;
    font-weight: 500;
    color: #32624a;
}

.support-card__text {
    margin: 0 0 18px;
    color: #3c3c3c;
   /* font-size: clamp(14px, 0.9vw, 16px);
    line-height: 1.5;*/
	font-size:14px;line-height:21px;
}

.support-card__list {
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.support-card__list li {
    position: relative;
    padding-left: 28px;
    color: #4a4a4a;
    /*font-size: clamp(13px, 0.85vw, 15px);
    line-height: 1.4;*/
	font-size:14px;line-height:21px;
}

.support-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background: url("/img/check.png") no-repeat center;
    background-size: contain;
}

.support-card__link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #5f8d7f;
    /*font-size: clamp(14px, 0.85vw, 16px);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;*/
    transition: color 0.2s ease;
	
	font-size: 16px;
  line-height: 16px;
  font-weight: 100;
  letter-spacing: 0.1px;
  text-transform: uppercase;
}

.support-card__link:hover {
    color: #1a4d3c;
    background: transparent;
}

.support-card__media img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    display: block;
}

/* ===== BLOCK 8: ПРЕДСТОЯЩИЕ МЕРОПРИЯТИЯ ===== */
.events {
    position: relative;
    z-index: 1;
    padding: 50px 0 62px;
    background-color: #fff;
}

.events__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 22px;
    max-width: 1320px;
    margin: 0 auto 28px;
    padding: 0 24px;
}

.events__header-center {
    text-align: center;
}

.events__title {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
   /* font-size: clamp(40px, 3.15vw, 62px);
    line-height: 1.04;
    letter-spacing: -0.2px;
    font-weight: 600;
    color: #363a38;*/
	font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.events__subtitle {
    margin: 0;
   /* color: #5f8d7f;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: clamp(11px, 1vw, 15px);
    line-height: 1.32;*/
	font-size: 18px;
  line-height: 30px;
  font-weight: 100;
  letter-spacing: 1.1px;
  color: #356c4f;
   text-transform: uppercase;
}

.events__carousel {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0 34px;
}

.events__track {
    display: flex;
    gap: 34px;
    overflow: hidden;
    scroll-behavior: smooth;
    align-items: stretch;
	padding: 30px 0px 20px 0px;
}

.events__slide {
    flex: 0 0 calc((100% - 68px) / 3);
    display: flex;
}

.events-card {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.events-card__media {
    position: relative;
    aspect-ratio: 900 / 345;
}

.events-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
}

.events-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.events-card__label {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    font-family: "Playfair Display", serif;
    font-size: clamp(32px, 2.2vw, 54px);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 2px 15px rgba(0, 0, 0, 0.6);
    z-index: 2;
    pointer-events: none;
    text-transform: uppercase;
}

.events-card__body {
    padding: 0 32px 32px;
    display: flex;
    flex-direction: column;
    flex: 1;
    box-sizing: border-box;
}

.events-card__date {
    margin: 0;
    position: absolute;
    left: 0;
    bottom: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 24px;
    background: #7a9a7a;
    color: #ffffff;
    font-size: clamp(13px, 0.8vw, 15px);
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    z-index: 3;
}

.events-card__title {
    margin: 28px 0 14px;
    font-family: "Playfair Display", serif;
   /* font-size: clamp(20px, 1.5vw, 26px);
    line-height: 1.2;
    font-weight: 700;
    color: #1a4d3c;
    min-height: 2.4em;*/
	
	font-size: 24px;
  line-height: 30px;
  font-weight: 500;
  color: #32624a;
  letter-spacing: -0.02em;
    /* Фиксируем высоту заголовка на 2 строки */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.events-card__text {
    margin: 0 0 24px;
    color: #4a4a4a;
    /*font-size: clamp(14px, 0.9vw, 16px);
    line-height: 1.5;
    min-height: 4.5em;
	*/
  color: #555c59;
  font-size: 15px;
  line-height: 22px;
  min-height: 3em;
	
	
    /* Фиксируем высоту текста на 3 строки */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.events-card__btn {
    margin-top: auto;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 10px;
    background: #3a634e;
    color: #fff;
    text-decoration: none;
    font-size: clamp(15px, 0.95vw, 18px);
    font-weight: 500;
    transition: background-color 0.2s ease;
    box-sizing: border-box;
}

.events-card__btn:hover {
    background: #2d4f3e;
}

/* ===== BLOCK 9: ОТЗЫВЫ ===== */
.reviews {
    position: relative;
    z-index: 1;
    padding: 50px 0 50px;
    /*background-color: #d5e5d1;
    background-image:
        url("/img/diagnostics-bg-desktop.png"),
        linear-gradient(180deg, #d6e7d2 0%, #d2e3ce 48%, #dce8d8 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: top center, top center;
    background-size: cover, cover;*/
	
	background-color: #fff;
  background-image: url("/img/bgr_base.jpg");
  background-position: top center;
  background-repeat: repeat-x;
}

.reviews__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 22px;
    max-width: 1320px;
    margin: 0 auto 34px;
    padding: 0 24px;
}

.reviews__header-center {
    text-align: center;
}

.reviews__title {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
   /* font-size: clamp(40px, 3.15vw, 62px);
    line-height: 1.04;
    letter-spacing: -0.2px;
    font-weight: 600;
    color: #363a38;*/
	font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.reviews__subtitle {
    margin: 0;
    text-transform: uppercase;
   /* color: #5f8d7f;
   letter-spacing: 1.5px;
    font-size: clamp(11px, 1vw, 15px);
    line-height: 1.32;*/
	font-size: 18px;
  line-height: 30px;
  font-weight: 100;
  letter-spacing: 1.1px;
  color: #356c4f;
}

.reviews__carousel {
    /*max-width: 1320px;*/
	max-width: 1840px;
    margin: 0 auto;
    padding: 0 34px;
}

.reviews__track {
    display: flex;
    align-items: stretch;
    gap: 34px;
    overflow: hidden;
    scroll-behavior: smooth;
	padding: 30px 0px 20px 0px;
}

.reviews__slide {
    flex: 0 0 calc((100% - 68px) / 3);
    display: flex;
}

.review-card {
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	padding: 24px 24px 28px;
	display: flex;
	flex-direction: column;
	min-height: 200px;
	height: 100%;
	width: 100%;
	box-sizing: border-box;
	border : 1px solid #fff;
	min-height:235px;
}
.review-card:hover{
	border-color : #bdd4b9;
}

.review-card__name {
    margin: 0 0 10px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(16px, 1.1vw, 20px);
    line-height: 1.2;*/
	font-size:24px; line-height:30px;
    font-weight: 500;
    color: #32624a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.review-card__stars {
    display: inline-flex;
    gap: 3px;
    margin-bottom: 12px;
}

.review-card__stars span {
    width: 14px;
    height: 14px;
    background: url("/img/reviews-star.png") center / contain no-repeat;
    flex: 0 0 auto;
}

.review-card__text {
    margin: 0 0 32px;
    color: #3c3c3c;
    /*font-size: clamp(12px, 0.75vw, 14px);
    line-height: 1.4;*/
	font-size:15px; line-height:22px; font-weight: 100;
    overflow-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-card__link {
    margin-top: auto;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    text-decoration: none;
    color: #5f8d7f;
   /* font-size: clamp(11px, 0.7vw, 12px);
    line-height: 1;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
	*/
	
	transition: color 0.2s ease;
  font-size: 16px;
  line-height: 16px;
  font-weight: 100;
  letter-spacing: 0.1px;
  text-transform: uppercase;
}

.reviews__cta {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.reviews__cta-btn {
    min-height: 48px;
    padding: 0 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 10px;
    background: #3a634e;
    color: #fff;
    text-decoration: none;
    font-size: clamp(15px, 0.9vw, 16px);
    font-weight: 500;
    transition: background-color 0.2s ease;
}

.reviews__cta-btn:hover {
    background: #2d4f3e;
}

/* ===== BLOCK 10: МАТЕРИАЛЫ И ЛЕКЦИИ ===== */
.materials {
    position: relative;
    z-index: 1;
    padding: 50px 0 50px;
    background-color: #d6e7d2;
    background-image:
        url("/img/bgr_material.jpg"),
        linear-gradient(180deg, #d6e7d2 0%, #cfe1cc 48%, #d8e8d5 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: top center, top center;
    background-size: cover, cover;
}

.materials__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    column-gap: 22px;
    max-width: 1320px;
    margin: 0 auto 34px;
    padding: 0 24px;
}

.materials__header-center {
    text-align: center;
}

.materials__title {
    margin: 0 0 18px;
    font-family: "Playfair Display", serif;
    /*font-size: clamp(36px, 3vw, 58px);
    line-height: 1.04;
    letter-spacing: -0.2px;
    font-weight: 600;
    color: #363a38;*/
	
	font-size: 50px;
  line-height: 50px;
  font-weight: 500;
  font-style: normal;
  color: #363a38;
}

.materials__tabs {
    display: inline-flex;
    gap: 26px;
    border-bottom: 1px solid rgba(47, 111, 88, 0.35);
    padding-bottom: 0px;
}

.materials__tabs {
    display: flex;
    gap: clamp(12px, 2vw, 24px);
    justify-content: center;
    margin-top: 16px;
    flex-wrap: wrap;
}

.materials__tab {
    background: transparent;
    border: none;
    padding: 8px 12px;
    cursor: pointer;
    font-size: clamp(14px, 1vw, 16px);
    color: #5f8d7f;
    transition: all 0.2s ease;
    border-bottom: 2px solid transparent;
    font-family: inherit;
    white-space: nowrap;
}

.materials__tab.is-active {
    color: #1a4d3c;
    border-bottom-color: #1a4d3c;
    font-weight: 600;
}

.materials__tab:hover:not(.is-active) {
    color: #1a4d3c;
    border-bottom-color: rgba(26, 77, 60, 0.3);
}

.materials__carousel {
    max-width: 1840px;
    margin: 0 auto;
    /*padding: 0 34px;*/
	padding: 30px 0px 20px 0px;
}

.materials__track {
    display: flex;
    align-items: stretch;
    gap: 34px;
    overflow: hidden;
    scroll-behavior: smooth;
}

.materials__slide {
    flex: 0 0 calc((100% - 68px) / 3);
    display: flex;
}

.material-card {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.material-card__media {
    aspect-ratio: 900 / 345;
}

.material-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.material-card__body {
    padding: 24px 24px 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    box-sizing: border-box;
}

.material-card__title {
    margin: 0 0 12px;
    font-family: "Playfair Display", serif;
  /*  font-size: clamp(18px, 1.2vw, 22px);
    line-height: 1.2;
    font-weight: 700;
    color: #1a4d3c;
    min-height: 2.4em;*/
	font-size: 24px;
  line-height: 30px;
  font-weight: 500;
  color: #32624a;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.material-card__text {
    margin: 0 0 24px;
    
   /*color: #4a4a4a; font-size: clamp(13px, 0.8vw, 15px);
    line-height: 1.5;*/
	color: #555c59;
  font-size: 15px;
  line-height: 22px;
    min-height: 3em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.material-card__actions {
    margin-top: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.material-card__btn {
    min-height: 44px;
    border-radius: 8px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(14px, 0.85vw, 16px);
    font-weight: 500;
    transition: all 0.2s ease;
}

.material-card__btn--outline {
    border: 1px solid #3a634e;
    color: #3a634e;
    background: transparent;
}

.material-card__btn--outline:hover {
    background: rgba(58, 99, 78, 0.05);
}

.material-card__btn--filled {
    background: #3a634e;
    color: #fff;
}

.material-card__btn--filled:hover {
    background: #2d4f3e;
}

@media screen and (max-width: 1200px) {
    .site-header__inner {
        max-width: 100%;
        padding: 16px 20px;
        grid-template-columns: auto 1fr auto;
        column-gap: 14px;
    }

    .site-nav {
        justify-content: center;
        gap: 14px 22px;
        padding-right: 0;
    }

    .hero {
        min-height: 640px;
    }

    .hero__inner {
        max-width: 100%;
        min-height: 640px;
        grid-template-columns: 1fr 480px;
        padding: 0 20px;
    }

    .hero__content {
        padding-top: 56px;
    }

    .hero__title {
	/* font-size: clamp(54px, 6.2vw, 84px);	*/
	font-size : 70px;
	line-height : 70px;
}

    .hero__subtitle {
       /* font-size: clamp(25px, 2.55vw, 37px);*/
	   font-size : 28px;
	line-height : 26px;
    }

    .hero__description {
        /*font-size: clamp(17px, 1.5vw, 23px);*/
		 font-size : 17px;
	line-height : 26px;
    }

    .hero__actions {
        padding-bottom: 72px;
    }

    .hero-btn {
        min-width: 220px;
        padding: 15px 22px;
       /* font-size: clamp(15px, 1.2vw, 19px);*/
    }

    .hero__image-wrap {
        min-height: 640px;
    }

    .hero__image {
        width: clamp(350px, 34vw, 470px);
    }

    .hero-event-teaser {
        padding: 0 24px 32px;
    }

    .hero-event-teaser__inner {
        grid-template-columns: 1fr;
    }

    .about__inner {
        column-gap: 30px;
    }

    .diplomas__carousel {
        padding: 0 50px;
    }

    .appointment__inner {
        column-gap: 24px;
    }

    .programs__carousel,
    .diagnostics__grid,
    .support-groups__carousel,
    .events__carousel,
    .reviews__carousel,
    .materials__carousel {
        padding-left: 24px;
        padding-right: 24px;
    }

    .programs__track,
    .support-groups__track,
    .diagnostics__grid,
    .events__track,
    .reviews__track,
    .materials__track {
        gap: 24px;
    }

    .programs__slide,
    .events__slide,
    .reviews__slide,
    .materials__slide {
        flex-basis: calc((100% - 48px) / 3);
    }

    .support-groups__slide {
        flex-basis: calc((100% - 24px) / 2);
    }
}

@media screen and (max-width: 960px) {

    /* HEADER & NAV */
    .site-header__inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 20px;
    }

    .site-nav {
        display: none;
    }

    .site-burger {
        display: flex;
    }

    .header-actions {
        display: flex;
        align-items: center;
        gap: 12px;
        position: relative;
        z-index: 301;
        /* Еще выше, чтобы действия в шапке не перекрывались */
    }

    .site-logo {
        font-size: clamp(24px, 6vw, 32px) !important;
        white-space: normal !important;
        max-width: 60vw;
        line-height: 1.1;
    }

   /* .site-cta {
        padding: 8px 14px;
        font-size: 13px;
        border-radius: 12px;
    }*/

    /* HERO RE-LAYOUT FOR MOBILE */
    .hero {
        min-height: 0;
        background-color: #b9d0b7;
        /*background-image:
            linear-gradient(90deg, rgba(187, 210, 183, 0.92) 0%, rgba(170, 199, 164, 0.86) 45%, rgba(150, 182, 144, 0.9) 100%),
            url("/img/bgr_girl.jpg"),
            url("/img/bgr_base.jpg");
        background-repeat: no-repeat, no-repeat, repeat-x;
        background-size: cover, cover, auto 100%;
        background-position: top center, top center, top center;*/
    }

    .hero::before {
        display: none;
    }

    .hero__inner {
        min-height: 0;
        grid-template-columns: 1fr;
        grid-template-areas:
            "content"
            "image"
            "actions";
        row-gap: 0;
        justify-items: center;
        align-items: start;
        padding: 0;
    }

    .hero__content {
        display: none;
        /* Hide text on mobile as requested */
    }

    .hero__image-wrap {
        width: 100%;
        min-height: 0;
        display: flex;
        justify-content: center;
        background: transparent;
        padding-top: 0;
        /* Убираем лишний отступ сверху */
    }

    .hero__image {
        width: 100%;
        max-width: 480px;
        height: auto;
        display: block;
        margin-bottom: 0;
    }

    .hero__actions {
        width: 95%;
        padding: 0 20px 40px;
       /* background: #d5e5d1;*/
        display: flex;
        flex-direction: column;
        align-items: stretch;
        /* Растягиваем кнопки на всю ширину контейнера */
        gap: 12px;
        margin: -10px auto 0px auto;
    }

    .hero-btn {
        width: 100%;
        max-width: none;
        min-width: 0;
        margin: 0;
        box-sizing: border-box;
        border-radius: 12px;
        font-size: 16px;
        padding: 14px 20px;
        text-align: center;
    }

    /* OTHER BLOCKS */
    .programs__slide {
        flex: 0 0 100%;
    }

    .program-card__media {
        aspect-ratio: 16 / 9;
    }

    .diagnostics__grid {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 20px;
    }

    .diagnostics-card__media {
        aspect-ratio: 16 / 9;
    }

    .events__slide {
        flex: 0 0 100%;
    }

    .events-card__media {
        aspect-ratio: 16 / 9;
    }

    .support-groups__slide {
        flex: 0 0 100%;
    }

    .support-card {
        grid-template-columns: 1fr;
    }

    .support-card__media {
        order: -1;
        aspect-ratio: 16 / 9;
    }

    .support-card__body {
        padding: 24px;
    }

    .reviews__slide {
        flex: 0 0 100%;
    }

    .review-card {
        min-height: auto;
    }

    .materials__slide {
        flex: 0 0 100%;
    }

    .material-card__media {
        aspect-ratio: 16 / 9;
    }
}

@media screen and (max-width: 900px) {

    /* Preserve existing layout for non-header elements if needed, but header is handled above */
    .about {
        padding: 60px 0 50px;
    }


    .hero__content {
        padding: 46px 0 0;
        text-align: center;
    }

    .hero__title {
        font-size: clamp(46px, 9vw, 76px);
        letter-spacing: -0.8px;
    }

    .hero__subtitle {
        font-size: clamp(22px, 4.6vw, 36px);
        line-height: 1;
    }

    .hero__description {
        font-size: clamp(16px, 2.8vw, 22px);
        line-height: 1.42;
    }

    .hero__description br {
        display: none;
    }

    .hero__actions {
        padding: 0;
        justify-content: center;
    }

    .hero-btn {
        min-width: 250px;
    }

    .hero__image-wrap {
        min-height: 0;
        justify-content: center;
    }

    .hero__image {
        width: min(86vw, 510px);
    }

    .hero-event-teaser {
        padding: 0 16px 28px;
        margin-top: -8px;
    }

    .hero-event-teaser__title {
        font-size: 28px;
    }

    .about {
        padding: 60px 0 50px;
    }

    .about__title {
        margin-bottom: 36px;
        transform: none;
        text-align: center;
    }

    .about__inner {
        grid-template-columns: 1fr;
        row-gap: 30px;
        justify-items: center;
    }
.about__photo-wrap{
	margin-bottom : 30px;
}
    .about__photo-wrap img {
	max-width: 340px;
	
}

    .about__info {
        text-align: center;
    }

    .about__competencies li {
        justify-content: center;
    }

    .diplomas__slide {
        flex: 0 0 calc(50% - 12px);
    }

    .diplomas__header {
        grid-template-columns: auto minmax(0, 1fr) auto;
        column-gap: 12px;
        margin-bottom: 30px;
        padding: 0 18px;
    }

    .diplomas__carousel {
        padding: 0 44px;
    }

    .appointment {
        padding: 50px 0 0;
    }

    .appointment__inner {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .appointment__content {
        margin-left: 0;
        padding-bottom: 30px;
    }

    .appointment__title {
       /* font-size: clamp(24px, 5.5vw, 32px);*/
	   font-size:28px;
	line-height:28px;
        margin-bottom: 20px;
    }

    .appointment__text {
       /* font-size: clamp(14px, 3vw, 16px);*/
	   font-size:18px;
	line-height:26px;
        margin-bottom: 16px;
        padding: 0 15px;
    }

    .appointment__online {
       /* font-size: clamp(18px, 4vw, 24px);*/
	   font-size:22px;
	line-height:24px;
        margin-bottom: 10px;
    }

    .appointment__tg {
       /* font-size: clamp(14px, 3vw, 16px);*/
	    font-size:18px;
	line-height:26px;
    }

    .appointment__image-wrap {
        justify-content: center;
        margin-top: 10px;
    }

    .appointment__image {
        width: min(60vw, 280px);
        margin-top: 0;
    }

    .programs,
    .diagnostics,
    .support-groups,
    .events,
    .reviews,
    .materials,
    .about,
    .hero,
    .diplomas,
    .appointment {
        padding: 40px 0;
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }

    .programs__header,
    .support-groups__header,
    .events__header,
    .reviews__header,
    .materials__header,
    .diplomas__header {
        grid-template-columns: 44px 1fr 44px !important;
        column-gap: 8px !important;
        margin-bottom: 20px !important;
        padding: 0 10px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        display: grid !important;
        /* Force grid back on mobile */
    }

    .programs__title,
    .events__title,
    .support-groups__title,
    .reviews__title,
    .materials__title,
    .diagnostics__title,
    .diplomas__title {
        /*font-size: clamp(20px, 6vw, 26px) !important;
        line-height: 1.2 !important;*/
		font-size: 35px !important;
    line-height: 30px !important;
        margin: 0 !important;
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        text-align: center !important;
    }

    .programs__header,
    .support-groups__header,
    .events__header,
    .reviews__header,
    .materials__header,
    .diplomas__header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        column-gap: 6px !important;
        padding: 0 12px !important;
        width: 100% !important;
        margin-bottom: 24px !important;
        box-sizing: border-box !important;
    }

    .programs__header-center,
    .support-groups__header-center,
    .events__header-center,
    .reviews__header-center,
    .materials__header-center,
    .diplomas__header-center {
        flex: 1 !important;
        min-width: 0 !important;
        text-align: center !important;
    }

    .programs__title,
    .events__title,
    .support-groups__title,
    .reviews__title,
    .materials__title,
    .diplomas__title {
       /* font-size: clamp(18px, 5.2vw, 24px) !important;
	   line-height: 1.2 !important;
	   */
	   font-size: 35px!important;
  line-height: 30px!important;
        
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        margin: 0 0 4px !important;
        display: block !important;
    }

    .programs__subtitle,
    .events__subtitle,
    .support-groups__subtitle,
    .reviews__subtitle,
    .materials__subtitle,
    .diplomas__subtitle {
	font-size: 14px !important;
	line-height: 15px !important;
	opacity: 0.8 !important;
	display: block !important;
	margin-top : 20px;
}
.diagnostics__subtitle {
   font-size: 14px !important;
    line-height: 15px !important;
    opacity: 0.8 !important;
    display: block !important;
    margin-top: 20px;
}



    .programs__arrow,
    .events__arrow,
    .support-groups__arrow,
    .reviews__arrow,
    .materials__arrow,
    .diplomas__arrow {
        width: 32px !important;
        height: 32px !important;
        flex-shrink: 0 !important;
    }

    .programs__arrow::before,
    .events__arrow::before,
    .support-groups__arrow::before,
    .reviews__arrow::before,
    .materials__arrow::before,
    .diplomas__arrow::before {
        width: 14px !important;
        height: 14px !important;
        border-width: 3px !important;
    }

    .programs__slide,
    .events__slide,
    .reviews__slide,
    .materials__slide,
    .diplomas__slide {
        flex: 0 0 100% !important;
    }

}
@media screen and (max-width: 800px) {
.about__title {	font-size:35px;	line-height:30px;    font-weight: 500;}
}


/* ===== QUIZ MODAL ===== */
.quiz-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.quiz-modal.is-open {
    display: flex;
}

.quiz-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(30, 60, 50, 0.6);
    backdrop-filter: blur(8px);
}

.quiz-modal__box {
    position: relative;
    width: 100%;
    max-width: 600px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 24px;
    padding: 40px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: quizAppear 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes quizAppear {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.quiz-modal__close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border: none;
    background: #f0f4f2;
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4a6b5e;
    transition: background 0.2s;
}

.quiz-modal__close:hover {
    background: #e2e9e5;
}

.quiz-modal__header {
    margin-bottom: 30px;
}

.quiz-modal__title {
    font-family: "Playfair Display", serif;
    font-size: 24px;
    color: #1a4d3c;
    margin: 0 0 12px;
}

.quiz-modal__progress {
    height: 4px;
    background: #e2e9e5;
    border-radius: 2px;
    overflow: hidden;
}

.quiz-modal__progress-bar {
    height: 100%;
    background: #2f6f58;
    width: 0%;
    transition: width 0.3s ease;
}

.quiz-modal__question {
    font-size: 20px;
    line-height: 1.4;
    color: #333;
    margin-bottom: 30px;
    font-weight: 500;
}

.quiz-modal__options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.quiz-btn {
    padding: 24px;
    border: 2px solid #e2e9e5;
    border-radius: 16px;
    background: #fff;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    color: #2f6f58;
}

.quiz-btn:hover {
    border-color: #2f6f58;
    background: #f7faf9;
    transform: translateY(-2px);
}

.quiz-btn--yes:active {
    background: #e8f5ed;
}

.quiz-btn--no:active {
    background: #fff1f1;
}

.quiz-modal__lead {
    font-size: 16px;
    color: #555;
    line-height: 1.5;
    margin-bottom: 24px;
}

.quiz-modal__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.quiz-modal__input-group input {
    width: 100%;
    padding: 16px;
    border-radius: 12px;
    border: 1px solid #c9d6d0;
    font-size: 16px;
    box-sizing: border-box;
}

.quiz-modal__input-group input:focus {
    outline: none;
    border-color: #2f6f58;
    box-shadow: 0 0 0 3px rgba(47, 111, 88, 0.1);
}

.quiz-modal__submit-btn {
    padding: 18px;
    border: none;
    border-radius: 12px;
    background: #2f6f58;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.quiz-modal__submit-btn:hover {
    background: #275b49;
}

.quiz-modal__success {
    text-align: center;
    padding: 20px 0;
}

.quiz-modal__success-icon {
    width: 64px;
    height: 64px;
    background: #e8f5ed;
    color: #2f6f58;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    margin: 0 auto 20px;
}

.quiz-modal__success h4 {
    font-size: 22px;
    color: #1a4d3c;
    margin: 0 0 12px;
}

.quiz-modal__success p {
    color: #666;
    line-height: 1.5;
}

/* ============================================================
   APPOINTMENT MODAL
   ============================================================ */

.appt-modal {
    position: fixed;
    inset: 0;
    z-index: 10001;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.appt-modal.is-open { display: flex; }

.appt-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(30, 60, 50, 0.6);
    backdrop-filter: blur(8px);
}

.appt-modal__box {
    position: relative;
    width: 100%;
    max-width: 440px;
    background: rgba(255, 255, 255, 0.97);
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: quizAppear 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    max-height: 90vh;
    overflow-y: auto;
}

.appt-modal__close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border: none;
    background: #f0f4f2;
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4a6b5e;
    transition: background 0.2s;
    z-index: 1;
}

.appt-modal__close:hover { background: #e2e9e5; }

.appt-modal__header { margin-bottom: 20px; }

.appt-modal__title {
    font-family: "Playfair Display", serif;
    font-size: 20px;
    color: #1a4d3c;
    margin: 0 0 8px;
}

.appt-modal__title--inline {
    font-family: "Playfair Display", serif;
    font-size: 20px;
    color: #1a4d3c;
    margin: 0 0 8px;
}

.appt-modal__subtitle {
    color: #666;
    font-size: 14px;
    margin: 0 0 16px;
}

.appt-modal__progress {
    height: 4px;
    background: #e2e9e5;
    border-radius: 2px;
    overflow: hidden;
}

.appt-modal__progress-bar {
    height: 100%;
    background: #2f6f58;
    width: 0%;
    transition: width 0.3s ease;
}

.about-modal__content {
    color: #2a3530;
    line-height: 1.7;
    font-size: 15px;
}

.about-modal__content p,
.about-modal__content ul,
.about-modal__content ol {
    margin: 0 0 16px;
}

.appt-payment-copy {
    color: #2a3530;
    line-height: 1.7;
    font-size: 15px;
}

.appt-payment-copy p {
    margin: 0 0 14px;
}

.appt-analysis-card {
    position: relative;
    margin-top: 20px;
    padding: 20px;
    border-radius: 20px;
    background: #f5f1eb;
    color: #20332b;
}

.appt-analysis-card__signature {
    position: absolute;
    top: 18px;
    right: 20px;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(32, 51, 43, 0.7);
}

.appt-analysis-card__title {
    font-family: "Playfair Display", serif;
    font-size: 24px;
    margin: 0 0 18px;
    padding-right: 110px;
}

.appt-analysis-list {
    margin: 8px 0 18px;
    padding-left: 18px;
    display: grid;
    gap: 6px;
}

/* ---- Mode cards (step 0 + step 2) ---- */

.appt-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 8px;
}

.appt-cards--4 { grid-template-columns: 1fr 1fr; }

.appt-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 16px;
    border: 2px solid #e2e9e5;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s;
    gap: 4px;
}

.appt-card:hover {
    border-color: #2f6f58;
    background: #f7faf9;
    transform: translateY(-2px);
}

.appt-card--sel {
    border-color: #2f6f58;
    background: #f0faf5;
}

.appt-card__icon { font-size: 24px; line-height: 1; display: flex; }
.appt-card__label { font-size: 15px; font-weight: 700; color: #1a4d3c; }
.appt-card__desc  { font-size: 12px; color: #666; line-height: 1.4; }
.appt-card--sm .appt-card__label { font-size: 15px; }

/* ---- Offline info ---- */

.appt-offline {
    background: #f7faf9;
    border-radius: 16px;
    padding: 20px;
    margin-top: 16px;
}

.appt-offline p {
    margin: 0 0 10px;
    color: #333;
    font-size: 15px;
    line-height: 1.6;
}

.appt-offline p:last-child { margin-bottom: 0; }
.appt-offline a { color: #2f6f58; text-decoration: none; }
.appt-offline a:hover { text-decoration: underline; }

/* ---- Calendar ---- */

.appt-cal { margin-bottom: 12px; }

.appt-cal__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.appt-cal__nav-btn {
    width: 28px;
    height: 28px;
    border: 1px solid #e2e9e5;
    border-radius: 50%;
    background: #fff;
    font-size: 16px;
    cursor: pointer;
    color: #2f6f58;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.appt-cal__nav-btn:hover { background: #f0faf5; }
.appt-cal__month-label { font-weight: 600; font-size: 14px; color: #1a4d3c; }

.appt-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    max-width: 280px;
    margin: 0 auto;
}

.appt-cal__dh {
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    color: #999;
    padding: 2px 0;
}

.appt-cal__day {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 500;
    border-radius: 50%;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: all 0.15s;
    color: #333;
}

.appt-cal__day--dis { color: #ddd; cursor: not-allowed; }
.appt-cal__day--avail {
    border: none;
    color: #1a4d3c;
    font-weight: 600;
    position: relative;
}
.appt-cal__day--avail::after {
    content: '';
    position: absolute;
    bottom: 3px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    background: #2f6f58;
    border-radius: 50%;
}
.appt-cal__day--avail:hover { background: #f0faf5; border: none; }
.appt-cal__day--sel { background: #2f6f58 !important; color: #fff !important; border-radius: 50% !important; }
.appt-cal__day--sel::after { display: none; }
.appt-cal__day--today { border: 1.5px solid #c8dfd7; }

/* ---- Slots ---- */

.appt-slots { margin-bottom: 16px; }

.appt-slots__label {
    font-size: 13px;
    color: #555;
    margin: 0 0 8px;
    font-weight: 500;
}

.appt-slots__list { display: flex; flex-wrap: wrap; gap: 8px; }

.appt-slot {
    padding: 6px 12px;
    border: 1.5px solid #c8dfd7;
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    color: #2f6f58;
    cursor: pointer;
    transition: all 0.15s;
    font-weight: 500;
}

.appt-slot:hover { border-color: #2f6f58; background: #f0faf5; }
.appt-slot--sel { background: #2f6f58; color: #fff; border-color: #2f6f58; }

/* ---- Analyses ---- */

.appt-analyses__head {
    font-size: 16px;
    font-weight: 600;
    color: #1a4d3c;
    margin: 0 0 4px;
}

.appt-analyses__sub {
    font-size: 13px;
    color: #888;
    margin: 0 0 14px;
}

.appt-analyses__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 4px;
}

.appt-analyses__row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1.5px solid #e2e9e5;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s;
}

.appt-analyses__row.is-checked {
    border-color: #2f6f58;
    background: #f4fbf7;
}

.appt-analyses__row input[type="checkbox"] { display: none; }

.appt-analyses__check {
    width: 18px;
    height: 18px;
    border: 2px solid #c8dfd7;
    border-radius: 4px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.appt-analyses__row.is-checked .appt-analyses__check {
    background: #2f6f58;
    border-color: #2f6f58;
}

.appt-analyses__row.is-checked .appt-analyses__check::after {
    content: '✓';
    font-size: 11px;
    color: #fff;
    font-weight: 700;
}

.appt-analyses__name { font-size: 14px; color: #333; }

/* ---- Contact form ---- */

.appt-form { display: flex; flex-direction: column; gap: 12px; }

.appt-form__input {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid #c9d6d0;
    border-radius: 10px;
    font-size: 15px;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

.appt-form__input:focus {
    outline: none;
    border-color: #2f6f58;
    box-shadow: 0 0 0 3px rgba(47, 111, 88, 0.1);
}

.appt-form__summary {
    background: #f4fbf7;
    border-radius: 10px;
    padding: 12px 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    font-size: 14px;
    color: #2f6f58;
    font-weight: 500;
}

.appt-form__legal {
    font-size: 12px;
    color: #aaa;
    margin: 0;
    text-align: center;
}

.appt-form__error { color: #c0392b; font-size: 14px; margin: 0; }

/* ---- Submit / Next buttons ---- */

.appt-submit-btn {
    padding: 14px;
    border: none;
    border-radius: 12px;
    background: #2f6f58;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    width: 100%;
}

.appt-submit-btn:hover { background: #275b49; }
.appt-submit-btn:disabled { background: #a0b8af; cursor: not-allowed; }

.appt-next-btn {
    padding: 12px 24px;
    border: none;
    border-radius: 10px;
    background: #2f6f58;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.appt-next-btn:hover { background: #275b49; }
.appt-next-btn:disabled { background: #a0b8af; cursor: not-allowed; }

.appt-nav-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
}

/* ---- Back button ---- */

.appt-back {
    background: none;
    border: none;
    font-size: 14px;
    color: #888;
    cursor: pointer;
    padding: 8px 0;
    transition: color 0.15s;
}

.appt-back:hover { color: #2f6f58; }

/* ---- Success ---- */

.appt-success { text-align: center; padding: 20px 0; }

.appt-success__icon {
    width: 64px;
    height: 64px;
    background: #e8f5ed;
    color: #2f6f58;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    margin: 0 auto 20px;
    font-weight: 700;
}

.appt-success__title {
    font-size: 22px;
    color: #1a4d3c;
    margin: 0 0 12px;
    font-family: "Playfair Display", serif;
}

.appt-success__text  { color: #666; line-height: 1.5; margin: 0 0 8px; }
.appt-success__detail { color: #2f6f58; font-weight: 600; font-size: 15px; margin: 0 0 24px; }

/* ---- Responsive ---- */

@media (max-width: 480px) {
    .appt-modal__box { padding: 24px 18px; }
    .appt-cards { grid-template-columns: 1fr; }
    .appt-cards--4 { grid-template-columns: 1fr 1fr; }
    .appt-cal__grid { max-width: 260px; }
    .appt-cal__day { width: 32px; height: 32px; font-size: 12px; }
}

/* ============================================================
   GROUP FORM — Radio, Checkbox, Labels
   ============================================================ */

.group-form__label {
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
    margin: 0 0 8px;
    display: block;
}

.group-form__required { color: #c0392b; }

/* ---- Radio group ---- */

.group-form__radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.group-form__radio {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 9px 16px;
    border: 1.5px solid #e2e9e5;
    border-radius: 10px;
    transition: all 0.15s;
    user-select: none;
}

.group-form__radio:has(input:checked) {
    border-color: #2f6f58;
    background: #f0faf5;
}

.group-form__radio input[type="radio"] { display: none; }

.group-form__radio-dot {
    width: 16px;
    height: 16px;
    min-width: 16px;
    border: 2px solid #c8dfd7;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
    position: relative;
}

.group-form__radio:has(input:checked) .group-form__radio-dot {
    border-color: #2f6f58;
    background: #2f6f58;
}

.group-form__radio:has(input:checked) .group-form__radio-dot::after {
    content: '';
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
    display: block;
}

.group-form__radio-text { font-size: 14px; color: #333; font-weight: 500; }

/* ---- Personal data consent ---- */

.group-form__consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    padding: 12px 14px;
    border: 1.5px solid #e2e9e5;
    border-radius: 10px;
    transition: border-color 0.15s;
}

.group-form__consent.is-checked {
    border-color: #2f6f58;
    background: #f4fbf7;
}

.group-form__consent input[type="checkbox"] { display: none; }

.group-form__consent-box {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 2px solid #c8dfd7;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
    transition: all 0.15s;
}

.group-form__consent.is-checked .group-form__consent-box {
    background: #2f6f58;
    border-color: #2f6f58;
}

.group-form__consent.is-checked .group-form__consent-box::after {
    content: '✓';
    font-size: 12px;
    color: #fff;
    font-weight: 700;
}

.group-form__consent-text {
    font-size: 13px;
    color: #555;
    line-height: 1.5;
}

/* ---- Section divider (doctors form) ---- */

.group-form__divider {
    height: 1px;
    background: #e2e9e5;
    margin: 8px 0 4px;
}

.group-form__section-title {
    font-size: 14px;
    font-weight: 700;
    color: #2f6f58;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 4px;
}

/* ---- Responsive ---- */
@media (max-width: 480px) {
    .group-form__radio-group { gap: 8px; }
    .group-form__radio { padding: 8px 12px; }
}
