/* VIDEO HERO */
.video-hero {
  position: relative;
  z-index: 20;
  isolation: isolate;
}

.video-hero .video-container {
  position: relative;
  width: 100%;
  height: 100vh;
  z-index: -1;
}

.video-hero .video-container video {
  width: 100;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.video-hero .video-container .video-overlay {
  position: absolute;
  inset: 0;
  background: var(--color-overlay);
}

.video-hero .video-hero-content {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  color: var(--color-background);
  padding: 0 var(--horizontal-spacing) 4rem var(--horizontal-spacing);
}

.video-hero .video-hero-content p {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: 2rem;
}

.video-hero .video-hero-content h1 {
  margin-top: 1.5rem;
}

/* TEXT SECTION */
.text-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 15rem 0;
}

.text-section-decoration {
  width: 6.25rem;
  height: 1.5rem;
}

.text-section-content {
  max-width: 73.5rem;
  font-size: 2rem;
  line-height: 1.35;
  letter-spacing: -0.32px;
  text-align: center;
}

/* STICKY IMAGE SECTION */
.sticky-image-section {
  --title-position: 50%;
  height: 300vh;
}

.sticky-image-section-scrolling-subject {
  position: sticky;
  top: 0;
  height: 100vh;
}

.sticky-image-section-backgrounds {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sticky-image-section-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sticky-image-section-backgrounds
  .sticky-image-section-background:not(:first-child) {
  opacity: 0;
}

.sticky-image-section-background > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.sticky-image-section-background > div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-foreground-heading);
  opacity: 0.05;
}

.sticky-image-section-scrolling-subject > p {
  position: absolute;
  left: 50%;
  font-size: 12.5vw;
  font-style: italic;
  line-height: 1;
  letter-spacing: 0;
  color: var(--color-background);
  transform: translate(-50%, -50%);
}

.sticky-image-section-scrolling-subject > p:nth-of-type(1) {
  top: var(--title-position);
}

.sticky-image-section-scrolling-subject > p:nth-of-type(2) {
  top: calc(var(--title-position) + 50%);
}

.sticky-image-section-scrolling-subject > p:nth-of-type(3) {
  top: calc(var(--title-position) + 100%);
}

.sticky-image-section-scrolling-subject > p:not(:first-of-type) {
  opacity: 0.5;
}

/* EXPANDING IMAGE SECTION */
.expanding-image-section {
  --subject-width: 31.58vw;
  height: 300vh;
}

.expanding-image-section-scrolling-subject {
  --content-gallery-gap: 8.5rem;
  position: sticky;
  top: calc(
    calc(var(--content-height) * -1) - var(--content-gallery-gap) + 25vh +
      var(--header-height) + calc(calc(-25vh - var(--header-height)) / 2)
  );
  display: flex;
  flex-direction: column;
  gap: var(--content-gallery-gap);
}

.expanding-image-section-scrolling-subject-content {
  padding: 17rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
}

.expanding-image-section-scrolling-subject-content > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.expanding-image-section-scrolling-subject-content > p {
  max-width: 45rem;
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
  margin-top: 2.75rem;
}

.expanding-image-section-scrolling-subject-gallery-wrapper {
  display: flex;
  justify-content: center;
  max-width: 100vw;
  overflow: clip;
}

.expanding-image-section-scrolling-subject-gallery {
  display: flex;
  justify-content: space-between;
  gap: 0.33vw;
  height: 75vh;
}

.expanding-image-section-scrolling-subject-gallery > * {
  flex-shrink: 0;
}

.expanding-image-section-scrolling-subject-gallery-item > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.expanding-image-section-scrolling-subject-gallery-edge-item {
  width: 10.85vw;
}

.expanding-image-section-scrolling-subject-gallery-column {
  display: flex;
  flex-direction: column;
  gap: 0.33vw;
  width: 22.7vw;
}

.expanding-image-section-scrolling-subject-gallery-column
  .expanding-image-section-scrolling-subject-gallery-small-item {
  flex: 1;
}

.expanding-image-section-scrolling-subject-gallery-animated-item {
  position: relative;
  width: 31.58vw;
}

.expanding-image-section-scrolling-subject-gallery-animated-item
  .expanding-image-section-animated-item-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  background: var(--color-overlay);
  opacity: 0;
}

.expanding-image-section-animated-item-overlay > p {
  max-width: 36rem;
  font-size: 2rem;
  line-height: 1.25;
  letter-spacing: -0.48px;
  text-align: center;
  color: var(--color-background);
}

