/* Page level color scheme
--------------------------------------- */

body.page-level {
  --level-bg-dark: var(--bg-deep-700);
  --level-bg-light: var(--bg-cream-100);
}

/* iPrimary */

body.page-level__primary {
  --level-text: #f08b61;
  --level-bg: var(--bg-orange-500);
  --level-bg-medium: #f08b61;
  --level-bg-soft: #f6b49a;
}

/* iLowerSecondary */

body.page-level__lower {
  --level-text: #ffc35c;
  --level-bg: var(--bg-yellow-500);
  --level-bg-medium: #ffc35c;
  --level-bg-soft: #ffdaa0;
}

/* International GCSE */

body.page-level__igcse {
  --level-text: #c0c890;
  --level-bg: var(--bg-olive-500);
  --level-bg-medium: #c0c890;
  --level-bg-soft: #d8ddb7;
}

/* International Advanced Level */

body.page-level__advanced {
  --level-text: #c2b1dc;
  --level-bg: var(--bg-purple-500);
  --level-bg-medium: #c2b1dc;
  --level-bg-soft: #ddd0ef;
}

/* Color scheme usage */

.level-bg-dark {
  background-color: var(--level-bg-dark);
}
.level-bg-light {
  background-color: var(--level-bg-light);
}
.level-bg {
  background-color: var(--level-bg);
}
.level-bg-medium {
  background-color: var(--level-bg-medium);
}
.level-bg-soft {
  background-color: var(--level-bg-soft);
}
.level-text {
  color: var(--level-text);
}

/* Content ............................................................... */

/* PL-Hero */

.pl-hero-section {
  overflow: hidden;
}
.pl-hero-section__container {
  position: relative;
  z-index: 2;
  padding-block: clamp(2.045rem, calc(1.636rem + 2.812vw), 4.091rem);
  padding-inline: var(--section-px);
}
.pl-hero-section__row {
  row-gap: 1.5rem;
}
.pl-hero-section__content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pl-hero-section__title h1 {
  --pl-hero-section-fs: clamp(1.364rem, calc(1.055rem + 2.125vw), 2.909rem);
  margin-block: 0;
  color: var(--text-white);
  font-family: var(--ff-heading);
  font-size: var(--pl-hero-section-fs);
  font-weight: var(--fw-reg);
  line-height: 1.04;
}
.pl-hero-section__title h1 strong {
  display: inline-block;
  color: var(--level-text);
  font-size: calc(var(--pl-hero-section-fs) * 1.5);
  font-weight: var(--fw-sb);
}
.pl-hero-section__body {
  max-inline-size: 55ch;
  margin-block-start: clamp(1.591rem, calc(0.955rem + 2.75vw), 4.091rem);
}
.pl-hero-section__paragraph p {
  margin-block: 0;
  line-height: 1.35;
}
.pl-hero-section__cta {
  display: flex;
  justify-content: flex-start;
  margin-block-start: clamp(1.136rem, calc(0.909rem + 1.25vw), 2.273rem);
}
.pl-hero-section__media-col {
  min-block-size: clamp(13.636rem, calc(11.364rem + 6.25vw), 20rem);
}
.pl-hero-section__media {
  position: absolute;
  inset-inline: 0;
  inset-block: 0;
  z-index: 2;
  inline-size: 100%;
  block-size: 100%;
}
.pl-hero-section__media picture,
.pl-hero-section__img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-hero-section__img {
  object-fit: cover;
  object-position: center;
}
.pl-hero-section__decor-dots {
  inset-block-start: clamp(0.455rem, calc(0.091rem + 2.5vw), 2.273rem);
  inset-inline-end: clamp(0rem, calc(-0.455rem + 2.5vw), 1.818rem);
  z-index: 1;
}
.pl-hero-section__decor-wave {
  inset-inline-end: 0;
  inset-block-start: 50%;
  z-index: 1;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
}

/* PL-Foundations */

.pl-foundations-section {
  overflow: hidden;
}
.pl-foundations-section__row {
  row-gap: 2rem;
}
.pl-foundations-section__media {
  position: relative;
  z-index: 1;
}
.pl-foundations-section__content {
  position: relative;
  z-index: 2;
  padding-block: clamp(1.193rem, calc(0.989rem + 1.406vw), 2.216rem);
  padding-inline-start: clamp(1.061rem, calc(0.576rem + 3.333vw), 3.485rem);
}
.pl-foundations-section__paragraph {
  max-inline-size: 62ch;
  margin-block-start: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
}
.pl-foundations-section__paragraph p {
  margin-block: 0;
}
.pl-foundations-section__points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, calc(0.773rem + 1.563vw), 2.136rem);
  margin-block-start: clamp(1.364rem, calc(1.136rem + 1.563vw), 2.5rem);
}
.pl-foundations-section__point {
  position: relative;
  padding-inline-start: clamp(1rem, calc(0.864rem + 0.938vw), 1.682rem);
}
.pl-foundations-section__point::before {
  content: "";
  position: absolute;
  inset-block-start: 0.35em;
  inset-inline-start: 0;
  inline-size: min(0.682rem, 15px);
  block-size: min(0.682rem, 15px);
  border-radius: 50%;
  background-color: var(--level-bg);
}
.pl-foundations-section__point__medium::before {
  background-color: var(--level-bg-medium);
}
.pl-foundations-section__point__soft::before {
  background-color: var(--level-bg-soft);
}
.pl-foundations-section__point-title h3 {
  margin-block: 0;
  font-family: var(--ff-body-md);
  font-size: 1rem;
  font-weight: var(--fw-reg);
  line-height: 1.6;
}
.pl-foundations-section__point-paragraph p {
  margin-block: 0;
  line-height: 1.5;
}
.pl-foundations-section__cta {
  display: flex;
  justify-content: flex-end;
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}

/* PL-Calendar */

