.school-site {
  --school-rule: #dce5da;
}

.school-section-sources {
  margin: 15px 0 0;
  padding-top: 8px;
  border-top: 1px solid var(--school-rule);
  color: #52665b;
  font-size: .74rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.school-section-sources > span {
  margin-right: .45em;
  color: #365b49;
  font-weight: 700;
}

.school-site .site-nav a[aria-current="page"] {
  color: var(--gold);
}

.crumbs {
  padding-block: 12px;
}

.crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 10px;
  padding: 0;
  margin: 0;
  color: var(--muted);
  font-size: .79rem;
  list-style: none;
}

.crumbs li + li::before {
  content: "›";
  margin-right: 10px;
  color: #75867a;
}

.crumbs a,
.source-note a,
.map-notes a,
.course-source a,
.publisher-link a,
.campus-links a {
  text-underline-offset: 3px;
}

.crumbs a:hover,
.source-note a:hover,
.map-notes a:hover,
.course-source a:hover,
.publisher-link a:hover,
.campus-links a:hover {
  text-decoration-thickness: 2px;
}

.profile-hero {
  background: radial-gradient(ellipse at 94% 135%, #315d4d 0, #173b31 53%, var(--deep) 100%);
  color: #fcf8ec;
}

.profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(16px, 4vw, 54px);
  padding-block: clamp(26px, 5vw, 52px);
}

.profile-meta {
  color: var(--gold);
  font-size: .83rem;
  font-weight: 700;
  letter-spacing: .075em;
}

.profile-heading h1 {
  margin-top: 6px;
  font-size: clamp(2.15rem, 5.45vw, 4.63rem);
  line-height: 1.28;
}

.profile-access { margin-top: 8px; color: #e5ebe0; font-size: .87rem; }
.profile-access a, .profile-admissions a { text-underline-offset: 4px; }
.profile-hero :focus-visible { outline-color: var(--gold); }

.profile-admissions {
  min-width: 0;
  padding: clamp(11px, 2.1vw, 22px);
  border: 1px solid #deead258;
  border-radius: 12px;
  background: #102c26a3;
}

.profile-score-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 8px; }
.profile-score-heading h2 { color: #f4e4b9; font-family: var(--sans); font-size: .99rem; }
.profile-score-heading > span, .profile-score-note { color: #d8e5d8; font-size: .72rem; }
.profile-scores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 9px 0 7px; }
.profile-scores > div { min-width: 0; border-top: 1px solid #deead247; padding-top: 7px; }
.profile-scores dt { font-size: .86rem; font-weight: 700; }
.profile-scores dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 9px; margin: 0; }
.profile-scores strong { font-family: Georgia, serif; color: #fff8e7; font-size: clamp(2.45rem, 5vw, 4.3rem); line-height: 1; letter-spacing: -.045em; font-variant-numeric: lining-nums; }
.profile-scores small { color: #d8e5d8; font-size: .76rem; }
.profile-score-note { border-top: 1px solid #deead247; padding-top: 6px; line-height: 1.6; }

.school-subnav {
  border-bottom: 1px solid var(--school-rule);
  background: #f1f4eb;
}

.school-subnav nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 clamp(9px, 2.1vw, 27px);
}

.school-subnav a {
  display: flex;
  min-height: 46px;
  align-items: center;
  color: var(--green);
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
}

.school-subnav a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.school-subnav .school-nav-practice {
  min-height: 36px;
  margin: 6px 0 6px auto;
  padding-inline: 10px;
  gap: 5px;
  border: 1px solid #b6cdb9;
  border-radius: 5px;
  background: #fbfdf6;
}

.school-sections {
  padding-block: 10px 42px;
}

.school-section {
  padding-block: clamp(35px, 4.5vw, 63px);
  border-bottom: 1px solid var(--school-rule);
}

.school-article .school-section { padding-block: clamp(30px, 3.6vw, 49px); }

.school-heading h2 {
  font-size: clamp(1.73rem, 3.1vw, 2.53rem);
}

.school-heading .section-label {
  margin-bottom: 5px;
}

.school-section .section-intro {
  max-width: 62em;
  margin-top: 10px;
  color: var(--muted);
}

.school-article #outcomes { padding-top: clamp(21px, 3.5vw, 40px); }

.destination-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.26fr);
  align-items: stretch;
  gap: 10px;
  margin-top: 12px;
}

.destination-overview, .destination-examples {
  min-width: 0;
  padding: clamp(12px, 2.15vw, 24px);
  border: 1px solid #d2dfd1;
  border-radius: 9px;
}

.destination-overview { background: #ecf2e7; }
.destination-examples { background: var(--white); }
.destination-layout h3 { font-size: .98rem; color: var(--forest); }
.destination-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(116px, 100%), 1fr)); gap: 5px 10px; margin: 8px 0 0; }
.destination-total { min-width: 0; padding-block: 6px 0; border-top: 1px solid #b9cdbb; }
.destination-total dt { font-size: .82rem; font-weight: 700; }
.destination-total dd { display: grid; gap: 1px; margin: 0; }
.destination-total strong { color: var(--forest); font: 700 clamp(2.14rem, 4.9vw, 3.8rem)/1.15 Georgia, serif; letter-spacing: -.045em; }
.destination-total strong span { margin-left: 3px; font: 700 .87rem var(--sans); }
.destination-total small, .destination-heading small { color: var(--muted); font-size: .72rem; line-height: 1.55; }
.destination-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 8px; }
.destination-examples dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; margin: 6px 0 0; }
.destination-examples dl > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 7px; padding-block: 5px; border-top: 1px solid var(--school-rule); }
.destination-examples dt { font-size: .84rem; font-weight: 700; }
.destination-examples dd { margin: 0; color: var(--forest); font-size: .74rem; white-space: nowrap; }
.destination-examples dd strong { margin-right: 2px; font-size: 1.14rem; font-variant-numeric: tabular-nums; }
.destination-examples .source-note { margin-top: 5px; }
.school-life-overview {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
  overflow: hidden;
  margin-top: 14px;
  border: 1px solid var(--school-rule);
  border-radius: 10px;
  background: var(--white);
}