/* ONE IMAGE SECTION 1 */
.one-image-section-1 {
  display: flex;
  flex-direction: column;
  padding: 11rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
}

.one-image-section-1 > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.one-image-section-1 .one-image-section-1-layout {
  display: flex;
  gap: 8vw;
  margin-top: var(--vertical-spacing);
}

.one-image-section-1 .one-image-section-1-layout .one-image-section-1-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
}

.one-image-section-1.one-image-section-1-center
  .one-image-section-1-layout
  .one-image-section-1-content {
  justify-content: center;
}

.one-image-section-1-content > p:first-child {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.one-image-section-1-content > .u-decor-green {
  margin: 2rem 0;
}

.one-image-section-1-content > p:nth-of-type(2) {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.one-image-section-1-content > .u-button-component {
  margin-top: 3.5rem;
}

.one-image-section-1-content .one-image-section-1-content-footer {
  font-size: 1.125rem;
  line-height: 2;
  text-transform: uppercase;
  margin-top: 3.5rem;
}

.one-image-section-1-image {
  aspect-ratio: 3 / 2;
}

.one-image-section-1-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* TWO IMAGES SECTION 1 */
.two-images-section-1 {
  display: flex;
  flex-direction: column;
  padding: 15rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
}

.two-images-section-1 > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.two-images-section-1 .two-images-section-1-main-image {
  height: 40rem;
  margin-top: var(--vertical-spacing);
}

.two-images-section-1 .two-images-section-1-layout {
  display: flex;
  gap: 8vw;
  margin-top: 1.5rem;
}

.two-images-section-1-image {
  aspect-ratio: 4 / 3;
}

.two-images-section-1-main-image > img,
.two-images-section-1-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.two-images-section-1
  .two-images-section-1-layout
  .two-images-section-1-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 4rem 8rem 4rem 0;
}

.two-images-section-1-content > .two-images-section-1-content-title {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.two-images-section-1-content > .u-decor-green {
  margin: 2rem 0;
}

.two-images-section-1-content > .two-images-section-1-content-description {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.two-images-section-1-content > .u-button-component {
  margin-top: 3.5rem;
}

/* TWO IMAGES SECTION 2 */
.two-images-section-2 {
  display: flex;
  flex-direction: column;
  padding: 15rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
}

.two-images-section-2 > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.two-images-section-2 .two-images-section-2-layout-wrapper {
  display: flex;
  gap: 8vw;
  margin-top: var(--vertical-spacing);
}

.two-images-section-2-layout-wrapper .two-images-section-2-main-image {
  flex-shrink: 0;
  width: 45vw;
  aspect-ratio: 5 / 6;
}

.two-images-section-2-layout-wrapper .two-images-section-2-layout {
  display: flex;
  flex-direction: column;
  gap: 7rem;
}

.two-images-section-2-image {
  height: 35vh;
}

.two-images-section-2-main-image > img,
.two-images-section-2-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.two-images-section-2-layout-wrapper .two-images-section-2-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.two-images-section-2-content > p:first-child {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.two-images-section-2-content > .u-decor-green {
  margin: 2rem 0;
}

.two-images-section-2-content > p:nth-of-type(2) {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.two-images-section-2-content > .u-button-component {
  margin-top: 3.5rem;
}

/* SHRINKING IMAGE SECTION */
.shrinking-image-section {
  display: flex;
  flex-direction: column;
  margin-top: 15rem;
}

.shrinking-image-section .u-section-label-component:first-child {
  padding: 0 var(--horizontal-spacing);
}

.shrinking-image-section > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  padding: 0 var(--horizontal-spacing);
  margin-top: 2rem;
  margin-bottom: 7rem;
}

.shrinking-image-section .shrinking-image-section-image {
  height: 70vh;
}

.shrinking-image-section-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.shrinking-image-section .shrinking-image-section-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 35vh;
}

.shrinking-image-section-content > p:first-child {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
  max-width: 55rem;
}

.shrinking-image-section-content > .u-decor-green {
  margin: 2rem 0;
}

.shrinking-image-section-content > p:nth-of-type(2) {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
  max-width: 55rem;
}

.shrinking-image-section-content > .u-button-component {
  margin-top: 3.5rem;
}

/* HERO */
.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  z-index: 20;
  isolation: isolate;
}

.hero.small-hero {
  min-height: 75vh;
}

.hero.wizard-hero {
  gap: 2rem;
  z-index: 0;
}

.hero .hero-background {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.hero .hero-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero .hero-background .hero-background-overlay {
  position: absolute;
  inset: 0;
  background: #000000;
  opacity: 0.2;
}

.hero.wizard-hero .hero-background .hero-background-overlay {
  opacity: 0.4;
}

.hero .video-hero-content {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  color: var(--color-background);
  padding: 0 var(--horizontal-spacing) 4rem var(--horizontal-spacing);
}

.hero.wizard-hero .hero-pretitle {
  font-size: 2.25rem;
  line-height: 1.3;
  color: var(--color-background);
}

.hero > .hero-title {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: -2.1px;
  text-align: center;
  color: var(--color-background);
}

.hero > .hero-title .smaller-text {
  font-size: 6vw;
}

.hero.small-hero > .hero-title {
  font-size: 5vw;
}

.hero > .hero-subtitle {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  width: 100%;
  max-width: 32rem;
  font-size: 2rem;
  line-height: 1.25;
  letter-spacing: -0.48px;
  text-align: center;
  color: var(--color-background);
  transform: translate(-50%, 0);
}

/* HISTORY SECTION */
.history-section {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.history-year-viewport {
  width: 100%;
  overflow: clip;
}

.history-years-wrapper {
  --active-index: 2;
  display: flex;
  width: 500vw;
  transform: translate(calc(var(--active-index) * -20%), 0);
}

.history-year-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  width: 100vw;
  flex-basis: 100vw;
  flex-shrink: 0;
}

    .history-year-item .history-year-item-decor-image {
        position: absolute;
        width: 20vw;
        aspect-ratio: 3 / 2;
        object-fit: cover;
        object-position: top;
    }

.history-year-item .history-year-item-decor-image:nth-of-type(1) {
  top: 2rem;
  right: 11vw;
}

.history-year-item .history-year-item-decor-image:nth-of-type(2) {
  top: 33.33%;
  left: 11vw;
}

.history-year-item .history-year-item-year {
  font-size: 35vw;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--color-accent);
}

.history-year-item .history-year-item-title {
  font-size: 2rem;
  line-height: 1.3;
  text-align: center;
}

.history-year-item svg {
  width: 4rem;
}

.history-year-item .history-year-item-description {
  font-size: 1.125rem;
  line-height: 1.3;
  text-align: center;
  padding: 0 11vw;
}

.history-years-selectors-wrapper {
  padding: 0 11vw;
}

.history-years-selectors {
  display: flex;
  justify-content: space-between;
  padding-bottom: 1.5rem;
  border-bottom: 1px dotted var(--color-accent);
}

.history-years-selector {
  --translate: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  opacity: 0.5;
  overflow: clip;
}

.history-years-selector button {
  font-size: 2rem;
  line-height: 1.5;
  letter-spacing: -0.32px;
  color: var(--color-accent);
  transform: translate(0, var(--translate));
  cursor: pointer;
}

.history-years-selector svg {
  width: 1.5rem;
  height: 1.5rem;
  rotate: -90deg;
  transform: translate(calc(var(--translate) * -1), 0);
}

.history-years-selector[data-active] {
  --translate: 0%;
  opacity: 1;
}

.history-years-selector[data-active] button {
  cursor: default;
}

/* CONTENT SECTION */
.content-section {
  display: flex;
  flex-direction: column;
  padding: 18rem var(--horizontal-spacing) 9rem var(--horizontal-spacing);
}

.content-section .content-section-title {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.content-section .content-section-subtitle {
  font-size: 2rem;
  line-height: 1.3;
  max-width: 46rem;
  margin-top: 4rem;
}

.content-section > svg {
  width: 4rem;
  margin-top: 2rem;
}

.content-section .content-section-description {
  font-size: 1.125rem;
  line-height: 1.3;
  max-width: 46rem;
  margin-top: 2rem;
}

/* ROOMS GRID SECTION */
.rooms-grid-section {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  padding: 15rem var(--horizontal-spacing);
}

.rooms-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-flow: row;
  column-gap: 1rem;
  row-gap: 7rem;
}

.rooms-grid .room-item {
  display: flex;
  flex-direction: column;
}

.room-item {
    position: relative;
}

    .room-item .u-arrow-button {
        position: static;
    }

        .room-item .u-arrow-button::after {
            content: '';
            position: absolute;
            inset: 0;
            z-index: 1;
        }

    .room-item .room-item-image {
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

.room-item .room-item-heading {
  display: flex;
  align-items: center;
  margin-top: 1.5rem;
}

.room-item .room-item-heading > * {
  flex-shrink: 0;
}

.room-item .room-item-heading .room-item-name {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: -0.16px;
  margin-right: 3rem;
}

.room-item .room-item-heading .u-amenity-chip:not(:last-of-type) {
  margin-right: 1.5rem;
}

.room-item .room-item-description {
  font-size: 1.125rem;
  line-height: 1.3;
  margin-top: 1rem;
  width:50%;
}

.u-arrow-button {
  margin-top: 2rem;
}

/* ROOM INFO SECTION */
.room-info-section {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding: 5rem var(--horizontal-spacing) 15rem var(--horizontal-spacing);
}

.room-info-section .room-info-content-wrapper {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: flex-start;
  gap: 6rem;
}

.room-info-content-wrapper .room-info-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-column: 1 / 4;
  padding-bottom: 3rem;
}

.room-info-content h2 {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: -0.48px;
}

.room-info-content p {
  font-size: 1.125rem;
  line-height: 1.3;
  margin-top: 1.5rem;
}

.room-info-content .u-button-component {
  margin-top: 3rem;
}

/* PROMOTION DETAIL */
.promotion-detail-section .room-info-content-wrapper {
  grid-template-columns: repeat(12, 1fr);
}

.promotion-detail-section .room-info-content {
  grid-column: 2 / 10;
  max-width: 58rem;
}

.promotion-detail-section .room-info-content > h2 {
  max-width: 48rem;
  margin-bottom: 2.5rem;
}

.promotion-rich-text {
  width: 100%;
  color: var(--color-foreground-body);
}

.promotion-rich-text h3,
.promotion-rich-text h4 {
  margin-top: 3rem;
  font-family: "gambetta", serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-foreground-heading);
}

.promotion-rich-text h3:first-child,
.promotion-rich-text h4:first-child {
  margin-top: 0;
}

.promotion-rich-text h3 {
  margin-top: 1.25rem;
  font-family: "pp-pangram-sans", sans-serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-foreground-body);
}

