/* TB&Go typography: one locally hosted family for every first-party screen. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/static/v1/6df721a31517794a2bb74fafdd8bda141ada448d59f88ad3ce9e5b72b5b327ea/assets/fonts/dm-sans-v17-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/static/v1/6df721a31517794a2bb74fafdd8bda141ada448d59f88ad3ce9e5b72b5b327ea/assets/fonts/dm-sans-v17-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root {
  --font-app: 'DM Sans', Arial, sans-serif;
  --sans: var(--font-app);
  /* Compatibility alias for legacy components; no decorative second family. */
  --serif: var(--font-app);
  --type-title: clamp(28px, 2.8vw, 34px);
  --type-section: clamp(21px, 2.1vw, 24px);
  --type-body: 16px;
  --type-label: 13px;
}
body { font-family: var(--font-app); font-size: var(--type-body); line-height: 1.55; }
button, input, select, textarea, summary, code, pre, kbd, samp { font-family: var(--font-app); }
h1, h2, h3, h4 { font-family: var(--font-app); font-weight: 650; line-height: 1.25; letter-spacing: -.025em; }
.intro h1, .admin-app .admin .intro h1, .settings-intro h1,
.admin-app .admin-intro h1, .reservations-app .admin-intro h1 {
  font: 700 var(--type-title)/1.2 var(--font-app) !important;
  letter-spacing: -.035em !important;
}
body:not(.admin-app) .intro h1 { font-size: clamp(30px, 4vw, 44px) !important; }
.intro h1 i { font-style: normal; font-weight: inherit; }
h2, .step-title h2, .service-calendar-title h2, .reservations-app .service-calendar-title h2,
.service-day-group>h2, .reservation-analytics>summary, .service-tools-dialog-title h2,
.booking-detail-title h2, .success h2 {
  font: 650 var(--type-section)/1.25 var(--font-app);
  letter-spacing: -.025em;
}
h3, .experience-menu h3, .reservation-analytics h3 {
  font: 600 20px/1.3 var(--font-app);
  letter-spacing: -.02em;
}
.card strong, .menu-options button strong, .service-block-heading strong {
  font: 650 20px/1.3 var(--font-app);
  letter-spacing: -.02em;
}
.summary strong, .crm-summary strong, .analytics-kpis strong,
.admin-app .summary strong { font: 650 30px/1.2 var(--font-app); font-variant-numeric: tabular-nums; }
.booking h3, .service-block-list .booking h3, .booking-detail .booking h3 {
  font: 650 22px/1.3 var(--font-app); letter-spacing: -.02em;
}
.calendar-header h3 { font: 600 20px/1.3 var(--font-app); }
label, .label { font-size: var(--type-label); font-weight: 600; text-transform: none; letter-spacing: .01em; }
input, select, textarea { font: 400 16px/1.45 var(--font-app); }
.primary, .secondary, .danger, .text-danger, .calendar-refresh {
  font-family: var(--font-app); font-size: 14px; font-weight: 600;
  line-height: 1.35; letter-spacing: 0; text-transform: none;
}
.kicker, .topbar-eyebrow { font-family: var(--font-app); font-size: 12px; font-weight: 600; letter-spacing: .08em; }
.reservation-row, .customer-row, .slots, .calendar-days,
.service-calendar-days, .reservation-fact dd, time, .reservation-print-content {
  font-variant-numeric: tabular-nums;
}
.reservation-print-content h1 { font: 700 24px/1.25 var(--font-app); }
@media (max-width: 820px) {
  /* 16px form controls avoid unintended iOS zoom; keep row metadata compact. */
  input:not([type=checkbox]):not([type=radio]), select, textarea,
  .reservations-app .service-advanced input, .reservations-app .service-advanced select,
  .reservations-app #filter-date { font-size: 16px; }
  .booking-detail-title h2 { font-size: 22px; }
}
