/* Home-only adjustment; other pages retain their original text size. */
body.home-page { --body-text-size: 15px; --body-text-leading: 23px; }
/* Helvetica Neue LT Pro 45 Light (300) and 55 Roman (400) are served
   by the Adobe Fonts project aew8spo, linked in index.html. */
:root {
  --sans: 'helvetica-neue-lt-pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --body-text: rgb(51, 51, 51);
  --small-text: rgb(81, 81, 81);
  --muted: var(--small-text);
}
body {
  font-family: var(--sans);
  font-size: var(--body-text-size, 17px);
  font-weight: 300;
  line-height: var(--body-text-leading, 25px);
  letter-spacing: normal;
  color: var(--body-text);
}
h2, h3 { color: var(--ink); }
h1 em, h2 em { font-style: normal; }
#contact-form .form-row { grid-template-columns: 1fr; }
#contact-form .form-row > label, #contact-form > label { font-size: 15px; }
#contact-form .privacy-consent { display: flex; align-items: flex-start; gap: 11px; font-size: 15px; font-weight: 300; line-height: 20px; color: var(--body-text); cursor: pointer; }
#contact-form .privacy-consent input { appearance: none; display: grid; place-content: center; flex: 0 0 19px; width: 19px; height: 19px; margin: 1px 0 0; padding: 0; border: 1px solid #d5d5cd; border-radius: 2px; background: #fff; cursor: pointer; }
#contact-form .privacy-consent input:checked { background: var(--gold); border-color: var(--gold); }
#contact-form .privacy-consent input:checked::after { content: ''; width: 8px; height: 4px; border-left: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: translateY(-1px) rotate(-45deg); }
#contact-form .privacy-consent input:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
#contact-form .privacy-consent a { color: var(--gold); text-decoration: none; text-underline-offset: 3px; }
#contact-form .privacy-consent a:hover, #contact-form .privacy-consent a:focus-visible { text-decoration: underline; }
.contact .address address { font-size: 15px; font-weight: 300; line-height: 23px; color: rgb(51, 51, 51); }
.contact-direct { display: grid; gap: 8px; margin-top: 36px; font-family: var(--sans); font-size: 15px; font-weight: 300; line-height: 23px; }
.contact-direct a { width: fit-content; max-width: 100%; overflow-wrap: anywhere; color: var(--body-text); }
.contact-direct-title { color: var(--gold); font-size: 13px; font-weight: 400; line-height: 22px; letter-spacing: .12em; margin-bottom: 4px; }
.contact-direct a:hover, .contact-direct a:focus-visible { color: var(--gold); }
#contact-form button[type="submit"] { font-family: var(--sans); font-size: 15px; font-weight: 400; line-height: 22px; letter-spacing: .01em; }
.apartment-card h3 { font-size: 26px; }
.section-head > p,
.about-content > p:not(.eyebrow),
.contact-intro,
.contact form input,
.contact form textarea {
  font-family: var(--sans);
  font-size: var(--body-text-size, 17px);
  font-weight: 300;
  line-height: var(--body-text-leading, 25px);
  letter-spacing: normal;
  color: var(--body-text);
}
.hero-description {
  font-family: var(--sans);
  font-size: var(--body-text-size, 17px);
  font-weight: 300;
  line-height: var(--body-text-leading, 25px);
  letter-spacing: normal;
  color: #fff;
}
.eyebrow,
.header nav,
.header nav > a,
.header nav > .nav-link,
.language button,
.button,
.text-link,
.apartment-label,
.apartment-meta,
.apartment-subtitle,
.apartment-details,
.amenities,
.carousel-footer > span,
.carousel-progress,
.booking-rating div span,
.review-card figcaption strong,
.review-card figcaption small,
.source-date,
.address > span,
address,
form label,
form input::placeholder,
form textarea::placeholder,
.form-bottom p,
#form-status,
.footer-inner > span,
.distance > span,
.hero-bottom,
.hero-bottom > span,
.hero-bottom > a {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: normal;
}
.header nav,
.header nav > a,
.header nav > .nav-link,
.header .language button { font-size: 15px; }
.header nav > a:not(.nav-book),
.header nav > .nav-link,
.header .language button { font-weight: 300; }
.header .social { transition: color .2s ease; }
.header.scrolled .social,
.header.menu-open .social,
.detail-page .header .social { color: #818181; }
.header .social[href]:hover,
.header .social[href]:focus-visible { color: var(--gold); }
.eyebrow, .address > span { color: var(--gold); letter-spacing: .12em; }
.apartment-meta, .apartment-subtitle, .apartment-details,
.amenities, .carousel-footer > span, .carousel-progress > span,
.booking-rating div span, .review-card figcaption small,
.source-date, address, form label, .form-bottom p,
.footer-inner > span, .distance > span { color: var(--small-text); }
.apartment-meta { color: var(--gold); font-weight: 400; }
.apartment-label {
  top: 18px;
  left: 18px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  background: rgba(255,255,255,.96);
  color: #41413c;
  border: 1px solid rgba(178,138,66,.16);
  border-radius: 2px;
  box-shadow: 0 2px 12px rgba(20,24,20,.06);
  backdrop-filter: none;
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: .01em;
}
.apartment-label svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.text-link { color: var(--small-text); }
.header.scrolled nav, .header.menu-open nav { color: var(--small-text); }
.header.scrolled .nav-book, .header.menu-open .nav-book { color: var(--gold); }
.hero .eyebrow, .hero-bottom, .hero-bottom > span, .hero-bottom > a { color: #fff; }
.button.gold { color: #fff; }
.booking { font-family: var(--sans); color: var(--body-text); }
.booking-intro strong,
.date-field input {
  font-family: var(--sans);
  font-size: var(--body-text-size, 17px);
  font-weight: 300;
  line-height: var(--body-text-leading, 25px);
  letter-spacing: normal;
  color: var(--body-text);
}
.booking-intro > span,
.date-field > span,
.booking .availability {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: normal;
}
.booking-intro > span { color: var(--gold); letter-spacing: .06em; }
.date-field > span { color: var(--small-text); }
.booking .availability { color: #fff; }
/* Preserve the custom wordmark and the original serif heading styles. */
.brand > span > span { font-family: var(--sans); }
/* Booking bar with its original introduction, dates and gold action. */
.booking {
  left: 0;
  right: 0;
  width: min(1200px, 88%);
  margin-inline: auto;
  bottom: -54px;
  min-height: 108px;
  padding: 20px 22px 20px 32px;
  gap: 28px;
  grid-template-columns: minmax(150px, .85fr) minmax(0, 1fr) minmax(0, 1fr) 228px;
  background: #fff;
  color: var(--body-text);
  border: 0;
  box-shadow: 0 6px 24px rgba(23,27,23,.045);
}
.booking-intro { display: block; grid-column: auto; }
.booking input[type="hidden"] { display: none; }
.booking .date-field { padding: 0 0 0 24px; border: 0; border-left: 1px solid #eeede9; }
.booking .date-field > span { margin-bottom: 6px; color: var(--gold); text-transform: uppercase; }
.booking .date-field input {
  min-height: 40px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  color: #888884;
  font-size: var(--body-text-size, 17px);
  font-weight: 300;
  line-height: var(--body-text-leading, 28px);
  color-scheme: light;
}
.booking .date-field input::-webkit-date-and-time-value { text-align: left; }
.booking .date-field input::-webkit-calendar-picker-indicator {
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  opacity: 1;
  cursor: pointer;
  background: url('assets/calendar-minimal.svg') center / 21px 21px no-repeat;
}
.booking .availability {
  grid-column: auto;
  min-height: 52px;
  padding: 14px 22px;
  justify-content: center;
  background: var(--gold);
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .01em;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: background .2s ease;
}
.booking .availability:hover {
  background: #a67f3b;
  box-shadow: none;
}
.hero-bottom { bottom: clamp(130px, 18%, 160px); }
@media (max-width: 1100px) {
  .hero { margin-bottom: 125px; }
  .hero-bottom { bottom: 150px; }
  .booking { width: 88%; bottom: -125px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 22px 26px; gap: 18px 22px; }
  .booking-intro { grid-column: 1 / -1; }
  .booking .date-field { padding-left: 0; border-left: 0; }
  .booking .date-field + .date-field { padding-left: 22px; border-left: 1px solid #eeede9; }
  .booking .availability { grid-column: 1 / -1; width: 100%; max-width: 228px; justify-self: center; min-height: 48px; padding-block: 12px; }
}
@media (max-width: 600px) {
  .hero {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 740px;
    padding-top: clamp(160px, 25svh, 210px);
    margin-bottom: 155px;
  }
  .hero-content { position: relative; top: auto; left: auto; right: auto; transform: none; margin-inline: 6%; }
  .hero-bottom {
    position: relative;
    inset: auto;
    flex: 1 0 auto;
    min-height: 120px;
    margin-inline: 6%;
    justify-content: center;
  }
  .hero-bottom > span { display: none; }
  .hero-bottom > a { display: flex; gap: 14px; min-height: 44px; }
  .hero-bottom > .hero-motion-toggle { position: absolute; right: 0; }
  .booking {
    position: relative;
    inset: auto;
    flex-shrink: 0;
    width: 100%;
    margin: 0 auto -120px;
    padding: 22px 20px 20px;
    gap: 14px 12px;
    border: 0;
    border-radius: 0;
    box-shadow: 0 12px 36px rgba(23, 27, 23, .07);
  }
  .booking-intro { padding-bottom: 4px; }
  .booking-intro > span { margin-bottom: 3px; font-size: 11px; line-height: 18px; letter-spacing: .08em; }
  .booking-intro strong { font-family: var(--serif); font-size: 23px; font-weight: 500; line-height: 28px; }
  .booking .date-field,
  .booking .date-field + .date-field {
    padding: 10px;
    border: 1px solid #e9e6df;
    border-radius: 3px;
    background: #fff;
  }
  .booking .date-field > span { margin-bottom: 2px; font-size: 11px; line-height: 18px; color: var(--gold); }
  .booking .date-field input { min-width: 0; min-height: 34px; font-size: 15px; line-height: 24px; letter-spacing: -.02em; }
  .booking .date-field input::-webkit-calendar-picker-indicator { width: 18px; height: 34px; background-size: 16px 16px; }
  .booking .availability { max-width: none; min-height: 48px; border-radius: 3px; }
  .carousel-footer { flex-wrap: wrap; row-gap: 14px; }
  .carousel-footer > span { max-width: none; flex-basis: 100%; }
  .carousel-progress { margin-left: auto; }
  .amenities > span { width: calc(50% - 10px); }
  .hero-description { max-width: 290px; }
}
@media (max-width: 360px) {
  .booking { padding-inline: 16px; }
  .booking .date-field { grid-column: 1 / -1; }
  .hero-bottom { justify-content: flex-start; }
}

.contact .contact-directions { margin-top: 28px; min-height: 44px; }