.profile-image { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-width: 0; background: #25483c; }
.profile-image img { display: block; width: 100%; height: 100%; min-height: 190px; max-height: 270px; object-fit: cover; object-position: center 53%; }
.profile-image figcaption { padding: 5px 12px; color: #eef5e9; font-size: .7rem; line-height: 1.6; }
.profile-image figcaption a { text-underline-offset: 2px; }
.school-life-facts { display: grid; align-content: center; min-width: 0; gap: 12px; padding: clamp(14px, 2.65vw, 25px); }
.school-life-facts section + section { padding-top: 11px; border-top: 1px solid var(--school-rule); }
.school-life-facts h3 { margin-bottom: 4px; color: var(--forest); font-size: 1.08rem; line-height: 1.5; }
.school-life-facts p { font-size: .87rem; }
.school-media-link { margin-top: 5px; color: var(--green); font-size: .84rem; font-weight: 700; }
.school-media-link a { text-underline-offset: 3px; }

.school-route-links { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 10px; margin-top: 10px; font-size: .85rem; }
.school-route-links > span { color: var(--forest); font-weight: 700; }
.school-route-links a { min-height: 36px; padding-inline: 10px; border: 1px solid #b6cdb9; border-radius: 5px; background: #f1f5eb; }

.admissions-practice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 22px;
  margin-top: 14px;
  padding: 13px clamp(12px, 2.5vw, 23px);
  border: 1px solid #bdd1bf;
  border-left: 3px solid #618c6f;
  border-radius: 8px;
  background: #e9f0e5;
}

.admissions-practice h3 { color: var(--forest); font-size: 1.03rem; }
.admissions-practice p { color: var(--muted); font-size: .84rem; }
.admissions-practice-actions { display: grid; align-items: start; min-width: min(242px, 100%); max-width: 100%; gap: 2px; }
.admissions-grade-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.admissions-grade-links a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid #c8b47b;
  border-radius: 6px;
  background: #fbf2dc;
  color: var(--forest);
  font-size: .86rem;
  font-weight: 700;
  text-decoration: none;
}

.admissions-grade-links a:hover { background: #f5e3af; }
.admissions-practice-actions .text-link { justify-self: start; min-height: 40px; font-size: .79rem; }

@media (max-width: 690px) {
  .profile-grid { padding-block: 14px 16px; }
  .school-subnav .school-nav-practice { margin-left: 0; }
  .destination-layout, .school-life-overview { grid-template-columns: minmax(0, 1fr); }
  .profile-image img { min-height: 0; height: auto; max-height: 214px; aspect-ratio: 2 / 1; }
}

@media (max-width: 440px) {
  .school-site:has(.school-article) .crumbs { padding-block: 6px; }
  .school-site:has(.school-article) .crumbs ol { gap: 1px 4px; font-size: .73rem; }
  .school-site:has(.school-article) .crumbs li + li::before { margin-right: 5px; }
  .profile-meta { font-size: .75rem; line-height: 1.5; }
  .profile-access { font-size: .78rem; }
  .profile-scores dt { line-height: 1.5; }
  .profile-scores dd { gap: 0 7px; }
  .profile-scores small { font-size: .69rem; }
  .destination-total strong { font-size: 2rem; }
  .destination-examples dl { column-gap: 8px; }
  .destination-examples dt { font-size: .75rem; }
}

.course-grid, .prep-grid, .school-book-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.course-card, .prep-card, .school-book, .support-card {
  min-width: 0;
  padding: clamp(16px, 2.65vw, 27px);
  border: 1px solid var(--school-rule);
  border-radius: 10px;
  background: var(--white);
}

.course-card:target {
  border-color: #4a7d60;
  box-shadow: 0 0 0 2px #cbded0;
}

.course-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 7px;
}

.course-top h3 {
  font-size: 1.18rem;
}

.course-top > span {
  color: var(--muted);
  font-size: .82rem;
}

.course-total {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-top: 4px;
}

.course-total strong {
  color: var(--forest);
  font-size: clamp(1.95rem, 4.35vw, 3rem);
  font-variant-numeric: tabular-nums;
  line-height: 1.22;
}

.course-total > span {
  color: var(--muted);
  font-size: .83rem;
}

.score-bar {
  display: flex;
  height: 12px;
  gap: 2px;
  overflow: hidden;
  border-radius: 4px;
  margin-top: 13px;
}

.score-bar span {
  flex-basis: var(--portion);
}

.score-academic { background: #357055; }
.score-record { background: #9cba9f; }
.score-assessment { background: #e5ba69; }

.score-breakdown {
  margin: 13px 0 0;
}

.score-breakdown > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  padding-block: 5px;
  border-bottom: 1px solid #e6ece3;
  font-size: .86rem;
}

.score-breakdown dd {
  margin: 0;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.score-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 2px;
  margin-right: 7px;
}

.course-test, .course-source {
  margin-top: 9px;
  color: var(--muted);
  font-size: .8rem;
}

.course-source a {
  color: var(--green);
  font-weight: 700;
}

.scoring-note, .assessment-note {
  margin-top: 16px;
  padding: 12px 16px;
  border-left: 3px solid #7a9e80;
  background: #edf2e9;
}

.scoring-note {
  font-size: .9rem;
}

.school-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--school-rule);
  border-radius: 9px;
  background: var(--white);
  font-size: .88rem;
  line-height: 1.5;
}

.school-table caption {
  padding: 0 0 6px;
  color: var(--muted);
  font-size: .81rem;
  text-align: left;
}

.school-table thead th {
  background: #e9f0e6;
  color: #29483b;
}

.school-table th, .school-table td {
  padding: 9px 11px;
  text-align: left;
  vertical-align: middle;
}

.school-table tbody tr + tr > * {
  border-top: 1px solid #e7ece2;
}

.school-table tbody tr:nth-child(even) {
  background: #f8faf5;
}

.school-table td {
  font-variant-numeric: tabular-nums;
}

.ratio-table td:nth-child(n + 3), .ratio-table th:nth-child(n + 3),
.outcome-table td:nth-child(n + 3), .outcome-table th:nth-child(n + 3),
.map-table td:nth-child(n + 4), .map-table th:nth-child(n + 4) {
  text-align: right;
}

.source-note {
  margin-top: 9px;
  color: var(--muted);
  font-size: .79rem;
  line-height: 1.65;
}

.source-note a, .map-notes a {
  color: var(--green);
}

.date-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 15px;
  margin-top: 18px;
  padding: 12px 15px;
  border: 1px solid #dce5d9;
  border-radius: 8px;
  background: #f2f5ed;
  font-size: .82rem;
}

