:root {
  --ink: #173d30;
  --muted: #52695f;
  --green: #217650;
  --green-dark: #154b36;
  --green-soft: #eaf2e7;
  --cream: #fbfaf5;
  --line: #cad8cd;
  --orange: #e88135;
  --radius: 22px;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--cream); }
img { display: block; max-width: 100%; }
a { color: inherit; }
.skip-link { position: fixed; z-index: 100; top: .5rem; left: .5rem; padding: .7rem 1rem; transform: translateY(-160%); color: #fff; background: var(--green-dark); border-radius: 10px; }
.skip-link:focus { transform: none; }
.home-header { position: relative; z-index: 10; display: grid; min-height: 72px; grid-template-columns: 1fr auto 1fr; gap: 1.25rem; align-items: center; padding: .8rem clamp(1rem, 4vw, 4rem); background: rgba(251,250,245,.96); border-bottom: 1px solid rgba(39,83,63,.12); }
.home-wordmark { display: inline-flex; width: fit-content; align-items: center; gap: .65rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 800; text-decoration: none; }
.home-wordmark span { display: grid; width: 35px; height: 35px; place-items: center; color: #fff; background: var(--green); border-radius: 11px; font: 800 1.15rem/1 ui-sans-serif, system-ui, sans-serif; }
.home-header nav, .home-tools { display: flex; align-items: center; gap: clamp(.8rem, 2.2vw, 2rem); font-size: .92rem; font-weight: 750; }
.home-header nav a, .home-tools a { padding: .45rem .1rem; text-decoration: none; }
.home-header nav a:hover, .home-tools a:hover { color: var(--green); }
.home-tools { justify-self: end; }
.home-tools span { color: var(--green); font-weight: 850; }
main { overflow: hidden; }
.home-hero { position: relative; display: grid; min-height: clamp(600px, 79vh, 840px); place-items: end start; overflow: hidden; background: #173d30; isolation: isolate; }
.home-hero-media, .home-hero-shade { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; }
.home-hero-media picture, .home-hero-media img, .home-hero-media video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.home-hero-media video { opacity: 0; transition: opacity .45s ease; }
.home-hero-media.is-video-playing video { opacity: 1; }
.home-hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.72) 43%, rgba(0,0,0,.16) 76%), linear-gradient(0deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.08) 52%); }
.home-hero-copy { width: min(100% - 2rem, 1240px); margin: 0 auto; padding: clamp(3rem, 8vh, 6.5rem) 0; color: #fff; }
.eyebrow { margin: 0 0 .75rem; color: #2b7e59; font-size: .75rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.home-hero .eyebrow { color: #b9dfc9; }
.home-hero h1 { max-width: 20ch; margin: 0; font: 700 clamp(2.65rem, 4.4vw, 4.15rem)/1.04 Georgia, "Times New Roman", serif; letter-spacing: -.035em; text-wrap: balance; }
.home-hero-copy > p:not(.eyebrow) { max-width: 620px; margin: 1.45rem 0 0; color: #eff7f1; font-size: clamp(1.05rem, 1.65vw, 1.3rem); line-height: 1.65; }
.home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.home-button { display: inline-flex; min-height: 51px; align-items: center; justify-content: center; padding: .78rem 1.25rem; color: #fff; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.66); border-radius: 13px; font-weight: 850; line-height: 1.2; text-decoration: none; backdrop-filter: blur(8px); }
.home-button:hover { color: var(--green-dark); background: #fff; }
.home-button.primary { color: #fff; background: var(--green); border-color: #85c5a0; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.home-button.primary:hover { background: var(--green-dark); }
.home-button.compact { min-height: 46px; color: var(--green-dark); background: #fff; border-color: #b5c9bb; backdrop-filter: none; }
.home-button.compact:hover { color: #fff; background: var(--green-dark); }
.home-section { width: min(100% - 2rem, 1180px); margin: clamp(4.5rem, 8vw, 7.5rem) auto; }
.home-section h2, .home-final h2 { margin: 0; font: 700 clamp(2.1rem, 4.1vw, 3.6rem)/1.08 Georgia, "Times New Roman", serif; letter-spacing: -.025em; text-wrap: balance; }
.home-section p { color: var(--muted); line-height: 1.7; }
.home-intro { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.home-intro > div > p:last-child { max-width: 55ch; }
.wish-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 0; }
.wish-grid div { min-height: 145px; padding: 1.3rem; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 10px 28px rgba(23,61,48,.06); }
.wish-grid dt { font: 700 1.35rem Georgia, "Times New Roman", serif; }
.wish-grid dd { margin: .55rem 0 0; color: var(--muted); line-height: 1.55; }
.preview-section { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.preview-copy > p:not(.eyebrow) { max-width: 54ch; }
.preview-copy ol { padding-left: 1.25rem; color: #294b3c; line-height: 1.9; }
.text-link { display: inline-block; margin-top: .6rem; color: var(--green-dark); font-weight: 850; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.product-preview { position: relative; margin: 0; overflow: hidden; background: #e5ece0; border: 10px solid #fff; border-radius: 30px; box-shadow: 0 26px 65px rgba(24,63,47,.17); }
.product-preview img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; object-position: center; }
.product-preview figcaption { padding: .58rem .8rem .7rem; color: var(--muted); background: #fff; font-size: .72rem; }
.preview-map { position: absolute; inset: 0; background: linear-gradient(25deg, transparent 48%, rgba(126,169,119,.2) 49% 57%, transparent 58%), #e8ede3; }
.preview-map svg { width: 100%; height: 100%; }
.preview-map .river { fill: none; stroke: #85bdd2; stroke-width: 30; opacity: .75; }
.preview-map .street { fill: none; stroke: #fff; stroke-width: 11; opacity: .93; }
.preview-map .route { fill: none; stroke: #1f75d6; stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; }
.preview-map circle { fill: var(--orange); stroke: #fff; stroke-width: 5; }
.preview-panel { position: absolute; top: 24px; left: 24px; display: grid; width: min(310px, calc(100% - 48px)); gap: .85rem; padding: 1.25rem; background: rgba(255,255,252,.96); border: 1px solid #c7d4c9; border-radius: 18px; box-shadow: 0 13px 35px rgba(29,65,50,.18); }
.preview-panel > strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; }
.preview-bar { display: grid; gap: .25rem; }
.preview-bar > span { display: flex; justify-content: space-between; font-size: .82rem; }
.preview-bar em { color: var(--green); font-style: normal; font-weight: 800; }
.preview-bar i { height: 7px; overflow: hidden; background: #dce7dd; border-radius: 999px; }
.preview-bar i::after { display: block; width: var(--value); height: 100%; content: ""; background: var(--green); border-radius: inherit; }
.preview-button { padding: .7rem; color: #fff; background: var(--green); border-radius: 10px; font-size: .83rem; font-weight: 850; text-align: center; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.6rem; }
.section-heading a { flex: 0 0 auto; color: var(--green-dark); font-weight: 850; }
.home-destination-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-destination { display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 13px 32px rgba(23,61,48,.1); }
.home-card-media { display: block; margin: 0; background: var(--green-soft); }
.home-card-image { position: relative; display: block; overflow: hidden; aspect-ratio: 16/10; }
.home-destination .home-card-image::after { position: absolute; inset: 40% 0 0; content: ""; background: linear-gradient(0deg, rgba(8,31,23,.82), transparent); pointer-events: none; }
.home-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.home-card-credit { display: block; min-height: 1.8rem; padding: .42rem .75rem; overflow: hidden; color: var(--muted); background: #fff; border-top: 1px solid #edf1ed; font-size: .65rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.home-destination:hover img, .home-route:hover img { transform: scale(1.035); }
.home-card-image h3 { position: absolute; z-index: 1; right: 1rem; bottom: .8rem; left: 1rem; margin: 0; color: #fff; font: 700 clamp(1.45rem,2.3vw,2rem)/1.1 Georgia,"Times New Roman",serif; text-shadow: 0 2px 16px rgba(0,0,0,.65); }
.home-card-image h3 a { color: inherit; text-decoration: none; }
.home-card-image h3 a::after { position: absolute; inset: -8rem -1rem -.8rem; content: ""; }
.home-destination-copy { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.home-destination-copy p { margin: 0 0 1rem; }
.home-destination-copy footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: auto; color: var(--muted); font-size: .82rem; }
.home-card-button { display: inline-flex; min-height: 38px; flex: 0 0 auto; align-items: center; padding: .48rem .72rem; color: var(--green-dark); border: 1px solid #bfd0c3; border-radius: 10px; font-weight: 780; text-decoration: none; }
.home-card-button:hover { color: #fff; background: var(--green-dark); }
.section-footer-action { display: flex; flex-wrap: wrap; gap: .7rem; justify-content: flex-end; margin-top: 1.25rem; }
.home-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-route { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; color: inherit; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 32px rgba(23,61,48,.08); transition: box-shadow .2s ease, transform .2s ease; }
.home-route:hover { box-shadow: 0 17px 38px rgba(23,61,48,.13); transform: translateY(-2px); }
.home-route:focus-within { outline: 4px solid #f0a33a; outline-offset: 4px; }
.home-route .home-card-image { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.home-route .home-card-credit { position: relative; z-index: 2; pointer-events: none; }
.home-route .home-card-credit a { position: relative; z-index: 3; pointer-events: auto; }
.home-route-copy { display: flex; flex: 1; flex-direction: column; gap: .55rem; padding: 1.15rem; }
.home-route-copy h3 { margin: 0; font: 700 1.35rem/1.18 Georgia, "Times New Roman", serif; }
.home-route-link { color: inherit; text-decoration: none; }
.home-route-link::after { position: absolute; z-index: 1; inset: 0; content: ""; }
.home-route-link:focus-visible { outline: 0; }
.home-route-copy p { margin: 0; color: var(--muted); line-height: 1.5; }
.home-route-copy .home-route-facts { font-size: .82rem; }
.home-route-character { align-self: flex-start; margin-top: auto; padding: .28rem .62rem; color: var(--green-dark); background: var(--green-soft); border-radius: 999px; font-size: .78rem; font-weight: 780; }
.discovery-section { display: grid; grid-template-columns: 1fr minmax(260px, .55fr); gap: clamp(2rem, 8vw, 7rem); align-items: center; padding: clamp(1.7rem, 5vw, 4rem); background: linear-gradient(135deg, #e7f1e4, #f8f4e8); border: 1px solid var(--line); border-radius: 28px; }
.passport-card { display: grid; min-height: 270px; place-content: center; gap: .35rem; padding: 2rem; color: #fff; background: linear-gradient(145deg, #276f4f, #113b2b); border: 6px solid #fff; border-radius: 28px; box-shadow: 0 20px 45px rgba(20,57,42,.2); text-align: center; transform: rotate(2deg); }
.passport-card span { font-family: Georgia, "Times New Roman", serif; font-size: 1.4rem; }
.passport-card strong { font-size: 4rem; line-height: 1; }
.passport-card div { margin-top: .8rem; color: #f5a35a; letter-spacing: .3em; }
.two-up { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.two-up article { padding: clamp(1.5rem, 4vw, 3rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.two-up article:first-child { background: #edf3e9; }
.two-up h2 { font-size: clamp(1.9rem, 3vw, 2.7rem); }
.two-up ul { padding-left: 1.2rem; color: var(--muted); line-height: 1.8; }
.home-final { width: min(100% - 2rem, 1180px); margin: 5rem auto; padding: clamp(2rem, 6vw, 5rem); color: #fff; background: var(--green-dark); border-radius: 30px; text-align: center; }
.home-final p { color: #dcece3; }
.home-final .home-actions { justify-content: center; }
.home-footer { display: flex; width: min(100% - 2rem, 1180px); align-items: center; justify-content: space-between; gap: 2rem; margin: 0 auto; padding: 2rem 0 3rem; border-top: 1px solid var(--line); }
.home-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1.2rem; color: var(--muted); font-size: .85rem; font-weight: 700; }
.home-footer nav a { text-decoration: none; }
.home-empty { grid-column: 1/-1; padding: 2rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
:focus-visible { outline: 4px solid #f0a33a; outline-offset: 4px; }
@media (max-width: 900px) {
  .home-intro, .preview-section { grid-template-columns: 1fr; }
  .preview-section { gap: 2.5rem; }
  .home-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .home-hero { min-height: 650px; }
  .home-hero-shade { background: linear-gradient(0deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.7) 62%, rgba(0,0,0,.18) 100%); }
  .home-hero-copy { padding: 3rem 0; }
  .home-hero h1 { font-size: clamp(2.1rem, 9vw, 3rem); }
  .home-hero-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.55; }
  .home-actions .home-button { width: 100%; }
  .home-section { margin: 4rem auto; }
  .wish-grid, .home-destination-grid, .home-route-grid, .two-up, .discovery-section { grid-template-columns: 1fr; }
  .wish-grid div { min-height: 0; }
  .product-preview { border-width: 6px; border-radius: 24px; }
  .section-heading { display: block; }
  .section-heading > a { display: inline-block; margin-top: .75rem; }
  .home-destination-copy footer { align-items: flex-start; flex-direction: column; }
  .passport-card { min-height: 220px; transform: none; }
  .home-final { margin: 4rem auto; border-radius: 24px; }
  .home-footer { display: grid; }
  .home-footer nav { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-card-image img { transition: none; }
  .home-hero-media video { transition: none; }
}
