/* Kranti Yoga — Readable Typography v1 (October 2026)
   Loaded AFTER page CSS, premium header, and uppercase styling.
   Visual changes only: no backend values, links, user-entered text, or prices are modified. */
:root {
  --ky-type-body: clamp(16px, 1.18vw, 17px);
  --ky-type-card: clamp(16px, 1.08vw, 16.5px);
  --ky-type-control: 15px;
  --ky-type-label: 14px;
  --ky-type-line-height: 1.72;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-size: var(--ky-type-body); line-height: var(--ky-type-line-height); }

/* Public content: readable copy, without enlarging icons or decorative SVGs. */
body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main :is(p, li, dd, dt, blockquote),
body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main .kyo-section-head p {
  font-size: var(--ky-type-body) !important;
  line-height: 1.72 !important;
}
body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main :is(p, li, dd, dt, h1, h2, h3, h4) {
  overflow-wrap: break-word;
}
/* Keep introductory and lead copy larger than standard body text. */
body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main :is(.hero__content > p, .kyo-lead, .lead, .ky-contact-hero-lead, .ky-contact-intro > p) {
  font-size: clamp(18px, 1.42vw, 20px) !important;
  line-height: 1.65 !important;
}
/* Program and course cards previously used 13px. */
body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main :is(.program-card p, .kyo-course-body p, .kyo-faq-answer p, .ky-contact-explore p,
          .hero-card__row, .kyo-course-bottom span, .kyo-course-bottom a,
          .programs__foot p, .kyo-smallnote) {
  font-size: var(--ky-type-card) !important;
  line-height: 1.65 !important;
}
/* Buttons, text links and form controls throughout public pages. */
main :is(.btn, .kyo-btn, .kb-btn, .card-link, .text-link, .price-btn,
          .ky-contact-submit, .ky-contact-btn, .kyo-course-bottom a,
          .ks-btn, .ks-link-btn),
