/* Quieter body typography and a consistently legible cinematic banner. */
:root {
  --sans: 'helvetica-neue-lt-pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --muted: #62635f;
}
body { font-weight: 400; letter-spacing: .012em; }
.section-head > p,
.about-content > p:not(.eyebrow),
.contact-intro { line-height: 1.85; }
.header nav { font-weight: 400; letter-spacing: .025em; }
.button, .nav-book { font-weight: 400; letter-spacing: .035em; }
.apartment-subtitle, .apartment-details { letter-spacing: .02em; }
.hero-shade {
  background:
    radial-gradient(ellipse at 24% 47%, rgba(13,20,22,.18) 0%, rgba(13,20,22,.10) 37%, transparent 72%),
    linear-gradient(90deg, rgba(13,20,22,.28) 0%, rgba(13,20,22,.20) 55%, transparent 90%),
    linear-gradient(180deg, rgba(11,17,20,.34) 0%, rgba(11,17,20,.08) 30%, rgba(11,17,20,.10) 68%, rgba(11,17,20,.35) 100%);
}
.hero h1 { text-shadow: 0 2px 18px rgba(0,0,0,.16); }
.hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.02); transform-origin: 50% 48%; will-change: transform; }
.hero.ken-burns-ready .hero-image { animation: hero-ken-burns 24s ease-in-out infinite alternate; }
.hero.ken-burns-paused .hero-image { animation-play-state: paused; }
@keyframes hero-ken-burns {
  from { transform: scale(1.02) translate3d(0, 0, 0); }
  to { transform: scale(1.11) translate3d(-1.4%, -1%, 0); }
}
.hero-bottom > .hero-motion-toggle { display: grid; place-items: center; padding: 8px; }
.hero-bottom > .hero-motion-toggle[hidden] { display: none; }
.hero-motion-toggle .play-mark, .hero-motion-toggle[aria-pressed="true"] .pause-mark { display: none; }
.hero-motion-toggle[aria-pressed="true"] .play-mark { display: block; }
@media (prefers-reduced-motion: reduce) {
  .hero.ken-burns-ready .hero-image { animation: none; transform: scale(1.02); }
}
.hero h1 em { color: #f1dfb9; }
.hero-description { color: #fff; letter-spacing: .045em; font-weight: 300; font-size: 18px; }
.hero .eyebrow { font-weight: 400; }
.hero-bottom { color: #fff; }
.booking-intro strong {
  font-family: var(--sans);
  font-size: 19px;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: .01em;
}
.booking-intro > span { font-size: 10px; font-weight: 400; letter-spacing: .15em; margin-bottom: 7px; }
.date-field > span { font-size: 13px; letter-spacing: .035em; color: #71716b; }
.date-field input { font-family: var(--sans); font-size: 16px; font-weight: 400; letter-spacing: .04em; color: #22251f; }
.availability { font-family: var(--sans); font-size: 14px; letter-spacing: .025em; }
.brand > span { font-weight: 600; letter-spacing: .085em; }
.brand > span > span { font-family: var(--sans); font-weight: 700; font-size: 10px; letter-spacing: .19em; }
.header.scrolled .brand > span,
.detail-page .header .brand > span,
.header.menu-open .brand > span,
footer .brand > span { color: #181b17; text-shadow: none; }
.header.scrolled .brand > span > span,
.detail-page .header .brand > span > span,
.header.menu-open .brand > span > span,
footer .brand > span > span { color: #7e612f; }
.about-layout { grid-template-columns: 1.15fr 1fr; gap: 70px; }
.about-photo { padding: 0 20px 35px 0; }
.about-photo > img { width: 100%; height: auto; aspect-ratio: 1.4; object-fit: cover; object-position: center; }
.distance { padding: 23px 30px; min-width: 190px; }
@media (max-width: 1250px) {
  .booking-intro strong { font-size: 18px; }
  .availability { font-size: 13px; }
}
@media (max-width: 980px) {
  .about-layout { gap: 36px; }
  .about-photo > img { aspect-ratio: 1; }
}
@media (max-width: 600px) {
  .hero-description { font-size: 16px; font-weight: 400; letter-spacing: .025em; }
  .hero-shade {
    background: linear-gradient(180deg, rgba(11,17,20,.30) 0%, rgba(11,17,20,.34) 30%, rgba(11,17,20,.34) 74%, rgba(11,17,20,.45) 100%);
  }
  .brand > span > span { font-size: 9px; letter-spacing: .18em; }
  .about-layout { grid-template-columns: 1fr; gap: 38px; }
  .about-photo > img { aspect-ratio: 1.25; }
  .availability { font-size: 14px; }
}

/* Full-width location map directly above the home-page footer. */
.home-map { width: 100%; margin: 0; padding: 0; background: var(--gray); }
.home-map iframe { display: block; width: 100%; height: 430px; border: 0; }
@media (max-width: 600px) {
  .home-map iframe { height: 340px; }
}
