.holiday-home-guide {
  --holiday-navy: #102942;
  --holiday-ink: #1b2c3f;
  --holiday-body: #445569;
  --holiday-muted: #677587;
  --holiday-mist: #eef3f6;
  --holiday-warm: #b98a45;
  --holiday-warm-soft: #e6d6bc;
  --holiday-line: #d8e0e6;
  --holiday-white: #fff;
  --holiday-serif: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;
  --holiday-sans: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  --holiday-shell: 1480px;
  --holiday-gutter: clamp(1.25rem, 4.4vw, 4rem);
  width: 100%;
  min-width: 0;
  max-width: 100%;
  color: var(--holiday-body);
  background: var(--holiday-white);
  font-family: var(--holiday-sans);
  font-size: 1rem;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.holiday-home-guide,
.holiday-home-guide *,
.holiday-home-guide *::before,
.holiday-home-guide *::after {
  box-sizing: border-box;
}

.holiday-home-guide ::selection {
  color: var(--holiday-navy);
  background: var(--holiday-warm-soft);
}

.holiday-home-guide img {
  display: block;
  max-width: 100%;
}

.holiday-home-guide a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}

.holiday-home-guide a:focus-visible {
  outline: 3px solid var(--holiday-warm);
  outline-offset: 4px;
}

.holiday-home-guide .holiday-home-shell {
  width: min(var(--holiday-shell), calc(100% - (2 * var(--holiday-gutter))));
  min-width: 0;
  margin-inline: auto;
}

.holiday-home-guide h1,
.holiday-home-guide h2 {
  margin: 0;
  color: var(--holiday-navy);
  font-family: var(--holiday-serif);
  font-weight: 400;
  text-wrap: balance;
}

.holiday-home-guide h1 {
  max-width: 10.5ch;
  font-size: clamp(3.4rem, 5.2vw, 5.6rem);
  letter-spacing: -.028em;
  line-height: .98;
}

.holiday-home-guide h2 {
  max-width: 12ch;
  font-size: clamp(2.4rem, 3.5vw, 3.9rem);
  letter-spacing: -.022em;
  line-height: 1.02;
}

.holiday-home-guide p {
  margin-top: 0;
}

.holiday-home-opening {
  padding-block: clamp(3rem, 5.5vw, 6rem);
  border-bottom: 1px solid var(--holiday-line);
  background: var(--holiday-white);
}

.holiday-home-opening__grid {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  grid-template-areas:
    "title image"
    "lead image";
  gap: clamp(1.75rem, 3.4vw, 4rem) clamp(2rem, 4vw, 5rem);
  align-items: start;
}

.holiday-home-opening h1 {
  grid-area: title;
  align-self: end;
}

.holiday-home-opening__lead {
  grid-area: lead;
  max-width: 36rem;
  align-self: start;
}

.holiday-home-opening__lead p {
  margin-bottom: 0;
  color: var(--holiday-ink);
  font-family: var(--holiday-serif);
  font-size: clamp(1.25rem, 1.55vw, 1.55rem);
  line-height: 1.48;
}

.holiday-home-opening__image {
  position: relative;
  z-index: 0;
  grid-area: image;
  align-self: stretch;
  min-width: 0;
  min-height: clamp(28rem, 40vw, 38rem);
  margin: 0;
  overflow: hidden;
  background: var(--holiday-mist);
  isolation: isolate;
}

.holiday-home-opening__image picture,
.holiday-home-profile__image picture {
  display: contents;
}

.holiday-home-opening__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 54%;
  filter: saturate(.94) contrast(1.025) brightness(.99);
}

.holiday-home-shortcuts {
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border-bottom: 1px solid var(--holiday-line);
  background: var(--holiday-white);
}

