/* Shared chrome for internal pages. Homepage files are not referenced. */
:root {
  --paper: #F6F4EF;
  --pine: #0E1512;
  --cedar: #8C5233;
  --sand: #ECE8DF;
  --ink: #111614;
}

*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: rgba(17, 22, 20, 0.12);
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}

body {
  margin: 0;
  background-color: var(--pine);
  color: var(--ink);
  font-family: "Plus Jakarta Sans", -apple-system, sans-serif;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, p, blockquote, pre, ul, li, figure {
  margin: 0;
  padding: 0;
}

ul { list-style: none; }
a { color: inherit; text-decoration: inherit; }

button, input, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  background-color: transparent;
}

button { cursor: pointer; }
img, video, svg { display: block; max-width: 100%; }

.glass-nav {
  background: rgba(14, 21, 18, 0.56);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}

.glass-bar {
  background: rgba(14, 21, 18, 0.64);
  backdrop-filter: blur(28px) saturate(170%);
  -webkit-backdrop-filter: blur(28px) saturate(170%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.42);
}

.glass-caption {
  background: rgba(14, 21, 18, 0.52);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.eagle-crest-badge {
  position: relative;
  z-index: 60;
  margin-top: -18px;
  margin-bottom: -18px;
  width: 68px;
  height: 68px;
  border-radius: 9999px;
  background: radial-gradient(circle at 35% 30%, rgba(28, 40, 35, 0.96), rgba(11, 17, 14, 0.98));
  border: 1px solid rgba(255, 255, 255, 0.26);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s ease;
}

.eagle-crest-badge:hover {
  transform: translateY(-2px) scale(1.07);
  border-color: rgba(200, 162, 106, 0.75);
}

header nav,
#mobileMenuDrawer {
  max-width: 1232px !important;
}

header nav > a {
  flex-shrink: 0;
  gap: 12px;
}

header nav .font-serif { white-space: nowrap; }
header nav button { white-space: nowrap; }
header nav > .md\:flex { gap: 22px; }

#mobileMenuBtn {
  min-width: 44px;
  min-height: 44px;
}

.page-curtain {
  position: relative;
  z-index: 10;
  background-color: var(--paper);
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -12px 60px #051a183d;
}

.font-serif { font-family: "Cormorant Garamond", Georgia, serif; }

.display-serif {
  font-family: "Cormorant Garamond", Georgia, serif;
  line-height: 1.04;
  letter-spacing: -0.02em;
}

.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1); }
.img-zoom:hover img { transform: scale(1.03); }

.section-kicker {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #537367;
  display: block;
  line-height: 1.5;
}

main img.object-cover { filter: contrast(1.055) saturate(1.08); }
main section { scroll-margin-top: 32px; }

.reveal-target {
  transition: opacity 0.85s ease, transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.motion-ready .reveal-target:not(.in-view) {
  opacity: 0;
  transform: translateY(26px);
}

.motion-ready main section .reveal-target { transition-duration: 0.85s; }

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible {
  outline: 2px solid #5d9c87;
  outline-offset: 4px;
}

/* Shorter internal-page hero: still image + homepage gradient, no video. */
.page-hero {
  position: relative;
  isolation: isolate;
  min-height: 320px;
  height: 48svh;
  max-height: 520px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.page-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
}

.page-hero-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(6, 22, 24, 0.23) 0%,
    rgba(6, 22, 24, 0.04) 25%,
    rgba(5, 25, 28, 0.20) 48%,
    rgba(4, 22, 23, 0.66) 100%
  );
}

.page-hero-copy {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1312px;
  margin: 0 auto;
  padding: 120px 40px 48px;
  color: #ffffff;
}

.page-hero-copy .section-kicker { color: #d6e8db; }

.page-hero-copy h1 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.03em;
  text-shadow: 0 2px 24px #071c2133;
}

.page-hero-copy p:not(.homes-search-status) {
  font-size: 15px;
  line-height: 1.85;
  max-width: 570px;
  margin-top: 18px;
  color: #ffffffeb;
}

/* Homes banner booking bar — match homepage #heroSearchForm glass cells. */
.page-hero:has(#heroSearchForm) {
  height: auto;
  min-height: 48svh;
  max-height: none;
}

