:root { --ink: #192a34; --deep: #1b2b38; --pine: #315363; --cream: #f3f0e8; --paper: #fbfaf6; --gold: #d9a62e; --line: #d8d5cc; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0px; background: var(--paper); color: var(--ink); font-family: "DM Sans", sans-serif; }
img { display: block; width: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
.site-header { height: 82px; padding: 0px 4vw; display: flex; align-items: center; justify-content: space-between; background: rgba(251, 250, 246, 0.96); position: sticky; top: 0px; z-index: 20; border-bottom: 1px solid rgba(23, 33, 30, 0.1); }
.brand { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; letter-spacing: 0.04em; }
.brand small { display: block; font-size: 10px; font-weight: 500; opacity: 0.65; margin-top: 3px; text-transform: uppercase; letter-spacing: 0.09em; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--ink); font-family: Newsreader, serif; font-size: 16px; }
.brand-logo { width: 208px; height: auto; max-height: 72px; object-fit: contain; }
.site-header nav { display: flex; align-items: center; gap: 28px; font-size: 13px; font-weight: 600; }
.site-header nav a:not(.nav-cta):hover { color: var(--pine); }
.nav-cta { padding: 12px 17px; background: var(--deep); color: white; }
.menu-button { display: none; border: 0px; background: none; font: 600 13px "DM Sans"; }
.hero { height: calc(-82px + 100vh); min-height: 680px; position: relative; color: white; }
.hero > img { height: 100%; }
.hero .slide-image { transition: opacity .45s ease; }
.hero .slide-image.changing { opacity: .18; }
.hero-shade { position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(10, 36, 61, 0.75) 0%, rgba(10, 36, 61, 0.28) 58%, rgba(10, 36, 61, 0.08)), linear-gradient(0deg, rgba(10, 36, 61, 0.45), transparent 45%); }
.hero-copy { position: absolute; left: 7vw; top: 42%; transform: translateY(-50%); max-width: 760px; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.14em; font-size: 11px; font-weight: 600; color: var(--pine); margin: 0px 0px 20px; }
.light { color: rgb(240, 212, 126); }
.hero h1, .section h2, .split-callout h2 { font-family: Newsreader, serif; font-weight: 400; }
.hero h1 { font-size: clamp(58px, 7.5vw, 108px); line-height: 0.88; letter-spacing: -0.045em; margin: 0px 0px 28px; }
.hero-copy > p:not(.eyebrow) { font-size: 18px; line-height: 1.65; max-width: 610px; }
.hero-actions { display: flex; gap: 28px; align-items: center; margin-top: 34px; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 0px 22px; border: 0px; font: 600 12px "DM Sans"; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.gold { background: var(--gold); color: rgb(20, 32, 30); }
.outline { border: 1px solid white; color: white; }
.dark { background: var(--deep); color: white; }
.text-link { font-size: 13px; font-weight: 600; border-bottom: 1px solid; padding-bottom: 5px; }
.text-link span { margin-left: 9px; }
.light-link { color: white; }
.hero-facts { position: absolute; right: 4vw; top: 28px; background: rgba(251,250,246,.94); color: var(--ink); display: flex; padding: 18px 24px; gap: 25px; }
.hero-facts span { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.hero-facts b { font-family: Newsreader; font-size: 28px; font-weight: 400; margin-right: 5px; }
.slide-controls { position: absolute; left: 4vw; bottom: 24px; z-index: 3; display: flex; align-items: center; gap: 10px; }
.slide-controls button { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.6); background: rgba(13,36,54,.38); color: white; cursor: pointer; font-size: 17px; }
.slide-controls button:hover { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.slide-count { min-width: 54px; text-align: center; font-size: 10px; letter-spacing: .1em; }
.slide-name { min-width: 112px; font: 500 12px "DM Sans"; letter-spacing: .04em; }
.home-quick { position: sticky; top: 82px; z-index: 15; display: flex; align-items: center; overflow-x: auto; scrollbar-width: thin; background: var(--deep); color: white; padding: 0 4vw; box-shadow: 0 8px 24px rgba(13,36,54,.12); }
.home-quick strong, .home-quick a { white-space: nowrap; padding: 16px 17px; font-size: 11px; }
.home-quick strong { color: var(--gold); text-transform: uppercase; letter-spacing: .11em; }
.home-quick a { border-left: 1px solid rgba(255,255,255,.13); }
.home-quick a:hover, .home-quick a:focus-visible { background: var(--gold); color: var(--ink); outline: none; }
.home-quick a:last-child { position: sticky; right: 0; background: var(--gold); color: var(--ink); box-shadow: -14px 0 18px rgba(13,36,54,.5); font-weight: 600; }
.trust-strip { display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid var(--line); background: var(--paper); }
.trust-strip > div { padding: 30px 3vw; border-right: 1px solid var(--line); }
.trust-strip > div:last-child { border-right: 0; }
.trust-strip strong { display: block; margin-bottom: 8px; font: 400 24px/1.1 Newsreader,serif; }
.trust-strip span { display: block; color: #66706d; font-size: 12px; line-height: 1.55; }
.waterfront-opening { display: grid; grid-template-columns: .82fr 1.18fr 1fr; grid-template-rows: 310px 310px; gap: 12px; padding: 80px 4vw 50px; background: var(--cream); }
.waterfront-copy { grid-row: 1 / 3; padding: clamp(34px,5vw,74px); display: flex; flex-direction: column; justify-content: center; background: var(--paper); }
.waterfront-copy h2 { margin: 0 0 24px; font: 400 clamp(39px,4.5vw,65px)/1.02 Newsreader,serif; letter-spacing: -.035em; }
.waterfront-copy > p:not(.eyebrow) { color: #66706d; line-height: 1.75; }
.waterfront-copy .text-link { align-self: flex-start; margin-top: 18px; }
.waterfront-opening .gallery-item { min-height: 0; }
.waterfront-opening .waterfront-wide { grid-row: 1 / 3; }
.rate-compare { display: grid; grid-template-columns: .72fr 1.28fr; gap: 7vw; align-items: start; }
.compare-intro { position: sticky; top: 155px; }
.compare-intro > p:last-child { color: #66706d; line-height: 1.75; }
.compare-card { background: var(--deep); color: white; padding: clamp(28px,4vw,52px); box-shadow: 0 24px 60px rgba(13,36,54,.16); }
.compare-guide ol { margin: 0 0 30px; padding: 0; list-style: none; counter-reset: compare; }
.compare-guide li { display: grid; grid-template-columns: 34px 1fr; gap: 2px 16px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.18); counter-increment: compare; }
.compare-guide li::before { content: counter(compare, decimal-leading-zero); grid-row: span 2; color: var(--gold); font: 24px Newsreader,serif; }
.compare-guide li strong { font-size: 17px; }
.compare-guide li span { color: #cbd5d1; font-size: 13px; line-height: 1.55; }
.compare-guide .button { display: inline-block; }
.compare-controls { display: grid; grid-template-columns: 1fr .7fr; gap: 14px; margin-bottom: 28px; }
.compare-controls label { display: grid; gap: 9px; color: #d9e0de; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.compare-controls input, .compare-controls select { width: 100%; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.08); color: white; padding: 12px; font: 500 15px "DM Sans"; }
.money-input { position: relative; display: block; }
.money-input > span { position: absolute; left: 13px; top: 12px; }
.money-input input { padding-left: 28px; }
.compare-results { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid rgba(255,255,255,.17); }
.compare-results article { min-height: 170px; padding: 25px 20px; border-right: 1px solid rgba(255,255,255,.17); }
.compare-results article:last-child { border-right: 0; }
.compare-results .direct-result { background: var(--paper); color: var(--ink); }
.compare-results span, .compare-results small { display: block; }
.compare-results span { color: var(--gold); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.compare-results .direct-result span { color: #8b6816; }
.compare-results strong { display: block; margin: 18px 0 12px; font: 400 clamp(29px,3vw,42px) Newsreader,serif; }
.compare-results small { color: #bfc9c6; font-size: 11px; line-height: 1.5; }
.compare-results .direct-result small { color: #66706d; }
.compare-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 28px; }
.compare-footer p { margin: 0; font-size: 15px; }
.estimate-note { margin: 22px 0 0; color: #aebbb7; font-size: 11px; line-height: 1.6; }
.guest-love { display: grid; grid-template-columns: .82fr 1.18fr; gap: 7vw; align-items: start; padding-top: 90px; padding-bottom: 90px; }
.guest-love-heading > p:last-child, .planning-heading > p:last-child { color: #66706d; line-height: 1.75; }
.guest-love-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.guest-love-grid article { padding: 28px 24px 24px 0; border-bottom: 1px solid var(--line); }
.guest-love-grid article + article { padding-left: 24px; border-left: 1px solid var(--line); }
.guest-love-grid span { color: #a8780c; font-size: 10px; letter-spacing: .12em; }
.guest-love-grid h3 { margin: 16px 0 10px; font: 400 28px/1.08 Newsreader,serif; }
.guest-love-grid p { margin: 0; color: #66706d; font-size: 13px; line-height: 1.65; }
#stay, #property-tour, #gallery, #seasons, #availability { scroll-margin-top: 142px; }
.section { max-width: 1280px; margin: auto; padding: 120px 6vw; }
.narrow { max-width: 1140px; }
.intro { display: grid; grid-template-columns: 1fr 1fr; gap: 12vw; }
.section h2, .split-callout h2 { font-size: clamp(43px, 5.2vw, 72px); line-height: 1.02; letter-spacing: -0.035em; margin: 0px; }
.intro-copy { font-size: 17px; line-height: 1.75; padding-top: 30px; }
.feature-grid { display: grid; grid-template-columns: 1fr 0.78fr 1fr; gap: 18px; padding-top: 20px; }
.feature { min-height: 560px; position: relative; }
.feature-image img { height: 100%; }
.feature-image::after { content: ""; position: absolute; inset: 40% 0px 0px; background: linear-gradient(transparent, rgba(6, 20, 18, 0.75)); }
.feature-image div { position: absolute; z-index: 2; bottom: 30px; left: 28px; color: white; }
.feature-image span { font-size: 10px; text-transform: uppercase; letter-spacing: 0.15em; }
.feature h3 { font-family: Newsreader; font-size: 34px; font-weight: 400; margin: 8px 0px; }
.feature-copy { background: var(--cream); padding: 52px 38px; }
.feature-copy ul { list-style: none; margin: 36px 0px 0px; padding: 0px; }
.feature-copy li { padding: 15px 0px; border-bottom: 1px solid var(--line); font-size: 14px; }
.property-tour { padding-top: 70px; }
.tour-heading { display: grid; grid-template-columns: 1fr .58fr; gap: 8vw; align-items: end; margin-bottom: 50px; }
.tour-heading > p { color: #66706d; line-height: 1.75; margin: 0; }
.tour-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.tour-grid article { background: var(--cream); padding-bottom: 28px; }
.tour-grid img { height: 330px; }
.tour-grid article > span, .tour-grid h3, .tour-grid p { margin-left: 26px; margin-right: 26px; }
.tour-grid article > span { display: block; margin-top: 24px; color: #8b6b1f; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
.tour-grid h3 { font: 400 31px/1.08 Newsreader,serif; margin-top: 10px; margin-bottom: 12px; }
.tour-grid p { color: #66706d; font-size: 14px; line-height: 1.65; margin-top: 0; }
.season-section { padding-top: 140px; }
.season-heading { max-width: 720px; }
.season-heading > p:last-child { color: rgb(102, 112, 109); }
.season-picker { display: flex; border-bottom: 1px solid var(--line); margin-top: 55px; }
.season-tab { border-width: 0px 0px 3px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; background: transparent; padding: 18px 30px 16px 0px; margin-right: 30px; font: 500 14px "DM Sans"; color: rgb(115, 123, 120); cursor: pointer; }
.season-tab.active { color: var(--ink); border-color: var(--gold); }
.season-story { display: grid; grid-template-columns: 1.35fr 0.65fr; min-height: 500px; background: var(--deep); color: white; }
.season-story img { height: 100%; }
.season-story > div { padding: 60px 48px; }
.season-story > div > span { color: var(--gold); font-size: 12px; letter-spacing: 0.1em; }
.season-story h3 { font-family: Newsreader; font-weight: 400; font-size: 46px; margin: 28px 0px 20px; }
.season-story p { line-height: 1.75; color: rgb(215, 223, 220); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.tags span { border: 1px solid rgba(255, 255, 255, 0.2); padding: 8px 10px; font-size: 11px; }
.split-callout { height: 680px; position: relative; color: white; }
.split-callout img { height: 100%; }
.split-callout::after { content: ""; position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(7, 22, 20, 0.66), transparent 72%); }
.split-callout > div { position: absolute; z-index: 2; left: 8vw; top: 50%; transform: translateY(-50%); max-width: 550px; }
.split-callout p:not(.eyebrow) { font-size: 17px; line-height: 1.7; }
.gallery .section-title { display: flex; justify-content: space-between; align-items: end; margin-bottom: 50px; }
.section-title > p { color: rgb(110, 117, 114); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 260px; gap: 12px; }
.gallery-item { padding: 0px; border: 0px; position: relative; overflow: hidden; cursor: zoom-in; }
.gallery-item.wide { grid-column: span 2; }
.gallery-item.tall-photo { grid-row: span 2; }
.gallery-item.portrait img { object-position: center 38%; }
.gallery-item img { height: 100%; transition: transform 0.5s; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item span { position: absolute; left: 14px; bottom: 14px; background: rgba(251, 250, 246, 0.92); padding: 8px 11px; font-size: 11px; font-weight: 600; }
.lake-life { max-width: none; padding-left: 4vw; padding-right: 4vw; background: var(--cream); }
.lake-life-heading { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.lake-life-heading > p:last-child { color: #66706d; line-height: 1.7; }
.lake-life-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr; grid-template-rows: 280px 280px; gap: 12px; }
.lake-life-grid .gallery-item { min-height: 0; }
.lake-life-main { grid-row: 1 / 3; }
.lake-life-grid img { height: 100%; }
.guidebook-home { display: grid; grid-template-columns: .72fr 1.28fr; gap: 9vw; align-items: start; }
.guidebook-home > div:first-child { position: sticky; top: 155px; }
.guidebook-home > div:first-child > p:last-child { color: #66706d; line-height: 1.75; max-width: 430px; }
.guidebook-links { border-top: 1px solid var(--line); }
.guidebook-links a { display: grid; grid-template-columns: 50px 1fr; gap: 4px 20px; padding: 22px 4px; border-bottom: 1px solid var(--line); transition: padding .2s, background .2s; }
.guidebook-links a:hover { padding-left: 16px; background: var(--cream); }
.guidebook-links span { grid-row: 1 / 3; color: #a8780c; font-size: 11px; letter-spacing: .1em; padding-top: 6px; }
.guidebook-links strong { font: 400 28px Newsreader,serif; }
.guidebook-links small { color: #66706d; font-size: 12px; }
.planning-section { max-width: none; padding-left: 8vw; padding-right: 8vw; background: var(--cream); }
.planning-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: end; margin-bottom: 50px; }
.planning-heading > p:last-child { margin: 0; }
.planning-columns { display: grid; grid-template-columns: .9fr 1.1fr; gap: 18px; }
.planning-columns article { background: var(--paper); padding: clamp(30px,4vw,54px); }
.planning-columns h3 { margin: 0 0 30px; font: 400 34px Newsreader,serif; }
.stay-basics dl { margin: 0; }
.stay-basics dl > div, .drive-times li { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.stay-basics dt, .drive-times span { color: #66706d; font-size: 13px; }
.stay-basics dd, .drive-times strong { margin: 0; text-align: right; font-size: 13px; font-weight: 600; }
.drive-times > p { color: #66706d; font-size: 12px; line-height: 1.6; }
.drive-times ul { list-style: none; margin: 20px 0 0; padding: 0; }
.corporate { display: grid; grid-template-columns: 1.05fr 0.95fr; max-width: none; padding-left: 0px; padding-right: 0px; }
.corporate > img { height: 100%; min-height: 690px; }
.corporate-card { background: var(--deep); color: white; padding: 90px 8vw; }
.corporate-card > p:not(.eyebrow) { line-height: 1.75; color: rgb(210, 220, 218); }
.corporate-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 38px 0px; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.corporate-facts span { padding: 16px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); font-size: 13px; }
.availability { border-left: 3px solid var(--gold); padding-left: 18px; margin-bottom: 32px; }
.corporate-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.explore { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 9vw; }
.explore-list article { display: grid; grid-template-columns: 50px 1fr; column-gap: 18px; border-top: 1px solid var(--line); padding: 25px 0px; }
.explore-list article span { grid-row: span 2; color: var(--gold); }
.explore-list h3 { margin: 0px 0px 9px; font: 400 28px Newsreader; }
.explore-list p { margin: 0px; color: rgb(102, 112, 109); line-height: 1.6; }
.inquire { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: 9vw; background: var(--cream); max-width: none; padding-left: 8vw; padding-right: 8vw; }
.direct-booking-panel { min-width: 0; padding: clamp(22px,3vw,40px); background: #fff; border: 1px solid #d9d8d0; border-radius: 8px; box-shadow: 0 12px 38px rgba(20,42,59,.08); scroll-margin-top: 90px; }
.direct-booking-panel .ownerrez-widget { min-height: 340px; }
.widget-help { margin: 18px 0 0; font-size: 13px; line-height: 1.5; color: #55655d; }
.widget-help a { text-decoration: underline; text-underline-offset: 3px; }
.direct-request-fallback { grid-column: 1 / -1; border-top: 1px solid #c8c7c0; padding-top: 18px; }
.direct-request-fallback summary { cursor: pointer; font-weight: 600; color: var(--deep); }
.direct-request-fallback form { max-width: 760px; margin: 25px 0 0; }
.inquire > div > p:last-child { line-height: 1.7; }
.booking-options { display: grid; gap: 10px; margin: 34px 0 24px; }
.booking-option { display: grid; gap: 5px; padding: 18px 20px; border: 1px solid #c8c7c0; background: rgba(255,255,255,.58); transition: border-color .2s, transform .2s, background .2s; }
.booking-option:hover, .booking-option:focus-visible { border-color: var(--gold); background: white; transform: translateY(-2px); outline: none; }
.booking-option.primary { background: var(--deep); color: white; border-color: var(--deep); }
.booking-option.primary:hover, .booking-option.primary:focus-visible { background: var(--pine); border-color: var(--gold); }
.booking-option strong { font: 400 26px Newsreader,serif; }
.booking-option span { font-size: 12px; line-height: 1.55; opacity: .76; }
.booking-option .booking-title { display: flex; align-items: center; gap: 12px; opacity: 1; }
.booking-brand { display: block; flex: none; object-fit: contain; }
.airbnb-brand { width: 28px; height: 28px; }
.vrbo-brand { width: 78px; height: 28px; }
.booking-note { border-left: 3px solid var(--gold); padding-left: 16px; color: #56615e; font-size: 13px; }
.inquire form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.inquire label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.inquire input, .inquire select, .inquire textarea { width: 100%; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgb(158, 164, 159); border-image: none; background: transparent; padding: 12px 0px; font: 14px "DM Sans"; border-radius: 0px; }
.inquire textarea { resize: vertical; }
.inquire input:focus, .inquire select:focus, .inquire textarea:focus { outline: 2px solid var(--gold); outline-offset: 4px; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-heading { margin-bottom: 8px; }
.form-heading .eyebrow { margin-bottom: 10px; }
.form-heading h3 { margin: 0 0 10px; font: 400 36px Newsreader,serif; }
.form-heading > p:last-child, .form-fallback { margin: 0; color: #66706d; font-size: 12px; line-height: 1.6; }
.form-heading a, .form-fallback a { text-decoration: underline; text-underline-offset: 3px; }
.full { grid-column: 1 / -1; }
footer { background: rgb(11, 31, 30); color: white; padding: 60px 5vw; display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.footer-brand .brand-mark { border-color: white; }
dialog { border: 0px; padding: 0px; background: rgb(10, 15, 14); max-width: 92vw; max-height: 92vh; }
dialog::backdrop { background: rgba(4, 10, 9, 0.88); }
dialog img { max-width: 88vw; max-height: 85vh; object-fit: contain; }
dialog button { position: absolute; right: 8px; top: 8px; background: white; border: 0px; padding: 10px 14px; font-weight: 600; cursor: pointer; z-index: 2; }
.confirmation-page { min-height: 100vh; display: grid; place-items: center; padding: 7vw; background: linear-gradient(rgba(13,36,54,.72),rgba(13,36,54,.72)),url('assets/lake-view.webp?v=20260922a') center/cover; }
.confirmation-card { width: min(680px,100%); padding: clamp(38px,7vw,78px); background: var(--paper); }
.confirmation-card .brand { margin-bottom: 70px; }
.confirmation-card h1 { margin: 0 0 22px; font: 400 clamp(48px,7vw,78px)/.98 Newsreader,serif; letter-spacing: -.04em; }
.confirmation-card > p:not(.eyebrow) { color: #56615e; line-height: 1.75; margin-bottom: 30px; }
.confirmation-card p a { text-decoration: underline; text-underline-offset: 3px; }
.confirmation-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
@media (max-width: 850px) {
  .site-header { height: 68px; }
  .site-header .brand-logo { width: 160px; max-height: 58px; }
  .menu-button { display: block; }
  .site-header nav { display: none; position: absolute; top: 68px; left: 0px; right: 0px; background: var(--paper); padding: 20px 5vw; flex-direction: column; align-items: stretch; gap: 0px; border-bottom: 1px solid var(--line); }
  .site-header nav.open { display: flex; }
  .site-header nav a { padding: 14px 0px; }
  .nav-cta { text-align: center; margin-top: 8px; }
  .hero { height: 780px; min-height: 0px; }
  .hero-copy { left: 7vw; right: 7vw; top: 43%; }
  .hero h1 { font-size: 58px; }
  .hero-facts { display: none; }
  .slide-controls { bottom: 30px; left: 7vw; }
  .home-quick { top: 68px; padding-left: 1vw; }
  .home-quick strong, .home-quick a { padding: 14px 13px; }
  .trust-strip { grid-template-columns: 1fr 1fr; }
  .trust-strip > div:nth-child(2) { border-right: 0; }
  .trust-strip > div { padding: 24px 6vw; border-bottom: 1px solid var(--line); }
  .guest-love, .planning-heading, .planning-columns, .rate-compare { grid-template-columns: 1fr; }
  .waterfront-opening { grid-template-columns: 1fr 1fr; grid-template-rows: auto 390px 260px; }
  .waterfront-copy { grid-column: 1 / 3; grid-row: auto; }
  .waterfront-opening .waterfront-wide { grid-column: 1 / 3; grid-row: auto; }
  .compare-intro { position: static; }
  .guest-love-grid { grid-template-columns: 1fr; }
  .guest-love-grid article, .guest-love-grid article + article { padding: 24px 0; border-left: 0; }
  #stay, #property-tour, #gallery, #seasons, #availability { scroll-margin-top: 124px; }
  .section { padding: 85px 7vw; }
  .intro, .season-story, .corporate, .explore, .inquire, .tour-heading, .guidebook-home { grid-template-columns: 1fr; }
  .feature-grid { grid-template-columns: 1fr; }
  .feature { min-height: 420px; }
  .feature-copy { min-height: auto; }
  .tour-grid { grid-template-columns: 1fr; }
  .tour-grid img { height: 390px; }
  .guidebook-home > div:first-child { position: static; }
  .season-picker { overflow: auto; }
  .season-tab { white-space: nowrap; }
  .season-story > div { padding: 40px 28px; }
  .split-callout { height: 570px; }
  .gallery .section-title { display: block; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; }
  .gallery-item.wide { grid-column: span 2; }
  .lake-life-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 360px 230px 230px; }
  .lake-life-main { grid-column: 1 / 3; grid-row: auto; }
  .corporate { padding: 0px; }
  .corporate-card { padding: 80px 7vw; }
  .corporate > img { min-height: 430px; }
  .inquire form { grid-template-columns: 1fr; }
  .inquire form > * { grid-column: 1; }
  footer { align-items: flex-start; flex-direction: column; gap: 24px; }
  .section h2, .split-callout h2 { font-size: 44px; }
}
@media (max-width: 520px) {
  .brand small { display: none; }
  .trust-strip { grid-template-columns: 1fr; }
  .trust-strip > div { border-right: 0; }
  .hero h1 { font-size: 48px; }
  .hero-copy > p:not(.eyebrow) { font-size: 16px; }
  .hero { height: 680px; }
  .hero-copy { top: 43%; }
  .slide-controls { display: none; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .gallery-grid { display: block; }
  .stay-basics dl > div, .drive-times li { align-items: flex-start; }
  .gallery-item { width: 100%; height: 260px; margin-bottom: 10px; }
  .gallery-item.tall-photo { height: 340px; }
  .lake-life-grid { display: block; }
  .waterfront-opening { display: block; padding: 50px 5vw; }
  .waterfront-copy { margin-bottom: 10px; padding: 42px 28px; }
  .waterfront-opening .gallery-item { height: 280px; margin-bottom: 10px; }
  .lake-life-grid .gallery-item { width: 100%; height: 260px; margin-bottom: 10px; }
  .tour-grid img { height: 280px; }
  .corporate-facts { grid-template-columns: 1fr; }
  .compare-controls, .compare-results { grid-template-columns: 1fr; }
  .compare-results article { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.17); }
  .compare-footer { align-items: stretch; flex-direction: column; }
  .season-picker { margin-right: -7vw; }
  .season-story h3 { font-size: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Room-by-room property tour */
.gallery-context { margin: 0 0 24px; color: var(--deep); }
.photo-room { margin: 0 0 34px; }
.photo-room h3 { font-family: Newsreader, Georgia, serif; font-size: clamp(1.4rem, 2.4vw, 2rem); margin: 0 0 14px; }
.room-gallery { grid-auto-rows: 230px; }
.room-gallery .gallery-item { min-width: 0; }
#lightbox { width: min(1100px, 96vw); max-width: 96vw; max-height: 96vh; overflow: visible; background: #142634; color: white; }
#lightbox figure { margin: 0; display: grid; place-items: center; }
#lightbox img { max-width: 90vw; max-height: 80vh; width: auto; height: auto; }
#lightbox figcaption { display: flex; justify-content: space-between; gap: 20px; width: 100%; padding: 12px 20px; font-size: 14px; }
#lightbox button { color: #1b2b38; border-radius: 50%; min-width: 44px; min-height: 44px; font-size: 20px; }
#lightbox .lightbox-close { border-radius: 24px; font-size: 14px; }
#lightbox .lightbox-prev, #lightbox .lightbox-next { width: 44px; height: 44px; padding: 0; top: 50%; transform: translateY(-50%); z-index: 3; }
#lightbox .lightbox-prev { left: 10px; right: auto; }
#lightbox .lightbox-next { right: 10px; left: auto; }
@media (max-width: 650px) { .room-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 180px; gap: 8px; } .room-gallery .gallery-item, .room-gallery .gallery-item.tall-photo { width: 100%; height: 100%; margin: 0; grid-column: auto; grid-row: auto; } .room-gallery .gallery-item:first-child:last-child { grid-column: 1 / -1; height: 250px; } #lightbox img { max-height: 75vh; } #lightbox figcaption { font-size: 12px; } }

.hero-cta-note { display: block; width: 100%; font-size: 14px; line-height: 1.4; color: white; }
.hero-actions { flex-wrap: wrap; }

.hero-booking-cta { display:flex;flex-direction:column;align-items:flex-start;gap:9px; }

/* Approved blue lakefront palette and compact phone composition. */
:root{--ink:#1c2c38;--deep:#1d3040;--pine:#31546d;--cream:#f6f4ed;--paper:#fdfcf8;--gold:#dfae2f;--line:#deded9}
.hero-shade{background:linear-gradient(90deg,rgba(11,39,69,.78) 0%,rgba(12,43,74,.38) 63%,rgba(10,32,55,.26)),linear-gradient(0deg,rgba(10,34,57,.5),transparent 52%)}
.hero .eyebrow{color:#f7d98a}
.home-quick{background:var(--deep);box-shadow:none}
.home-quick strong{color:var(--gold);font-size:14px}
.home-quick a{font-size:14px}
.home-quick a:last-child{position:static;background:none;color:#fff;box-shadow:none;font-weight:500}
.trust-strip strong{color:var(--ink)}
.trust-strip span{color:#425b6b}
@media(max-width:520px){
 .site-header{height:68px;padding:0 5.5vw}
 .brand-logo{width:min(42vw,175px);max-height:58px}
 .menu-button{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:14px;color:var(--deep)}
 .hero{height:560px;min-height:0}
 .hero-copy{left:6vw;right:6vw;top:47%}
 .hero h1{font-size:clamp(43px,11.3vw,58px);line-height:.99;margin-bottom:22px}
 .hero-copy>.eyebrow{font-size:12px;line-height:1.6;max-width:260px;margin-bottom:24px}
 .hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.5;max-width:330px}
 .hero-actions{margin-top:26px;gap:12px}
 .hero-booking-cta{width:min(100%,320px)}
 .hero-booking-cta .button{min-height:56px;width:100%;font-size:13px;letter-spacing:.045em}
 .hero-cta-note{font-size:13px}
 .hero-actions>.text-link{display:none}
 .home-quick{top:68px;justify-content:space-between;padding:0 4vw}
 .home-quick strong,.home-quick a{padding:17px 7px;font-size:13px;border-left:0}
 .home-quick strong{font-size:13px}
 .trust-strip>div{padding:24px 6vw}
 .trust-strip strong{font:600 15px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.055em}
 .trust-strip span{font-size:15px;line-height:1.45}
 .waterfront-opening{background:#fff;padding:40px 5vw}
 .waterfront-copy{background:#fff;padding:10px 0 28px}
 .waterfront-copy h2{font-size:clamp(40px,10.8vw,54px)}
}

.winter-arrival{display:grid;grid-template-columns:minmax(230px,.42fr) 1fr;align-items:stretch;background:var(--deep);color:white;min-height:320px}
.winter-arrival img{height:320px;object-position:center 40%}
.winter-arrival>div{padding:clamp(35px,5vw,72px) 7vw;align-self:center}
.winter-arrival h2{font:400 clamp(36px,4vw,58px)/1.03 Newsreader,serif;letter-spacing:-.025em;margin:0 0 18px}
.winter-arrival p:not(.eyebrow){font-size:16px;line-height:1.6;max-width:690px;color:#e2eaf0}
.winter-arrival .text-link{display:inline-block;margin-top:15px}
.airbnb-savings{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:start;max-width:none;padding-left:8vw;padding-right:8vw;background:#f6f4ed}
.airbnb-savings h2{font:400 clamp(42px,5vw,68px)/1.02 Newsreader,serif;letter-spacing:-.03em;margin:0 0 25px}
.airbnb-savings>div>p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:490px}
.airbnb-savings .text-link{display:inline-block;margin-top:15px}
.savings-card{padding:clamp(24px,3vw,42px);background:#fff;border:1px solid var(--line)}
.savings-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.savings-fields label{font-size:14px;font-weight:600;line-height:1.4}
.savings-fields input{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #aeb7b8;border-radius:3px;background:#fff;font:16px 'DM Sans',sans-serif;color:var(--ink)}
.savings-fields input:focus-visible{outline:2px solid var(--pine);outline-offset:2px}
.savings-result{padding:22px 0;margin:20px 0 0;border-top:1px solid var(--line);font:400 28px/1.15 Newsreader,serif}
.savings-result[data-state=savings]{color:#1e5267}
.savings-note{font-size:14px;line-height:1.55;color:#53636c}
@media(max-width:850px){.winter-arrival,.airbnb-savings{grid-template-columns:1fr}.winter-arrival img{width:100%;height:290px}.airbnb-savings{padding-left:7vw;padding-right:7vw}}
@media(max-width:530px){.savings-fields{grid-template-columns:1fr}.winter-arrival img{height:230px}.winter-arrival>div{padding:35px 7vw}}
.direct-savings-note{margin-top:24px;padding:23px 25px;background:#eef3f5;border-left:4px solid var(--gold);color:var(--ink)}
.direct-savings-note strong{display:block;font:500 24px/1.16 Newsreader,serif}
.direct-savings-note p{font-size:14px;line-height:1.55;margin:10px 0 0;color:#415968}

/* Direct booking choice and lake sunset */
.inquire { grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 100px); align-items: stretch; }
.booking-sunset { position: relative; margin: 0; min-height: 610px; overflow: hidden; border-radius: 5px; background: #566d76; }
.booking-sunset img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.booking-sunset::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(9, 34, 48, .62)); }
.booking-sunset figcaption { position: absolute; z-index: 1; bottom: 30px; left: 34px; color: #fff; font: 400 clamp(28px, 3vw, 45px)/1.1 Newsreader, serif; }
.inquire .direct-savings-note { margin: 24px 0; }
@media (max-width: 850px) { .inquire { grid-template-columns: 1fr; } .booking-sunset { min-height: 460px; } }
@media (max-width: 520px) { .booking-sunset { min-height: 340px; } .booking-sunset figcaption { left: 22px; bottom: 22px; } }
/* Keep the full dock, sun and deck composition visible beside booking. */
.booking-sunset { min-height: 0; aspect-ratio: 4 / 3; align-self: center; }
@media (max-width: 850px) { .booking-sunset { min-height: 0; } }
@media (max-width: 520px) { .booking-sunset { min-height: 0; } }

@media (min-width: 851px) { .inquire { grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr); gap: clamp(26px, 3vw, 58px); } }

/* Show the entire approved waterfront photo without overlay text. */
.booking-sunset::after { display: none; }
.booking-sunset img { object-fit: contain; }

/* Guest winter and area photography */
.winter-photo-section .section-title{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:1.4rem}.winter-photo-section .section-title>p{max-width:26rem}.winter-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.winter-photo-grid figure{margin:0}.winter-photo-grid img{width:100%;height:220px;object-fit:cover;border-radius:5px;display:block}.winter-photo-grid figcaption{font-size:.9rem;padding:.55rem 0;color:#536060}.home-winter-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:2.5rem;align-items:center}.home-winter-feature img{width:100%;aspect-ratio:1.65;object-fit:cover;border-radius:5px}.home-winter-feature h2{max-width:18ch}@media(max-width:800px){.winter-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.winter-photo-section .section-title,.home-winter-feature{display:block}.home-winter-feature img{margin-bottom:1.5rem}}@media(max-width:480px){.winter-photo-grid img{height:150px}}

/* Clear booking action and always-visible booking shortcut */
.home-quick .quick-booking,.home-quick a.quick-booking:last-child{position:sticky;right:0;background:var(--gold);color:var(--deep);font-weight:700;box-shadow:-8px 0 16px rgba(13,36,54,.25);z-index:1}.booking-option.primary{background:var(--gold);color:var(--deep);border-color:var(--gold)}.booking-option.primary:hover,.booking-option.primary:focus-visible{background:#edc454;border-color:var(--deep)}.booking-option .direct-button-title{display:flex;flex-direction:column;gap:0;font:500 clamp(24px,4.2vw,32px)/1.12 Newsreader,serif;letter-spacing:-.015em}.booking-option .direct-button-title span{font:inherit;font-size:inherit;line-height:inherit;opacity:1}.booking-option.primary>span{font-size:14px;opacity:1}@media(max-width:520px){.home-quick .quick-booking,.home-quick a.quick-booking:last-child{padding-inline:14px}.booking-option .direct-button-title{font-size:clamp(27px,7vw,34px)}}

/* Loon Hollow logo booking control */
.booking-options .direct-logo-card{display:block;padding:clamp(22px,4vw,38px);background:var(--paper);border:2px solid var(--gold);text-align:center}.direct-logo-card h3{margin:0;color:#a87408;font:500 clamp(30px,5vw,44px)/1.08 Newsreader,serif;letter-spacing:-.025em}.direct-logo-card p{margin:12px auto 20px;max-width:31rem;color:var(--deep);font-size:16px;line-height:1.5}.logo-book-button{display:flex;flex-direction:column;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:auto;padding:8px 15px 10px;border-radius:5px;transition:background .2s,transform .2s}.logo-book-button:hover,.logo-book-button:focus-visible{background:#f2e6c7;transform:translateY(-2px);outline:2px solid var(--gold);outline-offset:2px}.logo-book-button img{width:clamp(190px,38vw,280px);height:auto;object-fit:contain}.logo-book-button span,.booking-option .logo-book-button span{color:var(--deep);opacity:1;font:700 14px 'DM Sans',sans-serif;letter-spacing:.01em}@media(max-width:520px){.booking-options .direct-logo-card{padding:23px 15px}.direct-logo-card h3{font-size:35px}.logo-book-button img{width:min(68vw,260px)}}
