@font-face {
font-family: "Literata";
src: url("../fonts/literata-opsz.woff2") format("woff2-variations");
font-weight: 200 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Literata";
src: url("../fonts/literata-italic.woff2") format("woff2-variations");
font-weight: 200 900;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "Schibsted Grotesk";
src: url("../fonts/schibsted.woff2") format("woff2-variations");
font-weight: 400 900;
font-style: normal;
font-display: swap;
}
:root {
color-scheme: light;
--ink: #15130f;
--ink-2: #24211c;
--ink-3: #3a362f;
--green-900: #0a3a22;
--green-800: #0c4a2b;
--green-700: #0e5f35;   
--green-600: #13773f;   
--green-500: #1c9a50;
--green-100: #d7ecdf;
--green-50:  #ebf5ef;
--gold-700: #7a5600;    
--gold-600: #a87900;
--gold-500: #f2b705;    
--gold-400: #ffc933;
--gold-100: #fdf0c4;
--gold-50:  #fef8e3;
--red-800: #7d171c;
--red-700: #9c1c22;
--red-600: #c0272d;     
--red-100: #f8d9d9;
--red-50:  #fcefee;
--white: #ffffff;
--papyrus: #f6f1e6;     
--papyrus-2: #ece4d2;
--stone-50: #faf8f4;
--stone-200: #e4ddcf;
--stone-300: #cfc6b4;
--stone-500: #8a8273;
--stone-600: #6b6457;
--stone-700: #575146;   
--sand: #d9d2c3;        
--bg: var(--white);
--surface: var(--white);
--surface-alt: var(--papyrus);
--text: var(--ink);
--text-muted: var(--stone-700);
--line: var(--stone-200);
--line-strong: var(--stone-300);
--link: var(--green-700);
--link-hover: var(--green-900);
--action: var(--green-700);
--action-hover: var(--green-800);
--highlight: var(--gold-500);
--focus: var(--green-700);
--success: #136c3a;  --success-bg: #e9f5ed;
--warning: #6b4b00;  --warning-bg: #fef6dc;
--error:   #b42318;  --error-bg:   #fdeeec;
--info:    #1f4d78;  --info-bg:    #eaf1f8;
--primary-school: var(--red-600);
--junior-school: var(--gold-500);
--senior-school: var(--green-600);
--font-display: "Literata", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
--font-body: "Schibsted Grotesk", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
--fs-display: clamp(2.6rem, 1.55rem + 4.3vw, 5.1rem);
--fs-h1: clamp(2.25rem, 1.55rem + 2.9vw, 3.9rem);
--fs-h2: clamp(1.85rem, 1.35rem + 2vw, 2.9rem);
--fs-h3: clamp(1.3rem, 1.12rem + .75vw, 1.65rem);
--fs-h4: 1.1875rem;
--fs-lead: clamp(1.125rem, 1.04rem + .38vw, 1.3125rem);
--fs-body: 1.0625rem;
--fs-small: .9375rem;
--fs-xs: .8125rem;
--fs-label: .78rem;
--lh-tight: 1.06;
--lh-head: 1.14;
--lh-body: 1.65;
--tracking-label: .13em;
--s-1: .25rem; --s-2: .5rem; --s-3: .75rem; --s-4: 1rem; --s-5: 1.5rem;
--s-6: 2rem; --s-7: 3rem; --s-8: 4rem; --s-9: 6rem; --s-10: 8rem;
--section: clamp(4rem, 2.6rem + 6vw, 7.5rem);
--section-sm: clamp(3rem, 2rem + 4vw, 5rem);
--max: 80rem;          
--max-wide: 90rem;     
--max-text: 42rem;     
--gutter: clamp(1.25rem, .6rem + 3vw, 3rem);
--header-h: 5rem;
--r-1: 4px; --r-2: 8px; --r-3: 14px; --r-round: 999px;
--shadow-1: 0 1px 2px rgb(21 19 15 / .06), 0 2px 10px rgb(21 19 15 / .06);
--shadow-2: 0 18px 40px -18px rgb(21 19 15 / .32), 0 2px 6px rgb(21 19 15 / .06);
--shadow-3: 0 30px 60px -20px rgb(21 19 15 / .38);
--ease: cubic-bezier(.2, .7, .2, 1);
--t-fast: 160ms;
--t-med: 280ms;
--t-slow: 600ms;
--stole: repeating-linear-gradient(90deg,
var(--red-600) 0 22px, var(--gold-500) 22px 44px, var(--green-600) 44px 66px, var(--ink) 66px 72px);
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
scroll-padding-top: calc(var(--header-h) + 1rem);
}
@media (prefers-reduced-motion: no-preference) {
html:focus-within { scroll-behavior: smooth; }
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: var(--font-body);
font-size: var(--fs-body);
line-height: var(--lh-body);
font-feature-settings: "ss01" 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
overflow-x: clip;
}
body::before {
content: "";
position: fixed;
inset: 0 0 auto;
height: env(safe-area-inset-top, 0px);
z-index: 60;
background: var(--ink);
}
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
picture img { width: 100%; }
h1, h2, h3, h4, h5 {
font-family: var(--font-display);
font-weight: 600;
line-height: var(--lh-head);
letter-spacing: -.012em;
margin: 0;
text-wrap: balance;
color: inherit;
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: -.02em; }
h2 { font-size: var(--fs-h2); letter-spacing: -.018em; }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); font-family: var(--font-body); font-weight: 700; letter-spacing: 0; }
p { margin: 0; text-wrap: pretty; }
p + p { margin-top: 1em; }
ul, ol { margin: 0; padding: 0; }
li { margin: 0; }
a {
color: var(--link);
text-decoration-thickness: 1px;
text-underline-offset: .18em;
transition: color var(--t-fast) var(--ease), text-decoration-color var(--t-fast) var(--ease);
}
a:hover { color: var(--link-hover); text-decoration-thickness: 2px; }
strong, b { font-weight: 700; }
a[href^="tel:"] { white-space: nowrap; }
em, i { font-style: italic; }
small { font-size: var(--fs-small); }
abbr[title] { text-decoration: underline dotted; text-underline-offset: .2em; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--s-7) 0; }
table { border-collapse: collapse; width: 100%; }
::selection { background: var(--gold-400); color: var(--ink); }
:focus { outline: none; }
:focus-visible {
outline: 3px solid var(--focus);
outline-offset: 3px;
border-radius: 2px;
}
.on-dark, .section--ink, .section--green { --focus: var(--gold-400); --link: var(--gold-400); --link-hover: var(--white); color: var(--white); }
.visually-hidden {
position: absolute !important;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0);
white-space: nowrap; border: 0;
}
.skip-link {
position: absolute;
left: max(1rem, env(safe-area-inset-left, 0px));
top: -100px;
z-index: 100;
padding: .75rem 1.1rem;
background: var(--gold-500);
color: var(--ink);
font-weight: 700;
border-radius: var(--r-1);
text-decoration: none;
}
.skip-link:focus { top: calc(env(safe-area-inset-top, 0px) + .75rem); }
.container {
width: 100%;
max-width: calc(var(--max) + 2 * var(--gutter));
margin-inline: auto;
padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
}
.container--wide { max-width: calc(var(--max-wide) + 2 * var(--gutter)); }
.container--text { max-width: calc(var(--max-text) + 2 * var(--gutter)); }
.section { padding-block: var(--section); }
.section--sm { padding-block: var(--section-sm); }
.section--flush-top { padding-top: 0; }
.section--papyrus { background: var(--papyrus); }
.section--ink { background: var(--ink); color: var(--white); }
.section--green { background: var(--green-900); color: var(--white); }
.section + .section--papyrus,
.section--papyrus + .section:not(.section--papyrus):not(.section--ink) { border-top: 0; }
.grid { display: grid; gap: var(--s-6); }
.grid > * { min-width: 0; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) {
.grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
.grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }
}
.split {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: clamp(2rem, 1rem + 4vw, 5rem);
align-items: center;
}
.split--5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.split--7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.split--4-8 { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.split--top { align-items: start; }
@media (max-width: 900px) {
.split, .split--5-7, .split--7-5, .split--4-8 { grid-template-columns: minmax(0, 1fr); }
}
.stack > * + * { margin-top: var(--stack, 1rem); }
.stack-lg > * + * { margin-top: var(--s-6); }
.prose { max-width: var(--max-text); }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: var(--fs-h3); margin-top: 2em; }
.prose > .eyebrow + h2 { font-size: var(--fs-h2); margin-top: 0; }
.prose > .eyebrow + h2 + * { margin-top: 1.25rem; }
.prose h3 { font-size: 1.3rem; margin-top: 1.8em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .4em; }
.prose li::marker { color: var(--green-700); }
.measure { max-width: var(--max-text); }
.center { text-align: center; margin-inline: auto; }
.muted { color: var(--text-muted); }
.on-dark .muted, .section--ink .muted { color: var(--sand); }
.nowrap { white-space: nowrap; }
.tabular { font-variant-numeric: tabular-nums; }
.stole { height: 5px; background: var(--stole); }
.stole--thin { height: 3px; }
.utility {
background: var(--ink);
color: var(--sand);
font-size: .84rem;
line-height: 1.2;
}
.utility__inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--s-4);
min-height: 2.5rem;
}
.utility__place { margin: 0; letter-spacing: .02em; }
.utility__nav ul { list-style: none; display: flex; align-items: center; gap: .25rem 1.4rem; flex-wrap: wrap; }
.utility a {
color: var(--sand);
text-decoration: none;
display: inline-flex; align-items: center; gap: .35rem;
padding-block: .55rem;
}
.utility a:hover { color: var(--white); text-decoration: underline; text-underline-offset: .3em; }
.utility__divider { width: 1px; height: 1rem; background: var(--ink-3); }
.utility__phone { font-weight: 600; color: var(--white) !important; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
.utility__place { display: none; }
.utility__inner { justify-content: center; }
.utility__nav ul { gap: .1rem 1rem; justify-content: center; }
.utility__hide-sm, .utility__divider { display: none; }
}
.masthead {
position: sticky;
top: env(safe-area-inset-top, 0px);
z-index: 50;
background: var(--white);
border-bottom: 1px solid var(--line);
transition: box-shadow var(--t-med) var(--ease);
}
.masthead.is-scrolled { box-shadow: 0 6px 24px -14px rgb(21 19 15 / .35); }
.masthead__inner {
display: flex;
align-items: center;
gap: var(--s-5);
min-height: var(--header-h);
}
.brand {
display: inline-flex;
align-items: center;
gap: .8rem;
text-decoration: none;
color: var(--ink);
flex-shrink: 0;
margin-right: auto;
}
.brand:hover { color: var(--ink); }
.brand img { width: 50px; height: auto; }
.brand__text { display: flex; flex-direction: column; line-height: 1; }
.brand__name {
font-family: var(--font-display);
font-weight: 650;
font-size: 1.45rem;
letter-spacing: -.01em;
}
.brand__sub {
margin-top: .32rem;
font-size: .66rem;
font-weight: 650;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--stone-700);
}
.primary-nav__list { list-style: none; display: flex; align-items: stretch; gap: .15rem; }
.primary-nav__item { position: static; display: flex; align-items: center; }
.primary-nav__link {
position: relative;
display: inline-flex;
align-items: center;
min-height: var(--header-h);
padding: 0 .2rem 0 .7rem;
color: var(--ink);
font-size: .98rem;
font-weight: 600;
text-decoration: none;
white-space: nowrap;
}
.primary-nav__link:hover { color: var(--green-700); }
.primary-nav__link[aria-current="page"]::after,
.primary-nav__item.is-current .primary-nav__link::after {
content: "";
position: absolute;
left: .7rem; right: .2rem; bottom: -1px;
height: 3px;
background: var(--gold-500);
}
.primary-nav__toggle {
appearance: none;
border: 0;
background: none;
color: var(--stone-600);
width: 1.75rem; height: 2rem;
display: inline-grid; place-items: center;
border-radius: var(--r-1);
cursor: pointer;
margin-right: .35rem;
}
.primary-nav__toggle:hover { color: var(--green-700); background: var(--green-50); }
.primary-nav__toggle svg { width: 12px; height: 12px; transition: transform var(--t-fast) var(--ease); }
.primary-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.primary-nav__toggle[aria-expanded="true"] { color: var(--green-700); background: var(--green-50); }
.masthead__actions { display: flex; align-items: center; gap: .6rem; }
.mega {
position: absolute;
left: 0; right: 0; top: 100%;
background: var(--white);
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
box-shadow: var(--shadow-3);
padding-block: 2.25rem 2.5rem;
}
.mega[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
.mega.is-open { animation: mega-in var(--t-med) var(--ease); }
@keyframes mega-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
}
.mega__grid {
display: grid;
grid-template-columns: minmax(0, 3.2fr) minmax(0, 6fr) minmax(0, 3.4fr);
gap: clamp(1.5rem, 3vw, 3.5rem);
}
.mega__intro h2 { font-size: 1.6rem; margin-bottom: .6rem; }
.mega__intro p { color: var(--text-muted); font-size: var(--fs-small); margin-bottom: 1rem; }
.mega__links { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 2rem; align-content: start; }
.mega__links a {
display: block;
padding: .7rem .8rem;
margin-inline: -.8rem;
border-radius: var(--r-2);
text-decoration: none;
color: var(--ink);
}
.mega__links a:hover { background: var(--papyrus); }
.mega__links strong { display: block; font-size: 1rem; font-weight: 650; }
.mega__links span { display: block; font-size: .875rem; color: var(--text-muted); line-height: 1.45; margin-top: .15rem; }
.mega__feature { text-decoration: none; color: var(--ink); display: block; }
.mega__feature img { border-radius: var(--r-2); aspect-ratio: 3 / 2; object-fit: cover; }
.mega__feature p { margin-top: .75rem; font-size: .9rem; color: var(--text-muted); }
.mega__feature strong { display: block; color: var(--ink); font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; margin-bottom: .2rem; }
.mega__feature:hover strong { color: var(--green-700); }
.menu-toggle {
display: none;
align-items: center;
gap: .5rem;
appearance: none;
border: 1px solid var(--line-strong);
background: var(--white);
color: var(--ink);
font: inherit;
font-weight: 650;
font-size: .95rem;
min-height: 2.75rem;
padding: 0 .9rem;
border-radius: var(--r-1);
cursor: pointer;
}
.menu-toggle svg { width: 18px; height: 18px; }
@media (max-width: 1180px) {
.primary-nav { display: none; }
.menu-toggle { display: inline-flex; }
:root { --header-h: 4.25rem; }
.brand img { width: 42px; }
.brand__name { font-size: 1.25rem; }
}
@media (max-width: 420px) {
.masthead__actions .btn { display: none; }
.brand__sub { letter-spacing: .14em; }
}
.no-js .primary-nav { display: block; }
@media (max-width: 1180px) {
.no-js .masthead__inner { flex-wrap: wrap; }
.no-js .primary-nav { width: 100%; }
.no-js .primary-nav__list { flex-wrap: wrap; }
.no-js .primary-nav__link { min-height: 2.75rem; }
.no-js .menu-toggle, .no-js .primary-nav__toggle { display: none; }
}
.mobile-nav {
position: fixed;
inset: 0;
z-index: 80;
background: var(--white);
overflow-y: auto;
overscroll-behavior: contain;
padding-top: env(safe-area-inset-top, 0px);
padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 2rem);
}
.mobile-nav[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
.mobile-nav.is-open { animation: sheet-in var(--t-med) var(--ease); }
@keyframes sheet-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}
.mobile-nav__head {
display: flex; align-items: center; justify-content: space-between;
min-height: var(--header-h);
border-bottom: 1px solid var(--line);
position: sticky; top: 0; background: var(--white); z-index: 1;
}
.mobile-nav__quick {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .6rem;
padding-block: 1.25rem;
}
.mobile-nav__quick a {
display: flex; flex-direction: column; gap: .15rem;
padding: .85rem 1rem;
border-radius: var(--r-2);
background: var(--papyrus);
color: var(--ink);
text-decoration: none;
font-weight: 650;
font-size: .98rem;
min-height: 3.5rem;
}
.mobile-nav__quick a span { font-weight: 400; font-size: .82rem; color: var(--text-muted); }
.mobile-nav__quick a.is-primary { background: var(--green-700); color: var(--white); }
.mobile-nav__quick a.is-primary span { color: var(--green-100); }
.mobile-nav__groups { border-top: 1px solid var(--line); }
.mobile-nav details { border-bottom: 1px solid var(--line); }
.mobile-nav summary {
list-style: none;
display: flex; align-items: center; justify-content: space-between;
min-height: 3.5rem;
font-family: var(--font-display);
font-size: 1.35rem;
font-weight: 600;
cursor: pointer;
}
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav summary svg { width: 16px; height: 16px; transition: transform var(--t-fast) var(--ease); color: var(--stone-600); }
.mobile-nav details[open] summary svg { transform: rotate(45deg); }
.mobile-nav details ul { list-style: none; padding: 0 0 1rem; display: grid; gap: .1rem; }
.mobile-nav details a {
display: flex; align-items: center;
min-height: 2.75rem;
color: var(--ink);
text-decoration: none;
font-size: 1.02rem;
padding-left: .9rem;
border-left: 2px solid var(--line);
}
.mobile-nav details a:hover, .mobile-nav details a[aria-current="page"] { border-left-color: var(--gold-500); color: var(--green-700); }
.mobile-nav__contact { padding-top: 1.5rem; font-size: .95rem; color: var(--text-muted); }
.mobile-nav__contact a { color: var(--ink); font-weight: 600; }
body.has-sheet { overflow: hidden; }
.breadcrumbs { font-size: .875rem; color: var(--text-muted); }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: .35rem; }
.breadcrumbs li + li::before { content: ""; width: 5px; height: 5px; border-right: 1.5px solid var(--stone-500); border-top: 1.5px solid var(--stone-500); transform: rotate(45deg); margin-right: .2rem; }
.breadcrumbs a { color: var(--text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--green-700); text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--ink); font-weight: 600; }
.site-footer { background: var(--ink); color: var(--sand); font-size: .95rem; }
.site-footer a:not(.btn) { color: var(--white); text-decoration: none; }
.site-footer a:not(.btn):hover { text-decoration: underline; color: var(--gold-400); }
.footer__top {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
gap: var(--s-7);
align-items: end;
padding-block: clamp(3.5rem, 6vw, 5rem) var(--s-7);
border-bottom: 1px solid var(--ink-3);
}
.footer__brand { display: flex; gap: 1.25rem; align-items: center; }
.footer__brand img { width: 84px; flex-shrink: 0; }
.footer__motto {
font-family: var(--font-display);
color: var(--white);
font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem);
line-height: 1.22;
font-weight: 500;
letter-spacing: -.01em;
text-wrap: balance;
}
.footer__motto-label { display: block; font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--gold-400); font-weight: 650; margin-bottom: .5rem; }
.footer__cta { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }
.footer__cols {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.35fr);
gap: var(--s-6);
padding-block: var(--s-7);
}
.footer__cols h2 {
font-family: var(--font-body);
font-size: var(--fs-label);
letter-spacing: var(--tracking-label);
text-transform: uppercase;
font-weight: 700;
color: var(--gold-400);
margin-bottom: 1rem;
}
.footer__cols ul { list-style: none; display: grid; gap: .55rem; }
.footer__contact address { font-style: normal; line-height: 1.6; }
.footer__contact dl { margin: 1rem 0 0; display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; }
.footer__contact dt { color: var(--stone-500); font-size: .85rem; padding-top: .1rem; }
.footer__contact dd { margin: 0; }
.footer__bottom {
display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; justify-content: space-between; align-items: center;
padding-block: 1.5rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
border-top: 1px solid var(--ink-3);
font-size: .85rem;
color: var(--stone-500);
}
.footer__bottom ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.footer__bottom a:not(.btn) { color: var(--sand); }
@media (max-width: 1020px) {
.footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.footer__contact { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
.footer__top { grid-template-columns: minmax(0, 1fr); align-items: start; }
.footer__cta { justify-content: flex-start; }
.footer__brand { align-items: flex-start; }
.footer__brand img { width: 64px; }
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: .6rem;
font-size: var(--fs-label);
font-weight: 700;
letter-spacing: var(--tracking-label);
text-transform: uppercase;
color: var(--green-700);
margin: 0 0 1rem;
}
.eyebrow::before {
content: "";
width: 13px; height: 13px; flex-shrink: 0;
border-radius: 50%;
background: radial-gradient(circle, currentColor 0 2px, transparent 2.6px 4.2px, currentColor 4.6px 5.6px, transparent 6px);
box-shadow: inset 0 0 0 1.4px currentColor;
}
.eyebrow--plain::before { display: none; }
.on-dark .eyebrow, .section--ink .eyebrow, .section--green .eyebrow { color: var(--gold-400); }
.section-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: var(--s-4) var(--s-7);
align-items: end;
margin-bottom: clamp(2rem, 1.4rem + 2vw, 3.25rem);
}
.section-head__text { max-width: 46rem; }
.section-head p:not(.eyebrow) { margin-top: 1rem; font-size: var(--fs-lead); color: var(--text-muted); line-height: 1.55; }
.section--ink .section-head p:not(.eyebrow), .section--green .section-head p:not(.eyebrow) { color: var(--sand); }
.section-head--center { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
@media (max-width: 720px) {
.section-head { grid-template-columns: minmax(0, 1fr); align-items: start; }
}
.lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--text-muted); }
.on-dark .lead, .section--ink .lead { color: var(--sand); }
.btn {
--btn-bg: var(--action);
--btn-fg: var(--white);
--btn-border: var(--btn-bg);
display: inline-flex;
align-items: center;
justify-content: center;
gap: .6rem;
min-height: 3rem;
padding: .7rem 1.3rem;
border: 1.5px solid var(--btn-border);
border-radius: var(--r-1);
background: var(--btn-bg);
color: var(--btn-fg);
font: inherit;
font-size: 1rem;
font-weight: 650;
line-height: 1.2;
text-decoration: none;
cursor: pointer;
transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.btn:hover { --btn-bg: var(--action-hover); color: var(--btn-fg); text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn svg { width: 1.05em; height: 1.05em; flex-shrink: 0; transition: transform var(--t-fast) var(--ease); }
.btn:hover svg.icon-arrow { transform: translateX(3px); }
.btn--sm { min-height: 2.6rem; padding: .5rem 1rem; font-size: .95rem; }
.btn--lg { min-height: 3.4rem; padding: .85rem 1.6rem; font-size: 1.05rem; }
.btn--gold { --btn-bg: var(--gold-500); --btn-fg: var(--ink); }
.btn--gold:hover { --btn-bg: var(--gold-400); --btn-fg: var(--ink); }
.btn--outline { --btn-bg: transparent; --btn-fg: var(--ink); --btn-border: var(--ink); }
.btn--outline:hover { --btn-bg: var(--ink); --btn-fg: var(--white); --btn-border: var(--ink); }
.btn--ghost-light { --btn-bg: transparent; --btn-fg: var(--white); --btn-border: rgb(255 255 255 / .55); }
.btn--ghost-light:hover { --btn-bg: var(--white); --btn-fg: var(--ink); --btn-border: var(--white); }
.btn--block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.link-arrow {
display: inline-flex;
align-items: center;
gap: .45rem;
font-weight: 650;
color: var(--link);
text-decoration: none;
border-bottom: 1.5px solid currentColor;
padding-bottom: .1rem;
line-height: 1.3;
}
.link-arrow svg { width: 1em; height: 1em; transition: transform var(--t-fast) var(--ease); }
.link-arrow:hover { color: var(--link-hover); }
.link-arrow:hover svg.icon-arrow { transform: translateX(3px); }
.link-arrow:hover svg.icon-external { transform: translate(2px, -2px); }
.ext-note { font-size: .8em; color: var(--text-muted); font-weight: 400; }
.chips { list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; }
.chip {
display: inline-flex; align-items: center;
padding: .3rem .7rem;
border-radius: var(--r-round);
background: var(--white);
border: 1px solid var(--line-strong);
font-size: .84rem;
line-height: 1.3;
color: var(--ink-2);
}
.tag {
display: inline-flex; align-items: center; gap: .4rem;
font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
color: var(--green-700);
}
.tag--muted { color: var(--text-muted); }
.division-pill {
display: inline-flex; align-items: center; gap: .5rem;
padding: .3rem .75rem .3rem .45rem;
border-radius: var(--r-round);
background: var(--white);
border: 1px solid var(--line);
font-size: .82rem; font-weight: 650;
}
.division-pill::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--division, var(--green-600)); box-shadow: 0 0 0 2px var(--white), 0 0 0 3px var(--division, var(--green-600)); margin-right: .1rem; }
[data-division="primary"] { --division: var(--primary-school); --division-soft: var(--red-50); --division-ink: var(--red-700); }
[data-division="junior"]  { --division: var(--junior-school); --division-soft: var(--gold-50); --division-ink: var(--gold-700); }
[data-division="senior"]  { --division: var(--senior-school); --division-soft: var(--green-50); --division-ink: var(--green-700); }
.media { position: relative; overflow: hidden; background: var(--papyrus-2); }
.media > picture { display: block; width: 100%; height: 100%; }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media--3x2 { aspect-ratio: 3 / 2; }
.media--4x3 { aspect-ratio: 4 / 3; }
.media--16x9 { aspect-ratio: 16 / 9; }
.media--4x5 { aspect-ratio: 4 / 5; }
.media--1x1 { aspect-ratio: 1; }
.media--21x9 { aspect-ratio: 21 / 9; }
.media--rounded { border-radius: var(--r-3); }
figure { margin: 0; }
figcaption, .caption { font-size: .84rem; color: var(--text-muted); line-height: 1.45; margin-top: .65rem; }
.on-dark figcaption, .section--ink figcaption { color: var(--stone-500); }
.card {
position: relative;
display: flex;
flex-direction: column;
background: var(--white);
border-radius: var(--r-2);
overflow: hidden;
color: var(--ink);
}
.card--bordered { border: 1px solid var(--line); }
.card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.card__body > .link-arrow, .card__foot { margin-top: auto; padding-top: .6rem; align-self: flex-start; }
.card h3 { font-size: 1.35rem; }
.card h3 a { color: inherit; text-decoration: none; }
.card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card h3 a:focus-visible { outline: none; }
.card:has(h3 a:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.card p { color: var(--text-muted); font-size: .98rem; }
.card .media img { transition: transform var(--t-slow) var(--ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
.card:hover .media img { transform: scale(1.035); }
}
.card:hover h3 a { color: var(--green-700); }
.division-card { border: 1px solid var(--line); border-top: 0; }
.division-card::before { content: ""; height: 6px; background: var(--division); display: block; }
.division-card .card__meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .86rem; color: var(--text-muted); }
.division-card .grades { font-family: var(--font-display); font-size: 1rem; font-weight: 600; color: var(--division-ink); }
.news-meta { display: flex; flex-wrap: wrap; gap: .35rem .9rem; align-items: center; font-size: .82rem; color: var(--text-muted); }
.news-meta time { font-variant-numeric: tabular-nums; }
.news-meta .tag { font-size: .72rem; }
.resource-list { list-style: none; border-top: 1px solid var(--line); }
.resource {
display: grid;
grid-template-columns: 2.75rem minmax(0, 1fr) auto;
gap: 1rem;
align-items: center;
padding: 1.1rem 0;
border-bottom: 1px solid var(--line);
}
.resource__icon {
width: 2.75rem; height: 2.75rem; border-radius: var(--r-2);
display: grid; place-items: center;
background: var(--papyrus); color: var(--green-700);
}
.resource__icon svg { width: 20px; height: 20px; }
.resource h3 { font-family: var(--font-body); font-size: 1.02rem; font-weight: 650; letter-spacing: 0; }
.resource p { font-size: .88rem; color: var(--text-muted); margin-top: .15rem; }
.resource__badge { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .15rem .5rem; border-radius: var(--r-1); background: var(--gold-50); color: var(--gold-700); margin-left: .4rem; vertical-align: .1em; }
.resource__badge--current { background: var(--green-50); color: var(--green-700); }
@media (max-width: 560px) {
.resource { grid-template-columns: 2.5rem minmax(0, 1fr); }
.resource > :last-child { grid-column: 2; }
}
.facts { display: grid; grid-template-columns: repeat(var(--facts-cols, 4), minmax(0, 1fr)); border-top: 1px solid var(--line); }
.facts > div { padding: 1.25rem 1.25rem 1.25rem 0; border-bottom: 1px solid var(--line); }
.facts > div + div { padding-left: 1.25rem; border-left: 1px solid var(--line); }
.facts dt { font-size: var(--fs-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.facts dd { margin: .35rem 0 0; font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.facts dd small { display: block; font-family: var(--font-body); font-size: .85rem; font-weight: 400; color: var(--text-muted); margin-top: .25rem; }
.on-dark .facts, .section--ink .facts { border-color: var(--ink-3); }
.on-dark .facts > div, .section--ink .facts > div { border-color: var(--ink-3); }
.on-dark .facts dt, .section--ink .facts dt { color: var(--stone-500); }
.on-dark .facts dd small, .section--ink .facts dd small { color: var(--sand); }
@media (max-width: 860px) {
.facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.facts > div:nth-child(odd) { padding-left: 0; border-left: 0; }
.facts > div:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--line); }
}
.steps { list-style: none; counter-reset: step; display: grid; gap: 0; }
.steps--row { grid-template-columns: repeat(var(--steps, 4), minmax(0, 1fr)); gap: var(--s-5); }
.step { counter-increment: step; position: relative; padding-left: 4rem; padding-bottom: 2rem; }
.step::before {
content: counter(step);
position: absolute; left: 0; top: -.2rem;
width: 2.75rem; height: 2.75rem;
display: grid; place-items: center;
border-radius: 50%;
font-family: var(--font-display);
font-weight: 650;
font-size: 1.15rem;
color: var(--ink);
background: var(--gold-500);
box-shadow: 0 0 0 4px var(--bg-step, var(--white)), 0 0 0 5.5px var(--gold-500);
}
.step::after { content: ""; position: absolute; left: 1.375rem; top: 3rem; bottom: .4rem; width: 1.5px; background: var(--line-strong); }
.step:last-child::after { display: none; }
.step h3 { font-family: var(--font-body); font-size: 1.12rem; font-weight: 700; letter-spacing: 0; margin-bottom: .35rem; }
.step p { color: var(--text-muted); font-size: .98rem; }
.step ul { margin-top: .5rem; padding-left: 1.1rem; color: var(--text-muted); font-size: .95rem; }
.steps--row .step { padding-left: 0; padding-top: 4rem; padding-bottom: 0; }
.steps--row .step::after { left: 3.6rem; right: -1rem; top: 1.375rem; bottom: auto; width: auto; height: 1.5px; }
.section--papyrus .step { --bg-step: var(--papyrus); }
@media (max-width: 900px) {
.steps--row { grid-template-columns: minmax(0, 1fr); gap: 0; }
.steps--row .step { padding-left: 4rem; padding-top: 0; padding-bottom: 2rem; }
.steps--row .step::after { left: 1.375rem; top: 3rem; bottom: .4rem; right: auto; width: 1.5px; height: auto; }
}
.accordion { border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary {
list-style: none;
display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
padding: 1.2rem 0;
cursor: pointer;
font-size: 1.08rem;
font-weight: 650;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary:hover { color: var(--green-700); }
.accordion__icon { position: relative; width: 1.9rem; height: 1.9rem; flex-shrink: 0; border-radius: 50%; border: 1.5px solid var(--line-strong); }
.accordion__icon::before, .accordion__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform var(--t-med) var(--ease); }
.accordion__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.accordion details[open] .accordion__icon { background: var(--ink); border-color: var(--ink); color: var(--white); }
.accordion details[open] .accordion__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.accordion__panel { padding: 0 3.4rem 1.4rem 0; color: var(--text-muted); max-width: 48rem; }
.accordion__panel > * + * { margin-top: .75rem; }
.accordion__panel ul { padding-left: 1.2rem; }
.tabs__list {
display: flex; gap: .35rem; flex-wrap: wrap;
padding: .35rem;
background: var(--papyrus);
border-radius: var(--r-2);
width: fit-content;
max-width: 100%;
}
.tabs__tab {
appearance: none; border: 0;
background: transparent;
font: inherit; font-weight: 650; font-size: 1rem;
color: var(--stone-700);
padding: .7rem 1.2rem;
min-height: 2.9rem;
border-radius: var(--r-1);
cursor: pointer;
}
.tabs__tab:hover { color: var(--ink); }
.tabs__tab[aria-selected="true"] { background: var(--white); color: var(--ink); box-shadow: var(--shadow-1); }
.tabs__panel { padding-top: var(--s-7); }
.tabs__panel[hidden] { display: none; }
.callout {
display: grid;
grid-template-columns: 1.5rem minmax(0, 1fr);
gap: .9rem;
padding: 1.1rem 1.25rem;
border-radius: var(--r-2);
background: var(--info-bg);
color: var(--info);
font-size: .96rem;
}
.callout svg { width: 1.3rem; height: 1.3rem; margin-top: .1rem; }
.callout strong { color: inherit; }
.callout a { color: inherit; font-weight: 650; }
.callout--note { background: var(--gold-50); color: var(--warning); }
.callout--success { background: var(--success-bg); color: var(--success); }
.callout--error { background: var(--error-bg); color: var(--error); }
.quote { margin: 0; }
.quote blockquote { margin: 0; }
.quote p {
font-family: var(--font-display);
font-style: italic;
font-weight: 450;
font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.2rem);
line-height: 1.3;
letter-spacing: -.01em;
text-wrap: balance;
}
.quote p::before { content: "\201C"; }
.quote p::after { content: "\201D"; }
.quote figcaption { margin-top: 1.25rem; font-size: .95rem; color: var(--text-muted); }
.quote figcaption strong { color: var(--ink); font-weight: 700; }
.timeline { list-style: none; position: relative; display: grid; gap: 0; }
.timeline li {
display: grid;
grid-template-columns: 7.5rem minmax(0, 1fr);
gap: 1.75rem;
padding: 1.4rem 0;
border-top: 1px solid var(--line);
}
.timeline time {
font-family: var(--font-display);
font-weight: 650;
font-size: 1.5rem;
line-height: 1.1;
color: var(--green-700);
font-variant-numeric: lining-nums tabular-nums;
}
.timeline h3 { font-family: var(--font-body); font-size: 1.08rem; font-weight: 700; letter-spacing: 0; margin-bottom: .3rem; }
.timeline p { color: var(--text-muted); font-size: .98rem; }
@media (max-width: 560px) { .timeline li { grid-template-columns: minmax(0, 1fr); gap: .4rem; } }
.swatches { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-radius: var(--r-2); overflow: hidden; }
.swatch { padding: 1.4rem 1.2rem 1.5rem; min-height: 13rem; display: flex; flex-direction: column; justify-content: flex-end; gap: .35rem; }
.swatch h3 { font-family: var(--font-body); font-size: .8rem; font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.swatch p { font-size: .92rem; line-height: 1.45; }
.swatch--black { background: #0b0a08; color: var(--white); box-shadow: inset 0 0 0 1px var(--ink-3); }
.swatch--green { background: var(--green-600); color: var(--white); }
.swatch--red { background: var(--red-600); color: var(--white); }
.swatch--yellow { background: var(--gold-500); color: var(--ink); }
.swatch--white { background: var(--white); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
@media (max-width: 900px) { .swatches { grid-template-columns: repeat(2, minmax(0, 1fr)); } .swatch { min-height: 9rem; } .swatch--white { grid-column: 1 / -1; } }
.gallery { list-style: none; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .75rem; }
.gallery li { grid-column: span 3; }
.gallery li.is-wide { grid-column: span 6; }
.gallery li.is-tall { grid-row: span 2; }
.gallery button {
display: block; width: 100%; height: 100%;
padding: 0; border: 0; background: var(--papyrus-2);
border-radius: var(--r-2); overflow: hidden; cursor: zoom-in;
aspect-ratio: 4 / 3;
}
.gallery li.is-tall button { aspect-ratio: auto; }
.gallery button picture { display: block; width: 100%; height: 100%; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .gallery button:hover img { transform: scale(1.04); } }
@media (max-width: 900px) { .gallery li, .gallery li.is-wide { grid-column: span 6; } .gallery li.is-tall { grid-row: auto; } .gallery li.is-tall button { aspect-ratio: 4 / 3; } }
@media (max-width: 520px) { .gallery li, .gallery li.is-wide { grid-column: span 12; } }
.lightbox { border: 0; padding: 0; background: transparent; max-width: min(1100px, 94vw); width: 100%; color: var(--white); }
.lightbox::backdrop { background: rgb(11 10 8 / .9); }
.lightbox figure { display: grid; gap: .75rem; }
.lightbox img { max-height: 78vh; width: auto; margin: 0 auto; border-radius: var(--r-2); }
.lightbox figcaption { color: var(--sand); text-align: center; font-size: .95rem; }
.lightbox__bar { display: flex; justify-content: space-between; align-items: center; margin-top: .75rem; gap: 1rem; }
.lightbox__btn { appearance: none; border: 1px solid rgb(255 255 255 / .35); background: rgb(255 255 255 / .06); color: var(--white); border-radius: var(--r-1); min-height: 2.75rem; padding: 0 1rem; font: inherit; font-weight: 600; cursor: pointer; }
.lightbox__btn:hover { background: var(--white); color: var(--ink); }
.lightbox__btn:focus-visible { outline-color: var(--gold-400); }
.form { display: grid; gap: 1.4rem; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
@media (max-width: 640px) { .form-row { grid-template-columns: minmax(0, 1fr); } }
.field { display: grid; gap: .45rem; }
.field label, .field legend, .label {
font-weight: 650;
font-size: .98rem;
color: var(--ink);
}
.field .req { color: var(--red-700); margin-left: .15rem; }
.field .optional { font-weight: 400; color: var(--text-muted); font-size: .88rem; margin-left: .35rem; }
.hint { font-size: .87rem; color: var(--text-muted); margin-top: -.15rem; }
.input, .select, .textarea {
width: 100%;
min-height: 3rem;
padding: .7rem .9rem;
border: 1.5px solid var(--stone-300);
border-radius: var(--r-1);
background: var(--white);
color: var(--ink);
font: inherit;
font-size: 1rem;
transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.textarea { min-height: 8rem; resize: vertical; line-height: 1.5; }
.select { appearance: none; padding-right: 2.6rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2315130f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; }
.input:hover, .select:hover, .textarea:hover { border-color: var(--stone-500); }
.input:focus-visible, .select:focus-visible, .textarea:focus-visible { outline: none; border-color: var(--green-700); box-shadow: 0 0 0 3px var(--green-100); }
.field.has-error .input, .field.has-error .select, .field.has-error .textarea { border-color: var(--error); }
.field.has-error .input:focus-visible, .field.has-error .select:focus-visible, .field.has-error .textarea:focus-visible { box-shadow: 0 0 0 3px var(--error-bg); }
.field__error { display: none; align-items: flex-start; gap: .4rem; color: var(--error); font-size: .9rem; font-weight: 600; }
.field.has-error .field__error { display: flex; }
.field__error svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: .15rem; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.choice-grid { display: grid; grid-template-columns: repeat(var(--choice-cols, 2), minmax(0, 1fr)); gap: .65rem; margin-top: .6rem; }
@media (max-width: 640px) { .choice-grid { grid-template-columns: minmax(0, 1fr); } }
.choice {
position: relative;
display: flex; gap: .75rem; align-items: flex-start;
padding: .9rem 1rem;
border: 1.5px solid var(--stone-300);
border-radius: var(--r-2);
background: var(--white);
cursor: pointer;
transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);
}
.choice:hover { border-color: var(--stone-500); }
.choice input { appearance: none; margin: .15rem 0 0; width: 1.2rem; height: 1.2rem; flex-shrink: 0; border: 1.5px solid var(--stone-500); border-radius: 50%; background: var(--white); display: grid; place-items: center; cursor: pointer; }
.choice input[type="checkbox"] { border-radius: 4px; }
.choice input:checked { border-color: var(--green-700); background: var(--green-700); }
.choice input:checked::after { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: var(--white); }
.choice input[type="checkbox"]:checked::after { width: .55rem; height: .32rem; border-radius: 0; background: transparent; border-left: 2px solid var(--white); border-bottom: 2px solid var(--white); transform: rotate(-45deg) translate(1px, -1px); }
.choice input:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.choice:has(input:checked) { border-color: var(--green-700); background: var(--green-50); }
.choice__text strong { display: block; font-weight: 650; }
.choice__text span { display: block; font-size: .87rem; color: var(--text-muted); margin-top: .1rem; }
.choice .division-dot { width: .7rem; height: .7rem; border-radius: 50%; background: var(--division); display: inline-block; margin-right: .4rem; vertical-align: .05em; }
.consent { display: flex; gap: .75rem; align-items: flex-start; font-size: .94rem; color: var(--ink-2); }
.consent input { width: 1.25rem; height: 1.25rem; margin-top: .15rem; accent-color: var(--green-700); flex-shrink: 0; }
.form-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-3); padding: clamp(1.4rem, 1rem + 2vw, 2.5rem); box-shadow: var(--shadow-1); }
.progress { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-bottom: 2rem; counter-reset: prog; }
.progress li { counter-increment: prog; font-size: .84rem; font-weight: 650; color: var(--text-muted); padding-top: .7rem; border-top: 4px solid var(--stone-200); }
.progress li::before { content: "Step " counter(prog) " · "; font-weight: 500; }
.progress li[aria-current="step"] { color: var(--ink); border-top-color: var(--green-700); }
.progress li.is-done { color: var(--green-700); border-top-color: var(--green-500); }
@media (max-width: 560px) { .progress li::before { content: counter(prog) " · "; } }
.form-step[hidden] { display: none; }
.form-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; align-items: center; padding-top: .5rem; }
.error-summary { border: 2px solid var(--error); border-radius: var(--r-2); padding: 1rem 1.25rem; background: var(--error-bg); color: var(--error); }
.error-summary h2 { font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; letter-spacing: 0; margin-bottom: .4rem; }
.error-summary ul { padding-left: 1.2rem; }
.error-summary a { color: var(--error); font-weight: 600; }
.review-list { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .6rem 1.5rem; margin: 0; padding: 1.25rem; background: var(--papyrus); border-radius: var(--r-2); }
.review-list dt { font-weight: 650; color: var(--text-muted); font-size: .92rem; }
.review-list dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .review-list { grid-template-columns: minmax(0, 1fr); gap: .15rem; } .review-list dd { margin-bottom: .6rem; } }
.form-success { text-align: left; }
.form-success .tick { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--green-700); color: var(--white); display: grid; place-items: center; margin-bottom: 1.25rem; }
.form-success .tick svg { width: 1.6rem; height: 1.6rem; }
.pagination { display: flex; justify-content: center; margin-top: var(--s-7); }
.pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.pagination button, .pagination a, .pagination span {
min-width: 2.75rem; min-height: 2.75rem; padding: 0 .9rem;
display: inline-grid; place-items: center;
border-radius: var(--r-1);
border: 1px solid var(--line-strong);
background: var(--white);
color: var(--ink);
font: inherit; font-weight: 600; font-variant-numeric: tabular-nums;
text-decoration: none; cursor: pointer;
}
.pagination [aria-current="page"] { background: var(--ink); color: var(--white); border-color: var(--ink); }
.pagination button:hover:not([aria-current]):not([disabled]) { border-color: var(--ink); }
.pagination button[disabled] { opacity: .45; cursor: not-allowed; }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--s-6); }
.filter-btn {
appearance: none;
border: 1.5px solid var(--line-strong);
background: var(--white);
color: var(--ink-2);
border-radius: var(--r-round);
min-height: 2.6rem;
padding: 0 1.05rem;
font: inherit; font-size: .95rem; font-weight: 600;
cursor: pointer;
}
.filter-btn:hover { border-color: var(--ink); }
.filter-btn[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--white); }
.filter-status { font-size: .9rem; color: var(--text-muted); margin-bottom: 1.25rem; }
.empty-state {
display: grid; gap: 1rem; justify-items: start;
padding: clamp(1.75rem, 1rem + 3vw, 3rem);
border: 1.5px dashed var(--stone-300);
border-radius: var(--r-3);
background: var(--stone-50);
}
.empty-state__icon { width: 3rem; height: 3rem; border-radius: 50%; background: var(--papyrus-2); display: grid; place-items: center; color: var(--green-700); }
.empty-state__icon svg { width: 1.4rem; height: 1.4rem; }
.empty-state h2, .empty-state h3 { font-size: 1.45rem; }
.empty-state p { color: var(--text-muted); max-width: 40rem; }
.cta-band { position: relative; background: var(--green-900); color: var(--white); overflow: hidden; }
.cta-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--stole); }
.cta-band__inner { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--s-7); align-items: center; padding-block: clamp(3.5rem, 2.5rem + 4vw, 6rem); }
.cta-band h2 { color: var(--white); }
.cta-band p { color: var(--green-100); font-size: var(--fs-lead); margin-top: 1rem; max-width: 36rem; }
.cta-band .btn-row { justify-content: flex-end; }
.cta-band__contact { margin-top: 1.25rem; font-size: .95rem; color: var(--green-100); }
.cta-band__contact a { color: var(--white); font-weight: 650; }
@media (max-width: 860px) { .cta-band__inner { grid-template-columns: minmax(0, 1fr); } .cta-band .btn-row { justify-content: flex-start; } }
.page-hero { background: var(--papyrus); padding-block: clamp(2rem, 1.5rem + 2vw, 3rem) clamp(3rem, 2rem + 4vw, 5rem); position: relative; }
.page-hero .breadcrumbs { margin-bottom: clamp(1.75rem, 1rem + 3vw, 3rem); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: end; }
.page-hero h1 { max-width: 16ch; }
.page-hero .lead { margin-top: 1.5rem; max-width: 36rem; color: var(--stone-700); }
.page-hero__aside { padding-bottom: .3rem; }
.page-hero__aside > * + * { margin-top: 1rem; }
.page-hero--plain .page-hero__grid { grid-template-columns: minmax(0, 1fr); }
.page-hero--plain h1 { max-width: 22ch; }
.page-hero__media { margin-top: clamp(2rem, 1rem + 3vw, 3.5rem); }
.page-hero__media .media { border-radius: var(--r-3); }
.page-hero--photo { padding-bottom: 0; }
.page-hero--photo { --overhang: clamp(4rem, 3rem + 6vw, 9rem); }
.page-hero--photo .page-hero__media { margin-bottom: calc(-1 * var(--overhang)); position: relative; z-index: 1; }
.page-hero--photo + .section { padding-top: calc(clamp(4rem, 3rem + 6vw, 9rem) + var(--section)); }
.page-hero--photo + .anchor-nav { margin-top: clamp(4rem, 3rem + 6vw, 9rem); border-top: 1px solid var(--line); }
.page-hero[data-division]::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--division); }
@media (max-width: 900px) { .page-hero__grid { grid-template-columns: minmax(0, 1fr); align-items: start; } }
@media (max-width: 640px) { .page-hero__media .media--21x9 { aspect-ratio: 3 / 2; } }
.anchor-nav { position: sticky; top: calc(env(safe-area-inset-top, 0px) + var(--header-h)); z-index: 20; background: var(--white); border-bottom: 1px solid var(--line); }
.anchor-nav ul { position: relative; list-style: none; display: flex; gap: .25rem 1.75rem; overflow-x: auto; scrollbar-width: none; }
.anchor-nav ul::-webkit-scrollbar { display: none; }
.anchor-nav a { display: inline-flex; align-items: center; min-height: 3.25rem; white-space: nowrap; color: var(--stone-700); text-decoration: none; font-weight: 600; font-size: .95rem; border-bottom: 3px solid transparent; }
.anchor-nav a:hover { color: var(--ink); }
.anchor-nav a.is-active { color: var(--ink); border-bottom-color: var(--gold-500); }
.review-toggle {
position: fixed;
right: max(1rem, env(safe-area-inset-right, 0px));
bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
z-index: 70;
display: inline-flex; align-items: center; gap: .55rem;
min-height: 2.75rem;
padding: 0 1rem 0 .8rem;
border-radius: var(--r-round);
border: 1px solid var(--ink-3);
background: var(--ink);
color: var(--white);
font: inherit; font-size: .88rem; font-weight: 650;
box-shadow: var(--shadow-2);
cursor: pointer;
}
.review-toggle__dot { width: .65rem; height: .65rem; border-radius: 50%; background: var(--stone-500); }
.review-toggle[aria-pressed="true"] .review-toggle__dot { background: var(--gold-500); box-shadow: 0 0 0 3px rgb(242 183 5 / .3); }
@media (max-width: 640px) { .review-toggle { font-size: 0; gap: .4rem; padding: 0 .7rem; } .review-toggle__count { font-size: .78rem; } }
.review-toggle__count { background: var(--gold-500); color: var(--ink); border-radius: var(--r-round); padding: .05rem .5rem; font-size: .78rem; font-variant-numeric: tabular-nums; }
[data-verify] { position: relative; }
.is-reviewing [data-verify] { outline: 2px dashed var(--gold-600); outline-offset: 3px; background-color: rgb(254 248 227 / .55); }
.is-reviewing .on-dark [data-verify], .is-reviewing .section--ink [data-verify] { background-color: rgb(242 183 5 / .12); outline-color: var(--gold-400); }
.verify-badge {
display: none;
position: absolute; right: -8px; top: -12px; z-index: 5;
appearance: none; border: 0;
background: var(--gold-500); color: var(--ink);
font: 800 .7rem/1 var(--font-body);
letter-spacing: .04em;
padding: .3rem .45rem; border-radius: var(--r-round);
cursor: help;
box-shadow: 0 2px 6px rgb(21 19 15 / .25);
}
.is-reviewing .verify-badge { display: inline-block; }
.verify-pop {
position: absolute; z-index: 90;
max-width: 22rem;
padding: .85rem 1rem;
background: var(--ink); color: var(--white);
border-radius: var(--r-2);
box-shadow: var(--shadow-3);
font-size: .86rem; line-height: 1.45;
}
.verify-pop strong { color: var(--gold-400); display: block; margin-bottom: .2rem; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.verify-pop[hidden] { display: none; }
.icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }
.hero__band { background: var(--ink); padding-block: clamp(2.75rem, 1.5rem + 5vw, 5.5rem) clamp(2rem, 1rem + 3vw, 3.25rem); }
.hero__grid {
display: grid;
grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
gap: clamp(1.5rem, 1rem + 3vw, 4.5rem);
align-items: end;
}
.hero h1 {
font-size: var(--fs-display);
font-weight: 600;
line-height: 1.02;
letter-spacing: -.025em;
color: var(--white);
max-width: 13ch;
}
.hero .eyebrow { color: var(--gold-400); margin-bottom: 1.4rem; }
.hero__aside .lead { color: var(--sand); margin-bottom: 1.75rem; max-width: 30rem; }
.hero__media { background: linear-gradient(to bottom, var(--ink) 0 46%, var(--white) 46%); }
.hero__figure { position: relative; }
.hero__photo { aspect-ratio: 2.25 / 1; border-radius: var(--r-3) var(--r-3) 0 0; }
.hero__photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--stole); }
@media (prefers-reduced-motion: no-preference) {
.hero__photo img { animation: hero-settle 1.6s var(--ease) both; }
@keyframes hero-settle { from { transform: scale(1.045); } to { transform: none; } }
}
.hero__caption {
display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem;
margin-top: 1rem;
font-size: .88rem;
color: var(--text-muted);
}
@media (max-width: 900px) {
.hero__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
.hero h1 { max-width: 15ch; }
.hero__media { background: linear-gradient(to bottom, var(--ink) 0 30%, var(--white) 30%); }
.hero__photo { aspect-ratio: 16 / 10; border-radius: var(--r-2) var(--r-2) 0 0; }
}
@media (max-width: 560px) {
.hero__photo { aspect-ratio: 4 / 3; }
.hero__photo img { object-position: 46% 40% !important; }
.hero .btn-row .btn { width: 100%; }
}
.tasks { border-bottom: 1px solid var(--line); }
.tasks__list { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tasks__list li + li { border-left: 1px solid var(--line); }
.tasks__list a {
display: flex; align-items: center; gap: .85rem;
padding: 1.35rem 1.1rem;
min-height: 5.25rem;
color: var(--ink);
text-decoration: none;
transition: background-color var(--t-fast) var(--ease);
}
.tasks__list li:first-child a { padding-left: 0; }
.tasks__list a:hover { background: var(--stone-50); }
.tasks__list a:hover strong { color: var(--green-700); }
.tasks__list .icon { width: 1.6rem; height: 1.6rem; color: var(--green-700); }
.tasks__list strong { display: block; font-size: 1rem; font-weight: 700; }
.tasks__list a > span > span { display: block; font-size: .85rem; color: var(--text-muted); line-height: 1.35; margin-top: .1rem; }
@media (max-width: 1100px) {
.tasks__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tasks__list li:nth-child(4) { border-left: 0; }
.tasks__list li:nth-child(n+4) { border-top: 1px solid var(--line); }
.tasks__list li:nth-child(4) a { padding-left: 0; }
}
@media (max-width: 640px) {
.tasks__list { grid-template-columns: minmax(0, 1fr); }
.tasks__list li + li { border-left: 0; border-top: 1px solid var(--line); }
.tasks__list a { padding: 1rem 0; min-height: 4.25rem; }
}
.purpose__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: end; }
.statement {
font-family: var(--font-display);
font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem);
line-height: 1.12;
font-weight: 550;
letter-spacing: -.02em;
}
.label-head { font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--text-muted); margin-bottom: .75rem; }
.purpose__mission p { margin-bottom: 1.25rem; color: var(--ink-2); }
.purpose__facts { margin-top: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); }
@media (max-width: 900px) { .purpose__grid { grid-template-columns: minmax(0, 1fr); align-items: start; } }
.trinity__figure { position: sticky; top: calc(var(--header-h) + 2rem); }
.trinity h2 { margin-bottom: 1rem; }
.trinity__intro { margin-bottom: 2.25rem; }
.trinity__list { margin: 0 0 2rem; border-top: 1px solid var(--line-strong); }
.trinity__row { display: grid; grid-template-columns: 12.5rem minmax(0, 1fr); gap: 1.5rem; padding: 1.6rem 0; border-bottom: 1px solid var(--line-strong); }
.trinity__row dt { display: flex; flex-direction: column; gap: .3rem; }
.trinity__term { font-family: var(--font-display); font-size: clamp(1.6rem, 1.3rem + 1vw, 2.15rem); font-weight: 600; line-height: 1; letter-spacing: -.015em; }
.trinity__key { font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--green-700); }
.trinity__row dd { margin: 0; }
.trinity__row dd p { color: var(--ink-2); margin-bottom: .85rem; }
.trinity .chip { background: transparent; }
@media (max-width: 900px) { .trinity__figure { position: static; } }
@media (max-width: 560px) { .trinity__row { grid-template-columns: minmax(0, 1fr); gap: .75rem; } }
.bento { list-style: none; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.25rem; }
.bento__item { grid-column: span 5; }
.bento__item--hero { grid-column: span 7; grid-row: span 2; }
.bento__item--third { grid-column: span 4; }
.bento__item a { display: flex; flex-direction: column; height: 100%; color: var(--white); text-decoration: none; }
.bento__item .media { border-radius: var(--r-2); aspect-ratio: 16 / 10; flex: 1; }
.bento__item--hero .media { aspect-ratio: auto; min-height: 22rem; }
.bento__item--third .media { flex: none; }
.bento__item .media img { transition: transform var(--t-slow) var(--ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .bento__item a:hover .media img { transform: scale(1.04); } }
.bento__text { display: block; padding-top: .9rem; }
.bento__text strong { display: block; font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; }
.bento__text span { display: block; color: var(--sand); font-size: .95rem; margin-top: .2rem; }
.bento__item a:hover strong { color: var(--gold-400); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1.5px; }
@media (max-width: 900px) {
.bento__item, .bento__item--hero { grid-column: span 12; grid-row: auto; }
.bento__item--third { grid-column: span 6; }
.bento__item--hero .media { min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width: 600px) { .bento__item--third { grid-column: span 12; } }
.news-home__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; }
.news-feature { border-radius: var(--r-3); }
.news-feature .media { border-radius: var(--r-3); }
.news-feature .card__body { padding: 1.4rem 0 0; }
.news-feature h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.news-index { list-style: none; border-top: 2px solid var(--ink); }
.news-index li { padding: 1.25rem 0 1.3rem; border-bottom: 1px solid var(--line); }
.news-index h3 { font-size: 1.22rem; margin-top: .4rem; }
.news-index a { color: var(--ink); text-decoration: none; }
.news-index a:hover { color: var(--green-700); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
@media (max-width: 900px) { .news-home__grid { grid-template-columns: minmax(0, 1fr); } }
.heritage-home__crest { display: grid; place-items: center; position: relative; padding: clamp(1rem, 3vw, 3rem); }
.heritage-home__crest::before {
content: ""; position: absolute; inset: 0; margin: auto;
width: min(100%, 30rem); aspect-ratio: 1;
border-radius: 50%;
background: repeating-conic-gradient(from 0deg, rgb(242 183 5 / .2) 0 2.5deg, transparent 2.5deg 12deg);
mask: radial-gradient(circle, transparent 0 46%, #000 46.5% 70%, transparent 70.5%);
}
.heritage-home__crest img { position: relative; width: min(100%, 22rem, 62vw); filter: drop-shadow(0 18px 30px rgb(21 19 15 / .22)); }
.heritage-home__lead { margin-block: 1.25rem 2rem; color: var(--ink-2); }
.mini-swatches { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); gap: .9rem 1.5rem; margin-bottom: 2rem; font-size: .95rem; color: var(--text-muted); }
.mini-swatches li { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); column-gap: .75rem; align-items: center; line-height: 1.35; }
.mini-swatches li .mini-swatches__chip { grid-row: span 2; }
.mini-swatches strong { color: var(--ink); display: block; }
.mini-swatches__chip { width: 1.6rem; height: 1.6rem; border-radius: 50%; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgb(21 19 15 / .12); }
.mini-swatches__chip--white { background: var(--white); box-shadow: inset 0 0 0 1px var(--stone-300); }
.founder-home__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; max-width: 68rem; }
.ring-portrait {
width: min(100%, 15rem);
aspect-ratio: 1;
border-radius: 50%;
padding: 10px;
background: var(--white);
box-shadow: 0 0 0 4px var(--red-600), 0 0 0 10px var(--gold-500), 0 0 0 16px var(--green-600);
margin: 16px;
}
.ring-portrait picture, .ring-portrait img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.founder-home__text { margin-block: 1.5rem 1.5rem; color: var(--text-muted); max-width: 40rem; }
@media (max-width: 760px) { .founder-home__grid { grid-template-columns: minmax(0, 1fr); } .ring-portrait { width: 10rem; } }
.admissions-home__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; }
.contact-card { background: var(--white); border-radius: var(--r-3); padding: 1.75rem; box-shadow: var(--shadow-2); }
.contact-card h3 { font-size: 1.4rem; margin-bottom: 1rem; }
.contact-card__list { list-style: none; display: grid; gap: .8rem; margin-bottom: 1.5rem; }
.contact-card__list li { display: flex; gap: .7rem; align-items: center; overflow-wrap: anywhere; }
.contact-card__list .icon { color: var(--green-700); }
.contact-card__list a { color: var(--ink); font-weight: 600; text-decoration: none; }
.contact-card__list a:hover { color: var(--green-700); text-decoration: underline; }
.contact-card .btn-row { flex-direction: column; align-items: stretch; gap: 1rem; }
.contact-card .btn-row .link-arrow { align-self: flex-start; }
@media (max-width: 1000px) { .admissions-home__grid { grid-template-columns: minmax(0, 1fr); } }
.statements { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-6) clamp(2rem, 1rem + 5vw, 6rem); align-items: start; }
.statements__lead { grid-row: span 2; }
.statements__item { border-top: 2px solid var(--ink); padding-top: 1.25rem; }
.statements__item p { color: var(--ink-2); }
.statements__motto { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.3; font-weight: 550; color: var(--ink) !important; }
@media (max-width: 900px) { .statements { grid-template-columns: minmax(0, 1fr); } .statements__lead { grid-row: auto; } }
.acrostic { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--s-6); }
.acrostic li { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-top: 1px solid var(--ink-3); }
.acrostic__letter { font-family: var(--font-display); font-size: 3rem; line-height: .9; font-weight: 650; color: var(--gold-500); }
.acrostic h3 { font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; letter-spacing: 0; color: var(--white); margin-bottom: .3rem; }
.acrostic p { color: var(--sand); font-size: .96rem; }
@media (max-width: 960px) { .acrostic { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .acrostic { grid-template-columns: minmax(0, 1fr); } }
.page-hero__crest { width: min(100%, 13rem); margin-left: auto; filter: drop-shadow(0 14px 24px rgb(21 19 15 / .2)); }
@media (max-width: 900px) { .page-hero__crest { width: 8rem; margin-left: 0; } }
.division-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.division-links .division-pill, .uniform-key .division-pill { text-decoration: none; color: var(--ink); }
.division-links .division-pill:hover, .uniform-key a.division-pill:hover { border-color: var(--ink); }
.uniform-key { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1.5rem; font-size: .92rem; color: var(--text-muted); }
.toc { list-style: none; columns: 2; column-gap: 1.5rem; font-size: .95rem; }
.toc li { break-inside: avoid; padding: .3rem 0; border-bottom: 1px solid var(--line-strong); }
.toc a { color: var(--ink); text-decoration: none; font-weight: 600; }
.toc a:hover { color: var(--green-700); text-decoration: underline; }
.prose--dark p { color: var(--sand); }
.prose--dark .lead { color: var(--white); }
.crest-explorer { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
.crest-explorer__figure { position: relative; width: min(100%, 30rem); margin-inline: auto; }
.crest-explorer__figure img { width: 100%; filter: drop-shadow(0 20px 36px rgb(21 19 15 / .22)); }
.crest-explorer__spot {
position: absolute;
transform: translate(-50%, -50%);
width: 2.25rem; height: 2.25rem;
border-radius: 50%;
border: 2px solid var(--white);
background: var(--ink);
color: var(--white);
font: 700 .9rem/1 var(--font-body);
cursor: pointer;
box-shadow: 0 3px 10px rgb(21 19 15 / .4);
transition: transform var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);
}
.crest-explorer__spot:hover { transform: translate(-50%, -50%) scale(1.1); }
.crest-explorer__spot[aria-pressed="true"] { background: var(--gold-500); color: var(--ink); border-color: var(--ink); transform: translate(-50%, -50%) scale(1.15); }
.crest-explorer__spot:focus-visible { outline: 3px solid var(--green-700); outline-offset: 2px; }
.no-js .crest-explorer__spot { pointer-events: none; }
.crest-explorer__list { list-style: none; counter-reset: sym; display: grid; gap: .35rem; }
.crest-explorer__list li { counter-increment: sym; position: relative; padding: .85rem 1rem .85rem 3.4rem; border-radius: var(--r-2); transition: background-color var(--t-fast) var(--ease); outline-offset: 2px; }
.crest-explorer__list li::before { content: counter(sym); position: absolute; left: .9rem; top: .9rem; width: 1.75rem; height: 1.75rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .85rem; background: var(--white); border: 1.5px solid var(--line-strong); }
.crest-explorer__list li.is-active { background: var(--white); box-shadow: var(--shadow-1); }
.crest-explorer__list li.is-active::before { background: var(--gold-500); border-color: var(--gold-500); }
.crest-explorer__list h3 { font-family: var(--font-body); font-size: 1.02rem; font-weight: 700; letter-spacing: 0; }
.crest-explorer__list p { font-size: .94rem; color: var(--text-muted); margin-top: .1rem; }
@media (max-width: 900px) { .crest-explorer { grid-template-columns: minmax(0, 1fr); } .crest-explorer__figure { width: min(100%, 22rem); } }
.founder { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: start; }
.founder__portrait { position: sticky; top: calc(var(--header-h) + 2rem); }
.founder .ring-portrait { width: min(100%, 17rem); }
.quote--inline { margin-top: 2.25rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.quote--inline p { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.75rem); }
.board-note { margin-top: 1rem; padding: 1.25rem 1.4rem; background: var(--white); border-radius: var(--r-2); border: 1px solid var(--line); }
.board-note h3 { font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; letter-spacing: 0; margin-bottom: .35rem; }
.careers { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.careers__how { padding: 1.75rem; border-radius: var(--r-3); background: var(--papyrus); display: grid; gap: .9rem; justify-items: start; }
.careers__how h3 { font-size: 1.35rem; }
@media (max-width: 860px) { .founder, .careers { grid-template-columns: minmax(0, 1fr); } .founder__portrait { position: static; } .founder .ring-portrait { width: 11rem; } }
.contact-card--flat { background: var(--white); box-shadow: var(--shadow-1); }
.contact-card__title { font-size: 1.35rem; margin-bottom: 1rem; }
.contact-card .btn { width: 100%; }
.trinity-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--ink); }
.trinity-cols article { padding: 1.75rem 1.75rem 0 0; }
.trinity-cols article + article { padding-left: 1.75rem; border-left: 1px solid var(--line); }
.trinity-cols__key { font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--green-700); }
.trinity-cols h3 { font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.6rem); margin: .35rem 0 .9rem; }
.trinity-cols p { color: var(--ink-2); margin-bottom: 1.25rem; }
@media (max-width: 900px) { .trinity-cols { grid-template-columns: minmax(0, 1fr); } .trinity-cols article, .trinity-cols article + article { padding: 1.75rem 0; border-left: 0; border-bottom: 1px solid var(--line); } }
.feature-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem var(--s-6); }
.feature-list article { display: grid; gap: .55rem; align-content: start; }
.feature-list .icon { width: 2.25rem; height: 2.25rem; padding: .45rem; border-radius: 50%; background: var(--green-50); color: var(--green-700); box-sizing: border-box; }
.section--papyrus .feature-list .icon { background: var(--white); }
.feature-list h3 { font-family: var(--font-body); font-size: 1.12rem; font-weight: 700; letter-spacing: 0; }
.feature-list p { color: var(--text-muted); font-size: .98rem; }
@media (max-width: 960px) { .feature-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .feature-list { grid-template-columns: minmax(0, 1fr); } }
.subject-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .65rem; }
.subject-grid li { display: flex; align-items: center; gap: .75rem; padding: .95rem 1.1rem; background: var(--white); border-radius: var(--r-2); font-weight: 600; border-left: 4px solid var(--division, var(--green-600)); }
.division-facts dd { color: var(--ink); }
[data-division] .eyebrow { color: var(--division-ink, var(--green-700)); }
.news-index--cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0 var(--s-6); border-top: 0; }
.news-index--cols li { border-top: 2px solid var(--ink); border-bottom: 0; }
.news-index--cols p:not(.news-meta) { color: var(--text-muted); font-size: .95rem; margin-top: .4rem; }
.programme-list { display: grid; gap: clamp(3rem, 2rem + 4vw, 5.5rem); margin-top: var(--s-7); }
.programme { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.programme:nth-child(even) > .media { order: 2; }
.programme--text { grid-template-columns: minmax(0, 1fr); padding: clamp(1.75rem, 1rem + 2vw, 2.5rem); border-radius: var(--r-3); background: var(--papyrus); }
.programme--text .programme__body { display: grid; grid-template-columns: auto minmax(0, 18rem) minmax(0, 1fr); gap: .5rem 1.75rem; align-items: start; }
.programme--text .programme__body .prose { grid-column: 3; grid-row: 1 / span 2; }
.programme--text .programme__body .link-arrow { grid-column: 3; }
.programme__icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--ink); color: var(--gold-500); margin-bottom: 1rem; }
.programme--text .programme__icon { margin-bottom: 0; }
.programme h2 { font-size: var(--fs-h3); margin-bottom: .9rem; }
.programme .prose { margin-bottom: 1.25rem; color: var(--ink-2); }
@media (max-width: 900px) {
.programme { grid-template-columns: minmax(0, 1fr); }
.programme:nth-child(even) > .media { order: 0; }
.programme--text .programme__body { grid-template-columns: minmax(0, 1fr); }
.programme--text .programme__body .prose, .programme--text .programme__body .link-arrow { grid-column: auto; grid-row: auto; }
}
.more-programmes__title { font-size: var(--fs-h3); margin: clamp(4rem, 3rem + 4vw, 6rem) 0 1.5rem; }
.more-programmes { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.25rem; }
.more-programme { background: var(--papyrus); border-radius: var(--r-3); padding: 1.6rem; display: grid; gap: .75rem; align-content: start; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.more-programme .programme__icon { margin-bottom: .25rem; width: 2.75rem; height: 2.75rem; }
.more-programme h3 { font-size: 1.35rem; }
.more-programme .prose { color: var(--ink-2); font-size: .98rem; }
.steps--detailed .step { padding-bottom: 2.5rem; }
.steps--detailed .step h3 { font-family: var(--font-display); font-size: 1.45rem; font-weight: 600; letter-spacing: -.01em; }
.steps--detailed .step p { color: var(--ink-2); font-size: 1.02rem; }
.checklists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.checklist { background: var(--white); border-radius: var(--r-3); padding: 1.6rem 1.6rem 1.8rem; }
.checklist h3 { display: flex; align-items: center; gap: .6rem; font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; letter-spacing: 0; margin-bottom: .9rem; }
.checklist h3 .icon { color: var(--green-700); }
.checklist ul, .tick-list { list-style: none; display: grid; gap: .55rem; }
.checklist li, .tick-list li { position: relative; padding-left: 1.6rem; font-size: .97rem; color: var(--ink-2); }
.checklist li::before, .tick-list li::before { content: ""; position: absolute; left: .1rem; top: .45em; width: .7rem; height: .4rem; border-left: 2px solid var(--green-700); border-bottom: 2px solid var(--green-700); transform: rotate(-45deg); }
.tick-list--warn li::before { width: .45rem; height: .45rem; border: 0; border-radius: 50%; background: var(--gold-600); transform: none; top: .55em; }
.tick-list--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 2rem; }
@media (max-width: 960px) { .checklists { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .tick-list--cols { grid-template-columns: minmax(0, 1fr); } }
.table-wrap { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r-2); }
.fee-table th, .fee-table td { text-align: left; padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.fee-table thead th { font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); border-bottom: 2px solid var(--ink); padding-top: 0; }
.fee-table tbody th { font-weight: 650; min-width: 14rem; }
.fee-table tbody th span { display: block; font-weight: 400; font-size: .86rem; color: var(--text-muted); margin-top: .2rem; }
.fee-table td:nth-child(2) { font-family: var(--font-display); font-weight: 650; font-size: 1.15rem; white-space: nowrap; }
.fee-table td:last-child { color: var(--text-muted); font-size: .95rem; min-width: 11rem; }
.fee-notes { list-style: none; display: grid; gap: .75rem; margin-top: 1.75rem; }
.fee-notes li { display: flex; gap: .75rem; align-items: flex-start; font-size: .97rem; color: var(--ink-2); }
.fee-notes .icon { color: var(--green-700); margin-top: .15rem; }
.visit-address { display: flex; gap: .75rem; font-style: normal; margin-bottom: 1.75rem; color: var(--sand); line-height: 1.55; }
.visit-address .icon { color: var(--gold-500); margin-top: .2rem; }
.enquiry__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(1.5rem, 1rem + 3vw, 3.5rem); align-items: start; margin-top: -1.5rem; position: relative; }
.enquiry__aside { display: grid; gap: 1.5rem; position: sticky; top: calc(var(--header-h) + 1.5rem); }
.next-steps h2 { font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); font-weight: 700; margin-bottom: .75rem; }
.next-steps ol { padding-left: 1.2rem; display: grid; gap: .5rem; color: var(--ink-2); font-size: .97rem; }
.form-step__title { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; margin-bottom: .25rem; padding: 0; }
.link-button { appearance: none; background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--link); text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.link-button:hover { color: var(--link-hover); }
.enquiry-summary { white-space: pre-wrap; font: .9rem/1.6 var(--font-body); background: var(--papyrus); border-radius: var(--r-2); padding: 1rem 1.25rem; margin: 1.25rem 0 1rem; overflow-wrap: anywhere; }
.enquiry-summary:empty { display: none; }
@media (max-width: 1000px) { .enquiry__grid { grid-template-columns: minmax(0, 1fr); margin-top: 0; } .enquiry__aside { position: static; } }
.life-intro { margin-bottom: var(--s-7); }
.facts--compact dd { font-size: 1.2rem; }
.sport-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
@media (max-width: 420px) { .sport-strip { grid-template-columns: minmax(0, 1fr); } }
.leader-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.leader-card { display: grid; gap: .6rem; align-content: start; padding: 1.5rem; border-radius: var(--r-3); border: 1px solid var(--line); }
.leader-card > .icon { width: 2rem; height: 2rem; color: var(--green-700); }
.leader-card h3 { font-family: var(--font-body); font-size: 1.1rem; font-weight: 700; letter-spacing: 0; }
.leader-card p { color: var(--text-muted); font-size: .96rem; }
.leader-card .link-arrow { margin-top: .4rem; justify-self: start; }
@media (max-width: 1000px) { .leader-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .leader-grid { grid-template-columns: minmax(0, 1fr); } }
.everyday { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.everyday article { background: var(--white); border-radius: var(--r-3); padding: 1.5rem; }
.everyday h3 { display: flex; align-items: center; gap: .55rem; font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; letter-spacing: 0; margin-bottom: .6rem; }
.everyday h3 .icon { color: var(--green-700); }
.everyday p { font-size: .96rem; color: var(--ink-2); }
@media (max-width: 1000px) { .everyday { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .everyday { grid-template-columns: minmax(0, 1fr); } }
.uniform { margin-top: var(--s-7); background: var(--white); border-radius: var(--r-3); padding: clamp(1.4rem, 1rem + 2vw, 2.25rem); }
.uniform > h3 { font-size: 1.5rem; margin-bottom: 1rem; }
.uniform-table th, .uniform-table td { text-align: left; padding: .9rem 1rem .9rem 0; border-bottom: 1px solid var(--line); vertical-align: top; font-size: .97rem; }
.uniform-table thead th { font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); border-bottom: 2px solid var(--ink); }
.uniform-table td { min-width: 10rem; }
.uniform-table td:nth-child(2) { font-weight: 650; min-width: 7rem; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.5rem; align-items: start; }
.news-grid > [hidden] { display: none; }
.news-card .media { border-radius: var(--r-2); }
.news-card .card__body { padding: 1.1rem 0 0; }
.news-card h3 { font-size: 1.28rem; }
.news-card--text { background: var(--papyrus); border-radius: var(--r-2); }
.news-card--text .card__body { padding: 1.6rem 1.5rem 1.6rem; }
.news-card--text::before { content: ""; height: 4px; background: var(--stole); }
.news-card--text h3 { font-size: 1.4rem; }
.news-card .ext-note { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; }
.news-card .ext-note .icon { width: .9rem; height: .9rem; }
@media (max-width: 960px) { .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .news-grid { grid-template-columns: minmax(0, 1fr); } }
.article__head { background: var(--papyrus); padding-block: clamp(2rem, 1.5rem + 2vw, 3rem) clamp(2.5rem, 2rem + 3vw, 4rem); }
.article__head .breadcrumbs { margin-bottom: clamp(1.75rem, 1rem + 2vw, 2.75rem); }
.article__meta { margin-bottom: 1rem; }
.article__head h1 { font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.5rem); }
.article__head .lead { margin-top: 1.25rem; color: var(--ink-2); }
.article__hero { margin-top: clamp(-1.5rem, -1vw, -.5rem); }
.article__hero figcaption { margin-top: .75rem; }
.article__rule { padding-top: 0; }
.article__body { padding-block: clamp(2.5rem, 2rem + 3vw, 4rem) var(--section); }
.prose--article { font-size: 1.08rem; }
.prose--article > p:first-child { font-size: 1.15rem; }
.prose--article h2 { font-size: 1.6rem; margin-top: 2.2em; }
.prose-figure { margin-block: 2rem; }
.stat-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); margin-top: 2rem; }
.stat-row div { padding: 1.1rem 1rem 1.2rem 0; }
.stat-row div + div { padding-left: 1rem; border-left: 1px solid var(--line); }
.stat-row strong { display: block; font-family: var(--font-display); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); line-height: 1; font-weight: 650; color: var(--green-700); font-variant-numeric: lining-nums; }
.stat-row span { display: block; font-size: .9rem; color: var(--text-muted); margin-top: .4rem; }
.article__facts { margin-top: 3rem; padding: 1.5rem; border-radius: var(--r-3); background: var(--papyrus); }
.article__facts h2 { font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--text-muted); margin-bottom: .75rem; }
.article__facts dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .55rem 1.5rem; margin: 0; }
.article__facts dt { font-weight: 650; }
.article__facts dd { margin: 0; color: var(--ink-2); }
@media (max-width: 560px) { .article__facts dl { grid-template-columns: minmax(0, 1fr); gap: .1rem; } .article__facts dd { margin-bottom: .6rem; } }
.article__back { margin-top: 2.5rem; }
.section-title-sm { font-size: var(--fs-h3); margin-bottom: 1.5rem; }
.year-rhythm { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.25rem; }
.year-rhythm > li { background: var(--white); border-radius: var(--r-3); padding: 1.4rem 1.5rem 1.5rem; }
.year-rhythm h3 { font-size: 1.35rem; margin-bottom: .75rem; color: var(--green-700); }
.year-rhythm ul { list-style: none; display: grid; gap: .85rem; }
.year-rhythm ul li { display: grid; gap: .1rem; padding-top: .85rem; border-top: 1px solid var(--line); }
.year-rhythm ul li:first-child { padding-top: 0; border-top: 0; }
.year-rhythm strong { font-weight: 650; }
.year-rhythm span { font-size: .9rem; color: var(--text-muted); }
.year-rhythm__year { font-variant-numeric: tabular-nums; font-size: .78rem !important; font-weight: 700; letter-spacing: .06em; color: var(--gold-700) !important; }
.no-js .tabs__list { display: none; }
.no-js .tabs__panel { display: block !important; }
.panel-title { font-size: var(--fs-h2); margin-bottom: 1.5rem; }
[data-tabs].is-enhanced .panel-title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.quick-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: var(--s-7); }
.quick-grid a {
display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center;
min-height: 5.25rem; padding: 1.1rem 1.2rem;
border-radius: var(--r-3); border: 1px solid var(--line);
color: var(--ink); text-decoration: none;
transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.quick-grid a:hover { border-color: var(--ink); box-shadow: var(--shadow-1); }
.quick-grid a > .icon:first-child { width: 1.6rem; height: 1.6rem; color: var(--green-700); }
.quick-grid a > .icon:last-child { width: 1rem; height: 1rem; color: var(--stone-600); }
.quick-grid strong { display: block; font-weight: 700; }
.quick-grid a > span > span { display: block; font-size: .86rem; color: var(--text-muted); }
@media (max-width: 1000px) { .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .quick-grid { grid-template-columns: minmax(0, 1fr); } }
.hub-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-6) var(--s-7); align-items: start; }
@media (max-width: 900px) { .hub-cols { grid-template-columns: minmax(0, 1fr); } }
.hub-subtitle { font-size: 1.4rem; margin-bottom: 1rem; }
.hub-card + .hub-subtitle { margin-top: 2rem; }
.hub-card { background: var(--papyrus); border-radius: var(--r-3); padding: 1.5rem 1.6rem; display: grid; gap: .8rem; justify-items: start; }
.section--papyrus .hub-card { background: var(--white); }
.hub-card h3, .hub-card h4 { font-family: var(--font-body); font-size: 1.08rem; font-weight: 700; letter-spacing: 0; }
.hub-card p { color: var(--ink-2); font-size: .98rem; }
.hub-section { margin-top: var(--s-7); }
.hub-help p + p { margin-top: .75rem; }
.hub-help a { color: var(--ink); }
.howto { background: var(--green-50); border-radius: var(--r-3); padding: 1.5rem 1.6rem; }
.howto h3 { font-size: 1.3rem; margin-bottom: .9rem; }
.howto ol { padding-left: 1.3rem; display: grid; gap: .6rem; color: var(--ink-2); }
.tiers { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tier { display: grid; gap: .2rem; padding: 1.4rem 1.5rem; border-radius: var(--r-3); background: var(--ink); color: var(--white); position: relative; overflow: hidden; }
.tier::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--stole); }
.tier__name { font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--gold-400); }
.tier__amount { font-family: var(--font-display); font-size: 2rem; font-weight: 650; font-variant-numeric: lining-nums tabular-nums; }
.tier__desc { color: var(--sand); font-size: .95rem; }
@media (max-width: 520px) { .tiers { grid-template-columns: minmax(0, 1fr); } }
.priority { display: grid; gap: .6rem; align-content: start; background: var(--white); border-radius: var(--r-3); padding: 1.6rem; }
.priority > .icon { width: 2.25rem; height: 2.25rem; color: var(--green-700); }
.priority h3 { font-size: 1.4rem; }
.priority p { color: var(--ink-2); font-size: .98rem; }
.contact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin-top: -1.5rem; position: relative; }
.contact-tile { background: var(--white); border-radius: var(--r-3); padding: 1.6rem; box-shadow: var(--shadow-2); display: grid; gap: .5rem; align-content: start; justify-items: start; }
.contact-tile > .icon { width: 1.75rem; height: 1.75rem; color: var(--green-700); margin-bottom: .25rem; }
.contact-tile h2 { font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--text-muted); }
.contact-tile__big { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.contact-tile__big a { color: var(--ink); text-decoration: none; }
.contact-tile__big a:hover { color: var(--green-700); text-decoration: underline; }
.contact-tile address { font-style: normal; line-height: 1.55; color: var(--ink-2); }
.copy-btn { appearance: none; display: inline-flex; align-items: center; gap: .4rem; margin-top: .35rem; border: 1px solid var(--line-strong); background: var(--white); border-radius: var(--r-1); min-height: 2.5rem; padding: 0 .75rem; font: inherit; font-size: .86rem; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.copy-btn:hover { border-color: var(--ink); color: var(--ink); }
.copy-btn .icon { width: 1rem; height: 1rem; }
@media (max-width: 1100px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .contact-grid { grid-template-columns: minmax(0, 1fr); margin-top: 0; } }
.routing { margin: 0; border-top: 2px solid var(--ink); }
.routing > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line-strong); }
.routing dt { font-weight: 650; }
.routing dd { margin: 0; color: var(--ink-2); }
@media (max-width: 640px) { .routing > div { grid-template-columns: minmax(0, 1fr); gap: .25rem; } }
.notfound__code::before { content: "404"; }
.notfound__code { font-family: var(--font-display); font-size: clamp(5rem, 3rem + 10vw, 9rem); font-weight: 650; line-height: 1; color: var(--papyrus-2); margin-bottom: 1rem; letter-spacing: -.03em; }
.notfound__links { list-style: none; display: grid; gap: .9rem; margin-top: 2rem; }
.audit .hub-card { align-content: start; }
.audit .tick-list li { font-size: .95rem; }
.sitemap { list-style: none; display: grid; gap: .3rem; border-top: 2px solid var(--ink); padding-top: 1rem; }
.sitemap > li { padding: .6rem 0; border-bottom: 1px solid var(--line); font-weight: 650; }
.sitemap ul { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; margin-top: .4rem; font-weight: 400; font-size: .95rem; color: var(--text-muted); }
.sitemap a { color: var(--ink); }
.register { font-size: .9rem; background: var(--white); }
.register th, .register td { text-align: left; vertical-align: top; padding: .85rem 1rem; border-bottom: 1px solid var(--line); }
.register thead th { background: var(--ink); color: var(--white); font-size: var(--fs-label); letter-spacing: .08em; text-transform: uppercase; position: sticky; top: 0; }
.register tbody th { font-weight: 700; min-width: 11rem; }
.register td:nth-child(2) { min-width: 22rem; }
.register td:nth-child(3), .register td:nth-child(4) { min-width: 9rem; color: var(--text-muted); }
.register--mono td { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82rem; min-width: 0 !important; overflow-wrap: anywhere; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .88em; background: var(--papyrus); padding: .05em .35em; border-radius: 3px; }
.ds-h { font-family: var(--font-body); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: 700; color: var(--text-muted); margin: 2.5rem 0 1rem; }
.ds-swatches { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 1.25rem; }
.ds-swatch { display: grid; gap: .2rem; font-size: .88rem; }
.ds-swatch__chip { height: 5.5rem; border-radius: var(--r-2); box-shadow: inset 0 0 0 1px rgb(21 19 15 / .1); display: flex; align-items: flex-end; padding: .5rem .6rem; margin-bottom: .5rem; }
.ds-swatch__chip code { background: rgb(255 255 255 / .85); color: var(--ink); }
.ds-swatch strong { font-size: .98rem; }
.ds-swatch > code { justify-self: start; }
.ds-swatch > span { color: var(--text-muted); }
.ds-type { display: grid; gap: 0; border-top: 1px solid var(--line-strong); }
.ds-type > div { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 1.5rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line-strong); align-items: baseline; }
.ds-type__label { font-size: .82rem; color: var(--text-muted); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
@media (max-width: 760px) { .ds-type > div { grid-template-columns: minmax(0, 1fr); gap: .4rem; } }
.ds-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; padding: 1.5rem 0; }
.ds-row--dark { background: var(--ink); padding: 1.5rem; border-radius: var(--r-3); }
