:root{
  --sand-50:#fdf8f3; --sand-100:#f8ece0; --sand-200:#efd6bf;
  --rock-500:#c8643a; --rock-600:#b4532a; --rock-700:#8f3f1f; --rock-900:#3b1a0e;
  --ink:#24170f; --ink-2:#5a4638; --line:#ead8c7;
  --bg:#fffdfa; --card:#ffffff; --ok:#1f7a4d; --star:#e8a317;
  --cta:#ff5533; --cta-hover:#e2401f;
  --radius:14px; --shadow:0 1px 2px rgba(59,26,14,.06),0 6px 24px rgba(59,26,14,.07);
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--rock-600)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.15;color:var(--rock-900);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3.2vw,2.15rem);margin:0 0 .6rem}
h3{font-size:1.2rem;margin:0 0 .4rem}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.prose{max-width:740px}
section{padding:56px 0;border-bottom:1px solid var(--line)}
.eyebrow{font:600 .78rem/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--rock-600);margin:0 0 .7rem}
.muted{color:var(--ink-2)}
.small{font-size:.86rem}

/* Header */
.site-h{position:sticky;top:0;z-index:20;background:rgba(255,253,250,.92);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.site-h .wrap{display:flex;align-items:center;justify-content:space-between;height:58px}
.logo{font:700 1.05rem Fraunces,serif;color:var(--rock-900);text-decoration:none}
.logo span{color:var(--rock-600)}
.nav a{font-size:.9rem;color:var(--ink-2);text-decoration:none;margin-left:18px}
.nav a:hover{color:var(--rock-600)}
@media(max-width:720px){.nav{display:none}}

/* Hero */
.hero{position:relative;overflow:hidden;color:#fff;border-bottom:0;padding:0;
  background:
    radial-gradient(120% 90% at 85% 10%,rgba(255,196,120,.55) 0%,rgba(255,196,120,0) 55%),
    linear-gradient(160deg,#e98b4f 0%,#c8643a 35%,#8f3f1f 70%,#4a1f10 100%)}
.hero::before,.hero::after{content:"";position:absolute;inset:auto -10% -2px -10%;height:46%;
  background:linear-gradient(180deg,rgba(74,31,16,0) 0%,rgba(59,26,14,.55) 100%);
  clip-path:path("M0 140 C 180 60, 320 170, 520 110 S 860 30, 1100 120 S 1500 60, 1700 110 L 1700 400 L 0 400 Z");}
.hero::after{height:30%;background:rgba(59,26,14,.45);clip-path:path("M0 120 C 220 40, 420 150, 640 90 S 1000 160, 1240 80 S 1560 120, 1700 70 L 1700 400 L 0 400 Z")}
.hero .wrap{position:relative;z-index:1;padding-top:56px;padding-bottom:72px}
.crumbs{font-size:.82rem;opacity:.85;margin-bottom:18px}
.crumbs a{color:#fff}
.hero h1{color:#fff;font-size:clamp(2.1rem,5.4vw,3.6rem);max-width:820px;margin:0 0 16px;text-shadow:0 2px 24px rgba(59,26,14,.35)}
.hero .lede{font-size:clamp(1.05rem,2vw,1.22rem);max-width:640px;opacity:.96;margin:0 0 26px}
.byline{font-size:.85rem;opacity:.85;margin-bottom:26px}
.trust{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:22px 0 0;font-size:.92rem}
.trust li::before{content:"✓";display:inline-block;margin-right:6px;font-weight:700;color:#ffe2b8}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:999px;font:600 1rem Inter,sans-serif;text-decoration:none;transition:transform .12s ease,background .15s ease,box-shadow .15s ease;cursor:pointer;border:0}
.btn:hover{transform:translateY(-1px)}
.btn-cta{background:var(--cta);color:#fff;box-shadow:0 6px 18px rgba(255,85,51,.35)}
.btn-cta:hover{background:var(--cta-hover)}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.24)}
.btn-outline{background:#fff;color:var(--rock-700);border:1.5px solid var(--rock-500)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn-block{width:100%}

/* Quick answer */
.answer{position:relative;z-index:2;margin-top:-40px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;border-left:5px solid var(--rock-500)}
.answer h2{font-size:1.15rem;font-family:Inter,sans-serif;font-weight:700;color:var(--rock-700);margin:0 0 8px;letter-spacing:0}
.answer p{margin:0}
.disclosure{font-size:.8rem;color:var(--ink-2);margin:14px 0 0}

/* Picks */
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:26px}
.pick{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px 20px;box-shadow:var(--shadow)}
.pick.top{border:2px solid var(--rock-500)}
.badge{position:absolute;top:-12px;left:18px;background:var(--rock-600);color:#fff;font:700 .72rem/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:999px}
.pick.top .badge{background:var(--cta)}
.pick h3{margin-top:6px}
.rating{display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--ink-2);margin:2px 0 10px}
.rating b{color:var(--ink)}
.stars{color:var(--star);letter-spacing:1px}
.price{font:700 1.6rem Fraunces,serif;color:var(--rock-900);margin:4px 0 2px}
.price small{font:500 .8rem Inter,sans-serif;color:var(--ink-2)}
.feat{list-style:none;padding:0;margin:12px 0 18px;font-size:.92rem;flex:1}
.feat li{padding:4px 0 4px 22px;position:relative}
.feat li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.feat li.no::before{content:"–";color:#b0897a}
.urgency{font-size:.8rem;color:var(--rock-700);background:var(--sand-100);border-radius:8px;padding:6px 10px;margin-bottom:12px}

/* Table */
.table-wrap{overflow-x:auto;margin-top:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:.92rem}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--sand-100);font-weight:600;color:var(--rock-900);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
tr:last-child td{border-bottom:0}
td a.tlink{font-weight:600;white-space:nowrap}
.yes{color:var(--ok);font-weight:600}
.extra{color:var(--rock-700);font-weight:600}

/* Widgets */
.widget-box{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-height:120px}
.widget-box .wfallback{font-size:.88rem;color:var(--ink-2)}

/* Compare */
.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:24px}
.cbox{background:var(--sand-50);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.cbox dl{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:.92rem}
.cbox dt{color:var(--ink-2)}
.cbox dd{margin:0;font-weight:500}
.verdict{margin-top:12px;font-size:.92rem;background:#fff;border-radius:10px;padding:10px 12px;border:1px dashed var(--sand-200)}

/* Timeline */
.timeline{list-style:none;padding:0;margin:24px 0 0;border-left:2px solid var(--sand-200)}
.timeline li{position:relative;padding:0 0 20px 24px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--rock-500);box-shadow:0 0 0 4px var(--bg)}
.timeline time{display:block;font-weight:700;color:var(--rock-700);font-size:.9rem}

/* Tips */
.tips{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:24px}
.tip{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.tip .ico{font-size:1.4rem;line-height:1}
.tip h3{font-family:Inter,sans-serif;font-size:1rem;font-weight:700;margin:10px 0 6px}
.tip p{margin:0;font-size:.93rem;color:var(--ink-2)}
.callout{margin-top:24px;background:#fff4e8;border:1px solid #f4cfa9;border-radius:var(--radius);padding:18px 20px}
.callout strong{color:var(--rock-700)}

/* Season bar */
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin:22px 0 8px}
.months div{text-align:center;font-size:.72rem;padding:10px 0;border-radius:6px;background:var(--sand-100);color:var(--ink-2);font-weight:600}
.months .beam{background:#f7b267;color:var(--rock-900)}
.months .peak{background:var(--rock-500);color:#fff}
.months .mon{background:#9fb8c7;color:#16313f}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.82rem;color:var(--ink-2)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;font-weight:600;font-size:1.04rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:12px;font-size:1.5rem;color:var(--rock-600);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 16px;color:var(--ink-2)}

/* Final CTA */
.final{background:linear-gradient(150deg,#8f3f1f,#3b1a0e);color:#fff;border:0;text-align:center}
.final h2{color:#fff}
.final p{opacity:.9;max-width:560px;margin:0 auto 24px}
.final .btn-row{justify-content:center}

footer{padding:36px 0 110px;font-size:.84rem;color:var(--ink-2)}
footer a{color:var(--ink-2)}

/* Sticky mobile CTA */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(59,26,14,.1);transform:translateY(110%);transition:transform .25s ease}
.sticky-cta.show{transform:none}
.sticky-cta .s-txt{font-size:.82rem;line-height:1.3}
.sticky-cta .s-txt b{display:block;font-size:.98rem;color:var(--rock-900)}
.sticky-cta .btn{padding:11px 18px;font-size:.92rem;white-space:nowrap}
@media(max-width:820px){.sticky-cta{display:flex}}
@media(min-width:821px){footer{padding-bottom:36px}}

.toc{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}
.toc a{display:inline-block;font-size:.85rem;padding:7px 12px;border-radius:999px;background:var(--sand-100);color:var(--rock-700);text-decoration:none}
.toc a:hover{background:var(--sand-200)}

/* Hub: day-trip cards */
.trips{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:26px}
.trip{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.trip-top{position:relative;padding:20px 20px 16px;color:#fff;min-height:118px;display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(150deg,var(--g1,#e98b4f),var(--g2,#8f3f1f))}
.trip-top .num{position:absolute;top:14px;right:16px;font:700 .78rem Inter,sans-serif;opacity:.85}
.trip-top h3{color:#fff;font-size:1.35rem;margin:0}
.trip-top .meta{font-size:.84rem;opacity:.92;margin-top:4px}
.trip-body{padding:16px 20px 20px;display:flex;flex-direction:column;flex:1}
.trip-body p{margin:0 0 12px;font-size:.95rem}
.facts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.facts li{font-size:.76rem;font-weight:600;background:var(--sand-100);color:var(--rock-700);padding:5px 9px;border-radius:999px}
.trip-price{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:auto 0 12px;padding-top:6px;border-top:1px dashed var(--line)}
.trip-price .price{font-size:1.35rem;margin:0}
.trip-price .rating{margin:0}
.trip .btn{width:100%}
.trip .guide-link{display:block;text-align:center;font-size:.88rem;font-weight:600;margin-top:10px}
.trip.featured{border:2px solid var(--rock-500)}

/* Hub: quick picker */
.picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:22px}
.picker a{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .15s,transform .12s}
.picker a:hover{border-color:var(--rock-500);transform:translateY(-1px)}
.picker b{display:block;color:var(--rock-700);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.picker span{font-weight:600}

/* Home: featured guide spans the full row */
.trip.wide{grid-column:1/-1}
@media(min-width:760px){
  .trip.wide{flex-direction:row}
  .trip.wide .trip-top{flex:0 0 42%;min-height:260px}
}
.trip .btn-row{gap:10px}
.trip .btn-row .btn{flex:1 1 180px;width:auto}
.label{display:inline-block;font:700 .7rem/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.22);padding:6px 9px;border-radius:999px;margin-bottom:10px;align-self:flex-start}

/* Photos: hero background image with a dark overlay for readable text */
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero.has-img::before{inset:0;height:auto;clip-path:none;z-index:1;
  background:linear-gradient(180deg,rgba(40,16,6,.55) 0%,rgba(40,16,6,.35) 45%,rgba(40,16,6,.8) 100%)}
.hero.has-img::after{display:none}
.hero.has-img .wrap{z-index:2}

/* Photos: card headers */
.trip-top.has-img{min-height:190px}
.trip-top.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.trip-top.has-img::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(30,12,5,.05) 25%,rgba(30,12,5,.8) 100%)}
.trip-top.has-img > :not(img):not(.num){position:relative;z-index:2}
.trip-top.has-img .num{z-index:2;background:rgba(30,12,5,.45);padding:4px 8px;border-radius:999px;opacity:1}
@media(min-width:760px){.trip.wide .trip-top.has-img{min-height:300px}}

/* Photos: inline figures */
.photo{margin:22px 0 0}
.photo img{display:block;width:100%;height:auto;border-radius:var(--radius);aspect-ratio:3/2;object-fit:cover}
.photo figcaption{font-size:.82rem;color:var(--ink-2);margin-top:8px}
.credits{font-size:.78rem}

/* Brand logo */
.logo{display:flex;align-items:center}
.logo img{display:block;height:34px;width:auto}
@media(max-width:420px){.logo img{height:28px}}
