/* Homepage refinement: one rhythm for the existing white/grey/yellow design. */
.home-page {
  --home-section-space: 72px;
  --home-heading-size: 32px;
  --home-card-title: 22px;
  --home-grid-gap: 24px;
  --home-card-padding: 24px;
  --home-control-height: 50px;
  --home-control-radius: 8px;
}
.home-page > main > section:not(.block-1) { padding-block: var(--home-section-space); }
.home-page > main > section:not(.block-1) > .container,
.home-page > main > .img-before-section,
.home-page .home-footer > .container,
.home-page .header-inner { width: 100%; max-width: min(1140px, calc(100% - 128px)); }
.home-page > main > section:not(.block-1) h2 {
  color: var(--site-heading-color);
  font-family: var(--site-heading-font);
  font-size: var(--home-heading-size);
  line-height: 1.2;
  letter-spacing: -.015em;
  text-wrap: balance;
  padding-right: 0;
}
.home-page :is(.programs, .courses) h2,
.home-page .home-contacts > .container > h2 { margin-bottom: 28px; }
.home-page .pricing h2 { margin-bottom: 16px; }
.home-page :is(.club-intro-grid, .lessons-grid, .detail-heading, .home-split) {
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.65fr);
  gap: 48px;
}
.home-page :is(.club-intro-copy, .lessons-format, .home-section, .learning-details) p {
  font-size: 16px;
  line-height: 1.6;
}
.home-page .club-intro-copy p + p { margin-top: 16px; }
.home-page .home-section-intro p { margin-top: 16px; }
.home-page :is(.programs-grid, .courses-grid, .pricing-cards) { gap: var(--home-grid-gap); }
.home-page :is(.program-card, .course-card, .pricing-card) {
  min-width: 0;
  border: 1px solid var(--znayka-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}
.home-page :is(.program-card-copy, .pricing-card-copy) { padding: var(--home-card-padding); }
.home-page :is(.program-card, .course-card, .pricing-card) h3 {
  min-height: 0;
  margin: 0;
  padding: 0;
  font-size: var(--home-card-title);
  line-height: 1.25;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.home-page :is(.program-age, .course-age) { margin-top: 6px; padding: 0; font-size: 14px; line-height: 20px; }
.home-page :is(.programs .program-card, .course-card, .pricing-card) p {
  padding: 0;
  margin: 16px 0 24px;
  font-size: 16px;
  line-height: 1.55;
}
.home-page .pricing .pricing-card p { margin: 10px 0 0; }
.home-page .program-card--trial .program-card-copy { justify-content: flex-start; }
.home-page .programs .program-card--trial h3 { margin-top: 0; }
/* Buttons keep the same box, baseline, label weight and focus in every section. */
.home-page :is(.program-link, .detail-enroll, .hero-enroll),
.home-page #modalOrder button[type="submit"] {
  min-height: var(--home-control-height);
  padding: 13px 20px;
  border-radius: var(--home-control-radius);
  font-family: var(--site-text-font);
  font-size: 16px;
  font-weight: 500;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
}
.home-page .program-link { padding-inline: 36px; }
.home-page .program-link svg { right: 14px; width: 18px; height: 18px; }
.home-page .program-link:active,
.home-page .detail-enroll:active,
.home-page .hero-enroll:active { transform: none; }
.home-page :is(.program-link, .detail-enroll, .hero-enroll):focus-visible { outline: 2px solid #3776b4 !important; outline-offset: 3px; }
/* Additional courses are a compact catalogue, with full-width actions. */
.home-page .course-card { padding: 20px; }
.home-page .course-summary { display: flex; align-items: center; gap: 16px; min-width: 0; }
.home-page .course-title { min-width: 0; }
.home-page .course-card .course-photo {
  flex: 0 0 96px;
  width: 96px;
  height: 96px;
  aspect-ratio: 1;
  border-radius: 12px;
  object-fit: cover;
}
.home-page .course-card h3 { font-size: 20px; text-wrap: pretty; overflow-wrap: normal; hyphens: auto; }
.home-page .course-copy { padding: 0; }
.home-page .course-card p { margin-top: 16px; }
/* Timetable reads as facts, with a single quiet divider before opening hours. */
.home-page .schedule-content { padding: 0; min-width: 0; }
.home-page .schedule-times { margin: 0; }
.home-page .schedule-times > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 20px; padding: 14px 0; }
.home-page .schedule-times > div:first-child { padding-top: 0; }
.home-page .schedule-times dt { color: var(--site-heading-color); font-weight: 500; }
.home-page .schedule-times dd { margin: 0; }
.home-page .schedule-times dt, .home-page .schedule-times dd { font-size: 16px; line-height: 1.5; }
.home-page .schedule-hours { margin-top: 16px; padding: 24px 0 0; border-top: 1px solid var(--znayka-line); border-radius: 0; background: transparent; }
.home-page .schedule-hours h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font-family: var(--site-text-font); font-size: 16px; font-weight: 500; line-height: 24px; }
.home-page .schedule-hours h3 svg { width: 20px; height: 20px; color: var(--znayka-muted); }
.home-page .schedule-hours dl { gap: 20px; }
.home-page .schedule-hours dl > div { display: block; }
.home-page .schedule-hours dt { margin: 0 0 4px; font-size: 14px; }
.home-page .schedule-hours dd { font-size: 15px; font-weight: 400; }
/* Video never grows beyond its useful resolution. */
.home-page .home-reviews .home-review-media { width: 100%; max-width: 640px; justify-self: end; }
.home-page .home-review-media .home-slider-controls { padding: 0; margin-top: 16px; }
.home-page .review-play-icon { width: 56px; height: 56px; }
.home-page .review-play-icon svg { width: 24px; height: 24px; }
.home-page .home-section-intro p { padding: 0; }
/* Questions are a list, not twelve unrelated boxes. */
.home-page .home-faq-list { border-top: 1px solid var(--znayka-line); }
.home-page .faq-item { border: 0; border-bottom: 1px solid var(--znayka-line); border-radius: 0; background: transparent; }
.home-page .faq-item + .faq-item { margin-top: 0; }
.home-page .faq-item summary { min-height: 64px; padding: 18px 0; border-radius: 0; font-size: 16px; gap: 16px; }
.home-page .faq-answer { padding: 0 40px 20px 0; }
.home-page .faq-plus { flex-basis: 22px; width: 22px; height: 22px; }
.home-page .home-section-heading { margin-bottom: 28px; }
.home-page .home-gallery .home-slider-controls { margin: 0; }
.home-page .home-contact-grid { grid-template-columns: minmax(0,.8fr) minmax(0,1.65fr); gap: 48px; }
.home-page .home-addresses { padding: 0; }
.home-page .home-contacts .detail-enroll { width: 100%; margin-top: 20px; }
.home-page .home-map { margin: 0; }
.home-page .home-map iframe { height: 360px; }
.home-page .home-footer-grid { gap: 40px; }
@media (min-width: 992px) and (max-width: 1199px) {
  .home-page .header:not(.is-compact) .header-inner { grid-template-columns: 88px max-content minmax(0,1fr); column-gap: 16px; }
  .home-page .header:not(.is-compact) .logo { width: 88px; }
  .home-page .header:not(.is-compact) .logo img { width: 88px !important; height: auto !important; }
  .home-page .header-details { gap: 12px; }
  .home-page :is(.header-addresses, .header-hours) { font-size: 13px; }
  .home-page .navbar .navbar-nav { gap: 12px; }
  .home-page .navbar .nav-link { font-size: 14px; }
  .home-page .course-summary { gap: 12px; }
  .home-page .course-card .course-photo { flex-basis: 72px; width: 72px; height: 72px; }
}
@media (max-width: 991px) {
  .home-page { --home-section-space: 64px; --home-heading-size: 28px; --home-card-title: 21px; --home-card-padding: 20px; --home-grid-gap: 20px; --home-control-height: 48px; }
  .home-page > main > section:not(.block-1) > .container,
  .home-page > main > .img-before-section,
  .home-page .home-footer > .container,
  .home-page .header-inner { max-width: 100%; padding-inline: 24px; }
  .home-page :is(.club-intro-grid, .lessons-grid, .detail-heading, .home-split) { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .home-page .lessons-format h2, .home-page .lessons-format p { padding-right: 0; }
  .home-page .programs-lightning { width: 104px; height: 88px; right: 24px; }
  .home-page .lessons-rocket { width: 96px; height: 91px; right: 24px; }
  .home-page .program-link svg { right: 14px; }
  .home-page .course-card { padding: 20px; }
  .home-page .course-card .course-photo { flex-basis: 88px; width: 88px; height: 88px; }
  .home-page .course-card h3 { font-size: 20px; }
  .home-page .course-age, .home-page .course-card h3, .home-page .course-card p { padding: 0; }
  .home-page .schedule-hours dl { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .home-page .home-contact-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .home-page .home-map iframe { height: 340px; }
  .home-page .home-section h2 { padding-right: 0; }

}
@media (min-width: 600px) and (max-width: 991px) {
  .home-page .home-reviews .home-split { grid-template-columns: minmax(160px,.65fr) minmax(0,1.35fr); gap: 32px; }
  .home-page .home-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 768px) and (max-width: 991px) {
  .home-page :is(.club-intro-grid, .lessons-grid) { grid-template-columns: minmax(0, .8fr) minmax(0, 1.65fr); gap: 28px; }
  .home-page .detail-heading { grid-template-columns: minmax(0,.7fr) minmax(0,1.5fr); gap: 32px; }
  .home-page .home-contact-grid { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 32px; }
}
@media (max-width: 767px) {
  .home-page .home-section-heading { flex-wrap: nowrap; }
  .home-page .home-section-heading h2 { flex-basis: auto; }
  .home-page .home-gallery-count { margin-right: 0; }
  .home-page .home-gallery .home-slider-controls { gap: 8px; }
}
@media (max-width: 639px) {
  .home-page { --home-heading-size: 26px; --home-card-title: 18px; --home-card-padding: 14px; --home-grid-gap: 12px; --home-control-height: 46px; }
  .home-page > main > section:not(.block-1) > .container,
  .home-page > main > .img-before-section,
  .home-page .home-footer > .container,
  .home-page .header-inner { padding-inline: 20px; }
  .home-page :is(.programs, .courses) h2, .home-page .home-contacts > .container > h2 { margin-bottom: 24px; }
  .home-page :is(.program-card, .pricing-card) h3 { font-size: clamp(16px,4.4vw,18px); }
  .home-page :is(.programs .program-card, .pricing-card) p { font-size: 14px; line-height: 1.5; margin-top: 12px; }
  .home-page .program-age { font-size: 13px; line-height: 20px; }
  .home-page .programs .program-card p { margin-bottom: 18px; }
  .home-page .programs .program-link { padding: 12px 4px; font-size: 14px; line-height: 20px; }
  .home-page .programs .program-link svg { display: none; }
  .home-page .course-card { padding: 18px; }
  .home-page .course-card .course-photo { flex-basis: 80px; width: 80px; height: 80px; }
  .home-page .course-card h3 { font-size: 20px; }
  .home-page .course-card p { font-size: 15px; margin: 16px 0 20px; }
  .home-page .course-card .program-link { font-size: 15px; padding-block: 11px; line-height: 22px; }
  .home-page .course-card .program-link svg { display: block; }
  .home-page .home-section-intro p { max-width: 52ch; }
  .home-page .home-reviews .home-review-media { justify-self: stretch; max-width: none; }
  .home-page .schedule-times dt, .home-page .schedule-times dd { font-size: 15px; }
  .home-page .schedule-times > div { gap: 16px; padding-block: 12px; }
  .home-page .schedule-hours dl { gap: 12px; }
  .home-page .schedule-hours dt { font-size: 13px; }
  .home-page .schedule-hours dd { font-size: 14px; }
  .home-page .faq-item summary { padding-block: 16px; }
  .home-page .faq-answer { padding: 0 32px 20px 0; }
  .home-page .home-footer-grid { gap: 28px; }
  .home-page .home-contact-phone { font-size: 20px; }
}
@media (max-width: 599px) {
  .home-page { --home-section-space: 48px; }
  .home-page .programs-lightning { width: 72px; height: 61px; right: 24px; }
  .home-page .lessons-rocket { width: 72px; height: 68px; right: 24px; }
  .home-page :is(.detail-enroll,.hero-enroll) { font-size: 15px; padding: 12px 16px; }
  .home-page .home-map iframe { height: 300px; }
  .home-page .home-footer { padding-top: 40px; }
}
@media (max-width: 359px) {
  .home-page .header-details { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
  .home-page { --home-card-padding: 12px; }
  .home-page .course-card { padding: 16px; }
  .home-page .course-summary { gap: 12px; }
  .home-page .course-card .course-photo { flex-basis: 72px; width: 72px; height: 72px; }
  .home-page .course-card h3 { font-size: 18px; }
  .home-page .home-section-heading { flex-wrap: wrap; }
  .home-page .home-section-heading h2 { flex-basis: 100%; }
  .home-page .home-gallery .home-slider-controls { margin-left: auto; }
  .home-page .schedule-hours dl { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .home-page .schedule-hours dl > div { display: flex; justify-content: space-between; gap: 16px; }
  .home-page .schedule-hours dt { margin: 0; }
}

/* Main landmark and keyboard shortcut preserve the approved page layout. */
.skip-to-content { position: fixed; z-index: 1100; top: 12px; left: 20px; padding: 12px 18px; border-radius: 8px; background: #fff; color: var(--site-heading-color); transform: translateY(-180%); }
.skip-to-content:focus { transform: translateY(0); outline: 2px solid #3776b4; }
#mainContent { outline: none; }
.home-page button.nav-link { border: 0; background: transparent; text-align: left; }
@media (min-width: 992px) {
  .home-page > main > .block-1 > .container { max-width: min(1140px, calc(100% - 128px)); }
}
@media (min-width: 640px) and (max-width: 991px) {
  .home-page > main > .block-1 > .container { padding-inline: 24px; }
}
