html {
  scroll-behavior: smooth;
}

.page-body {
  margin: 0;
  background: #FAF8F3;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow-x: hidden;
}

.page-layout {
  width: 1440px;
  position: relative;
}

/* Header */

.header {
  position: static;
  margin: 54px 181px 0;
  width: 1063px;
  height: auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 0;
  box-sizing: border-box;
  overflow: visible;
}

.header-logo {
  position: static;
  display: block;
  object-fit: contain;
  flex: 0 0 auto;
}

.header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex: 0 0 auto;
  position: relative;
  top: -8px;
}

.header-phone {
  position: static;
  color: black;
  font-size: 20px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-weight: 700;
  white-space: nowrap;
}

.header-phone {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-phone .phone-icon {
  display: none;
}

.header-phone a {
  color: inherit;
  text-decoration: none;
}

.header-img-mx {
  margin-right: 1px;
}

.header-img-mx img,
.header-img-tg img {
  display: block;
}

/* Menu */

.menu-wrapper {
  position: static;
  margin: 32px 0 0 538px;
  display: flex;
  gap: 29px;
  align-items: right;
  height: 37.57px;
  z-index: 10;
}

.menu-wrapper a {
  color: black;
  text-decoration: none;
  font-family: Arial, sans-serif;
  font-size: 21px;
  font-weight: 600;
  white-space: nowrap;
}

.menu-item {
  height: 37.57px;
  border-radius: 22.16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0 17px;
}

.bg-01 {
  background: #E4BE88;
}

.bg-02 {
  background: #9589B8;
}

.bg-03 {
  background: #98C4AA;
}

.bg-04 {
  background: #7284BE;
}

.menu-toggle {
  display: none;
  background: transparent;
  border: 0;
  padding: 8px;
  cursor: pointer;
}

.menu-items {
  display: flex;
  gap: 29px;
  align-items: right;
}

/* Top info */

.top-info {
  position: static;
  margin: 50px 0 0 181px;
  width: 900px;
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.ti-title {
  margin: 0;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-size: 40px;
  font-weight: 700;
  color: #000;
}

.ti-desc {
  margin: 0;
  width: 744px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.1;
  color: #000;
}

.ti-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 7px;
}

.ti-btn {
  height: 53px;
  border-radius: 22.16px;
  padding: 0 17px;
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
}

.ti-btn--primary {
  background: #FBE119;
  color: #000;
  min-width: 272px;
}

.ti-btn--secondary {
  background: #FB5619;
  color: #000;
  min-width: 313px;
}

.ti-btn-with-badge {
  position: relative;
  display: inline-block;
}

.ti-badge {
  position: absolute;
  top: -15px;
  right: -88px;
  transform: none;
  height: 24px;
  padding: 4px 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 53px;
  outline: 5px #FF0404 solid;
  outline-offset: -2.5px;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 600;
}

.ti-decor {
  position: relative;
}

.ti-decor-11 {
  width: 142px;
  height: 32px;
}

.ti-decor-19 {
  width: 100px;
  height: 100px;
}

/* Programs header */

.programs-section {
  position: relative;
  top: -139px;
  width: 100%;
  min-width: 1440px;
  box-sizing: border-box;
}

.hero-bg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  min-width: 1440px;
  height: 175px;
  top: 0;
  overflow: hidden;
  z-index: 0;
}

.hero-bg .hero-image-img-0001-01 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-content {
  position: relative;
  z-index: 1;
}

.hero-title {
  position: absolute;
  left: 181px;
  top: 11px;
  margin: 0;
  color: black;
  font-size: 40px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  word-wrap: break-word;
}

.hero-sub {
  position: absolute;
  left: 182px;
  top: 73px;
  margin: 0;
  width: 744px;
  height: 150px;
  color: black;
  font-size: 20px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 22px;
  word-wrap: break-word;
}

.hero-decoration {
  position: absolute;
  left: -9px;
  top: 100px;
  background: transparent;
  mix-blend-mode: multiply;
}

.hero-image-img-0024-01,
.hero-image-img-0015-02 {
  position: absolute;
  mix-blend-mode: multiply;
  z-index: 0;
}

.hero-image-img-0024-01 {
  left: 1018px;
  top: -158px;
}

