:root {
  --ink: #17231c;
  --forest: #173f2c;
  --forest-dark: #0d2a1c;
  --moss: #5f7f58;
  --leaf: #b8d28d;
  --mist: #eef2ed;
  --paper: #fbfcf9;
  --white: #fff;
  --line: #d8e0d8;
  --muted: #617067;
  --max: 1180px;
  --reading: 760px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); line-height: 1.65; }
body.modal-open { overflow: hidden; }
body, button, input { font: inherit; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #96bf70; outline-offset: 3px; }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .7rem 1rem; background: var(--white); color: var(--forest-dark); }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.reading-width { width: min(calc(100% - 2rem), var(--reading)); margin-inline: auto; }

.site-header { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--paper) 92%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--line) 80%, transparent); backdrop-filter: blur(16px); }
.header-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .72rem; color: var(--forest-dark); text-decoration: none; }
.brand-symbol { width: 46px; height: 46px; display: grid; flex: 0 0 46px; place-items: center; overflow: hidden; }
.brand-symbol img { width: 100%; height: 100%; object-fit: contain; }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-size: 1.02rem; font-weight: 900; }
.brand-copy small { margin-top: .38rem; color: var(--muted); font-size: .64rem; font-weight: 650; }
.site-nav { display: flex; align-items: center; gap: 2rem; }
.site-nav a { color: var(--forest-dark); font-size: .92rem; font-weight: 700; text-decoration: none; }
.site-nav a:hover { color: var(--moss); }
.language-switch { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.language-switch a { color: inherit; opacity: .55; text-decoration: none; }
.language-switch a[aria-current="page"] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.nav-cta, .button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .5rem; padding: .7rem 1.1rem; border: 1px solid var(--forest); background: var(--forest); color: var(--white) !important; font-weight: 800; text-decoration: none; }
.button.secondary { background: transparent; color: var(--forest) !important; }
.menu-button { display: none; width: 44px; height: 44px; border: 1px solid var(--line); background: transparent; color: var(--forest-dark); cursor: pointer; }
.menu-button span, .menu-button::before, .menu-button::after { display: block; width: 20px; height: 2px; margin: 4px auto; content: ""; background: currentColor; }

.home-hero { min-height: min(780px, calc(100svh - 84px)); display: grid; align-items: end; position: relative; isolation: isolate; color: var(--white); background: url('/images/cholomon-mountain.jpg') center 58% / cover no-repeat; }
.home-hero::after { position: absolute; inset: 0; z-index: -1; content: ""; background: linear-gradient(90deg, rgba(5, 20, 12, .86) 0%, rgba(5, 20, 12, .48) 52%, rgba(5, 20, 12, .12) 100%); }
.hero-copy { max-width: 790px; padding-block: clamp(4rem, 11vh, 8rem); animation: rise .7s ease-out both; }
.eyebrow { display: block; margin-bottom: .9rem; color: var(--leaf); font-size: .76rem; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
.hero-copy h1 { max-width: 790px; margin: 0 0 1.2rem; font-family: Georgia, "Times New Roman", serif; font-size: 5.1rem; font-weight: 500; line-height: .98; }
.hero-copy p { max-width: 620px; margin: 0 0 2rem; font-size: 1.18rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.home-hero .button.secondary { border-color: rgba(255,255,255,.72); color: var(--white) !important; }

.statement { padding: clamp(4.5rem, 9vw, 8rem) 0; background: var(--forest-dark); color: var(--white); }
.statement h2 { max-width: 950px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 3.8rem; font-weight: 400; line-height: 1.12; }
.statement em { color: var(--leaf); font-style: normal; }
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.3rem; border-bottom: 1px solid var(--line); padding-bottom: 1.1rem; }
.section-header h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 3.25rem; font-weight: 500; line-height: 1.05; }
.section-header p { max-width: 540px; margin: 0; color: var(--muted); }

.services-list { border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr) auto; align-items: center; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: color .2s, padding .2s; }
.service-row:hover { padding-left: .75rem; color: var(--forest); }
.service-row strong { font-family: Georgia, "Times New Roman", serif; font-size: 2.2rem; font-weight: 500; }
.service-row span { color: var(--muted); }
.service-row b { font-size: 1.5rem; }

.post-strip { display: grid; grid-auto-columns: minmax(280px, 38%); grid-auto-flow: column; gap: 1.25rem; overflow-x: auto; padding: 0 0 1.25rem; scroll-snap-type: x mandatory; }
.post-card { min-width: 0; color: inherit; text-decoration: none; scroll-snap-align: start; }
.post-card-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mist); }
.post-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.post-card:hover img { transform: scale(1.035); }
.post-card-body { padding: 1.1rem 0 1.4rem; }
.post-card .category { color: var(--moss); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.post-card h2, .post-card h3 { margin: .45rem 0 .55rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 1.65rem; font-weight: 700; line-height: 1.15; }
.post-card p { margin: 0; color: var(--muted); display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

.blog-page { font-family: Roboto, Arial, Helvetica, sans-serif; }
.blog-hero { padding: 5.5rem 0 4.5rem; background: var(--forest-dark); color: var(--white); }
.blog-hero-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); align-items: end; gap: 3rem; }
.blog-hero h1 { max-width: 850px; margin: 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 5.5rem; font-weight: 900; line-height: 1.08; }
.blog-hero h1 em { color: var(--leaf); font-style: normal; }
.blog-intro { padding-bottom: .55rem; }
.blog-intro > span { display: block; margin-bottom: 1rem; color: var(--leaf); font-size: .72rem; font-weight: 900; }
.blog-hero .blog-intro p { max-width: 470px; margin: 0; color: #dce8de; font-size: 1.02rem; }
.blog-tools { display: grid; grid-template-columns: minmax(280px, 470px) minmax(0, 1fr); align-items: end; gap: 2rem 3rem; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.2); }
.blog-search, .blog-filter-group { display: grid; gap: .7rem; }
.blog-search > span, .blog-filter-group > span { color: #b8c9bd; font-size: .7rem; font-weight: 900; }
.search-field { width: 100%; min-height: 50px; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.38); border-radius: 0; background: transparent; color: var(--white); }
.search-field::placeholder { color: #c6d2c9; }
.filters { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .55rem; }
.filter { min-height: 42px; padding: .55rem .85rem; border: 1px solid rgba(255,255,255,.35); background: transparent; color: var(--white); cursor: pointer; }
.filter { white-space: nowrap; }
.filter[aria-pressed="true"] { border-color: var(--leaf); background: var(--leaf); color: var(--forest-dark); }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem 1.4rem; }
.empty-state { grid-column: 1 / -1; padding: 4rem 0; text-align: center; color: var(--muted); }