.date-strip strong {
  color: var(--forest);
}

.prep-card {
  border-top: 3px solid #71977e;
}

.prep-card h4, .support-card h3, .school-book :is(h4, h5) {
  line-height: 1.48;
  font-size: 1.08rem;
}

.prep-course {
  margin-bottom: 5px;
  color: var(--green);
  font-size: .79rem;
  font-weight: 700;
}

.prep-card p:not(.prep-course), .prep-card dd, .assessment-note p,
.school-book p:not(.book-meta) {
  color: var(--muted);
  font-size: .91rem;
}

.prep-card h4 + p, .school-book :is(h4, h5) + p {
  margin-top: 7px;
}

.prep-card dl {
  margin-block: 12px 0;
}

.prep-card dl > div {
  padding-block: 7px;
  border-top: 1px solid var(--school-rule);
}

.prep-card dt {
  color: var(--green);
  font-size: .81rem;
  font-weight: 700;
}

.prep-card dd {
  margin: 2px 0 0;
}

.assessment-note h4 {
  font-size: .99rem;
}

.assessment-note p + p {
  margin-top: 4px;
}

.outcome-panel {
  margin-top: 18px;
}

.outcome-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  margin: 0 0 12px;
}

.outcome-stat {
  min-width: 0;
  padding: 12px 15px;
  border: 1px solid #d5e2d5;
  border-radius: 8px;
  background: #eaf1e6;
}

.outcome-stat dt {
  font-size: .83rem;
  font-weight: 700;
}

.outcome-stat dd {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  color: var(--muted);
  font-size: .74rem;
}

.outcome-stat strong {
  color: var(--forest);
  font-size: clamp(1.22rem, 3vw, 2.1rem);
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.year-controls {
  display: flex;
  gap: 6px;
  margin-top: 14px;
}

.choice-button, .map-reset {
  min-height: 41px;
  padding: 5px 12px;
  border: 1px solid #cbd9cc;
  border-radius: 6px;
  background: var(--white);
  color: var(--forest);
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
}

.choice-button:hover, .map-reset:hover {
  border-color: var(--green);
}

.choice-button[aria-pressed="true"] {
  border-color: var(--forest);
  background: var(--forest);
  color: var(--white);
}

[data-outcome-table] {
  margin-top: 10px;
}

.campus-links {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 16px;
  margin-top: 12px;
  color: var(--green);
  font-size: .81rem;
  font-weight: 700;
}

.button-outline {
  margin-top: 11px;
  border-color: #bed2c1;
  color: var(--green);
  background: var(--white);
}

.button-outline:hover {
  border-color: var(--green);
  background: #edf3ea;
}

.support-card {
  padding: 15px;
}

.support-card h3 {
  margin-bottom: 7px;
}

.support-card .text-link {
  margin-top: 6px;
  font-size: .79rem;
}

.school-book {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.book-card-summary {
  display: flex;
  align-items: flex-start;
  gap: clamp(9px, 2vw, 16px);
}

.book-card-summary :is(.book-cover-image, .book-cover-source) {
  flex: 0 0 auto;
  width: clamp(56px, 7vw, 94px);
  aspect-ratio: 3 / 4;
}

.book-card-summary .book-cover-image {
  height: auto;
  object-fit: contain;
  object-position: top;
  filter: drop-shadow(0 3px 4px #14392c29);
}

.book-cover-source {
  display: grid;
  align-content: center;
  padding: 4px;
  border: 1px solid #bfd0c0;
  border-radius: 5px;
  background: #edf3e9;
  color: var(--green);
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
}

.book-cover-source:hover { background: #e1eddf; }

.book-card-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 5px;
}

.school-book .book-card-details :is(h4, h5) {
  margin: 0;
}

.school-book .book-actions {
  margin-top: auto;
  padding-top: 8px;
}

.publisher-link {
  color: var(--green);
  font-size: .76rem;
}

.school-updated {
  margin-top: 17px;
}

.directory {
  padding-block: clamp(19px, 3.8vw, 46px) 64px;
}

.directory-heading h1 {
  font-size: clamp(2rem, 4.6vw, 4rem);
  line-height: 1.24;
}

.directory-heading > p:last-child {
  margin-top: 12px;
  color: var(--muted);
}

.map-mobile-break {
  display: none;
}

.map-layout {
  display: grid;
  grid-template-columns: minmax(245px, .78fr) minmax(0, 1.4fr);
  align-items: start;
  gap: clamp(16px, 3vw, 30px);
  margin-top: 22px;
}

.district-map {
  padding: 15px;
  border: 1px solid #d6e4d7;
  border-radius: 11px;
  background: #edf3eb;
}

.district-map figcaption {
  font-size: .98rem;
  font-weight: 700;
}

.district-map figcaption span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 400;
}

.map-figure {
  position: relative;
  width: min(100%, 400px);
  margin-inline: auto;
  aspect-ratio: 1;
  overflow: hidden;
}

.map-figure img {
  display: block;
  width: 100%;
  height: auto;
}

.map-markers {
  position: absolute;
  inset: 0;
}

.district-marker {
  position: absolute;
  left: var(--pin-x);
  top: var(--pin-y);
  width: 37px;
  height: 37px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #47765a;
  border-radius: 50%;
  background: #fffefa;
  color: #214b36;
  font-size: .87rem;
  font-weight: 700;
  cursor: pointer;
}

.district-marker:hover, .district-marker[aria-pressed="true"] {
  background: var(--forest);
  color: var(--white);
}

.map-status {
  margin-top: 3px;
  color: var(--forest);
  font-size: .84rem;
  font-weight: 700;
}

.directory-filters {
  padding: 13px 14px 10px;
  margin-bottom: 11px;
  border: 1px solid var(--school-rule);
  border-radius: 9px;
  background: #eef3ea;
}

.directory-filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 10px;
}

.directory-filter-grid label {
  display: grid;
  gap: 3px;
  color: var(--green);
  font-size: .8rem;
  font-weight: 700;
}

.directory-filter-grid select, .directory-filter-grid input {
  width: 100%;
  min-width: 0;
  min-height: 41px;
  padding: 6px 9px;
  border: 1px solid #bccfc0;
  border-radius: 6px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: .89rem;
  font-weight: 400;
}

.neighbor-option {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 7px;
  color: var(--ink);
  font-size: .8rem;
}

.neighbor-option input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.directory-filter-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 9px;
  margin-top: 6px;
  color: var(--muted);
  font-size: .8rem;
}

