/* Shared compact rhythm. Loaded after the theme and legacy page styles. */
body {
  font-size:14px;
  line-height:1.45
}
h1 {
  font-size:clamp(28px,3.4vw,46px);
  letter-spacing:-1.5px;
  line-height:1.12
}
h2 {
  font-size:25px;
  letter-spacing:-.5px
}
h3 {
  font-size:18px
}
.topline {
  min-height:88px;
  padding-block:10px;
  gap:20px
}
.brand img {
  width:120px;
  height:60px
}
.university-brand img {
  width:175px
}
.header-actions a {
  min-height:60px;
  gap:5px;
  padding:7px 5px
}
.navline nav {
  min-height:44px;
  gap:26px;
  font-size:13px
}
.navline nav>a,.navline summary {
  padding-block:11px
}
.submenu {
  top:43px
}
.submenu a {
  padding:8px 11px
}
.eyebrow {
  margin-bottom:10px
}
.hero {
  padding-top:22px
}
.hero-top {
  margin-bottom:20px;
  gap:20px
}
.hero-side p {
  font-size:15px;
  line-height:1.45;
  margin-bottom:12px
}
.promotion figcaption {
  padding-block:7px
}
.highlights {
  margin-top:14px
}
.featured-announcement {
  grid-template-columns:175px minmax(0,1fr) 155px;
  gap:20px;
  padding:16px 20px
}
.ranking-logo {
  padding:8px
}
.ranking-logo small {
  margin-top:5px
}
.announcement-text h2 {
  font-size:21px;
  margin-bottom:6px
}
.announcement-text p:last-child {
  font-size:13px
}
.pathways {
  padding-block:28px 32px
}
.section-heading {
  margin-bottom:16px
}
.path-grid {
  gap:16px
}
.path {
  padding:18px
}
.path-num {
  margin-bottom:12px
}
.path h3 {
  font-size:18px;
  margin-bottom:13px
}
.path a {
  font-size:13px;
  padding-block:8px
}
.apply-band {
  padding-block:30px
}
.apply-grid,.resources {
  gap:40px
}
.apply-band h2 {
  font-size:31px;
  margin-bottom:15px
}
.button {
  padding:10px 14px;
  font-size:13px
}
.application-list article {
  padding-block:12px;
  gap:16px
}
.application-list h3 {
  font-size:16px
}
.resources {
  padding:30px 22px;
  margin-bottom:28px
}
.resource-list a {
  padding-block:11px;
  font-size:14px
}
footer {
  padding-top:25px
}
.footer-grid {
  gap:28px;
  padding-bottom:20px
}
.footer-grid>div:last-child>a {
  height:60px;
  margin-block:6px
}
.footnote {
  padding-block:12px
}
.institutional-links {
  gap:12px;
  padding-bottom:12px
}
.site-layout {
  gap:22px;
  padding-block:22px 32px
}
.legacy-content {
  font-size:14px;
  line-height:1.5
}
.legacy-content h1 {
  font-size:clamp(24px,2.3vw,30px);
  letter-spacing:-.6px;
  margin-bottom:17px;
  padding-bottom:9px;
  border-bottom-width:3px
}
.legacy-content h2 {
  font-size:22px;
  margin:20px 0 12px
}
.legacy-content h3 {
  font-size:18px;
  margin:18px 0 10px
}
.legacy-content h6 {
  margin-bottom:12px
}
.legacy-content p,.legacy-content ul {
  margin-bottom:12px
}
.legacy-content blockquote {
  margin-block:10px
}
.legacy-content td,.legacy-content th {
  padding:6px 5px;
  font-size:13px
}
.legacy-table-scroll {
  margin-bottom:13px
}
input,select {
  padding:8px;
  min-height:36px
}
.legacy-content input:not([type=hidden]),.legacy-content select,.legacy-content textarea {
  padding:7px
}
.legacy-content input[type=checkbox],.legacy-content input[type=radio] {
  min-height:20px
}
.legacy-content button,.legacy-content input[type=submit],.legacy-content input[type=button] {
  padding:8px 10px;
  min-height:36px
}
.legacy-content fieldset {
  padding:13px;
  margin-block:14px
}
.service-navigation {
  padding:12px;
  font-size:12px
}
.service-navigation h2 {
  font-size:17px;
  margin-bottom:10px
}
.service-navigation a {
  padding-block:6px
}
.service-navigation .service-group h3 {
  font-size:13px;
  padding:7px 10px;
  margin:12px -12px 4px
}
.home-services {
  margin-bottom:28px
}
.home-services .service-group h3,.legacy-content .service-group h3 {
  margin-inline:0
}
.login-box {
  margin-block:10px;
  padding-inline:14px
}
.login-box summary {
  padding-block:10px;
  font-size:13px
}
.login-box form {
  gap:7px;
  padding-bottom:12px
}
.login-box button {
  padding:9px
}
.session-line {
  padding-block:8px
}
.workspace {
  padding-block:28px 35px
}
.workspace h1 {
  font-size:34px
}
.workspace h2 {
  font-size:23px
}
.demo-note {
  margin-block:18px
}
.service-grid {
  margin-bottom:22px
}
.service {
  padding:17px
}
.cv-panel {
  padding:18px
}
@media(max-width:1000px) {
  .featured-announcement {
    grid-template-columns:150px minmax(0,1fr)
  }
  .ranking-link {
    grid-column:2
  }
}
@media(max-width:760px) {
  .site-layout {
    gap:18px
  }
  .legacy-content h1 {
    font-size:25px
  }
  .legacy-content h2 {
    font-size:21px
  }
}
@media(max-width:720px) {
  .topline {
    gap:10px;
    padding-block:10px
  }
  .brand img {
    width:105px;
    height:48px
  }
  .university-brand img {
    width:155px
  }
  .header-actions a {
    min-height:58px
  }
  .menu-toggle {
    padding-block:10px;
    min-height:44px
  }
  .navline nav {
    gap:0;
    min-height:0
  }
  .navline summary {
    min-height:44px
  }
  .submenu {
    position:static
  }
  h1 {
    font-size:30px;
    letter-spacing:-1px
  }
  h2,.section-heading h2 {
    font-size:24px
  }
  .hero {
    padding-top:18px
  }
  .hero-top {
    margin-bottom:16px
  }
  .hero-side {
    margin-top:14px
  }
  .featured-announcement {
    grid-template-columns:1fr;
    gap:12px;
    padding:15px
  }
  .ranking-logo {
    width:175px
  }
  .ranking-link {
    grid-column:1
  }
  .announcement-text h2 {
    font-size:21px
  }
  .pathways {
    padding-block:24px
  }
  .path {
    padding:17px
  }
  .path h3 {
    font-size:19px
  }
  .path a {
    min-height:38px
  }
  .apply-band {
    padding-block:26px
  }
  .apply-band h2 {
    font-size:28px
  }
  .apply-grid,.resources {
    gap:20px
  }
  .resources {
    padding:24px 18px;
    margin-bottom:24px
  }
  .legacy-content input:not([type=hidden]),.legacy-content select,.legacy-content textarea,.login-box input {
    font-size:16px;
    min-height:40px
  }
  .legacy-content input[type=checkbox],.legacy-content input[type=radio] {
    min-height:20px
  }
  .service-navigation a {
    min-height:34px
  }
  .footer-grid {
    gap:18px
  }
  .workspace h1 {
    font-size:29px
  }
}
/* Editorial alignment and fluid legacy tables, including nested tables. */
.legacy-content p,.legacy-content .normal-justify {
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
}
.legacy-content th,.legacy-content thead td {
  text-align:center;
  vertical-align:middle;
}
.legacy-content th p,.legacy-content thead td p {
  text-align:center;
}
.legacy-content table,.service-navigation table {
  min-width:0;
  width:100%;
  max-width:100%;
}
.legacy-content table {
  table-layout:auto;
}
.legacy-content td,.legacy-content th {
  min-width:0;
  overflow-wrap:anywhere;
}
.legacy-content td>div,.legacy-content th>div {
  max-width:100%;
}
.legacy-content table input,.legacy-content table select,.legacy-content table textarea {
  min-width:0;
  max-width:100%;
}
/* Compact column headings remain on one line. */
.legacy-content th,.legacy-content thead td {
  font-size:10px;
  letter-spacing:0;
  line-height:1.25;
  white-space:nowrap!important;
  overflow-wrap:normal;
  word-break:normal;
  padding:6px 4px
}
.legacy-content th p,.legacy-content th a,.legacy-content thead td p {
  font-size:inherit;
  white-space:inherit
}
/* Compact data rows; keep photographs and other content images unchanged. */
.legacy-content td {
  font-size:11px;
  line-height:1.35;
  padding:5px 4px;
  vertical-align:middle
}
.legacy-content td p {
  font-size:inherit;
  margin-bottom:5px
}
.legacy-content .mqhs-offers-table td {
  font-size:11px;
  padding:5px 4px
}
.legacy-content table img[width="24"][height="24"] {
  width:16px;
  height:16px;
  object-fit:contain;
  vertical-align:middle
}
.legacy-content td.table-icon-cell {
  white-space:nowrap!important;
  width:1%;
  overflow-wrap:normal
}
.legacy-content .table-icon-cell a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  min-height:24px;
  vertical-align:middle
}
.legacy-content .table-icon-cell br {
  display:none
}
/* Offer tables reserve a narrow actions column:stack its three controls. */
.legacy-content .mqhs-offers-table td.table-icon-cell {
  white-space:normal!important
}
.legacy-content .mqhs-offers-table .table-icon-cell a {
  display:flex;
  width:22px;
  margin-inline:auto
}
.legacy-content .mqhs-offers-table #tableau {
  table-layout:auto
}
/* Give service links enough room without breaking their labels. */
@media(min-width:761px) {
  .site-layout:not(.dashboard-layout) {
    grid-template-columns:minmax(0,1fr) 225px
  }
}
.site-layout>aside .service-navigation {
  padding-inline:7px
}
.site-layout>aside .service-navigation a {
  font-size:10px;
  white-space:nowrap;
  letter-spacing:0
}
.site-layout>aside .service-navigation .service-group h3 {
  margin-inline:-7px;
  font-size:12px;
  white-space:nowrap
}
@media(max-width:760px) {
  .site-layout>aside .service-navigation a {
    font-size:11px
  }
}
/* Align the application panel with the other homepage blocks. */
.apply-band.wrap {
  margin-top:24px;
  padding-inline:22px;
  border-radius:var(--radius)
}
@media(max-width:720px) {
  .apply-band.wrap {
    margin-top:20px;
    padding-inline:18px
  }
}
/* Single compact session bar; logout remains in the shared header. */
.session-line {
  padding-block:3px;
  font-size:11px;
  line-height:1.3;
  min-height:0;
  gap:8px
}
.session-line form {
  margin:0;
  line-height:1
}
.session-line button {
  padding:3px 6px;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  gap:5px
}
.session-line button img {
  width:16px;
  height:16px;
  vertical-align:middle
}
/* Smaller blue headings on interior pages. */
.legacy-content h1 {
  font-size:22px;
  line-height:1.25;
  letter-spacing:-.3px;
  margin-bottom:14px;
  padding-bottom:7px
}
.legacy-content h2 {
  font-size:18px;
  line-height:1.3;
  letter-spacing:0;
  margin:16px 0 10px
}
/* Apprentice eligibility:narrow labels, more room for explanations. */
.legacy-content table.apprentice-conditions {
  table-layout:fixed
}
.legacy-content .apprentice-conditions th {
  width:25%;
  white-space:normal!important;
  overflow-wrap:break-word
}
.legacy-content .apprentice-conditions td {
  width:75%
}
.registration-video {
  width:100%;
  max-width:640px;
  margin:16px auto;
  background:#173448;
  aspect-ratio:16/9
}
.legacy-content .registration-video iframe {
  display:block;
  width:100%;
  height:100%;
  border:0
}
/* Contact cards:fixed business-card format, responsive below 300px. */
.legacy-content table[id="tableaucontact"] {
  width:300px;
  max-width:100%;
  min-width:0;
  table-layout:auto;
  margin:10px auto 16px;
  background:#fff;
  border:1px solid #d7e1e7;
  box-shadow:0 2px 5px #17344812
}
.legacy-content table[id="tableaucontact"] th {
  font-size:11px;
  line-height:1.3;
  white-space:normal!important;
  padding:8px 10px;
  text-align:center
}
.legacy-content table[id="tableaucontact"] td {
  font-size:12px;
  line-height:1.35;
  padding:5px 7px;
  vertical-align:middle;
  background:#fff
}
.legacy-content table[id="tableaucontact"] td:first-child:not([colspan]) {
  width:32px;
  text-align:center
}
.legacy-content table[id="tableaucontact"] td p {
  margin:0;
  text-align:left
}
.legacy-content table[id="tableaucontact"] td img {
  max-width:100%;
  height:auto;
  vertical-align:middle
}
.legacy-content table[id="tableaucontact"] td:first-child img {
  width:18px;
  height:18px;
  object-fit:contain
}
/* Compact footer:horizontal useful links and side-by-side partner logos. */
footer {
  padding-top:16px
}
.footer-grid {
  grid-template-columns:minmax(140px,1fr) auto auto;
  align-items:center;
  gap:20px;
  padding-bottom:12px
}
.footer-grid>div:first-child>img {
  width:100px;
  height:50px;
  object-fit:contain
}
.footer-grid p {
  margin:5px 0 0
}
.footer-grid>div:nth-child(2) {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px 14px
}
.footer-grid>div:nth-child(2)>h2 {
  flex-basis:100%;
  margin:0 0 4px
}
.footer-grid>div:nth-child(2)>a {
  margin:0;
  white-space:nowrap;
  font-size:12px
}
.footer-grid>div:last-child {
  display:grid;
  grid-template-columns:repeat(2,110px);
  gap:4px 12px;
  text-align:right
}
.footer-grid>div:last-child>h2 {
  grid-column:1/-1;
  margin:0
}
.footer-grid>div:last-child>a {
  width:110px;
  max-width:100%;
  height:44px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center
}
.footer-grid>div:last-child img {
  width:105px;
  height:40px;
  object-fit:contain
}
.footnote {
  padding-block:9px
}
@media(max-width:1000px) {
  .footer-grid {
    grid-template-columns:minmax(0,1fr) auto
  }
  .footer-grid>div:first-child {
    grid-column:1/-1
  }
  .footer-grid>div:nth-child(2) {
    align-self:center
  }
}
@media(max-width:600px) {
  .footer-grid {
    grid-template-columns:minmax(0,1fr);
    gap:14px
  }
  .footer-grid>div:last-child {
    justify-self:start;
    text-align:left;
    width:auto
  }
  .footer-grid>div:nth-child(2) {
    gap:6px 12px
  }
}
/* Centre footer headings over their own links and partner logos. */
.footer-grid>div:nth-child(2) {
  justify-content:center;
  text-align:center
}
.footer-grid>div:last-child>h2 {
  text-align:center
}
/* Centre only the two headline lines, preserving the original hero layout. */
.hero-top>div:first-child {
  flex:1;
  min-width:0
}
.hero-top h1 {
  text-align:center
}
/* Compact homepage sections and expandable quick access, without changing side menus. */
.hero {
  padding-top:14px
}
.hero-top {
  margin-bottom:14px
}
.highlights {
  margin-top:10px
}
.apply-band.wrap {
  margin-top:16px;
  padding-block:20px
}
.pathways {
  padding-block:20px
}
.section-heading {
  margin-bottom:12px
}
.resources {
  padding-block:20px;
  margin-bottom:18px
}
.home-services {
  margin-bottom:18px
}
.home-services .service-navigation.quick-compact {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:8px;
  padding:12px;
  border-top-width:3px
}
.home-services .quick-compact>h2 {
  grid-column:1/-1;
  font-size:17px;
  margin:0 0 4px
}
.home-services .quick-group {
  min-width:0;
  border:1px solid #d7e1e7;
  border-radius:4px;
  background:#fff;
  overflow:hidden
}
.home-services .quick-group>summary {
  display:flex;
  justify-content:space-between;
  gap:8px;
  min-height:40px;
  padding:9px 10px;
  background:#0071b9;
  color:white;
  font-size:12px;
  line-height:1.3;
  font-weight:bold;
  border:0
}
.home-services .quick-group:last-of-type>summary {
  background:#970000
}
.home-services .quick-group[open]>summary:after {
  transform:rotate(180deg)
}
.home-services .quick-links {
  padding:2px 10px 6px
}
.home-services .quick-links a {
  font-size:12px;
  line-height:1.35;
  padding:7px 0;
  min-height:0
}
.home-services .quick-links a:last-child {
  border-bottom:0
}
@media(max-width:1000px) {
  .home-services .service-navigation.quick-compact {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:480px) {
  .home-services .service-navigation.quick-compact {
    grid-template-columns:1fr
  }
  .home-services .quick-group>summary {
    min-height:42px
  }
}
/* Tighter header and homepage introduction; shorter login panel. */
.topline {
  min-height:76px;
  padding-block:4px
}
.login-box {
  max-width:412.5px;
  margin-block:6px;
  padding-inline:12px
}
.login-box summary {
  padding-block:7px
}
.hero {
  padding-top:6px
}
.hero-top {
  margin-bottom:8px
}
.footnote {
  padding:0;
  min-height:0;
  margin-bottom:8px
}
@media(max-width:720px) {
  .hero-side {
    margin-top:8px
  }
}
/* Low-height shared footer:useful links alongside partner logos. */
footer.footer-compact {
  padding-top:10px;
  border-top-width:4px
}
.footer-compact .footer-row {
  display:flex;
  align-items:center;
  gap:18px;
  padding-bottom:10px
}
.footer-compact .footer-links {
  display:flex;
  flex:1;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  font-size:11px;
  min-width:0
}
.footer-compact .footer-links a {
  white-space:nowrap
}
.footer-compact .footer-contact {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:5px 9px;
  border:2px solid var(--blue);
  border-radius:4px;
  color:var(--blue);
  font-weight:bold
}
.footer-compact .footer-contact.access {
  border-color:var(--yellow);
  background:var(--yellow);
  color:var(--ink)
}
.footer-compact .footer-network {
  flex:none;
  text-align:center
}
.footer-compact .footer-network h2 {
  font-size:12px;
  letter-spacing:0;
  color:var(--blue);
  margin:0 0 3px
}
.footer-compact .footer-partners {
  display:flex;
  align-items:center;
  gap:10px
}
.footer-compact .footer-partners a {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100px;
  height:36px
}
.footer-compact .footer-partners img {
  width:100px;
  height:36px;
  object-fit:contain
}
.footer-compact .footnote {
  margin-bottom:5px
}
@media(max-width:720px) {
  .footer-compact .footer-row {
    flex-direction:column;
    align-items:stretch;
    gap:10px
  }
  .footer-compact .footer-partners {
    justify-content:center
  }
  .footer-compact .footer-links {
    gap:8px 12px
  }
}
/* Accessible social logos in the compact footer. */
.footer-compact .footer-social {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  flex:none;
  border-radius:4px
}
.footer-compact .footer-social svg {
  display:block;
  width:24px;
  height:24px
}
.footer-compact .footer-social:hover {
  background:#eaf4fa
}
/* Neutral grey quick-access frames on the homepage only. */
.home-services .quick-group>summary,
.home-services .quick-group:last-of-type>summary {
  background:#e4e7ea;
  color:#263746
}
.home-services .quick-group {
  border-color:#c5cbd0
}
.home-services .quick-group>summary:hover {
  background:#d4d9de
}
.home-services .service-navigation.quick-compact {
  border-top-color:#aeb7bf
}
/* Match the homepage section title to the quick-access heading. */
.pathways #pathways-title {
  font-size:17px;
  color:#0071b9;
  font-weight:600;
  line-height:1.18;
  letter-spacing:-.5px;
  margin:0 0 4px
}
/* Compact separation after moving preparation before the pathways. */
.apply-band + .resources {
  margin-top:16px;
  margin-bottom:0
}
/* Same grey divider as the quick-access section. */
.pathways {
  border-top:3px solid #aeb7bf;
  margin-top:18px;
  padding-top:12px
}
/* Expandable side navigation, including keyboard and touch access. */
.site-layout .side-compact {
  padding:10px 7px
}
.site-layout .side-group {
  margin:6px 0;
  border:1px solid #d7e1e7;
  border-radius:4px;
  overflow:hidden
}
.site-layout .side-group>summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:6px;
  padding:8px 9px;
  min-height:34px;
  background:#0071b9;
  color:#fff;
  font-size:12px;
  font-weight:bold;
  line-height:1.35;
  border:0;
  white-space:nowrap
}
.site-layout .side-group:last-of-type>summary {
  background:#970000
}
.site-layout .side-group[open]>summary:after {
  transform:rotate(180deg)
}
.site-layout .side-links {
  padding:2px 7px 5px;
  background:#fff
}
.site-layout .side-links a:last-child {
  border-bottom:0
}
.site-layout .side-group>summary:focus-visible {
  outline:3px solid #fbba00;
  outline-offset:-3px
}
/* Sidebar rubric colours:two yellow, two blue, two red. */
.site-layout .side-group:nth-child(-n+2 of .side-group:not(.personal-group))>summary {
  background:#fbba00;
  color:#173448
}
.site-layout .side-group:nth-child(3 of .side-group:not(.personal-group))>summary,
.site-layout .side-group:nth-child(4 of .side-group:not(.personal-group))>summary {
  background:#0071b9;
  color:#fff
}
.site-layout .side-group:nth-child(n+5 of .side-group:not(.personal-group))>summary {
  background:#970000;
  color:#fff
}
/* Align the yellow rules of the content heading and desktop sidebar. */
@media(min-width:761px) {
  .site-layout>aside>.service-navigation {
    margin-top:var(--sidebar-offset,0px);
    border-top-width:3px
  }
}
/* A single compact headline row on desktop, naturally wrapping on small screens. */
.hero {
  padding-top:4px
}
.hero-top {
  align-items:center;
  gap:12px;
  margin-bottom:6px
}
.hero-top h1 {
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:6px 12px;
  flex-wrap:wrap;
  font-size:clamp(22px,2.5vw,34px);
  line-height:1.15;
  letter-spacing:-.8px
}
.hero-top h1>span,.hero-top h1>em {
  white-space:nowrap
}
.hero-side {
  min-width:190px;
  max-width:205px;
  margin-top:0;
  padding-bottom:0
}
.hero-side p {
  font-size:12px;
  line-height:1.3;
  margin-bottom:4px
}
.hero-side .text-link {
  font-size:12px;
  gap:12px
}
.promotion figcaption {
  padding-block:4px
}
.highlights {
  margin-top:8px
}
.apply-band.wrap {
  margin-top:12px;
  padding-block:16px
}
.apply-band + .resources {
  margin-top:12px
}
.pathways {
  margin-top:12px;
  padding-bottom:14px
}
.home-services {
  margin-bottom:12px
}
@media(min-width:1001px) {
  .hero-top h1 {
    flex-wrap:nowrap
  }
}
@media(max-width:720px) {
  .hero-top h1 {
    font-size:clamp(21px,4vw,28px)
  }
  .hero-side {
    max-width:none;
    margin-top:6px
  }
  .hero-side .text-link {
    justify-content:center
  }
}
/* Keep the keyboard/focus indicator inside controls, including scrollable form tables. */
:is(input,select,textarea,button):focus-visible  {
  outline:3px solid var(--orange);
  outline-offset:-3px!important;
}
/* Mobile footer:two rows of site links, social icons, then partner network. */
.footer-site-primary,.footer-site-secondary,.footer-social-links {
  display:contents
}
@media(max-width:720px) {
  .footer-compact .footer-links {
    flex-direction:column;
    justify-content:center;
    text-align:center;
    gap:8px;
    width:100%
  }
  .footer-compact .footer-site-primary,.footer-compact .footer-site-secondary,.footer-compact .footer-social-links {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    width:100%
  }
  .footer-compact .footer-site-primary {
    font-size:10px
  }
  .footer-compact .footer-site-primary .footer-contact {
    padding:4px 6px
  }
  .footer-compact .footer-site-secondary {
    font-size:10px;
    gap:10px
  }
  .footer-compact .footer-network {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    text-align:center
  }
  .footer-compact .footer-network h2 {
    margin:0;
    font-size:11px;
    white-space:nowrap
  }
  .footer-compact .footer-partners {
    gap:6px
  }
  .footer-compact .footer-partners a,.footer-compact .footer-partners img {
    width:85px;
    height:34px
  }
}

