/* ============================================================
   Lake of the Woods — Main CSS
   ============================================================ */

:root {
  --forest:#0C1D12; --pine:#1A3526; --canopy:#2B5240; --sage:#4A7A5E; --mist:#8AB8A0;
  --parch:#FAF8F4;  --cream:#EDE8DF;  --border:#D6D0C8;
  --gold:#B07428;   --gold-lt:#C98C40;
  --text:#1A1A18;   --mid:#484840;    --soft:#767870;
}

html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; }
body { background: var(--forest); }

/* ── NAVBAR ───────────────────────────────────────────────── */
/* z-index order: nav (9060) > mobile panel (9050) > backdrop (9040),
   so the hamburger stays clickable on top of its own open panel.
   Panel + backdrop are siblings of <nav>, NOT children — .low-nav gets
   a transform when scrolled, and a transformed ancestor reanchors
   position:fixed descendants, which caused the leftover sliver. */
.low-nav {
  position:fixed; top:0; left:0; right:0; z-index:9060;
  height:82px; display:flex; align-items:center; justify-content:space-between;
  padding:0 52px; background:rgba(12,29,18,0.95); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,0.05);
  transition:top .4s cubic-bezier(.22,1,.36,1), left .5s cubic-bezier(.22,1,.36,1),
             width .5s cubic-bezier(.22,1,.36,1), padding .5s cubic-bezier(.22,1,.36,1),
             border-radius .5s cubic-bezier(.22,1,.36,1), background .5s ease, box-shadow .5s ease, height .4s ease;
}
.low-nav.scrolled {
  top:14px; left:50%; right:auto; width:min(1060px,90vw); transform:translateX(-50%);
  height:auto; padding:11px 28px; border-radius:999px; background:rgba(12,29,18,0.96);
  backdrop-filter:blur(16px) saturate(1.4); border:1px solid rgba(176,116,40,0.32);
  box-shadow:0 8px 40px rgba(0,0,0,0.4);
}
.low-nav-logo { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }

/* Logo sizing — HIGH SPECIFICITY (.low-nav prefix + !important) so it beats
   BeTheme's and WordPress core's own img rules regardless of CSS load order.
   This is why the previous plain `.low-nav-logo img` rule appeared correct
   in the file but didn't take on the live theme — a more-specific rule was
   silently winning. With this in place, the duplicate rule can be removed
   from the Customizer's Additional CSS. */
.low-nav .low-nav-logo img { width:155px !important; height:auto !important; display:block; transition:width .4s ease; }
.low-nav.scrolled .low-nav-logo img { width:125px !important; }