.article-hero { padding: clamp(4rem, 9vw, 7rem) 0 2.5rem; background: var(--forest-dark); color: var(--white); }
.article-hero .reading-width { margin-inline: auto; }
.article-hero h1 { margin: .6rem 0 1.3rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 4.6rem; font-weight: 900; line-height: 1.08; }
.article-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; color: #cfdbd1; font-size: .9rem; }
.article-cover { width: min(calc(100% - 2rem), 1040px); max-height: 620px; aspect-ratio: 16 / 9; margin: -1px auto 0; object-fit: cover; }
.article-body { padding: clamp(3rem, 7vw, 6rem) 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 1.18rem; line-height: 1.78; }
.article-body h2, .article-body h3 { margin: 2.4em 0 .65em; color: var(--forest-dark); font-family: Roboto, Arial, Helvetica, sans-serif; font-weight: 800; line-height: 1.18; }
.article-body h2 { font-size: 2.35rem; }
.article-body h3 { font-size: 1.7rem; }
.article-body p, .article-body ul, .article-body ol, .article-body blockquote { margin: 0 0 1.35em; }
.article-body a { color: #245f42; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-body img { width: 100%; height: auto; margin: 2.1rem 0 .5rem; }
.article-body blockquote { margin-inline: 0; padding: .4rem 0 .4rem 1.5rem; border-left: 4px solid var(--moss); color: #405247; font-style: italic; }
.article-body .image-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.article-body .image-gallery img { margin: 0; height: 100%; object-fit: cover; }
.article-share { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: 1.5rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.article-share strong { margin-right: .5rem; }
.share-link { padding: .45rem .7rem; border: 1px solid var(--line); color: var(--forest); font-family: Roboto, Arial, Helvetica, sans-serif; font-size: .82rem; font-weight: 800; text-decoration: none; }

.cta-band { padding: 4rem 0; background: var(--leaf); color: var(--forest-dark); }
.cta-band .container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-band h2 { max-width: 700px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 3.2rem; font-weight: 500; line-height: 1.08; }
.site-footer { padding: 3rem 0; background: var(--forest-dark); color: #d8e2da; }
.footer-inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; }
.footer-brand { color: var(--white); }
.footer-brand .brand-symbol { padding: 5px; background: var(--leaf); }
.footer-brand .brand-copy small { color: #b8c7bc; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1.2rem; }
.footer-links a { color: inherit; font-size: .88rem; }
.copyright { margin: 1.5rem 0 0; color: #9fb1a4; font-size: .82rem; }

.not-found { min-height: 70svh; display: grid; place-items: center; text-align: center; }
.not-found h1 { margin: 0; font-family: Georgia, serif; font-size: 10rem; color: var(--forest); line-height: 1; }

.service-hero { min-height: 610px; display: grid; align-items: end; position: relative; isolation: isolate; background: var(--service-image) center / cover no-repeat; color: var(--white); }
.service-hero::after { position: absolute; inset: 0; z-index: -1; content: ""; background: linear-gradient(90deg, rgba(5, 20, 12, .88), rgba(5, 20, 12, .32) 72%, rgba(5, 20, 12, .16)); }
.service-hero-copy { padding-block: 5rem; }
.service-hero h1 { max-width: 840px; margin: 0 0 1rem; font-family: Georgia, "Times New Roman", serif; font-size: 5rem; font-weight: 500; line-height: 1; }
.service-hero p { max-width: 650px; margin: 0 0 2rem; font-size: 1.15rem; }
.button.light { border-color: var(--white); background: var(--white); color: var(--forest-dark) !important; }
.service-hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.service-hero-actions .button { margin: 0; }
button.button { font: inherit; cursor: pointer; }
.eco-guide-page { background: #fff; color: #173f2c; }
.eco-hero { min-height: 52svh; }
.eco-story { padding: 3.5rem 0; background: #fff; }
.eco-story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.eco-story .eyebrow { color: #68815f; }
.eco-story p { margin: .7rem 0 0; font-family: inherit; font-size: 1.15rem; line-height: 1.55; }
.eco-facets { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.eco-facet { padding: 0; background: transparent; border: 0; }
.eco-facet span { display: flex; width: 40px; height: 40px; align-items: center; justify-content: center; margin-bottom: .6rem; border-radius: .7rem; background: #eef6e3; color: #173f2c; font-size: .72rem; font-weight: 900; }
.eco-facet h3 { margin: 0 0 .45rem; font-family: Roboto, Arial, sans-serif; font-size: 1.05rem; font-weight: 800; line-height: 1.25; }
.eco-facet p { margin: 0; color: #5c6b64; font-family: inherit; font-size: .92rem; line-height: 1.5; }
.eco-walks { padding: 3rem 0 4rem; background: #fff; }
.eco-walk { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.5rem; align-items: start; margin-top: 1.25rem; padding: 1.25rem; border: 1px solid #e6e6e6; border-radius: 12px; background: #fff; }
.eco-walk-media { position: relative; min-height: 180px; overflow: hidden; border-radius: 10px; }
.eco-walk-media img, .eco-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco-gallery { margin-top: 1rem; }
.eco-gallery img { max-height: 420px; border-radius: 12px; }
.eco-walk-copy { display: grid; gap: .55rem; align-content: start; padding: 0; }
.eco-walk-copy h2 { margin: 0; font-family: Roboto, Arial, sans-serif; font-size: 1.35rem; font-weight: 800; line-height: 1.25; }
.eco-walk-copy > p { margin: 0; color: #5c6b64; font-size: 1rem; }
.eco-walk-from { margin: .2rem 0 0; font-weight: 800; }
.eco-specs, .eco-checks { margin: 0; padding: 0; list-style: none; }
.eco-specs li { margin: 0 0 .35rem; color: #5c6b64; font-size: .92rem; }
.eco-checks li { position: relative; padding-left: 1.35rem; margin: 0 0 .35rem; }
.eco-checks li::before { position: absolute; left: 0; color: #2f7a3e; font-weight: 900; content: "✓"; }
.eco-cancel { margin: 0; color: #5c6b64; font-size: .88rem; }
.eco-walk-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .2rem; }
.eco-guide-page .eco-btn, .eco-guide-page .eco-btn-ghost, .eco-guide-page .button.light { min-height: 50px; padding: .8rem 1.3rem; border-radius: 999px; font-weight: 900; }
.eco-guide-page .eco-btn { border: 0; background: var(--leaf); color: var(--forest-dark) !important; box-shadow: 5px 5px 0 var(--forest-dark); transform: rotate(-1.6deg); }
.eco-guide-page .eco-btn:hover { transform: rotate(1.2deg) translateY(-2px); filter: none; }
.eco-guide-page .eco-btn-ghost { border: 2px solid var(--forest-dark); background: #fff; color: var(--forest-dark) !important; box-shadow: 4px 4px 0 var(--leaf); transform: rotate(1.4deg); }
.eco-guide-page .eco-btn-ghost:hover { background: var(--leaf); }
.eco-guide-page .button.light { border: 2px solid #fff; background: #fff; color: var(--forest-dark) !important; box-shadow: 4px 4px 0 var(--leaf); transform: rotate(1.2deg); }
.eco-guide-page .standard-contact { min-width: 0; border: 0; border-radius: 999px; background: var(--leaf); color: var(--forest-dark); box-shadow: 4px 4px 0 var(--forest-dark); transform: rotate(-1.2deg); }
.eco-guide-page .standard-contact:hover { background: #fff; color: var(--forest-dark); }
.eco-guide-page .standard-header .header-inner { min-height: 108px; }
.eco-guide-page .standard-logo, .eco-guide-page .standard-footer-logo { display: flex; width: auto; height: auto; flex: 0 0 auto; align-items: flex-start; gap: .45rem; overflow: visible; text-decoration: none; color: var(--forest-dark); }
.eco-guide-page .standard-logo img { width: 72px; height: 72px; flex: 0 0 72px; }
.eco-guide-page .standard-footer-logo img { width: 72px; height: 72px; flex: 0 0 72px; }
.eco-guide-page .standard-footer-inner { grid-template-columns: max-content minmax(0, 1fr) auto; align-items: center; }
.eco-treewalks { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .12rem; margin-top: .12rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 500; letter-spacing: -.02em; line-height: 1; white-space: nowrap; transform: rotate(-3.5deg); }
.eco-treewalks em { color: #5a8f32; font-style: italic; }
.eco-prints { width: 7.4rem; height: 1.15rem; overflow: visible; }
.eco-trail-draw { fill: none; stroke-dasharray: 1; stroke-dashoffset: 1; animation: eco-trail-draw 2.4s linear infinite; }
@keyframes eco-trail-draw {
  0% { stroke-dashoffset: 1; }
  72% { stroke-dashoffset: 0; }
  86% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 1; }
}
.eco-booking-hero { padding: 2rem 0 0; background: #fff; }
.eco-booking-hero h1 { margin: .4rem 0 .35rem; font-family: Roboto, Arial, sans-serif; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; }
.eco-meta-line { margin: 0 0 1rem; color: #5c6b64; }
.eco-booking-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: start; }
.eco-booking-lead { max-width: none; font-size: 1.05rem; color: #5c6b64; }
.eco-booking-details { display: grid; gap: .9rem; }
.eco-meta-line a { color: inherit; font-weight: 800; }
.eco-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.2rem; margin: .4rem 0 1rem; }
.eco-facts article { padding-top: .2rem; }
.eco-facts strong { display: block; margin-bottom: .2rem; font-size: .95rem; }
.eco-facts p { margin: 0; color: #5c6b64; font-size: .9rem; }
.eco-loved { display: grid; gap: .7rem; padding: 1rem 0 1.2rem; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.eco-loved ul { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.eco-loved-card { padding: .85rem; border: 1px solid #eee; border-radius: 12px; background: #fff; }
.eco-loved-card p { margin: .35rem 0 .55rem; }
.eco-loved a { font-weight: 800; color: var(--forest-dark); }
.eco-stars { color: #c45c26; letter-spacing: .08em; font-size: .9rem; }
.eco-reviews { padding: 2.5rem 0 4rem; background: #f7f7f7; }
.eco-review-score { margin: .3rem 0 1.2rem; color: #5c6b64; }
.eco-review-list { display: grid; gap: 1rem; }
.eco-review { padding: 1.1rem 1.2rem; border-radius: 12px; background: #fff; }
.eco-review-head { display: flex; gap: .7rem; align-items: center; margin-bottom: .45rem; }
.eco-review-head p { margin: .15rem 0 0; color: #5c6b64; font-size: .85rem; }
.eco-avatar { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #a1d99b; color: #173f2c; font-weight: 800; }
.eco-booking-details h2 { margin: .4rem 0 0; font-family: Roboto, Arial, sans-serif; font-size: 1.1rem; font-weight: 800; }
.eco-booker { position: sticky; top: 5.5rem; display: grid; gap: .75rem; max-width: none; padding: 1.15rem 1.15rem 1.2rem; border: 1px solid #e6e6e6; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.eco-booker-price { margin: 0 .15rem .2rem; font-family: inherit; font-size: 1.05rem; font-weight: 700; }
.eco-booker-price strong { font-size: 1.35rem; }
.eco-booker-stack { display: grid; gap: .65rem; }
.eco-booker-select { display: grid; grid-template-columns: 1.4rem 1fr auto; align-items: center; gap: .7rem; min-height: 52px; padding: 0 .95rem; border: 0; border-radius: 12px; background: #f3f3f3; color: #1a1a1a; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.eco-booker-icon { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; color: #333; }
.eco-booker-icon svg { width: 100%; height: 100%; }
.eco-booker-caret { width: .55rem; height: .55rem; border-right: 2px solid #666; border-bottom: 2px solid #666; transform: rotate(45deg) translate(-2px, -2px); }
.eco-booker-lang { position: relative; }
.eco-booker-lang select { grid-column: 2; width: 100%; border: 0; background: transparent; font: inherit; font-weight: 600; appearance: none; cursor: pointer; }
.eco-check-btn { width: 100%; min-height: 54px; border: 0; border-radius: 999px; background: #1a73e8; color: #fff !important; font-weight: 800; box-shadow: none; transform: none; }
.eco-guide-page .eco-check-btn { min-height: 54px; border-radius: 999px; background: #1a73e8; color: #fff !important; box-shadow: none; transform: none; }
.eco-guide-page .eco-check-btn:hover { transform: none; background: #1558b0; filter: none; }
.eco-people-pop { padding: .85rem 1rem; border: 1px solid #eee; border-radius: 12px; background: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.08); }
.eco-people-pop p { margin: 0 0 .55rem; font-weight: 700; }
.eco-stepper { display: flex; align-items: center; gap: .8rem; }
.eco-stepper button { width: 36px; height: 36px; border: 1px solid #ccc; border-radius: 50%; background: #fff; font-size: 1.2rem; cursor: pointer; }
.eco-stepper span { min-width: 1.5rem; text-align: center; font-weight: 800; }
.eco-booker-details { display: grid; gap: .75rem; }
.eco-cal-layer { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1rem; background: rgba(20,24,28,.28); }
.eco-cal { position: relative; width: min(720px, 100%); padding: 1.4rem 1.2rem 1.2rem; border-radius: 16px; background: #fff; box-shadow: 0 18px 48px rgba(0,0,0,.18); }
.eco-cal-nav { position: absolute; top: 1.15rem; z-index: 1; width: 36px; height: 36px; border: 0; background: transparent; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.eco-cal-next { right: .8rem; left: auto; }
.eco-cal-nav:first-of-type { left: .8rem; }
.eco-cal-months { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.eco-cal-month h3 { margin: 0 0 .85rem; text-align: center; font-size: 1.05rem; }
.eco-cal-week { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: .35rem; color: #8a8a8a; font-size: .72rem; font-weight: 700; text-align: center; }
.eco-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .15rem; }
.eco-cal-day { min-height: 36px; border: 0; background: transparent; font: inherit; font-weight: 600; }
.eco-cal-day[disabled] { color: #c8c8c8; text-decoration: line-through; cursor: default; }
.eco-cal-day:not([disabled]) { cursor: pointer; color: #111; }
.eco-cal-day.is-selected, .eco-cal-day:not([disabled]):hover { border-radius: 50%; background: #eef4ff; }
.eco-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.eco-field, .eco-play-form .eco-field-wide { display: grid; gap: .35rem; font-size: .85rem; font-weight: 700; letter-spacing: 0; text-transform: none; }
.eco-field-wide { grid-column: 1 / -1; }
.eco-field input, .eco-field select, .eco-field textarea, .eco-play-form input, .eco-play-form select, .eco-play-form textarea { width: 100%; padding: .75rem .85rem; border: 0; border-radius: 10px; background: #f4f4f4; font: inherit; text-transform: none; letter-spacing: 0; font-weight: 500; }
.eco-field input:focus, .eco-field select:focus, .eco-field textarea:focus { outline: 2px solid #b8d28d; outline-offset: 1px; }
.eco-pay { display: grid; gap: .5rem; margin: .4rem 0; border: 0; padding: 0; }
.eco-pay legend { margin-bottom: .3rem; font-size: .85rem; font-weight: 800; }
.eco-pay-card { display: flex; gap: .6rem; align-items: center; padding: .7rem .8rem; border: 1px solid #e6e6e6; border-radius: 10px; background: #fff; cursor: pointer; font-weight: 600; }
.eco-pay-card:has(input:checked) { border-color: #173f2c; background: #f4f8ef; }
.eco-plan-panel { position: relative; border-radius: 12px; background: #fff; box-shadow: none; }
.eco-steps { padding: 3.5rem 0; background: #f7f7f7; color: #173f2c; }
.eco-steps .eyebrow { color: #68815f; }
.eco-steps ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.eco-steps li { padding-right: 1rem; }
.eco-steps span { display: block; color: #68815f; font-size: .76rem; font-weight: 900; }
.eco-steps strong { display: block; margin: 1.2rem 0 .6rem; font-family: Roboto, Arial, sans-serif; font-size: 1.2rem; font-weight: 800; color: #173f2c; }
.eco-steps p { margin: 0; color: #5c6b64; }
.eco-cta { background: #eef6e3; }
.tour-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin: 1rem 0; padding: 0; list-style: none; font-size: .92rem; }
.booking-form { display: grid; gap: 1rem; max-width: 560px; padding: 2rem; background: #fff; border-radius: 1.5rem; box-shadow: 0 16px 36px rgba(23, 63, 44, .07); }
.booking-form.eco-booker { max-width: none; padding: 1.25rem; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.booking-form label { display: grid; gap: .4rem; font-weight: 700; }
.booking-form input, .booking-form select { width: 100%; padding: .8rem; border: 1px solid #bcc5bf; font: inherit; }
.pay-mode { display: grid; gap: .6rem; border: 0; padding: 0; }
.pay-mode label { font-weight: 600; }
.booking-privacy { color: #4a5b52; font-size: .9rem; }
.booking-page .service-intro { background: #f6f5ef; }
.service-intro { padding: 5.5rem 0; background: var(--leaf); }
.service-intro .eyebrow { color: var(--forest); }
.service-intro p { max-width: 1000px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 2.55rem; line-height: 1.25; }
.service-details { border-top: 1px solid var(--line); }
.service-detail { display: grid; grid-template-columns: 70px minmax(240px, .8fr) minmax(280px, 1fr); gap: 1.5rem 2.5rem; align-items: start; padding: 2.2rem 0; border-bottom: 1px solid var(--line); }
.service-index { color: var(--moss); font-size: .78rem; font-weight: 900; }
.service-detail h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 2rem; font-weight: 500; line-height: 1.15; }
.service-detail p { margin: 0; color: var(--muted); }
.process-band { padding: 4.5rem 0; background: var(--forest-dark); color: var(--white); }
.process-band .container { display: grid; grid-template-columns: repeat(3, 1fr); }
.process-band .container > div { min-height: 220px; padding: 0 2.2rem; border-left: 1px solid rgba(255,255,255,.2); }
.process-band .container > div:first-child { padding-left: 0; border-left: 0; }
.process-band span { display: block; color: var(--leaf); font-size: .76rem; font-weight: 900; }
.process-band strong { display: block; margin: 2.5rem 0 .7rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 500; }
.process-band p { max-width: 300px; margin: 0; color: #c6d4c9; }

[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
[data-reveal][data-visible="true"] { opacity: 1; transform: none; }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } }

.standard-header { background: #fff; }
.standard-header .header-inner { min-height: 92px; }
.standard-logo { width: 82px; height: 82px; display: block; flex: 0 0 82px; overflow: hidden; }
.standard-logo img { width: 100%; height: 100%; object-fit: contain; }
.standard-header .site-nav { margin-left: auto; flex: 0 1 auto; }
.standard-contact { min-width: 142px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: .65rem 1.25rem; border: 1px solid var(--forest-dark); background: var(--forest-dark); color: #fff; font-weight: 800; text-decoration: none; white-space: nowrap; }
.standard-contact:hover { background: transparent; color: var(--forest-dark); }
.standard-footer { padding: 3rem 0; border-top: 1px solid #dfe3da; background: #f5f3e9; color: #24352b; }
.standard-footer-inner { display: grid; grid-template-columns: 78px minmax(200px, 1fr) auto; align-items: center; gap: 1.5rem 2rem; }
.standard-footer-logo { width: 72px; height: 72px; display: block; overflow: hidden; }
.standard-footer-logo img { width: 100%; height: 100%; object-fit: contain; }
.standard-footer strong { font-size: .9rem; }
.standard-footer p { margin: .25rem 0 0; color: #69746d; font-size: .82rem; }
.standard-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem 1.2rem; }
.standard-footer nav a { color: #31463a; font-size: .82rem; font-weight: 750; }
.standard-footer small { grid-column: 2 / -1; color: #7b867f; font-size: .72rem; }

@media (max-width: 820px) {
  .menu-button { display: block; }
  .site-nav { position: absolute; inset: 84px 0 auto; display: none; align-items: stretch; gap: 0; padding: .6rem 1rem 1rem; border-bottom: 1px solid var(--line); background: var(--paper); }
  .site-nav[data-open] { display: grid; }
  .site-nav a { min-height: 48px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
  .site-nav .nav-cta { margin-top: .6rem; justify-content: center; border-bottom: 0; }
  .standard-contact { display: none; }
  .standard-header .site-nav { inset: 92px 0 auto; margin: 0; }
  .section-header, .cta-band .container { align-items: flex-start; flex-direction: column; }
  .service-row { grid-template-columns: 1fr auto; gap: .5rem 1rem; }
  .service-row span { grid-column: 1 / -1; }
  .service-detail { grid-template-columns: 52px 1fr; }
  .service-detail p { grid-column: 2; }
  .process-band .container { grid-template-columns: 1fr; }
  .process-band .container > div { min-height: auto; padding: 1.8rem 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.2); }
  .process-band .container > div:first-child { border-top: 0; }
  .process-band strong { margin-top: 1rem; }
  .post-strip { grid-auto-columns: minmax(270px, 82%); }
  .blog-tools { grid-template-columns: 1fr; }
  .blog-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
  .filters { justify-content: flex-start; }
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .brand-copy small { display: none; }
  .brand-symbol { width: 40px; height: 40px; flex-basis: 40px; }
  .home-hero { min-height: calc(100svh - 84px); background-position: 56% center; }
  .hero-copy h1 { font-size: 2.65rem; }
  .hero-copy p { font-size: 1rem; }
  .statement h2 { font-size: 2.25rem; }
  .section-header h2 { font-size: 2.25rem; }
  .service-row strong { font-size: 1.6rem; }
  .blog-hero h1 { font-size: 3.25rem; }
  .article-hero h1 { font-size: 2.65rem; }
  .article-body { font-size: 1.08rem; }
  .article-body h2 { font-size: 1.75rem; }
  .article-body h3 { font-size: 1.4rem; }
  .cta-band h2 { font-size: 2.1rem; }
  .not-found h1 { font-size: 6rem; }
  .service-hero { min-height: 560px; }
  .service-hero h1 { font-size: 3rem; }
  .service-hero p { font-size: 1rem; }
  .service-intro { padding: 4rem 0; }
  .service-intro p { font-size: 1.85rem; }
  .service-detail { grid-template-columns: 40px 1fr; gap: 1rem; }
  .service-detail h2 { font-size: 1.55rem; }
  .blog-grid { grid-template-columns: 1fr; }
  .article-body .image-gallery { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
  .standard-footer-inner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .eco-guide-page .standard-footer-inner { grid-template-columns: 1fr; }
  .eco-guide-page .standard-footer-logo { justify-content: center; }
  .standard-footer nav { justify-content: center; }
  .standard-footer small { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .eco-trail-draw { animation: none; stroke-dashoffset: 0; }
}

/* Landing page: matched to the supplied interaction recording. */
.landing-page { background: #fff; color: #555; font-family: Roboto, Arial, Helvetica, sans-serif; }
.landing-page.modal-open { overflow: hidden; }
.landing-page .container { width: min(calc(100% - 60px), 1200px); }
.landing-page .site-header { position: fixed; inset: 0 0 auto; min-height: 0; padding: 20px 0; border: 0; background: transparent; color: #fff; backdrop-filter: none; transition: background-color .4s ease, padding .4s ease, box-shadow .4s ease; }
.landing-page .site-header.is-scrolled { padding: 10px 0; background: #fff; color: #333; box-shadow: 0 2px 8px rgba(0, 0, 0, .1); }
.landing-page .header-inner { min-height: 100px; }
.landing-logo { width: 105px; height: 100px; display: block; flex: 0 0 105px; transition: transform .3s ease; }
.landing-logo:hover { transform: scale(1.04); }
.landing-logo img { width: 100%; height: 100%; object-fit: contain; }
.landing-logo .logo-dark { display: none; }
.landing-header.is-scrolled .logo-light { display: none; }
.landing-header.is-scrolled .logo-dark { display: block; }
.landing-page .landing-nav { display: flex; flex: 1; justify-content: center; gap: 2.5rem; }
.landing-page .landing-nav a { color: #fff; font-size: 1rem; font-weight: 700; }
.landing-page .landing-header.is-scrolled .landing-nav a { color: #333; }
.landing-page .landing-header:not(.is-scrolled) .language-switch { color: #fff; }
.landing-page .landing-nav a:hover { color: #a9db67; }
.landing-contact { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .65rem 1.6rem; border: 1px solid #fff; border-radius: 999px; color: #fff; font-weight: 800; text-decoration: none; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.landing-contact:hover { background: #fff; color: #333; }
.landing-header.is-scrolled .landing-contact { border-color: #333; color: #333; }
.landing-header.is-scrolled .landing-contact:hover { background: #333; color: #fff; }
.landing-page .menu-button { color: #fff; }
.landing-page .landing-header.is-scrolled .menu-button { color: #333; }

.landing-hero { height: 100svh; min-height: 680px; display: flex; align-items: center; background-image: linear-gradient(rgba(0,0,0,.33), rgba(0,0,0,.33)), url('https://images.unsplash.com/photo-1448375240586-882707db888b?auto=format&fit=crop&w=1920'), url('/images/cholomon-mountain.jpg'); background-position: center; background-size: cover; color: #fff; }
.landing-hero.has-hero-image { background-image: linear-gradient(rgba(0,0,0,.33), rgba(0,0,0,.33)), var(--landing-hero-image); }
.landing-hero-copy { max-width: 1180px; padding-top: 80px; animation: rise .65s ease-out both; }
.landing-hero h1 { margin: 0 0 1.6rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 5.35rem; font-weight: 900; line-height: 1.08; }
.landing-hero p { max-width: 640px; margin: 0; font-size: 1.22rem; line-height: 1.65; }
.landing-mission { padding: 120px 0; background: #2a3d38; color: #fff; }
.landing-mission-copy { max-width: 900px; }
.landing-mission h2 { margin: 0 0 2.5rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 2.8rem; font-weight: 800; line-height: 1.4; }
.landing-mission h2 span { color: #a1d99b; }
.landing-mission a, .landing-newsletter button, .landing-location button, .landing-contact-section button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .7rem 1.7rem; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; background: transparent; color: inherit; font-weight: 800; text-decoration: none; cursor: pointer; transition: background .25s ease, color .25s ease; }
.landing-mission a:hover, .landing-newsletter button:hover { background: #fff; color: #2a3d38; }
.landing-services-title { padding: 60px 0; background: #a1d99b; }
.landing-services-title h2 { margin: 0; color: #2a3d38; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 3.5rem; font-weight: 900; }
.landing-services { height: 100svh; min-height: 720px; display: flex; flex-direction: column; }
.landing-service { min-height: 0; display: flex; flex: 1; align-items: flex-end; position: relative; isolation: isolate; overflow: hidden; padding: 2.5rem; background-image: var(--service-bg); background-position: center; background-size: cover; color: #fff; text-decoration: none; transition: flex .5s ease; }
.landing-service::before { position: absolute; inset: 0; z-index: -1; content: ""; background: rgba(0,0,0,.55); transition: background .5s ease; }
.landing-service > div { width: min(920px, calc(100% - 90px)); transition: transform .5s ease; }
.landing-service h3 { margin: 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 2.45rem; font-weight: 800; line-height: 1.15; text-decoration: underline; }
.landing-service div > p { max-width: 660px; margin: .7rem 0 0; color: inherit; font-size: .98rem; line-height: 1.5; opacity: .9; }
.landing-service ul { max-height: 0; margin: 0; padding: 0; overflow: hidden; list-style: none; opacity: 0; transition: max-height .5s ease, margin .5s ease, opacity .5s ease; }
.landing-service li { margin-top: .65rem; font-size: 1rem; font-weight: 650; }
.landing-service > span { width: 60px; height: 60px; display: grid; place-items: center; position: absolute; right: 2.5rem; bottom: 2.5rem; border: 2px solid currentColor; border-radius: 50%; font-size: 2rem; opacity: 0; transform: translateY(18px); transition: opacity .45s ease, transform .45s ease; }
.landing-service:hover, .landing-service:focus-visible { flex: 2; }
.landing-service:nth-child(1):hover, .landing-service:nth-child(1):focus-visible, .landing-service:nth-child(3):hover, .landing-service:nth-child(3):focus-visible { color: #20332d; }
.landing-service:hover::before, .landing-service:focus-visible::before { background: var(--service-tint); }
.landing-service:hover ul, .landing-service:focus-visible ul { max-height: 180px; margin-top: 1.2rem; opacity: 1; }
.landing-service:hover > span, .landing-service:focus-visible > span { opacity: 1; transform: none; }

.landing-journal { padding: 100px 0; background: #fdf8e9; }
.landing-journal-header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.75rem; }
.landing-journal-header h2 { margin: 0; color: #2a3d38; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 3.5rem; font-weight: 900; }
.landing-journal-header p { max-width: 520px; margin: .7rem 0 0; color: #4a5b52; }
.journal-all { color: #2a3d38; font-weight: 800; text-decoration: none; white-space: nowrap; }
.journal-all:hover { text-decoration: underline; }
.journal-board { display: grid; grid-template-columns: 1.35fr .9fr; gap: 2.4rem 2.8rem; align-items: start; }
.journal-lead, .journal-tile { color: #20332d; text-decoration: none; }
.journal-lead img { width: 100%; aspect-ratio: 16 / 10; max-height: 420px; object-fit: cover; display: block; }
.journal-lead div { padding-top: 1.15rem; }
.journal-lead span, .journal-tile span { display: block; margin-bottom: .45rem; color: #68815f; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.journal-lead h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 2.6vw, 2.7rem); font-weight: 500; line-height: 1.15; }
.journal-lead p { display: -webkit-box; max-width: 46rem; margin: .9rem 0 0; overflow: hidden; color: #4a5b52; font-size: 1.05rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.journal-mosaic { display: grid; gap: 1.5rem 0; }
.journal-tile { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 1rem; align-items: center; padding-bottom: 1.35rem; border-bottom: 1px solid rgba(42, 61, 56, .14); }
.journal-tile:last-child { padding-bottom: 0; border-bottom: 0; }
.journal-tile img { width: 100%; height: 108px; object-fit: cover; display: block; }
.journal-tile h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; font-weight: 500; line-height: 1.28; }
.journal-lead:hover h3, .journal-tile:hover h3 { text-decoration: underline; text-underline-offset: .18em; }
.landing-newsletter { padding: 120px 0; background: #2a3d38; color: #fff; text-align: center; }
.landing-location, .landing-contact-section { padding: 120px 0; text-align: center; }
.landing-location { background: #fff; color: #2a3d38; }
.landing-contact-section { background: #fdf8e9; color: #2a3d38; }
.landing-newsletter h2, .landing-location h2, .landing-contact-section h2 { margin: 0 0 1rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 3.4rem; font-weight: 900; }
.landing-page #about, .landing-page #services, .landing-page #latest-updates, .landing-page #contact { scroll-margin-top: 118px; }
.landing-newsletter p, .landing-location p, .landing-contact-section p { margin: 0 0 2.2rem; font-size: 1.05rem; }
.landing-location button, .landing-contact-section button { border-color: #2a3d38; color: #2a3d38; }
.landing-location button:hover, .landing-contact-section button:hover { background: #2a3d38; color: #fff; }

.landing-page .landing-footer { padding: 2.5rem 0; background: #fdf8e9; color: #333; }
.landing-footer-inner { display: grid; grid-template-columns: 120px 1fr auto; align-items: end; gap: 2rem; }
.landing-footer-logo { display: block; width: auto; height: 84px; overflow: visible; background: transparent; }
.landing-footer-logo img { display: block; width: auto; height: 84px; max-width: none; object-fit: contain; }
.landing-footer p { margin: 0; text-align: center; color: #666; font-size: .9rem; }
.landing-footer nav { display: flex; gap: 1.2rem; }
.landing-footer nav a { color: #333; font-weight: 800; }

.landing-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1.25rem; overflow-y: auto; background: rgba(0,0,0,.72); opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s ease; }
.landing-modal[data-open] { opacity: 1; visibility: visible; }
.landing-modal-panel { width: min(900px, 100%); position: relative; padding: 3rem; background: #fff; color: #333; opacity: 0; transform: translateY(20px); transition: opacity .35s ease .08s, transform .35s ease .08s; }
.landing-modal[data-open] .landing-modal-panel { opacity: 1; transform: none; }
.modal-close { width: 44px; height: 44px; position: absolute; top: .75rem; right: .75rem; border: 0; background: transparent; color: inherit; font-size: 2rem; cursor: pointer; }
.contact-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; }
.landing-modal h2 { margin: 0 0 1.5rem; font-size: 2rem; }
.landing-modal form { display: grid; gap: 1rem; }
.landing-modal label { display: grid; gap: .4rem; font-weight: 700; }
.landing-modal input, .landing-modal textarea, .landing-modal select { width: 100%; padding: .8rem; border: 1px solid #bcc5bf; background: #fff; }
.landing-modal form button { min-height: 48px; border: 0; background: #a9db67; color: #20332d; font-weight: 900; cursor: pointer; }
.newsletter-panel { background: #2a3d38; color: #fff; }
.newsletter-panel form { grid-template-columns: 1fr 1fr auto; align-items: end; margin-top: 2rem; }
.map-panel { padding: .7rem; }
.map-panel iframe { width: 100%; height: 520px; display: block; border: 0; }

@media (max-width: 900px) {
  .landing-page .site-header { padding: 10px 0; }
  .landing-page .header-inner { min-height: 76px; }
  .landing-logo { width: 76px; height: 76px; flex-basis: 76px; }
  .landing-contact { display: none; }
  .landing-page .landing-nav { position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.8rem; padding: 6rem 1rem; background: #a1d99b; transform: translateX(100%); transition: transform .4s ease; }
  .landing-page .landing-nav[data-open] { z-index: 1; transform: none; }
  .landing-page .landing-nav a, .landing-page .landing-header.is-scrolled .landing-nav a { color: #fff; font-size: 1.5rem; }
  .landing-page .menu-button { display: block; z-index: 2; margin-left: auto; }
  .landing-page .landing-header:has(.landing-nav[data-open]) .menu-button { color: #fff; }
  .landing-hero h1 { font-size: 3.9rem; }
  .landing-services { height: auto; min-height: 0; }
  .landing-service { min-height: 42svh; }
  .landing-service:hover, .landing-service:focus-visible { flex: 1; }
  .landing-service ul { max-height: 180px; margin-top: 1.2rem; opacity: 1; }
  .landing-service > span { opacity: 1; transform: none; }
  .newsletter-panel form { grid-template-columns: 1fr; }
  .tour-grid { grid-template-columns: 1fr; }
  .eco-story-grid, .eco-walk, .eco-steps ol, .eco-facets, .eco-booking-grid { grid-template-columns: 1fr; }
  .eco-facts, .eco-loved ul { grid-template-columns: 1fr; }
  .eco-walk-media { min-height: 200px; }
  .eco-walk-copy { padding: 0; }
  .eco-fields { grid-template-columns: 1fr; }
  .eco-booker { position: static; }
  .eco-cal-months { grid-template-columns: 1fr; }
  .eco-treewalks { font-size: 1.15rem; }
  .landing-page .container { width: min(calc(100% - 36px), 1200px); }
  .landing-hero { min-height: 640px; }
  .landing-hero-copy { padding-top: 60px; }
  .landing-hero h1 { font-size: 2.65rem; }
  .landing-hero p { font-size: 1rem; }
  .landing-mission { padding: 80px 0; }
  .landing-mission h2 { font-size: 2rem; }
  .landing-services-title h2, .landing-journal-header h2, .landing-newsletter h2, .landing-location h2, .landing-contact-section h2 { font-size: 2.25rem; }
  .landing-service { min-height: 50svh; padding: 1.5rem; }
  .landing-service > div { width: calc(100% - 54px); }
  .landing-service h3 { font-size: 1.8rem; }
  .landing-service > span { width: 48px; height: 48px; right: 1.25rem; bottom: 1.25rem; }
  .landing-journal { padding: 2.4rem 0 2rem; }
  .landing-journal-header { align-items: flex-start; flex-direction: column; gap: .7rem; margin-bottom: 1rem; }
  .landing-journal-header h2 { font-size: 1.45rem; line-height: 1.15; }
  .landing-journal-header p { max-width: none; margin-top: .3rem; font-size: .88rem; line-height: 1.4; }
  .journal-all { font-size: .86rem; }
  .journal-board { display: grid; grid-template-columns: 1fr; gap: 1.15rem; }
  .journal-mosaic { display: grid; gap: 0; }
  .journal-lead { display: grid; gap: .7rem; }
  .journal-lead img { aspect-ratio: 16 / 9; height: auto; max-height: 168px; }
  .journal-lead div { padding-top: 0; }
  .journal-lead h3 { font-size: 1.22rem; line-height: 1.22; }
  .journal-lead p { margin-top: .45rem; font-size: .92rem; -webkit-line-clamp: 2; }
  .journal-tile { grid-template-columns: 88px minmax(0, 1fr); gap: .8rem; padding: .85rem 0; }
  .journal-tile img { height: 68px; }
  .journal-tile h3 { font-size: 1rem; }
  .landing-newsletter, .landing-location, .landing-contact-section { padding: 85px 0; }
  .landing-footer-inner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .contact-panel { grid-template-columns: 1fr; }
  .landing-modal-panel { padding: 2.5rem 1.4rem 1.4rem; }
  .map-panel iframe { height: 65svh; }
}

@media (min-width: 640px) and (max-width: 900px) {
  .journal-lead img { max-height: 220px; }
  .journal-lead h3 { font-size: 1.4rem; }
}

/* Editorial article pages */
.article-page { background: #f6f5ef; color: #202822; font-family: Roboto, Arial, Helvetica, sans-serif; }
.article-page .editorial-header { position: sticky; background: #f6f5ef; border-bottom: 1px solid #e6e1d4; backdrop-filter: none; }
.article-page .editorial-header .header-inner { min-height: 96px; }
.article-logo { display: block; width: auto; height: 88px; flex: 0 0 auto; overflow: visible; background: transparent; padding: 0; border: 0; border-radius: 0; box-shadow: none; line-height: 0; }
.article-logo img { display: block; width: auto; height: 88px; max-width: none; object-fit: contain; background: transparent; }
.article-page .site-nav a[aria-current="page"] { color: #2d6b4a; text-decoration: underline; text-underline-offset: 6px; }
.reading-progress { height: 3px; position: fixed; inset: 0 0 auto; z-index: 80; background: transparent; }
.reading-progress span { width: 0; height: 100%; display: block; background: #31a567; transition: width .08s linear; }
.editorial-intro { padding: 5.5rem 1rem 4rem; background: #f6f5ef; }
.editorial-title-wrap { width: min(100%, 1020px); margin-inline: auto; }
.editorial-title-wrap nav { display: flex; gap: .6rem; margin-bottom: 3rem; color: #69736c; font-size: .82rem; }
.editorial-title-wrap nav a { color: inherit; text-decoration: none; }
.editorial-category { display: inline-block; margin-bottom: 1.25rem; color: #2d6b4a; font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.editorial-intro h1 { max-width: 960px; margin: 0; color: #17231c; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 4.15rem; font-weight: 900; line-height: 1.08; }
.editorial-standfirst { max-width: 800px; margin: 1.6rem 0 1.8rem; color: #536159; font-size: 1.25rem; line-height: 1.65; }
.editorial-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; color: #68736c; font-size: .84rem; }
.editorial-meta > * + * { position: relative; }
.editorial-meta > * + *::before { position: absolute; left: -.8rem; content: "·"; }
.editorial-lead { width: min(calc(100% - 2rem), 1240px); margin: 0 auto; background: #dfe5de; }
.editorial-lead img { width: 100%; height: min(68svh, 720px); object-fit: cover; }
.editorial-reading-grid { display: grid; grid-template-columns: 190px minmax(0, 760px); justify-content: center; gap: 4.5rem; padding-top: 5.5rem; padding-bottom: 6rem; }
.editorial-aside { align-self: start; position: sticky; top: 116px; padding-top: .4rem; color: #68736c; font-size: .78rem; }
.editorial-aside > strong, .editorial-share strong { display: block; margin-bottom: .8rem; color: #27342c; font-size: .72rem; text-transform: uppercase; }
.editorial-tags { display: flex; flex-wrap: wrap; gap: .45rem; }
.editorial-tags span { padding: .35rem .5rem; border: 1px solid #cbd4cc; }
.editorial-share { display: grid; gap: .45rem; margin-top: 2.5rem; padding-top: 1.4rem; border-top: 1px solid #d3dad3; }
.editorial-share a { color: #3d5145; text-decoration: none; }
.editorial-share a:hover { color: #2d6b4a; text-decoration: underline; }
.article-page .editorial-body { width: 100%; min-width: 0; padding: 0; color: #29322c; }
.article-page .editorial-body > p:first-child { font-size: 1.3rem; }
.editorial-end { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid #cfd7cf; color: #69736c; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: .82rem; }
.editorial-end a { color: #245f42; font-weight: 800; }
.editorial-related { padding: 5.5rem 0 6rem; background: #e8eee7; }
.editorial-related-header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.editorial-related-header h2 { margin: 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 2.7rem; font-weight: 900; }
.editorial-related-header a { color: #245f42; font-weight: 800; }
.editorial-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.editorial-related-grid a { color: inherit; text-decoration: none; }
.editorial-related-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.editorial-related-grid span { display: block; margin-top: 1rem; color: #4d765e; font-size: .7rem; font-weight: 900; }
.editorial-related-grid h3 { margin: .4rem 0 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 1.45rem; font-weight: 800; line-height: 1.25; }
.editorial-related-grid a:hover h3 { color: #2d6b4a; }
.article-page .editorial-footer { padding: 2.75rem 0; border-top: 1px solid #e6e1d4; background: #fdf8e9; color: #333; }
.editorial-footer-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; }
.editorial-footer-logo { display: block; width: auto; height: 84px; overflow: visible; background: transparent; padding: 0; border: 0; border-radius: 0; box-shadow: none; line-height: 0; }
.editorial-footer-logo img { display: block; width: auto; height: 84px; max-width: none; object-fit: contain; background: transparent; }
.editorial-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1.2rem; }
.editorial-footer nav a { color: #333; font-weight: 800; text-decoration: none; }
.editorial-footer nav a:hover { color: #2d6b4a; }
.editorial-footer p { margin: 0; text-align: center; color: #666; font-size: .9rem; }

@media (max-width: 850px) {
  .article-page .editorial-header .header-inner { min-height: 80px; }
  .article-logo { height: 72px; }
  .article-logo img { height: 72px; }
  .editorial-intro { padding-top: 4rem; }
  .editorial-intro h1 { font-size: 3.2rem; }
  .editorial-reading-grid { grid-template-columns: minmax(0, 760px); gap: 0; }
  .editorial-aside { display: none; }
  .editorial-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .editorial-intro { padding: 3.25rem 1rem 2.5rem; }
  .editorial-title-wrap nav { margin-bottom: 2rem; }
  .editorial-intro h1 { font-size: 2.45rem; }
  .editorial-standfirst { font-size: 1.05rem; }
  .editorial-meta { display: grid; gap: .3rem; }
  .editorial-meta > * + *::before { display: none; }
  .editorial-lead { width: 100%; }
  .editorial-lead img { height: 54svh; }
  .editorial-reading-grid { padding-top: 3.5rem; padding-bottom: 4rem; }
  .editorial-end { align-items: flex-start; flex-direction: column; }
  .editorial-related { padding: 4rem 0; }
  .editorial-related-header { align-items: flex-start; flex-direction: column; }
  .editorial-related-header h2 { font-size: 2rem; }
  .editorial-related-grid { grid-template-columns: 1fr; }
  .editorial-footer-inner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
}

.ad-placement { width: min(100% - 2rem, 1120px); min-height: 90px; margin: 2rem auto; overflow: hidden; text-align: center; }
.article-comments { padding-top: 3.5rem; padding-bottom: 3.5rem; border-top: 1px solid var(--line); }
.article-comments h2 { margin: 0 0 1.5rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 2rem; font-weight: 800; }
.learning-page { background: #f4f1e6; }
.learning-page .standard-header { background: rgba(244, 241, 230, .92); }
.learning-studio { overflow: clip; }
.learning-hero {
  position: relative;
  padding: 8.5rem 0 4.2rem;
  color: var(--forest-dark);
  background:
    radial-gradient(920px 420px at 8% -8%, #d8ecc4 0%, transparent 58%),
    radial-gradient(760px 380px at 100% 0%, #f6d7a4 0%, transparent 52%),
    repeating-linear-gradient(0deg, transparent 0 31px, rgba(23, 63, 44, .055) 32px),
    repeating-linear-gradient(90deg, transparent 0 31px, rgba(23, 63, 44, .055) 32px),
    #f7f3e8;
}
.learning-badge { display: inline-flex; margin-bottom: 1.1rem; padding: .35rem .75rem; border-radius: 999px; background: #173f2c; color: #f4f1e6; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.learning-hero h1 { max-width: 14ch; margin: 0 0 1rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: clamp(2.6rem, 7vw, 5.4rem); font-weight: 900; line-height: .95; }
.learning-hero p { max-width: 640px; margin: 0 0 1.8rem; font-size: 1.18rem; line-height: 1.65; }
.learning-jumps { display: flex; flex-wrap: wrap; gap: .7rem; }
.learning-jumps a { display: inline-flex; min-height: 46px; align-items: center; padding: .55rem 1rem; border: 2px solid #173f2c; border-radius: 999px; background: #fff; color: #173f2c; font-weight: 800; text-decoration: none; }
.learning-jumps a:hover { background: #173f2c; color: #fff; }
.learning-path { padding: 1.5rem 0 3rem; }
.learning-path ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.learning-path li { padding: 1.35rem 1.4rem; border-radius: 1.4rem; background: #fff; box-shadow: 0 12px 30px rgba(23, 63, 44, .06); }
.learning-path span { display: block; margin-bottom: .55rem; color: #c56a1a; font-size: .78rem; font-weight: 900; }
.learning-path strong { display: block; margin-bottom: .35rem; font-size: 1.12rem; }
.learning-path p { margin: 0; color: var(--muted); }
.learning-room { padding: 0 0 3.5rem; }
.learning-room .container, .learning-room > header, .learning-shelf { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.learning-room > header { display: grid; gap: .4rem; margin-bottom: 1.2rem; }
.learning-room h2 { margin: 0; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 900; }
.learning-room header p { margin: 0; max-width: 54ch; color: var(--muted); }
.learning-shelf { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.learning-card, .learning-soon { display: grid; align-content: start; min-width: 0; padding: 1.4rem; border-radius: 1.5rem; background: #fff; box-shadow: 0 16px 36px rgba(23, 63, 44, .07); }
.learning-card { grid-template-rows: auto auto 1fr auto auto; }
.learning-card-top, .learning-soon { display: flex; align-items: center; gap: .75rem; }
.learning-soon { flex-direction: column; align-items: flex-start; min-height: 240px; border: 2px dashed color-mix(in srgb, currentColor 28%, transparent); background: color-mix(in srgb, #fff 70%, transparent); }
.learning-soon strong { font-size: 1.15rem; }
.learning-soon p { margin: 0; color: var(--muted); }
.learning-icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 16px; background: #e7f0d8; color: #173f2c; }
.learning-icon svg { width: 28px; height: 28px; }
.learning-kind { color: #c56a1a; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.learning-detail .learning-kind { display: inline-flex; padding: .35rem .7rem; border-radius: 999px; }
.learning-card h3 { margin: 1rem 0 .55rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 1.45rem; font-weight: 800; line-height: 1.15; }
.learning-card h3 a { color: inherit; text-decoration: none; }
.learning-card p { margin: 0 0 1rem; color: var(--muted); }
.learning-pills { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.1rem; padding: 0; list-style: none; }
.learning-pills li { padding: .28rem .7rem; border-radius: 999px; background: #f4f1e6; font-size: .78rem; font-weight: 700; }
.learning-play { justify-self: start; border: 0; border-radius: 999px; }
.learning-room[data-kind="gis"] .learning-icon, .learning-detail[data-kind="gis"] .learning-kind { background: #d9efe3; color: #145c3c; }
.learning-room[data-kind="quiz"] .learning-icon, .learning-detail[data-kind="quiz"] .learning-kind { background: #fde7c8; color: #9a4a10; }
.learning-room[data-kind="course"] .learning-icon, .learning-detail[data-kind="course"] .learning-kind { background: #e4ecfb; color: #294a86; }
.learning-card[data-kind="gis"] .learning-play, .learning-detail[data-kind="gis"] .learning-play { background: #145c3c; border-color: #145c3c; }
.learning-card[data-kind="quiz"] .learning-play, .learning-detail[data-kind="quiz"] .learning-play { background: #c56a1a; border-color: #c56a1a; }
.learning-card[data-kind="course"] .learning-play, .learning-detail[data-kind="course"] .learning-play { background: #294a86; border-color: #294a86; }
.learning-detail { min-height: 70vh; padding: 8.5rem 0 6rem; background:
  radial-gradient(700px 320px at 90% 0%, #f6d7a4 0%, transparent 55%),
  #f4f1e6; }
.learning-detail nav { display: flex; gap: .6rem; margin-bottom: 2.2rem; font-size: .84rem; }
.learning-detail nav a { font-weight: 700; text-decoration: none; }
.learning-detail h1 { max-width: 16ch; margin: .7rem 0 1rem; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: clamp(2.4rem, 6vw, 4.6rem); font-weight: 900; line-height: .98; }
.learning-summary { max-width: 62ch; font-size: 1.18rem; line-height: 1.75; }

.cookie-banner { position: fixed; right: 1rem; bottom: 1rem; z-index: 80; display: grid; gap: .8rem; width: min(calc(100% - 2rem), 420px); padding: 1.1rem 1.2rem; border: 1px solid var(--line); background: #fff; box-shadow: 0 16px 40px rgba(16, 32, 24, .16); }
.cookie-banner p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.cookie-banner button { justify-self: start; min-height: 40px; padding: .55rem 1rem; border: 0; background: var(--forest); color: #fff; font-weight: 800; cursor: pointer; }

@media (max-width: 900px) {
  .learning-path ol, .learning-shelf { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .learning-hero { padding-top: 7rem; }
  .learning-detail { padding-top: 7rem; }
}