.page-hero-copy > .glass-bar {
  width: 100%;
  margin-top: 22px;
  border-radius: 16px;
  background: #0b26255e;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-color: #ffffff3d;
  box-shadow: 0 12px 40px #071e2426;
}

.page-hero-copy .glass-bar form > div:not(:last-child) {
  padding: 0.625rem 1rem;
  background: #ffffff0d;
  border-right: 1px solid #ffffff21;
  border-radius: 0;
}

.page-hero-copy .glass-bar form > div:nth-last-child(2) {
  border-right: 0;
}

.page-hero-copy .glass-bar button[type="submit"] {
  width: 100%;
  border-radius: 10px;
  min-height: 56px;
  background-color: #8C5233;
  color: #ffffff;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
}

.page-hero-copy #heroSearchForm label {
  display: block;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.page-hero-copy #heroSearchForm select,
.page-hero-copy #heroSearchForm input[type="text"] {
  width: 100%;
  margin-top: 0.125rem;
  background: transparent;
  color: #ffffff;
  font-size: 0.875rem;
}

.page-hero-copy #heroSearchForm input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

@media (min-width: 1024px) {
  .page-hero-copy #heroSearchForm {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: center;
  }

  .page-hero-copy #heroSearchForm > div:first-child {
    grid-column: span 4;
  }

  .page-hero-copy #heroSearchForm > div:nth-child(2),
  .page-hero-copy #heroSearchForm > div:nth-child(3),
  .page-hero-copy #heroSearchForm > div:nth-child(4),
  .page-hero-copy #heroSearchForm > div:nth-child(5) {
    grid-column: span 2;
  }
}

.homes-date-cell {
  position: relative;
}

