/* Admissions hub (/admissions). Builds on programs.css (.pg-hero, .pg-btn, .pg-sec, .pg-prose). CSP-safe: no inline styles. */
.ad { --ad-line: #e2e8f0; }
.ad-subnav { position: sticky; top: 0; z-index: 5; display: flex; gap: .4rem; overflow-x: auto; margin-top: 1rem; padding: .55rem .6rem; border: 1px solid var(--ad-line); border-radius: 999px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(6px); scrollbar-width: thin; }
.ad-subnav a { flex: none; padding: .4rem .85rem; border-radius: 999px; font-size: .84rem; font-weight: 600; text-decoration: none; color: var(--pg-deep); }
.ad-subnav a:hover, .ad-subnav a:focus-visible { background: var(--pg-mist); color: var(--pg-ocean); }

/* portals */
.ad-portal-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.ad-portal { position: relative; display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: 1.5rem; border-radius: 1.1rem; color: #fff; text-decoration: none; overflow: hidden;
  background: radial-gradient(circle at 92% 0, rgba(195, 0, 128, .55), transparent 45%), linear-gradient(130deg, var(--pg-navy), var(--pg-deep) 60%, var(--pg-ocean));
  box-shadow: 0 14px 30px -14px rgba(0, 24, 50, .55); transition: transform .25s, box-shadow .25s; }
.ad-portal:hover, .ad-portal:focus-visible { transform: translateY(-4px); box-shadow: 0 20px 36px -14px rgba(0, 24, 50, .6); }
.ad-portal__for { align-self: flex-start; padding: .25rem .7rem; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pg-navy); background: var(--pg-yellow); }
.ad-portal__name { font-size: 1.35rem; font-weight: 800; line-height: 1.25; }
.ad-portal__desc { font-size: .92rem; line-height: 1.55; color: rgba(255, 255, 255, .85); }
.ad-portal__go { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: .6rem; font-weight: 700; color: var(--pg-cyan); }
.ad-other { margin: 1rem 0 0; font-size: .9rem; color: var(--pg-muted); }
.ad-other a { color: var(--pg-ocean); font-weight: 600; }
.ad-note { margin: 0; padding: .9rem 1rem; border-left: 4px solid var(--pg-yellow); border-radius: .25rem .6rem .6rem .25rem; background: var(--pg-mist); font-size: .92rem; color: #334155; }

/* steps — a vertical rail with numbered discs; cards on the right */
.ad-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; counter-reset: s; }
.ad-step { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 1.2rem; border: 1px solid var(--ad-line); border-radius: 1rem; background: #fff; }
.ad-step__n { flex: none; display: flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--pg-magenta), var(--pg-ocean)); }
.ad-step h3 { margin: 0; font-size: 1.02rem; font-weight: 800; color: var(--pg-navy); }
.ad-step p { margin: .3rem 0 0; font-size: .93rem; line-height: 1.6; color: #475569; }
.ad-after-steps { margin: 1.2rem 0 0; }

/* finder */
.ad-finder { padding: 1.1rem; border: 1px solid var(--ad-line); border-radius: 1.1rem; background: var(--pg-mist); }
.ad-finder__bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.ad-input { width: 100%; padding: .85rem 1rem; border: 2px solid transparent; border-radius: .8rem; font: inherit; background: #fff; color: var(--pg-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.ad-input:focus { outline: none; border-color: var(--pg-ocean); }
.ad-count { margin: .8rem 0 0; font-size: .85rem; color: var(--pg-muted); }
.ad-results { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; }
.ad-results [hidden] { display: none !important; }
.ad-result { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: 1rem; border: 1px solid var(--ad-line); border-radius: .9rem; background: #fff; text-decoration: none; color: inherit; transition: transform .2s, border-color .2s, box-shadow .2s; }
.ad-result:hover, .ad-result:focus-visible { transform: translateY(-3px); border-color: rgba(11, 99, 153, .45); box-shadow: 0 10px 22px -12px rgba(0, 24, 50, .35); }
.ad-result__level { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pg-ocean); }
.ad-result__name { font-size: .98rem; font-weight: 700; line-height: 1.35; color: var(--pg-navy); }
.ad-result__meta { font-size: .8rem; color: var(--pg-muted); }
.ad-result__go { margin-top: auto; padding-top: .5rem; display: inline-flex; align-items: center; gap: .35rem; font-size: .82rem; font-weight: 700; color: var(--pg-magenta); }
.ad-empty { margin: 1rem 0 0; font-size: .92rem; }
.ad-empty a { color: var(--pg-ocean); font-weight: 600; }

/* entry requirements accordions */
.ad-lvl { margin-bottom: .8rem; border: 1px solid var(--ad-line); border-radius: 1rem; background: #fff; overflow: hidden; }
.ad-lvl > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; cursor: pointer; font-weight: 800; color: var(--pg-navy); list-style: none; background: var(--pg-mist); }
.ad-lvl > summary::-webkit-details-marker { display: none; }
.ad-lvl > summary em { font-style: normal; padding: .1rem .65rem; border-radius: 999px; font-size: .8rem; color: #fff; background: var(--pg-ocean); }
.ad-lvl__body { padding: .7rem; display: grid; gap: .5rem; }
.ad-prog { border: 1px solid var(--ad-line); border-radius: .75rem; }
.ad-prog > summary { padding: .8rem 1rem; cursor: pointer; font-weight: 700; color: var(--pg-ink); }
.ad-prog > summary small { margin-left: .5rem; font-weight: 500; color: var(--pg-muted); }
.ad-prog[open] > summary { border-bottom: 1px solid var(--ad-line); background: #fafcfe; }
.ad-prog__body { padding: 1rem; }
.ad-prog__links { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0 0; font-size: .9rem; font-weight: 600; }
.ad-prog__links a { color: var(--pg-ocean); }
.ad-lvl summary:focus-visible, .ad-prog summary:focus-visible { outline: 3px solid var(--pg-ocean); outline-offset: -3px; }

/* fees */
.ad-feelinks { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.ad-feelinks a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; padding: .8rem 1rem; border: 1px solid var(--ad-line); border-radius: .8rem; background: #fff; text-decoration: none; font-weight: 600; color: var(--pg-navy); }
.ad-feelinks a:hover { border-color: var(--pg-ocean); }
.ad-feelinks span { display: inline-flex; align-items: center; gap: .3rem; font-size: .85rem; color: var(--pg-ocean); }

/* office + contact */
.ad-h3 { margin: 1.6rem 0 0; font-size: 1.05rem; font-weight: 800; color: var(--pg-navy); }
#office .ul-lead { margin-top: 3rem; }
.ad-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.ad-contact > div { padding: 1.1rem 1.2rem; border: 1px solid var(--ad-line); border-radius: 1rem; background: #fff; }
.ad-contact h3 { margin: 0 0 .4rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pg-ocean); }
.ad-contact p { margin: 0; line-height: 1.7; }
.ad-contact a { color: var(--pg-deep); font-weight: 600; }

@media (min-width: 40rem) {
  .ad-portal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ad-finder__bar { grid-template-columns: minmax(0, 1fr) 14rem; }
  .ad-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ad-feelinks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ad-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 64rem) { .ad-results { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .ad-portal, .ad-result { transition: none; } .ad-portal:hover, .ad-result:hover { transform: none; } html { scroll-behavior: auto; } }
@media print { .ad-subnav { display: none; } .ad-prog > .ad-prog__body { display: block; } }
