:root {
  --ink: #152019;
  --deep: #0a120d;
  --forest: #254833;
  --forest-soft: #3f684d;
  --paper: #f4f2eb;
  --surface: #ffffff;
  --muted: #667168;
  --accent: #d99a3d;
  --accent-dark: #9b621d;
  --line: #dce1d9;
  --shadow: 0 24px 70px rgba(12, 31, 19, 0.13);
  --header-height: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body {
  margin: 0;
  padding-top: var(--header-height);
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Arial, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: var(--forest); }
button, input, select, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
h1, h2, h3, h4 {
  margin: 0 0 20px;
  font-family: "Barlow Condensed", Impact, sans-serif;
  line-height: 1;
  letter-spacing: .01em;
  text-transform: uppercase;
}
h1 { font-size: clamp(3.6rem, 8vw, 7.4rem); }
h2 { font-size: clamp(2.7rem, 5vw, 4.8rem); }
h3 { font-size: 1.75rem; }
p { margin: 0 0 22px; }

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100;
  padding: 12px 16px;
  background: var(--accent);
  color: var(--deep);
  font-weight: 800;
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: var(--header-height);
  color: #fff;
  background: rgba(8, 16, 11, .96);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
  backdrop-filter: blur(14px);
}
.nav-wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  color: var(--ink);
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-size: 1.08rem;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.site-header .brand, .brand.light { color: #fff; }
.brand-mark {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  background: linear-gradient(135deg, #e1a34b, #bb7728);
  color: #172016;
  font-weight: 800;
  letter-spacing: -.04em;
  box-shadow: 0 9px 24px rgba(0, 0, 0, .28);
}
.main-nav { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.main-nav > a, .nav-form button {
  flex: 0 0 auto;
  padding: 12px 10px;
  border: 0;
  border-radius: 4px;
  color: #dce3dc;
  background: transparent;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}
.main-nav > a:hover, .main-nav > a.active, .nav-form button:hover { color: #fff; background: rgba(255,255,255,.07); }
.main-nav .nav-cta {
  margin-left: 6px;
  padding: 13px 17px;
  color: #171d16;
  background: var(--accent);
}
.main-nav .nav-cta:hover { color: #111; background: #e8aa50; }
.nav-form { margin: 0; }
.menu-toggle { display: none; padding: 10px; border: 0; background: none; cursor: pointer; }
.menu-toggle span { display: block; width: 26px; height: 2px; margin: 5px; background: #fff; transition: transform .2s, opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero {
  --hero-image: url('../images/range/200m-overview-1280.webp');
  min-height: min(760px, calc(100vh - var(--header-height)));
  display: flex;
  align-items: center;
  color: #fff;
  background-image: linear-gradient(90deg, rgba(5,13,8,.96) 0%, rgba(8,24,14,.76) 43%, rgba(7,14,10,.13) 78%), url('../images/range/200m-overview.jpg');
  background-position: center;
  background-size: cover;
}
@supports (background-image: url('../images/range/200m-overview-1280.webp')) {
  .hero { background-image: linear-gradient(90deg, rgba(5,13,8,.96) 0%, rgba(8,24,14,.76) 43%, rgba(7,14,10,.13) 78%), var(--hero-image); }
}
.hero-content { padding: 104px 0; }
.hero h1 { max-width: 880px; text-wrap: balance; }
.hero h1 em { color: var(--accent); font-style: normal; }
.hero p { max-width: 640px; color: #dce2dc; font-size: 1.12rem; }
.eyebrow {
  display: block;
  margin-bottom: 20px;
  color: var(--accent);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.eyebrow.dark { color: var(--accent-dark); }
.actions, .contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 25px;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s, background-color .2s, border-color .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #171d16; background: var(--accent); box-shadow: 0 12px 30px rgba(0,0,0,.22); }
.btn-primary:hover { color: #111; background: #e8aa50; }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.05); }
.btn-secondary { color: var(--forest); border-color: var(--forest); background: transparent; }

.trust-strip { color: #fff; background: var(--deep); }
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust-grid div { padding: 27px 36px; border-left: 1px solid rgba(255,255,255,.12); }
.trust-grid div:last-child { border-right: 1px solid rgba(255,255,255,.12); }
.trust-grid strong, .trust-grid span { display: block; }
.trust-grid strong { font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.2rem; text-transform: uppercase; }
.trust-grid span { color: #9eaaa2; font-size: .82rem; }

.section { padding: 104px 0; }
.section.alt { background: #e8ebe4; }
.section-heading { max-width: 780px; margin-bottom: 44px; }
.section-heading p { color: var(--muted); font-size: 1.08rem; }
.split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: start; }
.lead { color: #526057; font-size: 1.12rem; }
.text-link, .cards a { color: var(--forest); font-weight: 800; text-decoration: none; }
.text-link:hover, .cards a:hover { text-decoration: underline; text-underline-offset: 4px; }
.feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.feature-grid article { padding: 34px; background: var(--surface); }
.feature-grid span, .card-no { color: var(--accent-dark); font: 700 1rem "Barlow Condensed", Impact, sans-serif; }
.feature-grid p, .cards p { color: var(--muted); font-size: .92rem; }

.range-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; background: var(--deep); }
.range-gallery a { min-height: 430px; position: relative; overflow: hidden; color: #fff; }
.range-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.range-gallery a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 42%, rgba(4,12,7,.92)); }
.range-gallery a:hover img { transform: scale(1.035); }
.range-gallery span { position: absolute; z-index: 2; left: 30px; bottom: 28px; display: grid; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.range-gallery strong { font: 700 2rem "Barlow Condensed", Impact, sans-serif; letter-spacing: 0; }

.visit-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: center; }
.visit-photo { min-height: 520px; width: 100%; object-fit: cover; box-shadow: var(--shadow); }
.visit-details { display: grid; gap: 14px; margin: 28px 0 32px; }
.visit-details div { padding: 16px 0; border-bottom: 1px solid #cdd5cb; }
.visit-details small, .contact small { display: block; color: var(--accent-dark); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

.cta { padding: 94px 0; color: #fff; text-align: center; background: radial-gradient(circle at 50% 0, rgba(63,104,77,.55), transparent 45%), var(--deep); }
.cta p { color: #aeb9b1; }

.page-hero { padding: 100px 0; position: relative; overflow: hidden; color: #fff; background: linear-gradient(135deg, var(--deep), var(--forest)); }
.page-hero::after { content: "JW"; position: absolute; right: -25px; bottom: -90px; color: rgba(255,255,255,.045); font: 700 18rem "Barlow Condensed", Impact, sans-serif; }
.page-hero h1 { max-width: 900px; font-size: clamp(3.4rem, 7vw, 6rem); text-wrap: balance; }
.page-hero p { max-width: 740px; color: #c1cbc3; font-size: 1.08rem; }
.panel { padding: 44px; color: #fff; background: var(--deep); box-shadow: var(--shadow); }
.tick-list, .facility-points { padding: 0; margin: 0; list-style: none; }
.tick-list li, .facility-points li { padding: 14px 0 14px 28px; position: relative; border-bottom: 1px solid rgba(255,255,255,.12); }
.tick-list li::before, .facility-points li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); }
.panel small { display: block; margin-top: 20px; color: #9eaaa2; }

.photo-story { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, 260px); gap: 14px; }
.photo-story figure { min-width: 0; margin: 0; position: relative; overflow: hidden; background: var(--deep); }
.photo-story figure:first-child { grid-row: 1 / 3; }
.photo-story img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.photo-story figure:hover img { transform: scale(1.025); }
.photo-story figcaption { position: absolute; inset: auto 0 0; padding: 28px 22px 18px; color: #fff; background: linear-gradient(transparent, rgba(4,12,7,.9)); font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.range-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.range-index a { display: flex; align-items: center; justify-content: space-between; min-height: 92px; padding: 22px 25px; color: var(--ink); background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(15,35,23,.06); text-decoration: none; }
.range-index strong { font: 700 1.45rem "Barlow Condensed", Impact, sans-serif; text-transform: uppercase; }
.range-index span { color: var(--accent-dark); font-weight: 800; }
.range-detail { display: grid; grid-template-columns: .7fr 1.3fr; gap: 55px; align-items: center; padding: 80px 0; border-bottom: 1px solid var(--line); }
.range-detail:last-child { border-bottom: 0; }
.range-detail.reverse .range-detail-copy { order: 2; }
.range-detail.reverse .range-detail-media { order: 1; }
.range-detail-copy p { color: var(--muted); }
.range-detail-copy .facility-points li { border-bottom-color: var(--line); }
.range-detail-media { display: grid; grid-template-rows: minmax(350px, 470px) 170px; gap: 10px; min-width: 0; }
.range-detail-media > img, .range-photo-grid img { width: 100%; height: 100%; object-fit: cover; }
.range-detail-media > img { box-shadow: var(--shadow); }
.range-photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; min-width: 0; }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cards article { min-height: 280px; padding: 38px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 12px 34px rgba(15,35,23,.07); }
.service-cards article { padding: 0; overflow: hidden; }
.service-cards img { width: 100%; height: 230px; object-fit: cover; }
.service-card-content { padding: 32px; }
.tag { display: inline-block; margin-bottom: 22px; padding: 4px 10px; border-radius: 99px; color: #754a12; background: #f4e5cc; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.notice { margin-top: 44px; padding: 24px; border-left: 4px solid var(--accent); background: #e4e9e2; font-weight: 600; }

.safety-visual { display: grid; grid-template-columns: 1.15fr .85fr; gap: 12px; min-height: 440px; }
.safety-visual img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.rules { max-width: 900px; }
.rules article { display: grid; grid-template-columns: 70px 1fr; gap: 25px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.rules strong { color: var(--accent-dark); font: 700 2rem "Barlow Condensed", Impact, sans-serif; }
.rules p { color: var(--muted); }

.contact > div { display: grid; gap: 5px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.contact a, .contact span { color: #fff; text-decoration: none; }
.contact a:hover { text-decoration: underline; text-underline-offset: 4px; }

.booking-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 72px; }
.booking-aside { margin-top: 35px; padding: 24px; background: #e4e9e2; }
.booking-aside ol { padding-left: 22px; }
.booking-form { padding: 42px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.eligibility { margin-bottom: 25px; padding: 18px; border-left: 4px solid var(--accent); background: #f6eddd; }
.eligibility p { margin: 5px 0 12px; font-size: .9rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.booking-form label { display: grid; gap: 7px; margin-bottom: 18px; font-size: .76rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.booking-form input, .booking-form select, .booking-form textarea { width: 100%; padding: 14px; border: 1px solid #bdc8c0; border-radius: 4px; background: #fbfcfa; color: var(--ink); font: 1rem Inter, Arial, sans-serif; letter-spacing: 0; text-transform: none; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { outline: 3px solid rgba(56,100,69,.18); border-color: var(--forest); }
.booking-form select:disabled { color: #7b867e; background: #eef1ed; cursor: not-allowed; }
.booking-form span[data-valmsg-for], .validation { color: #a33222; }
.booking-hours-note { grid-column: 1 / -1; margin: 0 0 10px; padding: 13px 15px; border-left: 3px solid var(--forest-soft); background: #edf2ed; color: var(--muted); font-size: .82rem; }
.booking-opening-hours { display: grid; gap: 4px; margin: 0 0 22px; }
.booking-opening-hours strong { margin-bottom: 2px; }
.consent { display: flex !important; align-items: flex-start; gap: 8px; font-weight: 400 !important; text-transform: none !important; }
.consent input { width: 18px; margin-top: 4px; }
.success { padding: 36px; border-left: 5px solid var(--forest); background: #e0ecdf; }
.success strong { font: 700 2rem "Barlow Condensed", Impact, sans-serif; text-transform: uppercase; }

.centered { justify-content: center; }
.section-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
.section-actions small { max-width: 520px; color: var(--muted); }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.review-grid article { padding: 34px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 34px rgba(15,35,23,.07); }
.review-grid p { color: var(--muted); }
.review-stars { display: block; margin-bottom: 20px; color: var(--accent-dark); letter-spacing: .16em; }

.selector-section { background: linear-gradient(135deg, #f6f5ef, #e4e9e2); }
.selector-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr); gap: 68px; align-items: start; }
.range-selector { display: grid; gap: 32px; margin-top: 38px; }
.range-selector fieldset { min-width: 0; padding: 0; border: 0; }
.range-selector legend { margin-bottom: 14px; font: 700 1.25rem "Barlow Condensed", Impact, sans-serif; text-transform: uppercase; }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.choice-grid label { cursor: pointer; }
.choice-grid input { position: absolute; opacity: 0; pointer-events: none; }
.choice-grid span { min-height: 125px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 20px; background: #fff; border: 2px solid transparent; box-shadow: 0 8px 24px rgba(15,35,23,.06); transition: border-color .2s, transform .2s, background-color .2s; }
.choice-grid label:hover span { transform: translateY(-2px); }
.choice-grid input:checked + span { border-color: var(--forest); background: #edf2ed; }
.choice-grid input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 3px; }
.choice-grid strong { font: 700 1.2rem "Barlow Condensed", Impact, sans-serif; text-transform: uppercase; }
.choice-grid small { color: var(--muted); line-height: 1.45; }
.range-selector select { width: 100%; padding: 15px; border: 1px solid #aebbb1; border-radius: 4px; background: #fff; color: var(--ink); }
.number-field { width: 190px; display: grid; grid-template-columns: 48px 1fr 48px; overflow: hidden; border: 1px solid #aebbb1; border-radius: 4px; background: #fff; }
.number-field button { border: 0; color: var(--forest); background: #edf1ec; font-size: 1.35rem; cursor: pointer; }
.number-field input { width: 100%; padding: 12px 4px; border: 0; text-align: center; -moz-appearance: textfield; }
.number-field input::-webkit-outer-spin-button, .number-field input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.selector-result { position: sticky; top: calc(var(--header-height) + 28px); padding: 44px; color: #fff; background: radial-gradient(circle at 100% 0, rgba(217,154,61,.2), transparent 34%), var(--deep); box-shadow: var(--shadow); }
.result-kicker { color: var(--accent); font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.result-distance { margin: 15px 0 2px; color: var(--accent); font: 700 clamp(4.6rem, 8vw, 7rem)/.9 "Barlow Condensed", Impact, sans-serif; }
.selector-result h3 { font-size: 2rem; }
.selector-result > p { color: #c1cbc3; }
.selector-result ul { padding: 0; margin: 24px 0; list-style: none; }
.selector-result li { padding: 11px 0 11px 25px; position: relative; border-bottom: 1px solid rgba(255,255,255,.12); }
.selector-result li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); }
.selector-result .result-note { padding: 14px; color: #d4ddd6; background: rgba(255,255,255,.07); font-size: .82rem; }
.range-caveat { margin-top: 25px; padding: 18px; border-left: 3px solid var(--accent); background: #f3eee4; font-size: .88rem; }

.journey-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; padding: 0; margin: 0; list-style: none; counter-reset: journey; }
.journey-grid li { min-width: 0; position: relative; padding: 0 24px 0 0; }
.journey-grid li::before { content: ""; position: absolute; top: 20px; right: 0; left: 48px; height: 1px; background: #bdc8bf; }
.journey-grid li:last-child::before { display: none; }
.journey-grid li > span { position: relative; z-index: 1; display: grid; width: 42px; height: 42px; margin-bottom: 25px; place-items: center; border-radius: 50%; color: #fff; background: var(--forest); font-size: .72rem; font-weight: 800; }
.journey-grid h3 { font-size: 1.35rem; }
.journey-grid p { color: var(--muted); font-size: .9rem; }
.indemnity-band { padding: 70px 0; color: #fff; background: linear-gradient(120deg, #17271c, #31573d); }
.indemnity-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: center; }
.indemnity-layout h2 { font-size: clamp(2.5rem, 5vw, 4.2rem); }
.indemnity-layout p { color: #c7d1ca; }
.indemnity-actions { display: grid; gap: 14px; justify-items: start; }
.indemnity-actions small { color: #b4c0b7; }
.visit-prep { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: start; }
.prep-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.prep-grid article { padding: 28px; background: #fff; border: 1px solid var(--line); }
.prep-grid article > span { color: var(--accent-dark); font: 700 1rem "Barlow Condensed", Impact, sans-serif; }
.prep-grid h3 { margin-top: 18px; }
.prep-grid p { color: var(--muted); font-size: .9rem; }
.visit-prep .panel h3:not(:first-child) { margin-top: 32px; }
.visit-prep .panel p { color: #bdc8c0; }

.map-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 68px; align-items: center; }
.facility-map { position: relative; overflow: hidden; background: var(--deep); box-shadow: var(--shadow); }
.facility-map img { width: 100%; aspect-ratio: 518 / 607; object-fit: cover; }
.map-pin { position: absolute; width: 48px; height: 48px; display: grid; place-items: center; padding: 0; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--forest); box-shadow: 0 8px 24px rgba(0,0,0,.4); font-size: .72rem; font-weight: 800; cursor: pointer; transform: translate(-50%, -50%); transition: transform .2s, background-color .2s; }
.map-pin:hover, .map-pin.active { z-index: 2; background: var(--accent-dark); transform: translate(-50%, -50%) scale(1.13); }
.map-pin.reception { left: 29.5%; top: 39.2%; }
.map-pin.range-20 { left: 51.7%; top: 19.9%; }
.map-pin.range-100 { left: 61%; top: 18.9%; }
.map-pin.range-200 { left: 83.2%; top: 67%; }
.map-detail { min-height: 180px; margin: 35px 0 18px; padding: 26px; background: #e7ece5; border-left: 4px solid var(--forest); }
.map-detail > span { color: var(--accent-dark); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.map-detail h3 { margin-top: 10px; }
.map-detail p { margin: 0; color: var(--muted); }
.map-note { color: var(--muted); }

.weather-section { color: #fff; background: radial-gradient(circle at 10% 0, rgba(63,104,77,.7), transparent 30%), #0b160e; }
.weather-heading { display: flex; justify-content: space-between; gap: 50px; align-items: end; margin-bottom: 40px; }
.weather-heading > div:first-child { max-width: 780px; }
.weather-heading p { color: #b8c3bb; }
.weather-updated { color: #aeb9b1; font-size: .78rem; text-align: right; }
.weather-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.weather-card { min-width: 0; padding: 20px 16px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); }
.weather-card.today { background: rgba(217,154,61,.14); border-color: rgba(217,154,61,.55); }
.weather-day { color: var(--accent); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.weather-condition { min-height: 44px; margin: 12px 0; color: #d9e0db; font-size: .82rem; }
.weather-temp { font: 700 2.2rem/1 "Barlow Condensed", Impact, sans-serif; }
.weather-temp small { color: #aeb9b1; font-size: 1.2rem; }
.weather-metrics { display: grid; gap: 7px; margin-top: 18px; color: #b8c3bb; font-size: .72rem; }
.weather-metrics strong { color: #fff; }
.weather-loading { grid-column: 1 / -1; padding: 35px; border: 1px solid rgba(255,255,255,.15); text-align: center; }
.weather-source { margin-top: 20px; color: #93a097; font-size: .72rem; }
.weather-source a { color: #c9d3cc; }

.weather-launcher { position: fixed; z-index: 40; right: 22px; bottom: 22px; min-width: 164px; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.22); border-radius: 6px; color: #fff; background: rgba(10,24,15,.96); box-shadow: 0 12px 36px rgba(0,0,0,.32); cursor: pointer; backdrop-filter: blur(12px); transition: transform .2s, background-color .2s; }
.weather-launcher:hover { background: var(--forest); transform: translateY(-2px); }
.weather-launcher:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.weather-launcher svg { width: 29px; height: 29px; fill: none; stroke: var(--accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.weather-launcher span { min-width: 0; display: grid; gap: 1px; text-align: left; }
.weather-launcher strong { font: 700 1.15rem "Barlow Condensed", Impact, sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.weather-launcher small { max-width: 108px; overflow: hidden; color: #b9c5bc; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.weather-dialog { width: min(790px, calc(100% - 30px)); max-height: calc(100vh - 30px); padding: 38px; overflow-y: auto; border: 1px solid rgba(255,255,255,.12); color: #fff; background: radial-gradient(circle at 100% 0, rgba(63,104,77,.75), transparent 34%), #0b160e; box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.weather-dialog::backdrop { background: rgba(2,8,4,.78); backdrop-filter: blur(5px); }
.weather-dialog-head { display: flex; justify-content: space-between; gap: 24px; align-items: start; }
.weather-dialog-head h2 { margin-top: 8px; font-size: clamp(2.2rem, 6vw, 3.6rem); }
.weather-dialog-head button { flex: 0 0 auto; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #fff; background: rgba(255,255,255,.07); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.weather-dialog-head button:hover { background: var(--forest); }
.weather-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 28px; }
.weather-summary-card { min-width: 0; padding: 20px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); }
.weather-summary-card.today { background: rgba(217,154,61,.14); border-color: rgba(217,154,61,.55); }
.weather-summary-card .weather-condition { min-height: 40px; }
.weather-summary-card .weather-temp { font-size: 2rem; }
.weather-dialog-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
.weather-dialog-actions small { max-width: 300px; color: #aeb9b1; }

.group-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.group-cards article { min-height: 300px; display: flex; flex-direction: column; justify-content: flex-end; padding: 36px; color: #fff; background: linear-gradient(160deg, #1a3021, #0a120d); box-shadow: var(--shadow); }
.group-cards article > span { margin-bottom: auto; color: var(--accent); font: 700 1.05rem "Barlow Condensed", Impact, sans-serif; }
.group-cards p { color: #b5c0b8; }
.group-offer { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.package-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; margin-top: 32px; background: #cbd3cc; border: 1px solid #cbd3cc; }
.package-facts div { padding: 28px; background: #fff; }
.package-facts small, .package-facts strong { display: block; }
.package-facts small { color: var(--accent-dark); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.package-facts strong { margin-top: 8px; font: 700 1.45rem "Barlow Condensed", Impact, sans-serif; text-transform: uppercase; }
.quote-steps { display: grid; gap: 14px; }
.quote-steps > div { display: grid; grid-template-columns: 55px 1fr; gap: 20px; padding: 24px; background: #fff; border: 1px solid var(--line); }
.quote-steps span { color: var(--accent-dark); font: 700 1.2rem "Barlow Condensed", Impact, sans-serif; }
.quote-steps p { margin: 0; color: var(--muted); }

.gallery-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.gallery-toolbar button { padding: 10px 17px; border: 1px solid #aebbb1; border-radius: 99px; color: var(--forest); background: transparent; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.gallery-toolbar button:hover, .gallery-toolbar button.active { color: #fff; background: var(--forest); border-color: var(--forest); }
.media-gallery { display: grid; grid-auto-flow: dense; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; gap: 10px; }
.gallery-item { min-width: 0; position: relative; overflow: hidden; padding: 0; border: 0; color: #fff; background: var(--deep); cursor: zoom-in; }
.gallery-item.gallery-wide { grid-column: span 2; }
.gallery-item.gallery-tall { grid-row: span 2; }
.gallery-item[hidden] { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.gallery-item::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(4,12,7,.9)); }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item span { position: absolute; z-index: 1; right: 18px; bottom: 16px; left: 18px; font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-align: left; text-transform: uppercase; }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.video-grid article { overflow: hidden; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 34px rgba(15,35,23,.07); }
.video-grid video { display: block; width: 100%; max-height: 680px; aspect-ratio: 9 / 16; object-fit: contain; background: var(--deep); }
.video-grid article > div { padding: 27px; }
.video-grid article span { color: var(--accent-dark); font: 700 .9rem "Barlow Condensed", Impact, sans-serif; }
.video-grid h3 { margin-top: 10px; }
.video-grid p { color: var(--muted); font-size: .9rem; }
.lightbox { width: min(1100px, calc(100% - 28px)); max-height: calc(100vh - 28px); padding: 0; overflow: visible; border: 0; background: transparent; }
.lightbox::backdrop { background: rgba(3,9,5,.92); backdrop-filter: blur(5px); }
.lightbox figure { margin: 0; }
.lightbox img { max-width: 100%; max-height: calc(100vh - 90px); margin: auto; object-fit: contain; box-shadow: 0 20px 70px rgba(0,0,0,.55); }
.lightbox figcaption { padding: 12px; color: #fff; text-align: center; }
.lightbox > button { position: absolute; z-index: 2; top: -12px; right: -12px; width: 44px; height: 44px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--forest); font-size: 1.5rem; cursor: pointer; }

.prose { max-width: 820px; }
.prose h2 { margin-top: 42px; font-size: 2.3rem; }
.prose p, .prose li { color: #4f5c53; }
.prose li { margin-bottom: 10px; }
.error-panel { max-width: 780px; padding: 44px; background: #fff; border-top: 5px solid var(--accent); box-shadow: var(--shadow); }
.error-panel code { overflow-wrap: anywhere; }

.site-footer { padding: 70px 0 24px; color: #aab4ad; background: #07100a; }
.footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 48px; }
.footer-grid > div { display: flex; flex-direction: column; gap: 9px; }
.footer-grid p { max-width: 440px; margin-top: 18px; }
.footer-grid h4 { margin-bottom: 8px; color: #fff; font-size: 1rem; }
.footer-grid a { color: #aab4ad; text-decoration: none; }
.footer-grid a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 18px; margin-top: 55px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 1280px) {
  .menu-toggle { display: block; }
  .main-nav {
    display: none;
    position: fixed;
    top: var(--header-height);
    right: 0;
    left: 0;
    max-height: calc(100vh - var(--header-height));
    padding: 20px;
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    background: var(--deep);
    box-shadow: 0 20px 45px rgba(0,0,0,.3);
  }
  .main-nav.open { display: flex; }
  .main-nav > a, .nav-form button { display: block; width: 100%; padding: 15px; text-align: left; }
  .main-nav .nav-cta { margin: 5px 0 0; text-align: center; }
}

@media (min-width: 1281px) {
  .hero { --hero-image: url('../images/range/200m-overview-1920.webp'); }
}

@media (max-width: 860px) {
  .trust-grid, .split, .cards, .booking-layout, .footer-grid, .visit-grid, .review-grid, .selector-layout, .indemnity-layout, .visit-prep, .map-layout, .group-offer { grid-template-columns: 1fr; }
  .trust-grid div { padding: 20px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .section { padding: 74px 0; }
  .split, .booking-layout, .visit-grid { gap: 40px; }
  .feature-grid { grid-template-columns: 1fr; }
  .range-gallery { grid-template-columns: 1fr; }
  .range-gallery a { min-height: 330px; }
  .visit-photo { min-height: 390px; }
  .photo-story { grid-template-columns: 1fr 1fr; grid-template-rows: 380px 240px; }
  .photo-story figure:first-child { grid-column: 1 / 3; grid-row: auto; }
  .range-index { grid-template-columns: 1fr; }
  .range-detail, .range-detail.reverse { grid-template-columns: 1fr; gap: 34px; padding: 58px 0; }
  .range-detail.reverse .range-detail-copy, .range-detail.reverse .range-detail-media { order: initial; }
  .safety-visual { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .booking-form { padding: 25px; }
  .footer-grid { gap: 34px; }
  .footer-bottom { flex-direction: column; }
  .selector-layout, .map-layout, .group-offer { gap: 42px; }
  .selector-result { position: static; }
  .journey-grid { grid-template-columns: 1fr; gap: 0; }
  .journey-grid li { display: grid; grid-template-columns: 56px 1fr; padding: 0 0 22px; }
  .journey-grid li::before { top: 42px; right: auto; bottom: 0; left: 21px; width: 1px; height: auto; }
  .journey-grid li > span { grid-row: 1 / 3; }
  .journey-grid h3 { margin-bottom: 8px; }
  .indemnity-layout { gap: 25px; }
  .weather-heading { align-items: start; flex-direction: column; gap: 10px; }
  .weather-updated { text-align: left; }
  .weather-grid { grid-template-columns: repeat(2, 1fr); }
  .weather-card:first-child { grid-column: 1 / -1; }
  .group-cards, .video-grid { grid-template-columns: 1fr; }
  .group-cards article { min-height: 250px; }
  .media-gallery { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .container { width: min(100% - 28px, 1180px); }
  .brand { font-size: .94rem; }
  .brand-mark { width: 40px; height: 40px; }
  .hero { --hero-image: url('../images/range/200m-overview-640.webp'); min-height: 680px; background-position: 58% center; }
  .hero-content { padding: 74px 0; }
  .hero h1 { font-size: clamp(3.1rem, 16vw, 4.2rem); }
  .actions, .contact-actions { flex-direction: column; align-items: stretch; }
  .page-hero { padding: 76px 0; }
  .panel, .error-panel { padding: 28px; }
  .photo-story { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(3, 260px); }
  .photo-story figure:first-child { grid-column: auto; }
  .range-detail-media { grid-template-rows: 320px auto; }
  .range-photo-grid { grid-template-columns: 1fr; }
  .range-photo-grid img { height: 230px; }
  .rules article { grid-template-columns: 50px 1fr; gap: 16px; }
  .service-cards img { height: 210px; }
  .choice-grid, .prep-grid, .package-facts { grid-template-columns: 1fr; }
  .choice-grid span { min-height: 96px; }
  .selector-result { padding: 30px; }
  .facility-map .map-pin { width: 40px; height: 40px; font-size: .62rem; }
  .weather-grid { grid-template-columns: 1fr; }
  .weather-card:first-child { grid-column: auto; }
  .weather-launcher { right: 14px; bottom: 14px; min-width: 0; padding: 11px; }
  .weather-launcher span { display: none; }
  .weather-dialog { padding: 26px 20px; }
  .weather-summary { grid-template-columns: 1fr; }
  .weather-summary-card:not(:first-child) { display: grid; grid-template-columns: 1.2fr 1fr; gap: 5px 16px; align-items: center; }
  .weather-summary-card:not(:first-child) .weather-condition, .weather-summary-card:not(:first-child) .weather-metrics { min-height: 0; margin: 0; }
  .media-gallery { display: grid; grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .gallery-item.gallery-wide { grid-column: auto; }
  .gallery-item.gallery-tall { grid-row: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
