/* Almaty Taxi — Onest responsive typography, 2026-11-01.
   Design-only layer. Map, geocoding, pricing, and Telegram behavior unchanged. */
:root { --almaty-font:'Onest',system-ui,-apple-system,'Segoe UI',Arial,sans-serif; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body, .seo-page, .telegram-miniapp, button, input, select, textarea, dialog {
  font-family:var(--almaty-font);
}
body { font-size:15px; line-height:1.6; }
button, input, select, textarea { font-family:inherit; }
h1,h2,h3,h4,h5,h6 { font-family:var(--almaty-font); text-wrap:balance; }
p, .field, .quote-endpoints strong, .address-results button { overflow-wrap:break-word; }

/* Brand & primary hero */
.brand-title { font-size:19px; font-weight:800; letter-spacing:.025em; }
.brand-title small { font-weight:600; letter-spacing:.14em; }
.header-nav a { font-size:13px; font-weight:650; }
.header-book { font-size:13px; font-weight:700; }
.eyebrow, .overline, .side-kicker { font-weight:700; letter-spacing:.15em; }
.hero h1 { font-size:clamp(46px,5.25vw,76px); font-weight:750; line-height:1.065; letter-spacing:-.046em; }
.hero h1 em { font-style:normal; font-weight:750; }
.hero-sub { font-size:16px; line-height:1.7; }
.hero-pills > span { font-size:12px; font-weight:600; }

/* Form: better scanability of labels, street/house, dropdowns and controls */
.booking-head h2,.section-heading h2,.faq-section h2 { font-size:clamp(30px,3vw,43px); font-weight:750; line-height:1.13; letter-spacing:-.034em; }
.booking-intro { font-size:13px; line-height:1.6; }
.field { font-size:13px; font-weight:700; line-height:1.42; }
.small-label { font-size:11px; letter-spacing:.12em; }
.direction-tab { font-size:13px; font-weight:700; line-height:1.35; }
.trip-button { font-size:13px; font-weight:700; line-height:1.4; }
.input-wrap input,.select-wrap select { min-height:46px; height:auto; font-size:14px; font-weight:550; line-height:1.35; }
.input-wrap input::placeholder { font-size:13px; font-weight:400; }
.field-sub,.hint-note { font-size:11px; line-height:1.5; }
.address-find { font-family:var(--almaty-font); font-size:11px; font-weight:700; }
.address-results button { font-family:var(--almaty-font); font-size:13px; line-height:1.45; }
.address-status { font-size:12px; line-height:1.55; }
.check-row, .check-row.consent { font-size:12px; line-height:1.55; }
.submit-button { font-size:14px; font-weight:750; min-height:46px; }
.add-stop { font-size:13px; }
.booking-aside h3,.tariff-card h3,.km-rule h3 { font-family:var(--almaty-font); font-weight:750; line-height:1.19; letter-spacing:-.03em; }

/* Route details & final quote */
.quote-dialog-header h2 { font-family:var(--almaty-font); font-size:clamp(26px,3vw,33px); font-weight:750; letter-spacing:-.035em; line-height:1.14; }
.quote-kicker { font-size:10px; letter-spacing:.12em; }
.quote-endpoints strong { font-size:13px; line-height:1.5; }
.quote-breakdown { font-size:12px; }
.quote-total strong { font-size:clamp(30px,3.4vw,38px); font-weight:800; letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.quote-total>span,.quote-explanation,.quote-attribution,.quote-dialog-footer p { line-height:1.6; }
.quote-map-tabs button,.quote-fit,.quote-edit,.quote-retry { font-family:var(--almaty-font); font-size:12px; font-weight:700; }
.quote-dialog-footer button { min-height:44px; }

/* Secondary SEO pages & Telegram Mini App */
.seo-page h1,.seo-page h2,.seo-landing h2,.seo-page h3 { font-family:var(--almaty-font); font-weight:750; letter-spacing:-.034em; line-height:1.17; }
.seo-page { font-size:16px; line-height:1.64; }
.telegram-miniapp .mini-brand, .telegram-miniapp .mini-footer,
.telegram-miniapp .mini-languages button { font-family:var(--almaty-font); }
.telegram-miniapp .mini-brand strong { font-weight:800; letter-spacing:.025em; }
.telegram-miniapp .mini-brand small { letter-spacing:.08em; }

@media (min-width:1200px) {
 .hero-copy { max-width:700px; }
 .booking-card { padding-inline:42px; }
 .section-heading h2 { max-width:760px; }
}
@media (max-width:970px) {
 .hero h1 { font-size:clamp(42px,6.3vw,64px); }
 .hero-copy { max-width:min(640px,96%); }
 .booking-card { padding-inline:28px; }
}
@media (max-width:700px) {
 body { font-size:15px; line-height:1.58; }
 .brand-title { font-size:15px; letter-spacing:0; }
 .brand-title small { font-size:8px; letter-spacing:.07em; }
 .hero-copy { max-width:100%; padding-top:68px; }
 .hero h1 { font-size:clamp(34px,9.15vw,49px); line-height:1.075; letter-spacing:-.039em; margin:17px 0 20px; }
 .hero-sub { font-size:14px; line-height:1.62; max-width:355px; }
 .hero-pills > span { font-size:11px; }
 .eyebrow { font-size:10px; letter-spacing:.12em; }
 .booking-card { padding:24px 16px; }
 .booking-head h2 { font-size:clamp(26px,7.2vw,32px); }
 .booking-intro { font-size:13px; }
 .booking-head { flex-wrap:wrap; }
 .direction-tab { font-size:12px; padding:11px 8px; gap:6px; }
 .trip-switch { flex-wrap:wrap; row-gap:5px; }
 .trip-button { font-size:12px; }
 .field { font-size:13px; }
 /* 16px inputs prevent unwanted auto-zoom in iOS Safari */
 .input-wrap input,.select-wrap select,textarea { font-size:16px; min-height:48px; }
 .input-wrap input::placeholder { font-size:14px; }
 .address-find { font-size:12px; min-height:38px; }
 .address-results button { font-size:14px; min-height:44px; }
 .submit-button { font-size:14px; min-height:48px; }
 .check-row, .check-row.consent { font-size:12px; }
 .section-heading h2,.faq-section h2 { font-size:clamp(27px,7.7vw,36px); line-height:1.12; }
 .quote-dialog-header h2 { font-size:27px; }
 .quote-dialog-header { gap:10px; }
 .quote-endpoints strong { font-size:13px; }
 .quote-breakdown { font-size:12px; }
 .quote-total strong { font-size:34px; }
 .quote-dialog-footer button { font-size:13px; }
 .quote-map-tabs button,.quote-fit { font-size:11px; }
 .seo-page h1 { font-size:clamp(29px,7.6vw,40px); }
 .telegram-miniapp .mini-brand strong { font-size:15px; }
}
@media (max-width:380px) {
 .brand-title { font-size:13px; }
 .hero h1 { font-size:clamp(32px,8.9vw,38px); }
 .booking-head h2 { font-size:26px; }
 .direction-tab { font-size:11px; }
 .quote-dialog { width:calc(100% - 10px); }
 .quote-dialog-footer { gap:10px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
}