.homes-date-native {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.homes-search-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.homes-search-empty {
  margin-top: 28px;
  font-size: 15px;
  color: var(--ink);
  opacity: 0.72;
}

.intro-spread {
  max-width: 1312px;
  margin: auto;
  padding: 110px 40px 120px;
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 90px;
  align-items: center;
}

.intro-copy h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  font-size: clamp(44px, 4.5vw, 66px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 24px 0;
}

.intro-copy h2 i { color: #426e5c; }

.intro-copy > p {
  font-size: 13px;
  line-height: 1.95;
  color: #5a6a5e;
  max-width: 460px;
}

.text-link {
  font-size: 11px;
  display: inline-flex;
  justify-content: space-between;
  gap: 50px;
  padding: 20px 0 10px;
  border-bottom: 1px solid #8eaa98;
  margin-top: 12px;
}

.intro-images { height: 530px; position: relative; }
.intro-images img { width: 100%; height: 100%; object-fit: cover; }

.intro-main {
  width: 82%;
  height: 440px;
  overflow: hidden;
  border-radius: 140px 140px 6px 6px;
  position: absolute;
  top: 0;
  right: 0;
}

.intro-detail {
  position: absolute;
  bottom: 0;
  left: -10px;
  width: 54%;
  height: 270px;
  border: 7px solid #f6f4ef;
  box-shadow: 0 12px 30px #143a2220;
  transform: rotate(-5deg);
  border-radius: 5px;
  overflow: hidden;
}

.intro-images figcaption {
  position: absolute;
  bottom: 20px;
  left: 20px;
  color: white;
  font-size: 11px;
  text-shadow: 0 1px 10px #000;
}

.intro-detail figcaption {
  font-family: Caveat, cursive;
  font-size: 20px;
  line-height: 1.2;
}

.intro-handnote {
  position: absolute;
  bottom: 3px;
  right: 4px;
  font-family: Caveat, cursive;
  font-size: 24px;
  color: #537367;
  transform: rotate(4deg);
}

.direct-benefit {
  display: flex;
  align-items: center;
  gap: 15px;
  border-top: 1px solid #1b39231f;
  padding-top: 26px;
  margin-top: 34px;
}

.host-story {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 0;
  padding-top: 84px;
  align-items: center;
}

.story-photo {
  height: 680px;
  position: relative;
  overflow: hidden;
  border-radius: 3px 0 0 3px;
}

.story-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 34% center;
}

.photo-note {
  position: absolute;
  bottom: 30px;
  left: 28px;
  color: white;
  font-family: Caveat, cursive;
  font-size: 27px;
  transform: rotate(-4deg);
}

.host-letter {
  position: relative;
  background: repeating-linear-gradient(0deg, #0000 0px, #0000 30px, #7f8d6520 31px, #0000 32px), #fffdf5;
  padding: 56px 58px 48px;
  margin-left: -30px;
  box-shadow: 6px 20px 28px #10251b25, 18px 40px 60px #14261d20;
  border: 1px solid #dedccd;
  transform: rotate(-2.8deg);
}

.host-letter:before {
  content: "";
  position: absolute;
  top: 11px;
  left: 11px;
  right: 11px;
  bottom: 11px;
  border: 1px solid #53736713;
  pointer-events: none;
}

.host-letter:after {
  content: "";
  position: absolute;
  top: -14px;
  left: 35%;
  width: 110px;
  height: 28px;
  background: #d6c9a48a;
  transform: rotate(6deg);
  box-shadow: 0 1px 4px #10251b09;
}

.host-letter > .section-kicker {
  max-width: 190px;
  margin-bottom: 36px;
}

.host-corner {
  position: absolute;
  right: 34px;
  top: 29px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}

.host-corner img {
  width: 82px;
  height: 82px;
  object-fit: cover;
  object-position: 28% 24%;
  border-radius: 50%;
  border: 4px solid #fff;
  box-shadow: 0 3px 15px #1b392221;
}

.host-corner span {
  font-size: 10px;
  line-height: 1.4;
  text-align: center;
  color: #293c32;
}

.host-corner small { font-size: 9px; color: #718076; }

.host-letter h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 51px;
  line-height: 1.04;
  font-weight: 400;
  letter-spacing: -0.02em;
  margin-bottom: 25px;
  margin-top: 32px;
  padding-right: 30px;
}

.host-letter > p,
.story-more p {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 21px;
  line-height: 1.48;
  color: #43554b;
  margin-top: 18px;
}

.host-letter .letter-salutation {
  font-family: Caveat, cursive;
  font-size: 28px;
  line-height: 1.25;
  color: #3c6553;
  margin-bottom: 6px;
}

.host-letter > .note-closing {
  font-family: Caveat, cursive;
  font-size: 29px;
  color: #3d6551;
  margin-top: 22px;
}

.host-letter.in-view .letter-salutation {
  animation: ink-arrives 1.8s ease both;
}

@keyframes ink-arrives {
  from { opacity: 0; clip-path: inset(0 100% 0 0); }
  to { opacity: 1; clip-path: inset(0 0 0 0); }
}

.host-letter.reveal-target:not(.in-view) {
  transform: translateY(24px) rotate(-2.8deg);
}

.host-letter.reveal-target.in-view {
  transform: rotate(-2.8deg);
}

.story-more { margin-top: 24px; }

.story-more summary {
  cursor: pointer;
  list-style: none;
  font-size: 11px;
  letter-spacing: 0.06em;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #cfd6c8;
  padding-bottom: 12px;
}

.story-more summary::-webkit-details-marker { display: none; }

.letter-signoff {
  display: flex;
  gap: 22px;
  align-items: center;
  margin-top: 25px;
}

.host-signature {
  display: inline-block;
  font-family: Caveat, cursive;
  font-size: 49px;
  color: #244e3e;
  transform: rotate(-8deg);
  line-height: 1.1;
}

.signoff-regards {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 19px;
  color: #43554b;
  margin-bottom: 2px;
}

.letter-signoff > span:last-child { font-size: 11px; line-height: 1.7; }
.letter-signoff small { font-size: 9px; color: #6b7a70; }

.story-contact {
  display: inline-flex;
  gap: 45px;
  align-items: center;
  font-size: 11px;
  margin-top: 20px;
  color: #244e3e;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.contact-options {
  display: grid;
  gap: 10px;
  margin-top: 27px;
}

.contact-options a {
  background: #e9eee6;
  border: 1px solid #ccd6c8;
  padding: 16px 18px;
  border-radius: 10px;
  display: block;
}

.contact-options span {
  display: block;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #6a7e70;
  margin-bottom: 6px;
}

.contact-options strong {
  font-size: 12px;
  font-weight: 500;
  color: #214d3c;
}

.attraction-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 36px;
}

.attraction-heading h2 { margin: 0; }

.attraction-heading p {
  font-size: 11px;
  line-height: 1.8;
  color: #a5b9ab;
  max-width: 340px;
}

.attraction-filters {
  display: flex;
  gap: 8px;
  margin: 25px 0;
  flex-wrap: wrap;
}

.attraction-filters button {
  border: 1px solid #ffffff36;
  border-radius: 30px;
  padding: 9px 17px;
  font-size: 10px;
  color: #c8d9cc;
  min-height: 44px;
}

.attraction-filters button[aria-pressed="true"] {
  background: #dce7d9;
  color: #142d23;
}

.attraction-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.attraction-card { min-width: 0; }
.attraction-card[hidden] { display: none; }
.attraction-card > a { display: block; }

.attraction-card figure {
  overflow: hidden;
  border-radius: 7px;
  aspect-ratio: 4 / 3;
  background: #20382d;
}

.attraction-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s ease;
}

.attraction-card:hover img { transform: scale(1.04); }

.attraction-card .place-label {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #a3b99f;
  margin-top: 17px;
  display: block;
}

.attraction-card h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 27px;
  font-weight: 400;
  margin: 8px 0;
}

