/* Site-wide refinement layer: rhythm, typography, surfaces. Content untouched. */
body:is(.horizons, .consultation-catalog, .consultation-detail) {
  --refine-gold-line: linear-gradient(90deg, transparent, #b29a68 18%, #e9d6a6 50%, #b29a68 82%, transparent);
  --refine-shadow: 0 1px 0 #fffdf7 inset, 0 18px 40px -26px rgb(73 57 30 / 45%);
  font-feature-settings: "kern", "liga", "onum";
  text-rendering: optimizeLegibility;
}

/* Typography */
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(h2, h3) {
  font-family: "Hedvig Letters Serif", serif;
  font-weight: 400;

}
body:is(.horizons, .consultation-catalog, .consultation-detail) h2 {
  letter-spacing: -.022em;
  line-height: 1.06;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) h3 { letter-spacing: -.01em; line-height: 1.18; }
body:is(.horizons, .consultation-catalog, .consultation-detail) p { line-height: 1.68; }
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(main, section) p { max-width: 68ch; }
body.horizons .contact p { max-width: none; }

/* Section rhythm and gilded dividers */
body.horizons main > section,
body.horizons .feedback-tourism > section,
body.horizons .feedback-trade {
  position: relative;
  scroll-margin-top: 90px;
}
body.horizons main > section + section::before,
body.horizons .feedback-tourism::before,
body.horizons .feedback-trade::before,
body.horizons .contact::before {
  content: "";
  display: block;
  height: 1px;
  width: min(1320px, calc(100% - 40px));
  margin: 0 auto;
  background: var(--refine-gold-line);
  opacity: .9;
}

/* Surfaces: cards, figures and galleries */
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(article, details) {
  transition: box-shadow .25s ease, transform .25s ease;
}
body.horizons :is(.av-supplied-briefs, .travel-programmes, .feedback-trade) article {
  box-shadow: var(--refine-shadow);
}
body.horizons :is(.av-supplied-briefs, .travel-programmes, .feedback-trade) article:hover {
  box-shadow: 0 1px 0 #fffdf7 inset, 0 26px 50px -28px rgb(73 57 30 / 55%);
}
body:is(.horizons, .consultation-catalog, .consultation-detail) figure img { border-radius: 2px; }
body:is(.horizons, .consultation-catalog, .consultation-detail) figcaption {
  color: #625b4b;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: .01em;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(.travel-bali, .travel-vietnam-archive, .aviation-history) a:has(img) {
  overflow: hidden;
  display: block;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(.travel-bali, .travel-vietnam-archive, .aviation-history) a:has(img) img {
  transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .4s ease;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(.travel-bali, .travel-vietnam-archive, .aviation-history) a:has(img):hover img {
  transform: scale(1.035);
  filter: saturate(1.06);
}

/* Expandable detail */
body:is(.horizons, .consultation-catalog, .consultation-detail) summary {
  text-underline-offset: .3em;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) summary:hover { color: #75551e; }

/* Specifications: tabular, calm */
body:is(.horizons, .consultation-catalog, .consultation-detail) :is(dl, table) { font-variant-numeric: tabular-nums lining-nums; }
body:is(.horizons, .consultation-catalog, .consultation-detail) dt {
  color: #625b4b;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) table td,
body:is(.horizons, .consultation-catalog, .consultation-detail) table th { border-color: #d8ccae; }

/* Films */
body:is(.horizons, .consultation-catalog, .consultation-detail) video {
  background: #29261f;
  border-radius: 2px;
  box-shadow: 0 24px 50px -30px rgb(36 32 27 / 60%);
}

/* Links and focus */
body:is(.horizons, .consultation-catalog, .consultation-detail) main a:not([class]) {
  text-decoration-color: #d8ccae;
  text-decoration-thickness: 1px;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) main a:not([class]):hover {
  color: #75551e;
  text-decoration-color: #75551e;
}
body:is(.horizons, .consultation-catalog, .consultation-detail) :focus-visible {
  outline: 2px solid #75551e !important;
  outline-offset: 4px;
  border-radius: 2px;
}



@media (max-width: 800px) {
  body:is(.horizons, .consultation-catalog, .consultation-detail) h2 { letter-spacing: -.015em; }
  body:is(.horizons, .consultation-catalog, .consultation-detail) p { line-height: 1.62; }
}
@media (prefers-reduced-motion: reduce) {
  body :is(article, img) { transition: none !important; }
}