.low-nav-links { display:flex; align-items:center; gap:4px; }
.low-nav-links a {
  font-family:'Inter',sans-serif; font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(220,228,220,0.55)!important; text-decoration:none!important; padding:6px 12px;
  border-radius:20px; white-space:nowrap; transition:color .2s, background .2s;
}
.low-nav-links a:hover,.low-nav-links a.active { color:#EDE8DF!important; background:rgba(255,255,255,0.06); }
.low-nav-right { display:flex; align-items:center; gap:16px; }
.low-nav-phone {
  font-family:'Inter',sans-serif; font-size:11px; color:rgba(138,184,160,0.75)!important;
  text-decoration:none!important; letter-spacing:.05em; white-space:nowrap; transition:color .2s;
}
.low-nav-phone:hover { color:var(--mist)!important; }
.low-nav-book {
  background:var(--gold); color:#FAF8F4!important; font-family:'Inter',sans-serif; font-size:10px;
  font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:9px 20px; border-radius:999px;
  text-decoration:none!important; white-space:nowrap; transition:background .22s, transform .22s;
}
.low-nav-book:hover { background:var(--gold-lt)!important; transform:translateY(-1px); }
.low-nav-spacer { height:82px; transition:height .4s ease; }

.low-nav-hamburger {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:32px; height:32px; background:none; border:none; cursor:pointer; padding:0;
  position:relative; z-index:1;
}
.low-nav-hamburger span { display:block; height:2px; width:100%; background:var(--cream); border-radius:2px; transition:transform .3s ease, opacity .3s ease; }
.low-nav-hamburger[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.low-nav-hamburger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.low-nav-hamburger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Dimmed backdrop behind the slide-in menu — tap it to close (works on
   tablet AND mobile, since both breakpoints show the panel). */
.low-nav-backdrop {
  position:fixed; inset:0; z-index:9040;
  background:rgba(6,14,8,.55); backdrop-filter:blur(2px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .35s ease, visibility 0s linear .35s;
}
.low-nav-backdrop.is-open {
  opacity:1; visibility:visible; pointer-events:auto;
  transition:opacity .35s ease;
}

/* Closed state uses a fixed pixel offset WIDER than the panel itself
   (-340px vs 320px max width) plus visibility:hidden, so no sliver can
   ever peek out at any screen size — the earlier right:-100% was relative
   to the panel's own width and didn't guarantee full clearance. */
.low-nav-mobile {
  display:none; position:fixed; top:0; right:-340px; width:min(320px,84vw); height:100vh; height:100dvh;
  background:var(--forest); flex-direction:column; padding:88px 32px 32px; gap:4px; z-index:9050;
  visibility:hidden;
  transition:right .42s cubic-bezier(.22,1,.36,1), visibility 0s linear .42s;
  box-shadow:-10px 0 40px rgba(0,0,0,0.4);
}
.low-nav-mobile.is-open {
  right:0; visibility:visible;
  transition:right .42s cubic-bezier(.22,1,.36,1);
}
.low-nav-mobile a {
  font-family:'Inter',sans-serif; font-size:14px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--cream)!important; text-decoration:none!important; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08);
}
.low-nav-mobile-phone { color:var(--mist)!important; margin-top:12px; border-bottom:none!important; }
.low-nav-mobile-book { margin-top:16px; background:var(--gold); color:#FAF8F4!important; text-align:center; border-radius:999px; border-bottom:none!important; padding:14px 0!important; }

/* Stylish right-pointing arrow close button — slides the menu shut.
   Sits inside the panel's own layer, so it's always reachable. */
.low-nav-mobile-close {
  align-self:flex-end; width:42px; height:42px; margin-bottom:8px;
  background:rgba(176,116,40,.12); border:1px solid rgba(176,116,40,.5); border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
.low-nav-mobile-close:hover { background:rgba(176,116,40,.28); border-color:var(--gold-lt); transform:translateX(3px); }
.low-nav-mobile-close .lnmc-arrow {
  color:var(--gold-lt); font-size:22px; line-height:1; font-weight:300;
  transition:transform .25s ease;
}
.low-nav-mobile-close:hover .lnmc-arrow { transform:translateX(2px); }

/* ── FOOTER ───────────────────────────────────────────────── */
.low-footer { background:var(--forest); padding:72px 52px 0; margin-top:-35px; }
.low-footer-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,0.08); }
.low-footer-brand { font-family:'Cormorant Garamond',serif; font-size:28px; color:var(--parch); margin-bottom:14px; }
.low-footer-tagline { font-family:'Inter',sans-serif; font-size:13px; line-height:1.6; color:rgba(237,232,223,0.55); margin-bottom:18px; max-width:280px; }
.low-footer-phone { font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--gold-lt)!important; text-decoration:none!important; }
.low-footer-heading { font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--mist); margin-bottom:16px; }
.low-footer-grid a { display:block; font-family:'Inter',sans-serif; font-size:13px; color:rgba(237,232,223,0.6)!important; text-decoration:none!important; margin-bottom:12px; transition:color .2s; }
.low-footer-grid a:hover { color:var(--parch)!important; }
.low-footer-address { font-family:'Inter',sans-serif; font-size:13px; line-height:1.6; color:rgba(237,232,223,0.45); margin-top:8px; }
.low-footer-bottom { max-width:1200px; margin:0 auto; padding:24px 0; text-align:center; }
.low-footer-bottom p { font-family:'Inter',sans-serif; font-size:11px; color:rgba(237,232,223,0.35); }

/* ── SCROLL REVEAL ────────────────────────────────────────── */
.rv { opacity:1; transform:translateY(0); transition:opacity .75s, transform .75s; }
.rv.pre { opacity:0; transform:translateY(28px); }
.rv.vis { opacity:1; transform:translateY(0); }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s}

