/* A + C combined: shared components for inner pages (20 Oct 2026). Loads after brand.css and brand-free.css.
   Seed of the design system: when the site is built these become the theme's block styles.
   Sizes are set for parents and grandparents: body 18px desktop / 17px phone, labels 13px minimum. */
body{font-size:18px;line-height:1.6}
.pill{display:inline-block;text-decoration:none;border-radius:999px;padding:16px 28px;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:0.12em;font-size:12px;white-space:nowrap;text-align:center;border:0;cursor:pointer}
.pill-orange{background:var(--orange);color:var(--ink)}
.pill-blue{background:var(--blue);color:#FFFFFF}
/* buttons keep their text colour on hover (brand.css a:hover would turn it dark blue) */
.pill-blue:hover{color:#FFFFFF;background:var(--blue-deep)}
.pill-orange:hover{color:var(--ink);filter:brightness(0.94)}
.pill-ghost{background:none;box-shadow:inset 0 0 0 1.5px currentColor}
.label{font-size:13px}
.kicker{color:var(--orange-text)}
.on-blue .kicker{color:var(--orange)}
.hero .kicker{color:#FFFFFF;display:inline-flex;align-items:center;gap:12px}
.hero .kicker::before{content:"";width:28px;height:2px;background:var(--orange)}
.h2{margin:0;font-size:30px;line-height:1.2;color:var(--blue)}
.lead{margin:0;font-size:24px;line-height:1.55;font-weight:300}
.muted{color:var(--grey)}
.tile{position:absolute;opacity:0.08;filter:brightness(0) invert(1);pointer-events:none}
.star{display:inline-block;width:14px;height:14px;background:var(--orange);-webkit-mask:url("../brand/diamond-mask.svg") center/contain no-repeat;mask:url("../brand/diamond-mask.svg") center/contain no-repeat}
.link{color:var(--blue);text-decoration:none}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* top bar: transparent over a photo hero, white when scrolled or on pages without one (.solid) */
.topbar{position:sticky;top:0;z-index:10;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#FFFFFF;transition:background .25s,color .25s,box-shadow .25s}
.topbar a{color:inherit;text-decoration:none}
.topbar img{width:auto;display:block}
.topbar .logo-dark{display:none}
.topbar.scrolled,.topbar.solid{background:#FFFFFF;color:var(--ink);box-shadow:0 1px 0 var(--line)}
.topbar.scrolled .logo-light,.topbar.solid .logo-light{display:none}
.topbar.scrolled .logo-dark,.topbar.solid .logo-dark{display:block}
.topbar nav a[aria-current]{box-shadow:0 2px 0 var(--orange)}
.search,.icon{background:none;border:0;display:flex;align-items:center;gap:8px;color:inherit;cursor:pointer}
.icon{width:44px;height:44px;justify-content:center}

/* photo hero for inner pages */
.hero{position:relative;overflow:hidden;background:var(--blue-deep);color:#FFFFFF}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,0.45) 0%,rgba(0,0,0,0.15) 45%,rgba(0,0,0,0) 70%),linear-gradient(180deg,rgba(0,0,0,0.40) 0%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.70) 100%)}
/* two campus photos crossfading in the hero */
.hero>img.loop{opacity:0;animation:hero-loop 12s ease-in-out infinite}
@keyframes hero-loop{0%,42%{opacity:0}50%,92%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.hero>img.loop{animation:none}}
.hero .in{position:absolute;z-index:1}
.crumb{font-size:15px;opacity:0.9}
.crumb a{color:#FFFFFF}
.crumb.dark,.crumb.dark a{color:var(--grey)}

/* blue panel (C) */
.panel{position:relative;overflow:hidden;background:var(--blue);color:#FFFFFF;border-radius:6px}

/* FAQ: native details/summary, large tap targets */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;font-size:21px;font-weight:600;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--display);font-size:26px;font-weight:400;color:var(--blue);flex:0 0 auto}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 24px;max-width:760px;color:var(--grey)}

/* forms: big fields for older readers */
.field{display:flex;flex-direction:column;gap:8px}
.field>span{font-weight:600;font-size:17px;color:var(--ink)}
.field small{font-size:15px;color:var(--grey);font-weight:400}
.input{box-sizing:border-box;width:100%;min-height:56px;padding:14px 16px;border:1.5px solid #B9BBBE;border-radius:6px;background:#FFFFFF;font:inherit;font-size:18px;color:var(--ink)}
.input:focus{outline:3px solid rgba(12,92,151,0.25);border-color:var(--blue)}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230C5C97' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.choice{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1.5px solid #B9BBBE;border-radius:6px;cursor:pointer;font-size:17px}
.choice input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--blue);flex:0 0 auto}
.choice:has(input:checked){border-color:var(--blue);background:rgba(12,92,151,0.05)}
.choice:has(input:disabled){opacity:0.5;cursor:not-allowed}

/* footer */
.foot{position:relative;overflow:hidden;isolation:isolate;background:var(--blue);color:#FFFFFF}
.foot a{color:#FFFFFF;text-decoration:none}

/* phone action bar */
.actionbar{position:sticky;bottom:0;z-index:9;background:#FFFFFF;border-top:1px solid var(--line);padding:10px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.actionbar .pill{padding:14px 10px;font-size:11px}
