/* =====================================================================
   Articulation Pathways & Partnerships page
   Template: template-articulation-partnerships.php
   Every rule is scoped to #ihpw so it cannot affect the rest of the site,
   and so the theme's global rules (Bootstrap, style.css) cannot break it.
   ===================================================================== */

#ihpw {
	--ap-ink: #003F4A;          /* IHNA primary dark teal */
	--ap-teal: #009791;         /* IHNA teal */
	--ap-coral: #F07647;        /* IHNA coral */
	--ap-gold: #F7941D;         /* IHNA orange */
	--ap-burnt: #BD490E;        /* IHM accent */
	--ap-cream: #fbf8f2;
	--ap-paper: #fdfbf7;
	--ap-mint: #5fd3cd;
	--ap-header-h: 108px;       /* updated by ap.js from the real site header */
	--ap-top: 93px;             /* bottom of the fixed site header (updated by ap.js) */
	--ap-subnav-h: 56px;

	position: relative;
	padding-top: var(--ap-header-h);
	background: var(--ap-cream);
	color: var(--ap-ink);
	font-family: "Roboto", system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	font-weight: 400;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	overflow-x: clip;
}
@media (max-width: 991.98px) {
	#ihpw { --ap-header-h: 86px; --ap-top: 71px; }
}

/* ---------- Scoped reset (neutralises theme / Bootstrap globals) ---------- */
#ihpw *, #ihpw *::before, #ihpw *::after { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; }
#ihpw h1, #ihpw h2, #ihpw h3, #ihpw h4, #ihpw h5, #ihpw h6 { font-size: inherit; font-weight: inherit; line-height: inherit; font-family: inherit; color: inherit; letter-spacing: inherit; text-transform: none; }
#ihpw p, #ihpw li, #ihpw li span, #ihpw span, #ihpw td, #ihpw th, #ihpw label, #ihpw summary { font-size: inherit; line-height: inherit; letter-spacing: inherit; }
#ihpw section { padding: 0; overflow: visible; background-image: none; }
#ihpw ol, #ihpw ul { list-style: none; }
#ihpw a { color: inherit; text-decoration: none !important; background-color: transparent; }
#ihpw a:focus { outline: none; }
#ihpw a:focus-visible, #ihpw button:focus-visible, #ihpw summary:focus-visible { outline: 2px solid var(--ap-coral); outline-offset: 2px; }
#ihpw img, #ihpw svg { display: block; vertical-align: middle; }
#ihpw img { max-width: 100%; height: auto; }
#ihpw button, #ihpw input { font: inherit; color: inherit; background: transparent; border-radius: 0; letter-spacing: inherit; text-transform: none; box-shadow: none; -webkit-appearance: none; appearance: none; }
#ihpw button { cursor: pointer; text-align: inherit; }
#ihpw button:focus { outline: none; }
#ihpw table { border-collapse: collapse; border-spacing: 0; text-indent: 0; border-color: inherit; }
#ihpw caption { padding: 0; }
#ihpw mark { background: rgba(247, 148, 29, .4); color: inherit; padding: 0 2px; border-radius: 4px; }
#ihpw details > summary { list-style: none; display: flex; }
#ihpw details > summary::-webkit-details-marker { display: none; }
#ihpw [hidden] { display: none !important; }
#ihpw .ap-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }

