:root {
  --ink:#222a1d; --forest:#32563c; --deep:#31533a; --cream:#f6f3ea; --paper:#fdfbf5;
  --gold:#f0ca8c; --rust:#804626; --muted:#55604f; --line:#dcdacc;
  --serif:Georgia, 'Times New Roman', serif; --sans:Arial, sans-serif;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth}
body {margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans)}
a {color:inherit;text-decoration:none}
button,select {font:inherit}
button {cursor:pointer}
img {display:block;width:100%}
h1,h2,h3,p {margin:0}
section {scroll-margin-top:20px}
[hidden] {display:none!important}
:focus-visible {outline:3px solid #b66a30;outline-offset:4px}
.skip {position:fixed;left:16px;top:10px;transform:translateY(-170%);z-index:5;padding:12px;background:#fff}
.skip:focus {transform:none}
.shell {width:min(1320px,calc(100% - 100px));margin-inline:auto}
.mast {background:var(--paper)}
.nav {min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand {display:flex;align-items:center;gap:11px;white-space:nowrap}
.regional-emblem {width:46px;height:42px;object-fit:contain;flex:none}
.brand span {color:var(--rust);font-size:10px;font-weight:900;letter-spacing:.16em;border-right:1px solid #bfae94;padding-right:11px}
.brand strong {font:700 21px/1 var(--serif)}
.nav nav {display:flex;gap:35px;font-size:14px;font-weight:700}
.nav nav a:hover,.text-link:hover,.foot a:hover,.checklist a:hover {text-decoration:underline;text-underline-offset:5px}
.nav-button {border:1px solid #86917e;border-radius:5px;padding:11px 15px;font-size:13px;font-weight:800;white-space:nowrap}
.nav-button span {margin-left:6px}
.nav-button:hover {background:#eeebdf}
.hero {position:relative;isolation:isolate;background:#355841;color:#fffaf0}
.hero-images,.hero-image,.hero::after {position:absolute;inset:0;pointer-events:none}
.hero-images {z-index:-2}
.hero-image {opacity:0;transition:opacity 900ms ease;background-position:center;background-size:cover}
.hero-image.is-current {opacity:1}
.hero-image:nth-child(1) {background-image:url('assets/highlands.webp');background-position:center 52%}
.hero-image:nth-child(2) {background-image:url('assets/sheka.webp')}
.hero-image:nth-child(3) {background-image:url('assets/park.webp')}
.hero::after {content:'';z-index:-1;background:linear-gradient(90deg,#203d2cef 3%,#284731b0 45%,#2847310a 77%),linear-gradient(0deg,#203d2cbe,transparent 29%)}
.hero-inner {min-height:640px;display:grid;align-items:center;position:relative;padding:66px 0 88px}
.hero-copy {max-width:790px}
.eyebrow {font-size:11px;font-weight:900;letter-spacing:.18em;line-height:1.55;color:var(--rust)}
.hero .eyebrow,.coffee-copy .eyebrow {color:var(--gold)}
h1,h2,h3 {font-family:var(--serif);font-weight:400}
h1 {font-size:clamp(64px,9vw,142px);line-height:.9;letter-spacing:-.061em;margin:21px 0 25px}
h1 em {font-weight:400;color:var(--gold)}
.hero-deck {max-width:505px;font-size:19px;line-height:1.55;color:#faf5e9}
.actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.button {display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:12px 17px;border:1px solid transparent;border-radius:5px;font-size:14px;font-weight:800}
.gold {background:var(--gold);color:#20271b}
.gold:hover {background:#f5d8a4}
.outline {border-color:#f9eadc9e;background:#294a3359;color:#fff}
.outline:hover {background:#294a33bb}
.hero-gallery {position:absolute;right:0;bottom:17px;display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.image-credit {font-size:11px;color:#fffaf2}
.hero-controls {display:flex;align-items:center;gap:8px;color:#fffaf2;font-size:12px}
.hero-controls button {min-height:32px;min-width:32px;padding:3px 8px;border:1px solid #fffaf28a;border-radius:5px;background:#203b2be6;color:#fffaf2;font-weight:700}
.hero-controls button:hover {background:#41674a}
.foot .nexora-credit {display:inline;font:inherit;margin:0;text-decoration:underline;text-underline-offset:3px}
.section {padding-block:75px}
.section-head {display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:27px}
h2 {font-size:clamp(41px,6vw,76px);line-height:.99;letter-spacing:-.052em;margin-top:8px}
.section-head>p {max-width:390px;color:var(--muted);font-size:15px;line-height:1.6}
.filters {display:flex;flex-wrap:wrap;gap:8px}
.filters button {padding:9px 15px;border-radius:999px;border:1px solid #c6cabc;background:var(--paper);color:var(--forest);font-weight:700;font-size:13px}
.filters button[aria-pressed=true] {background:var(--forest);color:#fff;border-color:var(--forest)}
.filters button:hover {border-color:var(--forest)}
.results {font-size:12px;color:var(--muted);margin:13px 0 10px}
.places {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.place {display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.place-image {aspect-ratio:2.04;object-fit:cover;background:#dfdfd2}
.place-body {display:flex;flex-direction:column;flex:1;padding:18px}
.place-meta {display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:8px;color:var(--rust);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.place h3 {font-size:clamp(24px,2.35vw,34px);line-height:1.04;letter-spacing:-.035em}
.place p:not(.place-meta) {color:var(--muted);font-size:14px;line-height:1.55;margin:10px 0 15px}
.place button {text-align:left;margin-top:auto;border:0;border-top:1px solid var(--line);background:transparent;color:var(--forest);padding:12px 0 0;font-weight:800;font-size:13px;display:flex;justify-content:space-between}
.place button:hover {color:var(--rust)}
.coffee-feature {display:grid;grid-template-columns:1fr 1fr;min-height:600px;background:var(--deep);color:#fff9ee}
.coffee-photo {background:#62331f url('assets/coffee.webp') center/cover}
.coffee-copy {padding:61px clamp(30px,6vw,110px) 58px 55px}
.coffee-copy h2 {margin-bottom:17px}
.coffee-copy>p:not(.eyebrow) {color:#e9e9dd;font-size:16px;line-height:1.6;max-width:465px}
.coffee-stops {padding-left:22px;margin:19px 0 22px;max-width:465px}
.coffee-stops li::marker {color:var(--gold);font-weight:800}
.coffee-stops button,.coffee-stops li>div {background:transparent;border:0;border-bottom:1px solid #ffffff38;color:#fff9ee;width:100%;text-align:left;padding:10px 0 10px 4px}
.coffee-stops button:hover strong {text-decoration:underline}
.coffee-stops span {display:block;color:#d5ddce;font-size:12px;margin-top:4px}
.text-link {font-weight:800;font-size:13px;color:inherit}
.coffee-copy .text-link {color:var(--gold)}
.planner {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:20px}
.planner-main,.checklist {padding:25px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.planner label {display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.planner select {width:100%;background:#f4f3e9;border:1px solid #bec5b5;border-radius:6px;padding:12px;color:var(--ink)}
.route-detail {margin-top:17px}
.route-detail h3,.checklist h3 {font-size:29px;margin-bottom:9px}
.route-detail p,.checklist li {font-size:14px;line-height:1.55;color:var(--muted)}
.route-detail p+p {margin-top:7px}
.route-detail a,.checklist a {display:block;width:fit-content;margin-top:11px;color:#6a4228;font-size:13px;font-weight:800}
.checklist {background:#eaece1}
.checklist ul {padding-left:18px;margin:0}
.checklist li+li {margin-top:8px}
.region {background:#e9ecdf}
.zone-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.zone-grid a {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font:400 24px/1 var(--serif)}
.zone-grid a:hover {border-color:var(--forest)}
.zone-grid span {font:400 15px/1 var(--sans)}
footer {background:var(--deep);color:#fcf8ed;padding-block:39px}
.foot {display:flex;justify-content:space-between;gap:20px}
.foot strong {font:400 25px/1 var(--serif)}
.foot p {margin-top:9px;color:#d6ddd1;font-size:12px;line-height:1.55}
.foot a {display:block;font-size:13px;margin:7px 0 12px}
dialog {background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;width:min(640px,calc(100% - 28px));max-height:calc(100% - 36px);padding:24px;box-shadow:0 16px 60px #0005}
dialog::backdrop {background:#294a33cc}
.dialog-top {display:flex;align-items:center;justify-content:space-between;gap:12px}
.close {border:1px solid var(--line);background:#f4f2e9;border-radius:50%;width:34px;height:34px;font-size:25px;line-height:1;color:var(--forest)}
dialog h2 {font-size:clamp(32px,5vw,51px);margin-bottom:12px}
dialog h3 {font-size:22px;margin:18px 0 5px}
dialog p,dialog li {font-size:14px;line-height:1.55}
dialog ul {margin:6px 0;padding-left:20px}
.dialog-links {display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.dialog-links a {color:var(--rust);font-size:13px;font-weight:800;text-decoration:underline}
@media(max-width:1000px) {
  .shell {width:calc(100% - 60px)}
  .nav nav {gap:19px}
  .hero-inner {min-height:555px}
  .places {grid-template-columns:repeat(2,minmax(0,1fr))}
  .coffee-copy {padding:43px 35px}
}
@media(max-width:660px) {
  .shell {width:calc(100% - 32px)}
  .nav {min-height:60px;gap:10px}
  .nav nav {display:none}
  .brand {gap:6px}
  .regional-emblem {width:34px;height:31px}
  .brand span {padding-right:6px;font-size:8px}
  .brand strong {font-size:16px}
  .nav-button {font-size:11px;padding:8px 9px}
  .hero-inner {min-height:535px;padding:53px 0 75px}
  .hero-image:nth-child(1) {background-position:59% center}
  .hero-gallery {left:0;right:0;justify-content:space-between;gap:7px}
  .hero-deck {font-size:16px}
  .section {padding-block:50px}
  .section-head {align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:20px}
  .places,.planner,.coffee-feature {grid-template-columns:1fr}
  .coffee-photo {min-height:275px}
  .coffee-copy {padding:36px 19px}
  .zone-grid {grid-template-columns:1fr 1fr}
  .zone-grid a {font-size:20px;padding:12px}
  .foot {flex-direction:column;gap:14px}
  .filters button {padding:8px 11px}
}
@media(max-width:365px) {.brand strong {font-size:14px}.nav-button span {display:none}.button {padding:11px;font-size:13px}}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto}.hero-image {transition:none}}

.weather-section {padding-top:12px}
.weather-card {padding:25px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.weather-controls {display:flex;justify-content:space-between;align-items:end;gap:18px}
.weather-controls label,.weather-time span {display:block;margin-bottom:7px;font-size:13px;font-weight:800;color:var(--muted)}
.weather-controls select {width:100%;padding:10px 12px;border:1px solid #bec5b5;border-radius:6px;background:#f4f3e9;color:var(--ink)}
.weather-time {text-align:right}
.weather-time time {font:700 23px/1.2 var(--serif);color:var(--forest)}
.weather-forecast {margin-top:15px;overflow-x:auto}
.weather-forecast:empty {display:none}
.weather-forecast img {width:500px;max-width:none;height:120px;border:1px solid var(--line);border-radius:6px}
#weather-status,.weather-credit {font-size:13px;line-height:1.55;color:var(--muted)}
#weather-status:not(:empty),.weather-credit {margin-top:13px}
.weather-credit a {color:var(--forest);font-weight:700;text-decoration:underline}
@media(max-width:660px) {.weather-controls {flex-direction:column;align-items:stretch}.weather-time {text-align:left}.weather-card {padding:17px}}

.destination-search {max-width:490px;margin-bottom:14px}
.destination-search label {display:block;margin-bottom:7px;font-size:13px;font-weight:800}
.destination-search input {width:100%;padding:11px 13px;border:1px solid #bec5b5;border-radius:6px;background:var(--paper);color:var(--ink);font:inherit}
.trip-section {background:#e9ecdf}
.trip-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.trip-card {display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.trip-card img {aspect-ratio:2;object-fit:cover;height:auto}
.trip-copy {display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:10px;padding:18px}
.trip-copy h3 {font-size:clamp(24px,2.7vw,38px);line-height:1.04;letter-spacing:-.035em}
.trip-copy p:not(.eyebrow) {font-size:14px;line-height:1.55;color:var(--muted)}
.trip-copy .text-link {margin-top:auto;padding:8px 0 0;border:0;background:none;color:var(--forest);text-align:left}
.responsible-travel {border-top:1px solid #c6ccbc;margin-top:17px;padding-top:12px}
.responsible-travel summary {font-size:14px;font-weight:800;cursor:pointer}
.responsible-travel ul {margin-top:10px}
@media(max-width:760px) {.trip-grid {grid-template-columns:1fr}}