.holiday-home-shortcuts__viewport {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.holiday-home-shortcuts__viewport::-webkit-scrollbar {
  display: none;
}

.holiday-home-shortcuts__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.holiday-home-shortcut {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 5.35rem;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .85rem;
  align-items: center;
  margin-right: .8rem;
  padding: .95rem 1.4rem .95rem .55rem;
  text-decoration: none;
  scroll-snap-align: start;
}

.holiday-home-shortcut:not(:last-child)::after {
  position: absolute;
  top: 1rem;
  right: 0;
  bottom: 1rem;
  width: 1px;
  background: var(--holiday-line);
  content: "";
}

.holiday-home-shortcut__number {
  color: #788897;
  font: 400 1rem/1.35 var(--holiday-serif);
}

.holiday-home-shortcut__title {
  color: var(--holiday-navy);
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.3;
}

.holiday-home-shortcut:hover,
.holiday-home-shortcut:focus-visible {
  background: #faf8f4;
  box-shadow: inset 1px 0 0 rgba(180, 134, 69, .55);
}

.holiday-home-shortcut:hover .holiday-home-shortcut__title,
.holiday-home-shortcut:focus-visible .holiday-home-shortcut__title {
  color: #755735;
}

.holiday-home-guide .shortcut-scroll-hint {
  display: none;
}

.holiday-home-profile {
  padding-block: clamp(5rem, 7.5vw, 8.5rem);
  border-bottom: 1px solid var(--holiday-line);
  scroll-margin-top: 1.5rem;
}

.holiday-home-profile--mist {
  background: var(--holiday-mist);
}

.holiday-home-profile__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr) minmax(10rem, 12rem);
  grid-template-areas:
    "image heading related"
    "image body related";
  column-gap: clamp(2rem, 4vw, 5.25rem);
  row-gap: clamp(1.5rem, 2vw, 2.25rem);
  align-items: start;
}

.holiday-home-profile__heading {
  grid-area: heading;
  min-width: 0;
  padding-bottom: clamp(1.25rem, 2vw, 2rem);
  border-bottom: 1px solid var(--holiday-warm-soft);
}

.holiday-home-profile__image {
  position: relative;
  grid-area: image;
  min-width: 0;
  margin: 0;
  background: var(--holiday-mist);
}

.holiday-home-profile__image::after {
  position: absolute;
  z-index: 1;
  inset: .75rem -.75rem -.75rem .75rem;
  border-right: 1px solid rgba(185, 138, 69, .45);
  border-bottom: 1px solid rgba(185, 138, 69, .45);
  content: "";
  pointer-events: none;
}