.attraction-card p {
  font-size: 10px;
  line-height: 1.8;
  color: #afbeb2;
}

.attraction-card .explore {
  display: block;
  font-size: 9px;
  margin-top: 15px;
  color: #dce8d9;
}

.attraction-footnote {
  font-size: 9px;
  color: #8fa293;
  margin-top: 30px;
}

.season-journal {
  padding: 100px max(32px, calc((100vw - 1232px) / 2));
  background: #eef0e9;
}

.journal-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 42px;
}

.journal-heading h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 60px;
  font-weight: 400;
  line-height: 1.04;
  margin-top: 15px;
}

.journal-heading > p {
  font-size: 13px;
  line-height: 1.9;
  color: #617065;
  max-width: 300px;
}

.season-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
}

.season-tile {
  height: 560px;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  color: white;
}

.season-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s ease;
}

.season-tile:hover img { transform: scale(1.04); }

.season-tile:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 30%, #0a211dcc);
}

.season-tile > div {
  position: absolute;
  bottom: 36px;
  left: 32px;
  right: 32px;
  z-index: 1;
}

.season-tile span {
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.season-tile h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  font-size: 41px;
  line-height: 1.1;
  margin: 14px 0;
}

.season-tile p {
  font-size: 12px;
  line-height: 1.8;
  max-width: 300px;
  color: #ffffffc9;
}

.season-tile b {
  font-size: 11px;
  font-weight: 400;
  display: inline-block;
  margin-top: 24px;
  border-bottom: 1px solid #ffffff70;
  padding-bottom: 6px;
}

.winter-strip {
  position: relative;
  height: 400px;
  margin-top: 28px;
  overflow: hidden;
  border-radius: 4px;
}

.winter-strip > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.winter-strip:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #102c2db0, transparent);
}

.winter-strip > div {
  position: absolute;
  top: 50%;
  left: 45px;
  transform: translateY(-50%);
  z-index: 1;
  color: white;
}

.winter-strip .section-kicker { color: #d6e8db; }

.winter-strip h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 49px;
  line-height: 1.07;
  font-weight: 400;
  margin: 18px 0 25px;
}

.winter-strip a {
  font-size: 11px;
  border-bottom: 1px solid #ffffff80;
  padding-bottom: 6px;
}

#reserve {
  max-width: 82rem;
  padding-top: 100px;
  padding-bottom: 100px;
}

.reservation-grid { gap: 64px; }

.reservation-card {
  background: #fffefd;
  border: 1px solid #d9ded4;
  border-radius: 22px;
  padding: 34px;
  box-shadow: 0 18px 50px #254a3010;
}

.reservation-card h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 39px;
  font-weight: 400;
  line-height: 1.1;
  margin-top: 12px;
}

.form-intro {
  font-size: 12px;
  color: #6a776d;
  line-height: 1.7;
  margin: 12px 0 28px;
}

.reservation-card label {
  font-size: 9px;
  letter-spacing: 0.12em;
  color: #64746a;
  margin-bottom: 8px;
}

