/* Prowess theme: component styles on top of theme.json. */
:root{--pu-edge:clamp(20px,3vw,28px)}
html{scroll-padding-top:120px}
body{-webkit-font-smoothing:antialiased;overflow-x:hidden}
:where(img,svg,video){max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--wp--preset--color--gold);outline-offset:3px;border-radius:4px}
.pu-main{margin-top:0}
.pu-main > * + *{margin-block-start:0}
.wp-site-blocks > * + *{margin-block-start:0}
.pu-muted{color:var(--wp--preset--color--muted)}

/* ---------- buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link{background:transparent;border:2px solid var(--wp--preset--color--line);color:var(--wp--preset--color--ink);padding:13px 22px}
.wp-block-button.is-style-outline > .wp-block-button__link:hover{border-color:var(--wp--preset--color--navy);background:transparent;color:var(--wp--preset--color--ink)}
.pu-btn-navy .wp-block-button__link{background:var(--wp--preset--color--navy)}
.pu-btn-navy .wp-block-button__link:hover{background:#20355F}
.wp-block-button__link{white-space:nowrap}

/* ---------- header ---------- */
.pu-site-header{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:50}
.pu-util{background:var(--wp--preset--color--navy);color:#C9D3E8;font-size:14px}
.pu-util__links{display:flex;justify-content:flex-end;gap:26px;margin:0;padding:9px 0}
.pu-util a{color:inherit;text-decoration:none}.pu-util a:hover{color:#fff}
/* Solid background on purpose: backdrop-filter would trap the full-screen mobile menu inside the header. */
.pu-header{background:#fff;border-bottom:1px solid var(--wp--preset--color--line)}
.pu-header__bar{min-height:78px;gap:24px}
.pu-header__nav{gap:18px}
@media (max-width:480px){.pu-header__cta .wp-block-button__link{padding:12px 16px;font-size:15px}.pu-header__nav{gap:8px}}
.pu-brand{gap:12px}
.pu-brand .wp-block-site-logo img{max-height:52px;width:auto}
.pu-brand:has(.wp-block-site-logo img) .pu-brand__title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pu-brand__title,.pu-brand__title a{color:var(--wp--preset--color--ink);text-decoration:none;margin:0}
.pu-nav .wp-block-navigation-item__content{padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--wp--preset--color--ink)}
.pu-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover{background:var(--wp--preset--color--mist)}
.pu-nav .current-menu-item > .wp-block-navigation-item__content,.pu-nav .current-menu-ancestor > .wp-block-navigation-item__content{box-shadow:inset 0 -3px 0 var(--wp--preset--color--gold)}
.pu-nav.wp-block-navigation .wp-block-navigation__submenu-container{border:1px solid var(--wp--preset--color--line)!important;border-radius:12px;box-shadow:0 18px 40px -18px rgba(22,38,74,.35);padding:8px;min-width:250px!important}
.pu-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-weight:500;font-size:15px;padding:9px 12px}
.pu-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--wp--preset--color--mist);color:var(--wp--preset--color--navy)}
.pu-nav .wp-block-navigation__submenu-icon{margin-left:4px}
.pu-nav .wp-block-navigation__responsive-container-open{padding:8px}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open{padding:24px var(--pu-edge)}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:flex-start;gap:4px}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:18px;padding:8px 0}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{border:0!important;box-shadow:none;padding:0 0 8px 14px}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:16px;padding:6px 0}