/* ---------- Utilities ---------- */
#ihpw .ap-wrap { width: 100%; max-width: 1280px; margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px; }
@media (min-width: 1024px) { #ihpw .ap-wrap { padding-left: 32px; padding-right: 32px; } }
#ihpw .ap-section { padding-top: 96px; padding-bottom: 96px; }
#ihpw .ap-mw-2xl { max-width: 672px; }
#ihpw .ap-mw-3xl { max-width: 768px; }
#ihpw .ap-mt-2 { margin-top: 8px; }
#ihpw .ap-mt-3 { margin-top: 12px; }
#ihpw .ap-mt-6 { margin-top: 24px; }
#ihpw .ap-mt-8 { margin-top: 32px; }
#ihpw .ap-ico { flex-shrink: 0; }
#ihpw .ap-ico-4 { width: 16px; height: 16px; }
#ihpw .ap-ico-5 { width: 20px; height: 20px; }
#ihpw .ap-ico-7 { width: 28px; height: 28px; }
#ihpw .ap-teal { color: var(--ap-teal); }
#ihpw .ap-burnt { color: var(--ap-burnt); }
#ihpw .ap-gold { color: var(--ap-gold); }
#ihpw .ap-mono { font-family: "Roboto Mono", ui-monospace, monospace; }
#ihpw .ap-font-display { font-family: "Poppins", sans-serif; }
#ihpw .ap-link:hover { text-decoration: underline !important; text-underline-offset: 4px; }
#ihpw .ap-c80 { color: rgba(0, 63, 74, .8); }
#ihpw .ap-c85 { color: rgba(0, 63, 74, .85); }

/* film grain texture (as on the source page) */
#ihpw .ap-grain {
	position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: .035;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

#ihpw .ap-skip { position: absolute; left: -9999px; top: 0; }
#ihpw .ap-skip:focus { position: fixed; left: 16px; top: calc(var(--ap-top) + 8px); z-index: 1000; background: #fff; padding: 8px 12px; border-radius: 4px; }

/* ---------- Eyebrows & headings ---------- */
#ihpw .ap-eyebrow { font-family: "Roboto Mono", ui-monospace, monospace; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .22em; font-weight: 400; }
#ihpw .ap-eyebrow--teal { color: var(--ap-teal); }
#ihpw .ap-eyebrow--orange { color: var(--ap-burnt); }
#ihpw .ap-eyebrow--gold { color: var(--ap-gold); }
#ihpw .ap-h2 { margin-top: 16px; font-family: "Poppins", sans-serif; font-size: 36px; line-height: 1.25; font-weight: 600; color: var(--ap-ink); }
#ihpw .ap-h2--light { color: inherit; }

/* ---------- Buttons ---------- */
#ihpw .ap-btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 9999px; padding: 12px 20px; font-size: 16px; line-height: 24px; font-weight: 500; transition: transform .15s cubic-bezier(.4, 0, .2, 1), background-color .15s, color .15s; }
#ihpw .ap-btn--lg { padding: 14px 24px; }
#ihpw .ap-btn:hover { transform: translateY(-2px); }
#ihpw .ap-btn--teal, #ihpw .ap-btn--teal:hover, #ihpw .ap-btn--teal:focus { background: var(--ap-teal); color: #fff; }
#ihpw .ap-btn--glow { box-shadow: 0 10px 30px -12px var(--ap-teal); }
#ihpw .ap-btn--burnt, #ihpw .ap-btn--burnt:hover, #ihpw .ap-btn--burnt:focus { background: var(--ap-burnt); color: #fff; }
#ihpw .ap-btn--gold, #ihpw .ap-btn--gold:hover, #ihpw .ap-btn--gold:focus { background: var(--ap-gold); color: #2a1503; }
#ihpw .ap-btn--outline { border: 1px solid rgba(0, 63, 74, .2); color: var(--ap-ink); transition: background-color .15s, color .15s; }
#ihpw .ap-btn--outline:hover { transform: none; background: var(--ap-ink); color: var(--ap-cream); }
#ihpw .ap-nudge { transition: transform .15s cubic-bezier(.4, 0, .2, 1); }
#ihpw .ap-btn:hover .ap-nudge { transform: translateX(4px); }

/* ---------- Sticky sub-menu (under the main site header) ---------- */
#ihpw .ap-subnav-holder { position: relative; z-index: 996; height: var(--ap-subnav-h); }
#ihpw .ap-subnav {
	position: absolute; left: 0; right: 0; top: 0; height: var(--ap-subnav-h);
	background: rgba(251, 248, 242, .92);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	box-shadow: 0 1px 0 hsl(185, 20%, 86%);
	transition: box-shadow .3s;
}
#ihpw .ap-subnav.is-fixed { position: fixed; top: var(--ap-top); box-shadow: 0 1px 0 hsl(185, 20%, 86%), 0 8px 20px -14px rgba(0, 63, 74, .35); }
#ihpw .ap-subnav__inner { max-width: 1280px; height: 100%; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; gap: 16px; }
@media (min-width: 1024px) { #ihpw .ap-subnav__inner { padding: 0 32px; } }
#ihpw .ap-subnav__links {
	display: flex; align-items: center; gap: 4px; min-width: 0; flex: 1 1 auto;
	overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: none; -ms-overflow-style: none;
	scroll-behavior: smooth; height: 100%;
}
#ihpw .ap-subnav__links::-webkit-scrollbar { display: none; }
#ihpw .ap-subnav__link {
	position: relative; flex-shrink: 0; border-radius: 9999px; padding: 8px 12px;
	font-size: 14px; line-height: 20px; color: rgba(0, 63, 74, .6); transition: color .15s;
}
#ihpw .ap-subnav__link:hover, #ihpw .ap-subnav__link:focus { color: var(--ap-ink); }
#ihpw .ap-subnav__link.is-active { color: var(--ap-ink); font-weight: 500; }
#ihpw .ap-subnav__bar { position: absolute; left: 12px; right: 12px; bottom: -2px; height: 2px; border-radius: 4px; background: var(--ap-coral); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
#ihpw .ap-subnav__link.is-active .ap-subnav__bar { transform: scaleX(1); }
#ihpw .ap-subnav__cta {
	display: none; flex-shrink: 0; border-radius: 9999px; background: var(--ap-ink); color: var(--ap-cream);
	padding: 10px 16px; font-size: 14px; line-height: 20px; font-weight: 500; transition: transform .15s;
}
#ihpw .ap-subnav__cta:hover, #ihpw .ap-subnav__cta:focus { color: var(--ap-cream); transform: translateY(-2px); }
@media (min-width: 640px) { #ihpw .ap-subnav__cta { display: inline-flex; } }
@media (max-width: 1023.98px) {
	#ihpw .ap-subnav__inner { padding-right: 12px; }
	#ihpw .ap-subnav__links { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); padding-right: 24px; }
	#ihpw .ap-subnav__links.at-end { -webkit-mask-image: none; mask-image: none; }
	#ihpw .ap-subnav__link { padding: 8px 10px; }
	#ihpw .ap-subnav__bar { left: 10px; right: 10px; }
}

/* Offset in-page anchors so headings are not hidden under the header + sub-menu */
#ihpw section[id], #ihpw article[id] { scroll-margin-top: calc(var(--ap-top) + var(--ap-subnav-h) + 16px); }

/* ---------- Animations ---------- */
@keyframes ap-rise { 0% { opacity: 0; transform: translateY(18px); } 100% { opacity: 1; transform: none; } }
@keyframes ap-spin { 100% { transform: rotate(360deg); } }
#ihpw .ap-rise { animation: ap-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
#ihpw .ap-rays { width: 100%; height: 100%; animation: ap-spin 90s linear infinite; }
#ihpw.ap-js .ap-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1), background-color .15s; }
#ihpw.ap-js .ap-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	#ihpw *, #ihpw *::before, #ihpw *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
	#ihpw.ap-js .ap-reveal { opacity: 1; transform: none; }
}