.promotion-rich-text p + h3,
.promotion-rich-text ul + h3,
.promotion-rich-text ol + h3 {
  margin-top: var(--horizontal-spacing);
}

.promotion-rich-text p,
.promotion-rich-text li {
  font-size: 1.125rem;
  line-height: 1.6;
}

.promotion-rich-text p {
  margin-top: 1.25rem;
}

.promotion-rich-text ul,
.promotion-rich-text ol {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-left: 1.35rem;
}

.promotion-rich-text ul {
  list-style: disc;
}

.promotion-rich-text ol {
  list-style: decimal;
}

.promotion-rich-text strong,
.promotion-rich-text b {
  font-weight: 600;
  color: var(--color-foreground-heading);
}

.promotion-rich-text a {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.promotion-rich-text > *:first-child {
  margin-top: 0;
}

.promotion-rich-text table {
  width: 100%;
  margin-top: 2rem;
  margin-bottom: var(--horizontal-spacing);
  border-collapse: collapse;
  font-size: 1.125rem;
  line-height: 1.45;
}

.promotion-rich-text table p {
  margin-top: 0;
  font-size: inherit;
  line-height: inherit;
}

.promotion-rich-text th,
.promotion-rich-text td {
  padding: 1rem 1.25rem;
  border-top: 1px solid rgba(61, 12, 2, 0.22);
  text-align: left;
  vertical-align: top;
}

.promotion-rich-text th {
  font-weight: 600;
  color: var(--color-foreground-heading);
}

.promotion-rich-text tr:last-child th,
.promotion-rich-text tr:last-child td {
  border-bottom: 1px solid rgba(61, 12, 2, 0.22);
}

.room-info-content-wrapper .room-info-amenities {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  grid-column: 4 / 6;
  padding-top: 1rem;
  padding-left: 6rem;
}

.room-info-amenities .amenities-grid {
  display: grid;
  grid-template-columns: repeat(2, auto);
  grid-auto-flow: row;
  column-gap: 1rem;
  row-gap: 2rem;
}

/* ROOM AMENITIES SECTION */
.room-amenities-section {
  display: flex;
  gap: 6rem;
  padding: 12rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
}

.room-amenities-section .room-amenities-list {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.room-amenities-list .u-section-label-component {
  margin-bottom: 4rem;
}

.room-amenities-list .room-amenity {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: -0.48px;
  padding: 1rem 0 2rem 0;
  border-bottom: 1px dotted var(--color-foreground-heading);
}

/* CAROUSEL SECTION */
.carousel-section {
  display: flex;
  flex-direction: column;
  padding-bottom: 12rem;
}

.carousel-section .u-section-label-component {
  padding: 0 var(--horizontal-spacing);
}

.carousel-section h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  padding: 0 var(--horizontal-spacing);
  margin-top: 2rem;
  margin-bottom: var(--vertical-spacing);
}

.carousel-section-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0 var(--horizontal-spacing);
  margin-top: 7rem;
}

