/* Canonical semantic type/control system. See docs/TYPOGRAPHY-SYSTEM.md. */
:root{
 --font-heading:'Libre Baskerville',Georgia,'Times New Roman',serif;
 --font-body:'DM Sans','DM Sans Variable','Manrope','Nirmala UI','Noto Sans Devanagari',system-ui,sans-serif;
 --font-script:'Nirmala UI','Noto Sans Devanagari','Mangal',var(--font-body);
 --type-heading-weight:400;--type-ui-weight:500;--type-strong-weight:600;
 --type-page-size:2rem;--type-page-line:1.3;--type-section-size:1.5rem;--type-section-line:1.35;
 --type-card-size:1.25rem;--type-card-line:1.4;--type-subhead-size:1.125rem;
 --type-body-size:1.0625rem;--type-body-line:1.6;--type-note-size:.875rem;--type-note-line:1.5;
 --type-caption-size:.75rem;--type-label-size:.75rem;--type-ui-size:.875rem;--type-ui-line:1.5;
 --type-reading-size:1.125rem;--type-reading-line:1.65;--type-script-line:1.7;--type-script-heading-line:1.5;
 --type-book-title-size:1rem;--type-book-title-line:1.4;--type-reading-ref-size:.875rem;
 --control-radius:.5rem;--control-height:2.75rem;--control-padding-y:.625rem;--control-padding-x:1rem;
 --text-title:var(--type-page-size);--text-section:var(--type-section-size);--text-card:var(--type-card-size);
 --text-body:var(--type-body-size);--text-body-line:var(--type-body-line);--text-note:var(--type-note-size);--text-label:var(--type-label-size);
 --text-article:var(--type-reading-size);--text-article-line:var(--type-reading-line);--reading-width:720px
}
body{font-family:var(--font-body);font-size:var(--type-body-size);font-weight:400;line-height:var(--type-body-line)}
#main h1,.type-page{font-family:var(--font-heading);font-size:var(--type-page-size);font-weight:var(--type-heading-weight);line-height:var(--type-page-line);letter-spacing:-.02em}
#main h2,.type-section{font-family:var(--font-heading);font-size:var(--type-section-size);font-weight:var(--type-heading-weight);line-height:var(--type-section-line);letter-spacing:-.015em}
#main h3,.type-card{font-family:var(--font-heading);font-size:var(--type-card-size);font-weight:var(--type-heading-weight);line-height:var(--type-card-line);letter-spacing:0}
#main h4,.type-subhead{font-family:var(--font-body);font-size:var(--type-subhead-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line);letter-spacing:0}
#main p,.type-body{font-family:var(--font-body);font-size:var(--type-body-size);font-weight:400;line-height:var(--type-body-line)}
#main :is(.small,p.small,.membership-note,.classes-trial-note p,.price-card>p,#featuredBlogs p,.form-help,.bread,.account-help),.type-note{font-family:var(--font-body);font-size:var(--type-note-size);line-height:var(--type-note-line)}
#main :is(.eyebrow,.type,.classes-formats,.programme-note),.type-label{font-family:var(--font-body);font-size:var(--type-label-size);font-weight:var(--type-strong-weight);line-height:var(--type-ui-line);letter-spacing:.1em}
#main :is(.btn,.tab,.home-link,.path-link,.inline-link,.field-row label),.nav-links a,.nav-more summary{font-family:var(--font-body);font-size:var(--type-ui-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line)}
#main .field-row :is(input,select,textarea){font-family:var(--font-body);font-size:1rem;line-height:var(--type-ui-line)}
#main :is(.practice-tile .tile-title,.mindfulness-card summary h3){font-family:var(--font-heading);font-size:var(--type-card-size);font-weight:var(--type-heading-weight);line-height:var(--type-card-line)}
#main :is(.practice-tile .tile-description,.classes-time-list dt,.classes-time-list dd span,.review-source,.review-source-link,.review-introduction>span,.teacher-portrait figcaption){font-size:var(--type-note-size);line-height:var(--type-note-line)}
#main :is(.workshop-row p,.community-links span,.class-details summary,.faq summary,.classes-time-list dd,.mindfulness-instructions p,.mindfulness-instructions li,.experience-intro>p,.experience-guidance p:not(.small),.workshop-copy p,.workshop-copy li){font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-line)}
#main .review-card blockquote{font-family:var(--font-heading);font-size:var(--type-card-size);font-weight:400;line-height:var(--type-card-line);letter-spacing:0}
#main .review-card footer h3{font-family:var(--font-body);font-size:var(--type-subhead-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line)}
#main .review-card footer p,.footer :is(p,a,small){font-family:var(--font-body);font-size:var(--type-note-size);line-height:var(--type-note-line)}
.footer h4{font-family:var(--font-body);font-size:var(--type-label-size);font-weight:var(--type-strong-weight);line-height:var(--type-ui-line)}
/* Long-form text is one deliberate reading role, retaining the user scale. */
#main .article-body,#main .reading-body{width:min(var(--reading-width),calc(100% - 48px));font-family:var(--font-body);font-size:calc(var(--type-reading-size) * var(--reader-scale,1));line-height:var(--type-reading-line);padding-top:40px;padding-bottom:48px;letter-spacing:0;overflow-wrap:break-word}
#main .article-body :is(p,li),#main .reading-body p:not(.small){font-size:calc(var(--type-reading-size) * var(--reader-scale,1));line-height:var(--type-reading-line);letter-spacing:0}
#main .article-body p,#main .reading-body p{margin-bottom:24px}
#main .article-body h2,#main .reading-body h2{font-size:var(--type-section-size);line-height:var(--type-section-line);margin:40px 0 20px}
#main .article-body h3,#main .reading-body h3{font-size:var(--type-card-size);line-height:var(--type-card-line);margin:36px 0 16px}
#main .article-body :is(h2,h3,h4):empty{display:none}
#main .article-body li{margin:12px 0}
#main .article-body :is(ul,ol){padding-left:24px;margin:24px 0}
#main:has(.article-body,.reading-body) .page-hero{padding:64px 0 24px;background:var(--paper)}
#main:has(.article-body,.reading-body) .page-hero .wrap,#main:has(.article-body,.reading-body)>.wrap-sm{width:min(var(--reading-width),calc(100% - 48px))}
#main:has(.article-body,.reading-body) .page-hero h1{margin:20px 0 24px}
#main:has(.article-body,.reading-body) .page-hero p{font-size:var(--type-note-size);line-height:var(--type-note-line);margin:0;color:var(--muted)}
#main .reading-body .sanskrit{font-family:var(--font-script);font-size:calc(1.375rem * var(--reader-scale,1));line-height:var(--type-script-line)}
#main :is(.mindfulness-instructions h3,.wisdom-chapter h3){font-family:var(--font-body);font-size:var(--type-subhead-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line)}
#main :is(h1,h2,h3,h4,p,li):lang(hi),#main :is(h1,h2,h3,h4):lang(sa),#main .article-body[lang=hi]{font-family:var(--font-script);letter-spacing:0}
#main :is(p,li):lang(hi),#main .article-body[lang=hi] :is(p,li){line-height:var(--type-script-line)}
#main :is(h1,h2,h3,h4):lang(hi),#main :is(h1,h2,h3,h4):lang(sa),body:has(.article-body[lang=hi]) #main .page-hero h1{font-family:var(--font-script);line-height:var(--type-script-heading-line);letter-spacing:0}
/* Named action/filter components. No universal button-radius override. */
.btn:not(.textual),.nav-links .account-nav,.hamburger{border-radius:var(--control-radius)}
.btn{min-height:var(--control-height);padding:var(--control-padding-y) var(--control-padding-x);gap:.5rem;font-family:var(--font-body);font-size:var(--type-ui-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line)}
.btn.textual{min-height:var(--control-height);padding:var(--control-padding-y) 0;border-radius:0}
#main .page-tools .tab{min-width:var(--control-height);min-height:var(--control-height);padding:var(--control-padding-y) 0;border:0;border-radius:0;background:transparent;color:var(--muted);font-family:var(--font-body);font-size:var(--type-ui-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line);text-underline-offset:7px;text-decoration-thickness:1px}
#main .page-tools{gap:24px;flex-wrap:wrap}
#main .page-tools .tab:is(:hover,.active,[aria-pressed=true]){background:transparent;color:var(--wine);text-decoration:underline}
.quiet-home .hero-btns .btn,.classes-hero-actions .btn{width:fit-content;max-width:100%;align-self:flex-start}
@media(max-width:734px){
 :root{--type-page-size:1.625rem;--type-section-size:1.3125rem;--type-card-size:1.125rem;--type-subhead-size:1.0625rem;--type-body-size:1rem;--type-reading-size:1.0625rem}
 #main:has(.article-body,.reading-body) .page-hero{padding:40px 0 16px}
 #main .article-body,#main .reading-body{padding-top:28px;padding-bottom:32px}
 #main .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #main .gallery-tile{min-width:0;width:100%}
}

