.st-page {
  --st-cream: #ffefd9;
  --st-teal: #1e6369;
  --st-yellow: #ffcd2a;
  --st-ink: #173f42;
  --st-white: #fffdf8;
  --st-ease: cubic-bezier(0.32, 0.72, 0, 1);
  --st-gutter: clamp(1.25rem, 4.5vw, 5.5rem);
  overflow: clip;
  background: var(--st-cream);
  color: var(--st-ink);
  font-family: "Poppins", sans-serif;
}

.st-page h1,
.st-page h2,
.st-page p,
.st-page figure { margin: 0; }

.st-page h1,
.st-page h2 {
  font-family: "Marcellus SC", Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.st-pill {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.35rem 0.4rem 0.35rem 1.2rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 180ms var(--st-ease), background-color 180ms var(--st-ease), color 180ms var(--st-ease);
}

.st-arrow {
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgb(30 99 105 / 10%);
  transition: transform 180ms var(--st-ease), background-color 180ms var(--st-ease);
}

.st-arrow > span {
  position: relative;
  width: 0.8rem;
  height: 1px;
  display: block;
  background: currentColor;
  transform: rotate(-36deg);
}

.st-arrow > span::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -0.2rem;
  width: 0.38rem;
  height: 0.38rem;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
}

.st-pill:hover,
.st-text-cta:hover { transform: translateY(-3px); }

.st-pill:hover .st-arrow,
.st-text-cta:hover .st-arrow { transform: translate(2px, -2px) scale(1.04); }

.st-pill:active { transform: scale(0.98); }

.st-hero {
  position: relative;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(23rem, 0.85fr);
  background: var(--st-teal);
  color: var(--st-white);
}

.st-hero-image {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
}

.st-hero-image img {
  object-fit: cover;
  animation: st-hero-image 1.4s var(--st-ease) both;
}

.st-hero-wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(8 34 36 / 8%) 40%, rgb(8 34 36 / 48%));
  pointer-events: none;
}

.st-hero-copy {
  align-self: end;
  padding: 9rem var(--st-gutter) clamp(6rem, 12vh, 9rem);
  animation: st-hero-copy 1s 120ms var(--st-ease) both;
}

.st-hero-copy > p:first-child,
.st-cottage-copy > p:first-child,
.st-book-copy > p {
  margin-bottom: 1.5rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.st-hero h1 {
  max-width: 8ch;
  font-size: clamp(3.5rem, 6.8vw, 6rem);
  line-height: 0.92;
}

.st-flourish {
  width: 5rem;
  height: 1px;
  display: block;
  margin: 2rem 0;
  background: var(--st-yellow);
}

.st-hero-intro {
  max-width: 34rem;
  margin-bottom: 2rem !important;
  color: rgb(255 253 248 / 82%);
  font-size: clamp(1rem, 1.3vw, 1.16rem);
  font-weight: 300;
  line-height: 1.75;
}

.st-pill-sun {
  background: var(--st-yellow);
  color: var(--st-ink);
}

.st-pill-sun .st-arrow { background: rgb(23 63 66 / 12%); }

.st-scroll {
  position: absolute;
  bottom: 2rem;
  left: var(--st-gutter);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--st-white);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-decoration: none;
  text-transform: uppercase;
}

.st-intro {
  width: min(calc(100% - (2 * var(--st-gutter))), 82rem);
  min-height: 43rem;
  display: grid;
  grid-template-columns: 0.45fr 1.4fr;
  align-items: center;
  gap: clamp(3rem, 9vw, 10rem);
  margin-inline: auto;
  padding-block: clamp(7rem, 13vw, 11rem);
}

.st-intro-note {
  align-self: start;
  padding-top: 0.8rem;
  color: var(--st-teal);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.st-intro h2,
.st-details h2,
.st-book h2 {
  font-size: clamp(2.8rem, 5.7vw, 5.8rem);
  line-height: 0.98;
}

.st-intro div > p {
  max-width: 42rem;
  margin-top: 2rem;
  color: rgb(23 63 66 / 78%);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 300;
  line-height: 1.8;
}

.st-cottages {
  display: grid;
  gap: clamp(8rem, 15vw, 14rem);
  padding: clamp(7rem, 12vw, 11rem) var(--st-gutter);
  background: var(--st-white);
}

.st-cottage {
  width: min(100%, 88rem);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.72fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 9rem);
  margin-inline: auto;
}

