@font-face{font-family:Playfair;src:url(assets/playfair-display-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;src:url(assets/manrope-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;src:url(assets/manrope-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --ink:#231e19;--paper:#fbf7ee;--white:#fff9ee;--sand:#efe4d2;--gold:#e1bc77;--gold-light:#f3d49b;
  --muted:#5d5042;--pale:#dccfbc;--line:#bbae98;--ring:#7e4e25;--frame:1280px;
  --display:Playfair,Georgia,serif;--body:Manrope,system-ui,sans-serif;
  color:var(--ink);background:var(--paper);font-family:var(--body);line-height:1.6
}
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,p,figure,dl,dd{margin:0}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.07;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(3rem,5.25vw,4.7rem)}
h2{font-size:clamp(2.6rem,4.8vw,4.45rem)}
h3{font-size:clamp(1.55rem,2.45vw,2.25rem)}
a{color:inherit;text-underline-offset:.24em}
a:hover{text-decoration-thickness:2px}
.symbols{display:none}
.icon{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.frame{width:min(calc(100% - 36px),var(--frame));margin-inline:auto}
.section{padding-block:clamp(44px,7vw,92px)}
:focus-visible{outline:3px solid var(--ring);outline-offset:4px}
.site-header :focus-visible,.hero :focus-visible,.site-footer :focus-visible{outline-color:var(--gold-light)}
section[id],article[id]{scroll-margin-top:18px}
::selection{background:var(--gold);color:var(--ink)}
.skip:not(:focus){position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%)}
.skip:focus{position:absolute;top:8px;left:8px;z-index:5;padding:12px;background:var(--paper)}
.button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;font-size:.91rem;font-weight:700}
.button{padding:10px 20px;border:1px solid transparent;background:var(--gold);color:var(--ink);text-decoration:none;text-align:center}
.button:hover{background:var(--gold-light)}
.text-link{text-decoration:underline;text-decoration-thickness:1px}
.button-dark{background:var(--ink);color:var(--white)}
.button-dark:hover{background:#493824}

.site-header,.hero,.site-footer{background:var(--ink);color:var(--white)}
.site-header{border-bottom:1px solid #5b4c3b}
.header-layout{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative}
.brand{display:flex;align-items:center;min-height:54px}
.brand img{width:102px}
.desktop-nav{display:none}
.header-book{display:none}
.mobile-menu summary{list-style:none;display:flex;align-items:center;gap:9px;min-height:44px;padding:4px 10px;border:1px solid #9b886d;font-size:.91rem;font-weight:700;cursor:pointer}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu[open] summary{background:#403327}
.mobile-menu nav{position:absolute;z-index:2;right:0;left:0;top:100%;display:grid;background:var(--ink);padding:8px 15px;border:1px solid #9b886d}
.mobile-menu nav a{display:flex;align-items:center;min-height:47px;padding-inline:8px}
.mobile-menu nav a+a{border-top:1px solid #5b4c3b}

.hero-grid{display:grid;gap:24px;padding-block:30px 18px}
.hero-copy{padding-block:4px 0}
.hero-intro{color:var(--pale);margin-top:14px;max-width:38ch;font-size:clamp(1rem,1.35vw,1.13rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:5px 18px;align-items:center;margin-top:19px}
.hero-actions .button{min-height:50px}
.booking-note{font-size:.82rem;color:var(--pale);margin-top:8px;max-width:50ch}
.arrival img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;object-position:50% 58%}
.arrival figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:8px;color:var(--pale);font-size:.79rem}
.address-strip{background:var(--gold);color:var(--ink)}
.address-line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 24px;padding-block:9px}
.address-line p{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;font-weight:700}
.address-line p .icon{margin-top:.26em}
.address-line .text-link{min-height:44px}

.section-intro{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:4px 16px;margin-bottom:18px}
.section-intro p{margin-top:9px;color:var(--muted)}
.room-grid{display:grid;gap:26px}
.room{min-width:0}
.room img,.experience-grid img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;background:var(--sand)}
.room h3{margin-top:12px}
.room>p{color:var(--muted);margin-top:6px}
.room dl{display:flex;gap:12px 25px;flex-wrap:wrap;margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}
.room dt{font-size:.76rem;color:var(--muted)}
.room dd{font-size:.95rem;font-weight:700}
.family-note{margin-top:26px;padding:13px 16px;background:var(--sand)}
.family-note p{max-width:66ch;font-size:.91rem}
.family-note .text-link{min-height:44px}
.room-actions{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;margin-top:4px}

.experiences{background:var(--sand)}
.experience-grid{display:grid;gap:34px}
.experience-grid article{min-width:0}
.experience-grid h2{margin-top:16px;font-size:clamp(2.15rem,4vw,3.5rem)}
.experience-grid p{max-width:44ch;color:var(--muted);margin-top:8px}
.experience-grid .text-link{margin-top:2px}
.explore{
  display:grid;
  gap:24px;
}
.explore-intro p{max-width:32ch;color:var(--muted);margin-top:12px}
.explore-intro .route-note{font-size:.87rem}
.explore-guide{min-width:0}
.destination-list{
  display:grid;
  padding:0;
  margin:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.destination-list li{
  display:grid;
  align-items:start;
  justify-items:start;
  gap:2px 20px;
  padding-block:16px 10px;
  border-bottom:1px solid var(--line);
}
.destination-list h3{font-size:clamp(1.5rem,2.35vw,2rem);text-wrap:wrap}
.destination-list h4{margin:0;font-size:1rem;line-height:1.35}
.destination-list p{margin-top:6px;color:var(--muted);font-size:.91rem;max-width:62ch}
.route-link{
  min-height:44px;
  gap:7px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.destination-more summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  min-height:48px;
  margin-top:16px;
  background:var(--sand);
  font-size:.92rem;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.destination-more summary::-webkit-details-marker{display:none}
.destination-more summary:hover{text-decoration:underline}
.destination-more[open] summary .icon{transform:rotate(180deg)}
.destination-group{margin:22px 0 10px;font-size:1.35rem;text-wrap:wrap}
.destination-planning{margin-top:14px;color:var(--muted);font-size:.91rem}
.explore-access{
  display:grid;
  gap:3px 18px;
  padding:14px 16px;
  background:var(--sand);
  font-size:.9rem;
}
.explore-access p{color:var(--muted);max-width:75ch}
.return-section{background:#383023;color:var(--white)}
.return-grid{display:grid;gap:16px;padding-block:clamp(31px,5vw,58px)}
.return-grid h2{font-size:clamp(2.1rem,3.85vw,3.5rem)}
.return-sample{color:var(--gold-light);font-size:.85rem;margin-bottom:4px}
.return-grid .booking-note{margin-top:5px}
.location-grid{display:grid;gap:20px}
.location-grid h2{font-size:clamp(2.45rem,4.55vw,4rem)}
.location-address{margin-top:13px;color:var(--muted)}
.location-actions{display:flex;align-items:flex-start;flex-direction:column}
.location-actions .button{margin-bottom:5px}
.footer-grid{padding-block:24px 30px;display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}
.footer-grid img{width:100px}
.footer-grid nav{display:flex;flex-wrap:wrap;gap:0 16px}
.footer-grid nav a{min-height:44px;display:inline-flex;align-items:center;font-size:.84rem}
.footer-grid p{font-size:.77rem;color:var(--pale);padding-block:12px}

@media (min-width:761px){
  .frame{width:min(calc(100% - 76px),var(--frame))}
  .header-layout{min-height:82px}
  .brand img{width:112px}
  .desktop-nav{display:flex;align-items:center;gap:clamp(14px,2.3vw,36px)}
  .desktop-nav a{min-height:44px;display:flex;align-items:center;font-size:.92rem;font-weight:700;text-decoration:none;white-space:nowrap}
  .desktop-nav a:hover{text-decoration:underline}
  .header-book{display:inline-flex}
  .mobile-menu{display:none}
  .hero-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:center;gap:clamp(26px,5vw,78px);padding-block:clamp(34px,4.6vw,68px) 24px}
  .hero-copy{padding-bottom:24px}
  .hero-intro{margin-top:21px}
  .hero-actions{margin-top:25px}
  .arrival img{aspect-ratio:1.43}
  .address-line{padding-block:4px}
  .section-intro{margin-bottom:25px}
  .room-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(15px,3vw,36px)}
  .family-note{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-inline:20px}
  .experience-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:clamp(28px,6vw,86px)}
  .experience-grid article+article{margin-top:42px}
  .explore{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:28px clamp(24px,5vw,72px)}
  .destination-list li{grid-template-columns:minmax(0,1fr) auto;padding-block:16px}
  .explore-access{grid-column:2;grid-template-columns:auto 1fr;align-items:baseline;padding:16px 18px}
  .return-grid,.location-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:36px}
  .location-actions{justify-self:end}
  .footer-grid{align-items:center}
}

@media (min-width:761px) and (max-width:900px){
  .explore-access{grid-template-columns:1fr}
}
