/* Classes page: follows the home page type scale (section H2 clamp(30,3.6vw,46), lead clamp(16,1.25vw,17.5), card text 15.5) */
.cl-intro{background:var(--paper);padding:clamp(56px,6.5vw,88px) 0 clamp(36px,4vw,56px)}
.cl-intro__h{max-width:40em;margin:0 auto clamp(28px,4vw,44px);text-align:center}
.cl-intro__h h2{font-size:clamp(30px,3.6vw,46px);line-height:1.15;margin:0 0 14px}
.cl-intro__h p{margin:0 auto;font-size:clamp(16px,1.25vw,17.5px);line-height:1.65;color:#42524a;max-width:36em}

.cl-jump{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.cl-jump a{display:block;padding:clamp(18px,2vw,26px) clamp(18px,2vw,28px);font-family:var(--serif);font-weight:600;font-size:clamp(20px,2vw,26px);line-height:1.2;text-decoration:none;color:#fff;transition:transform .3s ease,box-shadow .3s ease}
.cl-jump small{display:block;font-family:var(--sans);font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin-bottom:6px}
.cl-jump a:hover{transform:translateY(-8px);box-shadow:0 18px 30px rgba(20,40,30,.22)}
.j-sun{background:var(--sun);color:var(--green2)!important}.j-orange{background:var(--orange)}.j-teal{background:#2b8a9a}.j-green{background:var(--green)}

/* one block per stage */
.cl{background:var(--paper);padding:clamp(48px,6vw,84px) 0;scroll-margin-top:100px}
.cl--alt{background:var(--alt)}
.cl__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,84px);align-items:center}
.cl--r .cl__img{order:2}
.cl__img{margin:0}
.cl__img img{display:block;width:100%;aspect-ratio:4/3.2;object-fit:cover;border-radius:0}
.cl__tag{display:inline-block;margin:0 0 14px;padding:7px 14px;font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.cl--sun .cl__tag{background:var(--sun);color:var(--green2)}
.cl--orange .cl__tag{background:var(--orange)}
.cl--teal .cl__tag{background:#2b8a9a}
.cl--green .cl__tag{background:var(--green)}
.cl__txt h2{font-size:clamp(30px,3.6vw,46px);line-height:1.15;margin:0 0 14px}
.cl__txt .lead{margin:0 0 22px;font-size:clamp(16px,1.25vw,17.5px);line-height:1.65;color:#42524a;max-width:34em}
.cl__txt dl{margin:0;display:grid;gap:16px}
.cl__txt dt{font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:3px}
.cl__txt dd{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink)}
.cl__txt dd a{color:var(--green);font-weight:700}

/* enquiry button under each stage */
.cl__cta{margin:26px 0 0}
.cl__cta .pill{display:inline-block;padding:14px 30px;font-size:15.5px;text-decoration:none}

/* facilities strip: same section as home, shorter */
.fac--c .fac__more{text-align:center;margin:26px 0 0;font-weight:700}
.fac--c .fac__more a{color:var(--orange2);text-decoration:none}
.fac--c .fac__more a:hover{color:var(--green2)}
.fac--c .fac__bg h2{font-size:clamp(30px,3.6vw,46px)}

/* documents */
.cl-docs{background:var(--paper);padding:clamp(48px,6vw,84px) 0}
.cl-docs__g{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
.cl-docs__g a{display:block;text-decoration:none;border:1px solid #b9d6c4;border-radius:16px;background:#fff;padding:24px 22px;box-shadow:0 10px 30px rgba(28,90,63,.08);transition:transform .3s ease,box-shadow .3s ease}
.cl-docs__g a:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(28,90,63,.16)}
.cl-docs__g b{display:block;font-family:var(--serif);font-size:20px;color:var(--green2);margin-bottom:6px}
.cl-docs__g span{display:block;font-size:15.5px;line-height:1.5;color:#42524a}

/* faq */
.cl-faq{background:var(--alt);padding:clamp(48px,6vw,84px) 0}
.cl-faq__w{max-width:calc(860px + 2*var(--side))}
.cl-faq__l details{background:#fff;border:1px solid var(--line);margin-bottom:12px}
.cl-faq__l summary{cursor:pointer;list-style:none;padding:18px 54px 18px 22px;font-family:var(--serif);font-weight:600;font-size:clamp(17px,1.5vw,20px);color:var(--green2);position:relative}
.cl-faq__l summary::-webkit-details-marker{display:none}
.cl-faq__l summary:after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:26px;font-weight:600;color:var(--orange)}
.cl-faq__l details[open] summary:after{content:"\2212"}
.cl-faq__l details p{margin:0;padding:0 22px 20px;font-size:15.5px;line-height:1.65;color:#42524a}
.cl-faq__l details a{color:var(--green);font-weight:700}

@media (max-width:900px){
  .cl-jump{grid-template-columns:1fr 1fr}
  .cl__g{grid-template-columns:1fr}
  .cl--r .cl__img{order:0}
  .cl__img img{aspect-ratio:4/3}
  .cl-docs__g{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.cl-docs__g{grid-template-columns:1fr}}

/* academics page */
.ap-how{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px)}
.ap-how__i{border-top:3px solid var(--sun);padding-top:18px}
.ap-how__i span{display:block;font-family:var(--serif);font-size:clamp(34px,3.4vw,46px);font-weight:600;color:var(--orange);line-height:1;margin-bottom:10px}
.ap-how__i h3{font-size:clamp(20px,1.8vw,24px);margin:0 0 8px;color:var(--green2)}
.ap-how__i p{margin:0;font-size:15.5px;line-height:1.65;color:#42524a}
.ap-prog{background:var(--alt);padding:clamp(48px,6vw,84px) 0}
.ap-prog__g{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
.ap-p{background:#fff;border-top:6px solid var(--green);padding:24px 22px 26px;box-shadow:0 10px 30px rgba(28,90,63,.08)}
.ap-p--orange{border-color:var(--orange)}.ap-p--teal{border-color:#2b8a9a}.ap-p--sun{border-color:var(--sun)}
.ap-p small{display:block;font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.ap-p h3{font-size:clamp(20px,1.8vw,24px);margin:0 0 10px;color:var(--green2)}
.ap-p p{margin:0;font-size:15.5px;line-height:1.6;color:#42524a}
.ap-docs{background:var(--alt)}
.ap-more{text-align:center;margin:28px 0 0;font-weight:700}
.ap-more a{color:var(--orange2);text-decoration:none}
@media (max-width:1100px){.ap-prog__g{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.ap-how{grid-template-columns:1fr}}
@media (max-width:560px){.ap-prog__g{grid-template-columns:1fr}}
@media (max-width:420px){.cl-jump{grid-template-columns:1fr}.cl-jump a{padding:16px 18px}}