/* ---------- sections ---------- */
.pu-section{padding-block:clamp(64px,8vw,96px)}
.pu-section--mist{background:var(--wp--preset--color--mist)}
.pu-section--navy{background:var(--wp--preset--color--navy);color:#C9D3E8}
.pu-section--navy :where(h1,h2,h3){color:#fff}
.pu-section--navy .pu-lede{color:#AEBBD6}
.pu-section--flush{padding-top:0}
.pu-sechead{margin-bottom:clamp(28px,4vw,40px)!important;gap:30px}
.pu-sechead > .wp-block-column:last-child{text-align:right}
.pu-lede{font-size:var(--wp--preset--font-size--large);color:var(--wp--preset--color--muted);max-width:56ch;margin-top:14px}
.pu-more{margin-top:34px}
.pu-arrow a{font-weight:600;text-decoration-color:var(--wp--preset--color--gold);text-decoration-thickness:2px;text-underline-offset:4px}
.pu-duo,.pu-trio{gap:24px}
.pu-prose{max-width:70ch}
.pu-prose > * + *{margin-top:1em}

/* ---------- hero ---------- */
.pu-hero{background:var(--wp--preset--gradient--night);color:#DCE4F4;overflow:hidden;padding-block:clamp(56px,7vw,80px) clamp(64px,8vw,92px)}
.pu-hero__cols{gap:48px}
.pu-hero__title{color:#fff}
.pu-hero .pu-lede{color:#C9D3E8;max-width:36ch;margin:24px 0 34px}
.pu-hero .wp-block-button.is-style-outline > .wp-block-button__link{border-color:rgba(255,255,255,.45);color:#fff}
.pu-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.pu-fine{margin-top:34px;font-size:15px;color:#AEBBD6;max-width:40ch}
.pu-hero .pu-map__caption{color:#AEBBD6}

/* ---------- recognition strip ---------- */
.pu-standing{border-bottom:1px solid var(--wp--preset--color--line);padding-block:26px}
.pu-standing__cols{gap:24px 40px}
.pu-standing p{font-size:16px;color:var(--wp--preset--color--muted);margin:0}
.pu-standing strong{color:var(--wp--preset--color--ink);font-weight:600}
.pu-badges{display:flex;gap:10px;flex-wrap:wrap}
.pu-badges span{font:700 14px var(--wp--preset--font-family--display);letter-spacing:.04em;color:var(--wp--preset--color--navy);border:1.5px solid var(--wp--preset--color--line);border-radius:10px;padding:9px 14px;background:var(--wp--preset--color--mist)}
.pu-standing__link a{font-weight:600;text-decoration-color:var(--wp--preset--color--gold);text-decoration-thickness:2px;text-underline-offset:4px}

/* ---------- welcome ---------- */
.pu-welcome{gap:24px;align-items:stretch!important}
.pu-welcome > .wp-block-column{display:flex}
.pu-welcome > .wp-block-column > *{flex:1}
.pu-president{background:var(--wp--preset--color--gold-soft);border-radius:22px;padding:36px;display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.pu-quote{margin:0;padding:0}
.pu-quote p{color:var(--wp--preset--color--ink)}
.pu-quote p::before{content:"\201C"}.pu-quote p::after{content:"\201D"}
.pu-quote cite{display:block;margin-top:18px;font:600 15px var(--wp--preset--font-family--body);font-style:normal;color:var(--wp--preset--color--muted)}

/* ---------- steps + grading ---------- */
.pu-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:s}
.pu-steps li{counter-increment:s;padding:0 22px 0 0;position:relative;font-size:15.5px;color:var(--wp--preset--color--muted)}
.pu-steps li strong{display:block;font:700 19px/1.25 var(--wp--preset--font-family--display);color:var(--wp--preset--color--ink);margin-bottom:8px}
.pu-steps li::before{content:counter(s);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid var(--c);color:var(--c);font:800 21px var(--wp--preset--font-family--display);margin-bottom:20px;position:relative;z-index:1}
.pu-steps li:not(:last-child)::after{content:"";position:absolute;top:26px;left:52px;right:0;height:2px;background:linear-gradient(90deg,var(--c),var(--c2))}
.pu-steps li:nth-child(1){--c:#B8862B;--c2:#E4572E}.pu-steps li:nth-child(2){--c:#E4572E;--c2:#0E9F9A}.pu-steps li:nth-child(3){--c:#0E9F9A;--c2:#6A4BD8}.pu-steps li:nth-child(4){--c:#6A4BD8;--c2:#3D9A4B}.pu-steps li:nth-child(5){--c:#3D9A4B;--c2:#3D9A4B}
.pu-weights{margin-top:48px;background:#fff;border:1px solid var(--wp--preset--color--line);border-radius:14px;padding:26px 28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:30px;align-items:center}
.pu-weights p{color:var(--wp--preset--color--muted);font-size:16px;margin:0}
.pu-weights strong{color:var(--wp--preset--color--ink)}
.pu-bar{display:flex;height:54px;border-radius:12px;overflow:hidden;font-weight:700;font-size:14px;color:#fff}
.pu-bar div{display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.2;text-align:center;padding:0 6px;min-width:0}
.pu-bar small{font-weight:500;opacity:.9;font-size:12.5px}

/* ---------- scholarship + honours ---------- */
.pu-scholar{background:var(--wp--preset--color--gold-soft);border-radius:22px;padding:clamp(28px,4vw,48px);height:100%;position:relative;overflow:hidden}
.pu-scholar h2,.pu-scholar h3{font-size:clamp(26px,2.8vw,38px);max-width:18ch}
.pu-scholar p{max-width:46ch}
.pu-scholar::after{content:"";position:absolute;right:-50px;bottom:-50px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(184,134,43,.35) 0 40%,rgba(184,134,43,.18) 41% 100%)}
.pu-honours,.pu-card-box{border:1px solid var(--wp--preset--color--line);border-radius:22px;padding:clamp(24px,3.5vw,40px);background:#fff;height:100%}
.pu-honours h3{font-size:30px}
.pu-honours__list{list-style:none;margin:22px 0 0;padding:0}
.pu-honours__list li{border-top:1px solid var(--wp--preset--color--line)}
.pu-honours__list a{display:block;padding:16px 0;text-decoration:none;color:var(--wp--preset--color--muted);font-size:15px}
.pu-honours__list strong{display:block;font:700 18px var(--wp--preset--font-family--display);color:var(--wp--preset--color--ink)}
.pu-honours__list a:hover strong{color:var(--wp--preset--color--gold)}
.pu-duo > .wp-block-column,.pu-trio > .wp-block-column{display:flex;flex-direction:column}
.pu-duo > .wp-block-column > .wp-block-group,.pu-trio > .wp-block-column > .wp-block-group{flex:1}

/* ---------- FAQ ---------- */
.pu-faq-cols{gap:48px}
.pu-faq .wp-block-details{padding:0}
.pu-faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font:700 19px/1.35 var(--wp--preset--font-family--display);color:var(--wp--preset--color--ink);position:relative}
.pu-faq summary::-webkit-details-marker{display:none}
.pu-faq summary::after{content:"";position:absolute;right:6px;top:28px;width:12px;height:12px;border-right:2.5px solid var(--wp--preset--color--gold);border-bottom:2.5px solid var(--wp--preset--color--gold);transform:rotate(45deg);transition:transform .2s}
.pu-faq details[open] summary::after{transform:rotate(-135deg);top:33px}
.pu-faq details p{padding:0 0 22px;margin:0;color:var(--wp--preset--color--muted);max-width:70ch}

/* ---------- news ---------- */
.pu-news .wp-block-post-template{gap:24px}
.pu-news .wp-block-post{border-top:3px solid var(--wp--preset--color--line);padding-top:18px}
.pu-news .wp-block-post:nth-child(4n+1){border-color:#6A4BD8}.pu-news .wp-block-post:nth-child(4n+2){border-color:#0E9F9A}.pu-news .wp-block-post:nth-child(4n+3){border-color:#E4572E}.pu-news .wp-block-post:nth-child(4n+4){border-color:#3D9A4B}
.pu-news__title{font-size:19px;margin-top:8px}
.pu-news__title a{text-decoration:none;color:var(--wp--preset--color--ink)}.pu-news__title a:hover{color:var(--wp--preset--color--gold)}
.pu-news .wp-block-post-featured-image img{border-radius:12px}
.pu-news .wp-block-query-pagination{margin-top:40px}

/* ---------- CTA ---------- */
.pu-cta{background:var(--wp--preset--gradient--dusk);color:#DCE4F4;border-radius:26px;padding:clamp(36px,5vw,64px)}
.pu-cta h2{color:#fff;max-width:20ch}
.pu-cta p{margin-top:14px;max-width:48ch}
.pu-cta__actions{justify-content:flex-end}
.pu-cta .wp-block-button.is-style-outline > .wp-block-button__link{border-color:rgba(255,255,255,.45);color:#fff}
.pu-cta .wp-block-button.is-style-outline > .wp-block-button__link:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* ---------- inner page hero ---------- */
.pu-page-hero{background:var(--wp--preset--color--navy);color:#C9D3E8;padding-block:clamp(48px,6vw,64px);position:relative;overflow:hidden}
.pu-page-hero::after{content:"";position:absolute;top:0;right:0;bottom:0;width:30%;background:linear-gradient(90deg,#2B7FD9 0 14.28%,#3D9A4B 14.28% 28.56%,#6A4BD8 28.56% 42.84%,#E4572E 42.84% 57.12%,#9C4F2A 57.12% 71.4%,#C23D86 71.4% 85.68%,#0E9F9A 85.68%);opacity:.85;pointer-events:none}
.pu-page-hero > *{position:relative;z-index:1}
.pu-page-hero h1,.pu-page-hero .wp-block-post-title,.pu-page-hero .wp-block-query-title{max-width:20ch}
.pu-page-hero .pu-lede{max-width:56ch}
.pu-page-hero h1,.pu-page-hero .wp-block-post-title,.pu-page-hero .wp-block-query-title{color:#fff;font-size:clamp(34px,3.8vw,54px)}
.pu-page-hero .pu-lede{color:#C9D3E8;margin-top:16px}
.pu-page-hero .wp-block-post-date{color:#AEBBD6;margin-top:12px}
.pu-crumbs{font-size:14px;color:#AEBBD6;margin:0 0 16px}
.pu-crumbs a{color:inherit;text-decoration:none}.pu-crumbs a:hover{color:#fff}

/* ---------- about ---------- */
.pu-mvp{border-radius:18px;padding:26px 28px;background:var(--wp--preset--color--mist);border-top:6px solid var(--c)}
.pu-mvp + .pu-mvp{margin-top:16px}
.pu-mvp h3{margin-bottom:8px}.pu-mvp p{color:var(--wp--preset--color--muted);font-size:16px;margin:0}
.pu-mvp--edu{--c:#2B7FD9}.pu-mvp--social{--c:#6A4BD8}.pu-mvp--gold{--c:#B8862B}
.pu-status-cols{gap:20px}
.pu-status{border:1px solid var(--wp--preset--color--line);border-radius:18px;padding:28px;background:#fff}
.pu-status h3{margin:14px 0 10px}.pu-status ul{color:var(--wp--preset--color--muted);font-size:15.5px;padding-left:18px}
.pu-kind{display:inline-block;font-size:13px;font-weight:700;padding:5px 10px;border-radius:999px;margin:0}
.pu-kind--edu{background:#E3EEFB;color:#1B5FA8}.pu-kind--tech{background:#E0F4F3;color:#0B6E6A}.pu-kind--social{background:#EDE8FB;color:#5237B5}
.pu-callout{border-left:4px solid var(--wp--preset--color--gold);background:var(--wp--preset--color--gold-soft);padding:20px 24px;border-radius:0 14px 14px 0;max-width:80ch;margin-top:28px!important}
.pu-section > h3,.pu-section .wp-block-heading + .pu-docs{margin-top:44px}
.pu-checks{list-style:none;padding:0;margin:0}
.pu-checks li{position:relative;padding:0 0 16px 34px}
.pu-checks li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:#3D9A4B}
.pu-checks li::after{content:"";position:absolute;left:7px;top:7px;width:5px;height:9px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.pu-note{font-size:14px;color:var(--wp--preset--color--muted);background:var(--wp--preset--color--mist);border-radius:10px;padding:12px 14px}

/* ---------- programme page ---------- */
.pu-programme-hero{background:var(--pu-fac,var(--wp--preset--color--navy));color:#fff;padding-block:clamp(40px,5vw,56px) clamp(64px,7vw,88px)}
.pu-programme-hero__cols{gap:40px}
.pu-programme-hero .wp-block-post-title{color:#fff;font-size:clamp(34px,3.6vw,52px)}
.pu-programme-hero .pu-crumbs,.pu-programme-hero .pu-crumbs a{color:rgba(255,255,255,.85)}
.pu-programme-hero__lede{font-size:19px;margin-top:16px;opacity:.95;max-width:52ch}
.pu-programme-hero__lede .wp-block-post-excerpt__more-text{display:none}
.pu-programme-facts{margin-top:-40px!important;position:relative;z-index:2}
.pu-programme-body{padding-block:56px clamp(64px,8vw,96px)}
.pu-programme-body__cols{gap:48px}
.pu-programme-body .pu-related{margin-top:clamp(56px,7vw,88px)}
.pu-prose h2{font-size:30px;margin-top:44px}
.pu-prose h2:first-child{margin-top:0}
.pu-featured img{border-radius:16px}

/* ---------- footer ---------- */
.pu-footer{background:var(--wp--preset--color--navy-deep);color:#AEBBD6;font-size:15px;padding-top:64px}
.pu-footer a{color:inherit;text-decoration:none}.pu-footer a:hover{color:#fff}
.pu-footer__cols{gap:40px;padding-bottom:40px}
.pu-footer__title,.pu-footer__title a{color:#fff;font:700 19px var(--wp--preset--font-family--display);margin-bottom:12px}
.pu-footer__heading{color:#fff;font-size:16px;margin:0 0 14px}
.pu-footer__links{list-style:none;padding:0;margin:0}
.pu-footer__links li{margin:7px 0}
.pu-footer__legal{border-top:1px solid rgba(255,255,255,.1);padding:20px 0 26px;font-size:14px}
.pu-footer__legal p{margin:0}.pu-footer__legal a + a{margin-left:14px}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .pu-steps{grid-template-columns:1fr;gap:26px}
  .pu-steps li{padding:0 0 0 76px;min-height:52px}
  .pu-steps li::before{position:absolute;left:0;top:0;margin:0}
  .pu-steps li:not(:last-child)::after{left:25px;top:52px;bottom:-26px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,var(--c),var(--c2))}
  .pu-weights{grid-template-columns:1fr}
  .pu-page-hero::after{width:14%}
}
@media (max-width:781px){
  .pu-sechead > .wp-block-column:last-child{text-align:left}
  .pu-cta__actions{justify-content:flex-start}
  .pu-bar small{display:none}
  .pu-util__links{justify-content:space-between}
  .pu-programme-facts{margin-top:-28px!important}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* No video yet (for example before media is imported): the welcome takes the whole row. */
.pu-welcome:not(:has(.pu-video)) > .wp-block-column:first-child{display:none}
.pu-welcome:not(:has(.pu-video)) > .wp-block-column{flex-basis:100%!important}

/* Text that is narrower than the 1200px column starts at the column's left edge instead of being centred. */
.pu-page-hero > :is(h1,.wp-block-post-title,.wp-block-query-title,.pu-lede,.pu-crumbs,.wp-block-post-date),
.pu-section > .pu-callout{margin-left:max(0px,calc((100% - 1200px) / 2))!important;margin-right:auto!important}

/* Mobile menu: a left-aligned list is easier to scan than the desktop's right alignment. */
.pu-nav .wp-block-navigation__responsive-container.is-menu-open{--navigation-layout-justification-setting:flex-start;--navigation-layout-justify:flex-start;--navigation-layout-align:flex-start}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content,.wp-block-navigation__container,.wp-block-navigation-item){align-items:flex-start!important;text-align:left}
.pu-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:22px}
