:root {
  --primary-color: #1d485c;
  --accent-color: #d19b5d;
  --gentler-contrast-text: #404041;
  --content-width: 994px;
}

@font-face {
  font-family: "Avenir LT W01 35 Light";
  src: url("assets/fonts/avenir-lt-w01_35-light.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT W01 85 Heavy";
  src: url("assets/fonts/avenir-lt-w01_85-heavy.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "Adam Medium";
  src: url("assets/fonts/adam-medium.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "Brandon Grot";
  src: url("assets/fonts/brandon-grot-w01-light.woff2") format("woff2");
  font-display: swap;
}

.dont-clear-float {
  clear: none;
}

.add-parallax:not(#\9) > img {
  height: initial;
}

p > a {
  color: var(--gentler-contrast-text);
}

.is-layout-flex {
  gap: 30px;
}

hr.wp-block-separator {
  margin-top: 50px;
  margin-bottom: 50px;
  color: var(--accent-color);
}

.wp-block-post-content p {
  font-size: 18px;
  font-family: "Avenir LT W01 35 Light";
  color: var(--gentler-contrast-text);
  line-height: 27px;
}

.is-style-bar-header hr:first-of-type {
  margin-bottom: 22px;
}

.is-style-bar-header hr:last-of-type {
  margin-top: 22px;
}

li {
  line-height: 1.5em;
}

.dd-fade-carousel-editor {
  border: 3px dashed gray;
  padding: 20px;
}

.dd-fade-carousel-editor .block-editor-inner-blocks > * > * {
  border: 2px solid lightblue;
  margin: 4px;
}

.slide-carousel-editor .block-editor-inner-blocks > * > * {
  border: 2px solid lightblue;
  margin: 4px;
}

.treatment-numbers p {
  font-size: 20px;
  font-weight: 400;
}

.treatment-numbers > *:not(:last-child)::after {
  /* Decorative dot between items */
  content: "|";
  margin-left: 18px;
  color: var(--accent-color);
}

.treatment-numbers {
  gap: 18px;
}

.wp-block-post-featured-image {
  height: 629px;
  margin-top: 0;
  margin-bottom: 0;
  overflow: clip;
}

.wp-block-post-featured-image .wp-post-image {
  object-fit: cover;
  display: block;
  min-width: 100%;
  /* min-height set dynamically by parallax.js based on aspect ratio */
}

.wp-block-post-content h1 {
  color: var(--accent-color);
  font-family: "Adam Medium";
  font-weight: 400;
  letter-spacing: 2px;
}

.wp-block-post-content h1:not(#\9).is-style-smaller-h1 {
  font-size: 40px !important; /* Because wordpress applies !important */
}

/* Using h2 for things with the em-dashes above titles, eg.: "Treatment Type —" */
.wp-block-post-content:not(#\9) h2 {
  font-size: 22px !important; /* Because wordpress applies !important */
  color: var(--gentler-contrast-text);
  font-family: "Brandon Grot";
  font-weight: 400;
}

/* Course catalog items use h3 for course titles */
.wp-block-post-content h3 {
  font-weight: 400;
  color: var(--primary-color);
  font-size: 25px;
}

/* Course catalog items use h4 for course pricing */
.wp-block-post-content h4 {
  font-weight: 400;
  color: var(--accent-color);
  font-size: 25px;
}

.wp-block-post-content mark.has-primary-color {
  color: var(--primary-color);
}

.wp-block-post-content mark.has-accent-color {
  color: var(--accent-color);
}

.is-layout-flex:not(#\9) > hr {
  width: 200px;
  margin-right: 25px;
}

.wp-block-button:not(#\9) > * {
  font-size: 18px;
  background-color: var(--primary-color);
  transition: background-color 0.4s ease 0s;
  border-radius: 0;
  min-width: 176px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.wp-block-button:not(#\9):hover > * {
  background-color: var(--accent-color);
}

.cover-heading-segment {
  min-height: initial;
  padding-top: 47px;
  padding-bottom: 14px;
}

.wp-block-post-content h1:not(#\9) {
  font-size: 50px !important; /* Wordpress competes with an !important property */
  margin-top: 5px;
}

.wp-block-group-is-layout-grid h1:not(#\9) {
  font-size: 40px !important; /* Wordpress competes with an !important property */
  margin-left: 6px;
  margin-right: 6px;
}

.cover-heading-segment h2 {
  font-size: 22px !important; /* Wordpress competes with an !important property */
}

.cover-heading-segment > img {
  height: 100%;
  filter: opacity(0.4);
}

/* Trainer Page */
.trainer-quote-section {
  padding-top: 60px;
  padding-bottom: 60px;
}

.trainer-quote-portrait {
  flex-shrink: 0;
  border: 8px solid white;
  box-shadow:
    9px 3px 20px -17px rgba(0, 0, 0, 1),
    -9px 3px 20px -17px rgba(0, 0, 0, 1);
}

.trainer-quote-portrait img {
  width: 185px;
  height: 185px;
}

.trainer-quote-text {
  width: 650px;
  margin-left: 38px;
}

.trainer-quote-wrapper {
  align-items: flex-start;
}

.trainer-quote-section p {
  color: var(--gentler-contrast-text);
  line-height: 27px;
}

h4.trainer-signature {
  font-family: "Avenir LT W01 85 Heavy";
  font-size: 17px;
  color: var(--accent-color);
}

.treatments-catalog {
  padding: 60px;
  gap: 30px;
  background-color: #fafafa;
}

.treatments-catalog > div {
  background-color: white;
  padding-bottom: 40px;
}

.wp-block-post-content {
  overflow-x: clip;
}

/* Page */
.wp-block-post-content {
  font-size: 18px;
  color: var(--gentler-contrast-text);
}

.wp-block-post-content > *,
.wp-block-post-content .wp-block-cover-is-layout-constrained {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

.wp-block-post-content .alignfull {
  max-width: none;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* In most other places, we want content to just limit itself to article width, even it
   it's inside a cover block. In this container though, we allow more space because the
   course groups are wider (leave a white space around article width). */
.course-page-cover .wp-block-cover-is-layout-constrained {
  max-width: none;
}

.course-page-cover
  .wp-block-cover-is-layout-constrained
  > *:not(.course-group) {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

.course-group {
  margin-left: 40px;
  margin-right: 40px;
  margin-top: 56px;
  padding: 64px;
  padding-left: 90px;
  padding-right: 90px;
  padding-bottom: 20px;
}

.course-group:last-child {
  margin-bottom: 100px;
}

.course-group .wp-block-group-is-layout-constrained > * {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

.course-catalog-item {
  gap: 40px;
  margin-bottom: 80px;
}

.course-catalog-item .wp-block-image {
  width: 430px;
  height: 285px;
  flex-shrink: 0;
}

.course-catalog-item img {
  object-fit: cover;
  height: inherit; /* Don't know why, but this allows the image to fill the container */
}

.course-catalog-item-details-and-bar:not(#\9) /* Gutenberg fix */ {
  align-self: stretch;
  gap: 0px;
  height: 285px;
  flex-wrap: nowrap;
}

.course-catalog-item-details {
  flex-shrink: 1;
  overflow: hidden;
}

.course-catalog-item h3 {
  margin-top: 0;
  margin-bottom: 15px;
  margin-top: -5px; /* For better visual alignment with the top edge */
  line-height: normal; /* For Gutenberg editor */
}

.course-catalog-item h4 {
  margin-top: 10px;
  margin-bottom: 10px;
}

.course-catalog-item p {
  margin-top: 4px;
  margin-bottom: 4px;
}

.course-catalog-item-duration-and-credits {
  gap: 10px;
  margin: 0; /* Needed for the Gutenberg editor */
}

.course-catalog-item-duration-and-credits p:first-child::after {
  content: "|";
  margin-left: 13px;
  color: var(--accent-color);
}

.course-catalog-item-bar hr {
  margin-top: 0;
  margin-bottom: 0;
}

.front-page-image-and-quote {
  align-items: flex-start;
}

.front-page-image-and-quote .wp-block-image {
  width: 430px;
  height: 285px;
  flex: none;
}

.front-page-image-and-quote img {
  object-fit: cover;
  height: inherit;
}

.front-page-image-and-quote p {
  max-width: 500px;
  margin-top: -4px;
}

.client-journey-steps {
  gap: 0;
  margin-top: 85px;
  margin-bottom: 85px;
  /* position: relative; */
}

.client-journey-steps > .is-layout-flex {
  gap: 20px;
  padding: 40px;
}

/* Decorative vertical lines */
.client-journey-steps > *:nth-child(1)::after,
.client-journey-steps > *:nth-child(3)::after {
  content: "";
  margin-left: 20px;
  width: 1px;
  height: 100%;
  background-color: #a2ac87ff;
}

/* Decorative horizontal lines */
.client-journey-steps > *:nth-child(3)::before,
.client-journey-steps > *:nth-child(4)::before {
  content: "";
  margin-top: -40px;
  margin-bottom: 40px;
  width: 100%;
  height: 1px;
  background-color: #a2ac87ff;
}

.client-journey-steps .wp-block-buttons {
  margin-top: auto;
  position: relative;
}

.featured-courses-section .wp-block-cover-is-layout-constrained {
  max-width: none;
}

.featured-courses-section {
  padding-bottom: 52px;
}

.featured-courses-section
  .wp-block-cover-is-layout-constrained
  > *:not(.featured-course-slider) {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

.featured-course-slider .swiper {
  max-width: var(--content-width);
}

.featured-course-slider .swiper-wrapper {
  margin-bottom: 44px;
}

.featured-course-slider .swiper-slide {
  background-color: white;
}

.featured-course-slider .wp-block-image {
  aspect-ratio: 1.74;
  width: 100%;
}

.featured-course-slider .swiper-slide > .is-layout-flex {
  align-items: center;
  gap: 17px;
  margin-bottom: 30px;
}

.featured-course-slider .swiper-button-prev,
.featured-course-slider .swiper-button-next {
  color: var(--accent-color);
}

.featured-course-slider .swiper-button-prev svg,
.featured-course-slider .swiper-button-next svg {
  width: 15px;
}

.featured-course-slider .swiper-slide > .wp-block-group > *:not(figure) {
  margin-left: 20px;
  margin-right: 20px;
  text-align: center;
}

.featured-course-slider h3 {
  font-size: 24px;
}

.featured-course-slider hr {
  margin-top: 10px;
  margin-bottom: 8px;
}

.featured-course-slider .featured-course-price {
  color: var(--accent-color);
  font-size: 25px;
}

.reviews-carousel {
  background: linear-gradient(90deg, #1d485c 0%, #082d3f 100%);
  max-width: none;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.fade-carousel {
  transition: background-color 0.5s cubic-bezier(0.37, 0, 0.63, 1);
}

.fade-carousel.flash-active {
  background-color: #fff3;
}

.reviews-carousel .swiper-slide {
  display: flex;
  justify-content: center;
}

.reviews-carousel .swiper-button-prev svg,
.reviews-carousel .swiper-button-next svg {
  width: 15px;
}

.reviews-carousel .swiper-slide > .is-layout-flex {
  align-items: center;
  max-width: 1200px;
  padding-top: 80px;
  padding-bottom: 90px;
  padding-left: 100px;
  padding-right: 100px;
  gap: 28px;
}

.reviews-carousel:not(\#9) .swiper-button-prev {
  left: 60px;
}

.reviews-carousel:not(\#9) .swiper-button-next {
  right: 60px;
}

.reviews-carousel {
  --swiper-pagination-bottom: 46px;
}

.reviews-carousel .swiper-button-prev,
.reviews-carousel .swiper-button-next,
.reviews-carousel p {
  color: white;
}

.reviews-carousel p {
  font-size: 20px;
  text-align: center;
}

.review-stars {
  color: var(--accent-color);
  gap: 3px;
  font-size: 24px;
}

.entry-content .map-entries {
  display: none;
}

.leaflet-container:not(#\9) {
  background-color: white;
}

.leaflet-tile-pane {
  filter: grayscale(1);
}

.leaflet-control-attribution {
  margin-right: 10px;
}

@media (max-width: 1100px) {
  .treatments-catalog {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .treatment-numbers {
    gap: 6px;
    flex-direction: column;
    align-items: flex-start;
  }

  .treatment-numbers > *::after {
    display: none;
  }

  .reviews-carousel .swiper-button-prev,
  .reviews-carousel .swiper-button-next {
    display: none;
  }
}

@media (max-width: 800px) {
  .treatments-catalog {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    padding: 0;
    margin: 0;
    gap: 0;
  }
}

@media (max-width: 760px) {
  .trainer-buttons {
    justify-content: flex-end;
  }
  .trainer-buttons hr {
    display: none;
  }

  .wp-block-post-featured-image {
    height: 400px;
  }
}

@media (max-width: 660px) {
  .trainer-buttons {
    flex-direction: column;
    gap: 10px;
  }

  .trainer-quote-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .trainer-quote-text {
    width: initial;
    margin-left: initial;
  }

  .wp-block-post-featured-image {
    height: 320px;
  }

  .reviews-carousel .swiper-slide > .is-layout-flex {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (max-width: 500px) {
  .treatment-numbers-and-button {
    flex-direction: column;
  }
}
