/* Ropejumpingminsk - основные стили */
:root {
  --font-manrope: 'Manrope', sans-serif;
  --font-orbitron: 'Orbitron', sans-serif;
  --radius: 20px;
  --primary: #e63028;
  --foreground: #232323;
  --light-gray: #f7f7f7;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-manrope); min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }

/* Breakpoints: sm 640px, md 768px, lg 1024px — контент и футер одинаковой ширины */
.case, .container { max-width: 1340px; margin: 0 auto; }
section { margin-bottom: 50px; padding: 0 15px; }
@media (min-width: 640px) { section { padding: 0 20px; } }
@media (min-width: 1024px) { section { margin-bottom: 80px; padding: 0 50px; } }
/* section.case — увеличить max-width на padding, чтобы внутренняя ширина = 1340 как у футера */
section.case { max-width: 1370px; margin-bottom: 50px; }
@media (min-width: 640px) { section.case { max-width: 1380px; } }
@media (min-width: 1024px) { section.case { max-width: 1440px; margin-bottom: 80px; } }

header, footer { padding: 0 15px; }
@media (min-width: 640px) { header, footer { padding: 0 20px; } }
@media (min-width: 1024px) { header, footer { padding: 0 50px; } }

/* Header */
.header-top { background: #FEFEFE; }
.header-top .nav-top-link { color: #232323; }
.header-top .nav-top-link:hover, .header-top .nav-top-link--active { color: var(--primary); }
.h-62 { height: 62px; }
.nav-top, .nav-main { display: none; }
@media (min-width: 1024px) { .nav-top, .nav-main { display: flex !important; } }
.lg-flex { display: none; }
@media (min-width: 1024px) { .lg-flex { display: flex !important; } .lg-hidden { display: none !important; } }
.md-inline { display: none; }
@media (min-width: 768px) { .md-inline { display: inline-flex !important; } }

.header-bottom-wrap { background: var(--foreground); border-radius: 16px; position: relative; max-width: 1340px; margin: 0 auto; overflow: visible; }
@media (min-width: 1024px) { .header-bottom-wrap { border-radius: var(--radius); } }
.header-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px; flex-wrap: wrap; min-width: 0; min-height: 78px; }
@media (min-width: 768px) { .header-bottom { padding: 12px 16px; } }
@media (min-width: 1024px) { .header-bottom { padding: 12px 50px; gap: 32px; min-height: 78px; } }
.header-bottom, .header-bottom a, .header-phones a { color: #FEFEFE; white-space: nowrap; }
/* Телефоны в 2 ряда с иконкой как в оригинале */
.header-phones--grid { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; row-gap: 1px; align-items: center; }
.header-phones--grid .header-phones-icon { grid-row: span 2; align-self: center; filter: brightness(0) invert(1); }
.header-phones--grid a { display: block; font-size: 14px; line-height: 1.3; }
.header-btn-record { height: 54px; padding: 0 32px; font-size: 14px; }
@media (min-width: 768px) { .header-btn-record { font-size: 16px; } }
.header-bottom .nav-main-link:hover, .header-bottom .nav-main-link--active { color: #E63028; }
.header-bottom .nav-main-link--active { color: #E63028; }
.logo { display: flex; align-items: center; }
.logo-img { height: 44px; width: auto; }
@media (min-width: 768px) { .logo-img { height: 52px; } }
.logo-text { color: #FEFEFE !important; font-size: 1.25rem; font-weight: 700; }
.btn-burger { background: none; border: none; cursor: pointer; padding: 4px; display: flex; align-items: center; justify-content: center; }
@media (min-width: 1024px) { .btn-burger { display: none !important; } }
.burger-icon { filter: brightness(0) invert(1); }
.burger-menu { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: var(--foreground); border-radius: 0 0 16px 16px; padding: 24px; height: calc(100vh - 160px); }
.burger-menu.is-open { display: block; }
.header-bottom-wrap.menu-open { border-radius: 16px 16px 0 0; }
.burger-nav { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.burger-link { color: #FEFEFE; font-size: 16px; }
.burger-link:hover { color: #E63028; }
.burger-cta { margin-top: 8px; }

.bg-foreground { background: var(--foreground); }
.text-primary { color: var(--primary); }

.font-english { font-family: var(--font-orbitron); }
.title { font-size: 32px; font-weight: 700; }
@media (min-width: 768px) { .title { font-size: 50px; } }
@media (min-width: 768px) { .title { font-size: 50px; } }
.title-mb { margin-bottom: 16px; }
@media (min-width: 640px) { .title-mb { margin-bottom: 24px; } }
@media (min-width: 1024px) { .title-mb { margin-bottom: 32px; } }
.page-title { margin-top: 80px; margin-bottom: 32px; }
@media (max-width: 767px) { .page-title { margin-top: 32px; margin-bottom: 24px; } }

.btn { display: inline-flex; align-items: center; justify-content: center; padding: 16px 32px; border-radius: 18px; font-weight: 500; font-size: 14px; text-decoration: none; transition: all 0.2s; cursor: pointer; border: 1px solid transparent; }
@media (min-width: 768px) { .btn { font-size: 16px; } }
.btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: #c42a23; }
.btn-light { background: transparent; color: var(--foreground); border-color: var(--foreground); }
.btn-light:hover { background: transparent; color: var(--primary); border-color: var(--primary); }

.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-2 { gap: 8px; }
.gap-4 { gap: 16px; }
.gap-6 { gap: 24px; }
.gap-8 { gap: 32px; }
.mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 12px; }
.mb-4 { margin-bottom: 16px; }
.mb-6 { margin-bottom: 24px; }
.mb-8 { margin-bottom: 32px; }
.mt-8 { margin-top: 32px; }
.mt-16 { margin-top: 64px; }
.mt-20 { margin-top: 80px; }
.hidden { display: none; }
.home-links { display: flex; flex-wrap: wrap; gap: 16px; }
.text-center { text-align: center; }
@media (min-width: 1024px) { .lg\:flex { display: flex; } .lg\:hidden { display: none; } }
@media (min-width: 768px) { .md\:inline-block { display: inline-block; } }

/* Banner — контент по центру по высоте как в оригинале */
.banner { position: relative; height: 550px; overflow: hidden; border-radius: 14px; display: flex; align-items: center; }
@media (min-width: 768px) { .banner { height: 600px; border-radius: 24px; } }
@media (min-width: 1024px) { .banner { height: 676px; } }
.banner img,
.banner-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 0.1s; pointer-events: none; }
.banner img.active,
.banner-video.active { z-index: 0; opacity: 1; }
.banner img:not(.active),
.banner-video:not(.active) { z-index: -1; opacity: 0; }
.banner-content { position: relative; z-index: 1; padding: 24px 12px; color: #FEFEFE; width: 100%; }
@media (min-width: 768px) { .banner-content { padding: 24px 16px; } }
@media (min-width: 1024px) { .banner-content { padding: 24px 32px; } }
.banner-title { font-family: var(--font-orbitron); font-size: 32px; font-weight: 500; margin-bottom: 12px; }
@media (min-width: 768px) { .banner-title { font-size: 60px; } }
@media (min-width: 1024px) { .banner-title { font-size: 90px; } }
.banner-subtitle { font-size: 26px; font-weight: 500; margin-bottom: 12px; }
@media (min-width: 768px) { .banner-subtitle { font-size: 35px; margin-bottom: 24px; } }
@media (min-width: 1024px) { .banner-subtitle { font-size: 50px; } }
.banner-text { font-size: 14px; max-width: 767px; margin-bottom: 32px; line-height: 1.5; }
@media (min-width: 768px) { .banner-text { font-size: 20px; } }
.banner-buttons { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
/* Кнопка «Посмотреть расписание» в баннере: прозрачный фон, белый текст и окантовка; при наведении — красный текст и окантовка */
.banner-buttons .btn-light { background: transparent !important; color: #FEFEFE !important; border: 1px solid #FEFEFE !important; }
.banner-buttons .btn-light:hover { background: transparent !important; color: var(--primary) !important; border-color: var(--primary) !important; }
.banner-btn-jump { position: absolute; width: 112px; height: 112px; border-radius: 50%; border: 2px solid #FEFEFE; background: transparent; color: #FEFEFE; font-size: 16px; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.banner-btn-jump:hover { background: #232323; border-color: transparent; }
@media (max-width: 1024px) { .banner-btn-jump { display: none; } }

a { color: inherit; text-decoration: none; }
a:hover { opacity: 0.9; }

/* Teams / Panorama Slider — заголовок слева, текст справа, слайдер снизу, ограничен по ширине */
.teams-section-wrap { overflow-x: hidden; }
.teams-section { margin-bottom: 0; display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 1024px) {
  .teams-section { display: grid; grid-template-columns: auto minmax(0, 635px); grid-template-rows: auto auto; gap: 32px 128px; align-items: start; }
  .teams-header { grid-column: 1; grid-row: 1; }
  .teams-text { grid-column: 2; grid-row: 1; }
  .panorama-slider-outer { grid-column: 1 / -1; grid-row: 2; }
}
.teams-header { font-size: 26px; }
@media (min-width: 768px) { .teams-header { font-size: 35px; } }
.teams-header-intro { font-weight: 500; }
.teams-header .font-english { font-size: 32px; font-weight: 500; line-height: 1; }
@media (min-width: 768px) { .teams-header .font-english { font-size: 60px; } }
.teams-text { font-size: 14px; line-height: 1.5; color: #666; max-width: 635px; }
@media (min-width: 768px) { .teams-text { font-size: 18px; } }
.teams-header .font-medium { font-weight: 500; }
/* Panorama 3D - обёртка по ширине контента, слайдер строго снизу */
.panorama-slider-outer { width: 100%; max-width: 100%; margin-top: 0; overflow-x: hidden; padding: 0 8px; }
@media (min-width: 640px) { .panorama-slider-outer { padding: 0 16px; } }
.panorama-slider-wrap { height: 158px; width: 100%; max-width: 100%; overflow: hidden; }
@media (min-width: 640px) { .panorama-slider-wrap { height: 340px; } }
.panorama-slider-wrap .swiper { overflow: visible; height: 100%; }
.panorama-swiper .swiper-slide { width: 87px; flex-shrink: 0; display: flex !important; align-items: center; justify-content: center; padding: 12px 0; }
@media (min-width: 640px) { .panorama-swiper .swiper-slide { width: 160px; } }
.panorama-slide { position: relative; width: 100%; height: 100%; max-height: 105px; border-radius: 20px; overflow: hidden; margin: auto 0; }
@media (min-width: 640px) { .panorama-slide { max-height: 194px; } }
.panorama-slide img, .panorama-slide video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.panorama-swiper .swiper-pagination { display: none; }
.panorama-swiper .swiper-button-prev,
.panorama-swiper .swiper-button-next { display: none; }

/* Events: фильтры как в оригинале (Эта неделя, высоты) */
/* Upcoming events — top: carousel on grey */
.upcoming-events-top { display: flex; flex-direction: column; gap: 32px; margin-bottom: 50px; }
.events-carousel-wrap { background: var(--light-gray); border-radius: var(--radius); padding: 12px; padding-right: 0; }
@media (min-width: 768px) { .events-carousel-wrap { padding: 16px; padding-right: 0; } }
@media (min-width: 1024px) { .events-carousel-wrap { padding: 24px; border-radius: var(--radius); } }

/* Vertical event card (carousel) */
.v-event-card { display: grid; grid-template-rows: auto 238px 1fr auto; gap: 16px; height: 100%; }
.v-event-card-date { font-size: 20px; }
.v-event-card-img { position: relative; width: 100%; border-radius: 20px; overflow: hidden; }
.v-event-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v-event-card-info { margin-bottom: 16px; }
.v-event-card-title-row { display: flex; align-items: center; gap: 32px; margin-bottom: 8px; }
.v-event-card-title { font-size: 24px; font-weight: 600; }
.v-event-card-badges { display: flex; align-items: center; gap: 12px; }
@media (max-width: 767px) { .v-event-card-badges { display: none; } }
.v-event-card-location { font-size: 16px; }
.v-event-card-desc { font-size: 18px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.v-event-card-btn { margin-top: auto; margin-left: auto; width: fit-content; }

.events-carousel .swiper-slide { width: 91%; flex-shrink: 0; }
@media (min-width: 768px) { .events-carousel .swiper-slide { width: 66%; } }
@media (min-width: 1024px) { .events-carousel .swiper-slide { width: calc(33.333% - 16px); } }

/* Upcoming events — bottom: filters + horizontal list */
.upcoming-events-bottom { display: flex; flex-direction: column; gap: 32px; }
.events-filters { display: flex; align-items: center; gap: 24px; overflow-x: auto; }
.events-filter-btn { display: inline-flex; align-items: center; justify-content: center; height: 54px; padding: 0 32px; border: 1px solid #F7F7F7; border-radius: 8px; background: var(--light-gray); color: var(--foreground); font-size: 14px; font-weight: 500; text-decoration: none; transition: all 0.2s; white-space: nowrap; cursor: pointer; }
@media (min-width: 768px) { .events-filter-btn { font-size: 16px; } }
.events-filter-btn:hover { background: transparent; border-color: var(--foreground); }
.events-filter-btn--active { background: transparent; border-color: var(--foreground); }

.events-list-section { display: flex; flex-direction: column; gap: 50px; }
.events-horizontal-list { display: flex; flex-direction: column; gap: 24px; }
.events-section-footer { text-align: center; }
.events-schedule-link { border: 1px solid var(--foreground); }
.events-schedule-link:hover { border-color: var(--primary); color: var(--primary); }

/* Horizontal event card */
.h-event-card { display: grid; min-height: 180px; align-items: center; gap: 12px 24px; }
@media (min-width: 768px) { .h-event-card { grid-template-columns: 249px 1fr; } }
@media (min-width: 1024px) { .h-event-card { grid-template-columns: 249px 1fr auto; } }
.h-event-card-date { font-size: 16px; }
.h-event-card-date--mobile { display: block; }
.h-event-card-date--desktop { display: none; font-size: 20px; }
@media (min-width: 768px) { .h-event-card-date--mobile { display: none; } .h-event-card-date--desktop { display: block; } }
.h-event-card-img { position: relative; width: 100%; height: 110px; border-radius: 14px; overflow: hidden; }
@media (min-width: 768px) { .h-event-card-img { height: 100%; border-radius: 20px; grid-row: 1 / -1; } }
.h-event-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.h-event-card-body { display: flex; flex-direction: column; gap: 16px; }
.h-event-card-title-row { display: flex; align-items: center; gap: 32px; }
.h-event-card-title { font-size: 16px; font-weight: 600; }
@media (min-width: 768px) { .h-event-card-title { font-size: 24px; } }
.h-event-card-badges { display: flex; align-items: center; gap: 12px; }
@media (max-width: 767px) { .h-event-card-badges { display: none; } }
.h-event-card-location { font-size: 12px; }
@media (min-width: 768px) { .h-event-card-location { font-size: 16px; } }
.h-event-card-desc { font-size: 12px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 768px) { .h-event-card-desc { font-size: 18px; } }
.h-event-card-btn { width: 100%; }
@media (min-width: 768px) { .h-event-card-btn { width: fit-content; } }
.events-empty-inline { color: #666; font-size: 16px; }

/* Events Slider */
.badge { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #C6C6C6; padding: 6px 12px; background: var(--light-gray); border-radius: 10px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.modal-subtitle-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.modal-subtitle-badges { display: flex; flex-wrap: wrap; gap: 6px; }

/* Reviews Slider */
.reviews-slider-wrap { max-width: 1077px; margin: 0 auto; }
.review-card { display: grid; gap: 0; background: var(--light-gray); border-radius: var(--radius); overflow: hidden; min-height: 339px; }
.review-card--with-img { grid-template-columns: 1fr; }
@media (min-width: 768px) { .review-card--with-img { grid-template-columns: 386px 1fr; } }
.review-card-img { position: relative; min-height: 331px; }
@media (min-width: 768px) { .review-card-img { min-height: 518px; } }
.review-card-img img { width: 100%; height: 100%; object-fit: cover; }
.review-card-img .review-img-swiper { width: 100%; height: 100%; }
.review-card-img .review-img-swiper .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.review-card-img .swiper-pagination { position: absolute; bottom: 12px; }
.review-card-img .swiper-pagination-bullet { width: 8px; height: 8px; background: #fff; opacity: 0.6; }
.review-card-img .swiper-pagination-bullet-active { background: #ee2737; opacity: 1; }
.review-card-logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: #f7f7f7; border-radius: var(--radius); }
.review-card-logo img { /*width: 120px;*/ height: auto; opacity: 0.5; }
.review-card-body { display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 16px 12px; }
@media (min-width: 768px) { .review-card-body { padding: 24px; gap: 16px; } }
.review-card-comment { font-size: 16px; line-height: 1.5; }
.review-card-name { font-size: 16px; }
.reviews-slider-footer { position: relative; display: flex; flex-direction: column; gap: 32px; margin-top: 24px; }
@media (min-width: 640px) { .reviews-slider-footer { flex-direction: row; gap: 4px; margin-top: 32px; } }
@media (min-width: 1024px) { .reviews-slider-footer { flex-direction: column; margin-top: 0; } }
.reviews-all-link { color: #9F9F9F; font-size: 16px; margin-left: auto; }
@media (min-width: 640px) { .reviews-all-link { position: absolute; top: 5px; right: 0; } }
@media (min-width: 1024px) { .reviews-all-link { position: static; margin-top: 24px; text-align: right; } }
.reviews-slider-arrows { display: flex; align-items: center; justify-content: center; gap: 24px; margin: 0 auto; }
.reviews-swiper .swiper-button-prev, .reviews-swiper .swiper-button-next { position: relative; margin: 0; width: 32px; height: 32px; color: #232323; background: transparent; border: none; cursor: pointer; border-radius: 50%; }
.reviews-swiper .swiper-button-prev::after, .reviews-swiper .swiper-button-next::after { display: none; }
.reviews-swiper .swiper-button-prev svg, .reviews-swiper .swiper-button-next svg { width: 32px; height: 32px; }
.reviews-swiper .swiper-button-disabled { opacity: 0.5; cursor: not-allowed; }

/* Placeholder */
.section-placeholder { text-align: center; color: #9ca3af; padding: 48px 16px; }

/* Certificates */
.cert-slider-wrap { margin-top: 32px; }
@media (min-width: 640px) { .cert-slider-wrap { margin-top: 50px; } }
@media (min-width: 1024px) { .cert-slider-wrap { margin-top: 80px; } }
.cert-hot-swiper .swiper-slide { width: 100%; }
@media (min-width: 1024px) { .cert-hot-swiper .swiper-slide { width: 77%; } }
.cert-page-title { margin-top: 32px; margin-bottom: 32px; }
@media (min-width: 1024px) { .cert-page-title { margin-top: 48px; } }

.cert-card { position: relative; display: grid; min-height: 411px; overflow: hidden; }
@media (min-width: 1024px) { .cert-card { grid-template-columns: 1fr 404px; } }

.cert-card-left { display: flex; flex-direction: column; gap: 32px; overflow: hidden; border-radius: 20px; padding: 24px; position: relative; }
@media (min-width: 1024px) { .cert-card-left { padding: 32px; } }
.cert-card-left > *:not(.cert-fasteners) { position: relative; z-index: 1; }
.cert-card-left--dark { background: var(--foreground); color: #FEFEFE; }
.cert-card-left--light { background: #F7F7F7; }

.cert-card-right { position: relative; border-radius: 20px; padding: 24px; min-height: 295px; }
@media (min-width: 1024px) { .cert-card-right { min-height: auto; } }
.cert-card-right--dark { background: var(--foreground); display: none; }
@media (min-width: 1024px) { .cert-card-right--dark { display: block; } }
.cert-card-right--light { background: #F7F7F7; }

.cert-card-figure { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 20px; }
.cert-card-figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.cert-dashed-line { position: absolute; top: 0; left: 0; height: 100%; }

.cert-fasteners { pointer-events: none; position: absolute; z-index: 0; height: 100%; bottom: 0; left: 0; }
.cert-fasteners--dark path, .cert-fasteners--dark rect { fill: #3A3A3A; }
.cert-fasteners--light path, .cert-fasteners--light rect { fill: #F1F1F1; }
@media (max-width: 1023px) { .cert-fasteners { bottom: 0; top: auto; } }

.cert-badge { display: inline-block; padding: 8px 12px; background: #E63028; border-radius: 66px; font-weight: 600; width: fit-content; color: #FEFEFE; }
.cert-card-info { display: flex; flex-direction: column; gap: 16px; }
.cert-title { font-size: 24px; font-weight: 600; }
@media (min-width: 768px) { .cert-title { font-size: 32px; } }
.cert-desc { font-size: 16px; line-height: 1.5; max-width: 590px; }
@media (min-width: 768px) { .cert-desc { font-size: 18px; } }

.cert-icon-label { display: flex; align-items: center; gap: 8px; }
.cert-store-icon { flex-shrink: 0; }
.cert-label { font-size: 20px; font-weight: 500; }
.cert-label--sm { font-size: 16px; font-weight: 500; }
@media (min-width: 640px) { .cert-label--sm { font-size: 20px; } }

.cert-prices { display: flex; flex-direction: column; gap: 16px; }
.cert-price-list { display: flex; flex-direction: column; gap: 8px; font-size: 18px; }

.cert-meta-grid { display: grid; gap: 24px; }
@media (min-width: 1024px) { .cert-meta-grid { grid-template-columns: 1fr 1fr; } }
.cert-meta-col { display: flex; flex-direction: column; gap: 16px; }

.cert-link { color: #0900FF; font-size: inherit; }
.cert-btn { margin-top: auto; align-self: flex-end; margin-left: auto; }

.cert-combo-section { display: flex; flex-direction: column; gap: 32px; margin-top: 32px; }
@media (min-width: 1024px) { .cert-combo-section { margin-top: 48px; } }
.cert-combo-grid { display: grid; gap: 16px; }
@media (min-width: 1024px) { .cert-combo-grid { grid-template-columns: repeat(3, 1fr); } }
.cert-combo-card { background: #F7F7F7; border-radius: 20px; padding: 24px; display: flex; flex-direction: column; gap: 32px; }
.cert-combo-info { display: flex; flex-direction: column; gap: 16px; }
.cert-combo-title { font-size: 18px; font-weight: 600; }
@media (min-width: 640px) { .cert-combo-title { font-size: 22px; } }
.cert-combo-desc { font-size: 18px; }

/* Our Objects */
.object-card { background: var(--light-gray); border-radius: 20px; padding: 16px; margin-bottom: 24px; }
@media (min-width: 768px) { .object-card { padding: 24px; } }
@media (min-width: 1024px) { .object-card { padding: 32px; } }
.object-card-title { font-size: 28px; font-weight: 600; display: block; margin-bottom: 24px; }
@media (min-width: 768px) { .object-card-title { font-size: 32px; } }
.object-card-grid { display: grid; gap: 42px; min-width: 0; }
@media (min-width: 1024px) { .object-card-grid { grid-template-columns: 1fr 527px; } }
.object-card-grid > * { min-width: 0; }
.object-desc { font-size: 14px; line-height: 1.5; margin-bottom: 24px; }
@media (min-width: 768px) { .object-desc { font-size: 18px; } }
.object-section { margin-bottom: 24px; }
.object-section-label { font-size: 20px; font-weight: 500; display: block; margin-bottom: 8px; }
.object-label-with-icon { display: inline-flex !important; align-items: center; gap: 8px; }
.object-label-icon { width: 24px; height: 24px; flex-shrink: 0; }
.object-section-content { font-size: 18px; line-height: 1.5; }
.object-card-main .object-section-content a { color: #0900ff; }
.object-card-main .object-section-content a:hover { text-decoration: underline; }
.object-details { margin-bottom: 24px; }
.object-details-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  font-size: 20px;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}
@media (min-width: 1024px) { .object-details-summary { padding-right: 39px; } }
.object-details-summary::-webkit-details-marker,
.object-details-summary::marker { display: none; content: ''; }
.object-details-summary-title { flex: 1; min-width: 0; }
.object-details-chevron {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #737373;
  line-height: 0;
  margin-top: 2px;
  pointer-events: none;
}
.object-details-chevron svg {
  display: block;
  width: 32px;
  height: 32px;
  transform-origin: 50% 50%;
  transition: transform 0.2s ease;
}
/* Поворот на svg: надёжнее, чем на span; класс выставляется в JS по toggle + [open] для совместимости */
.object-details[open] .object-details-chevron svg,
.object-details.is-open .object-details-chevron svg {
  transform: rotate(180deg);
}
.object-details-content { font-size: 18px; margin-top: 8px; }
@media (min-width: 1024px) { .object-details-content { padding-right: 39px; } }
.object-details-content img { max-width: 100%; height: auto; }
.object-meta { display: flex; flex-direction: column; gap: 24px; margin-bottom: 24px; }
@media (min-width: 768px) { .object-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } }
.object-meta-block { display: flex; flex-direction: column; gap: 8px; }
.object-meta-label { font-size: 20px; font-weight: 500; }
.object-meta-block ul { list-style: none; padding: 0; margin: 0; }
.object-map-link { color: #0900FF; font-size: 14px; }
.object-schedule-btn { align-self: flex-start; float: right; }
.object-card-gallery { position: relative; overflow: hidden; width: 100%; min-width: 0; }
.object-img-wrap { height: 300px; border-radius: 20px; overflow: hidden; }
@media (min-width: 768px) { .object-img-wrap { height: 450px; } }
@media (min-width: 1024px) { .object-img-wrap { height: 569px; } }
.object-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.object-swiper { width: 100%; overflow: hidden; }
.object-swiper .swiper-pagination { position: relative; margin-top: 16px; bottom: auto; }
.object-swiper .swiper-pagination-bullet { width: 10px; height: 10px; background: #727b83; opacity: 1; }
.object-swiper .swiper-pagination-bullet-active { background: #ee2737; }
.map-placeholder { background: #e5e5e5; border-radius: 20px; padding: 24px; }

/* Schedule */
.schedule-page-title { margin-top: 80px; margin-bottom: 32px; }
@media (max-width: 767px) { .schedule-page-title { margin-top: 32px; margin-bottom: 24px; } }
.schedule-section { margin-bottom: 32px; }
.schedule-filters--with-label { border-bottom: 1px solid #C6C6C6; padding-bottom: 32px; margin-bottom: 32px; }
.schedule-filter-field { display: flex; flex-direction: column; gap: 8px; }
.schedule-filter-label { font-size: 14px; font-weight: 500; color: var(--foreground); }
.schedule-reset-btn { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: #9F9F9F; text-decoration: none; cursor: pointer; background: none; border: none; padding: 0; font-family: inherit; align-self: flex-end; padding-bottom: 6px; transition: color 0.2s; margin-left: auto; }
.schedule-reset-btn:hover { color: var(--foreground); }
.schedule-reset-btn img { width: 20px; height: 20px; }
.schedule-select-height { min-width: 297px; max-width: 100%; }
.schedule-filter-form select, .schedule-filter-form .schedule-select { padding: 8px 12px; border-radius: 8px; border: 2px solid #e5e5e5; font-size: 14px; }
/* Custom dropdown */
.schedule-dropdown { position: relative; min-width: 297px; max-width: 100%; }
.schedule-dropdown-trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 8px 12px; border: 1px solid #c6c6c6; border-radius: 8px; background: #FEFEFE; font-size: 14px; cursor: pointer; text-align: left; font-family: inherit; transition: border-color 0.2s; }
.schedule-dropdown-trigger:hover { border-color: #8b8b8b; }
.schedule-dropdown-value { flex: 1; }
.schedule-dropdown-placeholder { color: #8b8b8b; }
.schedule-dropdown-arrow { display: flex; align-items: center; transition: transform 0.2s; }
.schedule-dropdown[data-open] .schedule-dropdown-arrow { transform: rotate(180deg); }
.schedule-dropdown-list { position: absolute; top: 100%; left: 0; right: 0; margin: 4px 0 0; padding: 0; background: #FEFEFE; border: 1px solid #c6c6c6; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); list-style: none; max-height: 301px; overflow-y: auto; z-index: 50; animation: schedule-dropdown-slide 0.2s ease-out; }
@keyframes schedule-dropdown-slide { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.schedule-dropdown-list[hidden] { display: none; }
.schedule-dropdown-list li { padding: 10px 12px; cursor: pointer; transition: background 0.2s; color: #727b83; }
.schedule-dropdown-list li:hover { background: #f1f5f8; color: #253746; }
/* Custom checkbox Акция */
.schedule-checkbox { display: flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; align-self: flex-end; padding-bottom: 6px; }
.schedule-checkbox-input { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; min-width: 18px; border: 1.5px solid #e5e5e5; border-radius: 4px; background: #fff; cursor: pointer; transition: border-color 0.2s, background 0.2s; }
.schedule-checkbox-input:hover { border-color: #ccc; }
.schedule-checkbox-input:checked, .schedule-checkbox-input[data-state="checked"] { background: var(--primary); border-color: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); background-size: 100%; background-position: center; }
.schedule-day { margin-bottom: 32px; }
.schedule-day-title { font-size: 24px; font-weight: 600; margin-bottom: 16px; }
.schedule-event { display: grid; gap: 24px; background: var(--light-gray); border-radius: 20px; padding: 24px; margin-bottom: 16px; }
@media (min-width: 768px) { .schedule-event { grid-template-columns: 238px 1fr; } }
.schedule-event-img { height: 200px; border-radius: 16px; overflow: hidden; }
@media (min-width: 768px) { .schedule-event-img { height: 238px; } }
.schedule-event-img img { width: 100%; height: 100%; object-fit: cover; }
.schedule-event-title { font-size: 24px; font-weight: 600; margin-bottom: 8px; }
.schedule-event-location { font-size: 16px; color: #666; margin-bottom: 8px; }
.schedule-event-desc { font-size: 16px; line-height: 1.5; margin-bottom: 12px; }
.schedule-event-badges { margin-bottom: 16px; }
.schedule-event-btn { align-self: flex-start; }

/* Schedule calendar — стиль как в оригинале: тёмная шапка дней недели, скругления, границы */
.schedule-calendar-wrap { background: var(--light-gray); border-radius: var(--radius); padding: 16px; }
@media (min-width: 768px) { .schedule-calendar-wrap { padding: 24px; } }
.schedule-calendar-header { display: flex; align-items: center; justify-content: space-between; gap: 56px; margin-bottom: 32px; }
@media (min-width: 640px) { .schedule-calendar-header { justify-content: center; } }
.schedule-calendar-prev, .schedule-calendar-next { width: 32px; height: 32px; border: none; background: transparent; cursor: pointer; color: var(--foreground); padding: 0; line-height: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.schedule-calendar-prev svg, .schedule-calendar-next svg { width: 32px; height: 32px; }
.schedule-calendar-prev:hover, .schedule-calendar-next:hover { color: var(--primary); }
.schedule-calendar-prev:disabled, .schedule-calendar-next:disabled { opacity: 0.5; cursor: not-allowed; }
.schedule-calendar-month { font-size: 32px; font-weight: 700; }
@media (max-width: 639px) { .schedule-calendar-month { font-size: 16px; } }
.schedule-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); min-height: 41px; align-items: center; margin-bottom: 16px; border-radius: 20px; background: #232323; padding: 0; }
@media (min-width: 640px) { .schedule-calendar-days { min-height: 83px; border-radius: 20px; } }
.schedule-calendar-dow { text-align: center; font-size: 14px; color: #FEFEFE; font-weight: 400; }
@media (min-width: 768px) { .schedule-calendar-dow { font-size: 18px; } }
.dow-full { display: none; }
.dow-short { display: inline; }
@media (min-width: 768px) { .dow-full { display: inline; } .dow-short { display: none; } }
.schedule-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.schedule-calendar-cell { min-height: 30px; padding: 4px; background: #F7F7F7; border: 1px solid #C6C6C6; border-left: none; border-top: none; display: flex; flex-direction: column; }
.schedule-calendar-cell:first-child { border-left: 1px solid #C6C6C6; }
.schedule-calendar-grid .schedule-calendar-cell:nth-child(7n+1) { border-left: 1px solid #C6C6C6; }
.schedule-calendar-grid .schedule-calendar-cell:nth-child(-n+7) { border-top: 1px solid #C6C6C6; }
@media (min-width: 640px) { .schedule-calendar-cell { min-height: 126px; padding: 8px; } }
@media (min-width: 1024px) { .schedule-calendar-cell { min-height: 216px; padding: 12px; } }
.schedule-calendar-grid .schedule-calendar-cell:nth-child(1) { border-radius: 20px 0 0 0; }
.schedule-calendar-grid .schedule-calendar-cell:nth-child(7) { border-radius: 0 20px 0 0; }
.schedule-calendar-grid .schedule-calendar-cell:nth-last-child(-n+7) { border-bottom: 1px solid #C6C6C6; }
.schedule-calendar-grid .schedule-calendar-cell:nth-last-child(7) { border-radius: 0 0 0 20px; }
.schedule-calendar-grid .schedule-calendar-cell:nth-last-child(1) { border-radius: 0 0 20px 0; }
.schedule-calendar-cell--empty { background: transparent; border-color: transparent; }
.schedule-calendar-cell--other, .schedule-calendar-cell--disabled { background: #F7F7F7; }
.schedule-calendar-cell--other .schedule-calendar-day, .schedule-calendar-cell--disabled .schedule-calendar-day { color: #C6C6C6; }
.schedule-calendar-cell--past .schedule-calendar-day { color: #C6C6C6; }
.schedule-calendar-cell--past .schedule-calendar-event-title { color: #C6C6C6; }
.schedule-calendar-cell--clickable { cursor: pointer; }
.schedule-calendar-cell--clickable:hover { background: #F7F7F7; }
.schedule-calendar-cell--today .schedule-calendar-day { color: var(--primary); font-weight: 700; }
.schedule-calendar-day { display: block; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
@media (min-width: 640px) { .schedule-calendar-day { font-size: 18px; } }
@media (min-width: 1024px) { .schedule-calendar-day { font-size: 32px; } }
.schedule-calendar-events { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
@media (min-width: 1024px) { .schedule-calendar-events { gap: 14px; } }
.schedule-calendar-event { display: flex; align-items: center; gap: 7px; font-size: 10px; }
@media (min-width: 640px) { .schedule-calendar-event { font-size: 12px; padding: 0 6px; } }
@media (min-width: 1024px) { .schedule-calendar-event { padding: 0 12px; } }
.schedule-calendar-event-dot { width: 4px; height: 4px; min-width: 4px; min-height: 4px; border-radius: 50%; background: var(--ev-color, #C6C6C6); }
@media (min-width: 1024px) { .schedule-calendar-event-dot { width: 8px; height: 8px; min-width: 8px; min-height: 8px; } }
.schedule-calendar-event-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-calendar-event--h100 { background: #E5F9EC; border-radius: 4px; padding: 1px 4px; }
@media (min-width: 640px) { .schedule-calendar-event--h100 { padding: 2px 6px; } }
@media (min-width: 1024px) { .schedule-calendar-event--h100 { padding: 2px 12px; } }
.schedule-calendar-event--cancelled { text-decoration: line-through; text-decoration-color: #E63028; }
.schedule-calendar-event-title--cancelled { color: #E63028; }
.schedule-calendar-more { font-size: 10px; color: #6C6C6C; margin-top: auto; padding-bottom: 8px; }
@media (min-width: 1024px) { .schedule-calendar-more { padding-bottom: 11px; padding-left: 12px; } }

/* Event List Modal */
.event-list-box { max-width: 792px; max-height: 941px; display: flex; flex-direction: column; }
.event-list-header { margin-bottom: 24px; }
.event-list-title { font-size: 26px; font-weight: 700; line-height: 1; }
@media (min-width: 640px) { .event-list-title { font-size: 50px; } }
.event-list-scroll { overflow-y: auto; max-height: 777px; padding-right: 16px; display: flex; flex-direction: column; gap: 24px; }

.event-modal-card { display: grid; gap: 12px 24px; min-height: 180px; align-items: start; }
@media (min-width: 768px) { .event-modal-card { grid-template-columns: 249px 1fr; } }
.event-modal-card + .event-modal-card { padding-top: 24px; border-top: 1px solid #e5e5e5; }
.event-modal-card-img { position: relative; width: 100%; height: 110px; border-radius: 14px; overflow: hidden; margin-bottom: auto; }
@media (min-width: 768px) { .event-modal-card-img { height: 180px; max-height: 180px; border-radius: 20px; grid-row: 1 / -1; } }
.event-modal-card-img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.event-modal-card-body { display: flex; flex-direction: column; gap: 16px; }
.event-modal-card-date { font-size: 16px; color: var(--foreground); display: none; }
@media (min-width: 768px) { .event-modal-card-date { display: block; font-size: 20px; } }
.event-modal-card-date-mobile { font-size: 16px; color: var(--foreground); }
@media (min-width: 768px) { .event-modal-card-date-mobile { display: none; } }
.event-modal-card-title-row { display: flex; flex-direction: column; gap: 8px; }
.event-modal-card-title-inner { display: flex; align-items: center; gap: 32px; }
.event-modal-card-title { font-size: 16px; font-weight: 600; }
@media (min-width: 768px) { .event-modal-card-title { font-size: 24px; } }
.event-modal-card-badges { display: flex; gap: 12px; }
@media (max-width: 767px) { .event-modal-card-badges { display: none; } }
.event-modal-card-location { font-size: 12px; color: var(--foreground); }
@media (min-width: 768px) { .event-modal-card-location { font-size: 16px; } }
.event-modal-card-desc { font-size: 12px; line-height: 1.5; color: var(--foreground); }
@media (min-width: 768px) { .event-modal-card-desc { font-size: 18px; } }
.event-modal-card-btn { margin-left: auto; width: fit-content; }
@media (max-width: 767px) { .event-modal-card-btn { width: 100%; margin-left: 0; } }

/* Mobile event cards */
.schedule-mobile-events { margin-top: 24px; }
.schedule-mobile-events-title { font-size: 22px; font-weight: 700; margin-bottom: 16px; }
.schedule-mobile-events-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 480px) { .schedule-mobile-events-grid { grid-template-columns: 1fr 1fr; gap: 12px 16px; } }
.schedule-mobile-events .event-modal-card { grid-template-columns: 1fr; min-height: auto; }
.schedule-mobile-events .event-modal-card-img { height: 140px; }
.schedule-mobile-events .event-modal-card-btn { margin-left: 0; width: 100%; }

/* Gallery */
.gallery-intro { max-width: 635px; font-size: 16px; line-height: 1.5; }
.gallery-filter { padding-bottom: 32px; border-bottom: 1px solid #C6C6C6; }
.gallery-filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 12px; }
.gallery-filter-row label { font-weight: 500; min-width: 60px; }
.gallery-filter-tab { padding: 8px 16px; background: #f0f0f0; border-radius: 8px; text-decoration: none; color: #333; }
.gallery-filter-tab:hover, .gallery-filter-tab.active { background: #232323; color: #fff; }
.gallery-filter select { padding: 8px 12px; border-radius: 8px; border: 2px solid #e5e5e5; min-width: 200px; }
.gallery-filter-reset { display: inline-flex; align-items: center; gap: 8px; color: #9F9F9F; font-size: 14px; text-decoration: none; transition: color 0.2s; margin-left: auto; margin-top: 15px;}
.gallery-filter-reset:hover { color: var(--foreground); }
.gallery-filter-footer { display: flex; justify-content: flex-end; }
.gallery-filter--modern { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid #C6C6C6; }
.gallery-filter--modern .gallery-filter-inner { display: grid; gap: 24px; align-items: end; }
@media (min-width: 768px) { .gallery-filter--modern .gallery-filter-inner { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
@media (min-width: 1024px) { .gallery-filter--modern .gallery-filter-inner { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-end; } }
.gallery-filter--modern .gallery-filter-tabs { display: flex; gap: 12px; }
@media (min-width: 1024px) { .gallery-filter--modern .gallery-filter-tabs { margin-left: auto; } }
.gallery-filter--modern .gallery-filter-tab { min-width: 120px; height: 54px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #F7F7F7; background: var(--light-gray); border-radius: 8px; font-weight: 500; transition: all 0.2s; }
.gallery-filter--modern .gallery-filter-tab:hover { background: transparent; border-color: var(--foreground); color: var(--foreground); }
.gallery-filter--modern .gallery-filter-tab.active { background: transparent; border-color: var(--foreground); color: var(--foreground); }
.gallery-filter-field { display: flex; flex-direction: column; gap: 8px; }
.gallery-filter-label { font-weight: 500; font-size: 14px; }
.gallery-filter-dropdown { position: relative; }
.gallery-filter-dropdown .gallery-dropdown-trigger { width: 100%; min-width: 200px; padding: 8px 12px; border: 1px solid #c6c6c6; border-radius: 8px; background: #FEFEFE; font-size: 16px; text-align: left; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: border-color 0.2s; }
.gallery-filter-dropdown .gallery-dropdown-trigger:hover { border-color: #8b8b8b; }
.gallery-dropdown-arrow { display: flex; align-items: center; transition: transform 0.2s; }
.gallery-dropdown-placeholder { color: #8b8b8b; }
.gallery-filter-dropdown .gallery-dropdown-list { position: absolute; top: 100%; left: 0; right: 0; background: #FEFEFE; border: 1px solid #c6c6c6; border-radius: 8px; margin-top: 4px; max-height: 301px; overflow-y: auto; z-index: 10; box-shadow: 0 4px 12px rgba(0,0,0,0.1); padding: 0; list-style: none; }
.gallery-filter-dropdown .gallery-dropdown-list[hidden] { display: none; }
.gallery-filter-dropdown .gallery-dropdown-list li { padding: 10px 12px; cursor: pointer; color: #727b83; }
.gallery-filter-dropdown .gallery-dropdown-list li:hover { background: #f1f5f8; color: #253746; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 50px; }
@media (min-width: 640px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .gallery-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 80px; } }
.gallery-item { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4/3; }
.gallery-photo-link, .gallery-video-link { display: block; width: 100%; height: 100%; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-video-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 48px; color: white; text-shadow: 0 2px 8px rgba(0,0,0,0.5); }
.safety-cta { text-align: center; }
.safety-cta--home { display: flex; flex-direction: column; align-items: center; gap: 16px; padding-top: 50px; padding-bottom: 50px; }
@media (min-width: 768px) { .safety-cta--home { gap: 24px; padding-top: 80px; padding-bottom: 80px; } }
.safety-cta-text { margin-top: 0; font-size: 14px; font-weight: 500; }
@media (min-width: 768px) { .safety-cta-text { font-size: 16px; } }
.title-underline { position: relative; display: inline-block; text-decoration: none; }
.title-underline::after { content: ''; position: absolute; left: 0; bottom: -4px; width: 100%; height: 5px; background: var(--foreground); }
@media (min-width: 768px) { .title-underline::after { bottom: 4px; } }

/* Reviews page */
.reviews-page-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 32px; }
.reviews-page-header .title { margin: 0; }
.reviews-page-header--top { margin-top: 80px; }
@media (max-width: 767px) { .reviews-page-header--top { margin-top: 32px; } }
.review-page-card { display: block; background: var(--light-gray); border-radius: var(--radius); overflow: hidden; margin-bottom: 24px; }
.review-page-card-body { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 768px) { .review-page-card-body { padding: 32px; gap: 24px; } }
.review-page-header { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 12px; }
@media (min-width: 768px) { .review-page-header { gap: 24px; } }
.review-page-avatar { width: 70px; height: 70px; border-radius: 50%; object-fit: cover; }
.review-page-meta { display: flex; flex-direction: column; gap: 4px; }
.review-page-name { font-size: 22px; font-weight: 500; }
.review-page-height { font-size: 16px; color: #666; }
.review-page-date { font-size: 16px; color: #666; }
@media (min-width: 768px) { .review-page-date { margin-left: auto; } }
.review-page-comment { font-size: 20px; line-height: 1.5; }
.review-page-gallery { display: flex; flex-wrap: wrap; gap: 12px; }
.review-page-gallery-item { width: 112px; height: 150px; border-radius: 5px; overflow: hidden; flex-shrink: 0; }
.review-page-gallery-item img { width: 100%; height: 100%; object-fit: cover; }

/* Home: news grid, faq, events empty */
.news-grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (min-width: 1024px) { .news-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }
.news-card { display: flex; flex-direction: column; border: 1px solid #FEFEFE; border-radius: var(--radius); overflow: hidden; transition: background .2s; }
.news-card:hover { background: #F7F7F7; }
.news-card-img { height: 110px; overflow: hidden; border-radius: 14px; }
@media (min-width: 768px) { .news-card-img { height: 225px; border-radius: var(--radius); } }
.news-card-img img { width: 100%; height: 100%; object-fit: cover }
.news-card-body { display: flex; flex-direction: column; gap: 8px; padding: 12px 12px; }
@media (min-width: 768px) { .news-card-body { padding: 12px 12px 16px; } }
.news-card-cat { display: inline-block; width: fit-content; background: var(--light-gray); border: 1px solid #F7F7F7; border-radius: 12px; padding: 8px 16px; font-size: 14px; font-weight: 400; margin-bottom: 4px; }
.news-card-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
@media (min-width: 768px) { .news-card-title { font-size: 24px; margin-bottom: 12px; } }
.news-card-desc { font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 12px; }
@media (min-width: 768px) { .news-card-desc { margin-bottom: 24px; } }
.news-card-date { color: #C6C6C6; font-size: 14px; margin-top: auto; margin-left: auto; }
.events-empty { padding: 48px 24px; text-align: center; color: #666 }
.faq-grid { display: grid; gap: 16px; }
@media (min-width: 1024px) { .faq-grid { grid-template-columns: 1fr 1fr; gap: 24px; } }
.faq-col { display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 1024px) { .faq-col { gap: 24px; } }
.faq-item { background: var(--light-gray); border-radius: var(--radius); overflow: hidden; }
.faq-summary { padding: 16px; font-size: 16px; font-weight: 500; cursor: pointer; list-style: none; }
@media (min-width: 768px) { .faq-summary { padding: 24px; font-size: 24px; } }
.faq-summary::-webkit-details-marker { display: none; }
.faq-summary::after { content: "+"; float: right; }
details[open] .faq-summary::after { content: "−"; }
.faq-content { padding: 0 16px 16px 16px; font-size: 14px; line-height: 1.5; }
@media (min-width: 768px) { .faq-content { padding: 0 24px 24px; } }
.faq-content p { margin-bottom: 0.5em; }

/* Блог на главной: кнопка «Посмотреть еще» как в оригинале — отступы, стиль secondary, без обводки у карточек */
.news-section-wrap { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 1024px) { .news-section-wrap { gap: 32px; } }
.news-section-wrap .btn-light.news-more-btn { padding: 16px 32px; min-height: 54px; font-size: 14px; border: 1px solid var(--foreground); background: transparent; color: var(--foreground); }
.news-section-wrap .btn-light.news-more-btn:hover { background: transparent; border-color: var(--primary); color: var(--primary); }
@media (min-width: 768px) { .news-section-wrap .btn-light.news-more-btn { font-size: 16px; } }
.news-section-footer { display: flex; justify-content: center; }

/* Modals */
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; overflow-y: auto; }
.modal-box { position: relative; background: #F7F7F7; border-radius: 20px; border: 1px solid #F1F1F1; padding: 16px; max-width: 674px; width: 100%; max-height: 100vh; overflow-y: auto; box-shadow: 0 10px 40px rgba(0,0,0,0.15); }
@media (min-width: 640px) { .modal-box { padding: 32px; } }
.modal-close { position: absolute; top: 12px; right: 12px; background: none; border: none; cursor: pointer; opacity: 0.7; transition: opacity .2s; color: #232323; padding: 0; line-height: 0; }
@media (min-width: 640px) { .modal-close { top: 32px; right: 32px; } }
.modal-close svg { width: 32px; height: 32px; }
.modal-close:hover { opacity: 1; }
.modal-header { text-align: center; margin-bottom: 24px; display: flex; flex-direction: column; gap: 12px; padding: 0 16px; }
@media (min-width: 640px) { .modal-header { padding: 0 32px; } }
.modal-title { font-size: 26px; font-weight: 500; line-height: 1; padding-top: 40px; }
@media (min-width: 640px) { .modal-title { font-size: 32px; padding-top: 0; } }
.modal-subtitle { font-size: 24px; }
.modal-subtitle.text-primary { color: var(--primary); }
.modal-form { display: flex; flex-direction: column; gap: 16px; }
.modal-form .form-row { display: flex; flex-direction: column; gap: 12px; }
.modal-form .form-row > label { font-size: 16px; font-weight: 400; }
.modal-form .form-row > label .req { color: #ee2737; }
.modal-form input[type="text"], .modal-form input[type="tel"], .modal-form input[type="email"], .modal-form input[type="date"], .modal-form input[type="number"], .modal-form textarea { padding: 10px 12px; border: 1px solid #c6c6c6; border-radius: 18px; font-size: 16px; background: #FEFEFE; height: 46px; box-sizing: border-box; font-family: inherit; transition: border-color .2s; outline: none; }
.modal-form input:focus, .modal-form textarea:focus { border-color: #8B8B8B; }
.modal-form input::placeholder, .modal-form textarea::placeholder { color: #8b8b8b; }
.modal-form textarea { min-height: 80px; resize: vertical; height: auto; }
.modal-form .modal-custom-select select { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; overflow: hidden; }

.form-grid { display: grid; gap: 16px; }
.form-grid-2 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .form-grid-2 { grid-template-columns: 1fr 1fr; } }
.form-row-full { grid-column: 1 / -1; }
.form-fields-area { margin-bottom: 24px; position: relative; }

.form-row-checkboxes { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
@media (min-width: 640px) { .form-row-checkboxes { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; } }

.modal-checkbox-wrap { position: relative; display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 16px; }
.modal-checkbox { position: absolute; opacity: 0; width: 0; height: 0; }
.modal-checkbox-custom { display: inline-block; width: 16px; height: 16px; min-width: 16px; border: 1px solid #c6c6c6; border-radius: 4px; background: #fff; transition: border-color .2s, background .2s; position: relative; flex-shrink: 0; box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.modal-checkbox:checked + .modal-checkbox-custom { border-color: var(--primary); background: var(--primary); }
.modal-checkbox:checked + .modal-checkbox-custom::after { content: ''; position: absolute; left: 4.5px; top: 1.5px; width: 4px; height: 8px; border: solid white; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.modal-checkbox:disabled + .modal-checkbox-custom { opacity: 0.5; }
.modal-checkbox:disabled ~ * { opacity: 0.3; cursor: not-allowed; }

.modal-link-consent { color: var(--primary); text-decoration: none; }
.modal-link-consent:hover { text-decoration: underline; }

.modal-consent-row { margin-bottom: 44px; }
.modal-btn-submit { width: fit-content; padding-left: 32px; padding-right: 32px; margin: 0 auto; }
.modal-btn-submit-full { width: 100%; }
.modal-bottom { display: flex; flex-direction: column; gap: 24px; }

.modal-custom-select { position: relative; }
.modal-select-trigger { width: 100%; padding: 10px 16px; border: 1px solid #c6c6c6; border-radius: 18px; background: #FEFEFE; font-size: 16px; text-align: left; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-family: inherit; height: 46px; box-sizing: border-box; transition: border-color .2s; outline: none; }
.modal-select-trigger:hover, .modal-select-trigger:focus { border-color: #8B8B8B; }
.modal-select-value { line-height: 1; }
.modal-select-placeholder { color: #8b8b8b; }
.modal-select-arrow { flex-shrink: 0; transition: transform .2s; }
.modal-select-list { position: absolute; top: 100%; left: 0; right: 0; margin-top: 4px; padding: 0; background: #FEFEFE; border: 1px solid #c6c6c6; border-radius: 18px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); max-height: 300px; overflow-y: auto; z-index: 1050; list-style: none; }
.modal-select-list[hidden] { display: none; }
.modal-select-list li { padding: 10px 12px; cursor: pointer; color: #727b83; font-size: 16px; }
.modal-select-list li:hover { background: #f1f5f8; color: #253746; }
.modal-select-list li.selected { background: #f1f5f8; color: #253746; }

.form-delivery { padding-top: 24px; display: flex; flex-direction: column; gap: 16px; }
.form-delivery-header { display: flex; align-items: center; gap: 16px; }
.form-delivery-title { font-size: 16px; font-weight: 600; }
.form-delivery-info { position: relative; display: inline-flex; cursor: help; }
.form-delivery-info svg { display: block; }
.form-delivery-tooltip { display: none; position: absolute; left: calc(100% + 8px); top: 50%; transform: translateY(-50%); background: #232323; color: #fff; font-size: 14px; line-height: 1.5; padding: 8px 12px; border-radius: 8px; max-width: 242px; width: max-content; z-index: 10; pointer-events: none; }
.form-delivery-info:hover .form-delivery-tooltip { display: block; }
.form-delivery-note { font-size: 16px; }
.form-total-row { display: flex; align-items: center; justify-content: space-between; }
.form-total-row span { font-size: 24px; font-weight: 600; }

.modal-cookies { align-items: flex-end; justify-content: flex-end; }
@media (max-width: 768px) { .modal-cookies { align-items: center; justify-content: center; } }
.modal-cookies-box { background: #fff; border-radius: 20px; padding: 24px; max-width: 505px; box-shadow: 0 10px 40px rgba(0,0,0,0.2); margin: 16px; }
.modal-cookies-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.modal-cookies-header .modal-close { position: static; opacity: 1; }
.modal-cookies-header .modal-close svg { width: 24px; height: 24px; }
.modal-cookies-text { font-size: 14px; margin-bottom: 24px; line-height: 1.5; }
.modal-cookies-btns { display: flex; gap: 12px; flex-wrap: wrap; }

.modal-alert-box { text-align: center; }
.modal-alert-title { font-size: 24px !important; font-weight: 500 !important; }
.modal-alert-body { display: flex; flex-direction: column; align-items: center; text-align: center; }
.modal-alert-subtitle { margin-bottom: 16px; font-size: 16px; }
.modal-alert-event { margin-bottom: 16px; font-size: 20px; font-weight: 500; }
.modal-alert-icon { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto; display: flex; align-items: center; justify-content: center; }
.modal-alert-icon svg { width: 44px; height: 44px; }
.alert-success .modal-alert-icon { background: #E5F6E8; }
.alert-error .modal-alert-icon { background: #F4CFCE; }
.alert-error .modal-alert-icon svg { color: var(--primary); }

.modal-btn-submit:disabled, .modal-btn-submit-full:disabled { opacity: 0.5; pointer-events: none; cursor: not-allowed; }

.iti { width: 100%; }
.iti .iti__selected-dial-code { font-size: 16px; }
.iti input.iti__tel-input { width: 100% !important; }
.iti--container { z-index: 1100 !important; }
.iti__search-input { border: 1px solid #c6c6c6 !important; border-radius: 10px !important; font-size: 14px !important; padding: 8px 12px !important; outline: none !important; font-family: inherit !important; }
.iti__search-input:focus { border-color: var(--primary) !important; }
.iti__country-list { border: 1px solid #c6c6c6 !important; border-radius: 12px !important; font-size: 14px !important; font-family: inherit !important; }
.iti__country { padding: 8px 12px !important; }
.iti__country:hover, .iti__country--highlight { background-color: #f7f7f7 !important; }

/* Footer — отступы и стили как в оригинале */
footer { margin-top: 50px; }
@media (min-width: 1024px) { footer { margin-top: 80px; } }
.footer-main { background: var(--foreground); border-radius: var(--radius); color: #FEFEFE; max-width: 1340px; margin: 0 auto; padding: 24px 16px; display: flex; flex-direction: column; align-items: center; gap: 24px; }
@media (min-width: 768px) { .footer-main { padding: 24px; } }
@media (min-width: 1024px) { .footer-main { padding: 32px 50px; } }
.footer-main, .footer-main a, .footer-main .footer-link { color: #FEFEFE; }
.footer-main .footer-link:hover { color: #E63028; }
.footer-main .footer-phones { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.footer-main .footer-phones a { color: #FEFEFE; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; column-gap: 12px; row-gap: 16px; }
@media (min-width: 768px) { .footer-nav { column-gap: 8px; row-gap: 8px; } }
@media (min-width: 1024px) { .footer-nav { gap: 16px; } }
.footer-link { font-size: 14px; font-weight: 500; }
@media (min-width: 768px) { .footer-link { font-size: 16px; } }
.footer-main .social-media { display: flex; gap: 16px; }
.footer-main .social-media img { filter: brightness(0) invert(1); }
.footer-main .flex.flex-col.items-center.gap-3 { gap: 12px; }
.footer-bottom { color: #232323; padding-top: 12px; padding-bottom: 16px; font-weight: 500; margin-top: 0; max-width: 1340px; margin-left: auto; margin-right: auto; }
.footer-bottom a { color: #232323; }
@media (max-width: 767px) { .footer-bottom { font-size: 10px; } }
