@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/public-sans-0.woff2) format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/public-sans-1.woff2) format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/public-sans-2.woff2) format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/public-sans-3.woff2) format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/source-serif-0.woff2) format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/source-serif-1.woff2) format('woff2');
}
:root {
  --blue: #103667;
  --ink: #172c45;
  --gold: #9c771a;
  --gold-light: #d8b762;
  --paper: #f2ece5;
  --white: #fff;
  --line: #d8dee5;
  --muted: #526174;
  --display: "Public Sans", "Arial Black", sans-serif;
  --ui: "Public Sans", Arial, sans-serif;
  --text: "Source Serif 4", Georgia, serif;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font: 16px/1.6 var(--ui);
  -webkit-font-smoothing: antialiased;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
textarea {
  font: inherit;
}
button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}
button,
summary {
  cursor: pointer;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
h1,
h2,
h3,
p,
figure {
  margin: 0;
}
h1,
h2,
h3 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
::selection {
  background: var(--gold-light);
  color: var(--blue);
}
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 6px;
}
.skip {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 100;
  background: white;
  padding: 12px;
}
.skip:focus {
  top: 12px;
}
.header {
  position: relative;
  z-index: 20;
  min-height: 102px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 4.4%;
  background: var(--white);
  border-bottom: 1px solid #edf0f3;
}
.brand {
  display: flex;
  gap: 15px;
  align-items: center;
  line-height: 1.12;
  color: var(--blue);
}
.brand img {
  width: 34px;
  height: 50px;
  object-fit: contain;
}
.brand > span {
  border-left: 1px solid var(--gold);
  padding-left: 15px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.6px;
}
.brand em {
  display: block;
  font: italic 18px/1.2 var(--text);
  color: var(--gold);
  letter-spacing: 0;
  margin-top: 4px;
}
.header nav {
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: 13px;
  font-weight: 600;
}
.header nav a {
  position: relative;
  padding: 10px 0;
}
.header nav a:not(.nav-contact):after {
  content: "";
  position: absolute;
  bottom: 5px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s var(--ease);
}
.header nav a:hover:after,
.header nav a[aria-current]:after {
  transform: scaleX(1);
}
.header nav .nav-contact {
  border: 1px solid var(--blue);
  padding: 11px 19px;
  display: flex;
  gap: 25px;
}
.nav-contact span {
  font-size: 20px;
  line-height: 1;
}
.menu-toggle {
  display: none;
}
.hero {
  min-height: 700px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--blue);
  color: white;
  overflow: hidden;
}
.hero-copy {
  padding: 56px 9% 28px 8.8%;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.hero-location {
  font-size: 12px;
  color: #d8e2ee;
  display: flex;
  gap: 10px;
  align-items: center;
}
.hero-location > span {
  width: 5px;
  height: 5px;
  background: var(--gold-light);
  border-radius: 50%;
}
h1 {
  font: 400 clamp(40px, 4.3vw, 66px)/1.065 var(--display);
  letter-spacing: -2.1px;
  margin: 37px 0 24px;
  max-width: 660px;
}
.hero-intro {
  max-width: 410px;
  font: 400 19px/1.6 var(--text);
  color: #d7e2ef;
}
.hero-link {
  display: flex;
  align-items: center;
  gap: 34px;
  margin-top: 30px;
  border-bottom: 1px solid #8194ad;
  padding: 0 0 13px;
  font-size: 14px;
}
.hero-link > span {
  font-size: 26px;
  color: var(--gold-light);
  transition: transform 0.25s var(--ease);
}
.hero-bottom {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-top: auto;
  padding-top: 38px;
  font-size: 11px;
  color: #b6c7db;
  line-height: 1.5;
}
.hero-bottom em {
  font-family: var(--text);
  font-size: 16px;
  color: var(--gold-light);
}
.hero-bottom a {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border: 1px solid #627c9e;
  border-radius: 50%;
  color: white;
  font-size: 24px;
}
.hero-visual {
  position: relative;
  min-height: 100%;
  overflow: hidden;
}
.hero-visual picture {
  position: absolute;
  inset: 0;
}
.hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 59%;
}
.hero-visual:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
  width: 48px;
  background: var(--blue);
  clip-path: polygon(0 0, 100% 0, 0 100%);
  z-index: 2;
}
.hero-seam {
  position: absolute;
  top: -5%;
  left: 24px;
  height: 111%;
  width: 2px;
  background: var(--gold-light);
  transform: rotate(3.6deg);
  z-index: 3;
  transform-origin: center;
}
.photo-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(16, 54, 103, 0.9);
  padding: 23px 35px 23px 55px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font: italic 17px var(--text);
  z-index: 4;
}
.photo-caption span:last-child {
  font: 11px var(--ui);
  align-self: center;
  color: #dce4f0;
}
.section {
  padding: 110px 7%;
}
.section-label {
  font: 500 13px/1.4 var(--ui);
  color: var(--gold);
  margin-bottom: 26px;
}
.small-line {
  display: block;
  width: 55px;
  height: 1px;
  background: var(--gold);
}
h2 {
  font: 400 clamp(32px, 3.6vw, 52px)/1.13 var(--display);
  letter-spacing: -1.4px;
}
h2 em {
  font: italic 400 1.06em/1.14 var(--text);
  letter-spacing: -1px;
}
.school {
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: 60px;
}
.school h2 {
  max-width: 930px;
}
.school-body {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 50px;
  margin: 36px 0 25px;
  font: 18px/1.65 var(--text);
  color: var(--muted);
}
.text-link {
  font: 600 13px/1.5 var(--ui);
  display: inline-flex;
  align-items: center;
  gap: 25px;
  padding: 12px 0;
  border-bottom: 1px solid var(--gold);
}
.text-link span {
  font-size: 23px;
  font-weight: 400;
  transition: transform 0.25s var(--ease);
}
.formation {
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 12%;
  padding-top: 95px;
  padding-bottom: 95px;
}
.formation-intro > p:not(.section-label) {
  font: 18px/1.65 var(--text);
  margin-top: 23px;
  color: var(--muted);
}
.formation-mark {
  display: flex;
  gap: 13px;
  margin-top: 48px;
  overflow: hidden;
  max-width: 190px;
}
.formation-mark span {
  width: 42px;
  height: 80px;
  background: var(--blue);
  transform: skewX(-25deg);
  flex-shrink: 0;
}
.formation-mark span:last-child {
  background: var(--gold);
}
.program {
  border-top: 1px solid #bdc0bf;
  padding: 25px 0;
}
.program:last-child {
  border-bottom: 1px solid #bdc0bf;
}
.program summary {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  list-style: none;
  align-items: center;
}
.program summary::-webkit-details-marker,
.news-item summary::-webkit-details-marker {
  display: none;
}
.program small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 6px;
}
.program strong {
  font-weight: 600;
  font-size: 23px;
  line-height: 1.25;
  display: block;
  letter-spacing: -0.6px;
}
.plus {
  position: relative;
  width: 35px;
  height: 35px;
  flex-shrink: 0;
  border: 1px solid #bdc0bf;
  border-radius: 50%;
  display: block;
}
.plus:after,
.plus:before {
  content: "";
  position: absolute;
  width: 11px;
  height: 1px;
  left: 11px;
  top: 16px;
  background: var(--blue);
}
.plus:after {
  transform: rotate(90deg);
  transition: transform 0.2s;
}
.program[open] .plus:after {
  transform: rotate(0);
}
.program-body {
  padding-top: 20px;
}
.program-body p {
  font: 17px/1.7 var(--text);
  color: var(--muted);
  max-width: 490px;
}
.program-body .text-link {
  margin-top: 10px;
}
.legacy {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  background: var(--blue);
  color: white;
}
.legacy-image {
  position: relative;
  overflow: hidden;
  min-height: 490px;
}
.legacy-image img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  object-position: 42% center;
}
.legacy-image > p {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--paper);
  color: var(--blue);
  padding: 22px 9%;
  font: 14px var(--ui);
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.legacy-image > p span {
  color: var(--muted);
  font-size: 12px;
}
.legacy-copy {
  padding: 75px 13% 65px 12%;
}
.legacy-copy .section-label {
  color: var(--gold-light);
  font-size: 12px;
}
.legacy-copy h2 {
  font-size: clamp(32px, 3.1vw, 47px);
}
.legacy-copy > p:not(.section-label) {
  font: 18px/1.7 var(--text);
  color: #d6e1ee;
  margin-top: 27px;
}
.legacy-signature {
  display: inline-block;
  font: italic 32px var(--text);
  color: var(--gold-light);
  margin-top: 25px;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 45px;
  margin-bottom: 48px;
}
.section-heading > p {
  font: 18px/1.6 var(--text);
  color: var(--muted);
  padding-bottom: 5px;
}
.news-list {
  border-top: 1px solid var(--line);
}
.news-item {
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 2.5fr;
  gap: 45px;
}
.news-meta {
  display: flex;
  flex-direction: column;
  font-size: 12px;
  gap: 9px;
}
.news-meta span {
  color: var(--gold);
  font-weight: 600;
}
.news-meta time {
  color: var(--muted);
}
.news-item summary {
  list-style: none;
  display: flex;
  gap: 40px;
  align-items: center;
  justify-content: space-between;
}
.news-item h3 {
  font: 600 25px/1.3 var(--ui);
  letter-spacing: -0.6px;
  max-width: 640px;
}
.news-item summary > span {
  font-size: 28px;
  color: var(--gold);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.news-item details[open] summary > span {
  transform: rotate(90deg);
}
.article-body {
  font: 18px/1.7 var(--text);
  color: var(--muted);
  max-width: 700px;
  margin-top: 25px;
}
.article-body p + p {
  margin-top: 16px;
}
.library {
  background: #f5f7f9;
  border-top: 1px solid #ebeff4;
}
.publication {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 85px;
  align-items: center;
  max-width: 950px;
  margin: 60px auto 0;
}
.book {
  background: var(--blue);
  color: #fff;
  min-height: 390px;
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  position: relative;
  border-left: 9px solid #09264c;
  box-shadow: 12px 18px 0 #e2e7ed;
  transform: rotate(-4deg);
}
.book:after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 70px;
  width: 65px;
  height: 120px;
  background: var(--gold-light);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.book > span {
  font-size: 10px;
  line-height: 1.4;
  padding-bottom: 35px;
}
.book strong {
  font: 400 35px/1.06 var(--display);
  letter-spacing: -0.8px;
  max-width: 235px;
}
.book em {
  font: italic 17px/1.5 var(--text);
  margin-top: 20px;
  max-width: 230px;
}
.book small {
  font-size: 11px;
  color: var(--gold-light);
  margin-top: auto;
  padding-top: 32px;
}
.book-info .meta {
  font-size: 12px;
  color: var(--gold);
  margin-bottom: 16px;
}
.book-info h3 {
  font: 400 35px/1.12 var(--display);
  letter-spacing: -1px;
}
.book-subtitle {
  font: italic 22px/1.5 var(--text);
  margin: 15px 0 20px;
}
.book-info > p:not(.meta):not(.book-subtitle) {
  font: 17px/1.65 var(--text);
  color: var(--muted);
}
.book-info .text-link {
  margin-top: 20px;
}
.contact {
  background: var(--paper);
}
.contact-main {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  align-items: center;
}
.contact-main h2 {
  font-size: clamp(40px, 5.6vw, 80px);
  max-width: 850px;
  line-height: 1.08;
  letter-spacing: -2.5px;
}
.contact-circle {
  width: 100px;
  height: 100px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--blue);
  color: white;
  display: grid;
  place-items: center;
  font: 50px var(--ui);
  transition:
    transform 0.35s var(--ease),
    background 0.2s;
}
.contact-bottom {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 25px;
  margin-top: 40px;
}
.contact-bottom > p {
  font: 18px/1.65 var(--text);
  color: var(--muted);
}
footer {
  background: var(--blue);
  color: #fff;
  padding: 55px 7% 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px;
}
.footer-brand {
  font: 600 24px/1.2 var(--ui);
  letter-spacing: -0.6px;
}
.footer-brand em {
  font: italic 25px/1.5 var(--text);
  color: var(--gold-light);
  display: block;
}
.footer-links {
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 30px;
  font-size: 12px;
}
.footer-base {
  grid-column: 1/-1;
  border-top: 1px solid #3e5c83;
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  gap: 25px;
  color: #cad5e4;
}
.reading-progress {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--gold);
  transform-origin: left;
  transform: scaleX(0);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .text-link:hover span,
  .hero-link:hover span {
    transform: translate(4px, -4px);
  }
  .contact-circle:hover {
    transform: rotate(45deg);
    background: #174783;
  }
  .news-item summary:hover h3 {
    color: var(--gold);
  }
}
@media (min-width: 1600px) {
  .hero {
    min-height: 770px;
  }
  .hero-copy {
    padding-top: 80px;
  }
  h1 {
    font-size: 76px;
  }
  .section {
    padding-left: max(7%, calc((100vw - 1440px) / 2));
    padding-right: max(7%, calc((100vw - 1440px) / 2));
  }
}
@media (max-width: 1100px) {
  .header nav {
    gap: 18px;
  }
  .brand > span {
    font-size: 16px;
  }
  .brand em {
    font-size: 16px;
  }
  .hero {
    min-height: 680px;
  }
  .hero-copy {
    padding-right: 7%;
  }
  h1 {
    font-size: 47px;
    letter-spacing: -1.7px;
  }
  .hero-intro {
    font-size: 18px;
  }
  .school {
    gap: 30px;
    grid-template-columns: 1fr 3.3fr;
  }
  .section {
    padding: 85px 6%;
  }
  .formation {
    gap: 7%;
  }
  .legacy-copy {
    padding: 55px 9%;
  }
  .publication {
    gap: 60px;
    grid-template-columns: 280px 1fr;
  }
  .book {
    min-height: 360px;
  }
  .photo-caption span:last-child {
    display: none;
  }
  .contact-main h2 {
    font-size: 60px;
  }
}
@media (max-width: 800px) {
  html {
    scroll-padding-top: 25px;
  }
  .header {
    padding: 18px 6%;
    min-height: 88px;
    flex-wrap: wrap;
  }
  .brand > span {
    font-size: 17px;
  }
  .brand img {
    width: 30px;
    height: 44px;
  }
  .menu-toggle {
    display: flex;
    gap: 14px;
    align-items: center;
    background: none;
    border: 1px solid var(--line);
    color: var(--blue);
    padding: 9px 13px;
    font-size: 13px;
  }
  .menu-toggle span {
    font-size: 20px;
  }
  .header nav {
    width: 100%;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 18px;
  }
  .js .header nav {
    display: none;
  }
  .js .header nav.is-open {
    display: flex;
  }
  .hero {
    grid-template-columns: 1fr 1fr;
    min-height: 635px;
  }
  .hero-copy {
    padding: 35px 8%;
  }
  .hero-location {
    font-size: 10px;
  }
  h1 {
    font-size: 37px;
    letter-spacing: -1.3px;
    margin-top: 28px;
  }
  .hero-intro {
    font-size: 17px;
  }
  .hero-link {
    gap: 13px;
    font-size: 12px;
  }
  .hero-bottom {
    font-size: 10px;
  }
  .photo-caption {
    padding: 22px 28px;
    font-size: 15px;
  }
  .school {
    display: block;
  }
  .section-aside {
    display: flex;
    align-items: center;
    gap: 25px;
    margin-bottom: 30px;
  }
  .section-aside .section-label {
    margin: 0;
  }
  .school-body {
    gap: 30px;
  }
  .formation {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .formation-mark {
    display: none;
  }
  .formation-intro {
    max-width: 560px;
  }
  .legacy {
    grid-template-columns: 1fr;
  }
  .legacy-image {
    min-height: 430px;
  }
  .legacy-copy {
    padding: 60px 6%;
  }
  .legacy-copy h2 {
    font-size: 42px;
  }
  .legacy-copy > p:not(.section-label) {
    max-width: 650px;
  }
  .section-heading {
    align-items: start;
    flex-direction: column;
    gap: 25px;
  }
  .news-item {
    grid-template-columns: 1fr 2.4fr;
    gap: 25px;
  }
  .publication {
    gap: 40px;
    grid-template-columns: 240px 1fr;
  }
  .book {
    min-height: 340px;
    padding: 27px 22px;
  }
  .book strong {
    font-size: 29px;
  }
  .book-info h3 {
    font-size: 28px;
  }
  .contact-main h2 {
    font-size: 48px;
  }
  .contact-circle {
    width: 78px;
    height: 78px;
    font-size: 40px;
  }
  .footer-links {
    gap: 20px;
  }
}
@media (max-width: 550px) {
  .header {
    padding: 16px 5%;
  }
  .brand {
    gap: 9px;
  }
  .brand > span {
    padding-left: 10px;
    font-size: 15px;
  }
  .brand em {
    font-size: 16px;
  }
  .brand img {
    width: 24px;
    height: 39px;
  }
  .menu-toggle {
    padding: 7px 10px;
    font-size: 12px;
  }
  .header nav {
    gap: 4px 18px;
    justify-content: start;
  }
  .header nav a {
    font-size: 13px;
  }
  .header nav .nav-contact {
    padding: 6px 12px;
  }
  .hero {
    display: flex;
    flex-direction: column;
    min-height: auto;
  }
  .hero-copy {
    padding: 30px 6% 26px;
  }
  .hero-location {
    font-size: 11px;
  }
  h1 {
    font-size: clamp(35px, 10.4vw, 52px);
    max-width: 460px;
    letter-spacing: -1.6px;
    margin: 26px 0 19px;
  }
  .hero-intro {
    max-width: 390px;
    font-size: 18px;
  }
  .hero-link {
    font-size: 13px;
    margin-top: 23px;
    gap: 30px;
  }
  .hero-bottom {
    display: none;
  }
  .hero-visual {
    height: 310px;
    min-height: 310px;
  }
  .hero-visual:before,
  .hero-seam {
    display: none;
  }
  .hero-photo {
    object-position: 50% 62%;
  }
  .photo-caption {
    padding: 17px 6%;
    font-size: 16px;
  }
  .photo-caption span:last-child {
    display: block;
    font-size: 9px;
  }
  .section {
    padding: 65px 6%;
  }
  h2 {
    font-size: 34px;
    letter-spacing: -1px;
  }
  .school-body {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 25px;
    font-size: 18px;
  }
  .section-label {
    margin-bottom: 23px;
  }
  .formation {
    gap: 30px;
  }
  .program {
    padding: 22px 0;
  }
  .program strong {
    font-size: 22px;
  }
  .program-body p {
    font-size: 17px;
  }
  .legacy-image {
    min-height: 310px;
  }
  .legacy-image > p {
    font-size: 12px;
    padding: 18px 6%;
  }
  .legacy-image > p span {
    font-size: 10px;
  }
  .legacy-copy {
    padding: 50px 6%;
  }
  .legacy-copy h2 {
    font-size: 35px;
  }
  .legacy-copy > p:not(.section-label) {
    font-size: 18px;
  }
  .section-heading {
    margin-bottom: 30px;
  }
  .section-heading > p {
    font-size: 17px;
  }
  .news-item {
    display: block;
    padding: 26px 0;
  }
  .news-meta {
    flex-direction: row;
    justify-content: space-between;
    gap: 12px;
    font-size: 10px;
    margin-bottom: 16px;
  }
  .news-item h3 {
    font-size: 23px;
  }
  .news-item summary {
    gap: 20px;
  }
  .publication {
    grid-template-columns: 1fr;
    gap: 42px;
    margin: 45px 0 0;
  }
  .book {
    width: 255px;
    min-height: 355px;
    margin: 0 auto;
    padding: 30px 26px;
  }
  .book strong {
    font-size: 34px;
  }
  .book-info {
    padding-top: 3px;
  }
  .book-info h3 {
    font-size: 30px;
  }
  .book-subtitle {
    font-size: 22px;
  }
  .contact-main {
    gap: 14px;
    align-items: end;
  }
  .contact-main h2 {
    font-size: 39px;
    letter-spacing: -1.5px;
  }
  .contact-circle {
    width: 56px;
    height: 56px;
    font-size: 29px;
  }
  .contact-bottom {
    flex-direction: column;
    align-items: start;
    gap: 18px;
    margin-top: 30px;
  }
  .contact-bottom p {
    font-size: 17px;
  }
  footer {
    grid-template-columns: 1fr;
    padding: 45px 6% 25px;
    gap: 30px;
  }
  .footer-links {
    justify-content: start;
    gap: 25px;
  }
  .footer-base {
    flex-direction: column;
    gap: 12px;
    padding-top: 23px;
  }
  .footer-brand {
    font-size: 22px;
  }
}
.header {
  position: sticky;
  top: 0;
}
html {
  scroll-padding-top: 115px;
}
.book-real {
  padding: 0;
  border: 0;
  min-height: 0;
  background: none;
  display: block;
}
.book-real:after {
  display: none;
}
.book-real img {
  width: 100%;
  height: auto;
}
.section-label,
.news-meta span,
.book-info .meta,
.brand em {
  color: #7c5b12;
}
.legacy-copy .section-label {
  color: var(--gold-light);
}
@media (max-width: 550px) {
  .contact-main {
    flex-wrap: wrap;
  }
  .contact-main h2 {
    flex: 1 1 280px;
    min-width: 0;
  }
  .contact-circle {
    margin-left: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
  .reading-progress {
    display: none;
  }
}

/* Una identidad, todas las páginas de la Escuela. */
.header nav{gap:23px}.header nav a{white-space:nowrap}.footer-links{flex-wrap:wrap;gap:18px 25px}
.page-intro{background:var(--paper);padding:25px 7% 75px;border-bottom:1px solid #e6e0d7;position:relative;overflow:hidden}
.page-intro:after{content:'';position:absolute;right:-70px;bottom:0;width:210px;height:100%;background:var(--gold);opacity:.1;transform:skew(-22deg);pointer-events:none}
.breadcrumbs{font:12px/1.6 var(--ui);display:flex;align-items:center;gap:12px;color:var(--muted);padding:0 0 45px;flex-wrap:wrap;position:relative;z-index:1}.breadcrumbs a{border-bottom:1px solid #b9bec2}.breadcrumbs [aria-current]{max-width:60ch}
.page-intro-grid{position:relative;z-index:1}.page-intro .section-label{margin-bottom:18px}.page-intro h1{color:var(--blue);margin:0 0 24px;max-width:1000px;font-size:clamp(40px,4.7vw,68px);letter-spacing:-2px}.page-intro h1 em{font:italic 400 1.06em/1.08 var(--text)}.intro-description{font:21px/1.6 var(--text);color:var(--muted);max-width:750px}.has-side .page-intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:center}.intro-portrait{align-self:center}.intro-portrait img{width:100%;aspect-ratio:1.18;object-fit:cover;object-position:38% center}.intro-portrait figcaption{font:11px/1.5 var(--ui);padding-top:12px;color:var(--muted)}
.editorial-split{display:grid;grid-template-columns:1fr 1.35fr;gap:10%}.prose{font:20px/1.75 var(--text);color:#41536a}.prose p+p{margin-top:22px}.prose h2{font:600 27px/1.2 var(--ui);letter-spacing:-.6px;color:var(--blue);margin-bottom:24px}.prose .text-link{margin-top:25px;margin-right:25px}.values-section{background:#f5f7f9}.values-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7%}.values-list article{border-top:1px solid var(--gold);padding-top:24px}.values-list h3{font:600 25px/1.3 var(--ui);margin-bottom:15px}.values-list p{font:18px/1.7 var(--text);color:var(--muted)}
.program-catalog{padding-top:30px;padding-bottom:40px}.program-feature{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding:65px 0;border-bottom:1px solid var(--line)}.program-feature:last-child{border:0}.program-heading h2{font:400 36px/1.2 var(--display);letter-spacing:-1px}.program-note{background:var(--blue);color:white;display:grid;grid-template-columns:1.3fr 1fr;gap:25px 9%;align-items:center}.program-note h2{font-size:42px;grid-row:span 2}.program-note>p{font:20px/1.6 var(--text);color:#d6e0ee}.program-note .text-link{justify-self:start;border-color:var(--gold-light)}
.collection-section{padding-top:48px}.filter-bar{display:flex;align-items:end;gap:25px;margin-bottom:38px;flex-wrap:wrap}.filter-bar>div:first-child{flex:1;max-width:490px}.filter-bar label{display:block;font:600 12px var(--ui);margin-bottom:10px}.filter-bar input,.filter-bar select{display:block;background:white;border:1px solid #acb9c7;padding:12px 15px;font:15px/1.4 var(--ui);color:var(--ink);border-radius:0;min-height:47px;width:100%}.filter-bar>p{font:12px var(--ui);color:var(--muted);padding:15px 0;margin-left:auto}.filter-empty{font:18px var(--text);padding:30px 0}.activity-list{border-top:1px solid var(--line)}.activity-card{display:grid;grid-template-columns:105px 1fr auto;gap:35px;align-items:center;padding:33px 0;border-bottom:1px solid var(--line)}.activity-date{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px;align-items:flex-start}.activity-date strong{font:400 49px/1 var(--display);color:var(--blue)}.activity-date span{font:12px var(--ui);color:var(--muted)}.activity-card h2{font:600 26px/1.25 var(--ui);letter-spacing:-.6px;margin:7px 0 12px}.activity-card .meta,.thread-item .meta{font:12px var(--ui);color:#7c5b12}.activity-card p:not(.meta){font:15px var(--ui);color:var(--muted)}.editorial-note{font:15px/1.65 var(--text);color:var(--muted);background:#f3f6f9;padding:22px;margin-top:30px;border-left:2px solid var(--gold)}
.detail-layout{display:grid;grid-template-columns:1.8fr 1fr;gap:10%;padding-top:65px}.detail-aside{border-top:2px solid var(--gold);padding:25px;background:#f5f7f9;align-self:start}.detail-aside h2{font:600 20px/1.4 var(--ui);letter-spacing:-.3px;margin-bottom:20px}.detail-aside p{font:17px/1.65 var(--text);color:var(--muted)}.detail-aside dl{margin:0 0 24px}.detail-aside dt{font:600 12px var(--ui);color:var(--muted);margin:17px 0 6px}.detail-aside dd{margin:0;font-size:15px}.detail-aside .solid-button{width:100%;justify-content:space-between}.article-signoff{font:600 14px var(--ui);color:var(--blue);margin-top:35px;border-top:1px solid var(--line);padding-top:25px}.article-link{display:flex;justify-content:space-between;align-items:center;gap:30px}.article-link h2{font:600 29px/1.25 var(--ui);letter-spacing:-.7px}.article-link>span{font-size:27px;color:var(--gold)}.listing-excerpt{font:18px/1.65 var(--text);color:var(--muted);margin-top:18px}.interior .news-item{grid-template-columns:1fr 3fr;padding:35px 0}.interior .news-item .text-link{margin-top:14px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),420px));gap:40px}.team-card{border:1px solid var(--line);padding:32px}.team-monogram{display:flex;justify-content:space-between;align-items:center;gap:20px;font:12px var(--ui);color:var(--muted);margin-bottom:50px}.team-rule{width:55px;height:6px;background:var(--gold);transform:skewX(-25deg)}.team-card h2{font:400 32px/1.25 var(--display);letter-spacing:-.8px}.team-role{font:600 14px var(--ui);margin:15px 0 20px;color:var(--blue)}.team-card>p:not(.team-role){font:18px/1.7 var(--text);color:var(--muted)}.team-card .text-link{margin-top:25px}
.library-catalog{background:#f5f7f9;padding-top:45px}.library-catalog .publication{margin:60px auto 90px;max-width:1000px}.library-catalog .publication:last-child{margin-bottom:0}.book-info h2{font:400 35px/1.2 var(--display);letter-spacing:-1px}.document-art{min-height:330px;background:var(--paper);border:1px solid #d3cabb;display:flex;flex-direction:column;padding:35px;gap:30px}.document-art span,.document-art small{font:12px var(--ui);color:var(--gold)}.document-art strong{font:400 30px/1.2 var(--display)}.document-art small{margin-top:auto}
.contact-layout,.registration-section,.forum-compose{display:grid;grid-template-columns:1fr 1.3fr;gap:9%;padding-top:70px}.contact-information h2{font-size:36px}.contact-information>p:not(.section-label){font:19px/1.65 var(--text);color:var(--muted);margin-top:25px;max-width:400px}.contact-information>a{margin:20px 25px 0 0}.contact-note{border-top:1px solid var(--line);margin-top:35px;padding-top:25px;font:15px/1.65 var(--text);color:var(--muted);max-width:390px}.public-form{display:grid;grid-template-columns:1fr 1fr;gap:23px;background:#f5f7f9;padding:32px;align-self:start}.public-field.wide,.public-form>.wide{grid-column:1/-1}.public-field label{font:600 13px var(--ui);display:block;margin-bottom:10px}.public-field input,.public-field textarea,.public-field select{width:100%;border:1px solid #a9b6c6;border-radius:0;padding:12px 13px;background:white;font:16px/1.5 var(--ui);color:var(--ink);min-height:48px}.public-field textarea{resize:vertical;min-height:140px}.consent{display:flex;align-items:flex-start;gap:12px;font:12px/1.6 var(--ui);color:var(--muted);cursor:pointer}.consent input{width:18px;height:18px;margin:2px 0 0;flex-shrink:0;accent-color:var(--blue)}.form-feedback{font:14px/1.6 var(--ui);color:#215537}.form-feedback:empty{display:none}.form-feedback.is-error{color:#a3202b}.solid-button{display:inline-flex;gap:30px;align-items:center;justify-content:center;background:var(--blue);color:white;border:1px solid var(--blue);font:600 13px/1.5 var(--ui);padding:15px 21px;min-height:49px;cursor:pointer}.solid-button span{font-size:22px;line-height:1}.solid-button:disabled{opacity:.7;cursor:wait}.registration-section,.forum-compose{background:var(--paper)}.registration-section h2,.forum-compose h2{font-size:40px}.registration-section>div>p:not(.section-label),.forum-compose>div>p:not(.section-label){font:19px/1.7 var(--text);color:var(--muted);margin-top:24px}.registration-section .public-form,.forum-compose .public-form{background:white}.empty-state{padding:40px;border:1px solid var(--line);background:#f8fafc}.empty-state>span{font:40px var(--text);color:var(--gold)}.empty-state>p{font:19px/1.65 var(--text);max-width:600px;color:var(--muted)}
.forum-layout{display:grid;grid-template-columns:1fr 2fr;gap:8%;padding-top:60px}.topic-list{margin-bottom:30px}.topic-list a{display:block;padding:20px 0;border-bottom:1px solid var(--line)}.topic-list strong{font:600 18px/1.4 var(--ui);display:block}.topic-list span{display:block;font:16px/1.6 var(--text);color:var(--muted);margin-top:7px}.thread-item{padding:30px 0;border-top:1px solid var(--line)}.thread-item h2{font:600 25px/1.3 var(--ui);margin:14px 0;letter-spacing:-.5px}.thread-item>p:not(.meta){font:18px/1.65 var(--text);color:var(--muted)}.thread-meta{display:flex;justify-content:space-between;gap:20px;font:12px var(--ui);color:var(--muted);margin-top:20px}.thread-detail{max-width:1140px;margin:auto;padding-top:65px}.thread-detail>.prose{padding-bottom:40px;border-bottom:1px solid var(--line)}.reply-list{margin:45px 0}.reply-list>h2,.reply-compose>h2{font:600 28px/1.3 var(--ui);margin-bottom:25px;letter-spacing:-.6px}.reply{padding:30px 0;border-bottom:1px solid var(--line)}.reply>div:first-child{display:flex;justify-content:space-between;gap:20px;margin-bottom:18px;font:14px var(--ui)}.reply time{font-size:12px;color:var(--muted)}.thread-detail>.text-link{margin-top:35px}.route-links{display:flex;gap:50px;align-items:center;justify-content:space-between;padding:30px 7%;background:var(--blue);color:white}.route-links p{font:20px var(--text)}.route-links .text-link{border-color:var(--gold-light)}
[hidden]{display:none!important}
/* Revisión editorial: títulos institucionales, sin eslóganes ni cursivas decorativas. */
h1,h2,.page-intro h1,.program-heading h2,.book-info h2,.book-info h3,.team-card h2{font-family:var(--ui);font-weight:600;letter-spacing:-.035em}
h1{font-size:clamp(38px,4.1vw,62px);line-height:1.12}.page-intro h1{font-size:clamp(36px,4.1vw,58px);line-height:1.15}.page-intro h1 em,h2 em{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:normal;letter-spacing:inherit}
h2{font-size:clamp(30px,3.3vw,46px);line-height:1.2}.hero-intro,.school-body,.formation-intro>p:not(.section-label),.program-body p,.legacy-copy>p:not(.section-label),.section-heading>p,.contact-bottom>p,.intro-description{font-family:var(--ui);font-size:17px;line-height:1.75}
.school h2{max-width:780px}.school-body{margin-top:26px}.hero .hero-intro{max-width:440px}.hero h1{max-width:530px}.contact-main h2{font-size:clamp(36px,4.5vw,62px);letter-spacing:-.04em}.page-intro .section-label{display:none}.page-intro .breadcrumbs{padding-bottom:35px}.section-aside .section-label{font-weight:600}.school .section-aside .section-label{font-size:13px}.section-heading .section-label,.formation-intro>.section-label,.legacy-copy>.section-label,.contact>.section-label{display:none}.legacy-signature{font:500 16px var(--ui);color:var(--gold-light);margin-top:25px}.section-more{margin-top:35px}.photo-caption{font:400 13px var(--ui)}.programs .program strong{font-weight:600}.formation-mark{display:none}
.section-heading{margin-bottom:38px}.subnavigation{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px;border-top:1px solid #c8c6c0;padding-top:20px;font:500 14px var(--ui)}.subnavigation a{border-bottom:1px solid var(--gold);padding:6px 0}.subnavigation a[aria-current]{color:var(--blue);font-weight:700}
@media(hover:hover){.article-link:hover h2,.team-card h2 a:hover,.activity-card h2 a:hover,.thread-item h2 a:hover{color:#7c5b12}.solid-button:hover{background:#1b497f}}
@media(max-width:1150px){.header nav{gap:14px;font-size:12px}.brand>span{font-size:17px}.header{padding-left:3%;padding-right:3%}.page-intro{padding-left:6%;padding-right:6%}.activity-card{grid-template-columns:85px 1fr;gap:25px}.activity-card>.text-link{grid-column:2;justify-self:start}.contact-layout,.registration-section,.forum-compose{gap:5%}.public-form{padding:24px;gap:20px}}
@media(max-width:950px){.header{padding:18px 5%;flex-wrap:wrap;min-height:88px}.menu-toggle{display:flex;gap:14px;align-items:center;background:none;border:1px solid var(--line);color:var(--blue);padding:9px 13px;font-size:13px}.header nav{width:100%;justify-content:start;gap:10px 22px;flex-wrap:wrap;padding-top:18px;font-size:14px}.js .header nav{display:none}.js .header nav.is-open{display:flex}.has-side .page-intro-grid{gap:5%}.page-intro h1{font-size:45px}.intro-description{font-size:19px}.editorial-split{gap:6%}.program-heading h2{font-size:30px}.forum-layout{grid-template-columns:1fr 1.65fr;gap:5%}.forum-layout .filter-bar{display:block}.forum-layout .filter-bar>div{margin-bottom:18px}.detail-layout{gap:6%}.contact-information h2{font-size:31px}.public-form{grid-template-columns:1fr}.public-form>.wide{grid-column:1}.filter-bar>p{margin-left:0}.program-note h2{font-size:36px}}
@media(max-width:700px){.page-intro{padding:20px 6% 48px}.breadcrumbs{font-size:11px;padding-bottom:30px;gap:8px}.page-intro h1{font-size:40px;letter-spacing:-1.4px}.intro-description{font-size:19px}.has-side .page-intro-grid{display:block}.intro-portrait{margin-top:35px;max-width:500px}.intro-portrait img{aspect-ratio:1.6}.editorial-split,.program-feature,.program-note,.detail-layout,.contact-layout,.registration-section,.forum-compose,.forum-layout{grid-template-columns:1fr;gap:32px}.editorial-split{padding-top:60px}.prose{font-size:19px}.values-list{grid-template-columns:1fr;gap:35px}.values-list h3{font-size:24px}.program-feature{padding:40px 0}.program-note h2{grid-row:auto;font-size:33px}.program-note p{font-size:19px}.interior .news-item{display:block}.interior .news-meta{flex-direction:row;margin-bottom:20px;font-size:11px;justify-content:space-between}.article-link h2{font-size:25px}.activity-card{grid-template-columns:67px 1fr;gap:20px}.activity-date strong{font-size:38px}.activity-date span{font-size:10px}.activity-card h2{font-size:23px}.activity-card p:not(.meta){font-size:14px}.filter-bar{gap:20px;display:block}.filter-bar>div{margin-bottom:18px}.filter-bar>div:first-child{max-width:none}.filter-bar>p{padding:0}.detail-aside{padding:25px}.library-catalog .publication{margin:40px auto 65px}.book-info h2{font-size:29px}.public-form{padding:25px 20px}.contact-information h2{font-size:34px}.registration-section h2,.forum-compose h2{font-size:34px}.forum-layout{padding-top:40px}.topic-list{display:grid;grid-template-columns:1fr;gap:0}.topic-list a{padding:16px 0}.topic-list span{font-size:15px}.forum-layout aside>.editorial-note{font-size:14px}.empty-state{padding:27px}.empty-state>p{font-size:18px}.thread-meta{font-size:11px}.reply>div:first-child{flex-direction:column;gap:8px}.route-links{flex-direction:column;align-items:start;gap:15px;padding:30px 6%}.route-links p{font-size:19px}.footer-links{gap:18px 25px}.page-intro:after{right:-100px;opacity:.07}}
