/* One fluid type scale for the theme and its previews. Loaded after page styles.
   Keep labels/navigation compact; scale reading and display text by viewport. */
:root {
  --koyo-type-hero:clamp(32px,calc(24px + 2.5vw),60px);
  --koyo-type-title:clamp(30px,calc(22px + 2.2vw),54px);
  --koyo-type-section:clamp(26px,calc(20px + 1.9vw),46px);
  --koyo-type-subheading:clamp(22px,calc(18px + 1.15vw),34px);
  --koyo-type-card:clamp(20px,calc(18px + .45vw),24px);
  --koyo-type-body:clamp(16px,calc(15px + .22vw),18px);
  --koyo-type-reading:clamp(17px,calc(16px + .15vw),18px);
}
html body main h1,
html body :is(.home-hero-oct,.work-hero,.contact-hero,.news-hero,.doctors-hero,.partners-hero,.gift-hero,.koyo-page-hero,.koyo-library,.koyo-doctor-profile) h1,
html body .work-page .work-hero h1,
html body.koyo-chat-brand.koyo-chat-pdf main :is(.chat-pdf-hero,.ko-hero) h1,
html body.koyo-chat-brand main h1.ko-hero-h1 {
  font-size:var(--koyo-type-hero)!important;line-height:1.1!important;
  overflow-wrap:break-word;max-width:100%;
}
html body .koyo-library h1,
html body main.koyo-editorial-single .koyo-post-header h1,
html body .koyo-doctor-profile h1,
html body main .result-empty-title,
html body main h1.h1 {
  font-size:var(--koyo-type-title)!important;line-height:1.14!important;
}
html body main h2,
html body main :is(.doctor-network-copy,.question-heading,.journey-copy,.home-features-oct,.home-business-oct,.reviews,.final,.work-page,.contact-content,.news-stories,.news-download,.partners-directory,.partners-download,.gift-guide,.audio-clinic,.gift-download,.koyo-team-about,.koyo-reviewed) h2,
html body .work-page h2,
html body.koyo-chat-brand.koyo-chat-pdf main :is(#stories,#why,#how-it-works,#pricing,#doctors,#contact,.chat-pdf-section,.doctor-network,.home-features-oct,.home-pricing) h2,
html body.koyo-chat-brand.koyo-chat-pdf main #doctors.doctor-network h2,
html body.koyo-chat-brand main :is(h2.ko-h2,h2.ko-need-title),
html body .koyo-articles-download h2 {
  font-size:var(--koyo-type-section)!important;line-height:1.16!important;
  overflow-wrap:break-word;
}
html body main h3,
html body .work-page h3,
html body main :is(.business-scenarios,.business-reasons,.business-value-grid) h3,
html body main .koyo-app-features h3,
html body.koyo-chat-brand.koyo-chat-pdf main #why .chat-pdf-concern-grid h3 {
  font-size:var(--koyo-type-card)!important;line-height:1.3!important;
  overflow-wrap:break-word;
}
/* Editorial cards remain subordinate to the page and section headings. */
html body .koyo-library .koyo-card :is(h2,h3),
html body .koyo-library-card h3,
html body .koyo-category-picture h3 {
  font-size:var(--koyo-type-card)!important;line-height:1.3!important;
}
html body .koyo-library .koyo-featured-story .koyo-card :is(h2,h3) {
  font-size:clamp(24px,calc(21px + .7vw),32px)!important;line-height:1.25!important;
}
html body .koyo-library .koyo-trending-list .koyo-card :is(h2,h3) {
  font-size:clamp(17px,calc(16px + .2vw),19px)!important;line-height:1.3!important;
}
html body .koyo-library .koyo-library-section>header h2,
html body .koyo-category-slider h2,
html body .koyo-recommended>h2,
html body .koyo-trending-list>h2,
html body main.koyo-editorial-single .koyo-post-content h2 {
  font-size:var(--koyo-type-subheading)!important;line-height:1.25!important;
}
html body main.koyo-editorial-single .koyo-post-content h3 {
  font-size:var(--koyo-type-card)!important;line-height:1.3!important;
}
html body main p,
html body .koyo-library .koyo-card p,
html body.koyo-chat-brand.koyo-chat-pdf main p,
html body.koyo-chat-brand.koyo-chat-pdf main #why .chat-pdf-concern-grid p,
html body.koyo-chat-brand.koyo-chat-pdf main .doctor-network-copy p,
html body .koyo-articles-download p {
  font-size:var(--koyo-type-body)!important;line-height:1.7!important;
}
html body main.koyo-editorial-single .koyo-post-content,
html body main.koyo-editorial-single .koyo-post-content :is(p,li) {
  font-size:var(--koyo-type-reading)!important;line-height:1.8!important;
}
html body main :is(.koyo-post-position,.koyo-review-note,.koyo-category-hint,.home-pricing-note),
html body.koyo-chat-brand.koyo-chat-pdf main .home-pricing-note {font-size:14px!important;line-height:1.6!important}
html body main .koyo-post-byline a {text-decoration:underline;text-underline-offset:3px}
html body main .koyo-post-byline a:focus-visible {outline:2px solid currentColor;outline-offset:4px}
/* The standalone quiz intentionally uses a narrower app canvas, not a marketing hero. */
html body #app h1.h1 {font-size:clamp(30px,calc(27px + .8vw),38px)!important;line-height:1.16!important}
html body #app .q {font-size:clamp(21px,calc(19px + .5vw),25px)!important;line-height:1.3!important}
html body #app :is(.body-t,.hero-sub) {font-size:var(--koyo-type-body)!important;line-height:1.7!important}
html body main input:not([type=checkbox]):not([type=radio]),
html body main :is(select,textarea) {font-size:16px!important}
/* Allow enlarged text and long titles to wrap rather than be cut off. */
html body main :is(h1,h2,h3,p) {text-overflow:clip}
@media(max-width:700px){
  html body main :is(.koyo-card,.koyo-library-card,.chat-pdf-concern-grid article){min-width:0}
  html body main :is(h1,h2,h3){max-width:100%;word-break:normal}
}
