/* Revision 02: stronger editorial type, with readable supporting copy. */
:root {
  --type-body: 16px;
  --type-copy: 15px;
  --type-control: 14px;
  --type-caption: 12px;
  --muted: #53625c;
}
body { font-size: var(--type-body); line-height: 1.7; }
h1, h2, h3 { font-weight: 500; letter-spacing: -.035em; }
em { font-weight: 500; color: #397523; }
/* Keep editorial emphasis upright throughout the concept. */
em, i { font-style: normal; }
.hero-stamp { transform: none; }
/* Logo-led palette: sampled lime, brand black, white and a soft leaf tint. */
:root { --brand-green: #8ad85a; --brand-green-ink: #397523; }
.button { background: var(--brand-green); color: var(--forest); border-color: var(--brand-green); }
.button:hover { background: #78c948; border-color: #78c948; }
.button.light { background: var(--brand-green); color: var(--forest); border-color: var(--brand-green); }
.button.outline { background: transparent; color: var(--forest); border-color: #a8bd9c; }
.chip.active, .chip:hover { background: var(--brand-green); color: var(--forest); border-color: var(--brand-green); }
.hero-stamp { background: var(--brand-green); color: var(--forest); }
.hero { background: linear-gradient(110deg, #fff 48%, var(--ivory) 48%); }
.tailor-banner .eyebrow { color: #caf0ae; }
@media(max-width:600px) { .hero { background: linear-gradient(#fff 48%, var(--ivory) 48%); } }
h2 { font-size: clamp(40px, 3.9vw, 58px); }
nav { font-size: 13px; font-weight: 600; gap: 18px; }
nav button { font-weight: inherit; }
.button, .button.small, .text-link { font-size: var(--type-control); font-weight: 600; }
.eyebrow { font-size: 12px; letter-spacing: .13em; color: #59644f; }
.hero h1 { font-size: clamp(56px, 4.9vw, 74px); line-height: 1.09; }
.hero-copy > p:not(.eyebrow) { font-size: 16px; max-width: 410px; }
.hero-bottom, .hero-caption { font-size: 11px; letter-spacing: .1em; }
.section-top > p { font-size: var(--type-copy); }
.search-panel label { font-size: 11px; letter-spacing: .04em; padding: 0 15px; }
.search-panel label span { font-weight: 650; }
.search-panel select, .search-panel input { font-size: var(--type-control); }
.intro-line, .destination-note { font-size: 13px; }
.card-label .eyebrow { font-size: 11px; }
.card-label h3 { font-size: 38px; }
.tour-body h3 { font-size: 33px; }
.tour-body p, .story-copy > p, .detail-columns p { font-size: var(--type-copy); }
.tour-meta, .tour-end, .tag { font-size: var(--type-caption); }
.tour-body p { min-height: 76px; }
.tour-meta { letter-spacing: .035em; gap: 8px; }
.tour-end { gap: 15px; }
.tag { font-weight: 600; letter-spacing: .04em; }
.experience-links a { font-size: var(--type-control); }
.experience-card span { font-size: 25px; font-weight: 500; }
.story-features b { font-size: 14px; }
.story-features p { font-size: 13px; }
.tailor-banner p { font-size: var(--type-copy); }
.article .eyebrow { font-size: 11px; letter-spacing: .06em; }
.article h3 { font-size: 29px; }
.article small, .sample-note, small { font-size: var(--type-caption); }
.testimonial blockquote { font-size: 36px; font-weight: 500; }
.newsletter-form label, .newsletter-form input { font-size: var(--type-copy); }
.footer-grid p, .footer-grid a { font-size: 14px; overflow-wrap: anywhere; }
.footer-grid .eyebrow, .footer-bottom, .socials { font-size: 12px; }
.socials small { font-size: 11px; }
.footer-bottom { gap: 20px; flex-wrap: wrap; }
#mega b { font-size: 17px; }
#mega span, .breadcrumbs { font-size: 13px; }
.chip, .filters label, .filters select, .results-bar, details, .form-fields label { font-size: var(--type-control); }
.filters h3 { font-size: 17px; }
.steps { font-size: 12px; }
.contact-info p, .contact-info a { font-size: 14px; overflow-wrap: anywhere; }
.swatch { font-size: 13px; }
@media (min-width: 901px) and (max-width: 1240px) {
  header { gap: 12px; }
  .brand { width: 90px; }
  nav { gap: 12px; font-size: 12px; }
  header > .button { padding: 12px 16px; font-size: 12px; gap: 14px; }
  .search-link { display: none; }
}
@media (max-width: 900px) {
  nav.open { font-size: 16px; }
  .hero h1 { font-size: 53px; }
  .hero-copy > p:not(.eyebrow) { font-size: 15px; }
  .hero-actions { align-items: flex-start; }
  .hero-actions .text-link { font-size: 14px; }
  .tour-grid { gap: 22px; }
  .tour-body h3 { font-size: 29px; }
  .tour-end { align-items: flex-start; flex-direction: column; gap: 8px; }
  .card-label h3 { font-size: 30px; }
  .card-label .eyebrow { font-size: 10px; }
  .experience-layout { grid-template-columns: 1fr; }
  .experience-links { grid-template-columns: 1fr 1fr; }
  .experience-card { height: 360px; }
  .experience-card:nth-child(2) { height: 300px; margin-top: 50px; }
  .story-features { flex-wrap: wrap; }
  .story-features div { flex: 1 1 120px; }
  .article h3 { font-size: 25px; }
}
@media (max-width: 600px) {
  .hero h1 { font-size: 42px; line-height: 1.12; }
  .hero .eyebrow { font-size: 10px; letter-spacing: .09em; }
  .hero-actions { gap: 16px; }
  .hero-actions .button { font-size: 14px; gap: 18px; }
  .hero-art { margin-top: 0; }
  h2 { font-size: 39px; }
  .section-top > p { font-size: 15px; }
  .search-panel label { padding: 0 6px; font-size: 10px; }
  .search-panel select, .search-panel input { font-size: 13px; }
  .intro-line { font-size: 11px; gap: 10px 15px; }
  .card-label h3 { font-size: 29px; }
  .card-label .eyebrow { font-size: 9px; }
  .tour-body h3 { font-size: 33px; }
  .tour-body p { min-height: 0; }
  .tour-end { flex-direction: row; font-size: 13px; }
  .experience-links a { font-size: 14px; }
  .experience-card { height: 310px; }
  .experience-card:nth-child(2) { height: 250px; }
  .experience-card span { font-size: 22px; left: 14px; right: 10px; }
  .article .eyebrow { font-size: 10px; }
  .article h3 { font-size: 24px; }
  .article:first-child h3 { font-size: 31px; }
  .testimonial blockquote { font-size: 29px; }
  .newsletter h2 { font-size: 37px; }
  .page-heading h1 { font-size: 48px; }
  .results-bar { align-items: flex-start; font-size: 13px; }
  .results-bar select { max-width: 150px; font-size: 12px; }
  .steps { font-size: 11px; gap: 10px; }
  .swatch { font-size: 11px; }
}
