  :root{
    --ink:#22272a; --muted:#5d6a64; --paper:#faf8f4; --card:#f1ece2;
    --forest:#2f3a35; --gold:#c9a25f; --gold-dk:#a8843f; --line:#e7e1d6;
    --max:1180px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth; scroll-padding-top:64px}
  body{
    margin:0; color:var(--ink); background:var(--paper);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    line-height:1.65; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:Georgia,"Times New Roman",serif; line-height:1.18; color:var(--forest); margin:0 0 .5em}
  h2{font-size:clamp(1.7rem,3.4vw,2.5rem); margin-top:0}
  h3{font-size:1.2rem}
  p{margin:0 0 1em}
  a{color:var(--gold-dk)}
  img{max-width:100%; display:block}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 22px}
  .eyebrow{
    text-transform:uppercase; letter-spacing:.18em; font-size:.78rem; font-weight:700;
    color:var(--gold-dk); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin-top:1.6em; margin-bottom:.6em;
  }
  .btn{
    display:inline-block; background:var(--gold); color:#fff; text-decoration:none; font-weight:700;
    padding:.85em 1.7em; border-radius:40px; letter-spacing:.02em; transition:transform .15s ease, background .15s ease;
    box-shadow:0 6px 18px rgba(168,132,63,.32);
  }
  .btn:hover{background:var(--gold-dk); transform:translateY(-2px)}
  .btn-ghost{background:transparent; color:#fff; box-shadow:none; border:1.5px solid rgba(255,255,255,.7)}
  .btn-ghost:hover{background:rgba(255,255,255,.12)}

  /* Header */
  header{position:fixed; top:0; left:0; right:0; z-index:50; background:var(--forest); border-bottom:1px solid rgba(255,255,255,.1); box-shadow:0 2px 14px rgba(20,26,22,.25)}
  .nav{display:flex; align-items:center; justify-content:space-between; height:64px}
  .brand{font-family:Georgia,serif; font-weight:700; font-size:1.15rem; color:#fff; text-decoration:none; letter-spacing:.01em}
  .brand span{color:var(--gold)}
  .nav-links{display:flex; gap:26px; align-items:center}
  .nav-links a{color:rgba(255,255,255,.85); text-decoration:none; font-size:.92rem; font-weight:600}
  .nav-links a.book{padding:.5em 1.2em; background:var(--gold); color:#fff; border-radius:30px}
  .nav-links a:not(.book):hover{color:var(--gold)}
  @media(max-width:760px){.nav-links a:not(.book){display:none}}

  /* Hero */
  .hero{position:relative; min-height:88vh; min-height:88svh; display:flex; align-items:flex-end; overflow:hidden; background:#1d2420}
  .hero-slide{position:absolute; inset:0; background-position:center; background-size:cover; background-repeat:no-repeat}
  .hero-slide-1{z-index:1; background-image:url('images/hero-canyon-basin-house-yakima-river-canyon.jpg')}
  .hero-slide-2{z-index:2; opacity:0; background-image:url('images/hero-yakima-canyon-sunset.jpg'); animation:heroCross 9s ease-in-out infinite}
  @keyframes heroCross{0%,38.89%{opacity:0} 50%,88.89%{opacity:1} 100%{opacity:0}}
  @media (prefers-reduced-motion: reduce){.hero-slide-2{animation:none; opacity:0}}
  .hero::after{content:""; position:absolute; inset:0; z-index:3; background:linear-gradient(to top,rgba(15,20,17,.82),rgba(15,20,17,.15) 55%,rgba(15,20,17,.35))}
  .hero-inner{position:relative; z-index:4; color:#fff; padding-bottom:64px}
  .hero h1{color:#fff; font-size:clamp(2.2rem,5.4vw,4rem); max-width:16ch; text-shadow:0 2px 30px rgba(0,0,0,.4)}
  .hero p{font-size:clamp(1.05rem,2.2vw,1.3rem); max-width:46ch; color:#f1ede5}
  .hero .eyebrow{color:#f0d9a8; margin-top:0}
  .hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:22px}

  /* Stats bar */
  .stats{background:var(--forest); color:#fff}
  .stats .wrap{display:flex; flex-wrap:wrap; justify-content:space-around; gap:18px; padding:26px 22px; text-align:center}
  .stat b{display:block; font-family:Georgia,serif; font-size:1.7rem; color:var(--gold)}
  .stat span{font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; opacity:.85}

  section{padding:72px 0}
  .lead{font-size:1.18rem; color:var(--muted); max-width:62ch}

  /* Gallery */
  .gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
  .gallery a{display:block; overflow:hidden; border-radius:10px; cursor:zoom-in}
  .gallery img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform .5s ease}
  .gallery a:hover img{transform:scale(1.06)}
  .gallery .wide{grid-column:span 2; grid-row:span 2}
  .gallery .wide img{aspect-ratio:auto; height:100%}
  @media(max-width:820px){.gallery{grid-template-columns:repeat(2,1fr)} .gallery .wide{grid-column:span 2}}

  /* Lightbox */
  .lb{position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
    background:rgba(14,18,15,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    opacity:0; visibility:hidden; transition:opacity .5s ease, visibility 0s linear .5s}
  .lb.open{opacity:1; visibility:visible; transition:opacity .5s ease}
  .lb-stage{position:relative; width:90vw; height:84vh; max-width:1500px; display:flex; align-items:center; justify-content:center; cursor:zoom-out}
  .lb-img{position:absolute; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
    border-radius:8px; box-shadow:0 40px 90px rgba(0,0,0,.6);
    opacity:0; transform:scale(.985); transition:opacity .6s ease, transform .8s ease; pointer-events:none}
  .lb-img.show{opacity:1; transform:scale(1)}
  .lb-btn{position:absolute; z-index:3; border:0; cursor:pointer; color:#fff; line-height:1;
    background:rgba(255,255,255,.1); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
    transition:background .2s ease, transform .25s ease}
  .lb-btn:hover{background:var(--gold)}
  .lb-close{top:22px; right:26px; width:46px; height:46px; border-radius:50%; font-size:1.7rem}
  .lb-close:hover{transform:rotate(90deg)}
  .lb-nav{top:50%; width:54px; height:54px; border-radius:50%; font-size:2rem; display:flex; align-items:center; justify-content:center; transform:translateY(-50%)}
  .lb-prev{left:24px} .lb-next{right:24px}
  .lb-prev:hover{transform:translateY(-50%) translateX(-3px)}
  .lb-next:hover{transform:translateY(-50%) translateX(3px)}
  .lb-bar{position:absolute; left:0; right:0; bottom:20px; z-index:3; text-align:center; padding:0 72px;
    color:rgba(255,255,255,.9); font-size:.86rem; letter-spacing:.03em}
  .lb-count{display:block; margin-top:6px; color:var(--gold); font-weight:700; letter-spacing:.14em; font-size:.72rem}
  @media(max-width:600px){.lb-stage{width:94vw; height:74vh} .lb-nav{width:44px; height:44px} .lb-prev{left:10px} .lb-next{right:10px} .lb-bar{padding:0 16px}}

  /* Feature grid */
  .features{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:36px}
  .feature{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:26px}
  .feature .ico{width:48px; height:48px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:rgba(168,132,63,.12)}
  .feature .ico svg{width:24px; height:24px; stroke:var(--gold-dk); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
  .feature h3{margin:.5em 0 .3em}
  .feature p{margin:0; color:var(--muted); font-size:.97rem}
  @media(max-width:820px){.features{grid-template-columns:1fr}}

  /* Split sections */
  .split{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
  .split img{border-radius:16px; box-shadow:0 20px 50px rgba(40,50,45,.16)}
  .split.alt{background:var(--forest); color:#f1ede5; border-radius:20px; padding:48px; margin:0 22px}
  .split.alt h2{color:#fff}
  .split.alt .eyebrow{color:var(--gold)}
  .split.alt .lead{color:#d6d2c8}
  @media(max-width:820px){.split{grid-template-columns:1fr; gap:26px} .split.alt{padding:32px; margin:0} .split .ord{order:-1}}

  /* Room-by-room tour */
  .room{display:grid; grid-template-columns:1.05fr 1fr; gap:46px; align-items:center; margin-bottom:62px}
  .room:last-child{margin-bottom:0}
  .room .room-img{overflow:hidden; border-radius:16px; box-shadow:0 18px 46px rgba(40,50,45,.16)}
  .room .room-img img{width:100%; aspect-ratio:3/2; object-fit:cover; transition:transform .6s ease}
  .room .room-img:hover img{transform:scale(1.04)}
  .room h3{font-size:1.55rem; margin:.15em 0 .35em}
  .room .room-text p{color:var(--muted); margin:0}
  .room .room-meta{margin-top:22px; font-size:.85rem; font-weight:700; letter-spacing:.04em; color:var(--gold-dk); text-transform:uppercase}
  .room.flip .room-img{order:2}
  .room-img.duo{display:grid; grid-template-columns:1fr 1fr; gap:12px; box-shadow:none; border-radius:0; overflow:visible}
  .room-img.duo img{border-radius:14px; box-shadow:0 18px 46px rgba(40,50,45,.16); aspect-ratio:4/3}
  .room-img.duo:hover img{transform:none}
  @media(max-width:820px){
    .room{grid-template-columns:1fr; gap:18px; margin-bottom:44px}
    .room.flip .room-img{order:0}
    .room .room-img{order:-1}
    .room-img.duo{grid-template-columns:1fr}
  }

  ul.checks{list-style:none; padding:0; margin:1em 0 0}
  ul.checks li{padding:6px 0 6px 28px; position:relative}
  ul.checks li::before{content:"➤"; color:var(--gold-dk); position:absolute; left:0; font-size:.8rem; top:9px}
  .split.alt ul.checks li::before{color:var(--gold)}

  /* FAQ */
  details{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:4px 22px; margin-bottom:12px}
  summary{cursor:pointer; font-weight:700; padding:16px 0; font-size:1.05rem; color:var(--forest); list-style:none}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+"; float:right; color:var(--gold-dk); font-size:1.3rem; line-height:1}
  details[open] summary::after{content:"–"}
  details p{color:var(--muted); margin:0 0 16px}

  /* Gorge feature band */
  .gorge{background:var(--forest); color:#d6d2c8; border-radius:20px; padding:48px}
  .gorge h2{color:#fff}
  .gorge .eyebrow{color:var(--gold)}
  .gorge .lead{color:#e6e2d8}
  .gorge-stats{display:flex; flex-wrap:wrap; gap:20px; margin:32px 0}
  .gorge-stats .gstat{flex:1; min-width:150px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:20px 22px}
  .gorge-stats b{display:block; font-family:Georgia,serif; font-size:2rem; color:var(--gold); line-height:1.1}
  .gorge-stats span{display:block; margin-top:6px; font-size:.78rem; text-transform:uppercase; letter-spacing:.09em; opacity:.85}
  .gorge .btn{margin-top:8px}
  @media(max-width:820px){.gorge{padding:30px}}

  /* Rates card */
  .rate-card{display:flex; flex-wrap:wrap; align-items:center; gap:36px; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:40px}
  .rate-figure{text-align:center; padding-right:36px; border-right:1px solid var(--line)}
  .rate-figure .from{display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; color:var(--muted); font-weight:700}
  .rate-figure b{font-family:Georgia,serif; font-size:3.4rem; color:var(--forest); line-height:1}
  .rate-figure .per{color:var(--muted); font-size:.95rem}
  .rate-body{flex:1; min-width:250px}
  @media(max-width:680px){.rate-card{padding:28px} .rate-figure{border-right:0; border-bottom:1px solid var(--line); padding:0 0 20px; width:100%; margin-bottom:4px}}

  /* CTA band */
  .cta{position:relative; text-align:center; color:#fff; padding:96px 22px;
    background:#1d2420 url('images/canyon-basin-house-deck-evening.jpg') center/cover no-repeat;}
  .cta::after{content:""; position:absolute; inset:0; background:rgba(20,26,22,.66)}
  .cta > *{position:relative; z-index:2}
  .cta h2{color:#fff}
  .cta p{color:#e8e3d9; max-width:48ch; margin:0 auto 26px}

  footer{background:var(--forest); color:#cfd6d1; padding:46px 22px; text-align:center; font-size:.9rem}
  footer a{color:var(--gold)}
  footer .brand{color:#fff; font-size:1.3rem; display:block; margin-bottom:10px}
  .kw{color:#9aa6a0; max-width:75ch; margin:18px auto 0; font-size:.82rem; line-height:1.7}

  /* ===== Landing / guide pages ===== */
  .page-hero{position:relative; display:flex; align-items:flex-end; min-height:88vh; min-height:88svh; overflow:hidden; background:#1d2420}
  .page-hero .ph-bg{position:absolute; inset:0; background-position:center; background-size:cover; background-repeat:no-repeat}
  .page-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(15,20,17,.86),rgba(15,20,17,.22) 60%,rgba(15,20,17,.45))}
  .page-hero .hero-inner{position:relative; z-index:2; color:#fff; padding-bottom:64px}
  .page-hero h1{color:#fff; font-size:clamp(2rem,4.6vw,3.3rem); max-width:20ch; text-shadow:0 2px 30px rgba(0,0,0,.4)}
  .page-hero p{font-size:clamp(1.02rem,2vw,1.22rem); max-width:54ch; color:#f1ede5}
  .page-hero .eyebrow{color:#f0d9a8; margin-top:0}
  .crumb-bar{background:var(--card); border-bottom:1px solid var(--line); font-size:.82rem; letter-spacing:.02em}
  .crumb-bar .wrap{padding:13px 22px}
  .crumb-bar a{color:var(--gold-dk); text-decoration:none; font-weight:600}
  .crumb-bar a:hover{text-decoration:underline}
  .crumb-bar .sep{color:var(--muted); margin:0 9px; opacity:.6}
  .crumb-bar .cur{color:var(--muted)}
  .prose{max-width:70ch}
  .prose h2{margin-top:0}
  .prose p{color:var(--muted)}
  .prose p strong{color:var(--ink)}
  .guide-cross{border-top:1px solid var(--line); margin-top:8px; padding-top:30px; margin-bottom:40px}
  .photo-trio{display:grid; grid-template-columns:1fr 1fr; gap:12px}
  .photo-trio img{width:100%; height:100%; object-fit:cover; border-radius:12px; box-shadow:0 16px 40px rgba(0,0,0,.32)}
  .photo-trio .t-wide{grid-column:span 2; aspect-ratio:16/9}
  .photo-trio .t-half{aspect-ratio:4/3}
  .guide-cards{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px}
  .guide-cards a{display:block; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px 24px; text-decoration:none; transition:transform .15s ease, border-color .15s ease}
  .guide-cards a:hover{transform:translateY(-2px); border-color:var(--gold)}
  .guide-cards b{display:block; color:var(--forest); font-family:Georgia,serif; font-size:1.1rem; margin-bottom:4px}
  .guide-cards span{color:var(--muted); font-size:.9rem}
  @media(max-width:680px){.guide-cards{grid-template-columns:1fr}}
  footer .guide-links{display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:center; margin:14px 0 4px; font-size:.88rem}
