/* UHAKPEOPLE typography. These are the only screen type sizes for connected V2 pages.
 * Change the base values here. Layout styles belong to the school/district CSS.
 * Reading sizes: normal 16px, large 18px, larger 20px for body text.
 * Font weights 400/700 match the two font files already supplied by the site.
 */
[data-up-reading] {
  --up-reading-scale:1;
  --up-page-base:36px; --up-section-base:28px; --up-subtitle-base:22px;
  --up-detail-base:18px; --up-body-base:16px; --up-note-base:14px;
  --up-label-base:13px; --up-control-base:16px;
  --up-summary-base:20px; --up-fact-base:26px; --up-price-base:40px;
  --up-text-page:calc(var(--up-page-base) * var(--up-reading-scale));
  --up-text-section:calc(var(--up-section-base) * var(--up-reading-scale));
  --up-text-subtitle:calc(var(--up-subtitle-base) * var(--up-reading-scale));
  --up-text-detail:calc(var(--up-detail-base) * var(--up-reading-scale));
  --up-text-body:calc(var(--up-body-base) * var(--up-reading-scale));
  --up-text-note:calc(var(--up-note-base) * var(--up-reading-scale));
  --up-text-label:calc(var(--up-label-base) * var(--up-reading-scale));
  --up-text-summary:calc(var(--up-summary-base) * var(--up-reading-scale));
  --up-text-fact:calc(var(--up-fact-base) * var(--up-reading-scale));
  --up-text-price:calc(var(--up-price-base) * var(--up-reading-scale));
  --up-leading-body:1.75; --up-leading-heading:1.4;
  font-size:var(--up-text-body); font-weight:400; line-height:var(--up-leading-body);
}
[data-up-reading][data-reading-size="large"] {--up-reading-scale:1.125}
[data-up-reading][data-reading-size="larger"] {--up-reading-scale:1.25}
/* Mobile: one 2px step larger than the compact preset; minimum text 14px.
 * Desktop keeps 16/18/20px. Mobile reading options are 14/16/18px. */