/* Personal navigation remains distinct on home and interior pages. */
.service-navigation .personal-group>h3,
.site-layout .side-group.personal-group>summary,
.home-services .quick-group.personal-group>summary {background:#287c49;color:#fff}
.service-navigation .personal-group {border-color:#287c49}
.service-navigation .personal-group a {color:#285616}
.personal-profile {max-width:620px;display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:0;border:1px solid #ddd}
.personal-profile dt,.personal-profile dd {margin:0;padding:10px;border-bottom:1px solid #ddd;overflow-wrap:anywhere}
.personal-profile dt {font-weight:bold;background:#f0f7eb}

/* Smaller institutional access buttons, with readable mobile labels. */
.header-actions {
  width:78%;
  justify-self:center;
  align-self:end;
  align-items:stretch;
  gap:7px
}
.header-actions a {
  min-height:46px;
  padding:4px 3px;
  gap:3px;
  font-size:11px;
  line-height:1.2
}
.header-actions img {
  width:20px;
  height:20px
}
@media(max-width:1000px) {
  .header-actions {width:100%}
}
@media(max-width:720px) {
  .header-actions {gap:5px}
  .header-actions a {min-height:44px;font-size:10px}
  .header-actions img {width:18px;height:18px}
}

/* Keep social links centered and the charter directly above the one-line copyright. */
.footer-compact .footer-links {
  display:grid;
  grid-template-columns:max-content minmax(136px,1fr);
  gap:12px;
  align-items:center
}
.footer-compact .footer-site-primary {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px
}
.footer-compact .footer-social-links {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px
}
.footer-compact .footer-legal {
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
  font-size:11px
}
.footer-compact .footer-copyright {
  display:block;
  white-space:nowrap;
  font-size:10px;
  line-height:1.5;
  color:#4b5563
}
@media(max-width:1000px) {
  .footer-compact .footer-links {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px
  }
  .footer-compact .footer-site-primary {
    justify-content:center
  }
}
@media(max-width:720px) {
  .footer-compact .footer-legal {
    align-self:center
  }
}

/* Center the complete promotion photo without enlarging it across the desktop page. */
.hero .promotion {
  width:100%;
  max-width:600px;
  margin-inline:auto
}
.hero .promotion-photo {
  display:block;
  border-radius:var(--radius)
}
.hero .promotion img {
  width:100%;
  height:auto
}
.hero .promotion figcaption {
  justify-content:center;
  flex-wrap:wrap;
  gap:4px 12px;
  text-align:center
}
@media(max-width:720px) {
  .hero .promotion {max-width:none}
}

/* Center the two homepage headlines on the page, with balanced space around them. */
.hero .hero-top {
  display:grid;
  grid-template-columns:minmax(190px,1fr) max-content minmax(190px,1fr);
  align-items:center
}
.hero .hero-top>div:first-child {
  grid-column:2
}
.hero .hero-side {
  grid-column:3;
  justify-self:end
}
@media(max-width:1000px) {
  .hero .hero-top {
    grid-template-columns:minmax(0,1fr);
    gap:6px
  }
  .hero .hero-top>div:first-child,.hero .hero-side {
    grid-column:1
  }
  .hero .hero-side {
    justify-self:center;
    min-width:0;
    max-width:none;
    margin-top:0;
    text-align:center
  }
  .hero .hero-side .text-link {
    justify-content:center
  }
}

/* The blue navigation keeps the search link at its right-hand end. */
header .navline #navigation {
  flex-wrap:wrap
}
.hero .hero-side p {
  display:block;
  margin:0
}
.hero .hero-side p span {
  display:block;
  white-space:nowrap
}

/* Keep the QHSE descriptor beside the Master logo on every page. */
header .topline {
  grid-template-columns:max-content minmax(0,1fr) 200px
}
header .master-brand {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0
}
header .master-brand>.brand {
  flex:none
}
header .brand-description {
  margin:0;
  font-size:11px;
  line-height:1.35;
  color:var(--muted)
}
header .brand-description span {
  display:block;
  white-space:nowrap
}
.hero .hero-top {
  grid-template-columns:minmax(0,1fr)
}
.hero .hero-top>div:first-child {
  grid-column:1
}
@media(max-width:1000px) {
  header .topline {
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:10px;
    row-gap:4px
  }
  header .master-brand {
    grid-column:1;
    grid-row:1
  }
  header .university-brand {
    grid-column:2;
    grid-row:1
  }
  header .header-actions {
    grid-column:1/-1;
    grid-row:2;
    width:min(100%,620px)
  }
}
@media(max-width:480px) {
  header .master-brand .brand img {
    width:80px;
    height:40px
  }
  header .brand-description {
    font-size:10px
  }
  header .university-brand img {
    width:110px
  }
}
@media(max-width:380px) {
  header .master-brand .brand img {
    width:64px;
    height:32px
  }
  header .university-brand img {
    width:85px
  }
}

/* Recherche replaces the two former right-hand navigation links. */
.navline #navigation>.nav-search {margin-left:auto}
@media(max-width:720px) {
  .navline #navigation>.nav-search {margin-left:0}
}

/* Bring desktop navigation links slightly inward, keeping the mobile menu unchanged. */
@media(min-width:721px) {
  header .navline #navigation {padding-inline:24px}
}

/* Keep homepage quick-access groups on one desktop row, including the personal group. */
@media(min-width:761px) {
  .home-services .service-navigation {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    padding:10px
  }
  .home-services .service-navigation:has(>.personal-group) {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .home-services .quick-group>summary {
    min-height:34px;
    padding:7px 8px;
    font-size:11.5px;
    gap:6px
  }
  .home-services .quick-links {
    padding:2px 8px 4px
  }
  .home-services .quick-links a {
    font-size:11.5px;
    padding-block:6px;
    white-space:normal;
    overflow-wrap:anywhere
  }
}
