/* site.css: document base, header, footer and the responsive layer. Loaded on every page, after the page stylesheet. */

body{margin:0;background:#fff;color:#23004c;font-family:"Montserrat","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-wrap:pretty}
*{box-sizing:border-box}
a{color:#7200d7;text-decoration:none}
a:hover{color:#57009e}
/* ================= RESPONSIVE (tablet + mobile) ================= */
@media (max-width:1024px){
[style*="padding:0 40px"], [style*="padding: 0 40px"]{padding-left:28px !important;padding-right:28px !important}
[style*="max-width:1280px"]{max-width:100% !important}
}
/* prevent any accidental horizontal scroll */
body{overflow-x:hidden}
img,video{max-width:100%;height:auto}
/* ---- footer: the six disciplines, on light grey ---- */
.foot-top{display:grid;grid-template-columns:1.1fr 2.9fr;gap:52px;
  padding-bottom:34px;border-bottom:1px solid rgba(35,0,76,.13)}
.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 32px}
.foot-head{display:block;margin-bottom:13px;text-decoration:none}
.foot-head:hover{color:#23004c}
.foot-links{display:flex;flex-direction:column;gap:9px}
.foot-links a{font-size:13.5px;color:#4a3a66;text-decoration:none}
.foot-links a:hover{color:#b8440a}
.foot-studio{display:flex;flex-wrap:wrap;gap:10px 26px;padding:22px 0 4px;
  border-bottom:1px solid rgba(35,0,76,.13)}
.foot-studio a{font-size:13.5px;font-weight:600;color:#23004c;text-decoration:none}
.foot-studio a:hover{color:#b8440a}
@media (max-width:1060px){ .foot-top{grid-template-columns:1fr;gap:34px} }
@media (max-width:720px){ .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:430px){ .foot-cols{grid-template-columns:1fr} }
/* ================= HEADER ================= */
.sh{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);border-bottom:1px solid rgba(35,0,76,.1)}
.sh-in{max-width:1280px;margin:0 auto;padding:0 40px;height:96px;
  display:flex;align-items:center;gap:26px}
.sh-logo{flex:none;display:flex;align-items:center;text-decoration:none}
.sh-logo img{height:54px;width:auto;display:block}
/* the links sit in one grey capsule; each link is a smaller capsule of the same shape,
   whose colour field rises from its own bottom edge, so the motion starts where the hand is */
.sh-nav{margin:0 auto;display:flex;align-items:center;gap:2px;padding:5px;
  background:#f1f1f4;border-radius:100px;box-shadow:inset 0 0 0 1px rgba(35,0,76,.08)}
.navlink{position:relative;overflow:hidden;height:46px;padding:0 17px;border-radius:100px;
  display:inline-flex;flex-direction:row;align-items:center;justify-content:center;
  gap:8px;white-space:nowrap;color:#23004c;text-decoration:none;
  transition:transform .26s cubic-bezier(.34,1.3,.42,1)}
.tl-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:100px;
  background:linear-gradient(160deg,#3c0082 0%,#2b005c 58%,#1d003c 100%);
  transform:translateY(101%);transition:transform .34s cubic-bezier(.65,0,.35,1)}
.tl-ico{position:relative;display:inline-flex;color:#5a4677;
  transition:color .24s ease,transform .34s cubic-bezier(.34,1.3,.42,1)}
.tl-lbl{position:relative;font-size:13px;font-weight:600;letter-spacing:-.008em;
  transition:color .24s ease}
.navlink:hover .tl-fill{transform:translateY(0)}
.navlink:hover .tl-ico{color:#ff9333;transform:translateY(-1px) scale(1.07)}
.navlink:hover .tl-lbl{color:#fff}
.navlink.on .tl-fill{transform:translateY(0);
  background:linear-gradient(160deg,#c94c0b 0%,#b8440a 58%,#8e3106 100%)}
.navlink.on .tl-ico,.navlink.on .tl-lbl{color:#fff}
.navlink:focus-visible{outline:2px solid #7200d7;outline-offset:3px}
.sh-right{flex:none;display:flex;align-items:center;gap:16px}
/* three bars that fold into a cross */
.sh-burger{display:none;flex:none;width:44px;height:44px;padding:0;border:0;
  border-radius:11px;background:#f1f1f4;box-shadow:inset 0 0 0 1px rgba(35,0,76,.08);
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center}
.sh-bar{display:block;width:19px;height:2px;border-radius:2px;background:#23004c;
  transition:transform .3s cubic-bezier(.65,0,.35,1),opacity .2s ease}
.sh-bar+.sh-bar{margin-top:5px}
.sh.open .sh-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sh.open .sh-bar:nth-child(2){opacity:0}
.sh.open .sh-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.sh-drawer{display:none}
.sh-dnav{display:flex;flex-direction:column}
.sh-dlink{display:flex;align-items:center;gap:14px;padding:15px 0;text-decoration:none;
  color:#fff;font-size:22px;font-weight:700;letter-spacing:-.026em;
  border-bottom:1px solid rgba(246,241,253,.18)}
.sh-dlink svg{color:#cbaaf7;flex:none}
.sh-dlink.on,.sh-dlink.on svg{color:#ff9333}
.sh-dfoot{margin-top:26px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.sh-dmail{font-size:11.5px;letter-spacing:.06em;color:#cbaaf7;text-decoration:none}
@media (max-width:1080px){
  /* backdrop-filter makes the header a containing block for position:fixed,
     which clipped the drawer to the bar; the ground is 97% opaque anyway */
  .sh{backdrop-filter:none}
  .sh-in{height:64px;padding:0 20px;gap:14px}
  .sh-logo img{height:40px}
  .sh-nav,.sh-right{display:none}
  .sh-burger{display:flex}
  .sh-drawer{display:block;position:fixed;left:0;right:0;top:64px;bottom:0;
    background:#23004c;padding:26px 22px 30px;overflow-y:auto;
    opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .28s ease,transform .32s cubic-bezier(.65,0,.35,1),visibility 0s .32s}
  .sh.open .sh-drawer{opacity:1;visibility:visible;transform:translateY(0);
    transition-delay:0s,0s,0s}
}
@media (prefers-reduced-motion:reduce){
  .navlink,.tl-fill,.tl-ico,.tl-lbl,.sh-bar,.sh-drawer{transition:none}
}

/* ================= RESPONSIVE LAYER =================
   Matches the inline style text used in the page markup, e.g. style="display:grid;grid-template-columns:1.4fr 1fr".
   Keep inline styles in that compact form (no space after the colon) or these rules will not apply. */
@media (max-width:900px){
/* headers / hero / section grids: any two-plus column fr layout collapses to one column */
[style*="grid-template-columns:1fr 1fr"],
[style*="grid-template-columns:1.1fr .9fr"],
[style*="grid-template-columns:1.4fr 1fr"],
[style*="grid-template-columns:1.15fr .85fr"],
[style*="grid-template-columns:1.12fr .88fr"],
[style*="grid-template-columns:1.05fr .95fr"],
[style*="grid-template-columns:1.04fr .96fr"],
[style*=".75fr 1.25fr"],
[style*=".9fr 1.1fr"],
[style*="grid-template-columns:400px 1fr"],
[style*="grid-template-columns:220px 1fr"],
[style*="grid-template-columns:1fr 280px"],
[style*="grid-template-columns:1.4fr 1fr 1fr 1fr"]{
  grid-template-columns:1fr !important;gap:28px !important
}
aside[style*="position:sticky"]{position:static !important}
[style*="grid-template-columns:220px 1fr"] > div{border-right:0 !important;border-bottom:1px solid rgba(35,0,76,.1) !important}
[style*="grid-template-columns:1.25fr 1fr 1fr 1fr 1fr"],
[style*="grid-template-columns:repeat(4,1fr)"],
[style*="grid-template-columns:repeat(4,minmax(0,1fr))"],
[style*="grid-template-columns:repeat(3,1fr)"],
[style*="grid-template-columns:repeat(3,minmax(0,1fr))"],
[style*="grid-template-columns:repeat(5,1fr)"]{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:24px !important
}
[style*="grid-template-columns:repeat(2,minmax(0,1fr))"]{
  gap:24px !important
}
[style*="grid-template-columns:repeat(auto-fit,minmax(272px,1fr))"],
[style*="grid-template-columns:repeat(auto-fill,minmax(300px,1fr))"]{
  grid-template-columns:1fr !important
}

/* big display type */
[style*="font-size:76px"]{font-size:42px !important}
[style*="font-size:62px"]{font-size:38px !important}
[style*="font-size:58px"]{font-size:36px !important}
[style*="font-size:54px"]{font-size:34px !important}
[style*="font-size:52px"]{font-size:33px !important}
[style*="font-size:48px"]{font-size:31px !important}
[style*="font-size:42px"]{font-size:28px !important}
[style*="font-size:40px"]{font-size:27px !important}
[style*="font-size:38px"]{font-size:26px !important}
[style*="font-size:34px"]{font-size:24px !important}
[style*="font-size:26px"]{font-size:21px !important}
[style*="font-size:23px"]{font-size:19px !important}

/* fixed-width blocks become fluid */
[style*="width:760px"],[style*="width:660px"],[style*="width:640px"],
[style*="width:620px"],[style*="width:600px"],[style*="width:560px"],
[style*="width:540px"],[style*="width:520px"],[style*="width:430px"]{
  width:100% !important;max-width:100% !important
}

}
@media (max-width:640px){
[style*="padding:0 40px"], [style*="padding: 0 40px"]{padding-left:20px !important;padding-right:20px !important}
h1,[style*="font-weight:700;font-size"]{letter-spacing:-.02em !important}
[style*="grid-template-columns:repeat(2,minmax(0,1fr))"]{
  grid-template-columns:1fr !important
}
[style*="display:flex;flex-wrap:wrap;gap"]{row-gap:14px !important}
table{display:block;overflow-x:auto;white-space:nowrap}
}

/* ---- accessibility: skip link, visible only on keyboard focus ---- */
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;background:#23004c;color:#fff;
  font-size:14px;font-weight:600;border-radius:8px;transition:top .15s ease}
.skip-link:focus{top:12px;color:#fff}