.st-cottage-2 {
  grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.45fr);
}

.st-cottage-2 .st-bezel { order: 2; }

.st-bezel {
  padding: 0.45rem;
  border: 1px solid rgb(30 99 105 / 10%);
  border-radius: 20px;
  background: rgb(30 99 105 / 5%);
  box-shadow: 0 2rem 5rem rgb(23 63 66 / 8%);
}

.st-photo-core {
  position: relative;
  min-height: clamp(31rem, 57vw, 48rem);
  overflow: hidden;
  border-radius: 14px;
  background: var(--st-cream);
}

.st-photo-core img {
  object-fit: cover;
  transition: transform 280ms var(--st-ease);
}

.st-bezel:hover img { transform: scale(1.025); }

.st-photo-core > span {
  position: absolute;
  right: 1.2rem;
  bottom: 1.2rem;
  padding: 0.5rem 0.8rem;
  border-radius: 999px;
  background: rgb(255 253 248 / 88%);
  color: var(--st-teal);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.st-cottage-copy > p:first-child { color: var(--st-teal); }

.st-cottage-copy h2 {
  margin-bottom: 1.6rem;
  color: var(--st-teal);
  font-size: clamp(2.6rem, 4.6vw, 4.8rem);
  line-height: 0.98;
}

.st-description {
  max-width: 34rem;
  margin-bottom: 2rem !important;
  color: rgb(23 63 66 / 80%);
  font-weight: 300;
  line-height: 1.8;
}

.st-text-cta {
  min-height: 48px;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: var(--st-teal);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 180ms var(--st-ease);
}

.st-text-cta .st-arrow {
  border: 1px solid rgb(30 99 105 / 18%);
  background: transparent;
}

.st-details {
  padding: 0 var(--st-gutter) clamp(6rem, 10vw, 9rem);
  background: var(--st-teal);
  color: var(--st-white);
}

.st-details-copy.editorial-band {
  width: min(100%, 80rem);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  margin: 0 auto clamp(3.5rem, 6vw, 5.5rem);
  padding-block: clamp(4.5rem, 7vw, 7rem);
}

.st-details-copy .editorial-band__copy {
  max-width: 32rem;
  color: rgb(255 253 248 / 86%);
  font-weight: 300;
  line-height: 1.8;
}

.st-carousel {
  width: min(100%, 88rem);
  margin-inline: auto;
}

.st-carousel-shell {
  position: relative;
  padding: .45rem;
  border-radius: 20px;
  background: rgb(255 253 248 / 12%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 18%);
}

.st-carousel-track {
  height: clamp(36rem, 60vw, 52rem);
  display: flex;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border-radius: 16px;
  background: var(--st-ink);
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  user-select: none;
  -webkit-overflow-scrolling: touch;
}

.st-carousel-track::-webkit-scrollbar { display: none; }

.st-carousel-slide {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  flex: 0 0 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.st-carousel-slide::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgb(7 31 33 / 8%) 28%, rgb(7 31 33 / 82%) 100%);
  pointer-events: none;
}

.st-carousel-media {
  position: absolute;
  z-index: -2;
  inset: 0;
}

.st-carousel-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .78;
  transform: scale(1.045);
  transition: opacity 420ms cubic-bezier(.32, .72, 0, 1), transform 700ms cubic-bezier(.32, .72, 0, 1);
}

.st-carousel-slide.is-active .st-carousel-media img { opacity: 1; transform: scale(1); }

.st-carousel-copy {
  position: absolute;
  z-index: 1;
  bottom: clamp(2.5rem, 5vw, 5rem);
  left: clamp(1.5rem, 5vw, 5rem);
  width: min(calc(100% - 3rem), 38rem);
  opacity: 0;
  transform: translateY(1.75rem);
  transition: opacity 320ms cubic-bezier(.32, .72, 0, 1), transform 480ms cubic-bezier(.32, .72, 0, 1);
}

