/* Language switcher, suggestion banner, legal-language note and right-to-left hooks.
   The build appends per-language font stacks generated from locales/languages.json. */
.language-switcher{display:flex;align-items:center;gap:14px}
.language-menu{position:relative}
.language-menu summary{cursor:pointer;list-style:none}
.language-menu summary::-webkit-details-marker{display:none}
.language-menu>div{position:absolute;top:calc(100% + 10px);inset-inline-end:0;z-index:20;display:grid;gap:8px;min-width:170px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 25px #0e2a4718}
/* Suggestion: a dismissible card laid over the top of the first section, below the sticky header, on the
   inline-end side (decorative image or heading area, no controls). Absolutely positioned, so header and main
   never move, and it scrolls away with the page. lang.js waits for the cookie banner to close first. */
.lang-suggest{position:absolute;z-index:9;top:83px;inset-inline-end:16px;max-width:min(420px,calc(100% - 32px));display:flex;align-items:center;gap:12px;padding:10px 10px 10px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 35px #0e2a4726;color:var(--ink);font-size:13px}
.lang-suggest[hidden]{display:none}
.lang-suggest p{margin:0}
.lang-suggest a{font-weight:650}
.lang-suggest button{flex-shrink:0;border:0;background:transparent;color:inherit;font-size:18px;line-height:1;padding:6px 8px;cursor:pointer}
/* Footer: language links sit in the existing legal-links row; the legal-language note is inline in the copyright row. */
.legal-language-note{color:var(--muted);font-size:inherit}
/* Quotations follow their own direction (English quotes keep the border on their start side). */
.examiner-report blockquote{border-left:0;padding-left:0;border-inline-start:3px solid #b89b6c;padding-inline-start:20px}

/* Right-to-left pages: mirror the horizontal asymmetries of landing-v2.css and communication-v3.css. */
[dir="rtl"] .skip{left:auto;right:15px}
[dir="rtl"] .image-credit{text-align:left}
[dir="rtl"] .photo-ribbon{margin-left:0;margin-right:35px}
[dir="rtl"] .amount small{margin-left:0;margin-right:5px}
[dir="rtl"] .draft{border-left:0;border-right:3px solid #c5a26a}
[dir="rtl"] .takeaway{border-left:0;border-right:2px solid #789786}
[dir="rtl"] .system-note{border-left:0;border-right:3px solid var(--gold);padding:6px 24px 6px 0}
[dir="rtl"] .process-outcome{border-left:0;border-right:3px solid var(--gold);padding:8px 19px 8px 0}
[dir="rtl"] .process-film-row ol{padding-left:0;padding-right:22px}
[dir="rtl"] .carousel-selectors button{text-align:right}
[dir="rtl"] .syllabus-diagram a{border-left:0;border-right:3px solid #c2a373}
[dir="rtl"] .syllabus-update{border-left:0;border-right:4px solid #b89b6c}
[dir="rtl"] .campaign-portrait figcaption{left:20px;right:28px}
[dir="rtl"] .campaign-portrait small{left:auto;right:28px}
[dir="rtl"] .sales-message{padding-left:32px;padding-right:max(32px,calc((100vw - 1280px)/2))}
[dir="rtl"] .sales-shade,[dir="rtl"] .hero-a:after{transform:scaleX(-1)}
[dir="rtl"] .sales-backdrop,[dir="rtl"] .founder-evidence img{object-position:left center}
@media(max-width:1100px) and (min-width:801px){[dir="rtl"] .sales-backdrop{left:0;right:30%}}

/* Joined and complex scripts must not get the negative heading letter-spacing used for Latin and Cyrillic. */
[data-script="Arab"] *,[data-script="Deva"] *,[data-script="Beng"] *,[data-script="Thai"] *{letter-spacing:0!important}

/* Compact header menu (more than two other languages): not one of the FAQ disclosures, so drop their
   borders, padding and +/− marker; a small caret marks it as a menu. */
.language-menu,.language-menu:first-child{border:0;padding:0}
.language-menu summary{display:flex;align-items:center;gap:5px;font-weight:600;min-height:32px}
.language-menu summary:after,.language-menu[open] summary:after{content:'▾';font-size:9px;color:inherit}
/* Phones: the open menu spans the width under the header (the sticky header is its containing block). */
@media(max-width:760px){.language-menu{position:static}.language-menu>div{top:100%;inset-inline:16px;min-width:0;grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}}

/* Arabic-script pages. Latin text, digits and arrow/symbol characters use the Latin font stack (local aliases
   restricted by unicode-range, listed before the Arabic fonts); where no local font matches, the next family
   is used. U+200C-200F stay with the Arabic font because they take part in its shaping. */
@font-face{font-family:"RY Latin Sans";src:local("Inter"),local("Segoe UI"),local("Helvetica Neue"),local("Arial"),local("Roboto"),local("DejaVu Sans");unicode-range:U+0021-007E,U+00A1-00FF,U+0131,U+0152-0153,U+2013-2014,U+2018-201E,U+2022,U+2026,U+20AC,U+2122}
@font-face{font-family:"RY Latin Serif";src:local("Source Serif 4"),local("Georgia"),local("Times New Roman"),local("DejaVu Serif"),local("Noto Serif");unicode-range:U+0021-007E,U+00A1-00FF,U+0131,U+0152-0153,U+2013-2014,U+2018-201E,U+2022,U+2026,U+20AC,U+2122}
@font-face{font-family:"RY Glyphs";src:local("Segoe UI Symbol"),local("Segoe UI"),local("Apple Symbols"),local("Arial Unicode MS"),local("DejaVu Sans"),local("Noto Sans Symbols 2"),local("Arial");unicode-range:U+2190-21FF,U+2303,U+25A0-25FF,U+2713-2717,U+2715,U+00D7}
:root[data-script="Arab"][lang="ur"]{--sans:"RY Glyphs","RY Latin Sans","Noto Nastaliq Urdu","Noto Sans Arabic",Inter,'Segoe UI',Arial,sans-serif;--serif:"RY Glyphs","RY Latin Serif","Noto Nastaliq Urdu","Noto Sans Arabic",'Source Serif 4',Georgia,serif}
:root[data-script="Arab"][lang="ar"]{--sans:"RY Glyphs","RY Latin Sans","Noto Naskh Arabic","Noto Sans Arabic",Inter,'Segoe UI',Arial,sans-serif;--serif:"RY Glyphs","RY Latin Serif","Noto Naskh Arabic","Noto Sans Arabic",'Source Serif 4',Georgia,serif}
/* Nastaliq stacks letters diagonally and reaches far above and below the line: body text needs about 1.9,
   display sizes about 1.5. On wide screens the largest display sizes are capped so headlines keep a similar
   number of lines; heading words get a little extra space because Nastaliq strokes overhang the word edges. */
[data-script="Arab"] body{line-height:1.9}
[data-script="Arab"] :is(p,li,dd,dt,blockquote,figcaption,td,th,label,small,.hero-lead,.lead,.fine,.hero-fine,.caption){line-height:1.9!important}
[data-script="Arab"] :is(h1,h2,h3,h4,.amount,.founding-price,.course-code){line-height:1.5!important}
[data-script="Arab"] :is(.button,.text-link,.tab,summary,.paper-link){line-height:1.7!important}
[data-script="Arab"] :is(h1,h2,h3){word-spacing:.12em}
@media(min-width:1100px){html[lang="ur"] h1{font-size:clamp(40px,3.5vw,52px)!important}html[lang="ur"] h2{font-size:clamp(30px,2.8vw,42px)!important}}
/* Latin fragments (paper codes, product names) keep a visible gap from the joined script around them. */
[dir="rtl"] :is(bdi,span[dir="ltr"],abbr[dir="ltr"]){margin-inline:.18em}

/* Generated from locales/languages.json */
html[data-script="Hans"][lang="zh-Hans"]{--sans:"Noto Sans SC",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Sans SC",'Source Serif 4',Georgia,serif}
html[data-script="Hant"][lang="zh-Hant-HK"]{--sans:"Noto Sans HK",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Sans HK",'Source Serif 4',Georgia,serif}
html[data-script="Arab"][lang="ur"]{--sans:"Noto Nastaliq Urdu","Noto Sans Arabic",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Nastaliq Urdu","Noto Sans Arabic",'Source Serif 4',Georgia,serif}
html[data-script="Deva"][lang="hi"]{--sans:"Noto Sans Devanagari",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Sans Devanagari",'Source Serif 4',Georgia,serif}
html[data-script="Beng"][lang="bn"]{--sans:"Noto Sans Bengali",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Sans Bengali",'Source Serif 4',Georgia,serif}
html[data-script="Arab"][lang="ar"]{--sans:"Noto Naskh Arabic","Noto Sans Arabic",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Naskh Arabic","Noto Sans Arabic",'Source Serif 4',Georgia,serif}
html[data-script="Thai"][lang="th"]{--sans:"Noto Sans Thai",Inter,'Segoe UI',Arial,sans-serif;--serif:"Noto Sans Thai",'Source Serif 4',Georgia,serif}