.hero-image-img-0015-02 {
  left: 1294.51px;
  top: -30px;
}

/* Programs content */

.programs-container {
  position: static;
  margin: 71px 0 0 181px;
  width: 1080px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(3, 336px);
  grid-auto-rows: auto;
  column-gap: 34px;
  row-gap: 30px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.program-card:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}

.program-card:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}

.program-card:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}

.program-card:nth-child(4) {
  grid-column: 2;
  grid-row: 1;
}

.program-card:nth-child(5) {
  grid-column: 3;
  grid-row: 1;
}

.program-card {
  position: relative;
  width: 336px;
  height: 403px;
  background: #E5D4C4;
  border-radius: 22.16px;
  overflow: hidden;
  box-sizing: border-box;
  padding: 0;
}

.card-image {
  display: block;
  width: 100%;
  object-fit: cover;
}

.card-body {
  padding: 0px 21px;
  box-sizing: border-box;
}

.card-badge {
  display: inline-block;
  margin-top: 10px;
  background: #fff;
  border: 2px solid #000;
  border-radius: 31px;
  padding: 8px 0px;
  font-size: 20px;
  font-weight: 700;
  color: #000;
}

.card-title {
  margin: 12px 0 6px 0;
  font-size: 24px;
  font-weight: 700;
  color: #000;
  line-height: 1;
}

.card-text {
  margin: 20px 0 0 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 22px;
  color: #000;
  max-width: calc(100% - 0px);
}

.program-card:nth-child(1) .card-badge {
  width: 198px;
  text-align: center;
}

.program-card:nth-child(2) .card-badge {
  width: 198px;
  text-align: center;
}

.program-card:nth-child(3) .card-badge {
  width: 139px;
  text-align: center;
}

.program-card:nth-child(4) .card-badge {
  width: 130px;
  text-align: center;
}

.program-card:nth-child(5) .card-badge {
  width: 147px;
  text-align: center;
}

/* Ages header */

.ages-section {
  position: relative;
  top: 81px;
  width: 100%;
  min-width: 1440px;
  box-sizing: border-box;
}

.ages-bg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  min-width: 1440px;
  height: 175px;
  top: 0;
  overflow: hidden;
  z-index: 0;
}

.ages-bg .programs-image-img-0002-01 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ages-content {
  position: relative;
  z-index: 2;
}

.ages-title {
  position: absolute;
  left: 181px;
  top: 23px;
  margin: 0;
  color: black;
  font-size: 40px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  word-wrap: break-word;
}

.ages-text {
  position: absolute;
  left: 179px;
  top: 84px;
  margin: 0;
  width: 770px;
  height: 150px;
  color: black;
  font-size: 20px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 22px;
  word-wrap: break-word;
}

.ages-svg-wrap-01,
.programs-svg-wrap-01 {
  position: absolute;
  background: transparent;
  mix-blend-mode: multiply;
  z-index: 1;
}

.ages-svg-wrap-01 {
  left: 16px;
  top: 91px;
}

.programs-svg-wrap-01 {
  left: 984px;
  top: -123px;
}

.ages-image-img-0017-01 {
  position: absolute;
  left: 1270px;
  top: 34.53px;
  transform: rotate(-14deg);
  transform-origin: top left;
  mix-blend-mode: multiply;
  z-index: 1;

}

.ages-image-img-0025-01 {
  display: block;
  width: auto;
  height: auto;
}

/* Ages content */

.ages-container {
  position: static;
  margin: 288px 0 0 181px;
  width: 1096.99px;
  box-sizing: border-box;
  color: #000;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.ages-row {
  display: flex;
  gap: 28.21px;
  align-items: flex-start;
  box-sizing: border-box;
}

