/*
 * YosuTravels Stage 21.5A-C — Geist Sans typography consistency.
 *
 * Scope:
 * - establish Geist Sans as the shared interface font token;
 * - preserve the existing YosuTravels layout, color palette, spacing, and components;
 * - keep icon fonts and monospace/debug text safe.
 */

@font-face {
    font-family: "Geist Sans";
    src: url("/assets/fonts/geist/Geist%5Bwght%5D.woff2") format("woff2-variations");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --font-primary: "Geist Sans", Inter, "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-sans: var(--font-primary);
    --yosu-font-primary: var(--font-primary);
    --yosu-interface-font: var(--font-primary);
    --yosu-home-sans-v203: var(--font-primary);
}

html,
body,
button,
input,
select,
textarea {
    font-family: var(--font-primary);
}

body {
    font-synthesis-weight: none;
    text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
    font: inherit;
}

body .suza-assistant,
body .suza-assistant button,
body .suza-assistant input,
body .suza-assistant textarea,
body .suza-assistant select,
body .yt-destination-results-v21b,
body .yt-stage21-destination,
body .yt-search-stage19-keyfix,
body .tavura-public-reviews-v241,
body .tavura-review-form-v241,
body .tavura-reviews-v241,
body .admin-kpi-v303,
body .admin-portal-kpi-v274,
body .admin-kpi-dashboard-v273,
body .admin-tourist-form-v257,
body .admin-tourist-index-v259 {
    font-family: var(--font-primary) !important;
}

code,
kbd,
samp,
pre {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.ti,
[class^="ti-"],
[class*=" ti-"] {
    font-family: "tabler-icons" !important;
}

.fa,
.fas,
.far,
.fal,
.fab,
.fa-solid,
.fa-regular,
.fa-light,
.fa-brands {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "Font Awesome 5 Free", "Font Awesome 5 Brands" !important;
}

.material-icons,
.material-icons-outlined,
.material-icons-round,
.material-icons-sharp,
.material-symbols-outlined,
.material-symbols-rounded,
.material-symbols-sharp {
    font-family: "Material Icons", "Material Symbols Outlined", "Material Symbols Rounded", "Material Symbols Sharp" !important;
}

/* Translation-safe wrapping only; no global font-size, spacing, or layout redesign. */
.btn,
button,
.nav-link,
.dropdown-item,
.suza-quick-action,
.suza-card-cta,
.yt-card-cta {
    overflow-wrap: anywhere;
}

/* STAGE21_5_GEIST_CASCADE_V2: map established production tokens to Geist. */
:root {
  --yosu-premium-sans-v201: var(--font-primary) !important;
  --yosu-font-sans: var(--font-primary) !important;
  --yt-client-font: var(--font-primary) !important;
  --bs-body-font-family: var(--font-primary) !important;
}

html,
body,
body.public-hue-bg,
body:not(.admin-layout):not(.admin-body),
body :where(h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label, .btn, .form-control, .form-select) {
  font-family: var(--font-primary) !important;
}

/* Preserve icon fonts while the interface font changes. */
.ti,
[class^="ti-"],
[class*=" ti-"],
.fa,
.fas,
.far,
.fal,
.fab,
.fa-solid,
.fa-regular,
.fa-light,
.fa-brands,
.material-icons,
.material-icons-outlined,
.material-icons-round,
.material-icons-sharp,
.material-symbols-outlined,
.material-symbols-rounded,
.material-symbols-sharp {
  font-family: revert;
}

.ti,
[class^="ti-"],
[class*=" ti-"] {
  font-family: tabler-icons !important;
}