main button:not(.ky-mobile-toggle),
main :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: max(15px, 0.95rem) !important;
  line-height: 1.4 !important;
}
main :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: 16px !important; /* Prevent focus-zoom on iOS. */
}
main :is(label, .kb-form label, .kyo-filter-label) {
  font-size: 15px !important;
  line-height: 1.5 !important;
}
/* Metadata is smaller than paragraphs but never tiny. */
main :is(small, .kicker, .kyo-eyebrow, .kyo-kicker, .kyo-breadcrumb,
          .kyo-pill-list > span, .kyo-course-photo > span, .kyo-course-body small,
          .program-card__hours, .program-card__subtitle,
          .hero-card__label, .hero__stats span, .kyo-image-note span,
          .kyo-topic > span, .kyo-price-meta, .ky-contact-eyebrow) {
  font-size: var(--ky-type-label) !important;
  line-height: 1.5 !important;
  letter-spacing: min(.09em, 1.3px);
}
main :is(.program-card h3, .kyo-course-body h3) {
  line-height: 1.25 !important;
  overflow-wrap: break-word;
}
/* Restore readable labels and links in cards. */
main :is(.text-actions a, .kyo-course-bottom a, .hero-card > a,
          .kyo-course-topic, .program-card .card-link) {
  font-size: 15px !important;
  line-height: 1.55 !important;
}
/* Header: main nav keeps original desktop breakpoint, drawer links are larger. */
.kyp-utility-note, .kyp-utility-links a { font-size: 12px !important; }
.kyp-brand-detail small, .kyp-mega-eyebrow, .kyp-course-group h3 {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
.kyp-brand-detail strong { font-size: 13px !important; }
.kyp-mega-intro p, .kyp-course-group a, .kyp-simple-dropdown a {
  font-size: 14px !important;
  line-height: 1.55 !important;
}
.kyp-login, .kyp-explore { font-size: 13px !important; }
/* Footer Quick Links include 24 long uppercase labels; allow wrapping. */
.ky-footer-shell :is(p, .ky-footer-address, .ky-footer-cert-copy,
                     .ky-footer-contact-card, .ky-footer-quicklinks-subtitle) {
  font-size: 15px !important;
  line-height: 1.7 !important;
}
.ky-footer-shell .ky-footer-quicklinks-subtitle { font-size: 14px !important; letter-spacing: .07em; }
.ky-footer-quicklink {
  font-size: 14px !important;
  line-height: 1.45 !important;
  min-height: 42px;
  padding: 9px 14px !important;
  white-space: normal;
  overflow-wrap: break-word;
}
.ky-footer-shell :is(.ky-footer-action, .ky-footer-call-btn, .ky-footer-franchise) {
  font-size: 15px !important;
  line-height: 1.4 !important;
}
.ky-footer-bottom p { font-size: 14px !important; }

/* Student portal: text, lessons, input forms and data tables. */
.ks-body { font-size: 16px !important; line-height: 1.68 !important; }
.ks-body :is(.ks-note, .ks-booking p, .ks-card p, .kyl-learning-summary span,
              .kyl-description, .kyl-module-content p) {
  font-size: 16px !important;
  line-height: 1.7 !important;
}
.ks-body :is(.ks-nav a, .ks-user a, .ks-form label, .ks-login-links,
             .ks-btn, .ks-table, .kyl-card p) {
  font-size: 15px !important;
  line-height: 1.5 !important;
}
.ks-body :is(.ks-form input, .ks-form select, .ks-form textarea,
             .kyl-quiz-answer input) { font-size: 16px !important; }
.ks-body :is(.ks-stat small, .ks-pill, .ks-table th) {
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* Admin: readable dashboard, forms, enrollment tables and video manager. */
.kba-admin-v2 { font-size: 16px !important; line-height: 1.6 !important; }
.kba-admin-v2 :is(.kba-card p, .kpa-hero p, .kpa-heading-row p,
                  .kba-online-alert p, .kba-online-section-head p, .kba-help) {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
.kba-admin-v2 :is(.kba-nav-item, .kba-nav-group-title, .kba-sidebar-info small,
                  .kba-top-link, .kba-logout, .kpa-action strong,
                  .kba-online-form label, .kba-admin-form label,
                  .kba-filter label) {
  font-size: 14px !important;
  line-height: 1.45 !important;
}
.kba-admin-v2 :is(.kba-table, .kba-online-summary span,
                  .kpa-action small, .kpa-metric-copy small,
                  .kba-card-head span) {
  font-size: 14px !important;
  line-height: 1.55 !important;
}
.kba-admin-v2 :is(.kba-table th, .kba-pill, .kpa-metric-copy em) {
  font-size: 12.5px !important;
  line-height: 1.4 !important;
}
.kba-admin-v2 :is(.kba-admin-form input, .kba-admin-form textarea,
                  .kba-admin-form select, .kba-online-form input,
                  .kba-online-form select, .kba-online-form textarea,
                  .kba-filter input, .kba-filter select) {
  font-size: 16px !important;
  line-height: 1.45 !important;
}
.kba-admin-v2 :is(.kba-btn, .kpa-action, .kba-sidebar-website) {
  font-size: 14px !important;
  line-height: 1.45 !important;
}
.kba-admin-v2 :is(.kba-card, .kpa-action, .kba-online-editor, .kpa-metric-copy) {
  min-width: 0;
  overflow-wrap: break-word;
}
/* Standalone administrator sign-in uses a separate body class. */
.kpa-login-body .kpa-login-card :is(p, label, a, .kpa-login-note) {
  font-size: 15px !important;
  line-height: 1.55 !important;
}
.kpa-login-body .kpa-login-card :is(input, button) { font-size: 16px !important; }
.kpa-login-brand small { font-size: 13px !important; }

@media (max-width: 1024px) {
  :root { --ky-type-body: 16.5px; --ky-type-card: 16px; }
  .kyp-utility-note { font-size: 12px !important; }
  .kyp-nav :is(.kyp-menu-link, .kyp-simple-dropdown a, .kyp-course-group a) {
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
  .kyp-mobile-actions a { font-size: 15px !important; }
  .kba-admin-v2 .kba-table-wrap, .ks-body .ks-table-wrap { overflow-x: auto; }
}
@media (max-width: 640px) {
  :root { --ky-type-body: 16px; --ky-type-card: 16px; --ky-type-label: 13.5px; }
  body { line-height: 1.72; }
  body:not(.ks-body):not(.kba-body):not(.kpa-login-body) main :is(.hero__content > p, .kyo-lead, .lead) {
    font-size: 17px !important;
    line-height: 1.68 !important;
  }
  main :is(.hero h1, .kyo-hero h1) { line-height: 1.16 !important; }
  .kyp-utility-note, .kyp-utility-links a { font-size: 12px !important; }
  .kyp-mobile-actions a, .kyp-menu-link { font-size: 15px !important; }
  .ky-footer-shell :is(p, .ky-footer-address, .ky-footer-cert-copy) {
    font-size: 15px !important;
    line-height: 1.7 !important;
  }
  .ky-footer-quicklink { font-size: 14px !important; padding: 11px 12px !important; }
  .ky-footer-bottom p { font-size: 13.5px !important; }
  .ky-footer-quicklinks-list { row-gap: 10px; column-gap: 7px; }
  .ks-body :is(.ks-nav a, .ks-btn),
  .kba-admin-v2 :is(.kba-nav-item, .kba-btn) { font-size: 15px !important; }
  .kpa-login-body .kpa-login-card { padding: 24px 20px; }
  /* Ensure long UPPERCASE text does not force sideways scrolling. */
  main :is(p,li,h1,h2,h3,small,span),
  .ky-footer-quicklink, .kyp-nav a,
  .kba-admin-v2 :is(p,td,dd), .ks-body :is(p,td,dd) {
    overflow-wrap: anywhere;
  }
}
@media (max-width: 360px) {
  .ky-footer-quicklink { max-width: 100%; }
  .kyp-brand-detail small { font-size: 11px !important; }
}
