/* Site design: light ice-blue surfaces, indigo accent, muted gold details. Loaded on every page.
   The --f-* colors point at the theme.json palette (src/theme.json), so palette edits apply everywhere. */
.sa-front {
  --f-bg: var(--wp--preset--color--bg);
  --f-stone: var(--wp--preset--color--stone);
  --f-white: var(--wp--preset--color--white);
  --f-line: var(--wp--preset--color--line);
  --f-line-strong: var(--wp--preset--color--line-strong);
  --f-ink: var(--wp--preset--color--ink);
  --f-text: var(--wp--preset--color--text);
  --f-muted: var(--wp--preset--color--muted);
  --f-indigo: var(--wp--preset--color--indigo);
  --f-indigo-deep: var(--wp--preset--color--indigo-deep);
  --f-gold: var(--wp--preset--color--gold);
  --f-gold-text: var(--wp--preset--color--gold-text);
  --f-gold-light: var(--wp--preset--color--gold-light);
  --f-on-dark: var(--wp--custom--color--on-dark);
  --f-section: clamp(80px, 5vw + 48px, 144px);
  --f-ease: cubic-bezier(.2, .7, .2, 1);
  --wp--custom--layout--wide: 1320px;
  --wp--custom--layout--gutter: clamp(20px, 4vw, 48px);
  background: var(--f-bg);
  color: var(--f-text);
  font-size: clamp(16px, .95rem + .15vw, 17.5px);
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  /* Cormorant defaults to old-style figures; numbers read better on one line. */
  font-variant-numeric: lining-nums;
}
/* Large monitors: the layout widens and the type grows a step, so the page does not shrink into a narrow column. */
@media (min-width: 1800px) {
  .sa-front { --wp--custom--layout--wide: 1480px; font-size: 18px; }
}
@media (min-width: 2200px) {
  html:has(> .sa-front) { font-size: 112.5%; }
  .sa-front { --wp--custom--layout--wide: 1680px; font-size: 19.5px; }
  .front-header .front-nav__list > li > a { font-size: 13px; }
  .sa-front .front-header .front-brand__name { font-size: 21px; }
  .sa-front .front-header .front-brand__sub { font-size: 10px; }
}
.sa-front h1, .sa-front h2, .sa-front h3 { color: var(--f-ink); font-weight: 500; letter-spacing: -.012em; text-wrap: balance; }
.sa-front h2 { font-size: clamp(2.25rem, 1.45rem + 2.5vw, 3.75rem); line-height: 1.08; }
.sa-front em { font-style: italic; font-weight: 400; }
.sa-front ::selection { background: var(--f-indigo); color: var(--f-white); }
.sa-front :focus-visible { outline: 2px solid var(--f-indigo); outline-offset: 4px; }
.sa-front .sa-eyebrow { font-size: 13px; line-height: 1.5; letter-spacing: .2em; font-weight: 600; color: var(--f-gold-text); }

/* Buttons and links */
.sa-front .sa-button { min-height: 52px; padding: 0 26px; gap: 14px; border: 1px solid var(--f-indigo); border-radius: 2px; background: var(--f-indigo); color: var(--f-white); font-size: 14px; font-weight: 600; letter-spacing: .02em; box-shadow: none; transition: background 200ms, border-color 200ms, color 200ms; }
.sa-front .sa-button:hover { background: var(--f-indigo-deep); border-color: var(--f-indigo-deep); }
.sa-front .sa-button--outline { background: transparent; border-color: var(--f-line-strong); color: var(--f-ink); }
.sa-front .sa-button--outline:hover { background: transparent; border-color: var(--f-ink); }
.front-arrow { width: 18px; height: 18px; flex-shrink: 0; transition: transform 250ms var(--f-ease); }
a:hover > .front-arrow, button:hover > .front-arrow { transform: translateX(4px); }
.front-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--f-ink); font-size: 14px; font-weight: 600; letter-spacing: .02em; text-decoration: none; background: linear-gradient(var(--f-gold), var(--f-gold)) 0 calc(100% - 10px) / 100% 1px no-repeat; transition: color 200ms, background-size 300ms var(--f-ease); }
.front-link:hover { color: var(--f-indigo); background-image: linear-gradient(var(--f-indigo), var(--f-indigo)); }

