/* HAMIDI TOURS typography system (Stage 6)
   Headings and editorial phrases: Playfair Display. Everything else: DM Sans.
   All fonts are self-hosted WOFF2 files in css/fonts (SIL Open Font License, see css/fonts/OFL.txt).
   Loaded on every public page after the page's own styles and before contrast.css.
   It adds only what was missing; the approved sizes, weights and spacing are unchanged. */

/* True italic for editorial phrases. Several pages only loaded upright Playfair, so browsers slanted
   the upright letters instead (a "fake" italic). Same file as the homepage already uses. */
@font-face{font-family:"Playfair Display";src:url(fonts/playfair-display-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

/* Arrows (← → ↗ …) used in buttons and links. The standard DM Sans files contain letters only,
   so arrows were drawn by whatever font each device had. These tiny files (about 1.3 KB each) come
   from the full DM Sans font and are only downloaded on pages that show an arrow. */
@font-face{font-family:"DM Sans";src:url(fonts/dm-sans-arrows-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+2190-21FF}
@font-face{font-family:"DM Sans";src:url(fonts/dm-sans-arrows-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+2190-21FF}
@font-face{font-family:"DM Sans";src:url(fonts/dm-sans-arrows-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+2190-21FF}
@font-face{font-family:"DM Sans";src:url(fonts/dm-sans-arrows-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+2190-21FF}

/* Form controls and buttons do not inherit fonts in browsers by default (several showed Arial).
   :where() has zero priority, so any font a page already sets on a control still wins. */
:where(button, input, select, textarea){font-family:"DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif}

/* Text never runs out of its box on small screens; long words break only when they cannot fit. */
:where(h1, h2, h3, h4, p, li, figcaption, label){overflow-wrap:break-word}

/* Small phones (360-420 px): tour cards keep every word visible instead of cutting it off. */
@media (max-width:420px){
  .tour-info span{white-space:normal;height:auto;min-height:52px}
  .tour-link{white-space:nowrap;gap:8px;padding:0 13px}
}
/* Tour pages: button labels stay on one line. */
.cta-primary, .hero-book-btn{white-space:nowrap}
