:root { --ink:#1e2a23; --ink-soft:#34473a; --lime:#dce3c4; --paper:#f3f0e7; --stone:#d8cfbf; --clay:#b56342; --line:rgba(30,42,35,.22); --cream:#fffdf8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.skip-link { position:absolute; left:1rem; top:-4rem; z-index:20; background:var(--cream); color:var(--ink); padding:.75rem 1rem; }
.skip-link:focus { top:1rem; }
.site-header { position:absolute; z-index:5; top:0; left:0; right:0; height:104px; display:flex; align-items:center; gap:3rem; padding:0 5.2vw; color:var(--cream); border-bottom:1px solid rgba(255,255,255,.34); }
.brand { font-family:"Newsreader",Georgia,serif; font-size:2.35rem; letter-spacing:-.075em; line-height:1; }
.brand span { color:var(--lime); }
.site-header nav { display:flex; align-items:center; gap:2rem; margin-left:auto; font-size:.9rem; }
.site-header nav a, .header-cta { transition:opacity .2s ease; }
.site-header nav a:hover, .header-cta:hover { opacity:.7; }
.header-cta { border:1px solid rgba(255,255,255,.7); border-radius:999px; padding:.7rem 1rem; font-size:.86rem; }
.header-cta span { font-size:1rem; padding-left:.35rem; }
.hero { min-height:760px; height:100vh; max-height:970px; position:relative; overflow:hidden; background:var(--ink); color:var(--cream); }
.hero>img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(19,31,25,.75) 0%,rgba(19,31,25,.4) 43%,rgba(19,31,25,.04) 78%),linear-gradient(0deg,rgba(15,23,18,.48) 0%,transparent 35%); }
.hero-content { position:relative; z-index:1; width:min(710px,88vw); padding:clamp(10rem,19vh,14rem) 0 5rem 8vw; }
.eyebrow { font-family:"DM Mono",monospace; font-size:.7rem; font-weight:500; letter-spacing:.08em; margin:0 0 1.7rem; }
.eyebrow span { display:inline-block; width:32px; height:1px; margin:0 .8rem .23rem 0; background:currentColor; }
.eyebrow-light { color:var(--lime); }
h1,h2,h3 { font-family:"Newsreader",Georgia,serif; font-weight:400; letter-spacing:-.055em; line-height:.89; margin:0; }
h1 { font-size:clamp(4.45rem,8vw,8rem); }
h2 { font-size:clamp(3.5rem,6vw,6.6rem); }
h3 { font-size:clamp(2.65rem,4vw,4.5rem); }
em { font-style:italic; font-weight:400; }
.hero-intro { max-width:430px; margin:2rem 0; font-size:1.08rem; line-height:1.55; }
.button { display:inline-flex; gap:1.5rem; align-items:center; border:0; border-radius:999px; padding:1rem 1.3rem; font:600 .9rem/1 "DM Sans",Arial,sans-serif; cursor:pointer; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-light { background:var(--cream); color:var(--ink); }
.button span { font-size:1.15rem; font-weight:400; }
.hero-side-note { position:absolute; z-index:1; right:2.4rem; bottom:5.5rem; writing-mode:vertical-rl; font-family:"DM Mono",monospace; letter-spacing:.13em; font-size:.6rem; color:rgba(255,253,248,.85); }
.hero-facts { position:absolute; z-index:1; display:flex; bottom:0; left:0; right:0; padding:1.2rem 5.2vw; border-top:1px solid rgba(255,255,255,.35); gap:clamp(2.5rem,7vw,7rem); }
.hero-facts div { display:flex; align-items:baseline; gap:.5rem; }
.hero-facts strong { font:400 2.4rem/1 "Newsreader",Georgia,serif; }
.hero-facts span { color:rgba(255,253,248,.82); font-size:.76rem; }
.section-shell { padding-left:8vw; padding-right:8vw; }
.intro { padding-top:9rem; padding-bottom:9rem; display:grid; grid-template-columns:1fr 4fr; gap:3rem; }
.intro-aside .mono { font-family:"DM Mono",monospace; font-size:.7rem; color:var(--clay); }
.intro-copy h2 { max-width:950px; }
.intro-text { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; max-width:720px; margin:3.4rem 0 0 auto; color:#415247; }
.intro-text p { margin:0; }
.feature-grid { display:grid; grid-template-columns:1fr 1.2fr 1fr; padding-bottom:9.5rem; }
.feature { min-height:520px; padding:3rem; display:flex; flex-direction:column; justify-content:flex-end; }
.feature h3 { margin-bottom:1.7rem; }
.feature p:not(.eyebrow) { max-width:310px; margin:0; font-size:.94rem; }
.feature-dark { background:var(--ink); color:var(--cream); }
.feature-dark h3 em { color:var(--lime); }
.feature-stone { background:var(--stone); color:var(--ink); }
.feature-stone h3 em { color:var(--clay); }
.feature-image { margin:0; position:relative; overflow:hidden; min-height:520px; background:#c6baab; }
.feature-image img { height:100%; object-fit:cover; }
.feature-image figcaption { position:absolute; bottom:1.35rem; left:1.5rem; color:var(--cream); font-family:"DM Mono",monospace; font-size:.65rem; letter-spacing:.08em; }
.text-link { display:inline-flex; gap:.65rem; align-items:center; width:max-content; margin-top:2.4rem; border-bottom:1px solid currentColor; padding-bottom:.25rem; font-size:.84rem; }
.details { display:grid; grid-template-columns:1.12fr 1.45fr; gap:7vw; padding-bottom:10rem; }
.details-heading h2 { margin-top:.7rem; }
.detail-list { margin:0; border-top:1px solid var(--line); }
.detail-list div { display:grid; grid-template-columns:.8fr 1.35fr; gap:1.5rem; padding:1.45rem 0; border-bottom:1px solid var(--line); }
.detail-list dt { font-family:"Newsreader",Georgia,serif; font-size:1.48rem; }
.detail-list dd { margin:0; align-self:center; color:#47554d; font-size:.94rem; }
.interlude { background:var(--lime); display:grid; grid-template-columns:1fr 1.05fr; min-height:720px; }
.interlude-image { overflow:hidden; }
.interlude-image img { height:100%; object-fit:cover; object-position:center; }
.interlude-copy { padding:clamp(4rem,8vw,9rem) 8vw; display:flex; flex-direction:column; justify-content:center; }
.interlude-copy .eyebrow { color:#536347; }
.interlude-copy h2 em { color:var(--clay); }
.interlude-copy>p:not(.eyebrow) { max-width:430px; margin:2.1rem 0; color:#40503e; }
.nearby-list { padding:0; margin:1rem 0 0; list-style:none; border-top:1px solid rgba(30,42,35,.28); }
.nearby-list li { padding:1rem 0; border-bottom:1px solid rgba(30,42,35,.28); font-family:"Newsreader",Georgia,serif; font-size:1.28rem; }
.practical { display:grid; grid-template-columns:.95fr 1.55fr; gap:7vw; padding-top:9rem; padding-bottom:9rem; }
.practical h2 { margin-top:.6rem; }
.accordion { border-top:1px solid var(--line); }
.accordion details { border-bottom:1px solid var(--line); }
.accordion summary { position:relative; padding:1.5rem 2rem 1.5rem 0; list-style:none; cursor:pointer; font-family:"Newsreader",Georgia,serif; font-size:1.65rem; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary span { position:absolute; right:.2rem; transition:transform .2s; }
.accordion details[open] summary span { transform:rotate(45deg); }
.accordion details p { max-width:560px; margin:0 0 1.6rem; color:#4b5a50; font-size:.94rem; }
.availability { background:var(--ink); color:var(--cream); display:grid; grid-template-columns:1fr 1fr; gap:10vw; padding:8rem 8vw; }
.availability-copy h2 em { color:var(--lime); }
.availability-copy>p:not(.eyebrow) { max-width:390px; margin:2rem 0 0; color:rgba(255,253,248,.78); }
.availability-form { display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 1rem; align-content:start; }
.availability-form label { display:grid; gap:.55rem; font:500 .7rem/1 "DM Mono",monospace; letter-spacing:.04em; color:var(--lime); }
.availability-form input,.availability-form select { width:100%; appearance:none; padding:.85rem 0 .72rem; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.52); border-radius:0; color:var(--cream); font:400 .98rem "DM Sans",Arial,sans-serif; outline-offset:5px; }
.availability-form option { color:var(--ink); }
.availability-form input::placeholder { color:rgba(255,253,248,.55); }
.availability-form .button { grid-column:1/-1; justify-content:space-between; margin-top:.8rem; }
.form-note,.form-success { grid-column:1/-1; margin:0; font-size:.72rem; color:rgba(255,253,248,.64); }
.form-success { color:var(--lime); }
.site-footer { padding:4rem 8vw 1.6rem; background:#172019; color:var(--cream); display:grid; grid-template-columns:1.3fr 1fr; gap:4rem; }
.site-footer .brand { font-size:2.8rem; }
.site-footer>div>p { margin:1rem 0 0; color:rgba(255,253,248,.72); font-size:.88rem; }
.footer-links { display:grid; grid-template-columns:repeat(2,max-content); gap:.7rem 2.5rem; align-content:start; font-size:.87rem; }
.footer-links a:hover { color:var(--lime); }
.footer-bottom { grid-column:1/-1; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.18); display:flex; justify-content:space-between; color:rgba(255,253,248,.62); font-size:.7rem; }
.footer-bottom a:hover { color:var(--cream); }
.page-header { position:relative; color:var(--ink); background:var(--paper); border-bottom-color:var(--line); }
.page-header .header-cta { border-color:var(--ink); }
.page-hero { display:grid; grid-template-columns:1.15fr .85fr; min-height:630px; background:var(--ink); color:var(--cream); }
.page-hero-copy { display:flex; flex-direction:column; justify-content:flex-end; padding:9rem 8vw 6.5rem; }
.page-hero-copy h1 em { color:var(--lime); }
.page-hero-copy p:not(.eyebrow) { max-width:420px; margin:2rem 0 0; color:rgba(255,253,248,.8); }
.page-hero-image { min-height:430px; overflow:hidden; }
.page-hero-image img { height:100%; object-fit:cover; }
.page-intro { padding-top:8rem; padding-bottom:8rem; display:grid; grid-template-columns:1fr 1.7fr; gap:7vw; }
.page-intro h2 { max-width:700px; }
.page-intro p { max-width:500px; margin:1rem 0 0; color:#45554a; }
.gallery-title { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; padding-top:1rem; padding-bottom:3rem; }
.gallery-title h2 { max-width:760px; }
.gallery-title p { max-width:270px; margin:0; color:#536057; font-size:.9rem; }
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:13vw; gap:1rem; padding-bottom:9rem; }
.gallery-grid figure { position:relative; margin:0; overflow:hidden; background:var(--stone); }
.gallery-grid img { height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-grid figure:hover img { transform:scale(1.03); }
.gallery-grid figcaption { position:absolute; bottom:.9rem; left:1rem; color:var(--cream); font: .62rem "DM Mono",monospace; letter-spacing:.08em; text-shadow:0 1px 10px rgba(0,0,0,.35); }
.gallery-grid .gallery-large { grid-column:span 7; grid-row:span 3; }
.gallery-grid .gallery-tall { grid-column:span 5; grid-row:span 4; }
.gallery-grid .gallery-wide { grid-column:span 7; grid-row:span 3; }
.gallery-grid .gallery-small { grid-column:span 5; grid-row:span 2; }
.stay-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:9vw; padding-top:8rem; padding-bottom:8rem; }
.stay-layout h2 { margin-top:.8rem; }
.stay-layout h2 em { color:var(--clay); }
.info-panels { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-panels article { min-height:180px; padding:1.8rem; background:var(--paper); }
.info-panels h3 { font-size:1.85rem; margin-bottom:.8rem; }
.info-panels p { margin:0; color:#506056; font-size:.88rem; }
.stay-steps { background:var(--lime); padding-top:7rem; padding-bottom:7rem; }
.stay-steps h2 { margin-bottom:4rem; }
.steps { margin:0; padding:0; list-style:none; border-top:1px solid rgba(30,42,35,.26); }
.steps li { display:grid; grid-template-columns:1.1fr 1.5fr; gap:2rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid rgba(30,42,35,.26); }
.steps h3 { font-size:2rem; }
.steps p { margin:0; max-width:430px; color:#495947; font-size:.9rem; }
.season-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.season-grid article { min-height:330px; padding:2.4rem; background:var(--paper); display:flex; flex-direction:column; justify-content:flex-end; }
.season-grid article:nth-child(2) { background:var(--stone); }
.season-grid h3 { font-size:2.4rem; margin-bottom:1rem; }
.season-grid p { margin:0; color:#46564b; font-size:.9rem; }
.around-list { border-top:1px solid var(--line); }
.around-item { display:grid; grid-template-columns:.18fr 1fr .8fr; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--line); }
.around-item span { font: .66rem "DM Mono",monospace; color:var(--clay); padding-top:.5rem; }
.around-item h3 { font-size:2.2rem; }
.around-item p { margin:0; align-self:center; color:#506056; font-size:.9rem; }
.note-block { background:var(--ink); color:var(--cream); padding:7rem 8vw; display:grid; grid-template-columns:1fr 1.3fr; gap:8vw; }
.note-block h2 em { color:var(--lime); }
.note-block p:not(.eyebrow) { max-width:480px; margin:1.5rem 0 0; color:rgba(255,253,248,.78); }
.note-block .button { margin-top:2.6rem; }
.terrain-hero { position:relative; min-height:calc(100vh - 104px); overflow:hidden; color:var(--cream); background:#8b3f2d; }
.terrain-hero>img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center; }
.terrain-scrim { position:absolute; inset:0; background:linear-gradient(90deg,rgba(33,24,19,.73) 0%,rgba(33,24,19,.32) 49%,rgba(33,24,19,.04) 100%),linear-gradient(0deg,rgba(33,24,19,.58) 0%,transparent 35%); }
.terrain-title { position:relative; z-index:1; min-height:calc(100vh - 104px); display:flex; flex-direction:column; justify-content:center; padding:7rem 8vw 8rem; }
.terrain-title h1 { font-size:clamp(4.6rem,8.1vw,8.5rem); max-width:760px; }
.terrain-title h1 em { color:#efc7a9; }
.terrain-title>p:not(.eyebrow) { max-width:410px; margin:2.2rem 0 0; color:rgba(255,253,248,.88); font-size:1.05rem; }
.terrain-caption { position:absolute; z-index:1; right:8vw; bottom:2rem; margin:0; font:.64rem "DM Mono",monospace; letter-spacing:.09em; }
.field-intro { padding-top:8.5rem; padding-bottom:7.5rem; display:grid; grid-template-columns:.75fr 1.7fr; gap:7vw; background:#d9c8b4; }
.field-intro h2 { max-width:760px; }
.field-intro h2 em { color:#9a4630; }
.field-intro p { max-width:530px; margin:1.3rem 0 0; color:#4f473d; }
.field-feature { display:grid; grid-template-columns:1.1fr .9fr; min-height:670px; background:#f0ebdf; }
.field-feature-image { overflow:hidden; }
.field-feature-image img { height:100%; object-fit:cover; }
.field-feature-copy { display:flex; flex-direction:column; justify-content:center; padding:6rem 7vw; }
.field-feature-copy h2 em { color:var(--clay); }
.field-feature-copy>p:not(.eyebrow) { margin:2rem 0 0; color:#4d5d52; max-width:400px; }
.field-feature-copy .text-link { margin-top:2.6rem; }
.outings { padding-top:8rem; padding-bottom:8rem; }
.outings-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:3.5rem; }
.outings-heading h2 em { color:var(--clay); }
.outing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.outing-card { min-height:410px; padding:2rem; display:flex; flex-direction:column; justify-content:flex-end; background:#d7ccc0; }
.outing-card h3 { font-size:2.7rem; margin-bottom:1.2rem; }
.outing-card p:not(.eyebrow) { margin:0; max-width:350px; font-size:.9rem; }
.outing-card a { display:inline-flex; justify-content:space-between; gap:1rem; width:max-content; max-width:100%; margin-top:2rem; padding-bottom:.22rem; border-bottom:1px solid currentColor; font-size:.78rem; }
.outing-lake { background:#b9cad0; color:#163b45; }
.outing-lake .eyebrow { color:#214c59; }
.outing-rock { background:#b9583f; color:#fff9ee; }
.outing-rock .eyebrow { color:#f5d5bf; }
.outing-village { background:#28372d; color:#fff9ee; }
.outing-village .eyebrow { color:#d9e2b9; }
.before-going { background:#1e2822; color:var(--cream); padding-top:7rem; padding-bottom:7rem; }
.before-going h2 em { color:var(--lime); }
.travel-notes { display:grid; grid-template-columns:repeat(3,1fr); margin-top:4rem; border-top:1px solid rgba(255,255,255,.24); }
.travel-notes article { padding:1.5rem 2rem 1rem 0; border-right:1px solid rgba(255,255,255,.24); }
.travel-notes article+article { padding-left:2rem; }
.travel-notes article:last-child { border:0; }
.travel-notes h3 { font-size:1.85rem; }
.travel-notes p { margin:1rem 0 0; max-width:310px; color:rgba(255,253,248,.75); font-size:.87rem; }
.field-closing { display:grid; grid-template-columns:1.1fr .8fr; gap:6vw; align-items:end; padding-top:8rem; padding-bottom:8rem; background:#f0ebdf; }
.field-closing h2 em { color:#9a4630; }
.field-closing>p { margin:0 0 1.5rem; color:#516057; }
.field-closing .button { grid-column:2; justify-self:start; background:var(--ink); color:var(--cream); }
@media (max-width:800px) { .page-header { position:relative; } .page-hero { grid-template-columns:1fr; } .page-hero-copy { min-height:470px; padding:7rem 1.3rem 4rem; } .page-hero-image { min-height:400px; } .page-intro { grid-template-columns:1fr; gap:2rem; padding-top:5rem; padding-bottom:5rem; } .gallery-title { display:block; padding-bottom:2rem; } .gallery-title p { margin-top:1.4rem; } .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:50vw; padding-bottom:5rem; } .gallery-grid .gallery-large,.gallery-grid .gallery-tall,.gallery-grid .gallery-wide,.gallery-grid .gallery-small { grid-column:span 1; grid-row:span 1; } .gallery-grid .gallery-large,.gallery-grid .gallery-wide { grid-column:span 2; } .stay-layout { grid-template-columns:1fr; gap:3rem; padding-top:5rem; padding-bottom:5rem; } .info-panels { grid-template-columns:1fr; } .stay-steps { padding-top:5rem; padding-bottom:5rem; } .steps li { grid-template-columns:.3fr 1fr; gap:1rem; } .steps li p { grid-column:2; } .season-grid { grid-template-columns:1fr; } .season-grid article { min-height:230px; } .around-item { grid-template-columns:.25fr 1fr; gap:1rem; } .around-item p { grid-column:2; } .note-block { grid-template-columns:1fr; gap:2rem; padding:5rem 1.3rem; } }
@media (max-width:800px) { .site-header { height:75px; padding:0 1.25rem; } .brand { font-size:2rem; } .site-header nav { display:none; } .header-cta { margin-left:auto; font-size:.75rem; padding:.55rem .75rem; } .hero { min-height:690px; height:100svh; } .hero>img { object-position:58% center; } .hero-shade { background:linear-gradient(90deg,rgba(19,31,25,.74),rgba(19,31,25,.22)),linear-gradient(0deg,rgba(15,23,18,.5),transparent 45%); } .hero-content { padding:9rem 1.3rem 8rem; width:min(500px,100%); } .hero-intro { font-size:1rem; max-width:330px; } .hero-side-note { display:none; } .hero-facts { padding:1rem 1.25rem; gap:1.2rem; } .hero-facts strong { font-size:1.85rem; } .hero-facts span { font-size:.65rem; } .section-shell { padding-left:1.3rem; padding-right:1.3rem; } .intro { grid-template-columns:1fr; gap:2rem; padding-top:5rem; padding-bottom:5rem; } .intro-text { grid-template-columns:1fr; gap:1rem; margin:2rem 0 0; } .feature-grid { grid-template-columns:1fr; padding-bottom:5rem; } .feature { min-height:420px; padding:2.3rem 1.5rem; } .feature-image { min-height:420px; } .details { grid-template-columns:1fr; gap:3rem; padding-bottom:5rem; } .detail-list div { grid-template-columns:1fr; gap:.25rem; } .interlude { grid-template-columns:1fr; } .interlude-image { height:500px; } .interlude-copy { padding:4.5rem 1.3rem; } .practical { grid-template-columns:1fr; gap:3rem; padding-top:5rem; padding-bottom:5rem; } .accordion summary { font-size:1.4rem; } .availability { grid-template-columns:1fr; gap:3.5rem; padding:5rem 1.3rem; } .availability-form { gap:1.4rem 1rem; } .site-footer { padding:3.5rem 1.3rem 1.2rem; grid-template-columns:1fr; gap:2.5rem; } .footer-bottom { display:grid; gap:.7rem; } }
@media (max-width:430px) { .availability-form { grid-template-columns:1fr; } h1 { font-size:4.1rem; } .hero-facts { gap:.75rem; } .hero-facts div { gap:.25rem; } .hero-facts strong { font-size:1.55rem; } }
@media (max-width:800px) { .steps li { grid-template-columns:1fr; gap:.8rem; } .terrain-hero,.terrain-title { min-height:680px; } .terrain-title { padding:5rem 1.3rem 5rem; justify-content:flex-end; } .terrain-title h1 { font-size:4.6rem; } .terrain-caption { left:1.3rem; right:auto; bottom:1.4rem; } .field-intro { grid-template-columns:1fr; gap:2rem; padding-top:5rem; padding-bottom:5rem; } .field-feature { grid-template-columns:1fr; } .field-feature-image { min-height:430px; } .field-feature-copy { padding:4.5rem 1.3rem; } .outings { padding-top:5rem; padding-bottom:5rem; } .outings-heading { display:block; margin-bottom:2rem; } .outing-grid { grid-template-columns:1fr; } .outing-card { min-height:350px; } .before-going { padding-top:5rem; padding-bottom:5rem; } .travel-notes { grid-template-columns:1fr; margin-top:3rem; } .travel-notes article,.travel-notes article+article { padding:1.5rem 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.24); } .travel-notes article:last-child { border-bottom:0; } .field-closing { grid-template-columns:1fr; gap:2rem; padding-top:5rem; padding-bottom:5rem; } .field-closing .button { grid-column:auto; } }