.pl-calendar-section {
  overflow: hidden;
  padding-block-end: clamp(8.182rem, calc(7.273rem + 6.25vw), 12.727rem);
}
.pl-calendar-section__row {
  position: relative;
  z-index: 2;
}
.pl-calendar-section__side {
  display: flex;
  flex-direction: column;
  block-size: 100%;
  min-block-size: clamp(17.273rem, calc(13.636rem + 10vw), 27.273rem);
}
.pl-calendar-section__side__left {
  padding-block: clamp(1.818rem, calc(1.455rem + 2.5vw), 3.636rem);
  padding-inline-start: clamp(1.818rem, calc(1.455rem + 2.5vw), 3.636rem);
  padding-inline-end: clamp(2.727rem, calc(1.705rem + 5.625vw), 7.841rem);
  border-radius: var(--radius);
}
.pl-calendar-section__side__right {
  padding-block: clamp(1.818rem, calc(1.455rem + 2.5vw), 3.636rem);
  padding-inline-start: clamp(2.727rem, calc(1.705rem + 5.625vw), 5.795rem);
  padding-inline-end: clamp(1.364rem, calc(1.023rem + 1.875vw), 2.727rem);
  border-radius: var(--radius);
}
.pl-calendar-section__actions {
  display: flex;
  flex-direction: column;
  gap: clamp(0.909rem, calc(0.727rem + 1.25vw), 1.818rem);
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
a.pl-calendar-section__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-block-size: clamp(3.636rem, calc(3.136rem + 3.438vw), 5rem);
  padding-block: 0.909rem;
  padding-inline: clamp(1.364rem, calc(0.909rem + 3.125vw), 3.636rem);
  border-block-end: 0;
  border-radius: 999rem;
  color: var(--text-white);
  background-color: var(--level-bg-dark);
  font-family: var(--ff-heading);
  font-size: clamp(1.091rem, calc(0.982rem + 0.75vw), 1.636rem);
  line-height: 1.15;
  text-align: center;
  transition:
    color 220ms ease,
    background-color 220ms ease,
    -webkit-transform 300ms ease,
    transform 300ms ease;
}
a.pl-calendar-section__link:hover {
  color: var(--text-primary);
  background-color: var(--bg-white);
  -webkit-transform: translateY(-0.182rem);
  transform: translateY(-0.182rem);
}
a.pl-calendar-section__link:focus-visible {
  outline: 0.091rem dashed var(--bg-white);
  outline-offset: 0.227rem;
}
.pl-calendar-section__note {
  display: flex;
  align-items: center;
  min-block-size: clamp(3.636rem, calc(3.136rem + 3.438vw), 5rem);
  max-inline-size: 18rem;
  padding-block: 0.909rem;
  padding-inline: clamp(1.136rem, calc(0.864rem + 1.875vw), 2.5rem);
  border-radius: 999rem;
}
.pl-calendar-section__note p {
  margin-block: 0;
  font-size: 1rem;
  line-height: 1.35;
}
.pl-calendar-section__paragraph {
  max-inline-size: 28ch;
}
.pl-calendar-section__paragraph p {
  margin-block: 0;
  font-size: clamp(0.909rem, calc(0.873rem + 0.25vw), 1.091rem);
  line-height: 1.35;
}
.pl-calendar-section__clip {
  position: absolute;
  inset-inline-start: calc(66.666% + 0.5rem);
  inset-block-start: clamp(2.727rem, calc(2.455rem + 1.875vw), 4.091rem);
  z-index: 4;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  inline-size: min(clamp(5.455rem, calc(4.545rem + 5vw), 8.636rem), 190px);
  aspect-ratio: 1 / 1.684;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  pointer-events: none;
}
.pl-calendar-section__clip div {
  inline-size: 100%;
  block-size: clamp(0.8rem, calc(0.6rem + 1.375vw), 1.8rem);
  border-radius: 999rem;
  background-color: var(--bg-white);
  box-shadow: 0 0 2.455rem rgba(0, 0, 0, 0.2);
}
.pl-calendar-section__decor-wave {
  inset-inline-end: 0;
  inset-block-end: clamp(1.364rem, calc(1rem + 2.5vw), 3.182rem);
  z-index: 3;
  -webkit-transform: translateX(18%);
  transform: translateX(18%);
}
@media screen and (min-width: 1200px) {
  .pl-calendar-section__actions {
    flex-direction: row;
    align-items: stretch;
  }
  a.pl-calendar-section__link,
  .pl-calendar-section__note {
    flex: 0 1 50%;
  }
}

/* PL-Growth */

.pl-growth-section {
  overflow: hidden;
}
.pl-growth-section__row {
  row-gap: 2rem;
}
.pl-growth-section__content {
  max-inline-size: 31rem;
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
  padding-inline-end: clamp(2.273rem, calc(0.909rem + 6.875vw), 7.727rem);
}
.pl-growth-section__paragraph {
  max-inline-size: 42ch;
  margin-block-start: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
}
.pl-growth-section__paragraph p {
  margin-block: 0;
  line-height: 1.65;
}
.pl-growth-section__cta {
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-growth-section__media {
  z-index: 1;
}
.pl-growth-section__list-wrap {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0;
  z-index: 2;
  inline-size: min(20rem, 62%);
  -webkit-transform: translate(-42%, -50%);
  transform: translate(-42%, -50%);
}
.pl-growth-section__list {
  position: relative;
  z-index: 2;
  margin: 0;
  padding-block: clamp(1.364rem, calc(1.136rem + 1.563vw), 2.5rem);
  padding-inline: clamp(1.364rem, calc(1.136rem + 1.563vw), 2.5rem);
}
.pl-growth-section__list li {
  position: relative;
  padding-inline-start: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
  font-family: var(--ff-heading);
  font-size: clamp(1rem, calc(0.982rem + 0.125vw), 1.091rem);
  line-height: 1.18;
}
.pl-growth-section__list li:not(:last-child) {
  margin-block-end: clamp(0.909rem, calc(0.773rem + 0.938vw), 1.591rem);
}
.pl-growth-section__list li::before {
  content: "";
  position: absolute;
  inset-block-start: 0.34em;
  inset-inline-start: 0;
  inline-size: 0.545rem;
  block-size: 0.545rem;
  border-radius: 50%;
  background-color: var(--level-bg-dark);
}
.pl-growth-section__decor-dots {
  inset-inline-start: 0;
  inset-block-end: 0;
  z-index: 1;
  -webkit-transform: translate(-80%, 80%);
  transform: translate(-80%, 80%);
}

/* PL-Curriculum */

.pl-curriculum-section {
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-curriculum-section__row {
  row-gap: 2rem;
}
.pl-curriculum-section__nav {
  padding-block: clamp(1.818rem, calc(1.455rem + 1.25vw), 3.182rem);
}
.pl-curriculum-section__side-title {
  margin-block-end: clamp(1.364rem, calc(1.136rem + 1.563vw), 2.5rem);
}
.pl-curriculum-section__tabs {
  gap: 0.65rem;
  row-gap: 0.65rem;
  column-gap: 1.25rem;
}
.pl-curriculum-section__tabs .nav-item {
  margin: 0;
}
.pl-curriculum-section__tab-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--text-primary);
  background-color: transparent;
  font-family: var(--ff-body-sb);
  font-size: 1rem;
  line-height: 1.35;
  transition: color 200ms ease;
}
.pl-curriculum-section__tab-link:hover,
.pl-curriculum-section__tab-link.active {
  color: var(--level-bg);
}
.pl-curriculum-section__tab-link:focus-visible {
  outline: 0.091rem dashed var(--level-bg);
  outline-offset: 0.227rem;
}
.pl-curriculum-section__tab-link::after {
  content: "";
  inline-size: clamp(1.364rem, calc(1.136rem + 1.563vw), 2.5rem);
  block-size: 0.045rem;
  margin-inline-start: 1rem;
  background-color: currentColor;
  opacity: 0;
  -webkit-transform: scaleX(0.55);
  transform: scaleX(0.55);
  -webkit-transform-origin: left center;
  transform-origin: left center;
  transition:
    opacity 220ms ease,
    -webkit-transform 220ms ease,
    transform 220ms ease;
}
.pl-curriculum-section__tab-link.active::after,
.pl-curriculum-section__tab-link:hover::after {
  opacity: 1;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}