.map-reset {
  min-height: 33px;
  padding: 3px 9px;
}

.map-table th:first-child a {
  color: var(--green);
  text-underline-offset: 3px;
}

.map-table th:first-child small {
  display: block;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 400;
}

.map-table thead small {
  color: var(--muted);
  font-size: .67rem;
  white-space: nowrap;
}

.map-score, .map-ratio, .district-code {
  white-space: nowrap;
}

.map-score strong {
  color: var(--forest);
}

.map-empty {
  padding: 14px;
  margin-top: 8px;
  border: 1px solid var(--school-rule);
  border-radius: 7px;
  background: var(--white);
  color: var(--muted);
  font-size: .88rem;
}

.map-notes {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  color: var(--muted);
  font-size: .79rem;
  line-height: 1.65;
}

.map-credit {
  margin-top: 17px;
}

.home-school-section {
  padding-block: 29px;
  border-bottom: 1px solid #dce5da;
  background: #f0f4ec;
}

.home-school-links {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 11px;
}

.home-school-links > div {
  padding-block: 4px;
}

.home-school-links h2 {
  margin-bottom: 4px;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
}

.home-school-links p {
  color: var(--muted);
  font-size: .83rem;
}

.home-school-links > a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  padding: 10px 14px;
  border: 1px solid #d1ded2;
  border-radius: 8px;
  background: var(--white);
  text-decoration: none;
}

.home-school-links > a:hover {
  border-color: var(--green);
}

.home-school-links > a strong {
  color: var(--green);
  font-size: .95rem;
}

.home-school-links > a span:not([aria-hidden]) {
  color: var(--muted);
  font-size: .77rem;
}

@media (max-width: 860px) {
  .school-subnav nav {
    column-gap: 17px;
  }

  .map-layout {
    grid-template-columns: minmax(205px, .8fr) minmax(0, 1.4fr);
  }

  .district-marker {
    width: 31px;
    height: 31px;
  }

  .map-table td, .map-table th {
    padding-inline: 6px;
    font-size: .82rem;
  }
}

@media (max-width: 690px) {
  .profile-grid, .map-layout, .home-school-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .profile-grid {
    gap: 12px;
  }

  .school-subnav nav {
    gap: 0 13px;
  }

  .school-subnav a {
    min-height: 39px;
    font-size: .79rem;
  }

  .course-grid, .prep-grid, .school-book-grid {
    gap: 10px;
  }

  .map-figure {
    width: min(100%, 300px);
  }

  .district-marker {
    width: 32px;
    height: 32px;
  }

  .home-school-links > div {
    padding: 0 0 3px;
  }
}

@media (max-width: 540px) {
  .school-site .header-inner {
    padding-top: 9px;
  }

  .school-site .site-nav {
    justify-content: flex-start;
    gap: 18px;
  }

  .school-site .site-nav a {
    min-height: 38px;
  }

  .course-grid, .prep-grid, .school-book-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .map-mobile-break {
    display: inline;
  }

  .course-card, .prep-card, .school-book, .support-card {
    padding: 14px;
  }

  .ratio-table th, .ratio-table td, .outcome-table th, .outcome-table td {
    padding: 8px 5px;
    font-size: .8rem;
  }

  .outcome-stats {
    gap: 5px;
  }

  .outcome-stat {
    padding: 7px 6px;
  }

  .outcome-stat dt, .outcome-stat dd {
    font-size: .71rem;
    line-height: 1.4;
  }

  .outcome-stat strong {
    font-size: 1.12rem;
  }

  .map-table td, .map-table th {
    padding-inline: 4px;
    font-size: .75rem;
    overflow-wrap: anywhere;
  }

  .map-table th:nth-child(3) {
    min-width: 50px;
  }
}