/* ---------- Hero ---------- */
#ihpw .ap-hero { position: relative; overflow: hidden; }
#ihpw .ap-hero__rays { pointer-events: none; position: absolute; right: -192px; top: -168px; width: 720px; height: 720px; opacity: .9; }
@media (min-width: 768px) { #ihpw .ap-hero__rays { right: -96px; } }
#ihpw .ap-hero__grid { position: relative; display: grid; gap: 48px; padding-top: 56px; padding-bottom: 80px; }
@media (min-width: 1024px) { #ihpw .ap-hero__grid { grid-template-columns: 1.25fr 1fr; padding-top: 96px; padding-bottom: 112px; } }
#ihpw .ap-hero__title { margin-top: 24px; font-family: "Poppins", sans-serif; font-size: 2.6rem; font-size: 41.6px; line-height: 1.04; font-weight: 600; letter-spacing: -.025em; color: var(--ap-ink); }
@media (min-width: 640px) { #ihpw .ap-hero__title { font-size: 60px; } }
@media (min-width: 1024px) { #ihpw .ap-hero__title { font-size: 72px; } }
#ihpw .ap-hero__counts { position: relative; white-space: nowrap; color: var(--ap-teal); }
#ihpw .ap-hero__counts svg { position: absolute; left: 0; bottom: -8px; width: 100%; height: auto; overflow: visible; }
#ihpw .ap-hero__lead { margin-top: 32px; max-width: 576px; font-size: 18px; line-height: 1.625; color: rgba(0, 63, 74, .75); }
#ihpw .ap-hero__ctas { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 12px; }
#ihpw .ap-hero__aside { position: relative; align-self: end; }
#ihpw .ap-route { border-radius: 28px; background: var(--ap-ink); padding: 28px; color: var(--ap-cream); box-shadow: 0 40px 80px -40px var(--ap-ink); }
#ihpw .ap-route__label { font-family: "Roboto Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: .2em; color: var(--ap-gold); }
#ihpw .ap-route__list { margin-top: 24px; }
#ihpw .ap-route__item { position: relative; display: flex; gap: 16px; padding-bottom: 24px; }
#ihpw .ap-route__item:last-child { padding-bottom: 0; }
#ihpw .ap-route__line { position: absolute; left: 15px; top: 32px; height: calc(100% - 24px); width: 1px; background: linear-gradient(to bottom, var(--ap-teal), rgba(240, 118, 71, .6)); }
#ihpw .ap-route__num { display: grid; place-items: center; width: 32px; height: 32px; flex-shrink: 0; border-radius: 9999px; border: 1px solid var(--ap-teal); font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; color: var(--ap-mint); }
#ihpw .ap-route__title { font-family: "Poppins", sans-serif; font-size: 18px; line-height: 28px; font-weight: 500; }
#ihpw .ap-route__sub { font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .65); }
#ihpw .ap-route__note { margin-top: 4px; font-size: 12px; line-height: 16px; color: var(--ap-coral); }
#ihpw .ap-route__foot { margin-top: 24px; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 16px; font-size: 12px; line-height: 1.625; color: rgba(255, 255, 255, .6); }
#ihpw .ap-route__foot span { color: rgba(255, 255, 255, .85); }

#ihpw .ap-stats { border-top: 1px solid rgba(0, 63, 74, .1); border-bottom: 1px solid rgba(0, 63, 74, .1); background: var(--ap-cream); position: relative; }
#ihpw .ap-stats__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { #ihpw .ap-stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
#ihpw .ap-stat { padding: 24px 16px; }
#ihpw .ap-stat + .ap-stat { border-left: 1px solid rgba(0, 63, 74, .1); }
#ihpw .ap-stat:first-child { padding-left: 0; }
#ihpw .ap-stat__num { font-family: "Poppins", sans-serif; font-size: 30px; line-height: 36px; font-weight: 600; color: var(--ap-teal); }
#ihpw .ap-stat__txt { margin-top: 4px; font-size: 14px; line-height: 20px; color: rgba(0, 63, 74, .65); }

/* ---------- Why ---------- */
#ihpw .ap-why__grid { display: grid; gap: 48px; }
@media (min-width: 1024px) { #ihpw .ap-why__grid { grid-template-columns: 1fr 1.6fr; } }
#ihpw .ap-why__lead { margin-top: 20px; line-height: 1.625; color: rgba(0, 63, 74, .7); }
#ihpw .ap-why__cards { display: grid; gap: 1px; overflow: hidden; border-radius: 24px; border: 1px solid rgba(0, 63, 74, .1); background: rgba(0, 63, 74, .1); }
@media (min-width: 640px) { #ihpw .ap-why__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#ihpw .ap-why__card { background: var(--ap-paper); padding: 28px; transition: background-color .15s; }
#ihpw .ap-why__card:hover { background: #fff; }
#ihpw .ap-why__ico { width: 24px; height: 24px; color: var(--ap-teal); transition: transform .3s, color .3s; }
#ihpw .ap-why__card:hover .ap-why__ico { transform: translateY(-2px); color: var(--ap-coral); }
#ihpw .ap-why__title { margin-top: 20px; font-family: "Poppins", sans-serif; font-size: 18px; line-height: 28px; font-weight: 500; color: var(--ap-ink); }
#ihpw .ap-why__desc { margin-top: 8px; font-size: 14px; line-height: 1.625; color: rgba(0, 63, 74, .65); }
#ihpw .ap-why__defs { margin-top: 40px; display: grid; gap: 16px; }
@media (min-width: 768px) { #ihpw .ap-why__defs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#ihpw .ap-def { border-radius: 16px; padding: 24px; border: 1px solid rgba(0, 151, 145, .25); background: rgba(0, 151, 145, .05); }
#ihpw .ap-def--coral { border-color: rgba(240, 118, 71, .3); background: rgba(240, 118, 71, .05); }
#ihpw .ap-def__title { font-family: "Poppins", sans-serif; font-weight: 500; color: var(--ap-ink); }
#ihpw .ap-def__txt { margin-top: 4px; font-size: 14px; line-height: 20px; color: rgba(0, 63, 74, .7); }

/* ---------- Finder ---------- */
#ihpw .ap-finder { position: relative; background: var(--ap-ink); padding-top: 96px; padding-bottom: 96px; color: var(--ap-cream); }
#ihpw .ap-finder__lead { margin-top: 16px; color: rgba(255, 255, 255, .7); }
#ihpw .ap-finder__panel { margin-top: 40px; border-radius: 24px; background: rgba(255, 255, 255, .05); padding: 16px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .1); }
@media (min-width: 640px) { #ihpw .ap-finder__panel { padding: 24px; } }
#ihpw .ap-search { display: flex; align-items: center; gap: 12px; margin: 0; border-radius: 16px; background: var(--ap-cream); padding: 14px 16px; color: var(--ap-ink); cursor: text; transition: box-shadow .15s; }
#ihpw .ap-search:focus-within { box-shadow: 0 0 0 2px var(--ap-coral); }
#ihpw .ap-search__ico { width: 20px; height: 20px; color: var(--ap-teal); }
#ihpw .ap-search__input { width: 100%; min-width: 0; height: auto; border: 0; outline: none; background: transparent; font-size: 16px; line-height: 24px; color: var(--ap-ink); padding: 0; }
#ihpw .ap-search__input::placeholder { color: rgba(0, 63, 74, .4); opacity: 1; }
#ihpw .ap-search__input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
#ihpw .ap-search__clear { display: inline-flex; color: var(--ap-ink); }
#ihpw .ap-chips { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
#ihpw .ap-chip { border-radius: 9999px; padding: 6px 14px; font-size: 14px; line-height: 20px; background: rgba(255, 255, 255, .05); color: rgba(255, 255, 255, .75); box-shadow: 0 0 0 1px rgba(255, 255, 255, .15); transition: all .15s; }
#ihpw .ap-chip:hover { background: rgba(255, 255, 255, .1); }
#ihpw .ap-chip.is-on, #ihpw .ap-chip.is-on:hover { background: var(--ap-coral); color: #1d0d05; box-shadow: none; }
#ihpw .ap-chips__sep { margin: 0 4px; height: 20px; width: 1px; background: rgba(255, 255, 255, .2); }
#ihpw .ap-try { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; line-height: 16px; color: rgba(255, 255, 255, .5); }
#ihpw .ap-try__btn { font-family: "Roboto Mono", monospace; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .2); text-underline-offset: 4px; transition: color .15s; }
#ihpw .ap-try__btn:hover { color: var(--ap-gold); }
#ihpw .ap-results__empty { border-radius: 16px; border: 1px dashed rgba(255, 255, 255, .2); padding: 32px; }
@media (min-width: 768px) { #ihpw .ap-results__empty { grid-column: span 2 / span 2; } }
#ihpw .ap-results__empty-title { font-family: "Poppins", sans-serif; font-size: 18px; line-height: 28px; }
#ihpw .ap-results__empty-txt { margin-top: 4px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .6); }
#ihpw .ap-results__empty-link { margin-top: 16px; display: inline-flex; align-items: center; gap: 8px; color: var(--ap-gold); }
#ihpw .ap-results__empty-link:hover { color: var(--ap-gold); text-decoration: underline !important; text-underline-offset: 4px; }

/* ---------- Pathway flow (IHNA diploma → IHM bachelor) ---------- */
#ihpw .ap-flows { margin-top: 24px; display: grid; gap: 16px; }
#ihpw .ap-flows__intro { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .7); }
#ihpw .ap-flows__intro .ap-ico { color: var(--ap-coral); }
#ihpw .ap-flow { border-radius: 24px; background: rgba(255, 255, 255, .05); box-shadow: 0 0 0 1px rgba(255, 255, 255, .1); padding: 20px; }
@media (min-width: 640px) { #ihpw .ap-flow { padding: 24px; } }
#ihpw .ap-flow__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
#ihpw .ap-flow__num { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9999px; border: 1px solid rgba(247, 148, 29, .55); font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; color: var(--ap-gold); }
#ihpw .ap-flow__label { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .2em; color: rgba(255, 255, 255, .85); }
#ihpw .ap-flow__summary { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .6); }
#ihpw .ap-flow__summary .ap-ico { color: var(--ap-coral); }
@media (max-width: 639.98px) { #ihpw .ap-flow__summary { display: none; } }
@media (min-width: 768px) { #ihpw .ap-flow__summary { margin-left: auto; } }
#ihpw .ap-flow__track { margin-top: 20px; display: grid; gap: 4px; align-items: stretch; }
@media (min-width: 768px) { #ihpw .ap-flow__track { grid-template-columns: minmax(0, 1fr) 180px minmax(0, 1fr); gap: 0; } }
@media (min-width: 1024px) { #ihpw .ap-flow__track { grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr); } }

#ihpw .ap-node { --ap-acc: var(--ap-teal); position: relative; display: flex; flex-direction: column; border-radius: 18px; border-top: 4px solid var(--ap-acc); background: var(--ap-cream); color: var(--ap-ink); padding: 20px 22px 22px; transition: transform .15s cubic-bezier(.4, 0, .2, 1), box-shadow .15s, opacity .2s; }
#ihpw .ap-node--ihm { --ap-acc: var(--ap-burnt); background: #fff7ec; }
#ihpw .ap-node:hover, #ihpw .ap-node:focus { color: var(--ap-ink); transform: translateY(-3px); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .55); }
#ihpw .ap-node.is-dim { opacity: .45; }
#ihpw .ap-node__step { font-family: "Roboto Mono", monospace; font-size: 11px; line-height: 16px; text-transform: uppercase; letter-spacing: .18em; color: var(--ap-acc); }
#ihpw .ap-node__title { display: block; margin-top: 8px; font-family: "Poppins", sans-serif; font-size: 22px; line-height: 30px; font-weight: 600; color: var(--ap-ink); }
#ihpw .ap-node__code { display: block; margin-top: 2px; font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--ap-acc); }
#ihpw .ap-node__badge { display: block; margin-top: 8px; }
#ihpw .ap-node__metrics { display: grid; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(0, 63, 74, .1); }
#ihpw .ap-node__metric { display: block; font-size: 13px; line-height: 18px; color: rgba(0, 63, 74, .75); }
#ihpw .ap-node__metric strong { font-family: "Poppins", sans-serif; font-size: 18px; line-height: 18px; font-weight: 600; color: var(--ap-acc); margin-right: 2px; }
#ihpw .ap-node__more { margin-top: auto; padding-top: 16px; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--ap-acc); }
#ihpw .ap-node__more .ap-ico { transition: transform .15s; }
#ihpw .ap-node:hover .ap-node__more .ap-ico { transform: translateX(4px); }

#ihpw .ap-flow__link { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 10px 12px; text-align: center; }
#ihpw .ap-flow__credit { display: inline-block; border-radius: 9999px; background: var(--ap-coral); color: #1d0d05; padding: 4px 12px; font-size: 13px; line-height: 18px; font-weight: 500; }
#ihpw .ap-flow__credit-sub { max-width: 260px; font-size: 12px; line-height: 17px; color: rgba(255, 255, 255, .65); }
#ihpw .ap-flow__arrow { display: flex; flex-direction: column; align-items: center; width: 24px; height: 44px; color: var(--ap-coral); }
#ihpw .ap-flow__line { flex: 1 1 auto; width: 2px; border-radius: 2px; background: linear-gradient(to bottom, var(--ap-teal), var(--ap-coral)); }
#ihpw .ap-flow__head-ico { width: 22px; height: 22px; margin-top: -6px; transform: rotate(90deg); animation: ap-nudge-y 1.6s ease-in-out infinite; }
@media (min-width: 768px) {
	#ihpw .ap-flow__link { padding: 8px 14px; }
	#ihpw .ap-flow__arrow { flex-direction: row; width: 100%; height: 24px; }
	#ihpw .ap-flow__line { width: auto; height: 2px; background: linear-gradient(to right, var(--ap-teal), var(--ap-coral)); }
	#ihpw .ap-flow__head-ico { margin-top: 0; margin-left: -8px; transform: none; animation-name: ap-nudge-x; }
}
@keyframes ap-nudge-x { 0%, 100% { translate: 0 0; } 50% { translate: 4px 0; } }
@keyframes ap-nudge-y { 0%, 100% { translate: 0 0; } 50% { translate: 0 4px; } }

/* caveat badge */
#ihpw .ap-badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 9999px; border: 1px solid rgba(189, 73, 14, .3); background: rgba(189, 73, 14, .05); padding: 2px 10px; font-size: 11px; line-height: 16.5px; font-weight: 500; color: #8a3409; }
#ihpw .ap-badge--light { border-color: rgba(255, 255, 255, .3); background: transparent; color: rgba(255, 255, 255, .9); }
#ihpw .ap-badge__ico { width: 12px; height: 12px; }

/* ---------- Institute (IHNA / IHM) pathway tables ---------- */
#ihpw .ap-inst { padding-top: 96px; padding-bottom: 96px; }
#ihpw .ap-inst--ihm { background: linear-gradient(to bottom, #fff4e6, var(--ap-cream)); }
#ihpw .ap-inst__head { display: grid; align-items: end; gap: 32px; }
@media (min-width: 1024px) { #ihpw .ap-inst__head { grid-template-columns: 1fr auto; } }
#ihpw .ap-inst__title { margin-top: 16px; font-size: 36px; line-height: 1.25; font-weight: 600; color: var(--ap-ink); }
#ihpw .ap-inst__lead { margin-top: 16px; max-width: 672px; color: rgba(0, 63, 74, .7); }
#ihpw .ap-inst__reg { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; color: rgba(0, 63, 74, .5); }
#ihpw .ap-inst__list { margin-top: 48px; display: flex; flex-direction: column; gap: 24px; }
#ihpw .ap-inst__empty { border-radius: 24px; border: 1px dashed rgba(0, 63, 74, .2); padding: 40px; text-align: center; color: rgba(0, 63, 74, .6); }
#ihpw .ap-inst__empty a { text-decoration: underline !important; }

#ihpw .ap-pw { overflow: hidden; border-radius: 24px; border: 1px solid rgba(0, 63, 74, .1); background: var(--ap-paper); box-shadow: 0 20px 50px -35px var(--ap-ink); }
#ihpw .ap-pw__toggle { display: flex; width: 100%; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px; text-align: left; }
@media (min-width: 640px) { #ihpw .ap-pw__toggle { padding: 32px; } }
#ihpw .ap-pw__meta { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .2em; }
#ihpw .ap-pw__title { margin-top: 8px; font-family: "Poppins", sans-serif; font-size: 24px; line-height: 32px; font-weight: 600; color: var(--ap-ink); }
@media (min-width: 640px) { #ihpw .ap-pw__title { font-size: 30px; line-height: 36px; } }
#ihpw .ap-pw__chev { margin-top: 8px; width: 20px; height: 20px; color: rgba(0, 63, 74, .5); transition: transform .3s; }
#ihpw .ap-pw__toggle[aria-expanded="true"] .ap-pw__chev { transform: rotate(180deg); }
#ihpw .ap-pw__body { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .5s cubic-bezier(.4, 0, .2, 1); }
#ihpw .ap-pw.is-closed .ap-pw__body { grid-template-rows: 0fr; }
#ihpw .ap-pw__clip { overflow: hidden; min-height: 0; }
#ihpw .ap-pw__inner { border-top: 1px solid rgba(0, 63, 74, .1); }
#ihpw .ap-pw__table { width: 100%; font-size: 14px; line-height: 20px; }
#ihpw .ap-pw__table tr { display: block; padding: 16px 24px; }
#ihpw .ap-pw__table tr + tr { border-top: 1px solid rgba(0, 63, 74, .08); }
#ihpw .ap-pw__table th { display: block; padding: 0 0 4px; text-align: left; vertical-align: top; font-size: 12px; line-height: 16px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: rgba(0, 63, 74, .5); background: none; }
#ihpw .ap-pw__table td { display: block; vertical-align: top; line-height: 1.625; background: none; }
@media (min-width: 640px) {
	#ihpw .ap-pw__table tr { display: table-row; padding: 0; }
	#ihpw .ap-pw__table th { display: table-cell; width: 224px; padding: 16px 16px 16px 32px; }
	#ihpw .ap-pw__table td { display: table-cell; padding: 16px 32px 16px 0; }
}
#ihpw .ap-elig > li + li { margin-top: 8px; }
#ihpw .ap-elig > li { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 12px; }
#ihpw .ap-elig__code { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; font-weight: 500; }
#ihpw .ap-elig__title { color: var(--ap-ink); }
#ihpw .ap-elig__note { width: 100%; font-size: 12px; line-height: 16px; color: rgba(0, 63, 74, .55); }
@media (min-width: 640px) { #ihpw .ap-elig__note { width: auto; } }
#ihpw .ap-dest { font-weight: 500; color: var(--ap-ink); }
#ihpw .ap-dest__caveat { display: block; font-size: 12px; line-height: 16px; color: #8a3409; }
#ihpw .ap-conds > li + li { margin-top: 6px; }
#ihpw .ap-conds > li, #ihpw .ap-loc { display: flex; gap: 8px; color: rgba(0, 63, 74, .8); }
#ihpw .ap-conds__ico { margin-top: 2px; width: 16px; height: 16px; }
#ihpw .ap-pw__source { border-top: 1px solid rgba(0, 63, 74, .08); background: rgba(0, 63, 74, .03); padding: 12px 24px; font-family: "Roboto Mono", monospace; font-size: 11px; color: rgba(0, 63, 74, .5); }
@media (min-width: 640px) { #ihpw .ap-pw__source { padding-left: 32px; padding-right: 32px; } }

/* ---------- How it works ---------- */
#ihpw .ap-process { background: #e8f4f2; padding-top: 96px; padding-bottom: 96px; }
#ihpw .ap-steps { margin-top: 48px; display: grid; gap: 16px; }
@media (min-width: 768px) { #ihpw .ap-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { #ihpw .ap-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
#ihpw .ap-step { height: 100%; border-radius: 24px; background: var(--ap-paper); padding: 28px; box-shadow: 0 0 0 1px rgba(0, 63, 74, .08); transition: all .15s cubic-bezier(.4, 0, .2, 1); }
#ihpw .ap-step:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(0, 63, 74, .08), 0 24px 40px -30px var(--ap-ink); }
#ihpw .ap-step__num { display: block; font-family: "Poppins", sans-serif; font-size: 48px; line-height: 1; font-weight: 600; color: rgba(0, 151, 145, .25); transition: color .15s; }
#ihpw .ap-step:hover .ap-step__num { color: var(--ap-coral); }
#ihpw .ap-step__title { margin-top: 12px; font-family: "Poppins", sans-serif; font-size: 20px; line-height: 28px; font-weight: 500; color: var(--ap-ink); }
#ihpw .ap-step__txt { margin-top: 8px; font-size: 14px; line-height: 1.625; color: rgba(0, 63, 74, .7); }
#ihpw .ap-elig-grid { margin-top: 56px; display: grid; gap: 16px; }
@media (min-width: 1024px) { #ihpw .ap-elig-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#ihpw .ap-elig-card { border-radius: 24px; padding: 32px; }
#ihpw .ap-elig-card--dark { background: var(--ap-ink); color: var(--ap-cream); }
#ihpw .ap-elig-card--light { background: var(--ap-paper); box-shadow: 0 0 0 1px rgba(0, 63, 74, .1); }
#ihpw .ap-elig-card__label { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .1em; }
#ihpw .ap-elig-card__list { margin-top: 16px; font-size: 14px; line-height: 20px; }
#ihpw .ap-elig-card__list > li + li { margin-top: 12px; }
#ihpw .ap-elig-card--dark .ap-elig-card__list { color: rgba(255, 255, 255, .8); }
#ihpw .ap-elig-card--light .ap-elig-card__list { color: rgba(0, 63, 74, .8); }

/* ---------- Scholarship ---------- */
#ihpw .ap-schol { position: relative; overflow: hidden; border-radius: 32px; background: linear-gradient(to bottom right, var(--ap-burnt), #e0661f); padding: 32px; color: #fff7ec; }
@media (min-width: 640px) { #ihpw .ap-schol { padding: 48px; } }
#ihpw .ap-schol__rays { pointer-events: none; position: absolute; right: -112px; top: -112px; width: 320px; height: 320px; opacity: .4; }
#ihpw .ap-schol__grid { position: relative; display: grid; gap: 40px; }
@media (min-width: 1024px) { #ihpw .ap-schol__grid { grid-template-columns: 1.2fr 1fr; } }
#ihpw .ap-schol__label { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .1em; color: #FFE0A8; }
#ihpw .ap-schol__title { margin-top: 16px; font-family: "Poppins", sans-serif; font-size: 30px; line-height: 1.375; font-weight: 600; }
@media (min-width: 640px) { #ihpw .ap-schol__title { font-size: 36px; } }
#ihpw .ap-schol__details { border-radius: 16px; background: rgba(0, 0, 0, .1); padding: 24px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .15); transition: background-color .15s; }
#ihpw .ap-schol__details[open] { background: rgba(0, 0, 0, .15); }
#ihpw .ap-schol__details summary { cursor: pointer; align-items: center; justify-content: space-between; font-weight: 500; }
#ihpw .ap-schol__details ul { margin-top: 16px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .85); }
#ihpw .ap-schol__details li + li { margin-top: 8px; }
#ihpw .ap-details-chev { transition: transform .15s; }
#ihpw details[open] > summary .ap-details-chev { transform: rotate(180deg); }

/* ---------- For RTOs ---------- */
#ihpw .ap-rto { background: #0c2f36; padding-top: 96px; padding-bottom: 96px; color: var(--ap-cream); }
#ihpw .ap-rto__grid { display: grid; gap: 56px; }
@media (min-width: 1024px) { #ihpw .ap-rto__grid { grid-template-columns: 1fr 1.3fr; } }
#ihpw .ap-rto__lead { margin-top: 20px; color: rgba(255, 255, 255, .7); }
#ihpw .ap-rto__hint { margin-top: 12px; font-size: 12px; line-height: 16px; color: rgba(255, 255, 255, .5); }
#ihpw .ap-rto__list { border-top: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1); }
#ihpw .ap-rto__item { display: flex; gap: 20px; padding: 20px 0; }
#ihpw .ap-rto__item + .ap-rto__item { border-top: 1px solid rgba(255, 255, 255, .1); }
#ihpw .ap-rto__num { font-family: "Roboto Mono", monospace; font-size: 12px; line-height: 16px; color: var(--ap-gold); }
#ihpw .ap-rto__title { font-family: "Poppins", sans-serif; font-weight: 500; transition: color .15s; }
#ihpw .ap-rto__item:hover .ap-rto__title { color: var(--ap-gold); }
#ihpw .ap-rto__txt { margin-top: 4px; font-size: 14px; line-height: 20px; color: rgba(255, 255, 255, .6); }

/* ---------- Contact ---------- */
#ihpw .ap-contact__grid { display: grid; gap: 20px; }
@media (min-width: 768px) { #ihpw .ap-contact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#ihpw .ap-contact__card { border-radius: 24px; padding: 32px; border: 1px solid rgba(0, 151, 145, .3); background: rgba(0, 151, 145, .05); }
#ihpw .ap-contact__card--burnt { border-color: rgba(189, 73, 14, .3); background: rgba(189, 73, 14, .05); }
#ihpw .ap-contact__title { margin-top: 20px; font-family: "Poppins", sans-serif; font-size: 24px; line-height: 32px; font-weight: 600; color: var(--ap-ink); }
#ihpw .ap-contact__txt { margin-top: 8px; color: rgba(0, 63, 74, .7); }
#ihpw .ap-contact__foot { margin-top: 24px; font-size: 14px; line-height: 20px; color: rgba(0, 63, 74, .6); }
#ihpw .ap-contact__foot a.ap-teal, #ihpw .ap-contact__foot a.ap-teal:hover { color: var(--ap-teal); }
#ihpw .ap-contact__foot a.ap-burnt, #ihpw .ap-contact__foot a.ap-burnt:hover { color: var(--ap-burnt); }

/* Pathway Finder heading (no search panel) */
#ihpw .ap-finder__title { margin-top: 0; }
#ihpw .ap-finder__lead { font-size: 18px; line-height: 1.625; }
#ihpw .ap-finder .ap-flows { margin-top: 40px; }

/* Course tables without section headings */
#ihpw .ap-inst { padding-top: 64px; padding-bottom: 64px; }
#ihpw .ap-inst__list { margin-top: 0; }