.pl-curriculum-panel {
  color: var(--text-white);
  background-color: var(--level-bg);
}
.pl-curriculum-panel__content {
  padding-block: clamp(2.045rem, calc(1.591rem + 2.5vw), 4.545rem);
  padding-inline: clamp(1.591rem, calc(1.136rem + 2.5vw), 3.636rem);
}
.pl-curriculum-panel__count {
  margin-block-end: clamp(2.273rem, calc(1.591rem + 4.688vw), 5.682rem);
  line-height: 1;
}
.pl-curriculum-panel__count-main {
  font-family: var(--ff-heading);
  font-size: clamp(1.818rem, calc(1.455rem + 2.5vw), 3.636rem);
  font-weight: var(--fw-reg);
}
.pl-curriculum-panel__count-muted {
  margin-inline-start: 0.25rem;
  color: color-mix(in srgb, var(--text-white) 50%, transparent);
  font-family: var(--ff-heading);
  font-size: clamp(1rem, calc(0.864rem + 0.938vw), 1.682rem);
}
.pl-curriculum-panel__title h3 {
  margin-block: 0;
  font-family: var(--ff-heading);
  font-size: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
  font-weight: var(--fw-bd);
  line-height: 1.08;
}
.pl-curriculum-panel__paragraph {
  max-inline-size: 25ch;
  margin-block-start: clamp(1rem, calc(0.864rem + 0.938vw), 1.682rem);
}
.pl-curriculum-panel__paragraph p {
  margin-block: 0;
  line-height: 1.45;
}
.pl-curriculum-panel__list ul {
  margin-block-start: clamp(1rem, calc(0.864rem + 0.938vw), 1.682rem);
  padding-inline-start: 1rem;
  list-style-type: disc;
}
.pl-curriculum-panel__list ul li {
  line-height: 1.35;
}
.pl-curriculum-panel__media {
  block-size: 100%;
}

/* PL-Principles */

.pl-principles-section__row {
  row-gap: 2rem;
}
.pl-principles-section__content {
  --pl-principles-pad: clamp(2.045rem, calc(1.591rem + 2.5vw), 4.545rem);
  padding-inline-start: var(--pl-principles-pad);
  padding-block-end: clamp(1.818rem, calc(1.455rem + 1.25vw), 3.182rem);
}
.pl-principles-section__intro {
  max-inline-size: 19rem;
  margin-inline-start: auto;
  text-align: left;
}
.pl-principles-section__intro-paragraph p {
  margin-block: 0;
  line-height: 1.55;
}
.pl-principles-section__title {
  margin-block-start: clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
  margin-block-end: clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
}
.pl-principles-section__accordion {
  max-inline-size: 48rem;
}
.pl-principles-section__items .card {
  position: relative;
  background-color: transparent;
  border: 0;
}
.pl-principles-section__items .card::after {
  position: absolute;
  inset-block-end: 1px;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 1px;
  content: "";
  background-color: color-mix(in srgb, var(--text-primary) 70%, transparent);
}
.pl-principles-section__items .card-header {
  background-color: transparent;
  padding: 0;
  border-block-end: 0 !important;
}
.pl-principles-section__question {
  margin: 0;
}
.pl-principles-section__items .card-header .btn-link {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  inline-size: 100%;
  padding-block: clamp(0.364rem, calc(0.309rem + 0.375vw), 0.636rem);
  padding-inline: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--text-primary);
  font-family: var(--ff-body-sb);
  font-size: clamp(0.864rem, calc(0.836rem + 0.188vw), 1rem);
  line-height: 1.35;
  text-decoration: none;
  transition: color 200ms ease;
}
.pl-principles-section__items .card-header .btn-link span {
  padding-inline-end: 1rem;
}
.pl-principles-section__items .card-header .btn-link i {
  --pl-principles-icon-size: clamp(
    1.136rem,
    calc(0.909rem + 0.625vw),
    1.591rem
  );
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 auto;
  inline-size: var(--pl-principles-icon-size);
  block-size: var(--pl-principles-icon-size);
  border-radius: 999rem;
  color: var(--text-primary);
  background-color: var(--level-bg-soft);
  font-size: 1rem;
  transition:
    background-color 220ms ease,
    -webkit-transform 300ms ease,
    transform 300ms ease;
}
.pl-principles-section__items .card-header .btn-link:hover {
  color: var(--level-bg);
}
.pl-principles-section__items .card-header .btn-link:focus-visible {
  outline: 0.091rem dashed var(--level-bg);
  outline-offset: 0.227rem;
}
.pl-principles-section__items .card-header .btn-link[aria-expanded="true"] i {
  color: var(--text-white);
  background-color: var(--level-bg-medium);
  -webkit-transform: scaleY(-1);
  transform: scaleY(-1);
}
.pl-principles-section__items .card-body {
  background-color: transparent;
  padding-block: 0.909rem;
  padding-inline: 0;
  line-height: 1.65;
  text-wrap: pretty;
  text-align: left;
}
.pl-principles-section__media {
  position: relative;
  z-index: 1;
}

/* PL-Context */