.carousel-section-content > .carousel-section-content-title {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
  max-width: 45rem;
}

.carousel-section-content > .u-decor-green {
  margin: 2rem 0;
}

.carousel-section-content > .carousel-section-content-description {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
  max-width: 45rem;
}

.carousel-section-content > .carousel-section-content-footer {
  font-size: 1.125rem;
  line-height: 1.5;
  margin-top: 2rem;
}

.carousel-section-content > .u-button-component {
  margin-top: 3.5rem;
}

/* CONTENT WITH AMENITIES SECTION */
.content-with-amenities-section {
  display: flex;
  gap: 8rem;
  padding: 10rem 12.5rem 15rem var(--horizontal-spacing);
}

.content-with-amenities-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
}

.content-with-amenities-content > p:first-child {
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0;
  max-width: 45rem;
}

.content-with-amenities-content > .u-decor-green {
  margin-top: 2rem;
}

.content-with-amenities-content > p:nth-of-type(2) {
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: 0;
  max-width: 45rem;
  margin-top: 2rem;
}

.content-with-amenities-content > p:nth-of-type(3) {
  font-size: 1.125rem;
  line-height: 1.5;
  margin-top: 2rem;
  margin-top: 1rem;
}

.content-with-amenities-content > .u-button-component {
  margin-top: 3.5rem;
  margin-top: 5rem;
}

