:root { --ink:#17221d; --pine:#1f3a31; --cream:#f4efe4; --paper:#fbf8f1; --copper:#c97643; --muted:#6d756f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:82px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
a:focus-visible, summary:focus-visible { outline:3px solid #f0a06b; outline-offset:4px; }
#stay,#gallery,#location { scroll-margin-top:78px; }

.site-header { position:fixed; z-index:10; top:0; left:0; right:0; height:96px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; color:white; border-bottom:1px solid rgba(255,255,255,.24); transition:height .25s ease,background-color .25s ease,box-shadow .25s ease; }
.site-header.is-scrolled { height:74px; background:rgba(23,34,29,.96); border-bottom-color:rgba(255,255,255,.12); box-shadow:0 8px 28px rgba(0,0,0,.18); backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; gap:13px; }
.brand-logo { display:block; width:180px; height:auto; transition:width .25s ease; }
.site-header.is-scrolled .brand-logo { width:148px; }
nav { display:flex; align-items:center; gap:32px; font-size:13px; }
.nav-book { border:1px solid rgba(255,255,255,.65); padding:13px 19px; transition:.2s ease; }
.nav-book:hover { background:white; color:var(--ink); }

.hero { min-height:830px; height:100vh; position:relative; display:flex; align-items:center; background:url("/assets/images/hero-living.jpg") center 48%/cover no-repeat; color:white; overflow:hidden; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,17,13,.84) 0%,rgba(8,17,13,.43) 52%,rgba(8,17,13,.12) 100%),linear-gradient(0deg,rgba(8,17,13,.48),transparent 45%); }
.hero-content { position:relative; z-index:2; width:min(780px,88%); margin-left:clamp(24px,9vw,150px); padding-top:72px; }
.eyebrow { margin:0 0 22px; text-transform:uppercase; letter-spacing:.24em; font-size:12px; font-weight:700; }
.eyebrow.dark { color:var(--copper); }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.045em; }
h1 { margin:0; font-size:clamp(62px,8vw,116px); line-height:.88; text-wrap:balance; }
.hero-copy { max-width:650px; margin:30px 0 0; font-size:clamp(17px,1.6vw,21px); line-height:1.6; color:rgba(255,255,255,.88); }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:30px; }
.button { display:inline-flex; align-items:center; gap:18px; padding:17px 23px; font-size:14px; font-weight:700; }
.button-primary { background:var(--copper); color:white; transition:.2s ease; }
.button-primary:hover { background:#dc8751; transform:translateY(-2px); }
.text-link { padding:12px 0; border-bottom:1px solid rgba(255,255,255,.45); font-size:14px; }
.hero-proof { position:absolute; z-index:2; bottom:34px; right:clamp(24px,5vw,80px); display:flex; gap:40px; color:rgba(255,255,255,.86); font-size:12px; text-transform:uppercase; letter-spacing:.11em; }
.hero-proof span { padding-left:16px; border-left:1px solid rgba(255,255,255,.4); }
.hero-proof strong { display:block; color:white; font-size:13px; margin-bottom:5px; letter-spacing:.04em; }

.quick-facts { display:grid; grid-template-columns:repeat(4,1fr); background:var(--cream); padding:0 clamp(24px,5vw,80px); }
.quick-facts article { min-height:140px; display:flex; align-items:center; gap:17px; padding:25px; border-right:1px solid #d9d1c3; }
.quick-facts article:first-child { border-left:1px solid #d9d1c3; }
.fact-icon { font-family:Georgia,serif; font-size:25px; color:var(--copper); }
.quick-facts strong,.quick-facts small { display:block; }
.quick-facts strong { font-family:Georgia,serif; font-size:18px; font-weight:500; }
.quick-facts small { margin-top:6px; color:var(--muted); font-size:11px; }

.intro { max-width:1280px; margin:0 auto; padding:120px 48px; display:grid; grid-template-columns:70px 1fr 1fr; gap:54px; }
.section-number { color:#9b9f98; font-size:11px; letter-spacing:.15em; padding-top:8px; }
.intro h2 { margin:0; max-width:570px; font-size:clamp(47px,5vw,72px); line-height:1.02; }
.intro-copy { padding-top:43px; max-width:500px; }
.intro-copy p { margin:0 0 18px; color:#545e57; font-size:16px; line-height:1.75; }
.inline-link { display:inline-block; margin-top:13px; padding-bottom:7px; color:var(--pine); font-size:13px; font-weight:700; border-bottom:1px solid var(--pine); }

.feature-split { display:grid; grid-template-columns:1.08fr .92fr; min-height:720px; background:var(--pine); color:white; }
.feature-photo img { width:100%; height:100%; min-height:720px; object-fit:cover; display:block; }
.feature-copy { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(48px,7vw,110px); }
.feature-copy h2 { margin:0 0 28px; font-size:clamp(44px,4.5vw,70px); line-height:1.02; }
.feature-copy>p:not(.eyebrow) { margin:0; color:rgba(255,255,255,.84); font-size:16px; line-height:1.8; }
.feature-copy ul { list-style:none; padding:26px 0 0; margin:26px 0 0; border-top:1px solid rgba(255,255,255,.18); }
.feature-copy li { padding:11px 0 11px 26px; position:relative; font-size:13px; }
.feature-copy li:before { content:"✦"; position:absolute; left:0; color:var(--copper); }

.experience-section { padding:130px clamp(24px,7vw,110px); background:var(--cream); }
.section-heading { max-width:1240px; margin:0 auto 70px; display:grid; grid-template-columns:1.15fr .85fr; gap:100px; align-items:end; }
.section-heading h2 { margin:0; font-size:clamp(50px,5vw,76px); line-height:1; }
.section-heading>p { max-width:480px; margin:0 0 5px; color:#5e675f; line-height:1.8; }
.experience-grid { max-width:1240px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #cec5b8; border-bottom:1px solid #cec5b8; }
.experience-grid article { min-height:280px; padding:35px 28px; border-right:1px solid #cec5b8; }
.experience-grid article:first-child { border-left:1px solid #cec5b8; }
.experience-grid span { color:var(--copper); font-size:11px; letter-spacing:.15em; }
.experience-grid h3 { margin:68px 0 18px; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.experience-grid p { margin:0; color:#657067; font-size:13px; line-height:1.7; }

.gallery-section { background:#17221d; color:white; padding:125px clamp(20px,5vw,76px); }
.gallery-title { max-width:1260px; margin:0 auto 65px; display:flex; justify-content:space-between; align-items:end; }
.gallery-title h2 { margin:0; font-size:clamp(55px,6vw,90px); line-height:.94; }
.gallery-title>p { max-width:310px; margin:0 0 10px; color:rgba(255,255,255,.78); line-height:1.7; }
.gallery-swipe { display:none; }
.gallery-grid { max-width:1380px; margin:auto; display:grid; grid-template-columns:1.2fr .8fr .8fr; grid-template-rows:340px 290px; gap:12px; }
.gallery-grid figure { margin:0; position:relative; overflow:hidden; background:#26332d; }
.gallery-grid .gallery-main { grid-row:span 2; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.gallery-grid figure:hover img { transform:scale(1.035); }
.gallery-grid figcaption { position:absolute; left:18px; bottom:18px; padding:8px 11px; background:rgba(14,25,20,.76); font-size:11px; text-transform:uppercase; letter-spacing:.11em; }

.details-section { padding:125px clamp(24px,7vw,110px); background:var(--paper); }
.details-intro { max-width:1240px; margin:0 auto 80px; display:grid; grid-template-columns:1fr 1fr; column-gap:70px; }
.details-intro .eyebrow { grid-column:1/-1; }
.details-intro h2 { margin:0; font-size:clamp(48px,5vw,75px); line-height:1; }
.details-intro>p:last-child { max-width:410px; margin:12px 0 0; color:#626c65; line-height:1.8; }
.details-columns { max-width:1240px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #d4cec3; }
.details-columns>div { padding:38px 35px; border-right:1px solid #d4cec3; }
.details-columns>div:first-child { border-left:1px solid #d4cec3; }
.details-columns h3 { margin:0 0 24px; color:var(--copper); text-transform:uppercase; letter-spacing:.18em; font-size:11px; }
.details-columns ul { list-style:none; margin:0; padding:0; }
.details-columns li { padding:12px 0; border-bottom:1px solid #e6e0d6; font-family:Georgia,serif; font-size:17px; }

.location-section { display:grid; grid-template-columns:1fr 1fr; min-height:680px; background:#c97643; color:white; }
.location-copy { padding:105px clamp(42px,8vw,125px); display:flex; flex-direction:column; justify-content:center; }
.location-copy h2 { margin:0 0 27px; font-size:clamp(48px,5vw,76px); line-height:1; }
.location-copy>p:not(.eyebrow) { max-width:540px; margin:0 0 34px; color:rgba(255,255,255,.92); line-height:1.8; }
.button-dark { width:max-content; background:var(--ink); color:white; }
.distance-list { padding:70px clamp(40px,7vw,100px); background:#b6683a; display:flex; flex-direction:column; justify-content:center; }
.distance-list>.distance-row { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:center; column-gap:30px; padding:34px 0; border-bottom:1px solid rgba(255,255,255,.25); }
.distance-list>.distance-row:last-child { border-bottom:0; }
.distance-measure { display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.distance-list strong { display:block; font-family:Arial,Helvetica,sans-serif; font-size:64px; font-weight:300; letter-spacing:-.03em; line-height:.82; font-variant-numeric:tabular-nums; }
.distance-list span { display:block; text-transform:uppercase; white-space:nowrap; font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1; }
.distance-list p { margin:0; font-size:15px; line-height:1.45; }

.trust-section { max-width:1180px; margin:auto; padding:130px 45px; display:grid; grid-template-columns:.7fr 1.3fr; gap:110px; align-items:center; }
.rating { padding:60px 30px; text-align:center; border:1px solid #d5cec2; }
.rating span { color:var(--copper); letter-spacing:.2em; font-size:14px; }
.rating strong { display:block; margin:17px 0 4px; font-family:Georgia,serif; font-size:82px; font-weight:400; }
.rating p { margin:0; color:var(--muted); text-transform:uppercase; letter-spacing:.15em; font-size:10px; }
.trust-copy h2 { margin:0 0 25px; font-size:clamp(48px,5vw,72px); line-height:1; }
.trust-copy>p:not(.eyebrow):not(.signature) { margin:0; color:#5b655e; font-size:17px; line-height:1.8; }
.signature { margin:24px 0 0; font-family:Georgia,serif; font-size:20px; font-style:italic; }

.faq-section { padding:120px clamp(24px,7vw,110px); background:var(--cream); display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; }
.faq-section h2 { margin:0; font-size:clamp(50px,5vw,76px); line-height:1; }
.faqs { border-top:1px solid #cfc6b9; }
.faqs details { border-bottom:1px solid #cfc6b9; padding:0; }
.faqs summary { cursor:pointer; list-style:none; padding:25px 42px 25px 0; position:relative; font-family:Georgia,serif; font-size:20px; }
.faqs summary::-webkit-details-marker { display:none; }
.faqs summary:after { content:"+"; position:absolute; right:5px; font-family:Arial,sans-serif; font-weight:300; color:var(--copper); }
.faqs details[open] summary:after { content:"−"; }
.faqs p { margin:-5px 50px 25px 0; color:#626b65; font-size:14px; line-height:1.7; }

.final-cta { min-height:710px; position:relative; display:flex; align-items:center; background:url("/assets/images/lake-access.jpg") center/cover no-repeat; color:white; }
.cta-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,19,14,.92),rgba(9,19,14,.55) 55%,rgba(9,19,14,.15)); }
.cta-content { position:relative; z-index:1; margin-left:clamp(25px,10vw,160px); max-width:690px; }
.cta-content h2 { margin:0; font-size:clamp(65px,7vw,106px); line-height:.88; }
.cta-content>p:not(.eyebrow) { max-width:560px; margin:28px 0 35px; color:rgba(255,255,255,.88); line-height:1.7; }

footer { min-height:150px; padding:40px clamp(24px,6vw,90px); background:var(--ink); color:white; display:flex; justify-content:space-between; align-items:center; }
.footer-brand small { color:rgba(255,255,255,.58); }
.footer-links { display:flex; align-items:center; gap:28px; color:rgba(255,255,255,.82); font-size:12px; }
.footer-social { width:36px; height:36px; flex:0 0 36px; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.38); border-radius:50%; transition:background-color .2s ease,color .2s ease,border-color .2s ease; }
.footer-social:hover { background:white; border-color:white; color:var(--ink); }
.footer-social svg { display:block; width:16px; height:16px; fill:currentColor; }
.mobile-book { display:none; }

@media (max-width:900px) {
  nav>a:not(.nav-book) { display:none; }
  .hero { min-height:760px; }
  .hero-proof { left:24px; right:auto; }
  .quick-facts { grid-template-columns:repeat(2,1fr); padding:0; }
  .quick-facts article:nth-child(odd) { border-left:none; }
  .quick-facts article { border-bottom:1px solid #d9d1c3; }
  .intro { grid-template-columns:42px 1fr; padding:90px 28px; gap:24px; }
  .intro-copy { grid-column:2; padding-top:5px; }
  .feature-split { grid-template-columns:1fr; }
  .feature-photo img { min-height:500px; max-height:600px; }
  .feature-copy { padding:80px 45px; }
  .section-heading { grid-template-columns:1fr; gap:25px; }
  .experience-grid { grid-template-columns:repeat(2,1fr); }
  .experience-grid article:nth-child(3) { border-left:1px solid #cec5b8; }
  .gallery-title { align-items:start; flex-direction:column; gap:25px; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:420px 280px 280px; }
  .gallery-grid .gallery-main { grid-column:span 2; grid-row:auto; }
  .details-intro { grid-template-columns:1fr; gap:25px; }
  .details-columns { grid-template-columns:1fr; }
  .details-columns>div { border-left:1px solid #d4cec3; border-bottom:1px solid #d4cec3; }
  .location-section { grid-template-columns:1fr; }
  .trust-section { gap:50px; }
  .faq-section { grid-template-columns:1fr; gap:50px; }
}
@media (max-width:560px) {
  .site-header { height:78px; padding:0 18px; }
  .site-header.is-scrolled { height:66px; }
  .brand-logo { width:128px; }
  .site-header.is-scrolled .brand-logo { width:112px; }
  .nav-book { padding:11px 12px; font-size:11px; }
  .hero { min-height:720px; align-items:flex-end; padding-bottom:150px; background-position:61% center; }
  .hero h1 { font-size:clamp(48px,14vw,62px); }
  .hero-content { margin-left:22px; padding-top:0; }
  .hero-copy { font-size:16px; line-height:1.5; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:13px; margin-top:28px; }
  .hero-proof { bottom:30px; gap:18px; }
  .hero-proof span:nth-child(2) { display:none; }
  .quick-facts { grid-template-columns:1fr; }
  .quick-facts article { min-height:105px; border-right:0; padding:22px 28px; }
  .intro { grid-template-columns:1fr; padding:76px 24px; }
  .section-number { display:none; }
  .intro-copy { grid-column:1; }
  .feature-photo img { min-height:360px; }
  .feature-copy { padding:68px 24px; }
  .experience-section,.gallery-section,.details-section { padding-top:85px; padding-bottom:85px; }
  .experience-grid { grid-template-columns:1fr; }
  .experience-grid article,.experience-grid article:first-child,.experience-grid article:nth-child(3) { min-height:auto; border-left:1px solid #cec5b8; border-bottom:1px solid #cec5b8; }
  .experience-grid h3 { margin-top:36px; }
  .gallery-swipe { display:flex; align-items:center; justify-content:space-between; margin:-30px 0 20px; color:rgba(255,255,255,.8); text-transform:uppercase; letter-spacing:.18em; font-size:10px; }
  .gallery-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-color:var(--copper) rgba(255,255,255,.12); }
  .gallery-grid figure,.gallery-grid .gallery-main { flex:0 0 86%; height:400px; scroll-snap-align:start; }
  .details-intro { margin-bottom:50px; }
  .details-columns>div { padding:30px 22px; }
  .location-copy,.distance-list { padding:75px 24px; }
  .distance-list>.distance-row { grid-template-columns:112px minmax(0,1fr); column-gap:18px; padding:28px 0; }
  .distance-measure { gap:5px; }
  .distance-list strong { font-size:48px; }
  .distance-list p { font-size:13px; }
  .trust-section { padding:85px 24px; grid-template-columns:1fr; }
  .rating { padding:40px 20px; }
  .faq-section { padding:85px 24px; }
  .final-cta { min-height:650px; }
  .cta-content { margin:0 24px; }
  footer { padding-bottom:95px; align-items:flex-start; flex-direction:column; gap:35px; }
  .footer-links { align-items:flex-start; flex-direction:column; gap:14px; }
  .mobile-book { display:flex; position:fixed; z-index:20; left:12px; right:12px; bottom:12px; align-items:center; justify-content:space-between; padding:16px 18px; background:var(--copper); color:white; font-size:13px; font-weight:700; box-shadow:0 8px 30px rgba(0,0,0,.25); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
