/* ==========================================================================
   Academic pages — content blocks. Same section design as About Ying Wa;
   the text is the school's own, these rules only lay it out.
   ========================================================================== */

.ab-sub-content h2:first-child{margin-top:0!important}
.ab-sub-content h3.ab-ac-h3{margin-top:1.8em!important;font-family:var(--ab-label);font-weight:400;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ab-gold)}

/* chips (subject lists etc.) */
.ab-sub-content ul.ab-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0!important;margin-top:14px!important}
.ab-sub-content ul.ab-chips li{margin:0;padding:8px 14px 7px;border-radius:999px;background:#fff;border:1px solid var(--ab-line);font-size:14.5px;line-height:1.3;color:var(--ab-navy)}
.ab-sub-content ul.ab-chips.is-navy li{background:var(--ab-navy);border-color:var(--ab-navy);color:#fff}
.ab-sub-content ul.ab-chips.is-blue li{background:#EAF0F9;border-color:#C9D6EC;color:var(--ab-blue)}
.ab-sub-content ul.ab-chips.is-gold li{background:#FBF4E6;border-color:var(--ab-gold-soft);color:#7A5A22}

/* Overview: two stages side by side, and the language callout */
.ab-ac-stages{display:grid!important;grid-template-columns:1fr 1.25fr;gap:14px;margin-top:20px!important}
.ab-ac-stages > *{margin:0!important}
.ab-ac-stage{padding:24px 24px 22px!important;border-radius:18px;background:#fff;border:1px solid var(--ab-line)}
.ab-ac-stage.is-nss{background:var(--ab-navy);border-color:var(--ab-navy)}
.ab-ac-stage > *{margin:0!important}
.ab-ac-stage > * + *{margin-top:12px!important}
.ab-sub-content .ab-ac-stage p{font-size:15.5px;line-height:1.7}
.ab-sub-content .ab-ac-stage.is-nss p{color:#DCE4F3}
.ab-sub-content .ab-ac-stage-k{font-family:var(--ab-display)!important;font-weight:500;font-size:34px!important;line-height:1!important;color:var(--ab-navy)}
.ab-sub-content .ab-ac-stage.is-nss .ab-ac-stage-k{color:var(--ab-gold-soft)}
.ab-ac-callout{margin-top:clamp(28px,3vw,40px)!important;padding:24px 28px!important;border-left:2px solid var(--ab-gold);background:rgba(241,236,226,.6);border-radius:0 16px 16px 0}
.ab-ac-callout > *{margin:0!important}
.ab-ac-callout > * + *{margin-top:12px!important}

/* image galleries (click to enlarge) */
.ab-ac-gallery{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px!important}
.ab-ac-gallery > *{margin:0!important}
.ab-sub-content .ab-zoom img{border-radius:14px;cursor:zoom-in;transition:transform .5s var(--ab-ease),box-shadow .5s}
.ab-sub-content .ab-zoom img:hover{transform:translateY(-2px);box-shadow:0 20px 40px -24px rgba(11,34,84,.45)}
.ab-sub-content .ab-zoom a{display:block}
.ab-zoom-box{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:clamp(16px,4vw,48px);background:rgba(6,20,49,.86);opacity:0;transition:opacity .3s;cursor:zoom-out}
.ab-zoom-box.is-open{opacity:1}
.ab-zoom-box img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.ab-zoom-box button{position:absolute;right:16px;top:16px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:24px;line-height:1;cursor:pointer}

/* Subjects: S1–S3 matrix (built from the three lists) */
.ab-ac-forms{margin-top:14px!important}
.ab-ac-forms > *{margin:0!important}
.ab-ac-forms.has-matrix > .ab-ac-form{display:none}
.ab-ac-form{margin-top:14px!important}
.ab-sub-content .ab-ac-form-k{font-family:var(--ab-label);color:var(--ab-gold)}
.ab-ac-matrix{width:100%;border-collapse:separate;border-spacing:0;font-size:15px}
.ab-sub-content .ab-ac-matrix th,.ab-sub-content .ab-ac-matrix td{padding:11px 10px;border-bottom:1px solid var(--ab-line);vertical-align:middle}
.ab-sub-content .ab-ac-matrix thead th{font-family:var(--ab-label);font-size:13px;letter-spacing:.14em;color:var(--ab-gold);text-transform:none;border-bottom:1px solid var(--ab-navy);text-align:center;width:72px}
.ab-sub-content .ab-ac-matrix thead th:first-child{text-align:left;width:auto}
.ab-sub-content .ab-ac-matrix tbody th{font-weight:400;text-align:left;color:var(--ab-navy);font-family:var(--ab-sans);font-size:15px;letter-spacing:0;text-transform:none}
.ab-ac-matrix td{text-align:center}
.ab-ac-matrix .yes{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--ab-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14.5 7' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.ab-ac-matrix .no{display:inline-block;width:8px;height:1px;background:var(--ab-line);vertical-align:middle}
.ab-ac-matrix tr.is-change th{color:var(--ab-blue)}
.ab-ac-matrix tr.is-change th::after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-radius:50%;background:var(--ab-gold);vertical-align:middle}
.ab-ac-matrix tbody tr:hover{background:rgba(241,236,226,.55)}

/* Library: three figures */
.ab-ac-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px!important}
.ab-ac-stats > *{margin:0!important}
.ab-ac-stat{padding:20px 20px 18px!important;border-radius:16px;background:#fff;border:1px solid var(--ab-line)}
.ab-ac-stat:first-child{background:var(--ab-navy);border-color:var(--ab-navy)}
.ab-ac-stat > *{margin:0!important}
.ab-sub-content .ab-ac-big{font-family:var(--ab-display);font-weight:500;font-size:clamp(30px,3vw,44px);line-height:1;color:var(--ab-navy)}
.ab-sub-content .ab-ac-lbl{margin-top:8px!important;font-size:13.5px;line-height:1.4;color:var(--ab-muted)}
.ab-sub-content .ab-ac-stat:first-child .ab-ac-big{color:#fff}
.ab-sub-content .ab-ac-stat:first-child .ab-ac-lbl{color:#C9D5EC}

/* Results: scorer cards */
.ab-ac-scorers{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:18px!important}
.ab-ac-scorers > *{margin:0!important}
.ab-ac-scorer{position:relative;padding:26px 26px 24px!important;border-radius:20px;background:#fff;border:1px solid var(--ab-line);overflow:hidden}
.ab-ac-scorer.is-super{background:var(--ab-navy);border-color:var(--ab-navy)}
.ab-ac-scorer > *{margin:0!important}
.ab-ac-scorer > * + *{margin-top:10px!important}
.ab-sub-content .ab-ac-seal{position:absolute;right:18px;top:18px;margin:0!important;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--ab-display);font-weight:600;font-size:20px;color:#7A5A22;background:radial-gradient(circle at 35% 30%,#F6E7C6,#D9BC85 70%);box-shadow:0 0 0 4px rgba(217,188,133,.25)}
.ab-sub-content h3.ab-ac-name{margin-top:0!important;max-width:calc(100% - 70px);font-size:clamp(22px,2vw,27px)}
.ab-sub-content .ab-ac-scorer p:not(.ab-ac-seal){font-size:15px;line-height:1.7}
.ab-sub-content .is-super h3.ab-ac-name{color:#fff}
.ab-sub-content .is-super p:not(.ab-ac-seal){color:#DCE4F3}

/* Results / university: year tabs (built by the script) */
.ab-ac-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:clamp(36px,4vw,56px) 0 0;padding:5px;border-radius:999px;background:var(--ab-paper-2);width:max-content;max-width:100%}
.ab-ac-tabs button{min-height:40px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:var(--ab-navy);font-family:var(--ab-label);font-size:14px;letter-spacing:.1em;cursor:pointer;transition:background-color .25s,color .25s}
.ab-ac-tabs button[aria-selected="true"]{background:var(--ab-navy);color:#fff}
.ab-ac-years > *{margin:0!important}
.ab-ac-years.has-tabs > [hidden]{display:none!important}
.ab-sub-content .ab-ac-dse-h{margin-top:1.2em!important;font-size:clamp(26px,2.4vw,34px)}

/* 332A comparison and Level 5 bars */
.ab-ac-compare{display:grid!important;gap:12px;margin-top:14px!important}
.ab-ac-compare > *{margin:0!important}
.ab-sub-content .ab-ac-cmp{position:relative;display:grid;grid-template-columns:110px 1fr;align-items:center;column-gap:16px;font-size:15px;color:var(--ab-muted)}
.ab-ac-cmp b{font-family:var(--ab-display);font-weight:500;font-size:clamp(30px,3vw,42px);line-height:1;color:var(--ab-navy)}
.ab-ac-cmp .bar{grid-column:1 / -1;display:block;height:14px;margin-top:8px;border-radius:99px;background:var(--ab-paper-2);overflow:hidden}
.ab-ac-cmp .bar i{display:block;height:100%;width:var(--w);border-radius:99px;background:var(--ab-line);transform-origin:0 50%;transition:transform 1.4s cubic-bezier(.65,0,.25,1)}
.ab-ac-cmp.is-yw .bar i{background:var(--ab-navy)}
.ab-ac-cmp.is-hk .bar i{background:#B9C2D3}
.ab-ac-bars{margin-top:16px}
.ab-ac-bars .row{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr);column-gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ab-line)}
.ab-ac-bars .row > span:first-child{font-size:15px;color:var(--ab-navy)}
.ab-ac-bars .pair{display:grid;gap:5px}
.ab-ac-bars .b{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;font-size:13px;color:var(--ab-muted);font-variant-numeric:tabular-nums}
.ab-ac-bars .b i{display:block;height:10px;width:var(--w);border-radius:99px;transform-origin:0 50%;transition:transform 1.3s cubic-bezier(.65,0,.25,1) var(--d,0ms)}
.ab-ac-bars .b.hk i{background:#B9C2D3}
.ab-ac-bars .b.yw i{background:var(--ab-navy)}
.ab-ac-bars .b.yw{color:var(--ab-navy);font-weight:500}
.ab-ac-legend{display:flex;gap:18px;margin-top:12px;font-size:13px;color:var(--ab-muted)}
.ab-ac-legend span::before{content:"";display:inline-block;width:14px;height:8px;margin-right:8px;border-radius:99px;background:var(--c);vertical-align:middle}
.is-pending .bar i,.is-pending .b i{transform:scaleX(0)}
.ab-sub-content .ab-ac-l5{margin-top:14px!important}
.ab-sub-content .ab-ac-l5 table{font-size:14.5px}
.ab-sub-content details.ab-ac-table{margin-top:14px}
.ab-sub-content details.ab-ac-table summary{cursor:pointer;font-family:var(--ab-label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-gold)}

/* University offer: the poster */
.ab-sub-content .ab-ac-poster{margin-top:14px!important}
.ab-sub-content .ab-ac-poster img{width:100%;height:auto}

@media (prefers-reduced-motion:reduce){.ab-ac-cmp .bar i,.ab-ac-bars .b i{transition:none}}
@media (max-width:760px){
  .ab-ac-stages,.ab-ac-gallery{grid-template-columns:1fr}
  .ab-ac-stats{grid-template-columns:1fr}
  .ab-ac-bars .row{grid-template-columns:1fr;row-gap:6px}
  .ab-sub-content .ab-ac-matrix th,.ab-sub-content .ab-ac-matrix td{padding:9px 4px}
  .ab-sub-content .ab-ac-matrix thead th{width:40px}
  .ab-sub-content .ab-ac-matrix tbody th{font-size:14px}
}
/* lightbox with caption and arrows */
.ab-zoom-fig{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:default}
.ab-zoom-fig img{max-height:calc(100vh - 140px)}
.ab-zoom-fig figcaption{color:#E4EAF6;font-size:15px;text-align:center;max-width:60ch}
.ab-zoom-box .pv,.ab-zoom-box .nx{top:50%!important;right:auto;margin-top:-22px;font-size:30px!important}
.ab-zoom-box .pv{left:16px}
.ab-zoom-box .nx{left:auto;right:16px!important}
.ab-zoom-box .ct{position:absolute;left:50%;top:22px;transform:translateX(-50%);color:#C9D5EC;font-family:var(--ab-label);font-size:13px;letter-spacing:.12em}