.st-carousel-slide.is-active .st-carousel-copy { opacity: 1; transform: translateY(0); }

.st-carousel-copy h3 {
  max-width: 14ch;
  margin: 0;
  color: var(--st-white);
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 3.8vw, 4.3rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.st-carousel-controls {
  position: absolute;
  z-index: 2;
  top: clamp(4.75rem, 8vw, 6rem);
  right: 1.5rem;
  min-height: 3.25rem;
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .25rem .3rem .25rem 1rem;
  border-radius: 999px;
  background: rgb(255 253 248 / 92%);
  box-shadow: 0 .5rem 1.5rem rgb(8 44 46 / 12%), inset 0 1px 0 rgb(255 255 255 / 72%);
  color: var(--st-ink);
  backdrop-filter: blur(12px) saturate(120%);
}

.st-carousel-count { font-size: .7rem; font-weight: 600; letter-spacing: .14em; }

.st-carousel-preview {
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--st-yellow);
  color: var(--st-ink);
  cursor: pointer;
  transition: transform 220ms cubic-bezier(.23, 1, .32, 1), background-color 220ms cubic-bezier(.23, 1, .32, 1);
}

.st-carousel-preview > span {
  position: relative;
  width: .75rem;
  height: .75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .18rem;
}

.st-carousel-preview .is-pause i {
  width: 2px;
  height: .68rem;
  display: block;
  border-radius: 1px;
  background: currentColor;
}

.st-carousel-preview .is-play i:first-child {
  width: 0;
  height: 0;
  display: block;
  border-top: .36rem solid transparent;
  border-bottom: .36rem solid transparent;
  border-left: .55rem solid currentColor;
  transform: translateX(.06rem);
}

.st-carousel-preview .is-play i:last-child { display: none; }

.st-carousel-nav {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 3.5rem;
  height: 3.5rem;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgb(255 253 248 / 92%);
  box-shadow: 0 .75rem 2rem rgb(8 44 46 / 20%), inset 0 1px 0 rgb(255 255 255 / 72%);
  color: var(--st-ink);
  font: inherit;
  font-size: 1.2rem;
  cursor: pointer;
  transform: translateY(-50%);
  backdrop-filter: blur(12px) saturate(120%);
  transition: transform 240ms cubic-bezier(.23, 1, .32, 1), background-color 240ms cubic-bezier(.23, 1, .32, 1);
}

.st-carousel-nav-prev { left: 1.5rem; }
.st-carousel-nav-next { right: 1.5rem; }

.st-carousel-progress {
  position: absolute;
  z-index: 2;
  right: 1.5rem;
  bottom: 1.25rem;
  left: 1.5rem;
  height: 1px;
  overflow: hidden;
  background: rgb(255 253 248 / 34%);
}

.st-carousel-progress i {
  width: 100%;
  height: 100%;
  display: block;
  transform-origin: left;
  background: var(--st-yellow);
  transition: transform 700ms cubic-bezier(.32, .72, 0, 1);
}

@media (hover: hover) and (pointer: fine) {
  .st-carousel-preview:hover { transform: scale(1.06); background: var(--st-cream); }
  .st-carousel-nav:hover { transform: translateY(-50%) scale(1.06); background: var(--st-yellow); }
}

.st-carousel-preview:active,
.st-carousel-nav:active { transition-duration: 120ms; }

.st-carousel-preview:active { transform: scale(.94); }
.st-carousel-nav:active { transform: translateY(-50%) scale(.94); }

@media (prefers-reduced-transparency: reduce) {
  .st-carousel-controls,
  .st-carousel-nav { background: var(--st-white); backdrop-filter: none; }
}

.st-book {
  position: relative;
  min-height: 52rem;
  display: grid;
  place-items: center;
  isolation: isolate;
  overflow: hidden;
  color: var(--st-white);
  text-align: center;
}

.st-book-picture { position: absolute; z-index: -2; inset: 0; }
.st-book-picture img { width: 100%; height: 100%; object-fit: cover; }

.st-book-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgb(8 44 46 / 62%);
}