@media (max-width: 365px) {
  .map-table .district-code {
    white-space: normal;
  }

  .map-table thead small {
    font-size: .62rem;
  }

  .directory-filter-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.program-grid, .visit-grid, .progress-grid, .cost-grid {
  display: grid;
  gap: 16px;
  margin-top: 20px;
}

.program-grid, .visit-grid, .cost-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.program-grid { gap: 11px; margin-top: 14px; }

.program-card {
  min-width: 0;
  padding: clamp(13px, 2.2vw, 23px);
  border: 1px solid var(--school-rule);
  border-top: 3px solid #679074;
  border-radius: 11px;
  background: var(--white);
}

.program-card:nth-child(2) {
  border-top-color: #a68240;
  background: #fbf8ee;
}

.program-card:target, .school-book:target {
  outline: 2px solid #679074;
  outline-offset: 3px;
}

.program-name, .progress-year {
  color: var(--green);
  font-weight: 700;
  font-size: .84rem;
  letter-spacing: .06em;
}

.program-card h3 {
  margin: 4px 0 6px;
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.3vw, 1.76rem);
  line-height: 1.45;
}

.program-details, .program-example, .visit-grid p, .school-example p {
  color: var(--muted);
  font-size: .9rem;
}

.program-example { margin-top: 6px; padding-left: 9px; border-left: 2px solid #c4c6aa; }

.program-fit, .stage-school-note {
  padding: 10px 12px;
  border-radius: 6px;
  background: #edf3e8;
  font-size: .88rem;
}

.program-fit { margin-top: 9px; padding: 7px 9px; }
.program-card:nth-child(2) .program-fit { background: #f2ead4; }

.program-fit strong, .stage-school-note strong, .cost-fit strong {
  color: var(--green);
}

.visit-grid {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--school-rule);
  gap: 10px clamp(14px, 3vw, 37px);
}

.visit-grid h4, .journey-heading {
  font-size: 1.15rem;
  line-height: 1.5;
}

.visit-grid h4 {
  margin-bottom: 3px;
}

.progress-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  list-style: none;
  margin: 12px 0 0;
}

.progress-grid li {
  min-width: 0;
  padding: 13px 16px 15px;
  border-radius: 8px;
  border: 1px solid #d5e2d5;
  background: #eaf1e6;
}

.progress-grid h4, .school-example h4 {
  margin: 2px 0 4px;
  font-size: 1rem;
}

.progress-grid li > p:last-child {
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.65;
}

#outcomes .school-heading {
  margin-bottom: 17px;
}

.school-example {
  margin-top: 13px;
  padding: 9px 0 8px 14px;
  border-left: 3px solid #b2965e;
}

.school-example .source-note {
  margin-top: 4px;
  font-size: .76rem;
}

.cohort-table {
  margin-top: 9px;
}

.cohort-table td {
  text-align: right;
}

.cohort-table + .source-note {
  margin-bottom: 14px;
}

.family-survey {
  margin-top: 22px;
  padding: 14px 17px;
  border: 1px solid #d8e1d5;
  border-radius: 8px;
  background: #f0f4ec;
}

.family-survey h3 {
  font-size: 1rem;
}

.family-survey dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 11px 0 0;
}

.family-survey dl div {
  padding-left: 10px;
  border-left: 2px solid #b9cbbc;
}

.family-survey dt {
  color: var(--muted);
  font-size: .76rem;
}

.family-survey dd {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 700;
}

.school-prep {
  margin-top: 23px;
}

.school-prep .prep-grid {
  margin-top: 11px;
}

.prep-card h4, .assessment-note h4 {
  margin: 0;
}

.exam-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
}

.exam-tabs button {
  min-width: 7em;
  min-height: 44px;
  padding: 6px 13px;
  border: 1px solid #a9c4af;
  border-radius: 6px;
  background: var(--white);
  color: var(--green);
  font-size: .89rem;
  font-weight: 700;
  cursor: pointer;
}

.exam-tabs button[aria-selected="true"] {
  border-color: var(--forest);
  background: var(--forest);
  color: #f9f5e8;
}

.exam-course-panel { margin-top: 12px; }
.exam-course-panel:not([hidden]) + .exam-course-panel:not([hidden]) { margin-top: 25px; }
.exam-course-intro { padding: 10px 13px; border-left: 3px solid #91af96; border-radius: 5px; background: #f0f4ea; }
.exam-course-intro h3 { color: var(--forest); font-size: 1rem; }
.exam-course-intro p { color: var(--muted); font-size: .87rem; }
.exam-course-intro .text-link { min-height: 34px; font-size: .8rem; }

.exam-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.exam-item {
  min-width: 0;
  border: 1px solid var(--school-rule);
  border-radius: 8px;
  background: var(--white);
}

.exam-summary {
  display: grid;
  grid-template-columns: 4.15em minmax(0, 1fr) 13px;
  align-items: center;
  gap: 10px;
  min-height: 55px;
  padding: 9px 16px;
  border-radius: 7px;
  list-style: none;
  cursor: pointer;
}

.exam-summary::-webkit-details-marker {
  display: none;
}

.exam-summary::after {
  content: "+";
  color: var(--green);
  font-weight: 700;
}

.exam-item[open] > .exam-summary {
  background: #eaf1e6;
  border-radius: 7px 7px 0 0;
}

.exam-item[open] > .exam-summary::after {
  content: "−";
}

.exam-subject {
  color: var(--green);
  font-weight: 700;
}

.exam-title {
  font-size: .91rem;
  font-weight: 700;
}

.exam-result {
  margin-top: 7px;
  color: var(--muted);
}

.exam-result strong {
  color: var(--forest);
  font-size: 1rem;
}

.exam-body {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr);
  gap: 16px clamp(18px, 4vw, 36px);
  padding: clamp(14px, 2.5vw, 24px) clamp(16px, 3vw, 31px);
}

.exam-body h4 {
  margin-top: 0;
  margin-bottom: 5px;
  font-size: 1rem;
}

.exam-body h4 span {
  color: var(--muted);
  font-size: .79rem;
}