.holiday-home-profile__image img {
  position: relative;
  z-index: 2;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.holiday-home-profile__image--pied-a-terre img,
.holiday-home-profile__image--place-in-the-sun img {
  aspect-ratio: 16 / 10;
}

.holiday-home-profile__image--pied-a-terre img {
  object-position: center 58%;
}

.holiday-home-profile__image--family-home img {
  object-position: center 54%;
}

.holiday-home-profile__image--statement img {
  object-position: center 48%;
}

.holiday-home-profile__body {
  grid-area: body;
  min-width: 0;
  max-width: 70ch;
}

.holiday-home-profile__body p {
  margin-bottom: 1.4rem;
  overflow-wrap: break-word;
}

.holiday-home-profile__body p:first-child {
  color: var(--holiday-ink);
  font-family: var(--holiday-serif);
  font-size: clamp(1.12rem, 1.3vw, 1.3rem);
  line-height: 1.58;
}

.holiday-home-profile__body p:last-child {
  margin-bottom: 0;
}

.holiday-home-related {
  grid-area: related;
  align-self: start;
  min-width: 0;
  padding-top: .2rem;
}

.holiday-home-related__label {
  display: block;
  margin-bottom: .85rem;
  color: var(--holiday-muted);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.holiday-home-related__list {
  display: grid;
  gap: 1rem;
}

.holiday-home-related a {
  display: inline-flex;
  min-height: 2.75rem;
  gap: .6rem;
  align-items: baseline;
  color: var(--holiday-navy);
  font-family: var(--holiday-serif);
  font-size: clamp(1.06rem, 1.25vw, 1.22rem);
  line-height: 1.4;
  text-decoration: none;
}

.holiday-home-related__text {
  overflow-wrap: anywhere;
  text-decoration-line: underline;
  text-decoration-color: rgba(16, 41, 66, .45);
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.holiday-home-related__arrow {
  flex: 0 0 auto;
  color: var(--holiday-warm);
  transition: transform 180ms ease;
}

.holiday-home-related a:hover .holiday-home-related__text,
.holiday-home-related a:focus-visible .holiday-home-related__text {
  text-decoration-color: currentColor;
}

.holiday-home-related a:hover .holiday-home-related__arrow,
.holiday-home-related a:focus-visible .holiday-home-related__arrow {
  transform: translateX(4px);
}

.holiday-home-next-steps {
  padding-block: clamp(5rem, 7.5vw, 8rem);
  border-bottom: 1px solid var(--holiday-line);
  background: var(--holiday-white);
}

.holiday-home-next-steps__inner {
  min-width: 0;
}

.holiday-home-next-steps__header {
  max-width: 56rem;
  margin-bottom: clamp(2.5rem, 4vw, 4.25rem);
}

.holiday-home-next-steps__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--holiday-line);
}

.holiday-home-next-step {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(3.5rem, 4.5rem) minmax(0, 1fr) minmax(10rem, 13rem);
  gap: clamp(1.5rem, 3vw, 3.5rem);
  align-items: start;
  padding-block: clamp(1.75rem, 2.8vw, 2.75rem);
  border-top: 1px solid var(--holiday-line);
}

.holiday-home-next-step__number {
  padding-top: .2rem;
  color: var(--holiday-warm);
  font-family: var(--holiday-serif);
  font-size: 1.05rem;
  line-height: 1.4;
  letter-spacing: .04em;
}

.holiday-home-next-step__content {
  min-width: 0;
}

.holiday-home-next-step__content h3 {
  max-width: 28ch;
  margin: 0 0 .65rem;
  color: var(--holiday-navy);
  font-family: var(--holiday-serif);
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.014em;
  text-wrap: balance;
}

.holiday-home-next-step__content p {
  max-width: 62ch;
  margin-bottom: 0;
  color: var(--holiday-body);
}

.holiday-home-next-step__related {
  min-width: 0;
}

.holiday-home-next-step__label {
  display: block;
  margin-bottom: .55rem;
  color: var(--holiday-muted);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.holiday-home-next-step__related a {
  display: inline-flex;
  min-height: 2.75rem;
  gap: .6rem;
  align-items: baseline;
  color: var(--holiday-navy);
  font-family: var(--holiday-serif);
  font-size: clamp(1.06rem, 1.25vw, 1.22rem);
  line-height: 1.4;
  text-decoration: none;
}

.holiday-home-next-step__link-text {
  overflow-wrap: anywhere;
  text-decoration-line: underline;
  text-decoration-color: rgba(16, 41, 66, .45);
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.holiday-home-next-step__arrow {
  flex: 0 0 auto;
  color: var(--holiday-warm);
  transition: transform 180ms ease;
}

.holiday-home-next-step__related a:hover .holiday-home-next-step__link-text,
.holiday-home-next-step__related a:focus-visible .holiday-home-next-step__link-text {
  text-decoration-color: currentColor;
}

.holiday-home-next-step__related a:hover .holiday-home-next-step__arrow,
.holiday-home-next-step__related a:focus-visible .holiday-home-next-step__arrow {
  transform: translateX(4px);
}

@media (max-width: 1120px) {
  .holiday-home-profile__grid {
    grid-template-columns: minmax(16rem, .75fr) minmax(0, 1.25fr);
    grid-template-areas:
      "image heading"
      "image body"
      "image related";
    column-gap: clamp(2rem, 4vw, 3.5rem);
  }

  .holiday-home-related {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: 1rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--holiday-line);
  }

  .holiday-home-related__label {
    margin: .22rem 0 0;
  }

  .holiday-home-related__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem 1.5rem;
  }
}

@media (max-width: 1080px) {
  .holiday-home-shortcuts::before,
  .holiday-home-shortcuts::after {
    position: absolute;
    z-index: 2;
    top: 0;
    width: 1.75rem;
    height: 5.35rem;
    content: "";
    pointer-events: none;
  }

  .holiday-home-shortcuts::before {
    left: 0;
    background: linear-gradient(90deg, var(--holiday-white), rgba(255, 255, 255, 0));
    opacity: 0;
  }

  .holiday-home-shortcuts::after {
    right: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), var(--holiday-white));
  }

  .holiday-home-shortcuts[data-scroll-edge="start"]::after,
  .holiday-home-shortcuts[data-scroll-edge="middle"]::after {
    opacity: 1;
  }

  .holiday-home-shortcuts[data-scroll-edge="end"]::before {
    opacity: 1;
  }

  .holiday-home-shortcuts[data-scroll-edge="end"]::after,
  .holiday-home-shortcuts[data-scroll-edge="none"]::before,
  .holiday-home-shortcuts[data-scroll-edge="none"]::after {
    opacity: 0;
  }

  .holiday-home-shortcuts__grid.holiday-home-shell {
    display: flex;
    width: max-content;
    max-width: none;
    min-width: 100%;
    margin: 0;
    padding-inline: var(--holiday-gutter);
  }

  .holiday-home-shortcut {
    flex: 0 0 auto;
    min-width: 14.5rem;
  }

  .holiday-home-guide .shortcut-scroll-hint {
    display: block;
    width: min(var(--holiday-shell), calc(100% - (2 * var(--holiday-gutter))));
    margin: .28rem auto .42rem;
    color: var(--holiday-muted);
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.35;
    letter-spacing: .015em;
    text-align: right;
  }

  .holiday-home-shortcuts[data-scroll-edge="end"] .shortcut-scroll-hint {
    text-align: left;
  }

  .holiday-home-shortcuts[data-scroll-edge="none"] .shortcut-scroll-hint {
    display: none;
  }
}

