.program {
  padding-block: 20px;
}

.program__box {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 51.9cqw minmax(0, 1fr);
  align-items: start;
  column-gap: 0;
  row-gap: clamp(18px, 1.75cqw, 33px);
  --program-pad: clamp(20px, 1.95cqw, 37px);
  padding: clamp(20px, 1.49cqw, 28px) var(--program-pad) clamp(20px, 2.88cqw, 54px);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  background:
    radial-gradient(55% 60% at 88% 6%, color-mix(in srgb, var(--color-white) 22%, transparent), transparent 70%),
    radial-gradient(45% 70% at 99% 40%, color-mix(in srgb, var(--color-white) 14%, transparent), transparent 72%),
    linear-gradient(135deg, var(--color-blue-bright) 0%, var(--color-blue) 45%, var(--color-blue-deep) 100%);
}

.program__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.4cqw, 26px);
}

.program__title {
  font-size: clamp(32px, 3cqw, 56px);
  line-height: 1.05;
  color: var(--color-white);
}

.program__lead {
  font-size: clamp(14px, 1.1cqw, 21px);
  line-height: 1.45;
  color: color-mix(in srgb, var(--color-white) 78%, transparent);
}

.program__lead b {
  font-weight: 500;
  color: var(--color-white);
}

.program__list {
  margin-top: clamp(0px, 0.45cqw, 9px);
  --program-line: color-mix(in srgb, var(--color-white) 26%, transparent);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  grid-auto-rows: 1fr;
}

.program__item {
  display: flex;
  align-items: flex-start;
  gap: clamp(9px, 1cqw, 19px);
  padding: clamp(14px, 1.596cqw, 30px) clamp(12px, 1.383cqw, 26px);
  border-radius: 20px;
  background: var(--color-blue-tile);
  --program-check: clamp(26px, 2.3cqw, 43px);
  --program-fs: clamp(15px, 1.28cqw, 24px);
}

.program__check {
  flex: none;
  width: var(--program-check);
  height: var(--program-check);
  color: var(--color-light-blue);
}

.program__check path {
  stroke: var(--color-blue);
}

.program__item-text {
  font-size: var(--program-fs);
  line-height: 1.4;
  padding-top: max(0px, calc((var(--program-check) - var(--program-fs) * 1.4) / 2));
  color: color-mix(in srgb, var(--color-white) 88%, transparent);
}

.program__item-text b {
  font-weight: 600;
  color: var(--color-white);
}

.program__carousel {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1 / 3;
  margin-right: calc(-1 * var(--program-pad));
  gap: clamp(8px, 1.702cqw, 32px);
  --carousel-btn-size: clamp(40px, 3.5cqw, 66px);
}

.program__carousel .carousel__track {
  padding-inline: 0 3.7%;
  -webkit-mask-image: none;
  mask-image: none;
}

.program__slide {
  border-radius: var(--radius-card);
}

.program__shot {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-card);
}

.program__carousel .carousel__nav,
.program__carousel .carousel__dots {
  margin-left: 8.76%;
  margin-right: 15.78%;
}

.program__carousel .carousel__nav { gap: clamp(12px, 1.5cqw, 28px); }

.program__carousel .carousel__btn {
  width: var(--carousel-btn-size);
  height: var(--carousel-btn-size);
}

.program__carousel .carousel__counter {
  font-size: clamp(15px, 1.15cqw, 22px);
}

.program__carousel .carousel__dots { gap: clamp(7px, 0.48cqw, 9px); }

@media (min-width: 1025px) {
  .program__carousel { margin-top: -1.18cqw; }
}

.program__carousel .carousel__dot {
  width: clamp(9px, 0.58cqw, 11px);
  height: clamp(9px, 0.58cqw, 11px);
  background: color-mix(in srgb, var(--color-white) 62%, transparent);
}

.program__carousel .carousel__dot.is-active { background: var(--color-pink); }

.program__note {
  grid-column: 1 / -1;
  grid-row: 2;
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.45cqw, 27px);
  padding-top: clamp(14px, 1.55cqw, 29px);
  border-top: 1px solid var(--program-line, color-mix(in srgb, var(--color-white) 26%, transparent));
}

.program__note-icon {
  flex: none;
  width: clamp(20px, 1.55cqw, 29px);
  height: clamp(25px, 1.94cqw, 36px);
  color: color-mix(in srgb, var(--color-white) 88%, transparent);
}

.program__note-text {
  font-size: clamp(14px, 1.1cqw, 21px);
  line-height: 1.4;
  color: color-mix(in srgb, var(--color-white) 82%, transparent);
}

.program__note-text b {
  font-weight: 600;
  color: var(--color-white);
}

@media (max-width: 1024px) {
  .program__box { grid-template-columns: minmax(0, 1fr); padding-bottom: var(--program-pad); }

  .program__list { --program-line: color-mix(in srgb, var(--color-white) 26%, transparent); }

  .program__note { grid-row: auto; }

  .program__carousel {
    grid-column: auto;
    grid-row: auto;
    margin-top: 0;
    margin-right: 0;
    --carousel-peek: 13%;
  }

  .program__carousel .carousel__track {
    padding-inline: var(--carousel-peek);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--carousel-peek), #000 calc(100% - var(--carousel-peek)), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 var(--carousel-peek), #000 calc(100% - var(--carousel-peek)), transparent 100%);
  }

  .program__carousel .carousel__nav,
  .program__carousel .carousel__dots {
    margin-inline: 0;
  }
}

@media (max-width: 767px) {
  .program__box { row-gap: 20px; }

  .program__list { grid-template-columns: minmax(0, 1fr); }

  .program__list { gap: 10px; }

  .program__item { padding: 14px 16px; }

  .program__note { align-items: flex-start; }
}
