body:has(.modal[open]) {
  overflow: hidden;
}


:root {
  --color-beige: #e6e0dd;
  --color-green: #1d3c34;
  --color-light-green: #8e9d99;
  --color-light-grey: #dde2e1;
}

img, video {
  max-width: 100%;
}

.mt-0 {
  margin-top: 0 !important;
}

.header .desktop-links li {
  margin-left: 35px;
}

.underlined-cta {
  cursor: pointer;
}

/* utility class for %small-section-font mixin in _fonts.scss */
.small-section-font {
	font-size: 20px;
	line-height: 1.33;
	font-weight: 200;
	letter-spacing: 1.5px;
}
@media (min-width: 1440px) {
  .small-section-font { font-size: 24px; letter-spacing: 2px; }
}

@keyframes modal-fade-in {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes modal-fade-out {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}

.modal {
  max-width: min(100vw - 40px, 700px);
  padding: 60px min(5vw, 60px);
  color: #FFF;
  border: 0;
  text-align: center;
  background-color: #1d3c34;
  animation: modal-fade-in 0.5s forwards;
}
.modal::backdrop {
  background-color: rgb(29 60 52 / 0.5);
  animation: modal-fade-in 0.5s forwards;
}

.modal[data-state="closing"] {
  display: block;
  pointer-events: none;
  inset: 0;
  animation: modal-fade-out 0.5s forwards;
}
.modal[data-state="closing"]::backdrop {
  animation: modal-fade-out 0.5s forwards;
}

.modal-close {
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  width: 4.5rem;
  height: 4.5rem;
  padding: 1.5rem;
  color: currentColor;
  border: none;
  background: transparent;
  transition: opacity 0.25s;
}
.modal-close svg {
  pointer-events: none;
}
.modal-close:not(:hover, :focus) {
  opacity: 0.5;
}

.modal h2 {
  margin-top: 0;
}

.modal .button {
  color: currentColor;
  border-color: #FFF;
  padding-left: 1.5em;
  padding-right: 1.5em;
  white-space: nowrap;
}
.modal .button:before {
  background-color: #FFF;
}
.modal .button:hover {
  color: #1d3c34;
}

.modal-actions {
  margin: 2em auto;
  max-width: 520px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75em 1.5em;
}
.modal-actions > * {
  flex-grow: 1;
  flex-basis: calc((520px - 100%) * 999);
}

.modal .underlined-cta {
  color: currentColor;
  border: 0;
  padding-left: 0;
  padding-right: 0;
  background-color: transparent;
  cursor: pointer;
}
.modal .underlined-cta:before {
  background-color: currentColor;
}

footer .footer-newsletter button span {
  margin: 0;
}

/* style tweaks to match visual weight in home page "AWARDS AND AFFILIATIONS" section */
img[src*="goop-2024"] {
  max-height: 85px !important;
  opacity: 0.8;
}

.page-hero .video-imagery .background-video {
  object-fit: cover;
}

/* similar to private-event-feature intro paragraph */
.home-journal-feature > p {
  max-width: 500px;
  margin: 0 auto 75px auto !important;
  padding: 0 20px;
}
.home-journal-feature .journal-cards {
  width: min(90%, 1000px);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 30px;
}
.home-journal-feature .journal-card h2 {
  font-size: 36px;
  line-height: 1.25;
}

/* force standard sizes for video and images in suite carousels */

.suites-carousel :is(img, video) {
  aspect-ratio: 1800 / 1200;
  object-fit: cover;
}
.suites-carousel img.mobile {
  display: none !important;
}
.suites-carousel img.desktop {
  display: block !important;
}

.suite-carousel :is(img, video) {
  aspect-ratio: 600 / 436;
  object-fit: cover;
}

/* force override default page.php template styles */

.general-page {
  position: relative; /* for persistent_button */
}
.general-page .static-hero:before {
  opacity: 0;
}
.general-page .static-hero h1 {
  margin-top: 0;
  width: 100%;
  padding-left: 5vw;
  padding-right: 5vw;
  text-align: center;
  white-space: normal;
  position: relative;
  color: #FFF;
  opacity: 1;
}
.general-page .static-hero .JS-parallax-hero:before {
  /* unecessary extra overlay */
  display: none !important;
}


.general-page .static-hero:has(video) {
  background-image: none !important;
}
.general-page .static-hero:has(video) .JS-parallax-hero {
  display: none !important;
}

.general-page .static-hero .video-imagery {
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.general-page .static-hero .video-imagery video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.general-page .accordion-wrap {
  width: min(100%, 700px) !important;
  margin: 130px auto;
  float: none !important;
}

/* collapse padding between flexible content layouts */
#main.general-page .layouts > * + * {
  margin-top: 0;
  padding-top: 0;
}
/* remove extra space above the first layout if preceeded by default page content */
#main.general-page .content + .layouts > :first-child {
  padding-top: 0;
}

