:root {
  color-scheme: light;
  font: 100%/1.5 "Instrument Sans", system-ui, sans-serif;
  color: #1c3630;
  background: #f4f0e5;
  scroll-behavior: smooth;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; }
.masthead, footer {
  padding: 1.35rem clamp(1.25rem, 7vw, 8rem);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid #b9c2ae;
}
.masthead a:first-child { font-family: Charter, Georgia, serif; font-size: 1.38rem; text-decoration: none; }
.hero {
  min-height: min(70vh, 44rem);
  padding: clamp(4rem, 10vw, 9rem) clamp(1.25rem, 7vw, 8rem);
  background: radial-gradient(ellipse at 85% 80%, #375f54 0, #214339 43%, #15332c 76%);
  color: #fff6e2;
}
.location { color: #d5e2c8; letter-spacing: .1em; text-transform: uppercase; font-size: .8rem; }
h1, h2, h3 { font-family: Charter, Georgia, serif; font-weight: 400; line-height: 1.02; }
h1 { font-size: clamp(3.4rem, 10vw, 9rem); margin: .16em 0 .2em; letter-spacing: -.056em; }
.intro { font-size: clamp(1rem, 2vw, 1.24rem); max-width: 30rem; }
.button { display: inline-flex; gap: 1rem; margin-top: 1rem; padding: .72rem 1rem; border: 1px solid #e2e8d1; text-decoration: none; }
.route { padding: 4rem clamp(1.25rem, 7vw, 8rem); }
h2 { font-size: clamp(2rem, 5vw, 3.4rem); margin: 0 0 1.5rem; }
h3 { font-size: 1.7rem; margin: .5em 0; }
.stops { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
article { border-top: 1px solid #9ba991; padding-top: .6rem; }
article p { max-width: 24rem; }
footer { border-bottom: 0; border-top: 1px solid #b9c2ae; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