.age-card {
  width: 247.84px;
  height: 232.66px;
  border-radius: 22.16px;
  position: relative;
  background: #E5D4C4;
  box-sizing: border-box;
  padding: 28px 20px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.age-bg {
  position: absolute;
  inset: 0;
  border-radius: 22.16px;
  z-index: 0;
}

.age-pill {
  position: relative;
  z-index: 1;
  width: 157.12px;
  height: 45px;
  background: #fff;
  border-radius: 31px;
  border: 2px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin-left: 24.12px;
}

.age-pill-text {
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  color: #000;
  display: inline-block;
  box-sizing: border-box;
}

.age-desc {
  margin-top: 18px;
  z-index: 1;
  width: 207.07px;
  height: 128.61px;
  font-size: 20px;
  font-weight: 400;
  line-height: 22px;
  box-sizing: border-box;
  color: #000;
}

.age-1 .age-pill {
  margin: 0 auto;
}

.age-2 .age-pill {
  margin: 0 auto;
}

.age-3 .age-pill {
  margin: 0 auto;
}

.age-4 .age-pill {
  margin: 0 auto;
}

@media (max-width: 1159px) {
  .ages-container {
    position: static;
    width: 100%;
    padding: 20px;
    left: auto;
    top: auto;
  }

  .ages-row {
    flex-direction: column;
    gap: 20px;
  }

  .age-card {
    width: 100%;
    max-width: 360px;
  }

  .age-pill {
    margin-left: 0;
  }

  .age-desc {
    width: 100%;
  }
}

/* Camp header */

.camp-section {
  position: relative;
  top: 78px;
  width: 100%;
  min-width: 1440px;
  box-sizing: border-box;
}

.camp-bg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  min-width: 1440px;
  height: 175px;
  top: 0;
  overflow: hidden;
  z-index: 0;
}

.camp-bg .camp-image-img-0003-01 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.camp-content {
  position: relative;
  z-index: 2;
}

.camp-title {
  position: absolute;
  left: 181px;
  top: 17px;
  margin: 0;
  color: black;
  font-size: 40px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  word-wrap: break-word;
}

.camp-text {
  position: absolute;
  left: 179px;
  top: 83px;
  margin: 0;
  width: 744px;
  height: 150px;
  color: black;
  font-size: 20px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 22px;
  word-wrap: break-word;
}

.ages-svg-wrap-02 {
  position: absolute;
  background: transparent;
  mix-blend-mode: multiply;
  z-index: 1;
}

.ages-svg-wrap-02 {
  left: 67px;
  top: -30px;
}

.camp-image-img-0018-01 {
  position: absolute;
  left: 1300px;
  top: 110px;
  transform: rotate(6deg);
  transform-origin: top left;
  mix-blend-mode: multiply;
  z-index: 1;
}

.ages-image-img-0026-01 {
  position: absolute;
  left: 1010px;
  top: -64px;
  mix-blend-mode: multiply;
  z-index: 1;
}

/* Camp content */