.content-with-amenities-amenities {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.content-with-amenities-amenities .u-section-label-component {
  margin-bottom: 4rem;
}

.content-with-amenities-amenity {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: 1.125rem;
  line-height: 1.3;
  letter-spacing: -0.48px;
  padding: 1.25rem 0;
  border-bottom: 1px dotted var(--color-foreground-heading);
}

.content-with-amenities-amenity:nth-last-of-type(1) {
  opacity: 0.25;
}

.content-with-amenities-amenity:nth-last-of-type(2) {
  opacity: 0.5;
}

.content-with-amenities-amenity span:first-child {
  text-transform: uppercase;
}

/* OFFSET GRID SECTION */
.offset-grid-section {
  display: flex;
  flex-direction: column;
  padding: 0 var(--horizontal-spacing) 12rem var(--horizontal-spacing);
}

.offset-grid-section > h2 {
  font-size: 7vw;
  line-height: 1;
  letter-spacing: 0;
  margin-top: 2rem;
}

.offset-grid-section .offset-grid-wrapper {
  display: flex;
  flex-direction: column;
  gap: 10rem;
  margin-top: var(--vertical-spacing);
}

.offset-grid-wrapper .offset-grid-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(auto, 1fr));
  grid-template-rows: auto;
  gap: 8vw;
  padding-bottom: 10rem;
}