@media screen and (max-width:700px) {
  [data-up-reading] {
    --up-page-base:26px;--up-section-base:22px;--up-subtitle-base:18px;
    --up-detail-base:16px;--up-body-base:14px;--up-note-base:14px;
    --up-label-base:14px;--up-control-base:14px;--up-summary-base:18px;
    --up-fact-base:20px;--up-price-base:34px;--up-leading-body:1.7;
  }
  [data-up-reading][data-reading-size="large"] {--up-reading-scale:1.1428571429}
  [data-up-reading][data-reading-size="larger"] {--up-reading-scale:1.2857142857}
}
[data-up-reading] :is(h1,h2,h3,h4,h5,h6,strong,b) {font-weight:700}
[data-up-reading] h1 {font-size:var(--up-text-page);line-height:var(--up-leading-heading);letter-spacing:-.035em}
[data-up-reading] h2 {font-size:var(--up-text-section);line-height:var(--up-leading-heading);letter-spacing:-.03em}
[data-up-reading] h3 {font-size:var(--up-text-subtitle);line-height:1.45;letter-spacing:-.025em}
[data-up-reading] :is(h4,h5,h6) {font-size:var(--up-text-detail);line-height:1.5;letter-spacing:-.015em}
[data-up-reading] :is(p,li,td,dd,address,.detail-body) {font-size:var(--up-text-body);line-height:var(--up-leading-body)}
[data-up-reading] :is(dt,small,.section-note,.school-card-en,.school-en,.section-heading p,.fee-term,.fee-explanation,.budget-note,.fact-note,.document-list p,.info-rows dd span,.source-detail summary small,.wide-details summary small,.support-flow summary small,.related-district-grid small,.related-school-card small,.commute-note p,.separate-fee-row p) {font-size:var(--up-text-note);line-height:1.65}
[data-up-reading] .school-en {font-size:var(--up-text-detail);line-height:1.5}
[data-up-reading] :is(.small-label,.eyebrow,.course-kicker,.step-stage,.path-level,.year-label,.filter-count,.breadcrumb,.tags span,.sub-tag,.hero-facts dt,.hero-facts small,.number-strip dt,.fee-breakdown dt>span,.separate-fee-row small) {font-size:var(--up-text-label);line-height:1.6}
[data-up-reading] :is(.eyebrow,.small-label,.course-kicker,.step-stage,.path-level) {letter-spacing:.025em}
[data-up-reading] :is(.info-rows dd strong,.document-list strong,.key-facts dd>strong.text-value,.program-card>strong,.feature-rows strong,.level-card>strong) {font-size:var(--up-text-detail);line-height:1.55}
/* Hero summary values use their own scale, separate from prominent statistics. */
[data-up-reading] :is(.hero-facts dd,.hero-facts .word-value) {font-size:var(--up-text-summary);line-height:1.45;letter-spacing:-.025em;font-weight:700}
[data-up-reading] :is(.number-strip dd,.key-facts dd>strong,.intake-months,.intake-row strong,.housing-age,.budget-total strong,.phone-link) {font-size:var(--up-text-fact);line-height:1.45;letter-spacing:-.025em;font-weight:700}
[data-up-reading] :is(.hero-facts dd span,.number-strip dd span,.key-facts dd>strong span,.price>span,.phone-link span) {font-size:var(--up-text-note);line-height:1.6;letter-spacing:0}
[data-up-reading] .price {font-size:var(--up-text-price);line-height:1.4;letter-spacing:-.035em;font-weight:700;white-space:normal;overflow-wrap:anywhere}
[data-up-reading] :is(.fee-breakdown dd,.fee-breakdown .sum,.budget-total,.separate-fee-row b,.wide-details summary strong,.support-flow summary strong,.plain-details summary strong,.source-detail summary strong) {font-weight:700}
[data-up-reading] :is(.wide-details summary strong,.support-flow summary strong,.plain-details summary strong) {font-size:var(--up-text-detail);line-height:1.5}
[data-up-reading] :is(.check-list,.plain-list,.life-fact-list,.document-list,.feature-rows,.detail-rows,.fee-breakdown>div,.separate-fee-row b) {font-size:var(--up-text-body);line-height:var(--up-leading-body)}
[data-up-reading] :is(.section-number,.step-number,.step-index,.roadmap-number,.document-list li>span) {font-size:var(--up-label-base);font-weight:700;line-height:1.5;letter-spacing:0}
[data-up-reading] :is(.button,.badge,.section-nav a,.school-filter button,.gallery-filters button,.plain-details summary,.course-card summary,select,input,.school-search label,.fee-controls label,.mobile-consult a) {font-size:var(--up-control-base);line-height:1.5;letter-spacing:0}
[data-up-reading] :is(.button,.badge,.section-nav a,.school-filter button,.gallery-filters button,.mobile-consult a) {font-weight:700}
[data-up-reading] :is(.zoom-mark,.to-top,.icon-button,.dialog-close) {font-size:24px;line-height:1}
[data-up-reading] :is(.agent-toggle span,.agent-caption,.share-inner label) {font-size:var(--up-label-base);line-height:1.5}
/* Photo captions are smaller than section subtitles and follow reading preferences. */
[data-up-reading] .gallery-item h3 {font-size:var(--up-text-body);font-weight:700;line-height:1.5;letter-spacing:-.015em}
[data-up-reading] .gallery-item p {font-size:var(--up-text-note);font-weight:400;line-height:1.65;letter-spacing:0}
/* District introduction leads and feature titles use the detail-title role. */
[data-up-district-v2][data-up-reading] #overview :is(.prose>h3,.district-feature>h3) {font-size:var(--up-text-detail);font-weight:700;line-height:1.5;letter-spacing:-.015em}
/* Heights follow content at every reading size. */
[data-up-reading] :is(.course-summary,.school-card-en,.program-card>strong,.program-card p,.feature-rows>div) {min-height:0}
[data-up-reading] :is(.title-row,.hero-copy,.section-content,.info-panel,.level-card,.program-card,.district-school-card,.course-card,.fee-total,.fee-breakdown,.boarding-facts,.detail-body) {min-width:0}
[data-up-reading] :is(.info-rows dd,.detail-rows dd,.fee-breakdown dt,.fee-breakdown dd,.section-heading h2) {overflow-wrap:anywhere}
[data-up-reading] :is(.hero-actions,.final-actions,.location-links) {flex-wrap:wrap}
[data-up-reading] .title-row {align-items:center;gap:12px 16px}
[data-up-reading] .title-row h1 {flex:1 1 100%;min-width:0}
[data-up-reading] .up-reading-tools {position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
[data-up-reading] .up-reading-tools .badge {display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:8px 11px;border:1px solid var(--up-ui-line, #8b7a9a);border-radius:6px;background:#fff;color:#603d80;font-size:14px;font-weight:700;line-height:1.4;white-space:nowrap}
[data-up-reading] .up-reading-tools .badge:hover {background:#f3eef7;border-color:#603d80}
[data-up-reading] .up-reading-tools svg {width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
[data-up-reading] .up-reading-symbol {font-size:16px;line-height:1}
[data-up-reading] .up-reading-symbol sup {font-size:11px;vertical-align:super}
[data-up-reading] .up-reading-size {position:relative}
[data-up-reading] .up-reading-popover {position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 9px);z-index:50;width:250px;max-width:calc(100vw - 36px);padding:16px;border:1px solid var(--up-ui-line, #8b7a9a);border-radius:9px;background:#fff;box-shadow:0 8px 25px #30203f1c}
[data-up-reading] .up-reading-popover p {font-size:16px;font-weight:700;line-height:1.5;margin:0 0 12px;color:#262332}
[data-up-reading] .up-reading-options {display:flex;gap:6px}
[data-up-reading] .up-reading-options button {flex:1;min-height:44px;border:1px solid var(--up-ui-line, #8b7a9a);border-radius:5px;background:#fff;font-size:14px;line-height:1.4;font-weight:700;padding:8px 4px;color:#554763}
[data-up-reading] .up-reading-options button[aria-pressed="true"] {background:#603d80;border-color:#603d80;color:#fff}
[data-up-reading] .up-reading-tools [hidden] {display:none!important}
[data-up-reading] .up-reading-status {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[data-up-reading] :is(.up-print-heading,.up-print-source) {display:none}
@media(min-width:1100px) {
  [data-up-reading] .title-row h1 {flex:0 1 auto}
}
@media(max-width:360px) {
  [data-up-reading] .up-reading-tools {gap:6px}
  [data-up-reading] .up-reading-tools .badge {padding:8px}
}

/* Reset the legacy standalone share badge placement inside the shared toolbar. */
[data-up-reading] .title-row .up-reading-tools .share {order:0;margin:0;align-self:auto;min-height:42px}

/* Retain the existing print stylesheet's fact size for the printed summary. */
@media print {
  [data-up-reading] {--up-summary-base:var(--up-fact-base)}
}

/* Avoid iOS focus zoom without shrinking the touch targets. */
@media screen and (max-width:700px){
 [data-up-reading] :is(input,select,textarea){font-size:16px}
}