.reservation-card input,
.reservation-card select,
.reservation-card textarea {
  background: #f5f6f1;
  border-color: #dfe4da;
  border-radius: 8px;
  padding: 14px;
  font-size: 12px;
  min-width: 0;
}

.reservation-card textarea {
  min-height: 100px;
  resize: vertical;
}

.reservation-card button[type="submit"] {
  background: #204d40;
  border-radius: 9px;
  min-height: 55px;
  margin-top: 8px;
}

.reservation-card input[type="date"] { color-scheme: light; }

.form-fineprint {
  font-size: 10px;
  line-height: 1.8;
  color: #758177;
  margin-top: 15px;
}

.form-error {
  font-size: 11px;
  color: #9c3022;
  line-height: 1.6;
  margin-top: 12px;
}

.reservation-grid > .md\:col-span-5 > h2 { font-size: 58px; }

#bookingConfirmationBox { line-height: 1.8; }
#bookingConfirmationBox a { display: inline-block; padding: 8px 0; }

.site-footer {
  background: #102a23;
  color: #e8eee5;
  padding: 75px max(32px, calc((100vw - 1232px) / 2)) 25px;
}

.footer-invitation {
  position: relative;
  padding-bottom: 70px;
  border-bottom: 1px solid #ffffff21;
}

.footer-invitation .section-kicker { color: #92b5a1; }

.footer-invitation h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 70px;
  font-weight: 400;
  line-height: 1.03;
  margin-top: 24px;
}

.footer-cta {
  position: absolute;
  right: 0;
  bottom: 80px;
  border: 1px solid #9cbaa3;
  border-radius: 40px;
  padding: 17px 32px;
  font-size: 12px;
}

.footer-cta:hover {
  background: #cbdcca;
  color: #102a23;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 1.2fr 0.9fr 1.2fr;
  gap: 38px;
  padding: 50px 0;
}

.footer-grid h3 {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: #92b5a1;
  margin-bottom: 21px;
  font-weight: 400;
}

.footer-grid > div > a {
  display: block;
  font-size: 11px;
  margin-bottom: 14px;
}

.footer-brand > a {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px !important;
  line-height: 1.2;
}

.footer-brand > a > span {
  display: block;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 10px;
  letter-spacing: 0.04em;
  margin-top: 9px;
  color: #aac2b0;
}

.footer-grid p {
  font-size: 10px;
  line-height: 1.9;
  color: #91aa99;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 15px;
  padding-top: 24px;
  border-top: 1px solid #ffffff21;
  font-size: 9px;
  color: #97b09f;
}

@media (max-width: 1050px) {
  .intro-spread { gap: 40px; padding: 80px 32px; }
  .intro-images { height: 470px; }
  .intro-main { height: 390px; }
  .intro-detail { height: 230px; }
  .attraction-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .host-letter h2 { font-size: 44px; }
  .host-letter { margin-left: -10px; }
}

@media (max-width: 1023px) {
  header nav > .md\:flex { display: none; }
  #mobileMenuBtn { display: block; }
  #mobileMenuDrawer:not(.hidden) { display: block; }
  header nav { padding: 12px 18px; }
  header nav .font-serif { font-size: 25px; }
  .eagle-crest-badge { width: 56px; height: 56px; }
}