/* ── SHARED ───────────────────────────────────────────────── */
.sec { padding:88px 80px; }
.sp  { background:var(--parch); }
.sc  { background:var(--cream); }
.eye { font-size:9px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:12px; }
.h2  { font-family:'Cormorant Garamond',serif!important; font-size:clamp(36px,4.5vw,54px); font-weight:300; line-height:1.1; color:var(--pine); margin-bottom:14px; }
.h2 em { font-style:italic; color:var(--sage); }
.bdy { font-size:15px; color:var(--mid); font-weight:300; line-height:1.78; max-width:560px; }
.btn-g { display:inline-block; background:var(--gold); color:#fff!important; font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:14px 32px; text-decoration:none!important; transition:background .22s, transform .22s, box-shadow .22s; }
.btn-g:hover { background:var(--gold-lt)!important; transform:translateY(-2px); box-shadow:0 10px 32px rgba(176,116,40,.38); }
.btn-gh { display:inline-block; border:1px solid rgba(192,212,200,.3); color:#EDE8DF!important; font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; padding:14px 32px; text-decoration:none!important; transition:background .22s; }
.btn-gh:hover { background:rgba(255,255,255,.1); }

/* ── PAGE HEADER — photo backgrounds ───────────────────────── */
.ph {
  position:relative; overflow:hidden;
  background-color:var(--pine);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  padding-top:125px;
  padding:56px 80px;
}
.ph::before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(6,14,8,.55) 0%,rgba(6,14,8,.92) 100%); }
.ph-eye,.ph-h1,.ph-sub { position:relative; z-index:2; }
.ph-eye { font-size:9px; letter-spacing:.32em; text-transform:uppercase; color:#8AB8A0; margin-bottom:12px; }
.ph-h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(40px,6vw,64px); font-weight:300; color:#EDE8DF; line-height:1.1; }
.ph-h1 em { font-style:italic; color:rgba(160,196,174,.82); }
.ph-sub { font-family:'Inter',sans-serif; font-size:14px; color:rgba(138,184,160,.65); font-weight:300; margin-top:12px; max-width:560px; line-height:1.7; }

.page-slug-ourresort-draft .ph { background-image:url('https://lakeofthewoodsaz.com/wp-content/uploads/2019/06/DSCN1322-min-1.jpg'); }
.page-slug-areainfodraft .ph   { background-image:url('https://lakeofthewoodsaz.com/wp-content/uploads/2019/06/P1010054-min-1.jpg'); }
.page-slug-ratedraft .ph       { background-image:url('https://lakeofthewoodsaz.com/wp-content/uploads/2019/06/029-min-1.jpg'); }
.page-slug-contactdraft .ph    { background-image:url('https://lakeofthewoodsaz.com/wp-content/uploads/2019/06/DSCN1322-min-1.jpg'); }
.ph-cabins { background-image:url('https://lakeofthewoodsaz.com/wp-content/uploads/2022/10/Cabin-25-Front-Pic.jpg'); }

/* ── BOOKING STRIP ────────────────────────────────────────── */
.bk { background:var(--pine); padding:56px 80px; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.bk-h { font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:300; color:#EDE8DF; line-height:1.2; }
.bk-h em { font-style:italic; color:#8AB8A0; }
.bk-b { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.bk-c { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(138,184,160,.8)!important; text-decoration:none!important; transition:color .2s; }
.bk-c:hover { color:#EDE8DF!important; }

/* ── ACCORDION ────────────────────────────────────────────── */
.acc-wrap { border-top:1px solid var(--border); }
.acc-item { border-bottom:1px solid var(--border); }
.acc-btn { width:100%; text-align:left; background:none; border:none; padding:18px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; cursor:pointer; }
.acc-q { font-family:'Inter',sans-serif; font-size:14px; font-weight:500; color:var(--pine); }
.acc-plus { font-size:22px; color:var(--gold); flex-shrink:0; line-height:1; transition:transform .3s; }
.acc-item.open .acc-plus { transform:rotate(45deg); }
.acc-body { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.acc-item.open .acc-body { max-height:600px; }
.acc-a { font-size:14px; color:var(--mid); font-weight:300; line-height:1.75; padding-bottom:18px; }

/* ── SIZE FILTER ────────────────────────────────────────────── */
.ft-tab-wrap { background:var(--parch); padding:36px 80px 0; display:flex; justify-content:center; }
.ft { display:inline-flex; flex-wrap:wrap; justify-content:center; gap:4px; background:var(--cream); border:1px solid var(--border); border-radius:999px; padding:6px; }
.ft-tab { background:none; border:none; border-radius:999px; padding:11px 22px; font-family:'Inter',sans-serif; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--soft); cursor:pointer; white-space:nowrap; transition:color .25s, background .25s; }
.ft-tab.active { color:#fff!important; background:var(--pine); }
.ft-tab:hover:not(.active) { color:var(--pine); background:rgba(176,116,40,.1); }

/* ── CABIN GRID (archive) ─────────────────────────────────── */
.cg-wrap { padding:40px 80px 80px; background:var(--parch); }
.cg-count { font-size:11px; color:var(--soft); margin-bottom:24px; letter-spacing:.06em; }
.cg { display:grid; grid-template-columns:repeat(3,1fr); gap:32px 24px; }
.ci.hidden { display:none; }

.cc { background:#fff; border:1px solid var(--border); border-radius:2px; overflow:hidden;
      transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s; }
.cc:hover { transform:translateY(-6px); box-shadow:0 22px 40px rgba(20,40,25,.14); }

.cc-thumb { display:block; aspect-ratio:4/3; position:relative; overflow:hidden; }
.cc-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.cc:hover .cc-thumb img { transform:scale(1.06); }
.cc-bg { position:absolute; inset:0; background:linear-gradient(158deg,#0D2218 0%,#1A3526 50%,#2B5240 100%); }
.cc-ov { position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,14,8,.30) 0%,rgba(6,14,8,0) 32%,rgba(6,14,8,0) 68%,rgba(6,14,8,.20) 100%); }
.cc-tag { position:absolute; top:10px; left:10px; font-size:7px; letter-spacing:.16em; text-transform:uppercase; color:rgba(210,220,210,.9); background:rgba(10,22,14,.78); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.12); padding:5px 10px; }
.play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; transition:border-color .3s, background .3s, transform .3s; }
.cc:hover .play { border-color:var(--gold); background:rgba(176,116,40,.25); transform:translate(-50%,-50%) scale(1.08); }
.play-tri { width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:9px solid #fff; margin-left:2px; }

.cc-body { padding:22px 20px 18px; }
.cc-cat { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.cc-nm-link { text-decoration:none!important; }
.cc-nm { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:400; color:var(--pine); line-height:1.15; margin:0; transition:transform .3s, color .3s; }
.cc:hover .cc-nm { transform:translateX(2px); color:var(--gold); }
.cc-ln { width:26px; height:2px; background:var(--gold); margin:12px 0 14px; transition:width .35s ease; }
.cc:hover .cc-ln { width:44px; }

.cc-spec { list-style:none; margin:0 0 16px; padding:0; }
.cc-spec li { font-family:'Inter',sans-serif; font-size:12.5px; color:var(--mid); font-weight:300; line-height:1.5; padding:4px 0; display:flex; align-items:flex-start; gap:9px; }
.cc-spec li::before { content:''; display:inline-block; width:4px; height:4px; margin-top:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }

.cc-acts { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid var(--border); }
.cc-bk { background:var(--gold); color:#FAF8F4!important; font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:9px 16px; text-decoration:none!important; transition:background .2s, transform .2s; display:inline-block; }
.cc-bk:hover { background:var(--gold-lt)!important; transform:translateY(-1px); }
.cc-vw { font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--pine)!important; text-decoration:none!important; display:inline-flex; align-items:center; gap:5px; }
.cc-vw::after { content:'→'; display:inline-block; transition:transform .22s; }
.cc:hover .cc-vw::after { transform:translateX(3px); }

/* ── CABIN DETAIL ─────────────────────────────────────────── */
.dh { position:relative; height:58vh; min-height:380px; overflow:hidden; background:var(--pine); }
.dh img { width:100%; height:100%; object-fit:cover; }
.dh-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(12,29,18,.9) 0%,rgba(12,29,18,.2) 60%,transparent 100%); }
.dh-bc { position:absolute; top:24px; left:80px; font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.dh-bc a { color:rgba(255,255,255,.45)!important; text-decoration:none!important; }
.dh-bc a:hover { color:rgba(255,255,255,.8)!important; }
.dh-t { position:absolute; bottom:0; left:0; right:0; padding:28px 80px; }
.dh-eye { font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:#8AB8A0; margin-bottom:6px; }
.dh-nm { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,5vw,60px); font-weight:300; color:#EDE8DF; margin-bottom:6px; }
.dh-sub { font-family:'Inter',sans-serif; font-size:14px; color:rgba(255,255,255,.55); }
.db { background:var(--parch); padding:56px 80px; }
.db-g { display:grid; grid-template-columns:1fr 340px; gap:56px; }
.db-block { margin-bottom:40px; }
.slbl { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.spec-box { background:var(--cream); padding:18px; margin-bottom:16px; }
.spec-box p { font-family:'Inter',sans-serif; font-size:14px; color:var(--pine); line-height:1.6; }
.warn-box { background:#fffbeb; border:1px solid #f5d57a; padding:12px 16px; margin-bottom:16px; font-family:'Inter',sans-serif; font-size:13px; color:#92680a; border-radius:2px; }
.duplex-note { font-family:'Inter',sans-serif; font-size:13px; color:var(--mid); font-weight:300; padding:12px 16px; background:rgba(176,116,40,.06); border-left:3px solid var(--gold); margin-top:16px; }
.fl { list-style:none; margin-bottom:0; }
.fl li { font-family:'Inter',sans-serif; font-size:14px; color:var(--mid); font-weight:300; padding:10px 0; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:12px; }
.fl li::before { content:''; display:inline-block; width:4px; height:4px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.vid-w { aspect-ratio:16/9; background:var(--pine); position:relative; cursor:pointer; overflow:hidden; }
.vid-w iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.vid-th { position:absolute; inset:0; }
.vid-th img { width:100%; height:100%; object-fit:cover; }
.vid-ov { position:absolute; inset:0; background:rgba(12,29,18,.4); }
.vid-pl { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%; background:rgba(176,116,40,.9); display:flex; align-items:center; justify-content:center; transition:transform .2s, background .2s; }
.vid-w:hover .vid-pl { transform:translate(-50%,-50%) scale(1.1); background:var(--gold); }
.vid-tri { width:0; height:0; border-top:10px solid transparent; border-bottom:10px solid transparent; border-left:18px solid #fff; margin-left:4px; }
.vid-lb { position:absolute; bottom:12px; left:16px; font-family:'Inter',sans-serif; font-size:11px; color:rgba(255,255,255,.65); letter-spacing:.06em; }
.map-img { width:100%; border:1px solid var(--border); }
.gal-main { width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:8px; cursor:pointer; display:block; }
.gal-thumbs { display:grid; grid-template-columns:repeat(6,1fr); gap:3px; }
.gal-th { aspect-ratio:1; overflow:hidden; cursor:pointer; opacity:.65; transition:opacity .2s; border:2px solid transparent; }
.gal-th:hover { opacity:1; }
.gal-th.active { opacity:1; border-color:var(--gold); }
.gal-th img { width:100%; height:100%; object-fit:cover; }
.sb { position:sticky; top:84px; }
.sb-bk { background:var(--pine); padding:22px; margin-bottom:10px; }
.sb-lbl { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:#8AB8A0; margin-bottom:6px; }
.sb-nm { font-family:'Cormorant Garamond',serif; font-size:22px; color:#EDE8DF; margin-bottom:14px; }
.sb-info { font-family:'Inter',sans-serif; font-size:12px; color:rgba(255,255,255,.45); margin-bottom:18px; line-height:1.6; }
.sb-call { display:block; text-align:center; font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8AB8A0!important; text-decoration:none!important; padding:11px; border:1px solid rgba(255,255,255,.12); margin-top:8px; transition:border-color .2s, color .2s; }
.sb-call:hover { border-color:rgba(255,255,255,.3); color:#EDE8DF!important; }
.pdf-lnk { display:flex; align-items:center; gap:12px; background:var(--cream); border:1px solid var(--border); padding:12px 14px; margin-bottom:10px; text-decoration:none!important; transition:background .2s; }
.pdf-lnk:hover { background:var(--border); }
.pdf-lbl { font-family:'Inter',sans-serif; font-size:12px; font-weight:500; color:var(--pine); }
.pdf-sub { font-family:'Inter',sans-serif; font-size:10px; color:var(--soft); margin-top:2px; }
.sp-card { background:var(--cream); border:1px solid var(--border); padding:16px; }
.sp-row { display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid var(--border); font-family:'Inter',sans-serif; font-size:12px; }
.sp-row:last-child { border-bottom:none; }
.sk { color:var(--soft); font-weight:300; }
.sv { color:var(--pine); font-weight:500; }
.rel { background:var(--cream); border-top:1px solid var(--border); padding:56px 80px; }
.rel-g { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; margin-top:32px; }
.rel-c { display:block; text-decoration:none!important; overflow:hidden; background:var(--pine); }
.rel-c .rt { aspect-ratio:4/3; position:relative; overflow:hidden; }
.rel-c .rt img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.rel-c:hover .rt img { transform:scale(1.05); }
.rel-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(8,18,12,.9) 0%,transparent 60%); }
.rel-inf { position:absolute; bottom:0; left:0; right:0; padding:14px; }
.rel-nm { font-family:'Cormorant Garamond',serif; font-size:18px; color:#EDE8DF; }
.rel-mt { font-family:'Inter',sans-serif; font-size:11px; color:rgba(180,200,185,.6); }

/* ── RESPONSIVE — TABLET (≤900px) ─────────────────────────── */
@media(max-width:900px){
  .low-nav-links,.low-nav-book { display:none; }
  .low-nav-hamburger { display:flex; }
  .low-nav-mobile { display:flex; }
  .low-nav { padding:0 24px; height:72px; }
  .low-nav.scrolled { width:88vw; padding:9px 20px; }
  /* Tablet logo — high specificity to override BeTheme, per #7 */
  .low-nav .low-nav-logo img { width:125px !important; }
  .low-nav.scrolled .low-nav-logo img { width:105px !important; }
  .low-nav-spacer { height:72px; }

  .low-footer { padding:56px 24px 0; }
  .low-footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .sec { padding:64px 24px; }
  .ph { padding:40px 24px; }
  .ft-tab-wrap { padding:24px 16px 0; }
  .bk { flex-direction:column; padding:48px 24px; }
  .cg-wrap { padding:28px 24px 64px; }
  .cg { grid-template-columns:1fr 1fr; gap:20px; }
  .rel-g { grid-template-columns:1fr; }
  .db { padding-left:24px; padding-right:24px; }
  .db-g { grid-template-columns:1fr; }
  .sb { position:static; }
  .dh-bc,.dh-t { left:24px; right:24px; }
  .rel { padding:40px 24px; }
  .gal-thumbs { grid-template-columns:repeat(4,1fr); }
}

/* ── RESPONSIVE — MOBILE (≤520px) ─────────────────────────── */
@media(max-width:520px){
  .low-nav { padding:0 18px; height:64px; }
  .low-nav.scrolled { width:78vw; padding:8px 16px; }
  /* Mobile logo — smaller, high specificity to override BeTheme, per #7 */
  .low-nav .low-nav-logo img { width:85px !important; }
  .low-nav.scrolled .low-nav-logo img { width:65px !important; }
  .low-nav-spacer { height:64px; }

  .low-footer-grid { grid-template-columns:1fr; }
  .cg { grid-template-columns:1fr; gap:20px; }
  .gal-thumbs { grid-template-columns:repeat(3,1fr); }
}

/* ============================================================
   PAGE TEMPLATES — Our Resort / Area Info / Contact / Rates
   Appended for Option B (real theme templates). Each block is
   namespaced by a body class so the two different .stats-g style
   sets (Our Resort vs the old Area Info strip) can't collide.
   Body classes come from the page-template filename via WP's
   automatic body_class(): page-template-page-ourresort → we add
   our own cleaner hook in functions.php too. Selectors below use
   the class names each template actually outputs.
   ============================================================ */

/* ── OUR RESORT ───────────────────────────────────────────── */
.orr-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:48px 80px; background:var(--parch); border-bottom:1px solid var(--border); }
.orr-stat-n { font-family:'Cormorant Garamond',serif; font-size:52px; font-weight:300; color:var(--pine); line-height:1; margin-bottom:6px; }
.orr-stat-l { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); }
.orr-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:3px; }
.orr-strip-item { aspect-ratio:1; overflow:hidden; }
.orr-strip-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.orr-strip-item:hover img { transform:scale(1.08); }

/* ── AREA INFO ────────────────────────────────────────────── */
.ai-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:44px 80px; background:var(--cream); border-bottom:1px solid var(--border); }
.ai-stat-n { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:300; color:var(--pine); line-height:1; margin-bottom:6px; }
.ai-stat-l { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); }
.ai-g { display:grid; grid-template-columns:1fr 1fr; gap:64px; max-width:1100px; margin:0 auto; }
.lnk-list { display:flex; flex-direction:column; gap:3px; }
.lnk { display:flex; align-items:center; justify-content:space-between; padding:15px 16px; border:1px solid var(--border); text-decoration:none!important; background:var(--parch); transition:border-color .2s, background .2s, transform .2s; }
.lnk:hover { border-color:var(--gold); background:rgba(176,116,40,.04); transform:translateX(4px); }
.lnk-nm { font-family:'Inter',sans-serif; font-size:14px; font-weight:500; color:var(--pine); margin-bottom:3px; transition:color .2s; }
.lnk:hover .lnk-nm { color:var(--gold); }
.lnk-sb { font-family:'Inter',sans-serif; font-size:11px; color:var(--soft); font-weight:300; }
.lnk-arr { color:var(--gold); font-size:18px; flex-shrink:0; transition:transform .22s; }
.lnk:hover .lnk-arr { transform:translateX(4px); }
.vid-wrap { aspect-ratio:16/9; background:var(--pine); margin-bottom:12px; overflow:hidden; }
.vid-wrap iframe { width:100%; height:100%; border:none; display:block; }
.photos-g { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
.photo-i { aspect-ratio:1; overflow:hidden; }
.photo-i img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.photo-i:hover img { transform:scale(1.08); }

/* ── CONTACT ──────────────────────────────────────────────── */
.ct-g { display:grid; grid-template-columns:1fr 1fr; gap:56px; max-width:1100px; margin:0 auto; }
.c-card { background:var(--pine); padding:32px; transition:transform .35s ease, box-shadow .35s ease; }
.c-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(6,14,8,.3); }
.c-fld { padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid rgba(255,255,255,.08); }
.c-fld:last-child { border-bottom:none; padding-bottom:0; margin-bottom:0; }
.c-lbl { font-family:'Inter',sans-serif; font-size:8px; letter-spacing:.22em; text-transform:uppercase; color:rgba(138,184,160,.6); margin-bottom:6px; }
.c-val { font-family:'Inter',sans-serif; font-size:13px; color:#EDE8DF; font-weight:300; line-height:1.7; }
.c-val a { color:#C09060!important; text-decoration:none!important; transition:color .2s; }
.c-val a:hover { color:var(--gold-lt)!important; }
.big-ph { font-family:'Cormorant Garamond',serif; font-size:28px; color:#EDE8DF!important; }
.big-ph:hover { color:#8AB8A0!important; }
.map-link { display:inline-flex; align-items:center; gap:10px; font-family:'Inter',sans-serif; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold)!important; text-decoration:none!important; margin-top:10px; transition:gap .22s; }
.map-link:hover { gap:16px; color:var(--gold-lt)!important; }
.map-link::before { content:''; display:inline-block; width:20px; height:1px; background:currentColor; }
.welcome { background:var(--cream); border:1px solid var(--border); padding:24px; margin-top:12px; }
.w-title { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:300; color:var(--pine); margin-bottom:10px; }
.w-txt { font-family:'Inter',sans-serif; font-size:13px; color:var(--mid); font-weight:300; line-height:1.7; margin-bottom:14px; }
.w-ph { font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--gold); text-decoration:none!important; }
.w-ph:hover { color:var(--gold-lt)!important; }
.map-wrap iframe { width:100%; height:340px; border:none; display:block; }
.photo-hover { overflow:hidden; }
.photo-hover img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; transition:transform .7s; }
.photo-hover:hover img { transform:scale(1.06); }
.getting-here { max-width:1100px; margin:64px auto 0; border-top:1px solid var(--border); padding-top:48px; }
.dist-g { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }
.dist-c { border:1px solid var(--border); background:var(--parch); padding:20px 22px; transition:border-color .2s; }
.dist-c:hover { border-color:var(--gold); }
.dist-n { font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--pine); margin-bottom:2px; }
.dist-l { font-family:'Inter',sans-serif; font-size:11px; color:var(--soft); }

/* ── RATES ────────────────────────────────────────────────── */
.rt-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:44px 80px; background:var(--cream); border-bottom:1px solid var(--border); }
.rt-stat-n { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:300; color:var(--pine); line-height:1; margin-bottom:6px; }
.rt-stat-l { font-family:'Inter',sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); }
.alert-b { background:#fffbeb; border:1px solid #f5d57a; padding:14px 18px; margin-bottom:24px; font-family:'Inter',sans-serif; font-size:13px; color:#92680a; border-radius:2px; }
.alert-b strong { font-weight:700; }
.seasons { display:flex; flex-direction:column; gap:6px; margin-bottom:24px; }
.season { border:1px solid var(--border); padding:16px 20px; background:var(--parch); transition:border-color .2s, transform .2s; cursor:default; }
.season:hover { border-color:rgba(176,116,40,.4); transform:translateX(4px); }
.s-nm { font-family:'Inter',sans-serif; font-size:12px; font-weight:600; color:var(--pine); margin-bottom:4px; }
.s-rl { font-family:'Inter',sans-serif; font-size:13px; color:var(--mid); font-weight:300; }
.season.closed { background:#f9f4ed; border-color:rgba(176,116,40,.22); }
.season.closed .s-nm { color:var(--gold); }
.policy-box { background:var(--pine); padding:20px 24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; }
.policy-txt { font-family:'Inter',sans-serif; font-size:13px; color:#EDE8DF; }
.dog-list { list-style:none; display:flex; flex-direction:column; gap:0; margin-top:12px; padding:0; }
.dog-list li { font-family:'Inter',sans-serif; font-size:13px; color:var(--mid); font-weight:300; padding:10px 0; border-bottom:1px solid rgba(214,208,200,.5); display:flex; gap:10px; }
.dog-list li::before { content:'\2022'; color:var(--gold); flex-shrink:0; font-size:16px; line-height:1.4; }
.pdf-btn { display:inline-flex; align-items:center; gap:8px; background:var(--gold); color:#fff!important; font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:12px 24px; text-decoration:none!important; margin-top:16px; transition:background .22s, transform .22s; }
.pdf-btn:hover { background:var(--gold-lt)!important; transform:translateY(-1px); }

/* ── PAGE-TEMPLATE RESPONSIVE ─────────────────────────────── */
@media(max-width:900px){
  .orr-stats { grid-template-columns:1fr 1fr; padding:40px 24px; }
  .orr-strip { grid-template-columns:1fr 1fr; }
  .ai-stats { grid-template-columns:1fr 1fr; padding:32px 24px; }
  .ai-g { grid-template-columns:1fr; }
  .ct-g { grid-template-columns:1fr; }
  .rt-facts { grid-template-columns:1fr; padding:32px 24px; }
}

/* ── NEW PAGE TEMPLATES ONLY — hero top-clearance on mobile/tablet ──
   Scoped to the four Option-B template body classes so the shared .ph
   rule (used by pre-built pages) is never affected. WordPress adds these
   body classes automatically from each template's filename. */
@media(max-width:900px){
  .page-template-page-ourresort .ph,
  .page-template-page-areainfo .ph,
  .page-template-page-contact .ph,
  .page-template-page-rates .ph { padding:104px 24px 48px; }
}
@media(max-width:520px){
  .page-template-page-ourresort .ph,
  .page-template-page-areainfo .ph,
  .page-template-page-contact .ph,
  .page-template-page-rates .ph { padding:92px 20px 40px; }
}