/* Compact contact action; form input widths remain unchanged. */
#contact .btn{width:fit-content;max-width:100%;justify-self:start}

/* Public dialog roles share the page system; reader tool labels retain their explicit UI role. */
.dialog h2,#teacherStoryDialog h2{font-family:var(--font-heading);font-size:var(--type-section-size);font-weight:var(--type-heading-weight);line-height:var(--type-section-line)}
.dialog p{font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-line)}
.dialog :is(input,select,textarea){font-family:var(--font-body);font-size:1rem;line-height:var(--type-ui-line)}
.dialog .close{min-width:var(--control-height);min-height:var(--control-height);border-radius:var(--control-radius)}

/* Semantic refinements, 2026-10-24: calm mobile scale; no content or reader-scale resets. */
#main #page-about .about-lead{font-family:var(--font-body);font-size:var(--type-body-size);font-weight:400;line-height:var(--type-body-line)}
#main .gita-chapter-card h2{font-size:var(--type-card-size);font-weight:var(--type-heading-weight);line-height:var(--type-card-line)}
#main .quiet-classes .price-card .money{font-size:var(--type-section-size);line-height:var(--type-section-line)}
/* Article subheadings remain above the default prose size. User reading scale is intentional. */
#main .article-body h4,#main .reading-body h4{font-size:var(--type-subhead-size);font-weight:var(--type-ui-weight);line-height:var(--type-ui-line)}