.general-page .experiences-blurb {
  display: flex;
  align-items: flex-start;
  gap: 40px min(100 / 1680 * 100vw, 100px);
}
.general-page .experiences-blurb .blurb-content {
  padding: 0;
}
.general-page .experiences-blurb\:reversed {
  flex-direction: row-reverse;
}

@media (max-width: 900px) {
  .general-page .experiences-blurb {
    flex-direction: column;
  }
  .general-page .experiences-blurb > * {
    width: 100%;
    margin: 0;
    padding: 0;
  }
}

.general-page .layouts .suites-carousel:last-child {
  margin-bottom: 100px;
}
.general-page .layouts .suites-carousel:last-child .separator {
  display: none;
}


/*
 * complete hack from overly-specific styles and not being able to compile source files
 * 1. open static/css/style.css
 * 2. copy all `.single-suite .info .accordion-wrap` styles
 * 3. replace  `.single-suite .info` with `.general-page`
 */

 .general-page .accordion-wrap {
  -webkit-transition: border 0.5s ease-out;
  transition: border 0.5s ease-out;
  border-top: 1px solid #1d3c34; }
  @media only screen and (min-width: 768px) {
    .general-page .accordion-wrap {
      width: 100%;
      float: left; } }
  @media only screen and (min-width: 1025px) {
    .general-page .accordion-wrap {
      width: calc(100% - 460px); } }
  @media only screen and (min-width: 1248px) {
    .general-page .accordion-wrap {
      width: calc(100% - 500px); } }
  .general-page .accordion-wrap h2 {
    margin: 0; }
  .general-page .accordion-wrap .suite-accordion {
    position: relative;
    -webkit-transition: 0.5s ease-out;
    transition: 0.5s ease-out;
    border-bottom: 1px solid #1d3c34;
    padding: 30px 0; }
    .general-page .accordion-wrap .suite-accordion .accordion-button {
      cursor: pointer;
      position: relative;
      display: block;
      width: 100%;
      text-align: left;
      background-color: transparent;
      border: none;
      padding: 0; }
      .general-page .accordion-wrap .suite-accordion .accordion-button:before {
        content: '';
        display: block;
        position: absolute;
        width: 20px;
        height: 1px;
        background-color: #1d3c34;
        top: 15px;
        right: 0;
        -webkit-transition: 0.5s ease-out;
        transition: 0.5s ease-out; }
      .general-page .accordion-wrap .suite-accordion .accordion-button:after {
        content: '';
        display: block;
        position: absolute;
        width: 20px;
        height: 1px;
        background-color: #1d3c34;
        top: 15px;
        right: 0;
        -webkit-transform: rotate(90deg);
                transform: rotate(90deg);
        -webkit-transition: 0.5s ease-out;
        transition: 0.5s ease-out; }
    .general-page .accordion-wrap .suite-accordion .accordion-content {
      display: none; }
      .general-page .accordion-wrap .suite-accordion .accordion-content p:last-of-type {
        margin-bottom: 0; }
    .general-page .accordion-wrap .suite-accordion.open .accordion-button:before {
      -webkit-transform: rotate(180deg);
              transform: rotate(180deg); }
    .general-page .accordion-wrap .suite-accordion.open .accordion-button:after {
      -webkit-transform: rotate(270deg);
              transform: rotate(270deg);
      opacity: 0; }
    .general-page .accordion-wrap .suite-accordion:after {
      content: '';
      display: block;
      position: absolute;
      bottom: -1px;
      left: 0;
      width: 0%;
      height: 1px;
      background-color: #1d3c34;
      -webkit-transition: 0.8s ease-out 0.2s;
      transition: 0.8s ease-out 0.2s; }
  .general-page .accordion-wrap:hover {
    border-top: 1px solid rgba(29, 60, 52, 0.15); }
    .general-page .accordion-wrap:hover .suite-accordion {
      opacity: 0.15; }
  .general-page .accordion-wrap .suite-accordion:hover {
    opacity: 1;
    border-bottom: 1px solid rgba(29, 60, 52, 0.15); }
    .general-page .accordion-wrap .suite-accordion:hover:after {
      width: 100%; }
