:root {
  --paper: #f5f0e6;
  --cream: #fffdf8;
  --ink: #202d3f;
  --body: #5d6874;
  --rust: #c85235;
  --rust-hover: #a94029;
  --sky: #adc7d6;
  --line: #d8d8d4;
  --display: "Noto Serif Display", Georgia, serif;
  --classic: "Cinzel", Georgia, serif;
  --sans: "Archivo", Arial, sans-serif;
  --action: "Work Sans", Arial, sans-serif;
}

.wrap { width: min(calc(100% - 192px), var(--content)); }
.section { padding-block: 120px; }
.site-header { background: rgba(245,240,230,.98); }
.brand { font-family: var(--display); font-weight: 600; }
.site-header nav a, .header-cta { font-family: var(--action); font-weight: 600; }
.header-cta { border-radius: 100px; padding-inline: 20px; }
.button { min-height: 62px; padding: 17px 30px; border-radius: 100px; font: 600 1rem/1.1 var(--action); text-transform: uppercase; }
.button-primary { background: var(--rust-hover); }
.button-primary:hover { background: var(--rust); }
.text-link { font-family: var(--action); }

.hero { padding-block: 100px 120px; }
.hero-mark { color: var(--rust-hover); }
.hero h1 { max-width: 13ch; font-family: var(--classic); font-size: clamp(3.3rem, 5.25vw, 5.1rem); font-weight: 500; line-height: 1.06; letter-spacing: .005em; }
.hero-copy p { font-size: 1.17rem; line-height: 1.55; }
.hero-art { position: relative; min-height: 590px; margin: 0; overflow: hidden; border-radius: 28px; background: #d6c5a8; }
.hero-art::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(26,38,47,.62)); pointer-events: none; }
.hero-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.hero-art figcaption { position: absolute; z-index: 1; left: 31px; bottom: 26px; color: var(--cream); font: italic 600 clamp(2.2rem,3.5vw,3.35rem)/1.08 var(--display); text-shadow: 0 2px 12px rgba(18,30,40,.35); }
.ribbon { padding-block: 8px; background: var(--ink); font-family: var(--action); font-size: .8rem; letter-spacing: .16em; }
.ribbon .wrap { min-height: 49px; align-items: center; }

.section-top h2, .approach-grid h2, .closing h2 { font-size: clamp(2.7rem, 4.2vw, 3.6rem); font-weight: 500; }
.destination-card { overflow: hidden; border-radius: 32px; }
.destination-art { position: relative; display: block; background: #dbc9a9; }
.destination-art img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: 68% center; }
.destination-copy h3 { font-family: var(--classic); font-size: clamp(2.5rem, 3.5vw, 3.7rem); font-weight: 500; }
.destination-place { color: #e49f7f; font-family: var(--action); font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; }
.destination-link { font-family: var(--action); }

.approach { background: #e7e0d5; }
.approach-list { display: grid; gap: 16px; border: 0; }
.approach-list article { min-height: 155px; padding: 25px; border: 1px solid var(--line); border-radius: 20px; background: var(--cream); }
.approach-list article > span { color: var(--rust-hover); font-family: var(--classic); font-size: 1.25rem; }
.approach-list h3 { font-family: var(--classic); font-size: 1.25rem; font-weight: 600; }
.closing h2 { font-style: italic; font-weight: 600; }

@media (max-width: 1199px) {
  .wrap { width: min(calc(100% - 80px), var(--content)); }
  .section { padding-block: 90px; }
}
@media (max-width: 900px) {
  .hero { padding-block: 70px 80px; }
  .hero-art { min-height: 520px; }
}
@media (max-width: 620px) {
  .wrap { width: calc(100% - 40px); }
  .section { padding-block: 68px; }
  .hero { padding-block: 55px 70px; }
  .hero h1 { font-size: clamp(2.55rem, 10vw, 3.4rem); }
  .hero-copy p { font-size: 1rem; }
  .hero-art { min-height: 380px; }
  .hero-art figcaption { left: 22px; bottom: 21px; font-size: 2.2rem; }
  .hero-actions .button { width: 100%; }
  .destination-card { border-radius: 24px; }
  .destination-copy h3 { font-size: 2.45rem; }
  .approach-list article { min-height: 0; padding: 19px; }
}
@media (max-width: 380px) {
  .wrap { width: calc(100% - 28px); }
  .hero h1 { font-size: 2.35rem; }
}
