/* Lakeview Oasis - digital welcome book
   Palette (matched to printed book blues):
   --navy  #143A52  deep lake / ink
   --lake  #3187B5  clear-water blue
   --foam  #F2F8FB  sky-foam background
   --sand  #F4EBDA  warm sand
   --buoy  #E8762C  buoy orange (CTA)
   --sun   #F2B544  sun gold (small accents)
*/
:root{
  --navy:#143A52; --navy-deep:#0E2A3D; --lake:#3187B5; --lake-dark:#23658A;
  --foam:#F2F8FB; --sand:#F4EBDA; --buoy:#E8762C; --buoy-dark:#C95F1B; --sun:#F2B544;
  --ink:#1C2B36; --muted:#5B7282; --line:#D7E5EC;
  --display:'Fraunces',Georgia,serif;
  --body:'Nunito Sans',system-ui,-apple-system,sans-serif;
  --radius:14px;
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--body);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--foam)}
img{max-width:100%;display:block}
a{color:var(--lake-dark)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--buoy);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--display);line-height:1.15;color:var(--navy);margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2rem,6.5vw,3.1rem);font-weight:700}
h2{font-size:clamp(1.25rem,4vw,1.55rem);font-weight:650}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;background:var(--navy);color:#fff;box-shadow:0 2px 12px rgba(14,42,61,.25)}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:#fff}
.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--navy-deep);flex:none}
.brand-text{font-family:var(--display);font-weight:650;font-size:1.2rem;letter-spacing:.01em}
.brand-accent{font-style:normal;color:var(--sun)}
.menu-btn{display:flex;align-items:center;gap:.5rem;font:700 .95rem var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--navy);background:var(--sun);border:0;border-radius:999px;padding:.55rem 1.05rem;cursor:pointer}
.menu-btn:hover{background:#f8c560}
.menu-icon{display:inline-flex;flex-direction:column;gap:3px}
.menu-icon i{width:16px;height:2px;background:var(--navy);border-radius:2px}
.site-menu{position:fixed;inset:58px 0 0 0;background:var(--navy);overflow-y:auto;padding:1.25rem 1.25rem 3rem;z-index:49}
.menu-label{font:700 .75rem var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--sun);margin:1.4rem 0 .5rem}
.site-menu ul{list-style:none;margin:0;padding:0}
.menu-pages li a,.menu-ext li a{display:block;padding:.78rem .9rem;margin:.18rem 0;color:#fff;text-decoration:none;font-size:1.12rem;font-weight:600;border-radius:10px;background:rgba(255,255,255,.06)}
.menu-pages li a:hover,.menu-ext li a:hover{background:var(--lake)}
.menu-pages li a[aria-current=page]{background:var(--buoy);color:#fff}
.menu-ext li a{font-size:1rem;background:transparent;color:#BFD9E8}
body.menu-open{overflow:hidden}
@media(min-width:760px){
  .site-menu{inset:auto;position:absolute;top:62px;right:1rem;width:340px;border-radius:var(--radius);box-shadow:0 18px 50px rgba(14,42,61,.4);padding:1rem 1rem 1.4rem}
}

/* ---------- layout ---------- */
main{max-width:var(--maxw);margin:0 auto;padding:2.2rem 1.1rem 3rem}
.page-head{margin-bottom:2rem}
.eyebrow{font:700 .8rem var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--buoy);margin:0 0 .55rem}
.lead{font-size:1.15rem;color:var(--muted);max-width:46rem;margin:.25rem 0 0}
.note{font-family:var(--display);font-size:1.2rem;color:var(--navy);font-weight:650;margin-top:2rem}
.section-title{font-size:clamp(1.5rem,5vw,2rem);margin-bottom:1.2rem}
.accent{color:var(--lake)}
.btn{display:inline-block;background:var(--buoy);color:#fff;text-decoration:none;font:700 1rem var(--body);padding:.85rem 1.6rem;border-radius:999px;border:0;cursor:pointer}
.btn:hover{background:var(--buoy-dark)}

/* ---------- home hero ---------- */
.home main{padding-top:0;max-width:none;padding-left:0;padding-right:0}
.hero{position:relative;display:grid;min-height:72vh}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{position:absolute;top:0;left:0;width:100%;height:117.65%;object-fit:cover;object-position:center}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,61,.25) 0%,rgba(14,42,61,.55) 70%,rgba(14,42,61,.78) 100%)}
.hero-text{position:relative;z-index:1;align-self:end;padding:3rem 1.25rem 4.5rem;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff}
.hero-text h1{color:#fff;font-size:clamp(2.3rem,8vw,4rem)}
.hero-text .accent{color:var(--sun)}
.hero-text .eyebrow{color:var(--sun)}
.hero-text .lead{color:#E4F0F7;font-size:clamp(1.05rem,3.5vw,1.3rem);max-width:38rem;margin-bottom:1.5rem}
.wave{color:var(--foam);margin-top:-63px;position:relative;z-index:2;line-height:0}
.wave svg{width:100%;height:64px;display:block}

/* ---------- table of contents ---------- */
.toc,.about{max-width:var(--maxw);margin:0 auto;padding:2.5rem 1.1rem}
.toc-grid{display:grid;gap:.8rem;grid-template-columns:1fr}
@media(min-width:560px){.toc-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.toc-grid{grid-template-columns:1fr 1fr 1fr}}
.toc-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;text-decoration:none;color:var(--navy);font-family:var(--display);font-weight:650;font-size:1.18rem;box-shadow:0 1px 3px rgba(14,42,61,.06);transition:transform .15s,box-shadow .15s}
.toc-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(14,42,61,.14)}
.toc-n{font:700 .85rem var(--body);color:#fff;background:var(--lake);border-radius:999px;width:2.1rem;height:2.1rem;display:grid;place-items:center;flex:none}
.toc-photos .toc-n{background:var(--buoy)}
.toc-t{flex:1}
.toc-arrow{color:var(--buoy);font-weight:700}

/* ---------- about ---------- */
.about{display:grid;gap:1.6rem}
@media(min-width:820px){.about{grid-template-columns:3fr 2fr;align-items:center}}
.about-img img{border-radius:var(--radius);box-shadow:0 12px 32px rgba(14,42,61,.18)}

/* ---------- venue cards ---------- */
.cards{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:600px){.cards{grid-template-columns:1fr 1fr}}
@media(min-width:920px){.cards{grid-template-columns:1fr 1fr 1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(14,42,61,.06)}
.card-img{aspect-ratio:4/3;background:var(--sand)}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.card-body h2{font-size:1.22rem;margin:0}
.card-body p{margin:0;font-size:.98rem}
.card-meta{color:var(--muted);font-size:.92rem}
.card-addr{display:block}
.card-tel{font-weight:700;text-decoration:none}
.card-links{margin-top:auto!important;padding-top:.5rem;display:flex;gap:1rem;flex-wrap:wrap}
.card-links a{font-weight:700;font-size:.95rem;text-decoration:none;color:var(--buoy-dark)}
.card-links a:hover{text-decoration:underline}

/* ---------- rules / steps / guide / contacts ---------- */
.rules,.steps,.guide,.contacts{display:grid;gap:1rem}
@media(min-width:680px){.rules,.contacts{grid-template-columns:1fr 1fr}}
.rule,.step,.guide-item,.contact{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:0 1px 3px rgba(14,42,61,.06)}
.rule{display:flex;gap:1.1rem;align-items:flex-start}
.rule-icon{width:52px;height:52px;flex:none;color:var(--navy);background:var(--sand);border-radius:12px;display:grid;place-items:center;padding:10px}
.rule-icon svg{width:100%;height:100%}
.rule h2,.step h2{font-size:1.2rem;margin-bottom:.3rem}
.rule p,.step p,.guide-item p,.contact p{margin:.2rem 0 0}
.step{display:flex;gap:1.1rem;align-items:flex-start}
.step-n{font:700 1.05rem var(--display);color:#fff;background:var(--lake);border-radius:999px;width:2.4rem;height:2.4rem;display:grid;place-items:center;flex:none}
.guide-item h2{padding-bottom:.4rem;border-bottom:2px solid var(--sand)}
.contact h2{font-size:1.15rem}
.tel-big{font-size:1.35rem;font-weight:700;text-decoration:none}
.muted{color:var(--muted);font-size:.95rem}
.cta-row{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:2rem}
.cta-row .note{margin:0}

/* ---------- reviews ---------- */
.review-links{display:grid;gap:.9rem;max-width:32rem}
.review-btn{display:block;background:var(--navy);color:#fff;text-decoration:none;font:700 1.1rem var(--body);padding:1.05rem 1.3rem;border-radius:var(--radius);text-align:center}
.review-btn:hover{background:var(--lake-dark)}

/* ---------- gallery ---------- */
.gallery{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}
@media(min-width:700px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.gallery{grid-template-columns:repeat(4,1fr)}}
.g-item{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:var(--sand)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.g-item:hover img{transform:scale(1.04)}

/* ---------- pager ---------- */
.pager{display:flex;gap:.8rem;margin-top:3rem;border-top:2px solid var(--line);padding-top:1.4rem}
.pg{flex:1;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;color:var(--navy)}
.pg span{display:block;font:700 .75rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--buoy);margin-bottom:.15rem}
.pg strong{font-family:var(--display);font-size:1.12rem;font-weight:650}
.pg.next{text-align:right;margin-left:auto}
.pg:hover{border-color:var(--lake)}

/* ---------- email capture ---------- */
.offers{background:var(--navy);color:#fff;padding:3.2rem 1.1rem;position:relative}
.offers::before{content:"";position:absolute;top:-1px;left:0;right:0;height:8px;background:repeating-linear-gradient(90deg,var(--sun) 0 28px,var(--buoy) 28px 56px,#fff 56px 84px,var(--lake) 84px 112px);opacity:.9}
.offers-inner{max-width:42rem;margin:0 auto;text-align:center}
.offers h2{color:#fff;font-size:clamp(1.6rem,5vw,2.1rem)}
.offers p{color:#CFE3EF}
.offers-form{display:grid;gap:.7rem;margin:1.4rem 0 .6rem}
@media(min-width:640px){.offers-form{grid-template-columns:1fr 1.4fr auto}}
.offers-form input{font:600 1rem var(--body);padding:.9rem 1.05rem;border-radius:999px;border:2px solid transparent;background:#fff;color:var(--ink);min-width:0}
.offers-form input:focus{border-color:var(--sun)}
.offers-form button{font:700 1rem var(--body);background:var(--buoy);color:#fff;border:0;border-radius:999px;padding:.9rem 1.7rem;cursor:pointer}
.offers-form button:hover{background:var(--buoy-dark)}
.offers-fine{font-size:.85rem;color:#9FBFD2!important;margin:0}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);color:#BFD4E0;padding:2.6rem 1.1rem 1.6rem;font-size:.95rem}
.foot-grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:2rem}
@media(min-width:760px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}
.foot-brand{font-family:var(--display);font-weight:650;font-size:1.3rem;color:#fff;margin:0 0 .4rem}
.foot-label{font:700 .75rem var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--sun);margin:0 0 .5rem}
.site-footer ul{list-style:none;margin:0;padding:0;columns:1}
.site-footer li{margin:.3rem 0}
.site-footer a{color:#BFD4E0;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.foot-social a{color:var(--sun)}
.foot-copy{max-width:var(--maxw);margin:2rem auto 0;border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;color:#7E99AB}