.pl-context-section__row {
  row-gap: 2.5rem;
}
.pl-context-section__content {
  max-inline-size: 31rem;
}
.pl-context-section__paragraph {
  max-inline-size: 40ch;
  margin-block-start: clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
}
.pl-context-section__paragraph p {
  margin-block: 0;
  line-height: 1.65;
}
.pl-context-section__cta {
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-context-section__list {
  display: grid;
  gap: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
}
.pl-context-section__item {
  display: flex;
  align-items: center;
  gap: clamp(1.273rem, calc(1.164rem + 0.75vw), 1.818rem);
}
.pl-context-section__icon {
  flex: 0 0 auto;
  inline-size: clamp(3.636rem, calc(3.136rem + 3.438vw), 5rem);
  block-size: clamp(3.636rem, calc(3.136rem + 3.438vw), 5rem);
  border-radius: var(--radius-xs);
  overflow: hidden;
}
.pl-context-section__icon img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-context-section__label h3 {
  margin-block: 0;
  font-family: var(--ff-heading);
  font-size: clamp(1.091rem, calc(0.945rem + 1vw), 1.818rem);
  font-weight: var(--fw-sb);
  line-height: 1.18;
}

/* PL-Gallery */

.pl-gallery-section {
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-gallery-section__header {
  row-gap: 1.5rem;
  margin-block-end: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-gallery-section__paragraph {
  max-inline-size: 24ch;
}
.pl-gallery-section__paragraph p {
  margin-block: 0;
  line-height: 1.45;
}
.pl-gallery-section__grid {
  --pl-gallery-gap: clamp(0.364rem, calc(0.327rem + 0.25vw), 0.545rem);
  --pl-gallery-big: clamp(9.091rem, calc(5.909rem + 11.042vw), 18.182rem);
  --pl-gallery-medium: clamp(7.273rem, calc(4.727rem + 8.837vw), 14.545rem);
  --pl-gallery-small: clamp(5.455rem, calc(3.545rem + 6.628vw), 10.909rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--pl-gallery-gap);
}
.pl-gallery-section__row {
  display: flex;
  justify-content: center;
  inline-size: 100%;
  gap: var(--pl-gallery-gap);
}
.pl-gallery-section__row__top {
  align-items: flex-end;
}
.pl-gallery-section__row__bottom {
  align-items: flex-start;
}
a.pl-gallery-section__link {
  position: relative;
  display: block;
  overflow: hidden;
  border-block-end: 0;
  border-radius: var(--radius-xs);
  aspect-ratio: 1 / 1;
  inline-size: var(--_pl-gallery-size, var(--pl-gallery-big));
}
.pl-gallery-section__item__big {
  --_pl-gallery-size: var(--pl-gallery-big);
}
.pl-gallery-section__item__medium {
  --_pl-gallery-size: var(--pl-gallery-medium);
}
.pl-gallery-section__item__small {
  --_pl-gallery-size: var(--pl-gallery-small);
}
.pl-gallery-section__media,
.pl-gallery-section__media img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-gallery-section__media img {
  object-fit: cover;
  filter: brightness(100%);
  -webkit-transform: scale(1);
  transform: scale(1);
  transition:
    filter 320ms cubic-bezier(0.2, 0.7, 0.2, 1),
    -webkit-transform 520ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}
a.pl-gallery-section__link:is(:hover, :focus-visible)
  .pl-gallery-section__media
  img {
  filter: brightness(85%);
  -webkit-transform: scale(1.045);
  transform: scale(1.045);
}
a.pl-gallery-section__link:focus-visible {
  outline: 0.125rem dashed var(--level-bg);
  outline-offset: 0.35rem;
}

/* PL-Contact */

.pl-contact-section {
  overflow: hidden;
}
.pl-contact-section__inner {
  display: grid;
  grid-template-columns: minmax(12rem, 17ch) minmax(26rem, 34rem) minmax(
      18rem,
      1fr
    );
  column-gap: clamp(2.273rem, calc(1.364rem + 2.5vw), 4.545rem);
  align-items: start;
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-contact-section__intro {
  grid-column: 1;
  max-inline-size: 17ch;
  padding-block-end: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
  font-family: var(--ff-heading);
  font-size: clamp(1.091rem, calc(1.036rem + 0.375vw), 1.364rem);
  font-weight: var(--fw-reg);
}
.pl-contact-section__intro p {
  margin-block: 0;
  line-height: 1.25;
}
.pl-contact-section__badge-group {
  --pl-contact-badge-py: clamp(0.545rem, calc(0.455rem + 0.625vw), 1rem);
  --pl-contact-badge-px: clamp(1.818rem, calc(1.364rem + 3.125vw), 4.091rem);
  --pl-contact-badge-fs: clamp(1.364rem, calc(1.273rem + 0.625vw), 1.818rem);
  grid-column: 2;
  z-index: 2;
  max-inline-size: none;
  margin-inline: 0;
  padding-block-end: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-contact-section__badge {
  position: relative;
  z-index: 2;
  display: table;
  margin-inline: auto;
  padding-block: var(--pl-contact-badge-py);
  padding-inline: var(--pl-contact-badge-px);
  border-radius: 999rem;
  color: var(--text-white);
  background-color: var(--level-bg);
  font-family: var(--ff-heading);
  font-size: var(--pl-contact-badge-fs);
  font-weight: var(--fw-bd);
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
}
.pl-contact-section__badge__top {
  -webkit-transform: rotate(3deg);
  transform: rotate(3deg);
}
.pl-contact-section__badge__middle {
  --pl-contact-badge-py: clamp(0.682rem, calc(0.545rem + 0.938vw), 1.364rem);
  margin-block-start: -0.364rem;
  background-color: var(--level-bg-dark);
  -webkit-transform: translateX(32%) rotate(-6deg);
  transform: translateX(32%) rotate(-6deg);
}
.pl-contact-section__badge__bottom {
  margin-block-start: -0.409rem;
  -webkit-transform: translateX(-8%) rotate(4deg);
  transform: translateX(-8%) rotate(4deg);
}
.pl-contact-section__decor-arc {
  inset-inline-start: 0;
  inset-block-end: clamp(0.455rem, calc(0.091rem + 2.5vw), 2.273rem);
  z-index: 1;
  -webkit-transform: translate(-75%, calc(78% - 30px)) scaleX(-1);
  transform: translate(-75%, calc(78% - 30px)) scaleX(-1);
}
.pl-contact-section__link-wrap {
  grid-column: 1 / 4;
  position: relative;
  z-index: 1;
  inline-size: 100%;
  padding-inline-end: clamp(9rem, 17vw, 18rem);
}
a.pl-contact-section__link {
  display: block;
  padding-block: clamp(1.136rem, calc(0.955rem + 1.25vw), 2.045rem);
  padding-inline: 1rem;
  border-block-end: 0;
  border-radius: 999rem;
  color: var(--text-white);
  background-color: var(--level-bg);
  font-family: var(--ff-heading);
  font-size: clamp(1.545rem, calc(1.418rem + 0.875vw), 2.182rem);
  font-weight: var(--fw-reg);
  line-height: 1.1;
  text-align: center;
  transition:
    color 220ms ease,
    background-color 220ms ease,
    -webkit-transform 300ms ease,
    transform 300ms ease;
}
a.pl-contact-section__link:hover {
  color: var(--text-white);
  background-color: var(--level-bg-dark);
  -webkit-transform: translateY(-0.182rem);
  transform: translateY(-0.182rem);
}
a.pl-contact-section__link:focus-visible {
  outline: 0.091rem dashed var(--level-bg-dark);
  outline-offset: 0.227rem;
}
.pl-contact-section__media {
  position: absolute;
  inset-inline-end: 0;
  inset-block-end: 0;
  z-index: 2;
  inline-size: min(38rem, 42vw);
  block-size: 100%;
  pointer-events: none;
}
.pl-contact-section__media picture,
.pl-contact-section__img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-contact-section__img {
  object-fit: contain;
  object-position: right bottom;
}

/* PL-Timeline */

.pl-timeline {
  overflow: hidden;
}
.pl-timeline__header {
  row-gap: 1.5rem;
  margin-block-end: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-timeline__paragraph {
  max-inline-size: 57ch;
  margin-inline-start: auto;
}
.pl-timeline__paragraph p {
  margin-block: 0;
  line-height: 1.55;
}
.pl-timeline__wrapper {
  padding-inline-start: calc((100% / 2) - 32.727rem);
  padding-inline-end: 0;
}
.pl-timeline__section {
  position: relative;
}
.pl-timeline__nav {
  margin-block-end: clamp(2.273rem, calc(1.818rem + 3.125vw), 4.545rem);
  border-block-start: 0.045rem solid
    color-mix(in srgb, var(--text-primary) 55%, transparent);
}
.pl-timeline__steps {
  display: flex;
  justify-content: flex-start;
  gap: clamp(1.364rem, calc(0.818rem + 3.75vw), 4.091rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pl-timeline__step {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
}
.pl-timeline__step button {
  position: relative;
  display: inline-flex;
  padding-block: clamp(1.091rem, calc(0.927rem + 1.125vw), 1.909rem) 0;
  padding-inline: 0;
  border: 0;
  color: var(--text-primary);
  background-color: transparent;
  font-family: var(--ff-body-sb);
  font-size: 1rem;
  line-height: 1.2;
  cursor: pointer;
  transition: color 220ms ease;
}
.pl-timeline__step-number {
  display: none;
}
.pl-timeline__step button::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: -0.227rem;
  inline-size: 100%;
  block-size: 0.045rem;
  background-color: currentColor;
  opacity: 0;
  -webkit-transform: scaleX(0.65);
  transform: scaleX(0.65);
  -webkit-transform-origin: left center;
  transform-origin: left center;
  transition:
    opacity 220ms ease,
    -webkit-transform 220ms ease,
    transform 220ms ease;
}
.pl-timeline__step.active button,
.pl-timeline__step button:hover {
  color: var(--level-bg);
}
.pl-timeline__step.active button::after,
.pl-timeline__step button:hover::after {
  opacity: 1;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}
.pl-timeline__step button:focus-visible {
  outline: 0.091rem dashed var(--level-bg);
  outline-offset: 0.227rem;
}
.pl-timeline__dot {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 50%;
  inline-size: 0.682rem;
  block-size: 0.682rem;
  border-radius: 50%;
  background-color: var(--level-bg-soft);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  transition:
    background-color 220ms ease,
    -webkit-transform 220ms ease,
    transform 220ms ease;
}
.pl-timeline__step.active .pl-timeline__dot,
.pl-timeline__step button:hover .pl-timeline__dot {
  background-color: var(--level-bg);
  -webkit-transform: translate(-50%, -50%) scale(1.12);
  transform: translate(-50%, -50%) scale(1.12);
}
.pl-timeline__carousel {
  overflow: hidden;
}
.pl-timeline__item-content {
  display: flex;
  align-items: flex-start;
  gap: clamp(1.136rem, calc(0.909rem + 1.563vw), 2.273rem);
  padding-inline-end: clamp(1.364rem, calc(0.909rem + 3.125vw), 3.636rem);
}
.pl-timeline__item-media {
  flex: 0 0 clamp(7.273rem, calc(5.909rem + 4.688vw), 11.818rem);
  inline-size: clamp(7.273rem, calc(5.909rem + 4.688vw), 11.818rem);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
}
.pl-timeline__item-media,
.pl-timeline__item-image {
  display: block;
}
.pl-timeline__item-image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.pl-timeline__time p {
  margin-block: 0 0.318rem;
  font-family: var(--ff-body-sb);
  font-size: 1rem;
  line-height: 1.2;
}
.pl-timeline__title h3 {
  margin-block: 0;
  font-family: var(--ff-body-md);
  font-size: clamp(1.091rem, calc(1.018rem + 0.5vw), 1.455rem);
  line-height: 1.14;
}
.pl-timeline__copy {
  max-inline-size: 31ch;
  margin-block-start: 0.318rem;
}
.pl-timeline__copy p {
  margin-block: 0;
  line-height: 1.5;
}
.pl-timeline__cta {
  padding-inline-end: var(--section-px);
  margin-block-start: clamp(2.273rem, calc(1.818rem + 3.125vw), 4.545rem);
}

/* PL-Reviews */

.pl-reviews-section__carousel .owl-stage {
  display: flex;
}
.pl-reviews-section__carousel .owl-item {
  display: flex;
  flex: 1 0 auto;
}
.pl-reviews-section__carousel .owl-item .item {
  display: flex;
  inline-size: 100%;
}
.pl-reviews-section__card {
  --pl-review-offset: clamp(0.682rem, calc(0.545rem + 0.938vw), 1.364rem);
  --pl-review-main: var(--bg-orange-500);
  --pl-review-soft: color-mix(
    in srgb,
    var(--pl-review-main) 10%,
    var(--bg-white)
  );
  --pl-review-border: var(--pl-review-main);
  display: flex;
  flex-direction: column;
  inline-size: 100%;
  block-size: 100%;
}
.pl-reviews-section__card__orange {
  --pl-review-main: var(--bg-orange-500);
  --pl-review-soft: color-mix(
    in srgb,
    var(--bg-orange-500) 10%,
    var(--bg-white)
  );
  --pl-review-border: var(--bg-orange-500);
}
.pl-reviews-section__card__olive {
  --pl-review-main: var(--bg-olive-500);
  --pl-review-soft: color-mix(
    in srgb,
    var(--bg-olive-500) 12%,
    var(--bg-white)
  );
  --pl-review-border: var(--bg-olive-500);
}
.pl-reviews-section__card__purple {
  --pl-review-main: var(--bg-purple-500);
  --pl-review-soft: color-mix(
    in srgb,
    var(--bg-purple-500) 12%,
    var(--bg-white)
  );
  --pl-review-border: var(--bg-purple-500);
}
.pl-reviews-section__card__orange-light {
  --pl-review-main: var(--bg-orange-400);
  --pl-review-soft: color-mix(
    in srgb,
    var(--bg-orange-400) 12%,
    var(--bg-white)
  );
  --pl-review-border: var(--bg-orange-400);
}
.pl-reviews-section__quote-wrap {
  position: relative;
  flex: 1 1 auto;
  min-block-size: clamp(14.091rem, calc(11.818rem + 7.812vw), 21.818rem);
  margin-block-end: clamp(1.364rem, calc(1rem + 2.5vw), 3.182rem);
}
.pl-reviews-section__quote-bg,
.pl-reviews-section__quote-border,
.pl-reviews-section__quote-content {
  position: absolute;
  inline-size: calc(100% - var(--pl-review-offset));
  block-size: calc(100% - var(--pl-review-offset));
  border-radius: var(--radius-xs);
}
.pl-reviews-section__quote-bg {
  inset-inline-start: 0;
  inset-block-start: var(--pl-review-offset);
  background-color: var(--pl-review-soft);
}
.pl-reviews-section__quote-bg::after {
  content: "";
  position: absolute;
  inset-inline-start: clamp(0.682rem, calc(0.5rem + 1.25vw), 1.591rem);
  inset-block-end: -1.318rem;
  inline-size: 0;
  block-size: 0;
  border-inline-start: 0.989rem solid transparent;
  border-inline-end: 0.989rem solid transparent;
  border-block-start: 1.364rem solid var(--pl-review-soft);
}
.pl-reviews-section__quote-border {
  inset-inline-start: var(--pl-review-offset);
  inset-block-start: 0;
  border-radius: 0;
  border: 0.136rem solid var(--pl-review-border);
}
.pl-reviews-section__quote-content {
  inset-inline-start: 0;
  inset-block-start: var(--pl-review-offset);
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-block: clamp(1.091rem, calc(0.873rem + 1.5vw), 2.182rem)
    clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
  padding-inline: clamp(1.545rem, calc(1.182rem + 2.5vw), 3.364rem);
}
.pl-reviews-section__quote-mark {
  block-size: 0.55em;
  color: var(--level-bg-dark);
  font-family: var(--ff-heading);
  font-size: clamp(2.273rem, calc(1.818rem + 3.125vw), 4.545rem);
  font-weight: var(--fw-sb);
  line-height: 1;
}
.pl-reviews-section__quote-text p {
  margin-block: 0;
  font-family: var(--ff-heading);
  font-size: clamp(0.909rem, calc(0.873rem + 0.25vw), 1.09rem);
  line-height: 1.16;
}
.pl-reviews-section__author {
  display: flex;
  align-items: center;
  gap: clamp(0.818rem, calc(0.782rem + 0.25vw), 1rem);
  margin-block-start: auto;
}
.pl-reviews-section__author-media {
  flex: 0 0 auto;
  inline-size: min(clamp(3.636rem, calc(3.273rem + 2.5vw), 5.455rem), 120px);
  block-size: min(clamp(3.636rem, calc(3.273rem + 2.5vw), 5.455rem), 120px);
  border-radius: 50%;
  overflow: hidden;
}
.pl-reviews-section__author-media picture,
.pl-reviews-section__author-media img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-reviews-section__author-media img {
  object-fit: cover;
}
.pl-reviews-section__author-name h3 {
  margin-block: 0;
  font-family: var(--ff-body-md);
  font-size: clamp(1.091rem, calc(1.036rem + 0.375vw), 1.364rem);
  line-height: 1.15;
}
.pl-reviews-section__author-role p {
  margin-block: 0.182rem 0;
  font-size: 0.92rem;
  line-height: 1.3;
}
.pl-reviews-section__navigation {
  margin-block-start: clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
}
.pl-reviews-section__navigation .owl-navigation {
  justify-content: center;
  gap: 0.55rem;
}
.pl-reviews-section__nav-btn {
  inline-size: clamp(0.444rem, calc(0.375rem + 0.47vw), 0.785rem);
  block-size: clamp(0.444rem, calc(0.375rem + 0.47vw), 0.785rem);
  padding: 0;
  border: 0;
  border-radius: 999rem;
  background-color: color-mix(in srgb, var(--text-primary) 16%, transparent);
  transition:
    background-color 220ms ease,
    box-shadow 220ms ease,
    -webkit-transform 220ms ease,
    transform 220ms ease;
}
.pl-reviews-section__nav-btn:hover {
  background-color: var(--level-bg);
  box-shadow: 0 0.35rem 0.9rem color-mix(in srgb, var(--black) 12%, transparent);
  -webkit-transform: translateY(-1px);
  transform: translateY(-1px);
}
.pl-reviews-section__nav-btn:focus-visible {
  outline: 0.091rem dashed var(--level-bg);
  outline-offset: 0.227rem;
}

/* PL-Team */
.pl-team-section {
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-team-section__row {
  row-gap: 2rem;
}
.pl-team-section__content {
  position: relative;
  z-index: 2;
  max-inline-size: 31rem;
  padding-block-start: clamp(3.636rem, calc(2.455rem + 5vw), 7.273rem);
}
.pl-team-section__paragraph {
  max-inline-size: 36ch;
  margin-block-start: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
}
.pl-team-section__paragraph p {
  margin-block: 0;
  line-height: 1.6;
}
.pl-team-section__cta {
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-team-section__grid {
  --pl-team-gap: clamp(0.818rem, calc(0.745rem + 0.5vw), 1.182rem);
  --pl-team-card-shift: clamp(2.727rem, calc(1.636rem + 7.5vw), 8.182rem);
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: var(--pl-team-gap);
  column-gap: var(--pl-team-gap);
  align-items: start;
}
.pl-team-section__column {
  display: flex;
  flex-direction: column;
  row-gap: calc(var(--pl-team-gap) * 3);
}
.pl-team-section__column:nth-child(1),
.pl-team-section__column:nth-child(3) {
  margin-block-start: var(--pl-team-card-shift);
}
a.pl-team-section__card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-block-size: clamp(9.091rem, calc(7.727rem + 6.875vw), 15rem);
  padding-block-start: clamp(1.136rem, calc(0.909rem + 1.25vw), 2.273rem);
  padding-inline: 0;
  padding-block-end: 0;
  overflow: hidden;
  border-block-end: 0;
  border-radius: 999rem;
  color: var(--text-white);
  text-align: center;
  transition:
    color 220ms ease,
    -webkit-transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 360ms ease;
}
.pl-team-section__card__orange {
  background-color: var(--bg-orange-500);
}
.pl-team-section__card__medium {
  background-color: var(--level-bg-medium);
}
.pl-team-section__card__soft {
  background-color: var(--level-bg-soft);
}
.pl-team-section__card-text {
  position: relative;
  z-index: 2;
  padding-inline: clamp(0.682rem, calc(0.545rem + 0.938vw), 1.364rem);
}
.pl-team-section__name h3 {
  margin-block: 0;
  color: var(--text-white);
  font-family: var(--ff-heading);
  font-size: clamp(0.909rem, calc(0.836rem + 0.5vw), 1.273rem);
  font-weight: var(--fw-sb);
  line-height: 1.15;
}
.pl-team-section__role p {
  margin-block: 0.136rem 0;
  color: var(--text-white);
  font-size: clamp(0.727rem, calc(0.682rem + 0.313vw), 0.955rem);
  line-height: 1.15;
}
.pl-team-section__media {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex: 0 0 auto;
  inline-size: 100%;
  margin-block-start: clamp(0.364rem, calc(0.303rem + 0.417vw), 0.636rem);
  margin-inline: 0;
}
.pl-team-section__media picture,
.pl-team-section__media img {
  display: block;
  inline-size: 100%;
}
.pl-team-section__media img {
  object-fit: contain;
  object-position: center bottom;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  transition:
    -webkit-transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}
a.pl-team-section__card:hover {
  color: var(--text-white);
  box-shadow: 0 1rem 2.5rem color-mix(in srgb, var(--black) 16%, transparent);
  -webkit-transform: translateY(-0.318rem);
  transform: translateY(-0.318rem);
}
a.pl-team-section__card:hover .pl-team-section__media img {
  -webkit-transform: translateY(-0.273rem) scale(1.035);
  transform: translateY(-0.273rem) scale(1.035);
}
a.pl-team-section__card:focus-visible {
  outline: 0.091rem dashed var(--level-bg);
  outline-offset: 0.227rem;
}
@media screen and (min-width: 992px) {
  .pl-team-section__column:nth-child(1) a.pl-team-section__card:first-child,
  .pl-team-section__column:nth-child(3) a.pl-team-section__card:first-child {
    padding-block-start: clamp(1.591rem, calc(1.227rem + 1.875vw), 3.182rem);
  }
}
.pl-team-section__decor-wave {
  inset-inline-start: 0;
  inset-block-end: 0;
  z-index: 1;
  -webkit-transform: translate(-42%, 25%);
  transform: translate(-42%, 25%);
}
@media screen and (max-width: 991px) {
  .pl-team-section__content {
    max-inline-size: none;
    padding-block-start: 0;
    text-align: center;
  }
  .pl-team-section__paragraph {
    margin-inline: auto;
  }
  .pl-team-section__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-inline-size: 34rem;
    margin-inline: auto;
  }
  .pl-team-section__column {
    display: contents;
  }
  .pl-team-section__column:nth-child(1),
  .pl-team-section__column:nth-child(3) {
    margin-block-start: 0;
  }
  a.pl-team-section__card {
    min-block-size: 0;
    border-radius: var(--radius);
  }
  a.pl-team-section__card {
    padding-block-start: 1.364rem;
  }
  .pl-team-section__media {
    margin-block-start: 0.455rem;
  }
  .pl-team-section__media picture {
    display: flex;
    justify-content: center;
  }
  .pl-team-section__media img {
    inline-size: min(58%, 8.636rem);
    max-block-size: 9.091rem;
    margin-inline: auto;
  }
  .pl-team-section__decor-wave {
    display: none;
  }
}
@media screen and (max-width: 575px) {
  .pl-team-section__grid {
    grid-template-columns: 1fr;
    max-inline-size: 24rem;
  }
}
/* PL-Moments */
.pl-moments-section__header {
  row-gap: 1.5rem;
  margin-block-end: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-moments-section__paragraph {
  max-inline-size: 44ch;
  margin-inline-start: auto;
}
.pl-moments-section__paragraph p {
  margin-block: 0;
  line-height: 1.55;
}
.pl-moments-section__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: clamp(0.727rem, calc(0.655rem + 0.5vw), 1.091rem);
}
a.pl-moments-section__item {
  display: block;
  overflow: hidden;
  block-size: clamp(10.909rem, 18vw, 18.182rem);
  border-block-end: 0;
  border-radius: var(--radius-xs);
}
.pl-moments-section__item__tall {
  block-size: clamp(15.909rem, 28vw, 27.273rem);
}
.pl-moments-section__span-3 {
  grid-column: span 3;
}
.pl-moments-section__span-4 {
  grid-column: span 4;
}
.pl-moments-section__span-5 {
  grid-column: span 5;
}
.pl-moments-section__media {
  inline-size: 100%;
  block-size: 100%;
  filter: brightness(1);
  -webkit-transform: scale(1);
  transform: scale(1);
  transition:
    filter 300ms ease,
    -webkit-transform 450ms ease,
    transform 450ms ease;
  will-change: transform, filter;
}
a.pl-moments-section__item:hover .pl-moments-section__media {
  filter: brightness(0.85);
  -webkit-transform: scale(1.03);
  transform: scale(1.03);
}
a.pl-moments-section__item:focus-visible {
  outline: 0.125rem dashed var(--level-bg);
  outline-offset: 0.35rem;
}
a.pl-moments-section__item:focus-visible .pl-moments-section__media {
  filter: brightness(0.9);
}
.pl-moments-section__media picture,
.pl-moments-section__media img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
}
.pl-moments-section__media img {
  object-fit: cover;
}
.pl-moments-section__cta {
  margin-block-start: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}

/* PL-Form */

.pl-form-section {
  position: relative;
  overflow: hidden;
  padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 4.545rem);
}
.pl-form-section__header {
  row-gap: 1.5rem;
  margin-block-end: clamp(2.273rem, calc(1.818rem + 3.125vw), 4.545rem);
}
.pl-form-section__intro {
  max-inline-size: 24ch;
}
.pl-form-section__intro p {
  margin-block: 0;
  line-height: 1.45;
}
.pl-form-section__decor-wrap {
  min-block-size: 4.5rem;
}
.pl-form-section__decor-dots {
  inset-block-start: 0;
  inset-inline-end: 0;
}
.pl-form-section__body {
  row-gap: 2rem;
}
.pl-form-section__form-space {
  min-block-size: clamp(18rem, 34vw, 28rem);
}
.pl-form-section__contact {
  position: relative;
  z-index: 2;
}
.pl-form-section__paragraph {
  max-inline-size: 48ch;
  margin-block-end: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
}
.pl-form-section__paragraph p {
  margin-block: 0;
  line-height: 1.55;
}
.pl-form-section__address {
  margin-block: 0;
  color: var(--text-white);
  font-style: normal;
}
.pl-form-section__contact-group {
  font-size: clamp(1rem, calc(0.945rem + 0.375vw), 1.273rem);
  line-height: 1.45;
}
.pl-form-section__contact-group:not(:last-child) {
  margin-block-end: clamp(1.136rem, calc(1rem + 0.938vw), 1.818rem);
}
.pl-form-section__contact-group strong {
  font-family: var(--ff-heading);
  font-weight: var(--fw-bd);
}
a.pl-form-section__contact-link {
  color: var(--text-white);
  border-block-end: 0.045rem solid currentColor;
  transition:
    color 220ms ease,
    border-color 220ms ease;
}
a.pl-form-section__contact-link:hover {
  color: var(--level-text);
  border-color: var(--level-text);
}
a.pl-form-section__contact-link:focus-visible {
  outline: 0.091rem dashed var(--level-text);
  outline-offset: 0.227rem;
}
.pl-form-section__circles {
  display: flex;
  justify-content: flex-end;
  margin-block-start: clamp(2.273rem, calc(1.818rem + 3.125vw), 4.545rem);
}

/* RESPONSIVE STRUCTURE
--------------------------------------- */

@media screen and (max-width: 1920px) {
  .pl-contact-section__decor-arc {
    -webkit-transform: translate(-75%, calc(118% - 80px)) scaleX(-1);
    transform: translate(-75%, calc(118% - 80px)) scaleX(-1);
  }
  .pl-timeline__wrapper {
    padding-inline-start: max(1rem, 8%);
  }
}

@media screen and (max-width: 1600px) {
  .pl-growth-section__content {
    padding-inline-end: clamp(1.818rem, calc(1.364rem + 2.5vw), 4.091rem);
  }
  .pl-growth-section__list-wrap {
    -webkit-transform: translate(-28%, -50%);
    transform: translate(-28%, -50%);
  }
  .pl-reviews-section__quote-wrap {
    min-block-size: clamp(18.182rem, calc(14.545rem + 10vw), 22.727rem);
  }
  .pl-reviews-section__quote-content {
    padding-block: clamp(1.273rem, calc(0.836rem + 1.2vw), 1.818rem)
      clamp(1.455rem, calc(0.873rem + 1.6vw), 2.182rem);
    padding-inline: clamp(1.455rem, calc(0.727rem + 2vw), 2.364rem);
  }
  .pl-reviews-section__quote-text p {
    line-height: 1.16;
  }
}

@media screen and (max-width: 1600px) and (min-width: 1200px) {
  .pl-timeline__steps {
    gap: clamp(1rem, calc(-2.279rem + 4.375vw), 2.75rem);
  }
  .pl-timeline__step button {
    font-size: clamp(0.818rem, calc(0.477rem + 0.455vw), 1rem);
  }
  .pl-timeline__dot {
    inline-size: clamp(0.5rem, calc(0.159rem + 0.455vw), 0.682rem);
    block-size: clamp(0.5rem, calc(0.159rem + 0.455vw), 0.682rem);
  }
}

@media screen and (max-width: 1366px) and (min-width: 1200px) {
  .pl-growth-section__content {
    padding-inline-end: 2rem;
  }
  .pl-growth-section__list-wrap {
    -webkit-transform: translate(-12%, -50%);
    transform: translate(-12%, -50%);
  }
}

@media screen and (max-width: 1199px) {
  .pl-hero-section__content {
    padding-block-start: 0;
    text-align: center;
  }
  .pl-hero-section__body {
    max-inline-size: 100%;
    margin-inline: auto;
  }
  .pl-hero-section__cta {
    justify-content: center;
  }
  .pl-hero-section__media-col {
    min-block-size: 0;
  }
  .pl-hero-section__media {
    position: relative;
    inset: auto;
    inline-size: min(42rem, 82vw);
    block-size: auto;
    aspect-ratio: 16 / 7;
    margin-inline: auto;
    -webkit-transform: none;
    transform: none;
  }
  .pl-hero-section__decor-wave,
  .pl-hero-section__decor-dots {
    display: none;
  }
  .pl-foundations-section__points {
    grid-template-columns: 1fr;
    max-inline-size: 34rem;
  }
  .pl-curriculum-section__nav {
    padding-block: 0;
    margin-block-end: 1.5rem;
    text-align: center;
  }
  .pl-curriculum-section__tabs {
    justify-content: center;
  }
  .pl-curriculum-section__tab-link::after {
    display: none;
  }
  .pl-curriculum-panel__content {
    text-align: center;
  }
  .pl-curriculum-panel__paragraph {
    margin-inline: auto;
  }
  .pl-curriculum-panel__list ul {
    display: inline-block;
    text-align: left;
  }
  .pl-contact-section__link-text {
    display: block;
    -webkit-transform: translateX(clamp(-8rem, calc(-4rem - 3.333vw), -5rem));
    transform: translateX(clamp(-8rem, calc(-4rem - 3.333vw), -5rem));
  }
  .pl-timeline__steps {
    gap: clamp(0.818rem, calc(0.591rem + 1.563vw), 1.955rem);
  }
  .pl-timeline__step button {
    font-size: 0.818rem;
  }
  .pl-reviews-section__quote-wrap {
    min-block-size: clamp(14.545rem, calc(13.409rem + 3.125vw), 16.818rem);
  }
}

@media screen and (max-width: 991px) {
  .pl-foundations-section__content {
    padding-block: 0;
    padding-inline-start: 0;
  }
  .pl-foundations-section__cta {
    justify-content: flex-start;
  }
  .pl-calendar-section {
    padding-block-end: clamp(2.727rem, calc(1.818rem + 6.25vw), 7.273rem);
  }
  .pl-calendar-section__row {
    row-gap: clamp(1.364rem, calc(1.091rem + 1.875vw), 2.727rem);
  }
  .pl-calendar-section__side {
    min-block-size: auto;
    text-align: center;
  }
  .pl-calendar-section__side__left,
  .pl-calendar-section__side__right {
    padding-block: clamp(2.045rem, calc(1.545rem + 3.438vw), 3.636rem);
    padding-inline: clamp(1.364rem, calc(0.909rem + 3.125vw), 2.727rem);
    border-radius: var(--radius);
  }
  .pl-calendar-section__paragraph,
  .pl-calendar-section__note {
    max-inline-size: 100%;
    margin-inline: auto;
  }
  .pl-calendar-section__clip,
  .pl-calendar-section__decor-wave {
    display: none;
  }
  .pl-growth-section__content {
    max-inline-size: none;
    padding-block: 0;
    padding-inline-end: 0;
    text-align: center;
  }
  .pl-growth-section__paragraph {
    max-inline-size: 100%;
    margin-inline: auto;
  }
  .pl-growth-section__media {
    aspect-ratio: 16 / 9;
  }
  .pl-growth-section__list-wrap {
    position: relative;
    inset: auto;
    inline-size: 100%;
    margin-block-start: 1rem;
    -webkit-transform: none;
    transform: none;
  }
  .pl-growth-section__decor-dots {
    display: none;
  }
  .pl-growth-section__list {
    text-align: left;
  }
  .pl-principles-section__content {
    padding-inline-start: 0;
  }
  .pl-principles-section__intro {
    margin-inline: auto;
    text-align: center;
  }
  .pl-principles-section__title .title-box {
    display: block;
  }
  .pl-principles-section__accordion {
    max-inline-size: 100%;
  }
  .pl-gallery-section__paragraph {
    max-inline-size: 36ch;
    margin-inline: auto;
  }
  .pl-gallery-section__cta {
    margin-block-start: 0.5rem;
  }
  .pl-context-section__content {
    max-inline-size: none;
    text-align: center;
  }
  .pl-context-section__paragraph {
    margin-inline: auto;
  }
  .pl-context-section__list {
    max-inline-size: 32rem;
    margin-inline: auto;
  }
  .pl-contact-section__inner {
    display: block;
  }
  .pl-contact-section__intro {
    max-inline-size: 28ch;
    margin-inline: auto;
    text-align: center;
  }
  .pl-contact-section__badge-group {
    padding-block-end: clamp(1.591rem, calc(1.318rem + 1.875vw), 2.955rem);
  }
  .pl-contact-section__decor-arc,
  .pl-contact-section__media {
    display: none;
  }
  .pl-contact-section__link-wrap {
    inline-size: 100%;
    padding-inline-end: 0;
  }
  a.pl-contact-section__link {
    padding-inline: 1rem;
  }
  .pl-contact-section__link-text {
    -webkit-transform: none;
    transform: none;
  }
  a.pl-contact-section__link,
  a.pl-contact-section__link:hover {
    -webkit-transform: none;
    transform: none;
  }
  .pl-moments-section__paragraph {
    margin-inline-start: 0;
  }
  .pl-form-section__intro {
    max-inline-size: 30ch;
    margin-inline: auto;
  }
  .pl-form-section__decor-wrap {
    display: none;
  }
  .pl-form-section__form-space {
    min-block-size: 0;
  }
  .pl-form-section__paragraph {
    margin-inline: auto;
  }
  .pl-form-section__circles {
    justify-content: center;
  }
  .pl-timeline__paragraph {
    max-inline-size: 100%;
    margin-inline-start: 0;
  }
  .pl-timeline__wrapper {
    padding-inline-start: var(--section-px);
  }
  .pl-timeline__nav {
    border-block-start: 0;
  }
  .pl-timeline__steps {
    overflow-x: auto;
    padding-block-end: 0.75rem;
  }
  .pl-timeline__dot {
    display: none;
  }
  .pl-timeline__step-number {
    display: inline;
    margin-inline-end: 0.35em;
  }
}

@media screen and (max-width: 767px) {
  .pl-curriculum-section__tabs {
    row-gap: 0.85rem;
    column-gap: 1.5rem;
  }
  .pl-curriculum-panel__media {
    aspect-ratio: 4 / 3;
  }
  .pl-gallery-section__grid {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
  }
  .pl-gallery-section__row {
    display: contents;
  }
  a.pl-gallery-section__link {
    inline-size: calc((100% - var(--pl-gallery-gap)) / 2);
  }
  a.pl-gallery-section__link:last-child {
    margin-inline: auto;
  }
  .pl-moments-section__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .pl-moments-section__span-3,
  .pl-moments-section__span-4,
  .pl-moments-section__span-5 {
    grid-column: span 3;
  }
  a.pl-moments-section__item,
  .pl-moments-section__item__tall {
    block-size: clamp(8.182rem, 28vw, 13.636rem);
  }
  .pl-moments-section__grid a:last-child {
    grid-column: span 6;
  }
  .pl-timeline__wrapper {
    padding-inline-end: var(--section-px);
  }
  .pl-timeline__nav {
    border-block-start: 0;
    margin-block-end: 1.5rem;
  }
  .pl-timeline__steps {
    justify-content: flex-start;
    gap: 1rem;
  }
  .pl-timeline__step button {
    padding-block-start: 0;
  }
  .pl-timeline__dot {
    display: none;
  }
  .pl-timeline__item-content {
    display: block;
    padding-inline-end: 0;
    text-align: center;
  }
  .pl-timeline__item-media {
    margin-inline: auto;
    margin-block-end: 1rem;
  }
  .pl-timeline__copy {
    margin-inline: auto;
  }
  .pl-timeline__cta {
    padding-inline-end: 0;
  }
  .pl-reviews-section__quote-wrap {
    min-block-size: clamp(12.727rem, calc(11.591rem + 7.813vw), 15rem);
  }
  .pl-reviews-section__author {
    align-items: flex-start;
  }
}

@media screen and (max-width: 575px) {
  .pl-hero-section__media {
    inline-size: 100%;
    aspect-ratio: 4 / 3;
  }
  .pl-foundations-section__points {
    gap: 0.909rem;
  }
  .pl-calendar-section__actions {
    align-items: stretch;
  }
  a.pl-calendar-section__link,
  .pl-calendar-section__note {
    inline-size: 100%;
  }
  .pl-growth-section__media {
    aspect-ratio: 4 / 3;
  }
  .pl-context-section__item {
    align-items: flex-start;
    gap: 0.909rem;
  }
  .pl-context-section__icon {
    inline-size: 3.636rem;
    block-size: 3.636rem;
  }
  .pl-context-section__label h3 {
    font-size: 1.364rem;
  }
  .pl-contact-section__badge-group {
    --pl-contact-badge-px: 1.364rem;
    inline-size: 100%;
  }
  .pl-contact-section__badge {
    inline-size: min(100%, 16rem);
  }
  .pl-contact-section__badge__middle {
    margin-block-start: 0.182rem;
    -webkit-transform: translateX(-4%) rotate(-6deg);
    transform: translateX(-4%) rotate(-6deg);
  }
  .pl-contact-section__badge__bottom {
    margin-block-start: 0.182rem;
  }
}

@media screen and (max-width: 420px) {
  .pl-gallery-section__grid {
    --pl-gallery-gap: 1.25rem;
  }
  a.pl-gallery-section__link {
    inline-size: 100%;
  }
  .pl-moments-section__span-3,
  .pl-moments-section__span-4,
  .pl-moments-section__span-5,
  .pl-moments-section__grid a:last-child {
    grid-column: span 6;
  }
  a.pl-moments-section__item,
  .pl-moments-section__item__tall {
    block-size: 12rem;
  }
}
