/* Locally hosted, OFL-licensed subsets; no third-party font requests. */
@font-face {
  font-family: "KFUPM Serif";
  src: url("assets/fonts/kfupm-serif-v10.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 650;
  font-display: swap;
}
@font-face {
  font-family: "KFUPM Sans";
  src: url("assets/fonts/kfupm-sans-v10.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 650;
  font-display: swap;
}
@font-face {
  font-family: "KFUPM Latin";
  src: url("assets/fonts/kfupm-serif-v10.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 650;
  font-display: swap;
  unicode-range: U+0000-024F, U+2000-206F, U+20A0-20CF, U+2248;
}
@font-face {
  font-family: "KFUPM Numerals";
  src: local("Times New Roman");
  font-weight: 400 500;
  unicode-range: U+0030-0039;
}
@font-face {
  font-family: "KFUPM Numerals";
  src: local("Times New Roman Bold");
  font-weight: 600 700;
  unicode-range: U+0030-0039;
}
:root {
  --serif: "Times New Roman", "KFUPM Serif", "Noto Serif SC", "Songti SC", SimSun, serif;
  --sans: "KFUPM Numerals", "KFUPM Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  --body-font: "Times New Roman", "KFUPM Latin", "KFUPM Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  --heading-font: var(--serif);
  --green: #183e36;
  --ink: #263e36;
  --muted: #626c61;
  --gold: #efd18a;
  --paper: #f8f6f0;
  --line: #dddcd1;
  --link: #b63e4c;
  --link-hover: #942c3a;
  --foil-gold: linear-gradient(112deg,#c39a45 0%,#f0d48d 20%,#fff1c0 34%,#d2aa54 49%,#ffe7a3 66%,#f5d686 82%,#caa34e 100%);
  --foil-red: linear-gradient(112deg,#a02d3e 0%,#bc4050 24%,#983044 47%,#c44754 68%,#a02c3d 100%);
}
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body-font);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.85;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
h1,h2,h3,h4,h5,h6 { font-family: var(--heading-font); }
button,input,select,summary,nav,.btn,.mobile-nav { font-family: var(--sans); }
strong,b { font-weight: 600; }

/* Masthead: quiet supporting type around the university wordmark. */
header { height: 100px; gap: 24px; background: #fffef9; border-bottom-color: var(--line); }
.brand { gap: 13px; min-width: 0; }
.brand,.brand:hover { color: var(--ink); }
.brand-icon { display: block; width: 68px; height: 68px; object-fit: contain; background: #fff; border-radius: 0; flex-shrink: 0; }
.brand b { font-family: var(--serif); font-size: 31px; font-weight: 600; letter-spacing: 1.2px; color: #245c45; }
.brand small,html[lang=en] .brand small { font-family: var(--sans); font-size: 11px; font-weight: 400; letter-spacing: .025em; line-height: 1.55; max-width: 245px; color: var(--muted); margin-top: 5px; }
nav { gap: 27px; font-size: 15px; font-weight: 500; letter-spacing: .025em; }
.lang { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.5; min-height: 42px; padding: 10px 12px; border-color: #c8cdc2; background: transparent; color: var(--ink); }
.lang span { padding: 0 5px; }

/* Editorial display type, generous leading and compact navigation. */
.hero,.funding { background: var(--green); color: #fffdf6; }
.hero-copy { padding-top: 64px; padding-bottom: 44px; }
.eyebrow,.hero .eyebrow,.number,.photo-top,.photo-caption>span,.download-card>span {
  font-family: var(--sans); font-size: 11px; font-weight: 500; line-height: 1.6; letter-spacing: .18em;
}
.eyebrow,.number,.modal-kicker { color: #646f5b; }
.hero .eyebrow,.funding .eyebrow { color: #f0d592; }
.hero-intro { font-size: 18px; font-weight: 400; line-height: 1.85; letter-spacing: .035em; margin-top: 32px; }
.hero h1,html[lang=en] .hero h1 {
  font-family: var(--serif); font-size: clamp(46px,4.2vw,64px); font-weight: 600;
  line-height: 1.3; letter-spacing: .01em; margin: 20px 0 28px; text-wrap: balance;
}
html[lang=en] .hero h1 { font-size: clamp(46px,4.35vw,68px); font-weight: 400; line-height: 1.12; letter-spacing: -.025em; }
.hero-text { font-size: 18px; line-height: 1.95; max-width: 30em; }
.hero-text br { display: none; }
.hero-intro,.hero-text,.funding-intro>p:last-child,.funding-content p { color: #d2d9cd; }
.hero-actions { gap: 28px; margin-top: 32px; }
.btn,.hero-actions .btn { font-size: 15px; font-weight: 500; line-height: 1.6; letter-spacing: .025em; padding: 14px 24px; min-height: 50px; }
.text-link { font-family: var(--sans); font-size: 14px; font-weight: 400; line-height: 1.65; }
.hero-stats { gap: 28px; margin-top: 46px; padding-top: 24px; border-color: #526a5d; }
.hero-stats>div { flex: 1; }
.hero-stats strong { font-family: var(--serif); font-size: 42px; font-weight: 400; line-height: 1.2; letter-spacing: -.015em; font-variant-numeric: lining-nums; color: #f4d58a; }
.hero-stats span,html[lang=en] .hero-stats span { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.65; letter-spacing: .035em; margin-top: 8px; color: #d2d9cd; }
.photo-top { color: #f0e7d5; }
.hero-photo:after { background: linear-gradient(180deg,#183e3638 0%,transparent 40%,#102a24e8 100%); }
.photo-caption>span { color: var(--gold); }
.photo-caption h2 { font-family: var(--serif); font-size: 30px; font-weight: 600; line-height: 1.5; letter-spacing: .025em; margin: 12px 0 18px; }
.photo-caption a { font-family: var(--sans); font-size: 12px; font-weight: 400; line-height: 1.6; }
.hero .text-link,.photo-caption a { color: #f3d99b; border-color: #ba9d61; }
.hero .text-link:hover,.photo-caption a:hover { color: #fff0c4; }
.path-strip,.admissions { background: #efefe6; border-color: var(--line); }
.path-strip { gap: 28px; }
.path-strip p { font-size: 15px; line-height: 1.8; }
.path-strip button { font-family: var(--sans); font-size: 15px; line-height: 1.7; gap: 14px; }
.path-strip button b { font-weight: 500; }
.path-strip button span,.steps b { font-family: var(--serif); font-size: 19px; font-weight: 400; font-style: normal; color: #777c63; }

.section { padding-top: 88px; padding-bottom: 88px; }
.section-heading { gap: 44px; margin-bottom: 36px; }
.section-heading h2,.funding h2,html[lang=en] .section-heading h2,html[lang=en] .funding h2 {
  font-family: var(--serif); font-size: clamp(30px,2.5vw,38px); font-weight: 600;
  line-height: 1.5; letter-spacing: .005em; text-wrap: balance;
}
html[lang=en] .section-heading h2,html[lang=en] .funding h2 { font-weight: 400; line-height: 1.25; letter-spacing: -.02em; }
.section-heading>p { font-size: 16px; line-height: 1.9; max-width: 420px; }
.section-heading>p,.results-top,.card-note,.steps p,.download-card p,.qr-card p,.contact p,.contact span,.contact small { color: var(--muted); }
.tabs { background: #e9ebe0; }
.tabs button { font-size: 16px; font-weight: 500; line-height: 1.5; padding: 12px 24px; }
.tabs button[aria-selected=true] { background: var(--green); color: #fffdf6; }
.tabs b { font-family: var(--serif); font-size: 15px; font-weight: 400; margin-left: 10px; }
.search,select,.program-card,.download-card,.semester { background: #fffefb; border-color: var(--line); }
.search { height: 52px; }
.search input,select { font-family: var(--sans); font-size: 16px; font-weight: 400; line-height: 1.5; }
.search input::placeholder { color: #68736a; opacity: 1; }
.filter-row { gap: 18px; padding: 22px 0; }
.filter-row label>span { font-family: var(--sans); font-size: 13px; font-weight: 500; line-height: 1.65; letter-spacing: .02em; color: #5b685b; }
select { height: 49px; padding: 11px 12px; }
.reset { font-size: 13px; font-weight: 400; line-height: 1.6; height: 44px; }
.results-top,.results-top>span { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.7; }
.results-top { padding-bottom: 16px; }

/* A consistent card hierarchy: host, degree, delivery and tuition. */
.cards { gap: 20px; }
.program-card { padding: 26px; min-height: 330px; box-shadow: 0 3px 14px #203d3105; }
.program-card:hover { box-shadow: 0 9px 25px #203d3110; border-color: #acb59f; }
.card-top,html[lang=en] .card-top { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.7; color: #64725f; align-items: start; }
.card-num { font-family: var(--serif); font-size: 18px; font-weight: 400; font-style: normal; line-height: 1.2; color: #7b806a; }
.program-card h3,html[lang=en] .program-card h3 { font-family: var(--sans); font-size: 22px; font-weight: 600; line-height: 1.5; letter-spacing: .005em; margin: 17px 0 8px; }
html[lang=en] .program-card h3 { font-family: var(--serif); font-size: 25px; font-weight: 600; line-height: 1.25; letter-spacing: 0; }
.program-card .en-title { font-family: var(--serif); font-size: 17px; font-weight: 400; line-height: 1.55; min-height: 3.1em; margin: 0 0 18px; color: #667262; }
html[lang=en] .program-card .en-title { font-family: var(--sans); font-size: 13px; line-height: 1.7; min-height: 3.4em; }
.card-meta { gap: 6px; margin-bottom: 18px; }
.tag { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.7; padding: 4px 8px; background: #eef0e6; color: #4e634f; }
.tag.match { background: #f2ead8; color: #75613a; }
.card-note { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.7; margin-bottom: 10px; }
.card-bottom { border-color: #e2e3d7; padding-top: 14px; flex-wrap: wrap; }
.card-bottom span { font-family: var(--sans); font-size: 14px; font-weight: 400; line-height: 1.6; }
.card-bottom b,.modal-block .bigprice,.price-band b { font-family: var(--serif); font-weight: 400; line-height: 1.25; font-variant-numeric: lining-nums tabular-nums; letter-spacing: -.015em; white-space: nowrap; }
.card-bottom b { color: #345646; font-size: 31px; }
.program-card .arrow { font-size: 21px; color: var(--link); }
.empty h3 { font-size: 24px; font-weight: 600; }
.empty p { font-size: 17px; }

/* Admissions and fees: readable prose with restrained supporting labels. */
.admission-grid article { background: #fffef9; border-top: 2px solid #59755f; padding: 34px; }
.admission-grid h3,.funding-content h3,.contact h3,.download-card h3,.qr-card h3 {
  font-family: var(--sans); font-size: 22px; font-weight: 600; line-height: 1.6; letter-spacing: .005em;
}
.admission-grid p,.funding-intro>p:last-child,.funding-content p,.modal-block p { font-size: 17px; line-height: 1.95; }
.score-row { gap: 50px; margin: 23px 0 26px; }
.score-row b { font-family: var(--serif); font-size: 44px; font-weight: 400; line-height: 1.15; color: #345646; }
.score-row b span { font-family: var(--serif); font-size: 21px; color: #69755f; }
.score-row small { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.7; margin-top: 8px; color: #69755f; }
summary { font-family: var(--sans); font-size: 15px; font-weight: 500; line-height: 1.8; }
.admission-grid details,.modal-block { border-color: var(--line); }
.steps { gap: 28px; margin-top: 46px; }
.steps h4,.modal-block h3 { font-family: var(--sans); font-size: 18px; font-weight: 600; line-height: 1.65; letter-spacing: .005em; }
.steps p { font-size: 15px; line-height: 1.9; }
.note,footer p { font-size: 14px!important; font-weight: 400; line-height: 1.9; color: #626c61; }
.funding-intro>p:last-child { line-height: 1.95; }
.funding-content h3 { margin-bottom: 20px; }
.price-band { gap: 14px 26px; flex-wrap: wrap; }
.price-band b { font-size: 35px; color: #f4d58a; padding: 0; border: 0; }
.funding-content .note { color: #bbc9b9; }
.funding-content article+article { border-color: #526a5d; padding-top: 32px; margin-top: 32px; }
.funding-callout { font-family: var(--sans); font-size: 14px; font-weight: 400; line-height: 1.9; color: #f1dba6; border-left: 2px solid #dfbd6e; background: linear-gradient(110deg,#e2bc5710,#ffffff04); }

.download-card,.download-card:hover { color: var(--ink); }
.download-card:hover { border-color: #9caa8f; }
.download-card>span { color: #64725f; font-size: 10px; letter-spacing: .12em; }
.download-card h3,.qr-card h3 { font-size: 21px; }
.download-card p,.qr-card p,.contact p { font-size: 15px; line-height: 1.9; }
.download-card b,.text-button { font-family: var(--sans); font-size: 14px; font-weight: 500; line-height: 1.8; }
.qr-card { background: #eeeee3; flex-wrap: wrap; }
.qr-card>div { flex: 1; min-width: 125px; }
.qr-card small { font-size: 13px; line-height: 1.7; }
.contact { border-color: var(--line); }
.contact h3 { font-size: 21px; }
.contact span,.contact small { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.8; }
.contact a { font-family: var(--body-font); font-size: 17px; line-height: 1.65; }
footer { background: #e9ebdf; }
footer>b { font-family: var(--serif); font-size: 28px; font-weight: 600; letter-spacing: 1px; }
footer p { font-size: 13px!important; color: #5f6c5c; line-height: 1.95; }
footer>div { font-family: var(--sans); font-size: 13px; line-height: 1.8; gap: 8px; }
.mobile-nav { font-size: 14px; font-weight: 500; line-height: 1.6; background: #fffef9f5; border-color: var(--line); box-shadow: 0 -3px 20px #203d3108; }
.mobile-nav a { padding: 7px; }
.mobile-nav a:first-child { color: var(--green); }

/* Detail sheets use the same scale as the page, including long curricula. */
dialog { max-width: 900px; padding: 46px; background: var(--paper); color: var(--ink); }
dialog::backdrop { background: #102b23c9; }
.close { background: var(--green); color: #fffdf6; font-family: var(--sans); font-weight: 400; font-size: 25px; }
.modal-kicker { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.8; letter-spacing: .03em; }
dialog h2 { font-family: var(--serif); font-size: 36px; font-weight: 600; line-height: 1.5; letter-spacing: .005em; text-wrap: balance; margin: 17px 0 10px; }
dialog .subtitle { font-family: var(--body-font); font-size: 18px; font-weight: 400; line-height: 1.8; color: #667262; }
.modal-meta { gap: 8px; margin: 25px 0; }
.modal-meta .tag { font-size: 14px; }
.modal-block { padding: 25px 0; }
.modal-block h3 { margin-bottom: 14px; }
.modal-block .bigprice { font-size: 38px; color: #345646; margin: 0 0 12px; }
.topics span { font-family: var(--body-font); font-size: 17px; font-weight: 400; line-height: 1.85; background: #eef0e6; color: #4e634f; }
.semester { padding: 18px; }
.semester summary { font-size: 16px; }
.semester ul { font-family: var(--body-font); font-size: 17px; line-height: 1.9; padding-left: 20px; }
.semester li { margin: 10px 0; overflow-wrap: anywhere; }
.semester code { font-family: var(--sans); font-size: 13px; font-weight: 500; line-height: 1.8; letter-spacing: .02em; color: #64725f; display: inline-block; margin-right: 10px; }
.modal-actions .btn,.modal-actions a { font-size: 14px; padding: 12px 18px; }

/* Preserve the approved green, gold and red metallic identity. */
nav a,.contact a,footer a,.text-button,.download-card b,.mobile-nav a { color: var(--link); }
nav a:hover,.contact a:hover,footer a:hover,.text-button:hover,.download-card:hover b,.mobile-nav a:hover { color: var(--link-hover); }
.contact a,footer a,.text-button,.download-card b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: #c7767a; }
a.btn.gold { background-color: #efd18a; background-image: var(--foil-gold); color: #243d32; border: 1px solid #e6c477; box-shadow: inset 0 1px 0 #fff6d4cc,inset 0 -1px 0 #9b78275c,0 3px 12px #061d1726; }
a.btn.gold:hover { background-color: #f5dc9c; background-image: var(--foil-gold); color: #18372b; filter: brightness(1.05); }
a.btn.green { background: var(--green); border: 1px solid var(--green); color: #fffdf6; }
a.btn.green:hover { background: #285247; color: #fffdf6; }
a.btn.outline { color: #b13d4a; border-color: #bd7377; background: transparent; box-shadow: inset 0 1px 0 #ffffffa6; }
a.btn.outline:hover { background: #f7ede8; color: #942c3a; }
.btn.outline { border-color: #b8bbaa; }
.btn.outline:hover { background: #edeedf; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline-color: #987b49; }
@supports ((background-clip:text) or (-webkit-background-clip:text)) {
  .brand b { background-image: linear-gradient(112deg,#153e30 0%,#387556 25%,#20563f 47%,#478060 70%,#153e30 100%); background-clip: text; -webkit-background-clip: text; color: transparent; }
  .hero-stats strong,.price-band b { background-image: var(--foil-gold); background-clip: text; -webkit-background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 1px 1px #081e1833); }
  nav a,.contact a,footer a,.text-button,.download-card b,.mobile-nav a:not(:first-child) { background-image: var(--foil-red); background-clip: text; -webkit-background-clip: text; color: transparent; }
  nav a:hover,.contact a:hover,footer a:hover,.text-button:hover,.download-card:hover b,.mobile-nav a:not(:first-child):hover { background-image: none; color: var(--link-hover); }
}
@media (max-width:1100px) {
  header { gap: 16px; }
  .brand-icon { width: 60px; height: 60px; }
  .brand b { font-size: 28px; }
  .brand small,html[lang=en] .brand small { max-width: 175px; font-size: 10px; }
  nav { gap: 14px; font-size: 13px; }
  .hero-copy { padding: 50px 8% 38px; }
  .hero h1 { font-size: 44px; }
  .hero-intro,.hero-text { font-size: 17px; }
  .hero-stats { gap: 16px; }
  .cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
  .path-strip { flex-wrap: wrap; gap: 15px 30px; }
  .path-strip p { flex-basis: 100%; }
  .section-heading>p { max-width: 330px; }
  .qr-card { justify-content: start; }
}
@media (max-width:760px) {
  html { scroll-padding-top: 100px; }
  body { font-size: 17px; line-height: 1.9; }
  header { height: 88px; gap: 8px; padding-left: 4%; padding-right: 4%; }
  .brand { gap: 9px; }
  .brand-icon { width: 56px; height: 56px; }
  .brand b { font-size: 27px; }
  .brand small,html[lang=en] .brand small { font-size: 10px; max-width: 168px; letter-spacing: 0; line-height: 1.5; }
  .lang { font-size: 12px; padding: 9px 7px; flex-shrink: 0; }
  .lang span { padding: 0 2px; }
  .hero-copy { padding: 42px 6% 34px; }
  .hero .eyebrow,.eyebrow,.photo-top,.photo-caption>span,.number { font-size: 10px; letter-spacing: .15em; }
  .hero-intro,html[lang=en] .hero-intro { font-size: 16px; margin-top: 27px; line-height: 1.9; letter-spacing: .02em; }
  .hero h1 { font-size: clamp(34px,10.25vw,44px); font-weight: 600; line-height: 1.4; letter-spacing: .005em; margin: 16px 0 23px; }
  html[lang=en] .hero h1 { font-size: clamp(38px,11vw,48px); font-weight: 400; line-height: 1.13; letter-spacing: -.025em; }
  .hero-text { font-size: 17px; line-height: 1.9; }
  .hero-actions { gap: 22px; margin-top: 28px; }
  .btn,.hero-actions .btn { font-size: 15px; padding: 13px 18px; }
  .text-link { font-size: 14px; }
  .hero-stats { gap: 12px; margin-top: 34px; padding-top: 22px; }
  .hero-stats strong { font-size: 37px; }
  .hero-stats span,html[lang=en] .hero-stats span { font-size: 12px; letter-spacing: 0; }
  .photo-caption h2 { font-size: 26px; margin: 10px 0 14px; }
  .photo-caption a { font-size: 11px; }
  .path-strip { gap: 6px; padding-top: 23px; padding-bottom: 23px; }
  .path-strip p { font-size: 14px; margin-bottom: 10px; }
  .path-strip button { font-size: 15px; line-height: 1.8; align-items: start; gap: 14px; }
  .path-strip button b { font-weight: 500; line-height: 1.8; }
  .section { padding-top: 58px; padding-bottom: 58px; }
  .section-heading { margin-bottom: 29px; }
  .section-heading h2,.funding h2,html[lang=en] .section-heading h2,html[lang=en] .funding h2 { font-size: 30px; line-height: 1.5; }
  html[lang=en] .section-heading h2,html[lang=en] .funding h2 { font-size: 33px; line-height: 1.25; }
  .section-heading>p { font-size: 16px; line-height: 1.9; max-width: none; margin-top: 20px; }
  .tabs button { font-size: 15px; padding: 12px; }
  .tabs b { font-size: 14px; margin-left: 8px; }
  .search input,select,.filter-row select { font-size: 16px; }
  .filter-row { padding: 19px 0 12px; gap: 12px; align-items: stretch; }
  .filter-row label { flex-basis: 100%; }
  .filter-row label>span { font-size: 13px; }
  .reset { font-size: 13px; height: 38px; }
  .results-top { flex-wrap: wrap; gap: 5px 14px; }
  .results-top,.results-top>span { font-size: 13px; }
  .results-top>span { max-width: 100%; text-align: left; }
  .cards { grid-template-columns: 1fr; gap: 16px; }
  .program-card { padding: 24px; min-height: 285px; }
  .program-card h3 { font-size: 22px; }
  html[lang=en] .program-card h3 { font-size: 25px; }
  .card-top,html[lang=en] .card-top { font-size: 13px; }
  .program-card .en-title { min-height: 0; font-size: 17px; margin-bottom: 18px; }
  html[lang=en] .program-card .en-title { font-size: 13px; min-height: 0; }
  .tag,.card-note { font-size: 13px; }
  .card-bottom b { font-size: 30px; }
  .card-bottom span { font-size: 14px; }
  .admission-grid article { padding: 26px; }
  .admission-grid h3,.funding-content h3,.contact h3,.download-card h3,.qr-card h3 { font-size: 21px; }
  .admission-grid p,.funding-intro>p:last-child,.funding-content p,.modal-block p { font-size: 17px; line-height: 1.9; }
  .score-row { gap: 40px; }
  .score-row b { font-size: 40px; }
  .score-row small { font-size: 13px; }
  summary { font-size: 15px; }
  .steps h4 { font-size: 17px; }
  .steps p { font-size: 15px; }
  .note { font-size: 14px!important; }
  .price-band { gap: 12px 24px; }
  .price-band b { font-size: 32px; }
  .funding-callout { font-size: 14px; }
  .download-card>span { font-size: 10px; }
  .download-card p,.qr-card p,.contact p { font-size: 15px; }
  .download-card b,.text-button { font-size: 14px; }
  .contact a { font-size: 17px; }
  .contact span,.contact small { font-size: 13px; }
  footer p { font-size: 13px!important; }
  footer>div { font-size: 13px; }
  .mobile-nav { font-size: 14px; }
  .mobile-nav a { padding: 7px; }
  dialog { padding: 31px 24px; width: calc(100% - 20px); }
  dialog h2 { font-size: 28px; line-height: 1.5; margin-top: 18px; }
  dialog .subtitle { font-size: 17px; line-height: 1.8; }
  .modal-kicker { font-size: 12px; letter-spacing: .01em; line-height: 1.8; }
  .modal-meta .tag { font-size: 13px; }
  .modal-block { padding: 23px 0; }
  .modal-block h3 { font-size: 18px; }
  .modal-block .bigprice { font-size: 34px; }
  .topics span,.semester ul { font-size: 17px; }
  .semester { padding: 14px; }
  .semester summary { font-size: 15px; }
  .semester code { font-size: 13px; }
  .modal-actions .btn,.modal-actions a { font-size: 14px; }
}
@media (max-width:360px) {
  .brand-icon { width: 48px; height: 48px; }
  .brand b { font-size: 25px; }
  .brand small,html[lang=en] .brand small { max-width: 130px; font-size: 9px; }
  .brand { gap: 7px; }
  .lang { font-size: 11px; padding: 9px 6px; }
  .hero-intro,html[lang=en] .hero-intro { font-size: 15px; }
  .hero-actions { gap: 18px; }
  .hero-stats span,html[lang=en] .hero-stats span { font-size: 11px; }
  .section-heading h2,.funding h2 { font-size: 28px; }
  .program-card { padding: 21px; }
  .score-row { gap: 26px; }
}
@media (forced-colors:active) {
  .brand b,.hero-stats strong,.price-band b,nav a,.contact a,footer a,.text-button,.download-card b,.mobile-nav a:not(:first-child) { background-image: none; color: CanvasText; filter: none; }
  a.btn.gold { background-image: none; color: ButtonText; }
}