.st-book-copy {
  width: min(calc(100% - 2.5rem), 58rem);
}

.st-book h2 { margin-bottom: 2.5rem; }

@keyframes st-hero-image {
  from { opacity: 0.72; transform: scale(1.035); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes st-hero-copy {
  from { opacity: 0; transform: translateY(2rem); }
  to { opacity: 1; transform: translateY(0); }
}

@supports (animation-timeline: view()) {
  .st-cottage,
  .st-intro > div,
  .st-details-copy,
  .st-carousel {
    animation: st-reveal both var(--st-ease);
    animation-timeline: view();
    animation-range: entry 8% cover 32%;
  }

  @keyframes st-reveal {
    from { opacity: 0.2; transform: translateY(2.5rem); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (max-width: 900px) {
  .st-details-copy.editorial-band {
    grid-template-columns: minmax(0, 1fr);
  }
  .st-details-copy.editorial-band > .editorial-band__title,
  .st-details-copy.editorial-band > .wave-editorial-copy {
    min-width: 0;
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .st-hero { min-height: 100dvh; grid-template-columns: 1fr; }
  .st-hero-image { min-height: 54dvh; }
  .st-hero-wash { background: linear-gradient(180deg, transparent 50%, rgb(30 99 105 / 68%)); }
  .st-hero-copy > p:first-child,
  .st-cottage-copy > p:first-child,
  .st-book-copy > p,
  .st-scroll { font-size: 0.72rem; letter-spacing: 0.14em; }
  .st-hero-copy {
    align-self: auto;
    padding: 3rem 1.25rem 6.5rem;
  }
  .st-hero h1 { max-width: 10ch; font-size: clamp(3rem, 14vw, 4.7rem); }
  .st-scroll { left: 1.25rem; bottom: 1.25rem; }
  .st-intro,
  .st-cottage,
  .st-cottage-2,
  .st-details-copy {
    grid-template-columns: 1fr;
  }
  .st-intro {
    width: 100%;
    min-height: 0;
    gap: 2rem;
    padding: 7rem 1.25rem;
  }
  .st-intro-note { padding-top: 0; }
  .st-cottages { gap: 7rem; padding: 7rem 1.25rem; }
  .st-cottage { gap: 2.5rem; }
  .st-cottage-2 .st-bezel { order: 0; }
  .st-photo-core { min-height: 31rem; }
  .st-details { padding: 0 1.25rem 7rem; }
  .st-details-copy.editorial-band { gap: 2rem; margin-bottom: 3.5rem; }
  .st-carousel-shell { padding: .35rem; border-radius: 20px; }
  .st-carousel-track { height: clamp(34rem, 70dvh, 40rem); border-radius: 16px; }
  .st-carousel-copy { right: 1.5rem; bottom: 2.25rem; left: 1.5rem; width: auto; }
  .st-carousel-copy h3 { max-width: 13ch; font-size: 2.15rem; }
  .st-carousel-controls { top: 4.5rem; right: 1rem; min-height: 2.75rem; }
  .st-carousel-nav { width: 3rem; height: 3rem; }
  .st-carousel-nav-prev { left: .85rem; }
  .st-carousel-nav-next { right: .85rem; }
  .st-carousel-progress { right: 1rem; bottom: .9rem; left: 1rem; }
  .st-book { min-height: 46rem; }
}

@media (prefers-reduced-motion: reduce) {
  .st-page *,
  .st-page *::before,
  .st-page *::after {
    animation: none !important;
    transition: none !important;
  }
  .st-carousel-track { scroll-behavior: auto; }
}

/* Elementor Free adds layout wrappers; the theme remains the visual source of truth. */
.st-page .elementor .e-con {
  --padding-top: 0;
  --padding-right: 0;
  --padding-bottom: 0;
  --padding-left: 0;
  --gap: 0;
  max-width: none;
}
.st-page .elementor-widget { margin: 0; }
.st-page .elementor .st-hero,
.st-page .elementor .st-intro,
.st-page .elementor .st-cottages,
.st-page .elementor .st-cottage,
.st-page .elementor .st-details-copy,
.st-page .elementor .st-book { display: grid; }
.st-page .elementor .st-hero-image,
.st-page .elementor .st-hero-copy,
.st-page .elementor .st-intro-copy,
.st-page .elementor .st-bezel,
.st-page .elementor .st-photo-core,
.st-page .elementor .st-cottage-copy,
.st-page .elementor .st-details,
.st-page .elementor .st-carousel,
.st-page .elementor .st-carousel-shell,
.st-page .elementor .st-carousel-slide,
.st-page .elementor .st-book-copy { display: block; }
.st-page .elementor .st-carousel-track { display: flex; flex-direction: row; }
.st-page .elementor .st-hero { min-height: 100dvh; grid-template-columns: minmax(0, 1.55fr) minmax(23rem, .85fr); }
.st-page .elementor .st-hero-image { min-height: 100dvh; }
.st-page .elementor .st-hero-wash,
.st-page .elementor .st-book-shade {
  position: absolute;
  inset: 0;
  display: block;
}
.st-page .elementor .st-book-shade { z-index: -1; }
.st-page .elementor .st-hero-copy { align-self: end; padding: 9rem var(--st-gutter) clamp(6rem, 12vh, 9rem); }
.st-page .elementor .st-intro { width: min(calc(100% - (2 * var(--st-gutter))), 82rem); min-height: 43rem; grid-template-columns: .45fr 1.4fr; align-items: center; gap: clamp(3rem, 9vw, 10rem); margin-inline: auto; padding-block: clamp(7rem, 13vw, 11rem); }
.st-page .elementor .st-cottages { gap: clamp(8rem, 15vw, 14rem); padding: clamp(7rem, 12vw, 11rem) var(--st-gutter); }
.st-page .elementor .st-cottage { width: min(100%, 88rem); grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .72fr); align-items: center; gap: clamp(3rem, 8vw, 9rem); margin-inline: auto; }
.st-page .elementor .st-cottage-2 { grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.45fr); }
.st-page .elementor .st-bezel { padding: .45rem; }
.st-page .elementor .st-photo-core { min-height: clamp(31rem, 57vw, 48rem); overflow: hidden; border-radius: 14px; }
.st-page .elementor .st-details { padding: 0 var(--st-gutter) clamp(6rem, 10vw, 9rem); }
.st-page .elementor .st-details-copy { width: min(100%, 80rem); grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: clamp(1.5rem, 3vw, 3rem); margin: 0 auto clamp(3.5rem, 6vw, 5.5rem); padding-block: clamp(4.5rem, 7vw, 7rem); }
.st-page .elementor .st-carousel { width: min(100%, 88rem); margin-inline: auto; }
.st-page .elementor .st-carousel-shell { padding: .45rem; }
.st-page .elementor .st-carousel-track { height: clamp(36rem, 60vw, 52rem); overflow-x: auto; border-radius: 16px; }
.st-page .elementor .st-carousel-slide { height: 100%; isolation: isolate; overflow: hidden; flex: 0 0 100%; }
.st-page .elementor .st-carousel-media { position: absolute; z-index: -2; inset: 0; display: block; }
.st-page .elementor .st-carousel-copy { position: absolute; z-index: 1; bottom: clamp(2.5rem, 5vw, 5rem); left: clamp(1.5rem, 5vw, 5rem); width: min(calc(100% - 3rem), 38rem); display: block; }
.st-page .elementor .st-book { min-height: 52rem; place-items: center; }
.st-page .elementor .st-book-copy { width: min(calc(100% - 2.5rem), 58rem); align-self: center; justify-self: center; }
.st-page .elementor .st-book-copy,
.st-page .elementor .st-book-copy .elementor-heading-title { text-align: center; }

.st-page .wave-image-fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.st-page .wave-image-fill img { width: 100%; height: 100%; display: block; object-fit: cover; }
.st-page .wave-image-mobile { display: none; }
.st-page .wave-semantic-control,
.st-page .wave-semantic-control > .elementor-widget-container { display: contents; }

.st-page .st-eyebrow > p,
.st-page .st-intro-note > p,
.st-page .st-cottage-eyebrow > p,
.st-page .st-description > p,
.st-page .st-book-eyebrow > p,
.st-page .st-intro-copy > .elementor-widget-text-editor > p { margin: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.st-page .st-hero-copy > .st-eyebrow,
.st-page .st-cottage-copy > .st-cottage-eyebrow,
.st-page .st-book-copy > .st-book-eyebrow { margin-block-end: 1.5rem !important; font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.st-page .elementor .st-intro-note { align-self: start; }
.st-page .st-intro-copy > .elementor-widget-text-editor { max-width: 42rem; margin-top: 2rem; color: rgb(23 63 66 / 78%); font-size: clamp(1.05rem, 1.5vw, 1.35rem); font-weight: 300; line-height: 1.8; }
.st-page .st-photo-badge {
  position: absolute;
  right: 1.2rem;
  bottom: 1.2rem;
  z-index: 1;
  width: auto;
  padding: .5rem .8rem;
  border-radius: 999px;
  background: rgb(255 253 248 / 88%);
  color: var(--st-teal);
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.st-page .st-description { max-width: 34rem; margin-bottom: 2rem; color: rgb(23 63 66 / 80%); font-weight: 300; line-height: 1.8; }
.st-page .editorial-band__title { grid-column: 1 / 7; }
.st-page .wave-editorial-copy { max-width: 32rem; grid-column: 8 / 13; }
.st-page .wave-editorial-copy > .editorial-band__copy {
  padding-top: 1.5rem;
  border-top: 1px solid currentColor;
  opacity: .82;
}

.st-page .st-pill,
.st-page .st-text-cta { padding: 0; background: transparent; }
.st-page .elementor .st-pill,
.st-page .elementor .st-text-cta { width: auto; max-width: max-content; flex: 0 0 auto; }
.st-page .st-pill .elementor-button,
.st-page .st-text-cta .elementor-button {
  min-height: inherit;
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  padding: inherit;
  border-radius: inherit;
  background: inherit;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
.st-page .st-pill-sun .elementor-button { padding: .35rem .4rem .35rem 1.2rem; background: var(--st-yellow); }
.st-page .st-text-cta .elementor-button { padding: 0; background: transparent; }

@media (max-width: 767px) {
  .st-page .wave-image-desktop { display: none; }
  .st-page .wave-image-mobile { display: block; }
  .st-page .elementor .st-hero,
  .st-page .elementor .st-intro,
  .st-page .elementor .st-cottage,
  .st-page .elementor .st-cottage-2,
  .st-page .elementor .st-details-copy { grid-template-columns: 1fr; }
  .st-page .elementor .st-hero { min-height: 100dvh; }
  .st-page .elementor .st-hero-image { min-height: 54dvh; }
  .st-page .elementor .st-hero-copy { padding: 3rem 1.25rem 6.5rem; }
  .st-page .elementor .st-intro { min-height: 0; gap: 2rem; padding-block: 7rem; }
  .st-page .elementor .st-cottages { gap: 7rem; padding: 7rem 1.25rem; }
  .st-page .elementor .st-cottage { gap: 2.5rem; }
  .st-page .elementor .st-photo-core { min-height: 31rem; }
  .st-page .elementor .st-details { padding: 0 1.25rem 7rem; }
  .st-page .elementor .st-details-copy { gap: 2rem; margin-bottom: 3.5rem; }
  .st-page .elementor .st-carousel-shell { padding: .35rem; }
  .st-page .elementor .st-carousel-track { height: clamp(34rem, 70dvh, 40rem); }
  .st-page .elementor .st-carousel-copy { right: 1.5rem; bottom: 2.25rem; left: 1.5rem; width: auto; }
  .st-page .elementor .st-book { min-height: 46rem; }
  .st-page .editorial-band__title,
  .st-page .wave-editorial-copy { grid-column: auto; }
  .st-page .st-hero-copy > .st-eyebrow,
  .st-page .st-cottage-copy > .st-cottage-eyebrow,
  .st-page .st-book-copy > .st-book-eyebrow {
    font-size: .72rem;
    letter-spacing: .14em;
  }
}

.st-page .elementor .st-carousel-track { --flex-wrap-mobile: nowrap !important; flex-wrap: nowrap !important; }