.offset-grid-wrapper .offset-grid-item {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.offset-grid-item > .offset-grid-item-description {
  font-size: 1.125rem;
  line-height: 1.3;
}

.offset-grid-item.offset-grid-item-square > .offset-grid-item-image {
  width: 100%;
  aspect-ratio: 1;
  flex-shrink: 0;
  object-fit: cover;
  object-position: center;
}

.offset-grid-item.offset-grid-item-square > .offset-grid-item-description {
  max-width: 67%;
}

.offset-grid-item.offset-grid-item-rect {
  grid-column-end: span 2;
  transform: translate(0, 10rem);
}

.offset-grid-item.offset-grid-item-rect > .offset-grid-item-image {
  width: 100%;
  aspect-ratio: 3 / 2;
  flex-shrink: 0;
  object-fit: cover;
  object-position: center;
}

.offset-grid-item.offset-grid-item-rect > .offset-grid-item-description {
  max-width: 50%;
}

.offset-grid-item.offset-grid-central-item {
  align-self: center;
  width: 70vw;
}

.offset-grid-item.offset-grid-central-item > .offset-grid-item-image {
  width: 100%;
  height: 35rem;
  object-fit: cover;
  object-position: center;
}

.offset-grid-item.offset-grid-central-item > .offset-grid-item-description {
  max-width: 50%;
}

@media only screen and (max-width: 640px) {
  /* VIDEO HERO */
  .video-hero .video-hero-content p {
    flex-direction: column;
    font-size: 1.25rem;
  }

  .video-hero .video-hero-content h1 {
    margin-top: 1rem;
  }

  /* TEXT SECTION */
  .text-section {
    padding: 8rem var(--horizontal-spacing);
  }

  .text-section-content {
    font-size: 1.5rem;
  }

  /* EXPANDING IMAGE SECTION */
  .expanding-image-section {
    --subject-width: 100vw;
    height: auto;
  }

  .expanding-image-section-scrolling-subject {
    --content-gallery-gap: 4rem;
  }

  .expanding-image-section-scrolling-subject-content {
    padding: 8rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
  }

  .expanding-image-section-scrolling-subject-content > p {
    margin-top: 2rem;
  }

  .expanding-image-section-scrolling-subject-gallery-animated-item {
    width: 100vw;
  }

  .expanding-image-section-scrolling-subject-gallery-animated-item
    .expanding-image-section-animated-item-overlay {
    padding: 0 var(--horizontal-spacing);
    opacity: 1;
  }

  .expanding-image-section-animated-item-overlay > p {
    font-size: 7vw;
  }

  /* ONE IMAGE SECTION 1 */
  .one-image-section-1 {
    padding: 8rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
  }

  .one-image-section-1 .one-image-section-1-layout {
    flex-direction: column-reverse;
    margin-top: 2rem;
  }

  .one-image-section-1-content > p:first-child {
    font-size: 7vw;
  }

  .one-image-section-1-content .one-image-section-1-content-footer {
    margin-top: 2rem;
  }

  /* TWO IMAGES SECTION 1 */
  .two-images-section-1 {
    padding: 8rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
  }

  .two-images-section-1 .two-images-section-1-main-image {
    height: 15rem;
    margin-top: 2rem;
  }

  .two-images-section-1-image {
    display: none;
  }

  .two-images-section-1
    .two-images-section-1-layout
    .two-images-section-1-content {
    padding: 0;
  }

  .two-images-section-1-content > .two-images-section-1-content-title {
    font-size: 7vw;
  }

  /* TWO IMAGES SECTION 2 */
  .two-images-section-2 {
    padding: 8rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
  }

  .two-images-section-2 .two-images-section-2-layout-wrapper {
    margin-top: 2rem;
  }

  .two-images-section-2-layout-wrapper .two-images-section-2-main-image {
    display: none;
  }

  .two-images-section-2-layout-wrapper .two-images-section-2-layout {
    gap: 2rem;
  }

  .two-images-section-2-content > p:first-child {
    font-size: 7vw;
  }

  /* SHRINKING IMAGE SECTION */
  .shrinking-image-section {
    margin-top: 8rem;
  }

  .shrinking-image-section > h2 {
    margin-bottom: 2rem;
  }

  .shrinking-image-section .shrinking-image-section-image {
    height: 35vh;
  }

  .shrinking-image-section .shrinking-image-section-content {
    padding: 0 var(--horizontal-spacing);
  }

  .shrinking-image-section-content > p:first-child {
    font-size: 7vw;
  }

  /* HERO */
  .hero {
    padding: 0 var(--horizontal-spacing);
  }

  .hero > .hero-title {
    font-size: 9vw;
  }

  .hero.small-hero > .hero-title {
    font-size: 7vw;
  }

  .hero > .hero-subtitle {
    font-size: 1.5rem;
    padding: 0 var(--horizontal-spacing);
  }

  /* HISTORY SECTION */
  .history-year-item .history-year-item-decor-image:nth-of-type(2) {
    top: 20%;
  }

  .history-year-item .history-year-item-title {
    font-size: 7vw;
  }

  .history-years-selector {
    gap: 0.5rem;
  }

  .history-years-selector button {
    font-size: 1.5rem;
  }

  /* CONTENT SECTION */
  .content-section {
    padding: 8rem var(--horizontal-spacing);
  }

  .content-section .content-section-subtitle {
    font-size: 7vw;
  }

  /* ROOMS GRID SECTION */
  .rooms-grid-section {
    padding: 8rem var(--horizontal-spacing);
  }

  .rooms-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem;
  }

  .room-item .room-item-heading {
    flex-direction: column;
    align-items: flex-start;
  }

  .room-item .room-item-heading .room-item-name {
    font-size: 7vw;
    margin-bottom: 1rem;
  }

  .room-item .room-item-heading .u-amenity-chip:not(:last-of-type) {
    margin-right: 0;
    margin-bottom: 0.25rem;
  }

  /* CAROUSEL SECTION */
  .carousel-section {
    padding-bottom: 15rem;
  }

  .carousel-section h2 {
    margin-bottom: 4rem;
  }

  .carousel-section-content {
    margin-top: 4rem;
  }

  /* CONTENT WITH AMENITIES SECTION */
  .content-with-amenities-section {
    flex-direction: column;
    gap: 8rem;
    padding: 8rem var(--horizontal-spacing) 8rem var(--horizontal-spacing);
  }

  .content-with-amenities-content > p:first-child {
    font-size: 7vw;
  }

  .content-with-amenities-content > .u-button-component {
    margin-top: 2rem;
  }

  .content-with-amenities-amenities .u-section-label-component {
    margin-bottom: 2rem;
  }

  .content-with-amenities-amenity {
    font-size: 1rem;
  }

  /* ROOM INFO SECTION */
  .room-info-section {
    gap: 3rem;
    padding: 8rem var(--horizontal-spacing);
  }

  .room-info-section .room-info-content-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4rem;
  }

  .room-info-content-wrapper .room-info-content {
    padding-bottom: 0;
  }

  .room-info-content h2 {
    font-size: 7vw;
  }

  .promotion-detail-section .room-info-content {
    grid-column: 1 / -1;
  }

  .promotion-detail-section .room-info-content > h2 {
    margin-bottom: 2rem;
  }

  .promotion-rich-text h4 {
    margin-top: 2.25rem;
    font-size: 1.5rem;
  }

  .promotion-rich-text h3 {
    margin-top: 1.25rem;
  }

  .promotion-rich-text p,
  .promotion-rich-text li,
  .promotion-rich-text table {
    font-size: 1rem;
    line-height: 1.55;
  }

  .promotion-rich-text ul,
  .promotion-rich-text ol {
    padding-left: 1.15rem;
  }

  .promotion-rich-text table {
    display: block;
    overflow-x: auto;
  }

  .promotion-rich-text th,
  .promotion-rich-text td {
    min-width: 12rem;
    padding: 0.85rem 1rem;
  }

  .room-info-content-wrapper .room-info-amenities .u-arrow-button {
    margin-top: 0;
  }

  /* ROOM AMENITIES SECTION */
  .room-amenities-section {
    flex-direction: column;
    gap: 4rem;
    padding: 8rem var(--horizontal-spacing) 0 var(--horizontal-spacing);
  }

  .room-amenities-list .u-section-label-component {
    margin-bottom: 2rem;
  }

  .room-amenities-list .room-amenity {
    font-size: 1rem;
  }

  /* OFFSET GRID SECTION */
  .offset-grid-section {
    padding: 0 var(--horizontal-spacing) 8rem var(--horizontal-spacing);
  }

  .offset-grid-section .offset-grid-wrapper {
    gap: 4rem;
  }

  .offset-grid-wrapper .offset-grid-row {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    padding-bottom: 0;
  }

  .offset-grid-wrapper .offset-grid-item {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .offset-grid-item > .offset-grid-item-description {
    font-size: 1.125rem;
    line-height: 1.3;
  }

  .offset-grid-item.offset-grid-item-square > .offset-grid-item-image {
    aspect-ratio: 3 / 2;
  }

  .offset-grid-item.offset-grid-item-square > .offset-grid-item-description {
    max-width: none;
  }

  .offset-grid-item.offset-grid-item-rect {
    transform: none;
  }

  .offset-grid-item.offset-grid-item-rect > .offset-grid-item-description {
    max-width: none;
  }

  .offset-grid-item.offset-grid-central-item {
    align-self: stretch;
    width: 100%;
  }

  .offset-grid-item.offset-grid-central-item > .offset-grid-item-image {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .offset-grid-item.offset-grid-central-item > .offset-grid-item-description {
    max-width: none;
  }
}