@media (max-width: 760px) {
  .holiday-home-opening {
    padding-block: 2.6rem 3.25rem;
  }

  .holiday-home-opening__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "title"
      "image"
      "lead";
    gap: 1.75rem;
  }

  .holiday-home-guide h1 {
    max-width: 11ch;
    font-size: clamp(3rem, 13.8vw, 4rem);
    line-height: 1.04;
  }

  .holiday-home-opening h1 {
    align-self: start;
  }

  .holiday-home-opening__image {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .holiday-home-opening__image::before {
    display: none;
  }

  .holiday-home-opening__image img {
    position: static;
    height: 100%;
    object-position: center 54%;
  }

  .holiday-home-opening__lead {
    max-width: none;
  }

  .holiday-home-opening__lead p {
    font-size: 1.2rem;
    line-height: 1.52;
  }

  .holiday-home-profile {
    padding-block: 4.25rem;
  }

  .holiday-home-profile__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "heading"
      "image"
      "body"
      "related";
    gap: 1.75rem;
  }

  .holiday-home-guide h2 {
    font-size: clamp(2.35rem, 11vw, 3.15rem);
  }

  .holiday-home-profile__heading {
    padding-bottom: 1.2rem;
  }

  .holiday-home-profile__image {
    width: calc(100% - .75rem);
  }

  .holiday-home-profile__image img,
  .holiday-home-profile__image--pied-a-terre img,
  .holiday-home-profile__image--place-in-the-sun img {
    aspect-ratio: 4 / 3;
  }

  .holiday-home-profile__body p:first-child {
    font-size: 1.16rem;
  }

  .holiday-home-related {
    display: block;
    padding-top: 1.5rem;
  }

  .holiday-home-related__label {
    margin: 0 0 .9rem;
  }

  .holiday-home-related__list {
    grid-template-columns: minmax(0, 1fr);
    gap: .55rem;
  }

  .holiday-home-related a {
    min-height: 2.75rem;
    align-items: center;
  }

  .holiday-home-next-steps {
    padding-block: 4.25rem;
  }

  .holiday-home-next-steps__header {
    margin-bottom: 2.25rem;
  }

  .holiday-home-next-step {
    grid-template-columns: minmax(0, 1fr);
    gap: .7rem;
    padding-block: 1.75rem;
  }

  .holiday-home-next-step__number {
    padding-top: 0;
  }

  .holiday-home-next-step__content h3 {
    max-width: none;
    margin-bottom: .55rem;
    font-size: clamp(1.55rem, 7.5vw, 1.9rem);
  }

  .holiday-home-next-step__related {
    margin-top: .45rem;
  }

  .holiday-home-next-step__related a {
    align-items: center;
  }
}

