@font-face{font-family:Instrument Sans;src:url(assets/instrument-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:Instrument Serif;src:url(assets/instrument-serif-italic.woff2) format("woff2");font-style:italic;font-display:swap}
:root{--forest:#151d17;--forest-2:#1f2a21;--paper:#f8f7f1;--mist:#eceee4;--ink:#20271d;--muted:#525b4f;--green:#dbed9a;--line:#d4d8ca;--gutter:clamp(24px,6vw,112px);--radius:14px;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.5 "Instrument Sans",Arial,sans-serif}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3,dl,dd{margin:0}
h1,h2,h3{font-weight:500;line-height:1.03;letter-spacing:-.055em}
h2{font-size:clamp(44px,6.25vw,91px)}
h3{font-size:clamp(22px,2.45vw,34px);letter-spacing:-.04em}
address{font-style:normal}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #68804b;outline-offset:4px}
.hero :focus-visible,.site-header :focus-visible,.surroundings :focus-visible,.contact :focus-visible,footer :focus-visible{outline-color:var(--green)}
.skip{position:absolute;z-index:5;top:8px;left:8px;padding:12px;background:var(--green);transform:translateY(-150%)}
.skip:focus{transform:none}
.wrap{width:min(calc(100% - 2 * var(--gutter)),1350px);margin-inline:auto}
.eyebrow{font-size:12px;line-height:1.4;letter-spacing:.15em;text-transform:uppercase;font-weight:650;margin-bottom:21px}
.site-header{position:absolute;inset:0 0 auto;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:106px;padding:22px var(--gutter);color:#fff}
.brand{display:inline-flex;align-items:center;gap:11px;line-height:1.05;width:max-content}
.brand strong{font-size:30px;font-weight:650;letter-spacing:-.065em}
.brand strong span{color:var(--green)}
.brand small{display:block;margin-top:5px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:600}
.mark{width:34px;height:34px;border:1px solid #9daa8d;border-radius:50%;display:grid;place-items:center;color:var(--green)}
.mark i{width:14px;height:14px;border-top:1px solid;border-left:1px solid;transform:translateY(4px) rotate(45deg)}
.site-header nav{display:flex;align-items:center;gap:clamp(16px,2.5vw,40px);font-size:14px;font-weight:550}
.site-header nav>a:not(.nav-cta):hover{color:var(--green)}
.nav-cta{border:1px solid #d8e5ce99;border-radius:100px;padding:11px 15px 11px 18px;display:flex;align-items:center;gap:12px;background:#18251c80;min-height:44px}
.menu-toggle{color:inherit;background:var(--forest-2);border:1px solid #7e8877;border-radius:100px;padding:10px 15px;min-height:44px}
.menu-toggle span{padding-left:6px}
.hero{min-height:clamp(620px,100svh,990px);display:grid;grid-template-columns:46% 54%;background:var(--forest);color:var(--paper);padding:20px 22px 22px 0}
.hero-copy{padding:100px 24px 62px max(var(--gutter),calc((100vw - 1350px)/2));align-self:center}
.hero h1{font-size:clamp(58px,6.2vw,114px);line-height:.99;letter-spacing:-.072em}
.hero h1 em{display:inline-block;color:var(--green);font:italic 400 1.14em/.82 "Instrument Serif",Georgia,serif;letter-spacing:-.04em;margin-top:.05em}
.location{display:flex;align-items:center;gap:9px;color:#d9e2cd}
.location span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #dbed9a25;margin-inline:3px}
.hero-lead{max-width:34ch;color:#d0d7cb;font-size:clamp(17px,1.35vw,23px);line-height:1.56;margin:30px 0 34px}
.pill{min-height:54px;display:inline-flex;width:max-content;max-width:100%;gap:24px;align-items:center;justify-content:space-between;border-radius:100px;padding:6px 7px 6px 20px;line-height:1.15;font-size:15px;font-weight:600;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.pill span{border-radius:50%;width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center}
.pill-light{background:var(--green);color:var(--forest)}
.pill-light span{background:#202b1e;color:var(--green)}
.pill-outline{border-color:#a8b19e;color:var(--ink)}
.pill-outline span{background:var(--forest);color:var(--paper)}
.hero-media{position:relative;overflow:hidden;border-radius:var(--radius);min-width:0;background:#364b23;isolation:isolate}
.hero-media picture,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:51% center}
.hero-media img{filter:saturate(.82) brightness(.91)}
.hero-media::after{position:absolute;content:"";inset:0;background:linear-gradient(180deg,#111a1490 0%,transparent 26%,transparent 73%,#111a1466 100%);pointer-events:none}
.hero-media figcaption{position:absolute;z-index:1;right:24px;bottom:23px;padding:10px 15px;border:1px solid #fff5;border-radius:100px;background:#172017b8;color:#fff;backdrop-filter:blur(8px);font-size:13px}
.hero-media figcaption span{margin-right:5px;color:var(--green);font-size:9px}
.intro,.stays,.practical,.surroundings,.contact{padding-block:clamp(72px,9vw,150px)}
.section-head{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:end;margin-bottom:44px}
.section-head>p{max-width:43ch;color:var(--muted);font-size:clamp(17px,1.5vw,22px);line-height:1.58}
.section-head>.pill{justify-self:end}
.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block:64px 14px}
.gallery-heading h3{font-size:16px;font-weight:600;letter-spacing:0}
.gallery-controls{display:flex;gap:8px}
.round{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid #a3ad98;background:transparent;color:inherit;font-size:22px;line-height:1}
.round:hover{background:var(--green);color:var(--forest)}
.round:disabled{opacity:.45;cursor:default;background:transparent}
.gallery{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/3);gap:18px;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:12px}
.gallery figure{scroll-snap-align:start;min-width:0}
.gallery a{display:block;overflow:hidden;border-radius:10px;background:var(--mist)}
.gallery img{width:100%;aspect-ratio:1.12;object-fit:cover;transition:transform .28s}
.gallery a:hover img{transform:scale(1.03)}
.gallery figcaption{font-size:14px;margin-top:9px;color:var(--muted)}
.stays{background:var(--mist)}
.stay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.stay{display:flex;flex-direction:column;background:var(--paper);border-radius:var(--radius);overflow:hidden}
.stay>img{width:100%;aspect-ratio:1.55;object-fit:cover}
.stay>div{display:flex;flex-direction:column;flex:1;padding:24px}
.stay p{margin:12px 0 20px;color:var(--muted)}
.stay a{margin-top:auto;font-weight:650;font-size:15px;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line)}
.stay a:hover,.rate-content a:hover{text-decoration:underline;text-underline-offset:4px}
details{border-block-end:1px solid var(--line)}
details:first-child,.prices{border-block-start:1px solid var(--line)}
summary{display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;list-style:none;font-weight:600;padding:12px 16px 12px 0}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:24px;font-weight:400}
details[open]>summary::after{content:"−"}
summary:hover{color:#4e6436}
.rate-content{padding-bottom:19px}
table{border-collapse:collapse;width:100%;margin:10px 0 26px;text-align:left;font-variant-numeric:tabular-nums}
caption{text-align:left;font-size:18px;font-weight:650;margin-bottom:9px}
th,td{padding:10px 8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
th{font-weight:550}
th:first-child{padding-left:0;width:57%}
.rate-content p,.faq p{color:var(--muted)}
.rate-content a{text-decoration:underline;text-underline-offset:4px}
.faq details p{padding-bottom:20px;max-width:65ch}
.surroundings,.contact,footer{background:var(--forest);color:var(--paper)}
.access-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,7vw,120px)}
.surroundings address{font-size:21px;margin-top:23px;font-weight:550}
.surroundings p:not(.eyebrow),.contact p:not(.eyebrow){color:#cad4c6;margin-top:14px;max-width:45ch}
.surroundings .pill{margin-top:24px}
.surroundings figure{position:relative}
.surroundings img{width:100%;height:auto;aspect-ratio:1.67;object-fit:cover;object-position:52% center;border-radius:var(--radius)}
.surroundings figcaption{font-size:13px;color:#cad4c6;margin-top:10px}
.contact{background:var(--mist);color:var(--ink);padding-block:clamp(58px,7vw,105px)}
.contact-grid{align-items:start}
.contact h2{font-size:clamp(40px,5.25vw,76px)}
.contact .contact-grid>div>p:not(.eyebrow){color:var(--muted)}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:29px}
.contact-links .pill-contact{gap:clamp(8px,2vw,24px);overflow-wrap:anywhere}
.pill>.pill-symbol::before{content:none}
.pill .pill-symbol .detail-icon{width:19px;height:19px;color:inherit}
.contact-links a:focus-visible{outline-color:#68804b}
.contact form{padding:clamp(18px,3.3vw,38px);border:1px solid #55614e;border-radius:var(--radius);background:#151d17;color:var(--paper)}
.contact form h3{font-size:clamp(23px,2vw,29px);margin-bottom:22px}
.contact label{display:block;font-size:14px;font-weight:550;margin:0 0 6px}
.contact input,.contact select{background:#252f24;border:1px solid #75836c;border-radius:7px;color:#fff;min-height:47px;width:100%;padding:10px 12px;color-scheme:dark}
.contact input{margin-bottom:18px}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.dates>div{min-width:0}
.select-field{display:block;position:relative;margin-bottom:18px}
.select-field select{appearance:none;padding-right:50px}
.select-field::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:absolute;right:16px;top:50%;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.contact .form-feedback{font-size:13px}
dialog{max-width:min(calc(100vw - 32px),1100px);width:max-content;max-height:calc(100dvh - 32px);border:0;padding:12px;border-radius:var(--radius);background:var(--forest);color:var(--paper)}
dialog::backdrop{background:#101710d9}
dialog .close{position:absolute;top:19px;right:19px;background:var(--forest);color:var(--paper)}
dialog img{max-height:76dvh;object-fit:contain;border-radius:8px}
dialog figcaption{padding:9px 3px 0}
@media(max-width:1100px){
  .site-header{padding-inline:var(--gutter) 38px}
  .hero-copy{padding-left:var(--gutter)}
  .hero{grid-template-columns:49% 51%}
}
@media(max-width:900px){
  .site-header{min-height:82px}
  .site-header nav{gap:13px;font-size:13px}
  .stay>div{padding:17px}
}
@media(max-width:740px){
  .site-header{position:relative;min-height:76px;background:var(--forest);padding:14px var(--gutter)}
  .site-header nav{flex-wrap:wrap;font-size:14px;gap:12px}
  .site-header .menu-toggle:not([hidden])+nav{display:none}
  .site-header .menu-toggle[aria-expanded=true]+nav{display:flex;position:absolute;top:100%;left:0;right:0;padding:16px var(--gutter) 23px;background:var(--forest);flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid #67725e}
  .site-header .menu-toggle[aria-expanded=true]+nav>a:not(.nav-cta){padding:11px 0}
  .nav-cta{justify-content:space-between}
  .hero{min-height:0;display:flex;flex-direction:column;padding:0 12px 12px}
  .hero-copy{align-self:stretch;padding:55px calc(var(--gutter) - 12px) 42px}
  .hero h1{font-size:clamp(55px,11vw,84px)}
  .hero-lead{margin:23px 0 25px}
  .hero-media{min-height:clamp(260px,65vw,420px)}
  .hero-media figcaption{bottom:12px;right:12px}
  .section-head,.access-grid,.contact-grid{grid-template-columns:1fr;gap:20px}
  .section-head{margin-bottom:28px}
  .section-head>.pill{justify-self:start}
  .gallery-heading{margin-top:42px}
  .gallery{grid-auto-columns:72%;gap:12px}
  .stay-grid{grid-template-columns:1fr;gap:14px}
  .stay>div{padding:21px}
  .contact-grid{gap:28px}
}
@media(max-width:360px){.dates{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Shared details across the four directions */
html { scroll-padding-top: 104px }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0 }
.site-header {
  position:fixed; inset:14px max(18px,calc((100vw - 1350px) / 2)) auto;
  z-index:10; min-height:64px; padding:10px 14px 10px 18px;
  border:1px solid #edf6d130; border-radius:21px; background:#1f2a21ed;
  color:var(--paper); box-shadow:0 12px 30px #10191019;
}
@supports (backdrop-filter:blur(18px)) {
  .site-header {
    background:linear-gradient(180deg,#d9edb520 0%,#91a2830b 42%,#111e191c 100%),#1421188a;
    backdrop-filter:blur(18px) saturate(142%) brightness(.70);
    box-shadow:inset 0 1px #f4ffd235,inset 0 -1px #0e1b1440,0 9px 28px #10191029;
  }
  .site-header.is-scrolled {
    background:linear-gradient(180deg,#e0f6bd1c 0%,transparent 55%),#16261c9c;
    border-color:#edf6d143;
  }
}
.site-header .brand strong { font-size:25px }
.site-header .brand small { font-size:9px }
.site-header nav { gap:clamp(14px,2.3vw,34px) }
.nav-cta { min-height:44px }
.pill,.nav-cta {
  --fill:var(--green); --arrow:var(--forest); --cta-hover:#284735;
  color:var(--cta-text,var(--paper));
  position:relative; isolation:isolate; overflow:hidden;
  transition:color .34s cubic-bezier(.2,.7,.2,1),border-color .34s;
}
.pill::before,.nav-cta::before {
  content:""; position:absolute; z-index:-1; right:7px; top:50%;
  width:38px; aspect-ratio:1; border-radius:50%; background:var(--fill);
  transform:translateY(-50%) scale(1); transition:transform .48s cubic-bezier(.22,.68,.16,1);
}
.pill-light { background:#dbed9a18; border-color:#dbed9a53 }
.pill-outline { --fill:var(--forest); --arrow:var(--paper); --cta-text:var(--forest) }
.pill>span,.nav-cta>span {
  background:transparent;
  color:var(--arrow);
}
.pill>span,.nav-cta>span,.arrow-control,.arrow-inline {
  position:relative;
  font-size:0;
}
.pill>span::before,.nav-cta>span::before,.arrow-control::before,.arrow-inline::before {
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:20px;
  height:12px;
  transform:translate(-50%,-50%);
  background:currentColor;
  clip-path:polygon(0 43%,82% 43%,61% 11%,69% 0,100% 50%,69% 100%,61% 89%,82% 57%,0 57%);
}
.arrow-prev::before { transform:translate(-50%,-50%) rotate(180deg) }
.arrow-up::before { transform:translate(-50%,-50%) rotate(-90deg) }
.arrow-inline { display:inline-block; width:24px; height:20px; flex:none; vertical-align:middle }
.arrow-inline::before { width:16px; height:10px }
.nav-cta { padding:4px 5px 4px 15px; background:#e0ecc619 }
.nav-cta span { width:32px; height:32px; display:grid; place-items:center }
.nav-cta>span::before { width:17px; height:10px }
.nav-cta::before { width:32px; right:5px }
:is(.pill,.nav-cta):is(:hover,:focus-visible) {
  color:var(--green);
  border-color:var(--cta-hover);
}
:is(.pill,.nav-cta):is(:hover,:focus-visible)>span { color:var(--green) }
:is(.pill,.nav-cta):is(:hover,:focus-visible)::before {
  background:var(--cta-hover);
  transform:translateY(-50%) scale(17);
}
.hero-rating { display:flex; width:max-content; max-width:100%; align-items:center; gap:6px; margin-top:22px; font-size:14px; color:#d0d7cb }
.hero-rating:hover { color:var(--green) }
.hero-rating span:first-child { color:var(--green); margin-right:2px; font-size:17px }
.hero-media figcaption { max-width:calc(100% - 24px) }
.key-stats { padding:clamp(40px,6.25vw,94px) 0; border-bottom:1px solid var(--line) }
.stats-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px }
.stats-list>div { padding:4px clamp(12px,2vw,34px); border-left:1px solid var(--line) }
.stats-list>div:first-child { padding-left:0; border:0 }
.stats-list dt { font-size:clamp(39px,6.5vw,94px); line-height:1; letter-spacing:-.08em; white-space:nowrap; font-variant-numeric:tabular-nums }
.stats-list dt small:not(.sr-only) { font-size:.38em; letter-spacing:-.04em; color:var(--muted) }
.stats-list dd { margin-top:15px; font-size:15px; color:var(--muted) }
.stats-list dd strong { display:block; color:var(--ink); font-size:17px; margin-bottom:3px }
.stat-icon,.detail-icon { fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;color:#546943 }
.stat-icon { display:block;width:clamp(40px,4.5vw,54px);height:auto;margin:0 0 12px }
.detail-icon { display:inline-block;width:24px;height:24px;flex:none;vertical-align:middle }
.amenities { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; color:var(--paper) }
.amenities>div { display:grid; align-content:start; gap:5px; padding:clamp(13px,2vw,26px) }
.amenities dt { display:grid; gap:9px; font-weight:650; line-height:1.3 }
.amenities dd { color:#d6e4cf; font-size:.9em; line-height:1.5 }
.amenities .detail-icon { width:clamp(38px,4vw,52px); height:auto; color:var(--green) }
@media(max-width:900px) { .amenities { grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(max-width:360px) { .amenities { grid-template-columns:1fr } }
.rate-content caption .detail-icon { width:clamp(28px,2.7vw,34px);height:auto;aspect-ratio:1;margin-right:9px }
.faq p a { font-weight:600;text-decoration:underline;text-underline-offset:3px }
@supports (interpolate-size:allow-keywords) and selector(::details-content) {
  @media(prefers-reduced-motion:no-preference) {
    .faq details::details-content {
      interpolate-size:allow-keywords;
      block-size:0;
      overflow:clip;
      opacity:0;
      transition:block-size .3s ease, opacity .24s ease, content-visibility .3s allow-discrete;
    }
    .faq details[open]::details-content { block-size:auto; opacity:1 }
  }
}
.gallery figure:nth-child(3n + 2),.amenities>div:nth-child(2) { --reveal-delay:65ms }
.gallery figure:nth-child(3n + 3),.amenities>div:nth-child(3) { --reveal-delay:130ms }
.amenities>div:nth-child(4) { --reveal-delay:195ms }
.gallery figcaption small { display:block; margin-top:2px; color:var(--muted); font-size:11px }
.gallery a { position:relative }
.gallery a::after { content:"+"; position:absolute; display:grid; place-items:center; width:34px; height:34px; right:10px; bottom:10px; border-radius:50%; background:#172019d9; color:#fff; font-size:20px }
dialog figcaption small { display:block; opacity:.8 }
.reviews,.nature { padding-block:clamp(65px,8vw,126px) }
.reviews { background:#e8ecde }
.review-score { align-self:end; justify-self:end; display:grid; gap:6px }
.review-score strong { font-size:clamp(45px,6vw,78px); line-height:1; letter-spacing:-.07em; font-weight:550 }
.review-score strong small { font-size:.45em; color:var(--muted) }
.review-score>span { color:var(--muted) }
.review-track { display:grid; overflow:hidden; border-radius:12px }
.review-track figure { display:grid; grid-area:1/1; align-content:center; justify-items:start; gap:16px; min-height:clamp(212px,24vw,310px); background:var(--paper); border:1px solid #d8dece; border-radius:12px; padding:clamp(22px,5vw,60px) }
.review-track:not(.is-enhanced)>figure:not(:first-child),.review-track.is-enhanced>figure[aria-hidden="true"] { visibility:hidden }
.review-track blockquote { margin:0; max-width:29ch; font-size:clamp(25px,3.5vw,51px); line-height:1.18; letter-spacing:-.035em }
.review-track figcaption { color:var(--muted); font-size:15px }
.review-track[data-direction="previous"] { --review-offset:-24px }
@media(prefers-reduced-motion:no-preference) {
  .review-track[data-direction]>figure[aria-hidden="false"] { animation:review-slide .42s cubic-bezier(.2,.65,.25,1) }
  @keyframes review-slide { from { opacity:0; transform:translateX(var(--review-offset,24px)) } }
  .stats-list .is-counting .stat-icon { animation:stat-icon-in .62s ease-out }
  @keyframes stat-icon-in { from { opacity:.45; transform:translateY(6px) } }
}
.stars { color:#3e582b; font-size:17px; letter-spacing:.1em }
.stars .unfilled { color:#5e6758 }
.review-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 22px; margin-top:24px }
.review-progress { height:3px; margin-top:9px; overflow:hidden; border-radius:6px; background:#ccd6c2 }
.review-progress span { display:block; height:100%; background:#587142; transform:scaleX(0); transform-origin:left }
.review-controls { display:flex; align-items:center; gap:9px }
.review-position { min-width:43px; text-align:center; font-size:13px; font-variant-numeric:tabular-nums; color:var(--muted) }
.review-source-date { display:block; margin-top:16px; color:var(--muted) }
.motion-toggle { color:inherit; border:1px solid currentColor; background:transparent; border-radius:40px; min-height:42px; padding:6px 11px; font-size:12px }
.review-toggle { margin-left:3px; border-color:#a3ad98 }
.review-toggle:hover { background:var(--paper) }
.nature { background:#eef0e6 }
.nature-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(26px,6vw,100px); align-items:center }
.nature-photo { overflow:hidden }
.nature-photo img { aspect-ratio:1; object-fit:cover; border-radius:var(--radius) }
.nature-photo figcaption { color:var(--muted); font-size:12px; margin-top:10px }
@media(min-width:741px) {
  :is(.direction-refit,.direction-immersion) .nature-grid { align-items:stretch }
  :is(.direction-refit,.direction-immersion) .nature-photo { position:relative; overflow:visible }
  :is(.direction-refit,.direction-immersion) .nature-photo img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto }
  :is(.direction-refit,.direction-immersion) .nature-photo figcaption { position:absolute; inset:100% 0 auto }
}
.nature-grid p:not(.eyebrow) { margin:19px 0; max-width:45ch; color:var(--muted) }
.nature-links { margin:20px 0 24px; display:grid; gap:11px }
.nature-links div { border-top:1px solid var(--line); padding-top:11px }
.nature-links dt { font-weight:650 }
.nature-links dd { color:var(--muted) }
.surroundings .map-card img { aspect-ratio:auto; object-fit:contain; background:#eceee4 }
.weather,.amenities { margin-top:clamp(36px,5vw,84px); position:relative; isolation:isolate; overflow:hidden; border-radius:22px; background:#283b31; border:1px solid #667e65; padding:clamp(14px,3.7vw,52px) }
.weather { display:grid; grid-template-columns:.85fr 1.15fr; column-gap:30px; align-items:center; padding:clamp(22px,3.7vw,52px) }
.weather::before,.amenities::before { content:""; z-index:-1; pointer-events:none; position:absolute; inset:0; background:radial-gradient(ellipse at -2% 100%,#718b4765,transparent 67%), radial-gradient(ellipse at 111% 3%,#b2c7882d,transparent 61%) }
.weather-day,.amenities>div { background:#12261c66; border:1px solid #b3c9ab42; border-radius:9px }
.weather .eyebrow { margin-bottom:10px; color:#e1ebd5 }
.weather-now { display:flex; align-items:center; gap:10px; margin-top:17px }
.weather-icon { display:inline-grid; place-items:center; flex:none; width:clamp(42px,6vw,72px); color:var(--green); line-height:1 }
.weather-icon svg { display:block; width:100%; height:auto; overflow:visible }
.weather-icon .weather-flake { stroke-width:2; transform-box:fill-box; transform-origin:center }
.weather-now>strong { font-size:clamp(38px,5vw,75px); white-space:nowrap; font-weight:500; line-height:1; letter-spacing:-.07em }
.weather-now div { margin-left:5px }
.weather-now div small { display:block; color:#d1dfc9; margin-top:3px; line-height:1.2 }
.weather-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px }
.weather-day { display:grid; gap:5px; justify-items:center; text-align:center; align-content:start; padding:12px 6px; font-size:13px }
.weather-day .weather-icon { width:38px }
.weather-day strong { font-size:16px; white-space:nowrap }
.weather-precipitation { color:#d6e4cf; font-size:12px }
.weather-source { grid-column:1/-1; justify-self:start; margin-top:14px; font-size:11px; color:#d7e4ce; text-decoration:underline; text-underline-offset:3px }
.weather-status { grid-column:1/-1 }
.weather-status a { text-decoration:underline; text-underline-offset:3px }
@media(prefers-reduced-motion:no-preference) {
  .weather-animated .weather-rays { transform-origin:32px 32px; animation:weather-turn 14s linear infinite }
  .weather-animated .weather-sunrise,.weather-animated .weather-moon { animation:weather-rise 3.2s ease-in-out infinite }
  .weather-animated .weather-drift { animation:weather-drift 3.2s ease-in-out infinite }
  .weather-animated .weather-fog { animation:weather-drift 1.9s ease-in-out infinite }
  .weather-animated .weather-fog:last-child { animation-delay:.18s; animation-direction:reverse }
  .weather-animated .weather-drop { animation:weather-drop .9s ease-in infinite }
  .weather-animated .weather-drop:nth-of-type(3) { animation-delay:.13s }
  .weather-animated .weather-drop:nth-of-type(4) { animation-delay:.27s }
  .weather-animated .weather-flake { animation:weather-snow 2.4s ease-in-out -.4s infinite }
  .weather-animated .weather-flake:nth-of-type(2) { animation-duration:2.9s; animation-delay:-1.3s }
  .weather-animated .weather-flake:nth-of-type(3) { animation-duration:2.6s; animation-delay:-2s }
  .weather-animated .weather-bolt { animation:weather-lightning 3s linear infinite }
  .weather-animated.weather-offscreen .weather-icon svg * { animation-play-state:paused }
  @keyframes weather-turn { to { transform:rotate(360deg) } }
  @keyframes weather-rise { 50% { opacity:.7; transform:translateY(-3px) } }
  @keyframes weather-drift { 50% { transform:translateX(4px) } }
  @keyframes weather-drop { 0% { opacity:.2; transform:translateY(-2px) } 40% { opacity:1 } 100% { opacity:.25; transform:translateY(6px) } }
  @keyframes weather-snow { 0% { opacity:0; transform:translateY(-2px) rotate(-9deg) } 22%,65% { opacity:1 } 100% { opacity:0; transform:translateY(4px) rotate(18deg) } }
  @keyframes weather-lightning { 0%,100% { opacity:0 } 10%,26% { opacity:1 } 38% { opacity:0 } }
}
noscript+.weather-status { display:none }
.instagram { position:relative; border:0 }
.instagram summary { min-height:44px; gap:9px; padding:0; font-weight:400 }
.instagram summary:hover { color:var(--green) }
.instagram summary::after { display:none }
.instagram p { margin-top:3px; color:#d7e4ce; max-width:28ch; font-size:13px }
.instagram-icon { display:inline-grid; place-items:center; width:19px; height:19px; border:1.6px solid currentColor; border-radius:5px; position:relative }
.instagram-icon::before { content:""; width:8px; height:8px; border:1.5px solid currentColor; border-radius:50% }
.instagram-icon::after { content:""; position:absolute; width:2.5px; height:2.5px; border-radius:50%; right:2.6px; top:2.6px; background:currentColor }
.motion-pending { opacity:0; transform:translateY(19px) }
.motion-block { transition:opacity .62s ease,transform .62s cubic-bezier(.2,.68,.3,1); transition-delay:var(--reveal-delay,0ms) }
.motion-pending:focus-within,.motion-pending:target { opacity:1; transform:none; transition:none }
@media(max-width:740px){
  html { scroll-padding-top:90px }
  .site-header { inset:10px 12px auto; min-height:58px; padding:6px 10px 6px 12px; border-radius:16px }
  .hero { padding-top:75px }
  .site-header .menu-toggle[aria-expanded=true]+nav { top:calc(100% + 8px); border:1px solid #64725d; background:#1b281eee; border-radius:14px }
  @supports (backdrop-filter:blur(18px)) {
    .site-header .menu-toggle[aria-expanded=true]+nav { background:#18261b9c; backdrop-filter:blur(20px) brightness(.63) }
  }
  .stats-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 8px }
  .stats-list>div:nth-child(odd) { border-left:0; padding-left:0 }
  .review-score { justify-self:start }
  .nature-grid,.weather { grid-template-columns:1fr }
  .nature-photo { order:2 }
  .weather-days { margin-top:20px }
}
@media(prefers-reduced-motion:reduce){ .motion-pending { opacity:1; transform:none } }

/* Refit */
.direction-refit { --refit-edge:max(clamp(18px,4vw,64px),calc((100% - 1350px) / 2)) }
.direction-refit .site-header { inset-inline:var(--refit-edge) }
.direction-refit .hero {
  min-height:0;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:center;
  gap:clamp(28px,4.1vw,64px);
  padding:108px var(--refit-edge) clamp(36px,5vw,72px);
}
.direction-refit .hero-copy { padding:18px 0 }
.direction-refit .hero h1 { font-size:clamp(44px,5.1vw,82px) }
.direction-refit .hero-lead { margin:24px 0 26px }
.direction-refit .hero-media {
  width:100%;
  aspect-ratio:25 / 24;
  max-height:clamp(396px,82.8svh,732px);
}
.direction-refit .hero-media img { object-position:50% 66% }
.direction-refit .hero-media::after { background:linear-gradient(0deg,#111a145c,transparent 42%) }

/* Au fil de l’eau */
.direction-immersion .hero { display:grid; grid-template-columns:1fr; align-items:end; position:relative; isolation:isolate; padding:0; min-height:clamp(690px,100svh,1050px) }
.direction-immersion .hero-media { position:absolute; inset:0; z-index:-1; border-radius:0 }
.direction-immersion .hero-media img { object-position:50% 54%; filter:brightness(.85) saturate(.87) }
.direction-immersion .hero-media::after { background:linear-gradient(90deg,#102018b8,transparent 88%),linear-gradient(0deg,#142019 0%,#14201940 58%,#14201930) }
.direction-immersion .hero-copy { margin:0 auto; width:min(calc(100% - 2 * var(--gutter)),1350px); padding:150px 0 clamp(76px,11vw,142px); align-self:end }
.direction-immersion .hero h1 { font-size:clamp(82px,12vw,182px); line-height:.8 }
.direction-immersion .hero h1 em { line-height:.84; font-size:1.07em }
.direction-immersion .hero-lead { color:#eef2e9 }
.direction-immersion .hero-rating { color:#eef2e9 }
.direction-immersion .nature { background:var(--forest-2); color:var(--paper) }
.direction-immersion .nature p:not(.eyebrow),.direction-immersion .nature dd,.direction-immersion .nature figcaption { color:#d1dfc9 }
.direction-immersion .nature .pill { --fill:var(--green); --arrow:var(--forest); --cta-text:var(--paper) }
.direction-immersion .nature-links div { border-color:#667358 }

/* Carnet du vallon */
.direction-carnet .hero { display:block; min-height:0; background:var(--paper); color:var(--ink); padding:135px var(--gutter) 0 }
.direction-carnet .hero-copy { padding:0 0 47px; text-align:center; width:min(100%,1050px); margin:auto }
.direction-carnet .hero .location { color:var(--muted); justify-content:center }
.direction-carnet .location span { background:#60764b; box-shadow:0 0 0 4px #5d754629 }
.direction-carnet .hero h1 { font-size:clamp(66px,10.5vw,148px) }
.direction-carnet .hero h1 br { display:none }
.direction-carnet .hero h1 em { color:#536942 }
.direction-carnet .hero-lead { margin:23px auto 25px; color:var(--muted); max-width:47ch }
.direction-carnet .hero .pill { --fill:var(--forest); --arrow:var(--paper); --cta-text:var(--forest); background:#ebeee3; border-color:#89987e }
.direction-carnet .hero-rating { margin:14px auto 0; color:var(--muted) }
.direction-carnet .hero-rating:hover { color:#385127 }
.direction-carnet .hero-rating span:first-child { color:#4c6537 }
.direction-carnet .hero-media { height:clamp(290px,47vw,610px); width:min(100%,1350px); margin:auto }
.direction-carnet .hero-media img { filter:saturate(.87); object-position:50% 58% }
.direction-carnet .hero-media::after { background:linear-gradient(0deg,#111a1466,transparent 45%) }
.direction-carnet .section-head h2,.direction-carnet .nature h2 { font-family:"Instrument Serif",Georgia,serif; font-style:italic; letter-spacing:-.025em }
.direction-carnet .gallery img { aspect-ratio:.85 }
.direction-carnet .nature-photo img { aspect-ratio:1.35 }

/* Camp de base */
.direction-camp-de-base .hero { width:min(calc(100% - 2 * var(--gutter)),1350px); margin:112px auto 0; min-height:0; padding:0; gap:12px; grid-template-columns:1fr .8fr; background:transparent }
.direction-camp-de-base .hero-copy { min-height:590px; width:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; align-self:stretch; padding:clamp(30px,6vw,86px); background:#223328; border-radius:var(--radius) }
.direction-camp-de-base .hero h1 { font-size:clamp(64px,8.2vw,121px) }
.direction-camp-de-base .hero-media img { object-position:50% 63%; filter:saturate(.85) }
.direction-camp-de-base .hero-media::after { background:linear-gradient(0deg,#141f165a,transparent 38%) }
.direction-camp-de-base .stays { background:var(--paper) }
.direction-camp-de-base .stay { border:1px solid var(--line) }
.direction-camp-de-base .stays .section-head { align-items:center }
.direction-camp-de-base .reviews { background:#e7ecdd }
.mark-option { border:0; background:var(--green); padding:6px }
.mark-option img { width:100%; height:100% }
@media(max-width:740px){
  .direction-refit { --refit-edge:12px }
  .direction-refit .hero { padding-block:105px 12px; gap:26px }
  .direction-refit .hero-copy { padding:0 calc(var(--gutter) - var(--refit-edge)) }
  .direction-refit .hero h1 { font-size:clamp(48px,10vw,70px) }
  .direction-refit .hero-media { aspect-ratio:10 / 9; min-height:0; max-height:450px }
  .direction-immersion .hero { min-height:670px }
  .direction-immersion .hero-copy { padding:126px 0 85px }
  .direction-immersion .hero h1 { font-size:clamp(71px,17vw,107px) }
  .direction-immersion .hero-media figcaption { right:15px; bottom:14px }
  .direction-carnet .hero { padding:107px 12px 0 }
  .direction-carnet .hero-copy { padding:0 12px 30px }
  .direction-carnet .hero h1 { font-size:clamp(65px,13vw,90px) }
  .direction-camp-de-base .hero { display:flex; width:calc(100% - 24px); margin:82px auto 0 }
  .direction-camp-de-base .hero-copy { min-height:0; padding:39px 25px }
  .direction-camp-de-base .hero-media { min-height:260px }
}

.map-link{display:block;border-radius:var(--radius)}

.site-footer {
  background:radial-gradient(ellipse at 0 0,#25352a 0%,transparent 65%),var(--forest);
  border-top:1px solid #cbdcb639;
  padding:clamp(49px,8vw,112px) 0 22px;
}
.footer-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(105px,.56fr) minmax(240px,1fr); gap:clamp(20px,4vw,70px); padding-bottom:clamp(45px,7vw,94px) }
.footer-brand { display:block; width:max-content; max-width:100% }
.footer-kicker { display:flex; gap:11px; align-items:center; color:#d2dcc8; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase }
.footer-kicker .mark { flex:0 0 34px }
.footer-wordmark { display:block; margin-top:12px; font-size:clamp(60px,8.25vw,135px); font-weight:600; line-height:.92; letter-spacing:-.065em }
.footer-wordmark>span { color:var(--green) }
.footer-column h2 { margin:9px 0 19px; color:#d2dcc8; font-size:12px; font-weight:650; letter-spacing:.14em; text-transform:uppercase; line-height:1.4 }
.footer-column ul { list-style:none; padding:0; margin:0 }
.footer-column li+li { margin-top:8px }
.footer-column address { display:grid; justify-items:start; gap:9px }
.footer-column address>a { overflow-wrap:anywhere }
.footer-column address>a:first-child { margin-bottom:4px }
.footer-column a:hover,.footer-tools a:hover { color:var(--green); text-decoration:underline; text-underline-offset:4px }
.footer-contact .instagram { margin-top:17px; width:max-content; max-width:100% }
.footer-contact .instagram summary { justify-content:flex-start; padding:0 14px; border:1px solid #9bac8f70; border-radius:100px; width:max-content; max-width:100% }
.footer-contact .instagram[open] p { margin-top:8px }
.footer-bottom,.footer-tools,.footer-credit { display:flex; align-items:center; flex-wrap:wrap }
.footer-bottom { border-top:1px solid #b2c5a34d; justify-content:space-between; gap:10px 25px; padding-top:14px; color:#d2dcc8; font-size:13px }
.footer-tools { gap:0 19px }
.footer-tools a,.footer-credit { min-height:44px; display:inline-flex; align-items:center }
.footer-credit { gap:11px; margin-left:auto; justify-content:flex-end; text-align:right }
.footer-credit img { width:104px; height:auto }
.footer-credit:hover span { text-decoration:underline; text-underline-offset:4px }
@media(max-width:850px) {
  .footer-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px clamp(15px,4vw,55px) }
  .footer-identity { grid-column:1/-1 }
  .footer-wordmark { font-size:clamp(54px,14vw,110px) }
}
@media(max-width:410px) {
  .footer-grid { grid-template-columns:100px minmax(0,1fr) }
  .footer-contact,.footer-tools { font-size:13px }
}