/* Header: brand in the centre, navigation split around it */
.sa-front .front-header { position: sticky; top: 0; z-index: 40; background: #f5f8fceb; color: var(--f-ink); border-bottom: 1px solid transparent; backdrop-filter: blur(16px); transition: border-color 300ms; }
/* Without JavaScript the expanded navigation scrolls away instead of covering the page. */
.sa-front .front-header:not(.sa-menu-ready) { position: relative; }
.sa-front .front-header.home-header--scrolled { border-bottom-color: var(--f-line); }
.front-header .sa-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; padding-block: 10px; }
.front-brand { gap: 12px; color: var(--f-ink); flex-shrink: 0; }
.sa-brand.front-brand > img { width: 40px; height: 40px; transition: width 400ms var(--f-ease), height 400ms var(--f-ease), opacity 300ms, margin 400ms var(--f-ease); }
.front-brand__text { display: flex; flex-direction: column; }
.front-brand__name { font-family: var(--wp--preset--font-family--display); font-size: 17px; font-weight: 600; line-height: 1.1; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.front-brand__sub { margin-top: 5px; font-size: 9px; font-weight: 600; line-height: 1.2; letter-spacing: .32em; text-transform: uppercase; color: var(--f-gold-text); white-space: nowrap; }
.front-nav { margin: 0; }
.front-nav .front-link { display: inline-flex; padding-block: 0; font-size: 14px; color: var(--f-ink); }
.front-nav__list { margin: 0; padding: 0; list-style: none; }
.front-nav__list > li > a { position: relative; display: flex; align-items: center; gap: 8px; min-height: 44px; color: var(--f-text); text-decoration: none; transition: color 200ms; }
.front-nav__list > li > a:hover, .front-nav__list > li:focus-within > a { color: var(--f-ink); }
.front-nav__chevron { width: 12px; height: 12px; transition: transform 300ms var(--f-ease); }
.front-nav .front-mega__list { margin: 0; padding: 0; list-style: none; }
.front-nav .front-mega__list a { text-decoration: none; color: var(--f-ink); }
.front-nav .front-mega__list small { display: block; font-family: var(--wp--preset--font-family--body); font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: .18em; text-transform: uppercase; color: var(--f-gold-text); }
.sa-front .sa-menu-toggle { display: none; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid var(--f-line-strong); border-radius: 2px; background: transparent; color: var(--f-ink); }
.home-header__burger { position: relative; display: block; width: 18px; height: 14px; }
.home-header__burger > span { position: absolute; left: 0; width: 18px; height: 1.5px; background: currentColor; transition: transform 250ms, top 250ms; }
.home-header__burger > span:first-child { top: 3px; }
.home-header__burger > span:last-child { top: 10px; }
[aria-expanded='true'] .home-header__burger > span:first-child { top: 6px; transform: rotate(45deg); }
[aria-expanded='true'] .home-header__burger > span:last-child { top: 6px; transform: rotate(-45deg); }
.sa-front .home-menu-backdrop { display: none; }

@media (min-width: 1100px) {
  .front-header .sa-header__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; min-height: 108px; padding-block: 0; transition: min-height 400ms var(--f-ease); }
  .front-header.home-header--scrolled .sa-header__inner { min-height: 72px; }
  .front-header .front-brand { position: relative; z-index: 2; grid-column: 2; grid-row: 1; flex-direction: column; justify-content: center; gap: 10px; text-align: center; }
  .front-header .front-brand__text { align-items: center; }
  .front-header .front-brand__name { font-size: 19px; letter-spacing: .2em; margin-right: -.2em; }
  .front-header .front-brand__sub { margin-right: -.32em; }
  .home-header--scrolled .sa-brand.front-brand > img { width: 0; height: 0; margin-bottom: -10px; opacity: 0; }
  .front-nav { grid-column: 1 / -1; grid-row: 1; display: flex; justify-content: space-between; align-items: stretch; }
  .front-nav__list { display: flex; align-items: stretch; gap: clamp(22px, 2.4vw, 40px); }
  .front-nav__list > li { display: flex; align-items: center; }
  .front-nav__list > li > a { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
  .front-nav__list > li:not(.front-nav__cta) > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 8px; height: 1px; background: var(--f-gold); transform: scaleX(0); transform-origin: left; transition: transform 350ms var(--f-ease); }
  .front-nav__list > li > a:hover::after, .front-nav__list > li:focus-within > a::after { transform: scaleX(1); }
  .front-nav__list > li > a > span, .home-menu__intro, .home-menu__footer { display: none; }
  .front-nav__cta > a { padding: 0 18px; border: 1px solid var(--f-ink); background: linear-gradient(var(--f-indigo), var(--f-indigo)) left / 0 100% no-repeat; color: var(--f-ink); transition: background-size 450ms var(--f-ease), color 300ms, border-color 300ms; }
  .front-nav__list > .front-nav__cta > a:hover { background-size: 100% 100%; border-color: var(--f-indigo); color: var(--f-white); }
  .front-nav__cta .front-arrow { width: 16px; height: 16px; }
  /* Faculties panel, anchored to the full header width */
  .front-mega { position: absolute; top: 100%; left: 0; right: 0; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity 250ms, transform 350ms var(--f-ease), visibility 0s 350ms; }
  .front-nav__mega:hover .front-mega, .front-nav__mega:focus-within .front-mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .front-nav__mega.is-dismissed .front-mega { visibility: hidden; opacity: 0; }
  .front-nav__mega:hover .front-nav__chevron, .front-nav__mega:focus-within .front-nav__chevron { transform: rotate(180deg); }
  .front-mega__inner { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; padding: 36px 40px; background: var(--f-white); border: 1px solid var(--f-line); box-shadow: 0 40px 80px -40px #151c2f40; }
  .front-mega__title { margin-top: 12px; font-family: var(--wp--preset--font-family--display); font-size: 26px; line-height: 1.2; color: var(--f-ink); }
  .front-mega__intro .front-link { margin-top: 16px; }
  .front-nav .front-mega__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 24px; }
  .front-nav .front-mega__list a { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 14px; padding: 8px; margin: -8px; transition: background 200ms; }
  .front-nav .front-mega__list a:hover { background: var(--f-stone); }
  .front-nav .front-mega__list img { width: 52px; height: 65px; object-fit: cover; }
  .front-nav .front-mega__list a > span { font-family: var(--wp--preset--font-family--display); font-size: 21px; line-height: 1.2; }
}
@media (min-width: 1100px) and (prefers-reduced-motion: no-preference) {
  .front-mega__list > li { opacity: 0; translate: 0 10px; transition: opacity 300ms, translate 450ms var(--f-ease); }
  .front-nav__mega:is(:hover, :focus-within) .front-mega__list > li { opacity: 1; translate: none; transition-delay: calc((var(--n, 0) + 1) * 35ms); }
  .front-mega__list > li:nth-child(2) { --n: 1; } .front-mega__list > li:nth-child(3) { --n: 2; } .front-mega__list > li:nth-child(4) { --n: 3; }
  .front-mega__list > li:nth-child(5) { --n: 4; } .front-mega__list > li:nth-child(6) { --n: 5; } .front-mega__list > li:nth-child(7) { --n: 6; } .front-mega__list > li:nth-child(8) { --n: 7; }
}
@media (max-width: 1099px) {
  .sa-front.home-nav-open { overflow: hidden; }
  .sa-front .front-header.sa-menu-ready .sa-menu-toggle { display: grid; }
  .sa-front .front-header.sa-menu-ready .sa-header__inner { position: static; }
  .sa-front .front-header.sa-menu-ready .front-nav { position: absolute; top: 100%; left: 0; width: 100%; height: calc(100dvh - var(--wp--custom--size--header)); overflow-y: auto; overscroll-behavior: contain; padding: 24px var(--wp--custom--layout--gutter) 40px; background: var(--f-bg); border-top: 1px solid var(--f-line); }
  .sa-front .front-header:not(.sa-menu-ready) .sa-header__inner { flex-wrap: wrap; }
  .sa-front .front-header:not(.sa-menu-ready) .front-nav { width: 100%; padding-bottom: 24px; }
  .front-nav { counter-reset: menu; }
  .home-menu__intro { margin: 0 0 8px; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--f-gold-text); }
  .front-nav__list > li { counter-increment: menu; border-bottom: 1px solid var(--f-line); }
  .front-nav__list > li > a { gap: 16px; min-height: 64px; font-family: var(--wp--preset--font-family--display); font-size: 30px; line-height: 1.2; color: var(--f-ink); }
  .front-nav__list > li > a::before { content: '0' counter(menu); min-width: 22px; font-family: var(--wp--preset--font-family--body); font-size: 11px; letter-spacing: .1em; color: var(--f-gold-text); }
  .front-nav__list > li > a > span { margin-left: auto; font-family: var(--wp--preset--font-family--body); font-size: 18px; color: var(--f-gold); }
  .front-nav__chevron, .front-mega__intro, .front-nav .front-mega__list img, .front-nav .front-mega__list small, .front-nav__cta { display: none; }
  .front-nav .front-mega__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; padding: 0 0 16px 38px; }
  .front-nav .front-mega__list a { display: flex; min-height: 40px; align-items: center; font-size: 15px; color: var(--f-text); }
  .home-menu__footer { margin-top: 32px; }
  .front-nav .home-menu__footer > .sa-button { display: flex; width: 100%; justify-content: space-between; color: var(--f-white); }
  .home-menu__footer > p { margin: 18px 0 8px; font-size: 13px; color: var(--f-muted); }
  .home-menu__contacts { display: flex; gap: 24px; }
  .home-menu__contacts a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 600; color: var(--f-ink); text-decoration: none; }
  .home-menu__contacts svg { width: 18px; height: 18px; color: var(--f-indigo); }
}
@media (max-width: 599px) {
  .sa-front .front-hero__eyebrow { font-size: 11px; letter-spacing: .16em; }
  .front-hero__eyebrow::before { width: 24px; }
  .front-brand__name { font-size: 15px; letter-spacing: .13em; }
  .front-brand__sub { font-size: 8.5px; letter-spacing: .26em; }
  .sa-brand.front-brand > img { width: 36px; height: 36px; }
  .front-header .sa-header__inner { min-height: 64px; }
  .front-nav .front-mega__list { grid-template-columns: 1fr; }
}
/* The smallest phones keep the wordmark and the menu button on one line. */
@media (max-width: 374px) {
  .front-header .sa-header__inner { flex-wrap: nowrap; gap: 12px; }
  .front-header .front-brand { gap: 10px; min-width: 0; }
  .front-header .front-brand__name { font-size: 13.5px; letter-spacing: .1em; }
  .front-header .front-brand__sub { font-size: 8px; letter-spacing: .2em; }
  .front-header .sa-brand.front-brand > img { width: 32px; height: 32px; }
  .sa-front .front-hero .front-hero__eyebrow { gap: 10px; font-size: 10.5px; letter-spacing: .08em; }
  .front-hero .front-hero__eyebrow::before { width: 18px; }
}
@media (prefers-reduced-motion: no-preference) {
  .front-nav[data-open='true'] { animation: front-fade 350ms var(--f-ease); }
}