@media (orientation: landscape) and (min-width: 700px) and (max-width: 980px) {
  .holiday-home-opening {
    padding-block: 2rem 2.5rem;
  }

  .holiday-home-opening__grid {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    grid-template-areas:
      "title image"
      "lead image";
    gap: 1rem 2rem;
  }

  .holiday-home-guide h1 {
    max-width: 12ch;
    font-size: clamp(2.4rem, 5.4vw, 3.05rem);
    line-height: 1.02;
  }

  .holiday-home-opening__image {
    min-height: 17rem;
    aspect-ratio: auto;
  }

  .holiday-home-opening__image::before {
    display: block;
  }

  .holiday-home-opening__image img {
    position: absolute;
    height: 100%;
  }

  .holiday-home-opening__lead p {
    font-size: 1.08rem;
    line-height: 1.42;
  }

  .holiday-home-shortcut {
    min-width: 13rem;
    min-height: 4.7rem;
    padding-block: .72rem;
  }

  .holiday-home-shortcuts::before,
  .holiday-home-shortcuts::after {
    height: 4.7rem;
  }

  .holiday-home-profile {
    padding-block: 3.5rem;
  }

  .holiday-home-profile__grid {
    grid-template-columns: minmax(10.5rem, .72fr) minmax(0, 1.28fr) minmax(7rem, 8rem);
    grid-template-areas:
      "image heading related"
      "image body related";
    column-gap: clamp(1rem, 2.25vw, 1.5rem);
    row-gap: 1.25rem;
  }

  .holiday-home-guide h2 {
    max-width: none;
    font-size: clamp(1.85rem, 4.15vw, 2.3rem);
  }

  .holiday-home-profile__heading {
    padding-bottom: .85rem;
  }

  .holiday-home-profile__image {
    width: calc(100% - .6rem);
  }

  .holiday-home-profile__image::after {
    inset: .6rem -.6rem -.6rem .6rem;
  }

  .holiday-home-profile__image img,
  .holiday-home-profile__image--pied-a-terre img,
  .holiday-home-profile__image--place-in-the-sun img {
    aspect-ratio: 4 / 3;
  }

  .holiday-home-profile__body p {
    margin-bottom: 1rem;
    font-size: .92rem;
    line-height: 1.58;
  }

  .holiday-home-profile__body p:first-child {
    font-size: 1rem;
    line-height: 1.5;
  }

  .holiday-home-related {
    display: block;
    padding-top: .1rem;
    border-top: 0;
  }

  .holiday-home-related__label {
    margin: 0 0 .65rem;
    font-size: .62rem;
    letter-spacing: .11em;
  }

  .holiday-home-related__list {
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
  }

  .holiday-home-related a {
    min-height: 2.4rem;
    gap: .4rem;
    font-size: .96rem;
    line-height: 1.28;
  }

  .holiday-home-next-steps {
    padding-block: 3.5rem;
  }

  .holiday-home-next-steps__header {
    margin-bottom: 2rem;
  }

  .holiday-home-next-step {
    grid-template-columns: minmax(2.4rem, 3rem) minmax(0, 1fr) minmax(7rem, 8rem);
    gap: clamp(.8rem, 2vw, 1.25rem);
    padding-block: 1.4rem;
  }

  .holiday-home-next-step__number {
    font-size: .92rem;
  }

  .holiday-home-next-step__content h3 {
    margin-bottom: .4rem;
    font-size: clamp(1.25rem, 3.2vw, 1.55rem);
  }

  .holiday-home-next-step__content p {
    font-size: .9rem;
    line-height: 1.52;
  }

  .holiday-home-next-step__label {
    margin-bottom: .4rem;
    font-size: .6rem;
    letter-spacing: .11em;
  }

  .holiday-home-next-step__related a {
    min-height: 2.4rem;
    gap: .4rem;
    font-size: .96rem;
    line-height: 1.28;
  }
}

@media (prefers-reduced-motion: reduce) {
  .holiday-home-related__arrow,
  .holiday-home-next-step__arrow {
    transition: none;
  }

  .holiday-home-related a:hover .holiday-home-related__arrow,
  .holiday-home-related a:focus-visible .holiday-home-related__arrow,
  .holiday-home-next-step__related a:hover .holiday-home-next-step__arrow,
  .holiday-home-next-step__related a:focus-visible .holiday-home-next-step__arrow {
    transform: none;
  }
}
