@font-face{font-family:DM Sans;src:url('assets/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('assets/dm-sans-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Lora;src:url('assets/lora-400.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--sand:#f0e5d3;--earth:#2f1c15;--forest:#413d24;--restinga:#7c785b;--muted:#c2b9a7;--line:rgba(240,229,211,.23);color-scheme:dark;font-family:DM Sans,sans-serif;color:var(--sand);background:var(--earth);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--sand);outline-offset:5px}button{border:0}h1,h2,p{margin:0}button[hidden],[hidden]{display:none!important}.skip-link{position:fixed;z-index:10;left:20px;top:-70px;background:var(--sand);color:var(--earth);padding:12px}.skip-link:focus{top:20px}
.arrival{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;background:#29291e}.landscape,.veil{position:absolute;inset:0;z-index:-2}.landscape{background:#29291e}.landscape img,.landscape video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.landscape video{opacity:0;transition:opacity 1.8s ease}.landscape video.is-playing{opacity:1}.landscape-poster{filter:saturate(.73)}.veil{z-index:-1;background:linear-gradient(90deg,rgba(20,25,19,.24) 0%,rgba(25,23,17,.10) 48%,rgba(27,24,17,.30) 100%),linear-gradient(180deg,rgba(18,23,19,.5),rgba(22,26,19,.19) 38%,rgba(24,24,17,.46) 73%,rgba(22,23,17,.84));pointer-events:none}
.site-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:39px 5.1%;gap:24px}.collection{font-size:12px;letter-spacing:.22em;white-space:nowrap}.collection span{font-size:9px;letter-spacing:.24em;margin-left:8px;opacity:.77}.site-header nav{display:flex;gap:42px;align-items:center}.nav-link{font-size:12px;letter-spacing:.025em;background:transparent;padding:8px 0;position:relative}.nav-link:after,.footer-link:after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:currentColor;transition:width .25s}.nav-link:hover:after,.footer-link:hover:after{width:100%}.reservation-nav span{margin-left:22px;font-size:17px}
.hero-content{width:100%;max-width:1680px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:9%;align-items:center;padding:50px 7.6% 65px;flex:1}.identity{text-align:center;max-width:560px;justify-self:center;width:100%;padding:30px 0 32px}.identity h1{line-height:0}.wordmark{display:block;width:100%;height:auto}.destination{margin-top:28px;margin-left:.7em;font-size:12px;letter-spacing:.7em}.identity-rule{height:1px;width:32px;background:var(--sand);opacity:.5;margin:42px auto 23px}.brand-line{font:400 20px/1.5 Lora,Georgia,serif;letter-spacing:-.025em;color:#eee2ce}
.reservation-card{padding:31px 29px 24px;background:rgba(31,34,24,.78);border:1px solid rgba(240,229,211,.24);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);scroll-margin-top:30px;box-shadow:0 8px 50px rgba(0,0,0,.06)}.eyebrow{font-size:8px;letter-spacing:.19em;display:block;font-weight:500;color:var(--muted)}h2{font:400 27px/1.25 Lora,Georgia,serif;letter-spacing:-.045em}.reservation-card h2{margin-top:17px}.card-intro{font-size:11px;line-height:1.6;margin:12px 0 26px;color:#d0c6b5}.dates{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reservation-card label,.booking-dialog label{display:block;font-size:8px;letter-spacing:.12em;color:var(--muted)}input,select,textarea{width:100%;display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--sand);margin-top:8px;padding:4px 0 13px;min-width:0;outline-offset:2px}input{font-size:11px;height:38px;letter-spacing:0}input[type=date]{font-size:11px;padding-right:0}input[type=date]::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer;width:12px;padding:2px 0 2px 4px}select{font-size:12px;letter-spacing:0;cursor:pointer;height:38px}option{background:#2b2e22}textarea{font-size:12px;resize:vertical;line-height:1.6;letter-spacing:0}input::placeholder,textarea::placeholder{color:#c1b7a5;opacity:.75}.guests-field{margin-top:20px}.primary-button{background:var(--sand);color:var(--earth);width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 19px;min-height:50px;font-size:11px;margin-top:27px;transition:background .25s,color .25s}.primary-button span{font-size:20px;line-height:1;font-weight:400}.primary-button:hover{background:#fff5e5}.availability-note{font-size:9px;line-height:1.7;color:var(--muted);text-align:center;margin-top:16px;letter-spacing:.01em}
.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:27px 5.1% 31px}.location{font-size:9px;letter-spacing:.16em;display:flex;gap:12px;align-items:center;color:#d4ccb9}.location-dot{width:4px;height:4px;background:var(--sand);border-radius:50%}.footer-actions{display:flex;align-items:center;gap:24px}.footer-link,.video-toggle{font-size:9px;letter-spacing:.02em;padding:6px 0;background:transparent;color:#d4ccb9;position:relative}.video-toggle{display:flex;align-items:center;gap:9px;margin-right:10px}.playback-icon{font-size:12px;width:12px;line-height:1}
dialog{color:var(--sand);background:#2a2d20;border:1px solid var(--line);padding:54px 48px 43px;max-width:calc(100% - 40px);max-height:calc(100svh - 40px);overflow:auto;box-shadow:0 15px 100px #0005}dialog::backdrop{background:rgba(14,18,13,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}body:has(dialog[open]){overflow:hidden}.close-dialog{position:absolute;top:15px;right:17px;font-size:29px;font-weight:400;color:var(--sand);background:transparent;width:36px;height:36px;line-height:1}.editorial-dialog{width:580px}.river-mark{display:block;object-fit:contain;margin-bottom:35px;opacity:.8}.editorial-dialog h2{font-size:33px;line-height:1.38;margin:22px 0;letter-spacing:-.04em}.editorial-dialog h2 em{font-weight:400}.editorial-dialog p,.small-dialog p{font-size:13px;line-height:1.9;color:#cfc7b7;margin-top:18px}.text-button{background:transparent;border-bottom:1px solid var(--line);font-size:12px;padding:14px 0;display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:22px;min-height:44px}.text-button span{font-size:20px}.booking-dialog{width:450px;padding:45px 35px 31px}.booking-dialog h2{font-size:31px;margin:17px 0}.stay-summary{font-size:11px;line-height:1.8;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;color:#d8cdb9;margin:23px 0}.booking-dialog label{margin-top:20px}.booking-dialog input{font-size:13px;height:40px}.booking-dialog .primary-button{margin-top:23px}.optional{font-size:7px;opacity:.6;margin-left:7px}.email-explainer{font-size:10px;line-height:1.8;color:#c7beac;margin-top:14px}.email-explainer a,.small-dialog a{border-bottom:1px solid var(--line);overflow-wrap:anywhere}.email-status{font:400 20px/1.5 Lora,serif;margin-top:20px}.small-dialog{width:490px}.small-dialog h2{margin-top:20px;font-size:32px}.small-dialog a{color:var(--sand)}
@media(min-width:1600px){.identity{max-width:630px}.hero-content{grid-template-columns:minmax(0,1fr) 375px;padding-top:85px;padding-bottom:100px}.reservation-card{padding:38px 33px 28px}.destination{margin-top:35px}.identity-rule{margin-top:50px}.brand-line{font-size:23px}}
@media(max-width:1050px){.hero-content{padding:45px 5.1% 60px;gap:7%;grid-template-columns:minmax(0,1fr) 330px}.reservation-card{padding:28px 24px 24px}.reservation-card h2{font-size:25px}.destination{font-size:10px;margin-top:23px}.brand-line{font-size:18px}.identity-rule{margin-top:32px}.site-header nav{gap:28px}}
@media(max-width:760px){.arrival{min-height:100svh}.site-header{padding:25px 24px}.collection{font-size:10px;letter-spacing:.15em}.collection span{font-size:7px;letter-spacing:.15em;margin-left:5px}.site-header nav{gap:20px}.nav-link{font-size:10px}.reservation-nav{display:none}.hero-content{grid-template-columns:1fr;padding:32px 24px 25px;gap:0;max-width:450px}.identity{max-width:310px;padding:22px 12px 56px}.destination{font-size:10px;margin-top:23px;letter-spacing:.62em;margin-left:.62em}.identity-rule{margin:30px auto 16px;width:24px}.brand-line{font-size:17px;line-height:1.5}.reservation-card{width:100%;padding:29px 25px 22px}.reservation-card h2{font-size:27px}.eyebrow{font-size:8px}.card-intro{font-size:11px;margin-bottom:23px}.reservation-card label{font-size:9px}input[type=date]{font-size:12px}.guests-field{margin-top:18px}.primary-button{font-size:12px}.availability-note{font-size:9px}.site-footer{flex-direction:column;padding:25px 24px 26px;gap:17px}.location{font-size:8px;letter-spacing:.14em}.footer-actions{gap:24px}.footer-link,.video-toggle{font-size:9px}.video-toggle{margin:0}.landscape img,.landscape video{object-position:42% center}.veil{background:linear-gradient(180deg,rgba(22,25,18,.32),rgba(22,25,18,.20) 25%,rgba(22,25,18,.55) 62%,rgba(22,25,18,.89))}dialog{padding:45px 27px 30px;max-width:calc(100% - 28px);max-height:calc(100svh - 28px)}.editorial-dialog h2{font-size:28px}.booking-dialog h2{font-size:30px}.editorial-dialog p,.small-dialog p{font-size:12px}}
@media(max-width:360px){.hero-content{padding-left:18px;padding-right:18px}.reservation-card{padding:26px 20px 20px}.reservation-card h2{font-size:25px}.identity{max-width:280px}.dates{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.landscape video{transition:none}*{animation:none!important}}
.primary-button .button-label{font:inherit;line-height:1.4}.primary-button:disabled{opacity:.65;cursor:wait}.booking-dialog .consent-field{display:flex;align-items:flex-start;gap:10px;font-size:10px;line-height:1.65;letter-spacing:0;color:#cfc7b7}.booking-dialog .consent-field input{flex:0 0 15px;width:15px;height:15px;min-width:15px;margin:2px 0 0;accent-color:var(--sand)}.contact-website{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}.request-error{border-top:1px solid var(--line);margin-top:20px}.request-error a{border-bottom:1px solid var(--line);overflow-wrap:anywhere}.request-reference{font-size:11px;line-height:1.8;overflow-wrap:anywhere;border-top:1px solid var(--line);padding-top:15px;margin-top:20px;color:var(--sand)}#request-success:focus{outline:0}
.music-toggle{display:flex;align-items:center;gap:7px;background:transparent;color:#d4ccb9;font-size:9px;letter-spacing:.02em;padding:6px 0;white-space:nowrap}.music-toggle:disabled{opacity:.65;cursor:wait}.music-icon{font-size:14px;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.footer-actions{flex-wrap:wrap;justify-content:flex-end}#background-music{display:none}@media(max-width:760px){.footer-actions{justify-content:center;gap:12px 20px}}
.language-switch{display:block;flex-shrink:0}.language-switch select{width:96px;height:34px;margin:0;padding:6px 15px 6px 0;border-bottom-color:var(--line);font-size:11px;letter-spacing:.01em;color:var(--sand);background-color:transparent}.language-switch option{font-size:12px}@media(max-width:760px){.site-header nav{gap:15px}.language-switch select{width:83px;font-size:10px}.site-header{gap:15px}}

/* Licensed brand webfonts are pending. Keep the current, licensed preview families. */
:root {
  --font-display: Lora, Georgia, serif;
  --font-interface: "DM Sans", sans-serif;
  --muted: #d0c6b5;
  font-family: var(--font-interface);
}
.landscape-poster { filter: none; }
.veil {
  background: linear-gradient(90deg, rgba(20,25,19,.20), rgba(25,23,17,.06) 48%, rgba(27,24,17,.24)),
    linear-gradient(180deg, rgba(18,23,19,.54), rgba(22,26,19,.13) 38%, rgba(24,24,17,.36) 73%, rgba(22,23,17,.76));
}
.hero-content { grid-template-columns: minmax(0,1fr) 360px; padding-top: 26px; padding-bottom: 40px; }
.brand-line { font-family: var(--font-display); letter-spacing: -.015em; }
.reservation-card {
  padding: 32px 30px 25px;
  border-radius: 18px;
  background: rgba(31,34,24,.60);
  border-color: rgba(240,229,211,.22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: none;
}
h2 { font-family: var(--font-display); letter-spacing: -.035em; }
.reservation-card h2 { font-size: 29px; line-height: 1.25; }
.eyebrow { font-size: 9px; letter-spacing: .15em; }
.card-intro { font-size: 12px; line-height: 1.65; margin-bottom: 25px; }
.reservation-card label, .booking-dialog label { font-size: 10px; letter-spacing: .10em; }
input, select, textarea {
  transition: border-color .22s ease, background-color .22s ease;
}
input, input[type=date], select { font-size: 14px; min-height: 44px; height: 44px; }
input:focus, select:focus, textarea:focus { border-bottom-color: var(--sand); }
input::placeholder, textarea::placeholder { color: #cfc5b3; opacity: .9; }
.primary-button { font-size: 13px; min-height: 52px; }
.availability-note { font-size: 10px; line-height: 1.65; }
.nav-link, .footer-link, .video-toggle, .music-toggle { min-height: 44px; }
.footer-link, .video-toggle, .music-toggle { font-size: 10px; }
.language-switch select { height: 44px; min-height: 44px; font-size: 12px; }
.site-footer { padding-top: 20px; padding-bottom: 24px; }
.location { font-size: 10px; }
.booking-dialog { width: 520px; padding: 36px 34px 30px; }
.booking-dialog h2 { font-size: 30px; line-height: 1.2; margin-top: 15px; margin-bottom: 18px; }
.stay-summary { margin: 18px 0 22px; font-size: 12px; padding: 11px 0; }
.booking-dialog label { margin-top: 18px; }
.booking-dialog input { font-size: 15px; min-height: 44px; height: 44px; }
.booking-dialog textarea { font-size: 15px; }
.optional { font-size: 9px; opacity: .8; letter-spacing: .02em; }
.trip-details { margin-top: 12px; border-bottom: 1px solid var(--line); }
.trip-details summary { cursor: pointer; font-size: 12px; line-height: 1.6; padding: 13px 0; min-height: 46px; color: var(--sand); }
.trip-details summary::marker { color: var(--muted); }
.trip-details summary:focus-visible { outline: 2px solid var(--sand); outline-offset: 4px; }
.trip-details[open] { padding-bottom: 16px; }
.trip-details[open] summary { border-bottom: 1px solid var(--line); }
.email-explainer { font-size: 12px; line-height: 1.65; margin-top: 18px; }
.booking-dialog .consent-field { font-size: 12px; line-height: 1.6; margin-top: 17px; }
.booking-dialog .consent-field input { flex-basis: 18px; width: 18px; height: 18px; min-height: 18px; min-width: 18px; }
.booking-dialog .primary-button { margin-top: 22px; }
.editorial-dialog h2 { letter-spacing: -.03em; }
@media (min-width:1600px) {
  .hero-content { grid-template-columns: minmax(0,1fr) 385px; }
  .reservation-card { padding: 37px 33px 29px; }
  .reservation-card h2 { font-size: 31px; }
}
@media (min-width:761px) and (max-width:1050px) {
  .hero-content { grid-template-columns: minmax(0,1fr) 340px; gap: 6%; }
  .reservation-card { padding: 29px 25px 24px; }
  .reservation-card h2 { font-size: 27px; }
  .site-header nav { gap: 23px; }
}
@media (max-width:760px) {
  .hero-content { grid-template-columns: minmax(0,1fr); padding-top: 24px; }
  .dates { gap: 12px; }
  .identity { padding-bottom: 46px; }
  .reservation-card { padding: 30px 25px 24px; border-radius: 16px; background: rgba(31,34,24,.68); }
  .reservation-card h2 { font-size: 28px; }
  input, input[type=date], select, .booking-dialog input, .booking-dialog textarea { font-size: 16px; }
  .language-switch select { font-size: 11px; }
  .site-header nav { gap: 14px; }
  .booking-dialog { width: 100%; padding: 38px 24px 26px; }
  .booking-dialog h2 { font-size: 29px; }
  .site-footer { gap: 10px; padding: 20px 24px; }
  .footer-actions { gap: 6px 18px; }
  .location { font-size: 9px; }
  .veil { background: linear-gradient(180deg, rgba(22,25,18,.50), rgba(22,25,18,.14) 25%, rgba(22,25,18,.42) 62%, rgba(22,25,18,.84)); }
}
@media (max-width:360px) {
  .reservation-card { padding: 27px 20px 23px; }
  .reservation-card h2 { font-size: 25px; }
  .dates { grid-template-columns: 1fr; gap: 17px; }
}
@media (prefers-reduced-motion:no-preference) {
  .identity { animation: arrival-reveal .65s ease-out both; }
  .reservation-card { animation: arrival-reveal .65s ease-out .10s both; }
  dialog[open] { animation: dialog-reveal .24s ease-out both; }
  @keyframes arrival-reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes dialog-reveal { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