@media (max-width: 900px) {
  .host-story { grid-template-columns: 1fr; }
  .story-photo { height: 360px; max-width: 100%; }
  .host-letter { margin: -45px 20px 0; padding: 40px; }
  .season-journal { padding: 70px 24px; }
  .season-tile { height: 450px; }
  .season-tile > div { left: 24px; right: 24px; }
  .season-tile h3 { font-size: 34px; }
  .reservation-grid { gap: 32px; }
  .reservation-card { padding: 24px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .page-hero-copy { padding: 108px 32px 40px; }
}

@media (max-width: 767px) {
  .page-hero {
    height: auto;
    min-height: 300px;
    max-height: none;
  }

  .page-hero-copy {
    padding: 132px 20px 36px;
  }

  .page-hero-copy h1 { font-size: clamp(40px, 11vw, 58px); }

  .page-hero-copy p:not(.homes-search-status) {
    font-size: 12px;
    line-height: 1.75;
    max-width: 335px;
    margin-top: 16px;
  }

  .page-hero-copy > .glass-bar {
    margin-top: 18px;
    padding: 8px;
  }

  .page-hero-copy .glass-bar form > div:not(:last-child) {
    border-right: 0;
    border-bottom: 1px solid #ffffff17;
  }

  .eagle-crest-badge { width: 52px; height: 52px; }
  header nav { gap: 8px; }
  header nav > a { gap: 8px; }
  header nav .font-serif { font-size: 21px; }
  header nav button { letter-spacing: 0.04em; }

  .intro-spread {
    grid-template-columns: 1fr;
    gap: 45px;
    padding: 65px 24px 75px;
  }

  .intro-copy h2 { font-size: 49px; }
  .intro-copy > p { font-size: 12px; }
  .intro-images {
    height: 430px;
    max-width: 550px;
    width: 100%;
    margin: auto;
  }
  .intro-main { height: 360px; width: 80%; }
  .intro-detail { height: 220px; left: 0; }

  .attraction-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 16px;
  }

  .attraction-heading { display: block; }
  .attraction-heading h2 { font-size: 43px; }
  .attraction-heading p { margin-top: 20px; max-width: 100%; }
  .attraction-card h3 { font-size: 25px; line-height: 1.05; }
  .attraction-card figure { aspect-ratio: 1; }

  .host-letter.reveal-target.in-view { transform: rotate(-1.8deg); }
  .footer-grid a { overflow-wrap: anywhere; }
}

@media (max-width: 600px) {
  header { padding: 22px 14px 0 !important; }
  header nav { padding: 11px 14px !important; }
  header nav > a { gap: 8px; }
  header nav .font-serif { font-size: 21px; }
  .eagle-crest-badge {
    height: 44px;
    width: 44px;
    margin-top: -12px;
    margin-bottom: -12px;
  }
  .eagle-crest-badge img { width: 33px; height: 33px; }
  header nav > div:last-child { gap: 10px; }
  header nav > div:last-child > a:first-child,
  header nav > div:last-child > button:first-child {
    padding: 10px 14px;
    font-size: 9px;
  }

  .host-story { padding-top: 55px; }
  .host-letter {
    padding: 34px 27px;
    margin: -30px 6px 0;
    transform: none;
  }
  .host-letter h2 {
    font-size: 37px;
    padding-right: 0;
    margin-top: 65px;
  }
  .host-corner { right: 24px; top: 22px; }
  .host-corner img { height: 68px; width: 68px; }
  .host-letter > p,
  .story-more p { font-size: 20px; }
  .host-letter > .section-kicker { max-width: 150px; }
  .host-story .story-photo { height: 300px; }
  .journal-heading { display: block; }
  .journal-heading h2 { font-size: 44px; }
  .journal-heading > p { margin-top: 20px; }
  .season-grid { grid-template-columns: 1fr; gap: 20px; }
  .season-tile { height: 440px; }
  .winter-strip { height: 340px; }
  .winter-strip > div { left: 25px; }
  .winter-strip h3 { font-size: 39px; }
  .reservation-card { padding: 24px 20px; }
  .reservation-card input,
  .reservation-card select,
  .reservation-card textarea { font-size: 16px; }
  .reservation-grid { display: flex; flex-direction: column; }
  .reservation-grid > div { width: 100%; }
  .reservation-grid > .md\:col-span-5 > h2 { font-size: 46px; }
  .reservation-card .sm\:grid-cols-3 { grid-template-columns: 1fr 1fr; }
  .reservation-card .sm\:grid-cols-3 > div:last-child { grid-column: 1 / -1; }
  .site-footer { padding: 60px 24px 24px; }
  .footer-invitation h2 { font-size: 51px; }
  .footer-cta {
    position: static;
    display: inline-block;
    margin-top: 30px;
  }
  .footer-invitation { padding-bottom: 40px; }
  .footer-grid { gap: 30px 22px; padding: 36px 0; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
  .motion-ready .reveal-target:not(.in-view) {
    opacity: 1;
    transform: none;
  }
  .host-letter.in-view .letter-salutation { animation: none; }
  .intro-detail,
  .host-letter { transition: none; }
  .img-zoom:hover img,
  .season-tile:hover img,
  .attraction-card:hover img { transform: none; }
}