.exam-original { align-self: start; padding: 10px 12px; border: 1px solid var(--school-rule); border-radius: 6px; background: #faf9f2; }

.exam-body p, .exam-answer summary, .exam-practice .text-link {
  font-size: .87rem;
}

.exam-body .source-note {
  font-size: .75rem;
}

.practice-passage {
  margin-bottom: 5px;
  padding: 6px 10px;
  border-left: 2px solid #c1d4c4;
  background: #f4f6ef;
}

.exam-answer {
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 6px;
  background: #f0f4eb;
}

.exam-answer summary, .cost-details summary {
  color: var(--green);
  font-weight: 700;
  cursor: pointer;
}

.exam-answer p {
  margin-top: 4px;
}

.study-controls {
  display: flex;
  gap: 7px;
  margin-top: 15px;
}

.study-controls .choice-button {
  display: inline-flex;
  min-width: 74px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.study-controls .choice-button[aria-current="true"] {
  border-color: var(--forest);
  background: var(--forest);
  color: var(--white);
}

.study-panel {
  padding: clamp(13px, 2.8vw, 27px);
  margin-top: 11px;
  border: 1px solid #d2dfd1;
  border-top: 3px solid #789680;
  border-radius: 12px;
  background: #eff4eb;
  scroll-margin-top: 66px;
}

.study-panel-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 2px 15px;
}

.study-panel-heading h3 {
  color: var(--forest);
  font-family: var(--serif);
  font-size: clamp(1.18rem, 2.5vw, 1.62rem);
  line-height: 1.45;
}

.study-panel-heading p {
  color: var(--muted);
  font-size: .81rem;
}

.year-end-subjects {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 5px;
  max-width: 540px;
  margin: 12px 0;
}

.year-end-subjects .choice-button {
  display: grid;
  place-items: center;
  min-height: 42px;
  padding-inline: 2px;
  text-decoration: none;
}

.year-end-subjects .choice-button[aria-current="true"] {
  border-color: #5a8068;
  background: #dbead9;
  color: #183e2e;
}

.year-end-layout {
  display: grid;
  grid-template-columns: minmax(0, 2.65fr) minmax(0, 1fr);
  gap: clamp(10px, 2vw, 18px);
  align-items: start;
}

.year-end-questions { display: grid; gap: 12px; min-width: 0; }
.year-end-question {
  min-width: 0;
  padding: clamp(14px, 2.7vw, 26px);
  border: 1px solid #d4e0d4;
  border-radius: 9px;
  background: var(--white);
  font-size: .93rem;
  overflow-wrap: anywhere;
  scroll-margin-top: 66px;
}

.year-end-question-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 12px; }
.year-end-topic { display: flex; flex-wrap: wrap; gap: 5px 10px; align-items: center; color: var(--muted); font-size: .76rem; }
.year-end-topic span:first-child { padding: 1px 8px; border-radius: 4px; color: #234f39; background: #e6efe0; font-weight: 700; }
.question-share {
  min-height: 40px;
  padding: 4px 9px;
  border: 1px solid #b7c9b8;
  border-radius: 5px;
  background: #f5f8ef;
  color: var(--green);
  font: 700 .8rem var(--sans);
  cursor: pointer;
}

.question-share:hover { background: #e9f1e3; }
.question-share-status:not(:empty) { margin-top: 4px; color: var(--green); font-size: .79rem; }
.question-share-link { display: grid; gap: 3px; margin-top: 5px; color: var(--green); font-size: .8rem; }
.question-share-link input { min-width: 0; width: 100%; padding: 5px 7px; border: 1px solid #b7c9b8; border-radius: 4px; font: inherit; }
.year-end-question h4 { margin: 7px 0 8px; color: var(--forest); font-size: clamp(1.04rem, 2vw, 1.24rem); line-height: 1.5; }
.year-end-question > p + p, .year-end-question .practice-passage, .year-end-table { margin-top: 7px; }
.year-end-question .year-end-prompt { margin-top: 10px; font-weight: 700; }
.year-end-table { width: auto; min-width: min(100%, 245px); max-width: 100%; }
.year-end-table :is(th, td) { padding: 5px clamp(5px, 1vw, 10px); }
.year-end-answer { margin-top: 13px; }
.year-end-answer > summary, .year-end-basics > summary { padding: 3px 0; }
.year-end-answer-body p + p, .year-end-basics > p { margin-top: 6px; }
.year-end-goal { margin-bottom: 8px; padding: 5px 9px; border-left: 2px solid #7f9e86; background: #f2f6ec; font-size: .85rem; }
.year-end-goal strong { color: var(--green); }
.year-end-basics { margin-top: 7px; color: var(--green); font-size: .85rem; }
.year-end-basics summary { cursor: pointer; font-weight: 700; }
.year-end-basics p { color: var(--ink); }
.year-end-question .year-end-survey { margin-top: 10px; color: var(--muted); font-size: .75rem; }
.year-end-survey strong { color: var(--forest); white-space: nowrap; }
.year-end-survey span { white-space: nowrap; }
.year-end-recommendation { margin-top: 13px; padding-top: 10px; border-top: 1px solid var(--school-rule); }
.year-end-book-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 10px; margin-bottom: 5px; }
.year-end-book-heading .text-link { min-height: 34px; font-size: .78rem; }
.year-end-book-label { color: var(--green); font-size: .82rem; font-weight: 700; }
.year-end-recommendation .school-book { padding: 10px clamp(10px, 2vw, 16px); border-left: 3px solid #8bab90; background: #f8faf2; scroll-margin-top: 80px; }
.year-end-recommendation .school-book h5 { margin-top: 3px; }

.book-promotion {
  position: fixed;
  z-index: 4;
  right: calc(18px + env(safe-area-inset-right, 0px));
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  width: clamp(264px, 28.5vw, 560px);
  max-width: 55dvh;
  container-type: inline-size;
}

.book-promotion-link {
  display: grid;
  grid-template-rows: minmax(0, 1fr) clamp(44px, 13cqi, 64px);
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid #a9c1af;
  border-radius: 9px;
  background: #e9f2e4;
  box-shadow: 0 9px 28px #102c2633;
  color: var(--forest);
  text-decoration: none;
}

.book-promotion-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .84fr);
  grid-template-rows: auto minmax(0, 1fr);
  align-items: center;
  gap: 3cqi 4cqi;
  padding: 6.5cqi;
  background: radial-gradient(ellipse at 112% 27%, #fff9d8 0, transparent 62%),
    linear-gradient(145deg, #f1f6e8, #d7eadc);
}

.book-promotion-headline {
  grid-column: 1 / -1;
  padding-right: 6px;
  font-size: clamp(1.4rem, 8.9cqi, 3rem);
  font-weight: 700;
  line-height: 1.23;
  letter-spacing: -.035em;
}

.book-promotion-headline strong { color: var(--green); }

.book-promotion-title {
  font-size: clamp(.82rem, 4.15cqi, 1.33rem);
  font-weight: 700;
  line-height: 1.48;
}

.book-promotion-publisher {
  margin-top: .35em;
  color: var(--muted);
  font-size: clamp(.72rem, 3.2cqi, 1rem);
}

.book-promotion-body .book-cover-image {
  justify-self: end;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  object-position: right center;
  filter: drop-shadow(2px 5px 5px #14392c33);
}

.book-promotion-cta {
  display: grid;
  grid-auto-flow: column;
  place-content: center;
  gap: .6em;
  background: var(--gold);
  color: #282d22;
  font-size: clamp(.88rem, 4.15cqi, 1.32rem);
  font-weight: 700;
}

.book-promotion-link:hover .book-promotion-cta { background: #efc96f; }

.book-promotion-close {
  position: absolute;
  z-index: 1;
  top: -9px;
  right: -7px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #fffefa;
  border-radius: 50%;
  background: var(--deep);
  color: var(--white);
  font: 400 1.4rem/1 var(--sans);
  cursor: pointer;
}

.book-promotion-close:hover { background: var(--green); }

@media (max-width: 760px), (max-height: 520px) {
  .book-promotion {
    right: calc(13px + env(safe-area-inset-right, 0px));
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    width: clamp(225px, 64vw, 264px);
    max-width: calc(100vw - 26px);
  }

  .book-promotion-link {
    grid-template-rows: auto 44px;
    aspect-ratio: auto;
  }

  .book-promotion-body {
    grid-template-columns: minmax(0, 1fr) 54px;
    grid-template-rows: auto;
    gap: 8px;
    min-height: 100px;
    padding: 15px 17px 10px 12px;
  }

  .book-promotion-headline {
    grid-column: 1;
    padding-right: 0;
    font-size: clamp(1.06rem, 7.8cqi, 1.29rem);
  }

  .book-promotion-description { display: none; }

  .book-promotion-body .book-cover-image {
    height: auto;
    aspect-ratio: 3 / 4;
  }
}

.past-paper-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: 12px clamp(14px, 4vw, 35px);
  margin-top: 20px;
  padding: clamp(14px, 3vw, 29px);
  border: 1px solid #c6d8c6;
  border-radius: 10px;
  background: #ebf1e6;
}

.past-paper-copy h3 { margin-bottom: 6px; color: var(--forest); font-family: var(--serif); font-size: clamp(1.2rem, 2.4vw, 1.75rem); line-height: 1.5; }
.past-paper-copy p { color: var(--muted); font-size: .9rem; }
.past-paper-copy .text-link { min-height: 37px; margin-top: 3px; font-size: .82rem; }
.past-paper-cta .school-book { padding: 12px clamp(11px, 2.4vw, 21px); }

.stage-school-note {
  padding: 12px clamp(12px, 1.8vw, 18px);
  border-left: 3px solid #8eab92;
  background: #e6efe2;
}

.stage-school-note p { margin-top: 4px; }
.stage-school-note .text-link { display: inline-block; margin-top: 7px; font-size: .78rem; }

@media (max-width: 720px) {
  .year-end-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 420px) {
  .year-end-table { font-size: .77rem; }
}

.study-book-grid {
  grid-template-columns: repeat(var(--books-per-row, 3), minmax(0, 1fr));
  gap: 10px;
  margin-top: 8px;
}

[data-study-grade="2"] {
  --books-per-row: 2;
}

.study-book-grid .school-book {
  padding: clamp(12px, 1.7vw, 18px);
}

.study-book-grid .school-book h4 {
  margin: 0;
}

.study-book-grid .book-use {
  min-height: 2.9em;
  font-weight: 700;
}

.study-book-grid + .school-book,
.year-end-recommendation .school-book + .school-book { margin-top: 10px; }

@media (max-width: 440px) {
  .school-book .book-card-details :is(h4, h5) { font-size: .98rem; }
  .book-card-summary ~ .book-actions { gap: 6px; }
  .book-card-summary ~ .book-actions .button {
    min-height: 44px;
    padding-inline: 8px;
    font-size: .8rem;
  }
}

.study-book-price strong {
  font-size: 1.05rem;
  color: var(--forest);
}

.study-book-price span {
  font-size: .76rem;
}

.study-book-grid .book-actions {
  gap: 6px;
}

.study-book-grid .button {
  min-height: 39px;
  padding: 6px 10px;
  font-size: .79rem;
}

.button-retailer {
  border-color: #bfd0c0;
  background: var(--white);
  color: var(--green);
}

.button-retailer:hover {
  background: #eff3e9;
  border-color: var(--green);
}

.cost-card {
  padding: clamp(15px, 2.6vw, 25px);
  border-top: 3px solid #8ba792;
}

.cost-plan {
  color: var(--muted);
  font-size: .79rem;
}

.cost-base {
  margin-top: 6px;
  font-size: .89rem;
}

.cost-amount {
  font-variant-numeric: tabular-nums;
  line-height: 1.27;
}

.cost-amount strong {
  font-size: clamp(1.65rem, 3.3vw, 2.65rem);
  color: var(--forest);
}

.cost-amount span {
  margin-left: 3px;
  font-weight: 700;
}

.cost-period {
  color: var(--muted);
  font-size: .76rem;
}

.cost-fit {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  background: #edf3e8;
  font-size: .89rem;
}

.cost-details {
  margin-top: 9px;
  font-size: .83rem;
}

.cost-details p {
  margin-top: 6px;
}

@media (max-width: 870px) {
  .study-book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .program-grid, .visit-grid, .progress-grid, .cost-grid, .exam-body, .past-paper-cta {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }

  .progress-grid li {
    display: grid;
    grid-template-columns: 2.8em minmax(0, 1fr);
    column-gap: 4px;
    padding: 9px 12px;
  }

  .progress-grid li > p:last-child {
    grid-column: 2;
  }

  .progress-grid h4 {
    margin-top: 0;
  }

  .exam-summary {
    grid-template-columns: 2.6em minmax(0, 1fr) 8px;
    gap: 5px;
    padding-inline: 9px;
  }

  .exam-title {
    font-size: .8rem;
    line-height: 1.43;
  }

  .exam-subject {
    font-size: .8rem;
  }

  .cohort-table td, .cohort-table th {
    padding: 6px 3px;
    font-size: .74rem;
  }
}

.school-disclosure {
  margin-top: 12px;
  padding: 10px 13px;
  border: 1px solid var(--school-rule);
  border-radius: 7px;
  background: var(--white);
}

.school-disclosure summary {
  padding-block: 3px;
  color: var(--green);
  font-size: .87rem;
  font-weight: 700;
  cursor: pointer;
}

.school-disclosure[open] > summary {
  margin-bottom: 7px;
}

.admissions-summary {
  margin-top: 9px;
  font-weight: 700;
}

.course-focus { margin-top: 8px; color: var(--green); font-size: .83rem; font-weight: 700; }

@media (max-width: 440px) {
  .study-book-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .family-survey dl {
    gap: 7px;
  }
}

.life-clubs { margin-top: 19px; }
.life-clubs > h3 { margin-bottom: 8px; color: var(--forest); font-family: var(--serif); font-size: 1.38rem; }

.club-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 13px;
}

.club-lineup-with-photo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 11px; }
.club-lineup-with-photo .club-grid { grid-template-columns: minmax(0, 1fr); margin-top: 0; }
.club-photo { margin: 0; overflow: hidden; border: 1px solid var(--school-rule); border-radius: 8px; background: var(--white); }
.club-photo figcaption { display: grid; gap: 1px; padding: 8px 10px; color: var(--forest); font-size: .81rem; }
.club-photo figcaption a { color: var(--green); font-size: .75rem; text-underline-offset: 2px; }
.club-photo iframe { display: block; width: 100%; height: 230px; border: 0; }
.club-photo[data-provider="x"] iframe { height: 575px; }
.club-other .club-grid { margin-top: 6px; }

.club-card {
  --club-ink: #265546;
  --club-mist: #e9f0e5;
  --club-line: #ccdfcf;
  overflow: hidden;
  border: 1px solid var(--club-line);
  border-radius: 10px;
  background: #fffefa;
}

.club-card.club-sport {
  --club-ink: #7a4b31;
  --club-mist: #f6ecde;
  --club-line: #e7d3be;
}

.club-card[data-club-focus="stage"] {
  --club-ink: #654a78;
  --club-mist: #f1ebf4;
  --club-line: #ddd0e6;
}

.club-card[data-club-focus="language"] {
  --club-ink: #315b75;
  --club-mist: #e8f0f6;
  --club-line: #c9dbe8;
}

.club-card-heading {
  padding: 12px clamp(11px, 2vw, 20px);
  border-bottom: 1px solid var(--club-line);
  background: var(--club-mist);
  color: var(--club-ink);
}

.club-card-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; justify-content: space-between; }
.club-category { font-size: .73rem; font-weight: 700; }
.club-members { color: var(--club-ink); font-size: .76rem; }
.club-members strong { font-size: .94rem; font-variant-numeric: tabular-nums; }
.club-members span { margin-left: 5px; font-size: .7rem; }
.club-card-heading h4 { margin: 1px 0 6px; font-family: var(--serif); font-size: clamp(1.14rem, 2.3vw, 1.56rem); line-height: 1.25; }
.club-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.club-tags li { padding: 1px 6px; border: 1px solid var(--club-line); border-radius: 4px; background: #fffefa; font-size: .72rem; font-weight: 700; }
.club-card-body { padding: 12px clamp(11px, 2vw, 20px) 14px; }
.club-card-body p { font-size: .84rem; }
.club-card-body .club-headline { margin-bottom: 5px; color: #253b30; font-size: .93rem; font-weight: 700; }
.club-fact { margin-top: 4px; color: var(--muted); }
.club-fact strong { color: var(--club-ink); font-size: .75rem; }
.club-socials { display: flex; flex-wrap: wrap; gap: 5px 10px; margin: 6px 0 0; padding: 0; list-style: none; }
.club-socials a { display: inline-flex; min-height: 34px; align-items: center; color: var(--club-ink); font-size: .79rem; font-weight: 700; text-underline-offset: 3px; }

@media (max-width: 620px) {
  .club-grid, .club-lineup-with-photo { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .club-photo iframe { height: 247px; }
  .club-photo[data-provider="x"] iframe { height: 465px; }
}
