:root{
  --sand:#F3EEE6;--sand-2:#E6DCCD;--teal:#2E6F6B;--teal-d:#245854;--ink:#1d2a2b;--muted:#556564;
  --white:#fffdf9;--destructive:#a3261b;--radius-md:6px;--radius-control:999px;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sand);color:var(--ink);font:17px/1.65 var(--sans)}
img{max-width:100%;display:block}
a{color:var(--teal)}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.01em}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.kicker{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal);margin-bottom:.9em}
.kicker-light,.hero .kicker,.page-hero .kicker{color:#cfe7e4}
.btn{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;font-weight:600;padding:.85em 1.7em;border-radius:var(--radius-control);border:2px solid var(--teal);transition:background .2s,border-color .2s;cursor:pointer;font-size:1rem;font-family:var(--sans)}
.btn:hover{background:var(--teal-d);border-color:var(--teal-d)}
.btn:disabled{opacity:.6;cursor:wait}
.btn-sm{padding:.5em 1.15em;font-size:.92rem}
.btn-light{background:var(--white);color:var(--teal);border-color:var(--white)}
.btn-light:hover{background:var(--sand-2);border-color:var(--sand-2);color:var(--teal-d)}
.btn-ghost{display:inline-block;padding:.6em 1.2em;border:1.5px solid var(--teal);border-radius:var(--radius-control);text-decoration:none;font-weight:600;font-size:.95rem}
.btn-ghost:hover{background:var(--teal);color:#fff}
.text-link{font-weight:600;text-decoration:none;border-bottom:2px solid currentColor}
.link-light{color:#fff;font-weight:600;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.7);padding-bottom:2px}
.linkish{background:none;border:0;padding:0;color:var(--teal);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.small{font-size:.9rem;color:var(--muted)}

/* header */
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem clamp(1rem,4vw,3rem);background:rgba(243,238,230,.95);backdrop-filter:blur(8px);border-bottom:1px solid rgba(46,111,107,.12)}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.35rem;font-weight:600}
.brand img{width:48px;height:48px;border-radius:50%;object-fit:contain}
.site-nav{display:flex;align-items:center;gap:1.4rem}
.site-nav>a:not(.btn){color:var(--ink);text-decoration:none;font-weight:500;font-size:.96rem}
.site-nav>a[aria-current=page]{color:var(--teal);border-bottom:2px solid var(--teal)}
.site-nav .btn{color:#fff}
.session{display:inline-flex;align-items:center;gap:.6rem;font-size:.92rem;min-width:4.5rem}
.session a{color:var(--ink);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.4rem}
.session img{width:26px;height:26px;border-radius:50%}
.session button{background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline;padding:0}
.session-ph{display:inline-block;width:4.5rem;height:1em}
.menu-toggle{display:none;background:none;border:1.5px solid var(--teal);color:var(--teal);border-radius:var(--radius-control);padding:.4em 1em;font:600 .9rem var(--sans);cursor:pointer}
@media (max-width:900px){
  .menu-toggle{display:block}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;padding:1rem clamp(1rem,4vw,3rem) 1.4rem;background:var(--sand);border-bottom:1px solid rgba(46,111,107,.15)}
  .site-nav.open{display:flex}
}

/* hero */
.hero,.page-hero{background-size:cover;background-position:center;color:#fff;display:flex;align-items:flex-end}
.hero{min-height:min(88vh,820px)}
.page-hero{min-height:clamp(340px,52vh,560px)}
.page-hero.short{min-height:clamp(300px,40vh,440px)}
.hero-inner{padding:clamp(2rem,6vw,5rem) clamp(1.2rem,6vw,5rem);max-width:900px}
.hero h1,.page-hero h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.lede{font-size:clamp(1.1rem,1.8vw,1.35rem);max-width:40em;margin-bottom:1.6em}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.6rem}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(4,1fr);background:var(--white);border-bottom:1px solid var(--sand-2)}
.facts div{padding:1.6rem clamp(1rem,3vw,2.4rem);border-right:1px solid var(--sand-2)}
.facts div:last-child{border-right:0}
.facts strong{display:block;font-family:var(--serif);font-size:1.35rem;color:var(--teal);font-weight:600}
.facts span{color:var(--muted);font-size:.95rem}
@media (max-width:760px){.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(2){border-right:0}.facts div{border-bottom:1px solid var(--sand-2)}}

/* split */
.split{display:grid;grid-template-columns:1.1fr .9fr;align-items:center}
.split-text{padding:clamp(2.5rem,7vw,6rem) clamp(1.2rem,6vw,5rem)}
.split-text p{max-width:36em}
.split-img{margin:0;height:100%}
.split-img img{width:100%;height:100%;min-height:460px;object-fit:cover}
@media (max-width:860px){.split{grid-template-columns:1fr}.split-img img{min-height:320px;max-height:520px}}

/* outdoor */
.outdoor{background-size:cover;background-position:center;color:#fff;min-height:620px;display:flex;align-items:center}
.outdoor-inner{padding:clamp(2.5rem,7vw,6rem) clamp(1.2rem,6vw,5rem);max-width:640px}
.outdoor h2{color:#fff}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);padding:clamp(2.5rem,6vw,5rem) clamp(1.2rem,5vw,4rem)}
.card{background:var(--white);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 rgba(0,0,0,.04);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(22,70,72,.12)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card div{padding:1.2rem 1.3rem 1.4rem}
.card p{color:var(--muted);margin:0}
@media (max-width:860px){.cards{grid-template-columns:1fr}}

/* note */
.note{background:var(--sand-2)}
.note-inner{padding:clamp(2.2rem,5vw,4rem) clamp(1.2rem,6vw,5rem);max-width:860px}
.note h2{font-size:clamp(1.4rem,2.4vw,1.9rem)}

/* band */
.band-teal{background:var(--teal);color:#fff;text-align:center}
.band-inner{padding:clamp(3rem,7vw,5.5rem) 1.2rem;max-width:760px;margin:0 auto}
.band-teal h2{color:#fff}
.band .also{margin-top:1.4em;font-size:.95rem;color:#d4e8e5}
.band .also a{color:#fff}

/* prose / pod */
.prose{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,6vw,5rem) 1rem;max-width:900px}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;padding:1rem clamp(1.2rem,5vw,4rem) 1rem}
.gallery figure{margin:0}
.gallery img{aspect-ratio:1/1;object-fit:cover;width:100%;border-radius:var(--radius-md)}
.gallery figcaption{font-size:.85rem;color:var(--muted);padding:.4rem .1rem 0}
.lists{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;padding:clamp(2rem,5vw,3.5rem) clamp(1.2rem,5vw,4rem);background:var(--white)}
.lists ul{margin:0;padding-left:1.1rem}
.lists li{margin-bottom:.35rem}
@media (max-width:980px){.lists{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.lists{grid-template-columns:1fr}}
.rules{display:grid;grid-template-columns:1.4fr .6fr;gap:2.5rem;align-items:start;padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,6vw,5rem)}
.plain{list-style:none;padding:0;margin:0}
.plain li{padding:.7rem 0;border-bottom:1px solid var(--sand-2)}
.rules figure{margin:0;background:var(--white);padding:1rem;border-radius:var(--radius-md)}
.rules figcaption{font-size:.88rem;color:var(--muted);text-align:center;padding-top:.5rem}
@media (max-width:860px){.rules{grid-template-columns:1fr}.rules figure{max-width:320px}}

/* location */
.todo{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;padding:1rem clamp(1.2rem,5vw,4rem) clamp(2.5rem,5vw,4rem)}
.todo article{background:var(--white);padding:1.5rem 1.5rem 1.2rem;border-radius:var(--radius-md);border-top:4px solid var(--teal)}
@media (max-width:900px){.todo{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.todo{grid-template-columns:1fr}}
.perk{background:var(--sand-2);padding:clamp(2.5rem,6vw,4rem) clamp(1.2rem,6vw,5rem)}
.perk>div{max-width:820px}
.map iframe{display:block;width:100%;height:440px;border:0}
.map-cap{padding:1rem clamp(1.2rem,5vw,4rem);margin:0;background:var(--white);font-size:.95rem}

/* book */
.book{display:grid;grid-template-columns:1.6fr .8fr;gap:2.5rem;padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,5vw,4rem)}
.widget{background:var(--white);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--sand-2)}
.widget iframe{display:block;width:100%;height:900px;border:0}
.panel{background:var(--white);padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1.2rem}
.panel p:last-child{margin-bottom:0}
@media (max-width:900px){.book{grid-template-columns:1fr}}

/* auth */
.auth{padding:clamp(3rem,8vw,6rem) 1.2rem;display:flex;justify-content:center;min-height:60vh}
.auth-card{background:var(--white);padding:clamp(1.6rem,4vw,2.6rem);border-radius:var(--radius-md);width:100%;max-width:460px;box-shadow:0 10px 30px rgba(22,70,72,.08)}
.auth-card h1{font-size:2.1rem}
.auth label{display:block;font-weight:500;font-size:.92rem;margin-bottom:1rem}
.auth input{display:block;width:100%;margin-top:.35rem;padding:.75rem .85rem;border:1.5px solid #cdbfa8;border-radius:var(--radius-md);font:inherit;background:#fff}
.auth input:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.auth .two{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.auth .btn{width:100%}
.form-error{color:var(--destructive);font-size:.92rem;min-height:1.2em}
.switch{margin-top:1.2rem;font-size:.95rem;text-align:center}
.acct-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:1rem}

/* footer */
.site-footer{background:var(--teal-d);color:#d9ebe8;padding:clamp(2.5rem,5vw,4rem) clamp(1.2rem,5vw,4rem) 1.5rem}
.site-footer a{color:#fff}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.foot-brand{font-family:var(--serif);font-size:1.5rem;color:#fff;margin-bottom:.4em}
.foot-h{font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}
.foot-small{margin-top:2.5rem;font-size:.82rem;color:#a9c9c5}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* bath lane additions */
.cottage-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.4vw,2rem);padding:clamp(2.5rem,6vw,5rem) clamp(1.2rem,5vw,4rem)}
.cottage-cards .card img{aspect-ratio:7/5}
.cottage-cards .card div{padding:1.5rem 1.6rem 1.8rem}
.cottage-cards .card p{margin-bottom:1rem}
.cottage-cards .card .kicker{margin-bottom:.5em;color:var(--teal)}
.cottage-cards .text-link{color:var(--teal)}
@media (max-width:860px){.cottage-cards{grid-template-columns:1fr}}
.quote{text-align:center;padding:clamp(3rem,7vw,5rem) 1.2rem;max-width:860px;margin:0 auto}
.quote blockquote{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.35;margin:0 0 1rem;color:var(--ink)}
.cottage{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;margin-top:1.5rem}
.cottage figure{margin:0;height:100%}
.cottage figure img{width:100%;height:100%;min-height:440px;object-fit:cover}
.cottage>div{padding:clamp(2rem,6vw,4.5rem) clamp(1.2rem,5vw,4rem)}
.cottage>div p{max-width:36em}
.cottage.reverse figure{order:2}
.ticks{list-style:none;padding:0;margin:0 0 1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1.2rem}
.ticks li{padding-left:1.4rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:.55rem;height:.55rem;border-radius:50%;background:var(--teal)}
@media (max-width:860px){.cottage{grid-template-columns:1fr}.cottage.reverse figure{order:0}.cottage figure img{min-height:300px;max-height:460px}.ticks{grid-template-columns:1fr}}
.lists.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:860px){.lists.three{grid-template-columns:1fr}}
.addons{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;padding:0 clamp(1.2rem,5vw,4rem) clamp(2.5rem,5vw,4rem)}
.addons article{background:var(--white);padding:1.5rem;border-radius:var(--radius-md);border-top:4px solid var(--teal)}
.addons .price{font-family:var(--serif);font-size:1.3rem;color:var(--teal);margin-bottom:.5em}
@media (max-width:980px){.addons{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.addons{grid-template-columns:1fr}}
.faqs{background:var(--white);padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,6vw,5rem)}
.faqs>*{max-width:820px}
.faqs details{border-bottom:1px solid var(--sand-2);padding:1rem 0}
.faqs summary{font-family:var(--serif);font-size:1.2rem;font-weight:600;cursor:pointer;list-style:none;position:relative;padding-right:2rem}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";position:absolute;right:0;top:0;color:var(--teal);font-family:var(--sans);font-size:1.4rem;line-height:1}
.faqs details[open] summary::after{content:"\2013"}
.faqs details p{margin:.7rem 0 0;color:var(--muted)}
.faqs .small{margin-top:1.6rem}
.hikes{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;padding:clamp(2rem,5vw,3.5rem) clamp(1.2rem,5vw,4rem)}
.hike{margin:0;background:var(--white);border-radius:var(--radius-md);overflow:hidden}
.hike iframe{display:block;width:100%;height:520px;border:0}
.hike figcaption{padding:.8rem 1rem;font-weight:600}
@media (max-width:860px){.hikes{grid-template-columns:1fr}}
.foot-logo{width:84px;height:84px;margin-bottom:.8rem}
@media (max-width:700px){.hero{background-position:28% center}}