.camp-container {
  position: static;
  margin: 286px 0 0 181px;
  width: 1096px;
  box-sizing: border-box;
  color: #000;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.camp-div-07-wrapper>*,
.camp-div-29-wrapper>* {
  transform: translateY(10px);
}

.camp-cards {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  margin-left: 0;
  padding: 0;
  box-sizing: border-box;
}

.card {
  width: 331px;
  height: 95px;
  border-radius: 22.16px;
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.card .card-bg {
  position: absolute;
  inset: 0;
  border-radius: 22.16px;
  z-index: 0;
  box-sizing: border-box;
}

.card .card-title {
  position: relative;
  z-index: 1;
  margin: 0;
  width: 342px;
  text-align: center;
  font-size: 32px;
  font-weight: 700;
  line-height: 38.18px;
  word-wrap: break-word;
  color: #000;
}

.card-age .card-bg {
  background: #98C4AA;
  border: 5px solid #B5A99D;
}

.card-hours .card-bg {
  background: #E8C88C;
  border: 5px solid #B5A99D;
}

.card-price .card-bg {
  background: #C4E5E0;
  border: 5px solid #B5A99D;
}

.camp-card-badge {
  position: absolute;
  top: -15px;
  right: -38px;
  transform: none;
  height: 24px;
  padding: 4px 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 53px;
  outline: 5px #FF0404 solid;
  outline-offset: -2.5px;
  background: #fff;
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 600;
  z-index: 3;
}

.camp-sessions {
  display: grid;
  grid-template-columns: 528.78px 528.78px;
  column-gap: 18.22px;
  margin-top: 18px;
  box-sizing: border-box;
}

.sessions-card {
  width: 528.78px;
  min-height: 425px;
  border-radius: 22.16px;
  background: #E5D4C4;
  padding: 20px 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  position: relative;
}

.sessions-title {
  margin: 0 auto 22px;
  text-align: center;
  font-size: 32px;
  font-weight: 600;
  line-height: 38.18px;
}

.session-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.session {
  display: flex;
  align-items: center;
  gap: 18px;
}

.session-frame {
  width: 488.39px;
  height: 57px;
  border-radius: 31px;
  border: 2px solid #000;
  border-left: 0;
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.session-left {
  width: 196.14px;
  height: 57px;
  background: #fff;
  border-radius: 31px;
  border: 2px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 196.14px;
}

.session-date {
  width: 162px;
  text-align: center;
  font-size: 24px;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 38.18px;
  letter-spacing: 2.88px;
  box-sizing: border-box;
}

.session-desc {
  margin: 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 22px;
  box-sizing: border-box;
  margin-left: 24px;
}

.program-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  box-sizing: border-box;
}

.program-item {
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.program-frame {
  width: 488px;
  height: 69px;
  border-radius: 31px;
  border: 2px solid #000;
  border-left: 0;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding-left: 0;
}

.program-icon {
  width: 69px;
  height: 69px;
  border-radius: 31px;
  border: 2px solid #000;
  overflow: hidden;
  flex: 0 0 69px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.program-icon img {
  object-fit: cover;
  display: block;
}

.program-text {
  width: 369px;
  margin: 0 0 0 20px;
  font-size: 20px;
  line-height: 22px;
  box-sizing: border-box;
}

h3,
p {
  margin: 0;
  padding: 0;
}

@media (max-width: 1159px) {
  .camp-container {
    position: static;
    width: 100%;
    padding-top: 20px;
    left: auto;
    top: auto;
  }

  .camp-sessions {
    grid-template-columns: 1fr;
    column-gap: 0;
    margin-top: 20px;
  }

  .camp-cards {
    flex-direction: column;
    gap: 12px;
  }

  .session-desc {
    width: auto;
    margin-left: 12px;
  }

  .program-text {
    width: auto;
  }
}

/* Footer */

.footer-section {
  position: relative;
  margin-top: 20px;
  width: 100%;
}

.footer-bg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  min-width: 1440px;
  height: 332px;
  top: 0;
  overflow: hidden;
  z-index: 0;
  background: transparent;
}

.footer-bg .camp-image-img-0004-01 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.footer {
  position: relative;
  left: auto;
  top: auto;
  margin: 25px 0 0 179px;
  padding-top: 20px;
  width: 1280px;
  box-sizing: border-box;
  background: transparent;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: black;
  z-index: 2;
}

.footer-title {
  margin: 0;
  font-size: 40px;
  font-weight: 700;
  line-height: normal;
  color: black;
  margin-left: 0;
  margin-top: 0;
}

.footer-main {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin-top: 10px;
}

.footer-contacts {
  width: 921px;
  box-sizing: border-box;
  font-size: 20px;
  line-height: 23px;
  color: black;
  margin-right: 0;
}

.footer-contacts a {
  color: black;
}

.muted {
  font-size: 20px;
  font-weight: 400;
  line-height: 23px;
}

.contact-strong {
  font-size: 20px;
  font-weight: 400;
  color: black;
  text-decoration: underline;
}

.footer-copyright {
  width: 741px;
  font-size: 14px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 22px;
  margin-top: 49px;
  margin-bottom: 32px;
  margin-left: 179px;
  color: black;
}

.footer-visual {
  width: 300px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  margin-left: (1280 - 179 - 921 - 300)px;
  background: transparent;
  mix-blend-mode: multiply;
}

.footer-image {
  display: block;
  mix-blend-mode: multiply;
  position: relative;
  top: 175px;
  left: -150px;
}

.footer-title {
  margin-left: 0;
}

.footer-main {
  margin-left: 1px;
}

/* Mobile */

@media (max-width: 1159px) {

  :root {
    --page-padding: 20px;
    --max-width: 1200px;
  }

  .hide-on-mobile {
    display: none;
  }

  .page-body {
    align-items: flex-start;
    padding: 0;
  }

  .page-layout {
    width: 100%;
    max-width: 1440px;
    padding: 0 var(--page-padding);
    box-sizing: border-box;
  }

  .header {
    margin: 28px 0 0;
    width: 100%;
    gap: 12px;
    padding: 0;
  }

  .header-logo {
    max-width: 280px;
    width: auto;
    height: auto;
  }

  .header-right {
    top: 0;
    margin-left: 12px;
  }

  .menu-wrapper {
    margin: 18px 0 0 0;
    width: 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    padding-bottom: 6px;
  }

  .menu-item {
    height: auto;
    padding: 8px 12px;
    border-radius: 18px;
  }

  .menu-items {
    display: flex;
    gap: 12px;
    align-items: right;
  }

  .top-info {
    margin: 18px 0 0;
    width: 100%;
    padding: 0;
    gap: 16px;
  }

  .ti-title {
    font-size: 28px;
    line-height: 1.1;
  }

  .ti-desc {
    width: 100%;
    font-size: 16px;
    line-height: 1.3;
  }

  .ti-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding-top: 0;
  }

  .ti-btn {
    height: 48px;
    font-size: 18px;
    min-width: 0;
    width: 100%;
    border-radius: 14px;
  }

  .ti-btn--primary,
  .ti-btn--secondary {
    min-width: 0;
  }

  .ti-btn-with-badge {
    align-self: flex-start;
    position: relative;
    width: 100%;
  }

  .ti-badge {
    top: -10px;
    right: 12px;
    font-size: 16px;
    padding: 3px 8px;
    outline-width: 3px;
  }

  .hero-title {
    font-size: 26px;
  }

  .programs-container {
    margin: 10px 0 0;
    width: 100%;
    grid-template-columns: 1fr;
    column-gap: 16px;
    row-gap: 18px;
    padding: 0;
  }

  .program-card {
    width: 100%;
    height: auto;
    padding-bottom: 18px;
    border-radius: 16px;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .card-image {
    height: 180px;
    object-fit: cover;
  }

  .ages-title {
    font-size: 26px;
  }

  .ages-container {
    margin: 10px 0;
    width: 100%;
    padding: 0;
  }

  .ages-row {
    flex-direction: column;
    gap: 16px;
  }

  .age-card {
    width: 100%;
    max-width: 720px;
    height: auto;
    padding: 20px;
    border-radius: 16px;
  }

  .age-pill {
    margin-left: 0;
    width: 120px;
    height: 40px;
  }

  .age-pill-text {
    font-size: 20px;
  }

  .age-desc {
    width: 100%;
    font-size: 16px;
    height: auto;
  }

  .camp-title {
    font-size: 26px;
  }

  .camp-container {
    margin: 10px 0 0;
    width: 100%;
    padding: 0;
  }

  .camp-cards {
    flex-direction: column;
    gap: 12px;
  }

  .card {
    width: 100%;
    height: auto;
    padding: 18px;
  }

  .camp-card-badge {
    right: 30px;
    font-size: 16px;
    outline-width: 3px;
  }

  .camp-sessions {
    grid-template-columns: 1fr;
    column-gap: 0;
    gap: 12px;
    margin-top: 16px;
  }

  .sessions-card {
    width: 100%;
    min-height: auto;
    padding: 16px;
    border-radius: 16px;
  }

  .session-frame,
  .program-frame {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .session-left {
    flex: 0 0 auto;
    width: 160px;
    min-width: 120px;
  }

  .session-date {
    font-size: 18px;
    line-height: 28px;
  }

  .session-desc {
    margin-left: 12px;
    width: calc(100% - 180px);
    font-size: 16px;
  }

  .program-icon {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
  }

  .program-text {
    width: calc(100% - 76px);
    font-size: 16px;
    margin-left: 12px;
  }

  .footer {
    margin: 10px 0 0;
    width: 100%;
    padding-top: 12px;
    max-width: 100%;
  }

  .footer-title {
    font-size: 26px;
  }

  .footer-main {
    flex-direction: column;
    gap: 12px;
  }

  .footer-contacts {
    width: 100%;
    font-size: 16px;
  }

  .footer-visual {
    display: none;
  }

  .footer-copyright {
    width: auto;
    margin: 20px;
    padding: 0;
  }

  h1,
  h2,
  h3 {
    word-break: break-word;
  }

  h1 {
    font-size: clamp(20px, 4vw, 40px);
  }

  h2 {
    font-size: clamp(18px, 3.5vw, 36px);
  }

  h3 {
    font-size: clamp(16px, 3vw, 32px);
  }

  html,
  body {
    overflow-x: hidden;
  }

  .programs-section,
  .ages-section,
  .camp-section {
    position: relative;
    top: 0;
    padding: 24px 0 0;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
  }

  .hero-bg,
  .ages-bg,
  .camp-bg,
  .footer-bg {
    display: block !important;
    left: 0;
    transform: none;
    width: 100%;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    z-index: 0;
    min-height: 0;
  }

  .hero-bg img,
  .ages-bg img,
  .camp-bg img,
  .footer-bg img {
    display: block !important;
    width: 100%;
    height: auto;
    object-fit: cover;
    max-width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 0;
  }

  .hero-image-img-0024-01,
  .hero-image-img-0015-02,
  .ti-decor-11,
  .ti-decor-19,
  .ages-image-img-0017-01,
  .ages-image-img-0025-01,
  .ages-image-img-0026-01,
  .camp-image-img-0018-01,
  .footer-image {
    display: none !important;
  }

  .hero-title,
  .hero-sub,
  .ages-title,
  .ages-text,
  .camp-title,
  .camp-text {
    position: relative;
    left: auto;
    top: auto;
    margin: 8px 0;
    width: 100%;
    max-width: 100%;
  }

  .hero-sub,
  .ages-text,
  .camp-text {
    height: auto;
  }

  .programs-section .hero-content,
  .ages-section .ages-content,
  .camp-section .camp-content,
  .footer {
    position: relative;
    z-index: 1;
    padding: 6px var(--page-padding) 8px var(--page-padding);
  }

  .programs-section [aria-hidden="true"],
  .ages-section [aria-hidden="true"],
  .camp-section [aria-hidden="true"] {
    display: none !important;
  }

  .programs-section,
  .ages-section,
  .camp-section,
  .footer-section {
    padding-top: 0;
    margin: 13px 0;
  }

}

@media (min-width: 760px) and (max-width: 1159px) {
  .programs-container {
    grid-template-columns: repeat(3, 1fr);
    column-gap: 20px;
  }

  .ages-row {
    flex-direction: row;
    gap: 16px;
  }

  .age-card {
    width: calc(50% - 8px);
  }

  .age-desc {
    height: 128px;
  }

  .camp-sessions {
    grid-template-columns: 1fr 1fr;
    column-gap: 12px;
  }
}

@media (max-width: 760px) {
  .menu-wrapper {
    margin: 18px;
    width: calc(100% - 36px);
    justify-content: space-between;
    align-items: center;
    position: relative;
  }

  .menu-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 40px;
    height: 40px;
    background: transparent;
    border: 0;
    padding: 8px;
    box-sizing: content-box;
    margin-left: auto;
  }

  .menu-items {
    display: none;
    position: absolute;
    right: 18px;
    top: calc(100% + 8px);
    background: white;
    padding: 8px;
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    flex-direction: column;
    gap: 8px;
    min-width: 160px;
    z-index: 999;
  }

  .menu-item {
    height: auto;
    padding: 8px 12px;
    border-radius: 10px;
    display: flex;
    justify-content: flex-start;
  }

  .menu-items.show {
    display: flex;
  }

  .header-phone .phone-text {
    display: none;
  }

  .header-phone .phone-icon {
    display: inline-block;
  }

  .header-phone .phone-icon img {
    display: block;
    object-fit: contain;
  }
}

@media (max-width: 480px) {
  :root {
    --page-padding: 16px;
  }

  .header-logo {
    max-width: 200px;
  }

  .header-phone .phone-icon img,
  .header-img-mx img,
  .header-img-tg img {
    width: 30px;
    height: 30px;
  }

  .ti-badge {
    right: 8px;
    top: -8px;
    font-size: 14px;
    padding: 1px 6px;
  }

  .card-image {
    height: 140px;
  }

  .session-date {
    font-size: 16px;
  }
}