/* Hero: full-screen photograph, headline and facts laid over it */
.front-hero { position: relative; isolation: isolate; display: flex; min-height: max(620px, 100svh); overflow: hidden; color: var(--f-white); background: var(--f-indigo-deep); }
/* With JavaScript the transparent header sits on top of the photograph. */
.front-header.sa-menu-ready ~ main .front-hero { margin-top: calc(var(--wp--custom--size--header) * -1); }
.front-hero__media { position: absolute; inset: 0; z-index: -1; }
.front-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.front-hero__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #10162680 0%, #10162600 28%), linear-gradient(0deg, #101626eb 0%, #101626b3 32%, #10162633 64%, #10162600 82%); }
.front-hero__inner { display: flex; flex-direction: column; justify-content: flex-end; padding-top: calc(var(--wp--custom--size--header) + 48px); }
.front-hero__content { max-width: 920px; }
.sa-front .front-hero__eyebrow { display: flex; align-items: center; gap: 14px; color: #ffffffd9; }
.front-hero__eyebrow::before { content: ''; width: 36px; height: 1px; background: var(--f-gold-light); }
.sa-front .front-hero h1 { margin-top: 24px; color: var(--f-white); font-size: clamp(3rem, 1.3rem + 4.4vw, 6.5rem); font-weight: 400; line-height: .98; letter-spacing: -.025em; overflow-wrap: normal; }
.front-hero h1 em { color: var(--f-gold-light); }
.front-line { display: block; padding-bottom: .1em; margin-bottom: -.1em; clip-path: inset(-1em -100vw 0 -100vw); }
.front-line > span { display: inline-block; }
.front-hero__lead { max-width: 34em; margin-top: 28px; font-size: clamp(17px, 1rem + .3vw, 20px); line-height: 1.6; color: #ffffffd9; }
.front-hero .wp-block-buttons { margin-top: 36px; gap: 16px 32px; }
.sa-front .front-button--light { background: var(--f-white); border-color: var(--f-white); color: var(--f-indigo); }
.sa-front .front-button--light:hover { background: var(--f-bg); border-color: var(--f-bg); color: var(--f-indigo-deep); }
.front-link--light { color: var(--f-white); background-image: linear-gradient(#ffffff80, #ffffff80); }
.front-link--light:hover { color: var(--f-white); background-image: linear-gradient(var(--f-gold-light), var(--f-gold-light)); }
.front-hero__bottom { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-top: clamp(40px, 6vw, 88px); }
.front-hero__bottom::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: #ffffff38; transform-origin: left; }
.front-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.front-hero__facts li { display: flex; flex-direction: column; gap: 2px; padding: 20px 12px 24px 0; }
.front-hero__facts li + li { padding-left: 12px; border-left: 1px solid #ffffff38; }
.front-hero__facts strong { display: flex; align-items: center; gap: 10px; font-family: var(--wp--preset--font-family--display); font-size: clamp(16px, .8rem + .6vw, 22px); font-weight: 500; line-height: 1.25; }
.front-hero__facts strong { align-items: flex-start; }
.front-hero__facts strong::before { content: ''; width: 5px; height: 5px; flex-shrink: 0; margin-top: .55em; background: var(--f-gold-light); rotate: 45deg; }
.front-hero__cue { display: flex; align-items: center; gap: 16px; padding: 0 0 0 32px; border-left: 1px solid #ffffff38; font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #ffffffd9; text-decoration: none; transition: color 250ms; }
.front-hero__cue:hover { color: var(--f-white); }
.front-hero__cue-line { position: relative; width: 1px; height: 48px; overflow: hidden; background: #ffffff70; }
.front-hero__cue-line::after { content: ''; position: absolute; top: 0; left: 0; width: 1px; height: 18px; background: var(--f-gold-light); box-shadow: 0 0 6px var(--f-gold-light); }
.front-hero :focus-visible { outline-color: var(--f-gold-light); }
.front-hero__facts span { display: none; font-size: 14px; color: #ffffffb3; }
@media (min-width: 760px) {
  .front-hero__facts li { padding: 26px 32px 32px 0; }
  .front-hero__facts li + li { padding-left: 32px; }
  .front-hero__facts span { display: block; }
}
@media (max-width: 759px) { .front-hero__media img { object-position: 74% 50%; } }
@media (max-width: 759px) {
  .sa-home .front-hero__media img { height: 78%; object-position: 74% 50%; mask-image: linear-gradient(#000 65%, transparent 100%); }
  .sa-home .front-hero__media::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #10162673, #10162626); }
}
@media (max-width: 599px) { .front-hero__bottom { display: none; } .front-hero__inner { padding-bottom: 56px; } }
/* On tablets the three facts need the whole row; the scroll cue returns on wider screens. */
@media (max-width: 999px) {
  .front-hero__bottom { grid-template-columns: minmax(0, 1fr); }
  .front-hero__cue { display: none; }
}
/* Phones and small tablets held sideways: a compact hero that still shows the headline and the button. */
@media (max-height: 560px) and (orientation: landscape) {
  .front-hero { min-height: 100svh; }
  .front-hero__inner { padding-top: calc(var(--wp--custom--size--header) + 24px); padding-bottom: 32px; }
  .sa-front .front-hero h1 { margin-top: 14px; font-size: clamp(2.25rem, 1rem + 4vw, 3.25rem); }
  .front-hero__lead { max-width: 44em; margin-top: 14px; font-size: 16px; }
  .front-hero .wp-block-buttons { margin-top: 20px; }
  .front-hero__bottom { display: none; }
  .front-hero__content { width: min(640px, 70%); }
  .sa-home .front-hero__media img { height: 100%; mask-image: none; }
}
@media (min-width: 1000px) {
  /* The words sit on the left over a soft indigo shade; the photograph opens up to the right. */
  .sa-home .front-hero__media img { object-position: 25% 50%; }
  .front-hero__content { width: min(680px, 52%); max-width: none; }
  .front-hero__media::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #101626b3 0%, #10162666 38%, #10162600 62%); }
}

/* Load choreography: the photograph settles, the lines rise, the rest follows */
@media (prefers-reduced-motion: no-preference) {
  .front-hero__media img { animation: front-settle 14s cubic-bezier(.2, .6, .2, 1) both; }
  .front-line > span { animation: front-rise 1.3s .15s var(--f-ease) both; }
  .front-line:nth-child(2) > span { animation-delay: .25s; }
  .front-line:nth-child(3) > span { animation-delay: .35s; }
  .front-hero__eyebrow, .front-hero__lead, .front-hero .wp-block-buttons, .front-hero__facts, .front-hero__cue { animation: front-fade 1.2s .55s var(--f-ease) both; }
  .front-hero__facts, .front-hero__cue { animation-delay: .8s; }
  .front-hero__bottom::before { animation: front-draw-x 1.6s .6s var(--f-ease) both; }
  .front-hero__cue-line::after { animation: front-cue 2.4s 1.6s cubic-bezier(.6, 0, .3, 1) infinite both; }
  /* While the hero scrolls away the photograph lags behind and the words fade upwards (--hero-out from home.js). */
  .home-motion-active .front-hero__media { translate: 0 calc(var(--hero-out, 0) * 30%); }
  .home-motion-active .front-hero__content { opacity: calc(1 - var(--hero-out, 0) * 1.6); translate: 0 calc(var(--hero-out, 0) * -72px); }
}
@keyframes front-settle { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes front-rise { from { transform: translateY(110%); } }
@keyframes front-draw-x { from { transform: scaleX(0); } }
@keyframes front-cue { from { transform: translateY(-100%); } 70%, to { transform: translateY(300%); } }
@keyframes front-fade { from { opacity: 0; transform: translateY(12px); } }

/* Transparent header while it rests on a hero photograph (homepage, about) */
.sa-front:has(.front-hero, .legal-hero):not(.home-nav-open) .front-header.sa-menu-ready:not(.home-header--scrolled):not(:has(.front-nav__mega:hover, .front-nav__mega:focus-within)) { background: transparent; border-bottom-color: #ffffff26; backdrop-filter: none; color: var(--f-white); }
.sa-front:has(.front-hero, .legal-hero):not(.home-nav-open) .front-header.sa-menu-ready:not(.home-header--scrolled):not(:has(.front-nav__mega:hover, .front-nav__mega:focus-within)) :is(.front-brand, .front-nav__list > li > a, .sa-menu-toggle) { color: var(--f-white); }
.sa-front:has(.front-hero, .legal-hero):not(.home-nav-open) .front-header.sa-menu-ready:not(.home-header--scrolled):not(:has(.front-nav__mega:hover, .front-nav__mega:focus-within)) :is(.front-brand__sub) { color: var(--f-gold-light); }
.sa-front:has(.front-hero, .legal-hero):not(.home-nav-open) .front-header.sa-menu-ready:not(.home-header--scrolled):not(:has(.front-nav__mega:hover, .front-nav__mega:focus-within)) :is(.front-nav__cta > a, .sa-menu-toggle) { border-color: #ffffff8c; }
.sa-front .front-header { transition: background 400ms, border-color 400ms, color 400ms, translate 450ms var(--f-ease); }
/* Below the hero the header steps away while reading down and returns on the way up (home-header.js). */
.sa-front .front-header.home-header--hidden { translate: 0 -100%; }
/* A gold hairline under the header shows how far the page has been read (value from home.js). */
.sa-front .front-header::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: var(--f-gold); transform: scaleX(var(--home-progress, 0)); transform-origin: left; opacity: 0; transition: opacity 400ms; pointer-events: none; }
.sa-front .front-header.home-header--scrolled::after { opacity: 1; }

/* A faint paper grain over the whole page gives the flat colours a printed feel */
.sa-front::after { content: ''; position: fixed; inset: 0; z-index: 90; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .12 0 0 0 0 .2 .1 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity: .55; }

/* Marquee: the academy's themes drift sideways with the scroll (home.js); without motion they simply rest. */
.front-marquee { overflow: hidden; padding-block: clamp(26px, 3vw, 44px); border-bottom: 1px solid var(--f-line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.front-marquee__track { display: flex; width: max-content; transform: translate3d(var(--marquee-shift, 0px), 0, 0); }
.home-motion-active .front-marquee__track { will-change: transform; }
.front-marquee__list { display: flex; margin: 0; padding: 0; list-style: none; }
.front-marquee__list li { display: flex; align-items: center; font-family: var(--wp--preset--font-family--display); font-size: clamp(28px, 1.4rem + 1.7vw, 46px); font-weight: 500; line-height: 1.2; color: var(--f-ink); white-space: nowrap; }
.front-marquee__list li:nth-child(even) { font-style: italic; font-weight: 400; color: var(--f-gold-text); }
.front-marquee__list li::after { content: ''; width: 7px; height: 7px; margin-inline: clamp(24px, 3vw, 52px); background: var(--f-gold); transform: rotate(45deg); }

/* Section headings */
.front-section { padding-block: var(--f-section); }
.front-heading { display: grid; gap: 20px; margin-bottom: clamp(40px, 4vw, 72px); }
.front-heading h2 { margin-top: 18px; }
.front-heading__aside p { max-width: 40ch; color: var(--f-muted); }
.front-heading__aside .front-link { margin-top: 8px; }
@media (min-width: 900px) {
  .front-heading { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 64px; }
  .front-heading__aside { padding-bottom: 6px; }
}

/* Faculties: a bento grid with Abitura as the starting point and an indigo help card in the last cell */
.front-faculty-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 0; list-style: none; }
.front-faculty { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 4 / 5; overflow: hidden; background: var(--f-indigo-deep); color: var(--f-white); }
.front-faculty__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82); transition: transform 1.1s var(--f-ease), filter .6s; }
.front-faculty::before, .front-faculty::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; transition: opacity .6s; }
.front-faculty::before { background: linear-gradient(180deg, #10162680 0%, #10162600 22%), linear-gradient(0deg, #101626e6 0%, #10162680 34%, #10162600 62%); }
/* The hover layer carries a soft gold light that follows the pointer (front.js sets --mx and --my). */
.front-faculty::after { background: radial-gradient(circle at var(--mx, 50%) var(--my, 35%), #d3b88430 0, #d3b88400 42%), linear-gradient(0deg, #101626f2 0%, #101626b3 50%, #10162640 100%); opacity: 0; }
.front-faculty__num { position: absolute; top: 14px; left: 16px; font-size: 12px; font-weight: 600; letter-spacing: .16em; color: #ffffffe6; }
.front-faculty__body { padding: 16px; }
.front-faculty__label { font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: .2em; text-transform: uppercase; color: var(--f-gold-light); }
.sa-front .front-faculty h3 { margin-top: 6px; color: var(--f-white); font-size: clamp(21px, 1rem + 1vw, 32px); font-weight: 400; line-height: 1.1; }
.sa-front .front-faculty__link { display: inline-flex; flex-direction: row; align-items: center; gap: 10px; padding: 0; color: inherit; text-decoration: none; }
.front-faculty__link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.front-faculty__link .front-arrow { width: 18px; height: 18px; color: var(--f-gold-light); opacity: 0; transform: translateX(-8px); transition: opacity .4s, transform .5s var(--f-ease); }
.front-faculty__more { display: none; }
.front-faculty__courses { margin: 14px 0 0; padding: 0; list-style: none; border-top: 1px solid #ffffff38; }
.front-faculty__courses li { border-bottom: 1px solid #ffffff24; }
.front-faculty__courses a { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 14px; line-height: 1.4; color: #ffffffd9; text-decoration: none; transition: color .2s; }
.front-faculty__courses a::after { content: '→'; color: var(--f-gold-light); }
.front-faculty__courses a:hover { color: var(--f-white); }
.front-faculty:hover .front-faculty__img, .front-faculty:focus-within .front-faculty__img { transform: scale(1.06); filter: saturate(1); }
.front-faculty:hover .front-faculty__link .front-arrow, .front-faculty:focus-within .front-faculty__link .front-arrow { opacity: 1; transform: none; }
@media (min-width: 900px) {
  /* Three columns on small laptops and tablets in landscape, four from 1200px: both fill every cell. */
  .front-faculty-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .front-faculty__num { top: 20px; left: 24px; }
  .front-faculty__body { padding: 24px; }
  .front-faculty__label { font-size: 11px; }
  /* Touch screens show the courses at once; with a pointer they rise on hover or focus. */
  .front-faculty__more { display: grid; grid-template-rows: 1fr; }
  .front-faculty__more > ul { min-height: 0; overflow: hidden; }
}
@media (min-width: 900px) and (hover: hover) {
  .front-faculty__more { grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .6s var(--f-ease), opacity .4s; }
  .front-faculty:hover .front-faculty__more, .front-faculty:focus-within .front-faculty__more { grid-template-rows: 1fr; opacity: 1; }
  .front-faculty:hover::after, .front-faculty:focus-within::after { opacity: 1; }
}
@media (min-width: 1200px) { .front-faculty-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .front-faculty__num { top: 10px; left: 12px; font-size: 13px; }
  .front-faculty__body { padding: 12px; }
  .front-faculty__label { font-size: 10px; letter-spacing: .1em; }
  /* Seven cards in two columns leave one cell empty: the last faculty takes the full row instead. */
  .front-faculty-grid > .front-faculty:nth-last-child(2) { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .front-faculty-grid > .front-faculty:nth-last-child(2) .front-faculty__img { object-position: 50% 30%; }
}
/* Narrow phones: names such as «Цивилизации» stay whole instead of breaking mid-word. */
@media (max-width: 419px) {
  .sa-front .front-faculty:not(.front-faculty--lead) h3 { font-size: clamp(18px, 4.4vw + 4px, 21px); overflow-wrap: normal; }
}
@media (min-width: 600px) and (max-width: 899px) {
  .front-faculty-grid > .front-faculty-help { grid-column: auto; aspect-ratio: 4 / 5; padding: 24px; }
}
@media (prefers-reduced-motion: reduce) { .front-faculty__img, .front-faculty__more { transition: none; } }
.front-faculty--lead { grid-column: 1 / -1; }
.front-faculty__desc { display: none; }
.front-faculty--lead .front-faculty__desc { display: block; max-width: 40ch; margin-top: 12px; font-size: 15px; line-height: 1.6; color: #ffffffd9; }
.front-faculty--lead .front-faculty__link .front-arrow { opacity: 1; transform: none; }
.front-faculty-help { position: relative; isolation: isolate; grid-column: 1 / -1; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 12px; padding: 28px; overflow: hidden; background: var(--f-indigo); color: var(--f-on-dark); }
.front-faculty-help__knot { position: absolute; z-index: -1; top: -18%; right: -28%; width: 110%; color: var(--f-gold-light); opacity: .16; transition: rotate 1.6s var(--f-ease); pointer-events: none; }
.front-faculty-help:hover .front-faculty-help__knot { rotate: 40deg; }
.sa-front .front-faculty-help h3 { color: var(--f-white); font-size: clamp(27px, 1.3rem + .9vw, 34px); font-weight: 500; line-height: 1.15; }
.front-faculty-help > p:not(.front-faculty__label) { max-width: 30ch; font-size: 15px; line-height: 1.6; }
.front-faculty-help .sa-button { margin-top: 8px; min-height: 48px; padding-inline: 20px; }
.front-faculty-help :focus-visible { outline-color: var(--f-gold-light); }
@media (max-width: 479px) { .front-faculty--lead { aspect-ratio: 4 / 5; } }
@media (min-width: 480px) and (max-width: 599px) { .front-faculty--lead { aspect-ratio: 1; } }
@media (min-width: 600px) and (max-width: 899px) { .front-faculty--lead { aspect-ratio: 16 / 11; } }
@media (min-width: 900px) {
  .front-faculty--lead { grid-column: 1 / span 2; grid-row: 1 / span 2; aspect-ratio: auto; }
  .front-faculty--lead .front-faculty__num { top: 32px; left: 36px; }
  .front-faculty--lead .front-faculty__body { padding: 40px; }
  .front-faculty--lead .front-faculty__label { font-size: 12px; }
  .sa-front .front-faculty--lead h3 { font-size: clamp(40px, 1.6rem + 2.2vw, 64px); }
  .front-faculty--lead .front-faculty__desc { font-size: 16.5px; }
  .front-faculty--lead .front-faculty__more { grid-template-rows: 1fr; opacity: 1; }
  .front-faculty--lead .front-faculty__courses { max-width: 440px; margin-top: 24px; }
  .front-faculty--lead .front-faculty__courses a { padding-block: 12px; font-size: 15px; }
  .front-faculty-help { grid-column: auto; aspect-ratio: 4 / 5; padding: 24px; }
}
/* Cards open one after another like curtains when the grid comes into view. */
.home-motion-active .front-faculty-grid > [data-unveil] { transition: clip-path 1.2s var(--f-ease) calc(var(--i, 0) * 70ms); }
.home-motion-active .front-faculty-grid .front-faculty__img { transition: transform 1.1s var(--f-ease), filter .6s; }
.front-faculty-grid > :nth-child(2) { --i: 1; } .front-faculty-grid > :nth-child(3) { --i: 2; } .front-faculty-grid > :nth-child(4) { --i: 3; }
.front-faculty-grid > :nth-child(5) { --i: 4; } .front-faculty-grid > :nth-child(6) { --i: 5; } .front-faculty-grid > :nth-child(7) { --i: 6; }
.front-faculty-grid > :nth-child(8) { --i: 7; } .front-faculty-grid > :nth-child(9) { --i: 8; }

/* About: an editorial introduction, a full-height photograph and an integrated facts strip. */
.front-band { background: var(--f-stone); }
.front-about-band { background: #edf2f7; border-block: 1px solid var(--f-line); }
.front-about { padding-block: clamp(64px, 6vw, 104px); }
.front-about__eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.front-about__signature { font-size: 12px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: var(--f-muted); }
.front-about__layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: clamp(40px, 5.5vw, 88px); align-items: stretch; }
.front-about__media { position: relative; min-width: 0; margin: 0; isolation: isolate; background: #d4cbbd; }
.front-about__frame { position: absolute; inset: 0; overflow: hidden; }
.front-about__frame img { width: 100%; height: 100%; object-fit: cover; object-position: 46% 50%; }
.front-about__media::after { content: ''; position: absolute; z-index: 1; inset: 42% 0 0; pointer-events: none; background: linear-gradient(transparent, #141b29d9); }
.front-about__caption { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; gap: 16px; min-height: 100%; padding: clamp(26px, 3vw, 44px); color: var(--f-white); }
.front-about__caption-label { font-size: 13px; font-weight: 600; letter-spacing: .17em; line-height: 1.6; text-transform: uppercase; color: #ffffffd9; }
.front-about__caption > span:last-child { max-width: 16em; font-family: var(--wp--preset--font-family--display); font-size: clamp(25px, 2.3vw, 35px); line-height: 1.15; }
.front-about__caption em { color: #e8d7b5; }
.front-about__text { display: flex; flex-direction: column; align-items: stretch; min-width: 0; padding-block: 8px; }
.front-about__intro { width: 100%; min-width: 0; }
.front-about__kicker { font-size: 13px; font-weight: 600; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; color: var(--f-gold-text); }
.sa-front .front-about h2 { margin: 20px 0 26px; font-size: clamp(44px, 4.7vw, 70px); font-weight: 400; line-height: .99; letter-spacing: -.025em; text-wrap: initial; }
.front-about h2 em { color: var(--f-gold-text); }
.front-about__lead { font-size: 18px; font-weight: 500; line-height: 1.65; color: var(--f-ink); }
.front-about__description { margin-top: 16px; line-height: 1.7; color: var(--f-muted); }
.front-about__principles { width: 100%; margin-top: 28px; border-top: 1px solid var(--f-line-strong); }
.front-about__principles > div { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 16px; padding-block: 22px; border-bottom: 1px solid var(--f-line-strong); }
.front-about__principle-number { padding-top: 6px; font-size: 13px; font-weight: 600; letter-spacing: .06em; color: var(--f-gold-text); }
.sa-front .front-about__principles h3 { font-size: clamp(26px, 1.3rem + .6vw, 32px); font-weight: 600; line-height: 1.2; text-wrap: initial; }
.front-about__principles p { margin-top: 10px; font-size: 16px; line-height: 1.65; color: var(--f-muted); }
.front-about__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 28px; }
.front-about__actions .sa-button { padding-inline: 20px; }
.front-about__actions .front-link { gap: 10px; }
.front-about__facts { display: grid; grid-template-columns: .9fr 1.1fr 1.15fr 1.15fr; gap: 0; margin: 36px 0 0; padding: 28px 12px; list-style: none; color: var(--f-white); background: var(--f-indigo); }
.front-about__facts li { display: flex; align-items: center; gap: 18px; min-width: 0; padding: 8px clamp(20px, 2.2vw, 34px); }
.front-about__facts li + li { border-left: 1px solid #ffffff26; }
.front-about__fact-number { font-family: var(--wp--preset--font-family--display); font-size: 58px; font-weight: 400; line-height: 1; letter-spacing: -.04em; font-variant-numeric: lining-nums; color: var(--f-gold-light); }
.front-about__fact-icon { width: 36px; height: 36px; color: var(--f-gold-light); }
.front-about__facts li > span { display: flex; flex-direction: column; gap: 5px; }
.front-about__facts b { font-size: 16px; font-weight: 600; line-height: 1.5; }
.front-about__facts li > span > span { font-size: 14px; line-height: 1.6; color: #ffffffcc; }
@media (max-width: 1099px) {
  .front-about__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 24px; }
  .front-about__facts li { padding: 20px 24px; }
  .front-about__facts li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .front-about__facts li:nth-child(n+3) { border-top: 1px solid #ffffff26; }
}
@media (max-width: 899px) {
  .front-about__layout { grid-template-columns: 1fr; gap: 32px; }
  .front-about__text { grid-row: 1; padding: 0; }
  .sa-front .front-about h2 { font-size: clamp(46px, 7.5vw, 64px); }
  .front-about__media { min-height: 400px; }
  .front-about__frame img { object-position: 50% 63%; }
  .front-about__caption { min-height: 400px; }
  .front-about__caption > span:last-child { font-size: 32px; }
  .front-about__signature { display: none; }
  .front-about__facts { margin-top: 24px; }
}
@media (max-width: 479px) {
  .front-about { padding-block: 56px; }
  .front-about__eyebrow { margin-bottom: 28px; }
  .front-about__kicker { max-width: 32ch; }
  .sa-front .front-about h2 { margin-top: 14px; font-size: clamp(40px, 12vw, 53px); line-height: 1.04; }
  .front-about__principles > div { gap: 10px; }
  .front-about__actions { gap: 8px 20px; margin-top: 24px; }
  .front-about__actions .sa-button { width: 100%; justify-content: space-between; padding-inline: 18px; }
  .front-about__media, .front-about__caption { min-height: 360px; }
  .front-about__caption { padding: 26px; }
  .front-about__caption > span:last-child { font-size: 29px; }
  .front-about__facts { padding: 8px 20px; }
  .front-about__facts li { flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 0 20px 16px; }
  .front-about__fact-number { font-size: 48px; }
  .front-about__fact-icon { width: 32px; height: 32px; margin-block: 8px; }
}

/* Photographs open like a curtain when they enter the screen (class set by home.js). */
.home-motion-active [data-unveil] { clip-path: inset(0); transition: clip-path 1.4s var(--f-ease); }
.home-motion-active [data-unveil] img { transition: transform 2s var(--f-ease); }
.home-motion-active [data-unveil]:not(.is-inview) { clip-path: inset(100% 0 0 0); }
.home-motion-active [data-unveil]:not(.is-inview) img { transform: scale(1.1); }

/* Audience: a sticky introduction beside five ruled rows */
.front-audience__inner { display: grid; gap: 48px; }
.front-audience__intro h2 { margin-top: 18px; }
.front-audience__intro h2 em { color: var(--f-gold-text); }
.front-audience__intro > p:not(.sa-eyebrow) { max-width: 36ch; margin-top: 22px; color: var(--f-muted); }
.front-audience__intro .front-link { margin-top: 18px; }
.front-audience__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--f-line-strong); }
.front-audience__list > li { border-bottom: 1px solid var(--f-line-strong); }
.front-audience__item { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 10px 20px; padding: 28px 0; color: inherit; text-decoration: none; }
.front-audience__item::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--f-gold); transform: scaleX(0); transform-origin: left; transition: transform 600ms var(--f-ease); }
.front-audience__num { font-family: var(--wp--preset--font-family--display); font-size: 34px; font-style: italic; line-height: 1; color: var(--f-gold); transition: color 300ms; }
.front-audience__text { transition: transform 500ms var(--f-ease); }
.front-audience__text strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: clamp(25px, 1.3rem + .6vw, 31px); font-weight: 600; line-height: 1.2; color: var(--f-ink); }
.front-audience__text > span { display: block; max-width: 52ch; margin-top: 8px; font-size: 16px; line-height: 1.6; color: var(--f-muted); }
.front-audience__tag { grid-column: 2; display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--f-gold-text); }
.front-audience__item:hover::after, .front-audience__item:focus-visible::after { transform: scaleX(1); }
.front-audience__item:hover .front-audience__num { color: var(--f-indigo); }
.front-audience__item:hover .front-audience__text { transform: translateX(8px); }
@media (min-width: 760px) {
  .front-audience__item { grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 32px; padding: 36px 0; }
  .front-audience__num { font-size: 42px; }
  .front-audience__tag { grid-column: auto; }
}
@media (min-width: 1000px) {
  .front-audience__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(64px, 7vw, 120px); align-items: start; }
  .front-audience__intro { position: sticky; top: calc(var(--wp--custom--size--header) + 40px); }
}
@media (prefers-reduced-motion: reduce) { .front-audience__text, .front-audience__item::after { transition: none; } }

/* Quote: a full-width photograph under indigo with one quiet sentence */
.front-quote { position: relative; isolation: isolate; display: flex; align-items: center; min-height: clamp(480px, 78vh, 760px); padding-block: var(--f-section); overflow: hidden; background: var(--f-indigo-deep); color: var(--f-white); }
.front-quote__media { position: absolute; inset: -40px 0; z-index: -1; transform: translate3d(0, var(--home-drift, 0px), 0); }
.front-quote__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; filter: saturate(.8); }
.front-quote::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #101626eb 0%, #101626b3 48%, #10162640 100%), linear-gradient(0deg, #10162699 0%, #10162600 40%); pointer-events: none; }
.front-quote__inner { margin-block: 0; }
.front-quote__mark { width: 48px; height: 48px; color: var(--f-gold-light); }
.front-quote blockquote { margin: 28px 0 0; }
.front-quote blockquote p { max-width: 15em; font-family: var(--wp--preset--font-family--display); font-size: clamp(2.25rem, 1.3rem + 3vw, 4.5rem); font-weight: 400; line-height: 1.1; letter-spacing: -.015em; color: var(--f-white); text-wrap: balance; }
.front-quote blockquote em { color: var(--f-gold-light); }
.front-quote figcaption { display: flex; align-items: center; gap: 14px; margin-top: 32px; font-size: 12px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--f-gold-light); }
.front-quote figcaption::before { content: ''; width: 36px; height: 1px; background: currentColor; }
@media (max-width: 759px) { .front-quote__media img { object-position: 72% 50%; } }

/* Format: a warm study photograph fading into indigo, above one continuous features strip. */
.front-format { background: var(--f-bg); }
.front-format__eyebrow { margin-bottom: 28px; }
.front-format__experience { overflow: hidden; background: #1b2740; }
.front-format__stage { position: relative; isolation: isolate; display: flex; justify-content: flex-end; align-items: center; min-height: 600px; }
.front-format__media { position: absolute; z-index: -1; inset: 0 auto 0 0; width: 74%; }
.front-format__media img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.front-format__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #1b274000 34%, #1b274073 63%, #1b2740 100%), linear-gradient(0deg, #10162659, #10162600 32%); }
.front-format__content { width: 51%; padding: 64px clamp(32px, 4vw, 64px) 64px 12px; color: var(--f-white); }
.front-format__overline { font-size: 13px; font-weight: 600; line-height: 1.6; letter-spacing: .16em; text-transform: uppercase; color: var(--f-gold-light); }
.sa-front .front-format h2 { margin-top: 24px; font-size: clamp(44px, 4.2vw, 64px); font-weight: 400; line-height: 1.06; letter-spacing: -.025em; text-wrap: initial; color: var(--f-white); }
.front-format h2 em { color: #e6cea2; }
.front-format__lead { margin-top: 28px; font-size: 18px; line-height: 1.7; color: #ffffffe0; }
.front-format__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 32px; }
.front-format__actions .sa-button { background: #f0e4ce; border-color: #f0e4ce; color: var(--f-indigo-deep); }
.front-format__actions .sa-button:hover { background: var(--f-white); border-color: var(--f-white); }
.front-format__actions .front-link { gap: 10px; }
.front-format__note { margin-top: 22px; font-size: 14px; line-height: 1.7; color: #ffffffb8; }
.front-format__content :focus-visible { outline-color: var(--f-gold-light); }
.front-format__features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 32px 12px; list-style: none; background: #e7eff8; border: 1px solid var(--f-line); border-top: 0; }
.front-format__features li { min-width: 0; padding: 0 clamp(20px, 2.2vw, 34px); }
.front-format__features li + li { border-left: 1px solid var(--f-line-strong); }
.front-format__feature-icon { display: block; width: 26px; height: 26px; margin-bottom: 18px; fill: none; stroke: var(--f-gold-text); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.sa-front .front-format__features h3 { font-size: clamp(26px, 1.3rem + .6vw, 32px); font-weight: 600; line-height: 1.2; }
.front-format__features p { max-width: 26ch; margin-top: 10px; font-size: 16px; line-height: 1.65; color: var(--f-muted); }
@media (min-width: 900px) and (max-width: 1099px) {
  .front-format__stage { min-height: 580px; }
  .front-format__content { width: 54%; padding-right: 32px; }
  .sa-front .front-format h2 { font-size: 42px; }
  .front-format__actions { column-gap: 20px; }
}
@media (max-width: 899px) {
  .front-format__stage { display: block; min-height: 0; }
  .front-format__media { position: relative; z-index: 0; inset: auto; width: 100%; height: clamp(300px, 55vw, 440px); }
  .front-format__media img { object-position: 30% 42%; }
  .front-format__media::after { background: linear-gradient(180deg, #1b274000 58%, #1b2740 100%); }
  .front-format__content { position: relative; width: 100%; margin-top: -18px; padding: 0 40px 40px; }
  .sa-front .front-format h2 { font-size: clamp(40px, 6.5vw, 58px); }
  .front-format__features { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 28px; }
  .front-format__features li { padding: 26px 24px; }
  .front-format__features li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .front-format__features li:nth-child(n+3) { border-top: 1px solid var(--f-line-strong); }
}
@media (max-width: 479px) {
  .front-format__eyebrow { margin-bottom: 24px; }
  .front-format__media { height: 300px; }
  .front-format__content { padding: 0 24px 32px; }
  .front-format__overline { font-size: 13px; letter-spacing: .1em; }
  .sa-front .front-format h2 { margin-top: 20px; font-size: clamp(32px, 9.3vw, 43px); line-height: 1.12; }
  .front-format__lead { margin-top: 22px; font-size: 18px; }
  .front-format__actions { margin-top: 26px; gap: 10px 20px; }
  .front-format__actions .sa-button { width: 100%; justify-content: space-between; padding-inline: 18px; }
  .front-format__note { margin-top: 16px; }
  .front-format__features { padding: 0 20px; }
  .front-format__features li { padding: 24px 0 24px 16px; }
  .front-format__feature-icon { margin-bottom: 14px; }
  .sa-front .front-format__features h3 { font-size: 26px; }
}
@media (max-width: 359px) {
  .front-format__features { grid-template-columns: 1fr; }
  .front-format__features li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px 16px; padding: 24px 0; }
  .front-format__features li + li { border-left: 0; border-top: 1px solid var(--f-line-strong); }
  .front-format__feature-icon { grid-row: 1 / 3; margin: 3px 0 0; }
  .front-format__features p { grid-column: 2; margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .front-faculty-help__knot { transition: none; } }

/* Journey: one deep indigo band with the four steps and the closing invitation */
.front-journey { position: relative; isolation: isolate; overflow: hidden; background: var(--f-indigo-deep); color: var(--f-on-dark); }
.front-journey__knot { position: absolute; z-index: -1; top: -34%; right: -18%; width: min(70vw, 820px); color: var(--f-gold-light); opacity: .16; pointer-events: none; }
.sa-front .front-journey h2, .sa-front .front-journey h3 { color: var(--f-white); }
.sa-front .front-journey .sa-eyebrow { color: var(--f-gold-light); }
.front-journey .front-heading__aside p { color: var(--f-on-dark); }
/* Steps hang on one line: vertical on small screens, horizontal on wide ones. home.js fills it as the page scrolls. */
.front-steps { position: relative; display: grid; gap: 48px; margin: 0; padding: 0; list-style: none; }
.front-steps::before, .front-steps::after { content: ''; position: absolute; top: 0; bottom: 0; left: 3px; width: 1px; background: #ffffff2e; }
.front-steps::after { display: none; background: var(--f-gold-light); transform: scaleY(var(--progress, 0)); transform-origin: top; }
.home-motion-active .front-steps::after { display: block; }
.front-steps li { position: relative; padding-left: 40px; }
.front-steps li::before { content: ''; position: absolute; top: 18px; left: 0; width: 7px; height: 7px; background: var(--f-gold-light); transform: rotate(45deg); transition: background 400ms, box-shadow 400ms; }
.front-steps__num { display: block; font-family: var(--wp--preset--font-family--display); font-size: clamp(48px, 2.4rem + 1.4vw, 68px); font-weight: 300; line-height: 1; color: var(--f-gold-light); transition: color 600ms; }
.home-motion-active .front-steps li:not(.is-active)::before { background: var(--f-indigo-deep); box-shadow: inset 0 0 0 1px #d3b8848c; }
.home-motion-active .front-steps li:not(.is-active) .front-steps__num { color: #ffffff38; }
.home-motion-active .front-steps li.is-active::before { box-shadow: 0 0 0 5px #d3b88429; }
.sa-front .front-steps h3 { margin-top: 20px; font-size: 28px; font-weight: 500; line-height: 1.2; }
.front-steps p { max-width: 30ch; margin-top: 10px; font-size: 16px; color: var(--f-on-dark); }
.front-journey__knot :is(path, circle):not([stroke-dasharray]) { stroke-dasharray: 1; stroke-dashoffset: 0; }
.home-motion-active .front-journey__knot :is(path, circle):not([stroke-dasharray]) { transition: stroke-dashoffset 4s var(--f-ease); }
.home-motion-active .front-journey__knot:not(.is-inview) :is(path, circle):not([stroke-dasharray]) { stroke-dashoffset: 1; }
.home-motion-active .front-journey__knot :nth-child(2) { transition-delay: .3s; }
.home-motion-active .front-journey__knot :nth-child(3) { transition-delay: .6s; }
.home-motion-active .front-journey__knot :nth-child(4) { transition-delay: .9s; }
.home-motion-active .front-journey__knot :nth-child(5) { transition-delay: 1.2s; }
@media (prefers-reduced-motion: no-preference) {
  .front-journey__knot { animation: front-spin 180s linear infinite; }
}
@keyframes front-spin { to { rotate: 360deg; } }
.front-journey__cta { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px 48px; margin-top: clamp(64px, 7vw, 112px); padding-top: clamp(40px, 4vw, 56px); border-top: 1px solid #ffffff2e; }
.front-journey__cta-title { margin-top: 16px; font-family: var(--wp--preset--font-family--display); font-size: clamp(2.25rem, 1.5rem + 2.4vw, 3.75rem); line-height: 1.08; color: var(--f-white); }
.front-journey__cta-title em { color: var(--f-gold-light); }
.front-journey .wp-block-buttons { gap: 16px 32px; }
.front-journey :focus-visible { outline-color: var(--f-gold-light); }
@media (min-width: 1100px) {
  .front-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 0; }
  .front-steps::before, .front-steps::after { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 1px; }
  .front-steps::after { transform: scaleX(var(--progress, 0)); transform-origin: left; }
  .front-steps li { padding: 40px 40px 0 0; }
  .front-steps li::before { top: -3px; }
}

/* FAQ */
.front-faq { display: grid; gap: 48px; }
/* Quiet ring ornaments bleed off the corners of the FAQ and request sections */
.front-faq-band, .sa-front .front-request { position: relative; isolation: isolate; overflow: clip; }
.front-faq-band::before, .sa-front .front-request::before { content: ''; position: absolute; z-index: -1; width: clamp(360px, 42vw, 640px); aspect-ratio: 1; border: 1px solid #b08d5759; border-radius: 50%; pointer-events: none; }
.front-faq-band::after, .sa-front .front-request::after { content: ''; position: absolute; z-index: -1; width: clamp(240px, 28vw, 420px); aspect-ratio: 1; border-radius: 50%; background: var(--f-stone); pointer-events: none; }
.front-faq-band::before { bottom: -34%; left: -20%; }
.front-faq-band::after { bottom: -26%; left: -14%; }
.sa-front .front-request::before { right: -14%; bottom: -18%; }
.sa-front .front-request::after { right: -8%; bottom: -10%; background: var(--f-bg); }
.front-faq h2 { margin-top: 18px; }
.front-faq__intro { margin-top: 20px; max-width: 32ch; color: var(--f-muted); }
.front-faq .home-faq__help { margin-top: 40px; padding: 28px; background: var(--f-white); border: 1px solid var(--f-line); }
.front-faq .home-faq__help-title { font-family: var(--wp--preset--font-family--display); font-size: 27px; font-weight: 600; line-height: 1.25; color: var(--f-ink); }
.front-faq .home-faq__help-title + p { margin-top: 8px; font-size: 16px; color: var(--f-muted); }
.front-faq .home-faq__help-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.home-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 13px; border: 1px solid var(--f-line-strong); border-radius: 2px; font-size: 13px; font-weight: 600; color: var(--f-ink); text-decoration: none; transition: border-color 200ms, color 200ms, background 200ms; }
.home-chip:hover { border-color: var(--f-indigo); background: var(--f-indigo); color: var(--f-white); }
.home-chip svg { width: 16px; height: 16px; color: currentColor; }
.front-faq .home-faq__list { border-top: 1px solid var(--f-line-strong); }
.front-faq .wp-block-details { border-bottom: 1px solid var(--f-line-strong); transition: background 400ms; }
/* The open answer becomes a soft white card */
.front-faq .wp-block-details[open] { background: var(--f-white); }
/* Side shadows widen the card without moving the text or the ruled lines. */
@media (min-width: 600px) { .front-faq .wp-block-details[open] { box-shadow: -24px 0 0 var(--f-white), 24px 0 0 var(--f-white); } }
.front-faq summary { gap: 20px; padding-block: 28px; justify-content: flex-start; }
.front-faq .home-faq__num { min-width: 32px; font-size: 13px; font-weight: 600; letter-spacing: .14em; color: var(--f-gold-text); }
.front-faq .home-faq__q { flex: 1; font-family: var(--wp--preset--font-family--display); font-size: clamp(23px, 1.25rem + .5vw, 29px); font-weight: 600; line-height: 1.25; color: var(--f-ink); transition: color 250ms; }
.front-faq summary:hover .home-faq__q, .front-faq details[open] .home-faq__q { color: var(--f-indigo); }
.front-faq .home-faq__toggle { position: relative; width: 40px; height: 40px; flex-shrink: 0; border: 1px solid var(--f-line-strong); border-radius: 50%; transition: background 300ms, border-color 300ms; }
.front-faq summary:hover .home-faq__toggle { border-color: var(--f-ink); }
.front-faq .home-faq__toggle::before, .front-faq .home-faq__toggle::after { content: ''; position: absolute; top: 50%; left: 50%; width: 12px; height: 1px; background: var(--f-ink); transform: translate(-50%, -50%); transition: transform 300ms var(--f-ease), background 300ms; }
.front-faq .home-faq__toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
/* Open: a filled indigo circle with a minus instead of the rotated cross */
.front-faq .wp-block-details[open] summary span:last-child { transform: none; background: var(--f-indigo); border-color: var(--f-indigo); }
.front-faq details[open] .home-faq__toggle::before { background: var(--f-white); }
.front-faq details[open] .home-faq__toggle::after { background: var(--f-white); transform: translate(-50%, -50%) rotate(90deg) scaleX(0); }
.front-faq .wp-block-details > p { max-width: 60ch; padding: 0 60px 32px 52px; font-size: 16.5px; line-height: 1.75; color: var(--f-muted); }
.front-faq .wp-block-details > p:not(:last-child) { padding-bottom: 12px; }
/* Smooth opening where the browser can animate details content; elsewhere it opens at once. */
@supports selector(::details-content) {
  .front-faq { interpolate-size: allow-keywords; }
  .front-faq details::details-content { block-size: 0; overflow: hidden; opacity: 0; transition: block-size 450ms var(--f-ease), opacity 350ms, content-visibility 450ms allow-discrete; }
  .front-faq details[open]::details-content { block-size: auto; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .front-faq details::details-content { transition: none; } }
@media (min-width: 1000px) {
  .front-faq { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(64px, 7vw, 120px); align-items: start; }
  .front-faq .home-faq__aside { position: sticky; top: calc(var(--wp--custom--size--header) + 32px); }
}
@media (max-width: 599px) {
  .front-faq summary { gap: 14px; padding-block: 22px; }
  .front-faq .home-faq__num { min-width: 24px; }
  .front-faq .home-faq__toggle { width: 34px; height: 34px; }
  .front-faq .wp-block-details > p { padding: 0 0 24px 38px; }
  .front-faq .home-faq__help { padding: 22px; }
}

/* Request */
.sa-front .front-request { padding-block: var(--f-section); }
.sa-front .front-request .wp-block-columns { align-items: start; gap: 56px; }
.sa-front .front-request h2 { margin-top: 18px; font-size: clamp(2.5rem, 1.5rem + 3vw, 4.25rem); font-weight: 400; line-height: 1.04; }
.front-request h2 em { color: var(--f-gold-text); }
.sa-front .front-request .sa-lead { max-width: 42ch; margin-top: 24px; font-size: 18px; line-height: 1.65; color: var(--f-text); }
.front-request .home-contacts__title { margin-top: 48px; font-size: 12.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--f-gold-text); }
.sa-front .front-request .home-contacts { display: grid; gap: 0; margin-top: 16px; border-top: 1px solid var(--f-line-strong); }
.sa-front .front-request .home-contact { display: grid; grid-template-columns: 44px minmax(0, 1fr) 18px; align-items: center; gap: 18px; min-height: 76px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--f-line-strong); border-radius: 0; color: var(--f-ink); text-decoration: none; }
.front-request .home-contact__icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--f-line-strong); border-radius: 50%; color: var(--f-indigo); transition: background 250ms, color 250ms, border-color 250ms; }
.front-request .home-contact__icon svg { width: 18px; height: 18px; }
.front-request .home-contact:hover .home-contact__icon { background: var(--f-indigo); border-color: var(--f-indigo); color: var(--f-white); }
.front-request .home-contact strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: 25px; font-weight: 600; line-height: 1.2; }
.front-request .home-contact small { display: block; margin-top: 2px; font-size: 14px; color: var(--f-muted); }
.front-request .home-contact__arrow { color: var(--f-gold); }
.front-request .home-contact:hover .home-contact__arrow { transform: translateX(4px); }
.front-request .home-request__quote { position: relative; margin-top: 56px; padding-top: 36px; font-family: var(--wp--preset--font-family--display); font-size: 27px; font-style: italic; font-weight: 500; line-height: 1.35; color: var(--f-ink); }
.front-request .home-request__quote::before { content: '“'; position: absolute; top: -18px; left: -4px; font-size: 88px; font-style: normal; line-height: 1; color: var(--f-gold); }

/* The form: a white sheet with hairline fields */
.sa-front .front-request .sa-form { position: relative; padding: clamp(28px, 4vw, 56px); background: var(--f-white); border: 0; border-radius: 0; box-shadow: 0 40px 80px -48px #151c2f40; }
.sa-front .front-request .sa-form::before { content: ''; position: absolute; top: 0; left: clamp(28px, 4vw, 56px); width: 48px; height: 2px; background: var(--f-gold); }
.front-request .home-form-heading { margin-bottom: 36px; }
.sa-front .front-request .home-form-heading h3 { font-size: clamp(30px, 1.6rem + .6vw, 38px); font-weight: 400; line-height: 1.15; }
.front-request .home-form-heading p { margin-top: 8px; font-size: 15.5px; color: var(--f-muted); }
.sa-front .front-request .sa-form__grid { gap: 30px 32px; }
.sa-front .front-request .sa-field { gap: 4px; }
.sa-front .front-request .sa-field > span:first-child { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--f-text); transition: color 200ms; }
.sa-front .front-request .sa-field:focus-within > span:first-child { color: var(--f-indigo); }
.sa-front .front-request input:not([type='checkbox']), .sa-front .front-request select, .sa-front .front-request textarea { min-height: 48px; padding: 10px 0; border: 0; border-bottom: 1px solid #a9b9cd; border-radius: 0; background: transparent; font-size: 16.5px; color: var(--f-ink); transition: border-color 250ms, box-shadow 250ms; }
.sa-front .front-request input:not([type='checkbox']):focus, .sa-front .front-request select:focus, .sa-front .front-request textarea:focus { border-bottom-color: var(--f-indigo); outline: none; box-shadow: 0 1px 0 var(--f-indigo); }
.sa-front .front-request :is(input, select, textarea)[aria-invalid='true'] { border-bottom-color: var(--wp--preset--color--error); box-shadow: 0 1px 0 var(--wp--preset--color--error); }
.sa-front .front-request select { appearance: none; padding-right: 28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%231f2a44' stroke-width='1.2'/%3E%3C/svg%3E") right 4px center / 12px no-repeat; }
.sa-front .front-request textarea { min-height: 96px; resize: vertical; }
.sa-front .front-request ::placeholder { color: #6f7482; opacity: 1; }
.sa-front .front-request .sa-todo { font-size: 13.5px; color: var(--f-muted); }
.sa-front .front-request .sa-consent { align-items: flex-start; gap: 14px; margin-block: 32px 28px; font-size: 14.5px; line-height: 1.55; color: var(--f-text); }
.sa-front .front-request .sa-consent input { appearance: none; display: grid; place-items: center; width: 20px; height: 20px; margin: 0; border: 1px solid var(--f-line-strong); border-radius: 2px; background: var(--f-white); transition: background 200ms, border-color 200ms; }
.sa-front .front-request .sa-consent input::after { content: ''; width: 10px; height: 5px; margin-top: -3px; border: solid var(--f-white); border-width: 0 0 1.5px 1.5px; transform: rotate(-45deg) scale(0); transition: transform 200ms var(--f-ease); }
.sa-front .front-request .sa-consent input:checked { background: var(--f-indigo); border-color: var(--f-indigo); }
.sa-front .front-request .sa-consent input:checked::after { transform: rotate(-45deg) scale(1); }
.sa-front .front-request .sa-consent input[aria-invalid='true'] { border-color: var(--wp--preset--color--error); }
.sa-front .front-request .sa-consent a { color: var(--f-ink); text-decoration-color: var(--f-gold); }
.sa-front .front-request .sa-form__submit { min-height: 60px; justify-content: space-between; padding-inline: 28px; font-size: 15px; }
.sa-front .front-request .sa-form__note { margin-top: 16px; font-size: 13.5px; line-height: 1.55; color: var(--f-muted); }
@media (min-width: 1000px) {
  .sa-front .front-request .wp-block-columns { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(64px, 7vw, 120px); }
  .front-request .home-request__intro { position: sticky; top: calc(var(--wp--custom--size--header) + 40px); }
}

/* Footer */
.sa-front .front-footer { position: relative; overflow: hidden; margin: 0; padding-top: clamp(64px, 6vw, 104px); padding-bottom: 32px; border-radius: 0; background: var(--f-indigo-deep); color: #d9dce4; }
.front-footer .front-brand { flex-direction: row; text-align: left; }
.front-brand--light { color: var(--f-white); }
.front-brand--light .front-brand__sub { color: var(--f-gold-light); }
.sa-front .front-footer .sa-footer__title { font-size: 11px; line-height: 1.08; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--f-gold-light); }
.sa-front .front-footer .sa-footer__grid > div:first-child p { margin-top: 24px; font-family: var(--wp--preset--font-family--display); font-size: 23px; font-style: italic; font-weight: 500; line-height: 1.4; color: #dfe2ea; }
.sa-front .front-footer .sa-footer__grid li + li { margin-top: 4px; }
.sa-front .front-footer .sa-footer__grid a:not(.sa-brand) { display: inline-flex; align-items: center; gap: 12px; min-height: 32px; padding: 0; border: 0; font-size: 15px; color: #c3c8d4; text-decoration: none; transition: color 200ms; }
.sa-front .front-footer .sa-footer__grid a:not(.sa-brand):hover { color: var(--f-white); }
.sa-front .front-footer .sa-muted { color: #a3a9b8; }
.front-footer .home-footer__mi { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #ffffff2e; border-radius: 50%; transition: background 200ms, border-color 200ms; }
.front-footer a:hover .home-footer__mi { background: var(--f-white); border-color: var(--f-white); color: var(--f-indigo); }
.front-footer .home-footer__mi svg { width: 15px; height: 15px; }
/* A large, quiet signature of the name closes the page. */
.front-footer__word { margin: clamp(56px, 6vw, 96px) 0 0; font-family: var(--wp--preset--font-family--display); font-size: min(7.4vw, 7rem); font-weight: 400; line-height: .9; letter-spacing: .04em; text-align: center; text-transform: uppercase; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px #d3b88459; user-select: none; }
.sa-front .front-footer .home-footer__disclaimer { margin-top: clamp(32px, 4vw, 56px); font-size: 13px; }
.sa-front .front-footer .sa-footer__bottom { margin-top: 20px; border-top-color: #ffffff1f; font-size: 13px; color: #a3a9b8; }
.sa-front .front-footer .sa-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; color: #c3c8d4; text-decoration: none; }
.sa-front .front-footer .sa-footer__legal { column-gap: 28px; }
.sa-front .front-footer .sa-footer__bottom { align-items: center; row-gap: 4px; padding-top: 12px; }
.sa-front .front-footer .sa-footer__legal a:hover { color: var(--f-white); }
.sa-front .front-footer :focus-visible { outline-color: var(--f-gold-light); }

/* The floating contact button steps aside where the page already offers every contact */
.sa-front .home-chat { transition: opacity 300ms, translate 400ms var(--f-ease), visibility 0s; }
.sa-front .home-chat.is-tucked { opacity: 0; translate: 0 16px; visibility: hidden; pointer-events: none; transition: opacity 300ms, translate 400ms var(--f-ease), visibility 0s 300ms; }

/* Contact button, chat panel, cookie notice */
.sa-front .home-chat__toggle { background: var(--f-indigo); border-color: #d3b88499; color: var(--f-gold-light); box-shadow: 0 12px 30px -12px #151c2f99, 0 0 0 4px #f5f8fcb3; }
.sa-front .home-chat__toggle:hover { background: var(--f-indigo-deep); box-shadow: 0 16px 34px -12px #151c2fb3, 0 0 0 4px #f5f8fcd9; }
.sa-front .home-chat__panel { border-color: var(--f-line); border-radius: 4px; background: var(--f-white); color: var(--f-ink); box-shadow: 0 30px 70px -25px #151c2f59; }
.sa-front .home-chat__title { color: var(--f-ink); }
.sa-front .home-chat__eyebrow { color: var(--f-gold-text); }
.sa-front .home-chat__intro { color: var(--f-muted); }
.sa-front .home-chat__close:hover { background: var(--f-stone); color: var(--f-ink); }
.sa-front .home-chat__link { border-color: var(--f-line); border-radius: 2px; background: var(--f-bg); }
.sa-front .home-chat__link:hover { border-color: var(--f-gold); background: var(--f-stone); }
.sa-front .home-chat__link small { color: var(--f-muted); }
.sa-front .home-chat__link--email .home-chat__icon { background: #e8ebf2; color: var(--f-indigo); }
.sa-front .home-chat__arrow { width: 16px; height: 16px; color: var(--f-gold); }
.sa-front .sa-cookie { border-color: var(--f-line); border-radius: 2px; background: var(--f-white); box-shadow: 0 20px 50px -25px #151c2f59; }
.sa-front .sa-cookie .sa-button { min-height: 40px; padding: 0 18px; }

/* Entrance motion (driven by home.js) */
.sa-front .home-motion-pending { opacity: 0; translate: 0 28px; }
@media (prefers-reduced-motion: reduce) {
  .sa-front .home-motion-pending { opacity: 1; translate: none; }
  .front-faculty__media img, .front-arrow { transition: none; }
}
