:root { --teal:#168894; --ink:#242424; --muted:#5d6c70; --line:#dce7e9; }
body { background:#f4f8f9; line-height:1.65; }
html { scroll-padding-top:24px; }
main { margin-left:272px; padding:24px 32px; }
h1,h2,h3 { line-height:1.16; letter-spacing:0; overflow-wrap:anywhere; }
h2 { font-size:34px; } h3 { font-size:22px; }
.eyebrow { letter-spacing:0; font-size:12px; color:var(--teal); }
.sidebar { width:272px; padding:28px 22px; background:#fff; }
.brand { margin-bottom:40px; }
.brand-mark { background:#168894; width:48px; height:48px; }
.brand strong { font-size:20px; } .brand small { font-size:11px; }
.search input { background:#f4f8f9; border-radius:6px; }
.sidebar nav { gap:8px; counter-reset:nav; }
.sidebar nav a { display:flex; align-items:center; gap:12px; padding:14px 10px; font-size:14px; font-weight:600; border-radius:4px; }
.sidebar nav a::before { counter-increment:nav; content:'0' counter(nav); color:#8fa3a8; font-size:11px; font-weight:700; }
.sidebar nav a.active { background:#e8f6f8; box-shadow:inset 3px 0 #27b9c6; }
.sidebar nav a:last-child { margin-top:16px; border-top:1px solid var(--line); border-radius:0; }
.college-link { display:block; margin-top:40px; color:var(--muted); font-size:13px; }
.campaign { position:relative; isolation:isolate; overflow:hidden; max-width:1120px; min-height:390px; margin:0 auto; padding:42px 40px 92px; color:#fff; background:#244e51; }
.campaign-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:70% 45%; }
.campaign::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(19,42,44,.97) 0%,rgba(20,61,63,.85) 47%,rgba(15,34,36,.28) 100%); }
.campaign .eyebrow { color:#b5f1f3; max-width:520px; line-height:1.7; }
.campaign h1 { font-size:52px; max-width:620px; margin:20px 0 16px; line-height:1.03; }
.campaign h1 span { display:block; color:#8fe5e6; }
.campaign-lead { font-size:18px; line-height:1.6; margin:16px 0 24px; color:#e5f2f3; }
.hero-cta { display:inline-flex; align-items:center; gap:28px; background:#ffdb76; color:#242424; border-radius:4px; padding:13px 18px; text-decoration:none; font-weight:700; }
.hero-cta:hover { background:#ffe8a8; }
svg { width:20px; height:20px; flex-shrink:0; }
.campaign-contact { position:absolute; bottom:0; left:0; right:0; display:flex; align-items:center; flex-wrap:wrap; gap:12px 28px; padding:18px 40px; background:rgba(16,45,48,.9); border-top:1px solid rgba(255,255,255,.2); font-size:14px; }
.campaign-contact span { display:flex; align-items:center; gap:10px; color:#9ddfe2; }
.campaign-contact a { text-decoration:none; color:#fff; font-weight:700; }
.section { max-width:1120px; margin:0 auto; border:0; border-radius:0; padding:44px 32px; box-shadow:none; overflow:visible; background:#fff; border-bottom:1px solid var(--line); scroll-margin-top:0; }
.section-head { gap:16px; margin-bottom:28px; }
.section-head span { width:44px; height:44px; min-width:44px; background:#e1f4f5; border-radius:5px; font-size:15px; }
.section-head h2 { font-size:34px; }
#preparation { border-top:4px solid #27b9c6; }
.course-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,290px); gap:36px; align-items:start; }
.rich-text { overflow-wrap:anywhere; font-size:16px; }
.rich-text h2 { font-size:27px; } .rich-text h3 { font-size:23px; margin:0 0 18px; } .rich-text h4 { font-size:19px; }
.rich-text p { margin:0 0 18px; } .rich-text p:last-child { margin-bottom:0; }
.rich-text ul,.rich-text ol { padding-left:24px; }
.rich-text li { padding-left:3px; margin:8px 0; } .rich-text li::marker { color:var(--teal); }
.rich-text blockquote { margin:22px 0 0; padding:16px 20px; border-left:4px solid #27b9c6; background:#eaf7f8; font-size:15px; }
.rich-text .ql-align-center { text-align:center; } .rich-text .ql-align-right { text-align:right; } .rich-text .ql-align-justify { text-align:justify; }
.rich-text .ql-size-small { font-size:.8em; } .rich-text .ql-size-large { font-size:1.3em; } .rich-text .ql-size-huge { font-size:1.6em; }
.rich-text .ql-indent-1 { padding-left:2em; } .rich-text .ql-indent-2 { padding-left:4em; } .rich-text li[data-list=bullet] { list-style:disc; }
.enroll { background:#fff6d9; border-top:4px solid #f2ad38; padding:24px; border-radius:0 0 6px 6px; }
.enroll h3 { font-size:25px; margin:12px 0 20px; } .enroll .eyebrow { color:#806316; }
.enroll p { font-size:14px; line-height:1.6; }
.enroll>a:not(.primary) { display:block; font-size:16px; text-decoration:none; font-weight:700; padding-top:8px; }
.primary { display:flex; align-items:center; justify-content:center; padding:14px 16px; background:var(--teal); color:#fff; font-weight:700; text-decoration:none; border-radius:5px; }
.primary:hover { background:#075b96; }
.gallery-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-top:36px; margin-bottom:16px; }
.gallery-head h3 { margin:4px 0 0; font-size:24px; }
.gallery-controls { display:flex; gap:8px; }
.gallery-controls button { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line); border-radius:5px; background:#fff; cursor:pointer; color:var(--teal); }
.gallery-controls button:hover { background:#e8f6f8; }
.gallery { display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#27b9c6 #edf5f6; padding:3px 0 12px; }
.gallery-item { position:relative; flex:0 0 230px; padding:0; border:0; background:transparent; cursor:pointer; font:inherit; text-align:left; scroll-snap-align:start; border-radius:5px; overflow:hidden; align-self:start; }
.gallery-item img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:filter .2s; }
.gallery-item:hover img { filter:brightness(1.06); }
.photo-number { position:absolute; top:10px; left:10px; display:grid; place-items:center; min-width:30px; height:27px; border-radius:3px; background:rgba(255,255,255,.95); font-size:11px; font-weight:700; color:var(--teal); }
.photo-caption { display:block; font-size:13px; padding:8px 0; color:var(--muted); }
.course-details { margin:32px 0; max-width:none; columns:2; column-gap:40px; }
.course-details h3 { break-after:avoid; margin-top:24px; } .course-details h3:first-child { margin-top:0; } .course-details li { break-inside:avoid; }
.videos { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr)); gap:24px; margin-top:28px; }
.videos figure { margin:0; }
.videos iframe,.videos video { display:block; width:100%; aspect-ratio:16/9; border:0; background:#171c20; border-radius:6px; }
.videos figcaption { padding:12px 0; font-size:14px; font-weight:600; color:var(--muted); }
.pdf-link { display:flex; align-items:center; gap:18px; margin-top:24px; padding:22px 24px; text-decoration:none; border:1px solid #b9dce1; border-radius:6px; background:#eff9fa; }
.pdf-link:hover { background:#e2f4f6; }
.file-type { display:grid; place-items:center; flex-shrink:0; width:48px; height:56px; background:#fff; color:#b64030; border:1px solid #f2d5cf; border-radius:4px; font-weight:700; font-size:13px; }
.pdf-link strong,.pdf-link small { display:block; } .pdf-link strong { line-height:1.5; } .pdf-link small { margin-top:4px; color:var(--muted); } .pdf-link>b { margin-left:auto; font-size:28px; }
#info { background:#f0f8f9; }
.info-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:48px; }
.info-grid>div:last-child { border-left:1px solid #c8dfe2; padding-left:32px; } .info-grid h3 { font-size:22px; }
.info-grid .contact-list { margin-top:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; }
.info-grid .contact-list a { display:block; border:0; border-radius:0; padding:8px 0; background:transparent; text-decoration:none; }
.info-grid .contact-list b { display:block; color:#075b96; font-size:15px; overflow-wrap:anywhere; } .info-grid .contact-list span { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.section-lead { font-size:17px; margin:-8px 0 28px; }
.specialty-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.specialty { display:flex; flex-direction:column; border:1px solid var(--line); border-top:3px solid #27b9c6; border-radius:6px; overflow:hidden; background:#fff; text-decoration:none; transition:box-shadow .2s,transform .2s; }
.specialty>img { display:block; width:100%; height:190px; object-fit:cover; }
.specialty>div { display:flex; flex:1; flex-direction:column; padding:24px; }
.specialty .code { align-self:start; padding:5px 9px; color:#075b96; font-size:12px; font-weight:700; border-radius:4px; background:#eaf3fa; }
.specialty h3 { font-size:24px; margin:16px 0 12px; } .specialty p { font-size:15px; color:var(--muted); margin:0 0 24px; }
.specialty .text-link { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); }
.specialty:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(24,95,109,.12); }
.specialty:nth-child(3n+2) { border-top-color:#f2ad38; } .specialty:nth-child(3n) { border-top-color:#075b96; }
.text-link { color:var(--teal); font-size:14px; font-weight:700; }
.all-specialties { display:inline-flex; align-items:center; justify-content:center; margin-top:28px; padding:12px 20px; border:1px solid #a9d7dc; border-radius:5px; color:var(--teal); font-weight:700; text-decoration:none; }
.all-specialties:hover { background:#edf8f9; } .previous { background:#f0f8f9; } .previous>p { max-width:820px; }
.previous .section-head h2 { max-width:720px; font-size:30px; }
.archive-link { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px; margin-top:28px; background:#ffdf83; border-radius:6px; color:#242424; text-decoration:none; }
.archive-link small,.archive-link strong { display:block; } .archive-link small { font-size:13px; } .archive-link strong { font-size:30px; margin-top:8px; line-height:1.2; } .archive-link>b { font-size:42px; } .archive-link:hover { background:#ffe6a0; }
footer { max-width:1120px; margin:0 auto; padding:24px 0 8px; font-size:13px; color:var(--muted); }
.menu-toggle { align-items:center; gap:8px; } .menu-toggle span { display:inline; width:auto; height:auto; background:none; margin:0; }
dialog { border:0; border-radius:6px; width:min(1000px,94vw); padding:44px 16px 16px; background:#fff; max-height:94vh; }
dialog::backdrop { background:rgba(0,0,0,.8); } dialog>img { display:block; max-width:100%; max-height:70vh; margin:auto; object-fit:contain; }
.close-lightbox { position:absolute; right:12px; top:6px; font-size:28px; border:0; background:transparent; cursor:pointer; }
.lightbox-nav { display:flex; justify-content:center; align-items:center; gap:24px; } .lightbox-nav button { width:44px; height:40px; background:#e8f6f8; border:0; border-radius:4px; font-size:24px; cursor:pointer; }
[hidden] { display:none!important; } :focus-visible { outline:3px solid #075b96; outline-offset:3px; }
@media(min-width:1600px) { .specialty-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .specialty>img { height:170px; } .specialty h3 { font-size:22px; } }
@media(max-width:1200px) { main { padding:20px; } .course-intro { gap:24px; grid-template-columns:minmax(0,1fr) 250px; } .section { padding:36px 24px; } .info-grid { gap:28px; } .info-grid .contact-list { grid-template-columns:1fr; } .campaign h1 { font-size:46px; } }
@media(max-width:980px) { main { margin-left:0; padding:64px 20px 20px; } .sidebar { width:272px; } .menu-toggle { display:flex; } .campaign { min-height:370px; } .campaign h1 { font-size:48px; } }
@media(max-width:700px) {
  html { scroll-padding-top:60px; } main { padding:60px 12px 16px; }
  .campaign { padding:28px 24px 24px; min-height:0; } .campaign::before { background:linear-gradient(90deg,rgba(19,42,44,.94),rgba(20,61,63,.72)); }
  .campaign .eyebrow { font-size:10px; } .campaign h1 { font-size:36px; max-width:350px; margin-top:18px; } .campaign-lead { font-size:16px; margin:16px 0 20px; } .hero-cta { padding:12px 16px; font-size:14px; }
  .campaign-contact { position:relative; margin:24px -24px -24px; padding:16px 24px; gap:8px 18px; font-size:13px; } .campaign-contact span { width:100%; font-size:12px; }
  .section { padding:30px 20px; } .section-head { gap:12px; margin-bottom:24px; align-items:start; } .section-head span { width:36px; height:36px; min-width:36px; font-size:13px; } .section-head h2 { font-size:27px; padding-top:3px; }
  .course-intro { grid-template-columns:1fr; gap:24px; } .rich-text { font-size:15px; } .rich-text h3 { font-size:22px; } .enroll { padding:22px; } .enroll h3 { font-size:25px; }
  .gallery-head { margin-top:30px; } .gallery-head h3 { font-size:22px; } .gallery-head .eyebrow { font-size:10px; } .gallery-item { flex-basis:210px; }
  .course-details { columns:auto; margin-top:24px; } .videos { margin-top:24px; } .pdf-link { padding:16px; gap:12px; } .file-type { width:38px; height:48px; font-size:11px; } .pdf-link strong { font-size:14px; }
  .info-grid { grid-template-columns:1fr; gap:28px; } .info-grid>div:last-child { border-left:0; padding-left:0; border-top:1px solid #c8dfe2; padding-top:24px; } .info-grid .contact-list { grid-template-columns:1fr; gap:6px; }
  .specialty-grid { grid-template-columns:1fr; gap:18px; } .specialty>img { height:auto; aspect-ratio:16/9; } .specialty>div { padding:22px; } .specialty h3 { font-size:24px; } .section-lead { font-size:15px; }
  .previous .section-head h2 { font-size:25px; } .archive-link { padding:22px; gap:12px; } .archive-link strong { font-size:24px; } .archive-link>b { font-size:32px; } footer { padding:20px 8px; } .sidebar { max-width:calc(100vw - 65px); }
}
@media(max-width:360px) { .campaign { padding:24px 18px; } .campaign h1 { font-size:32px; } .campaign-contact { margin:24px -18px -24px; padding:16px 18px; } .section { padding:26px 16px; } .section-head h2 { font-size:24px; } .enroll { padding:18px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .specialty,.gallery-item img { transition:none; } }
.open-day { background:#fff; border-top:4px solid #f2ad38; }
.open-day .section-head span { background:#fff0c5; color:#705018; }
.event-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:32px; align-items:center; }
.event-photo { margin:0; min-width:0; }
.event-photo img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px; }
.event-photo figcaption { font-size:12px; line-height:1.5; color:#657477; margin-top:8px; }
.event-welcome { font-size:20px; font-weight:700; color:#075b96; margin:0 0 16px; }
.event-visit { min-width:0; }
.event-fact { display:flex; gap:16px; padding:18px 0; border-bottom:1px solid #d9e7e8; }
.event-fact>svg { width:26px; height:26px; flex-shrink:0; color:#168894; margin-top:3px; }
.event-fact>div { min-width:0; }
.event-fact .eyebrow { color:#54676a; margin:0 0 8px; }
.event-visit time { display:block; }
.event-visit time strong { display:block; font-size:23px; line-height:1.35; }
.event-visit time span { display:block; font-size:36px; font-weight:700; color:#168894; line-height:1.3; margin-top:5px; }
.event-place { display:block; font-size:20px; line-height:1.45; overflow-wrap:anywhere; }
.event-visit .primary { gap:12px; margin-top:24px; }
.event-content { margin-top:32px; padding-top:28px; border-top:1px solid #d9e7e8; }
.event-online { display:flex; gap:20px; background:#edf8f9; border-left:4px solid #168894; padding:24px; margin-top:28px; }
.event-online>svg { flex-shrink:0; width:28px; height:28px; color:#168894; }
.event-online>div { min-width:0; }
.event-online h3 { margin:0 0 10px; font-size:21px; }
.event-online .rich-text p { margin:0 0 16px; }
.event-online .primary { white-space:normal; overflow-wrap:anywhere; }
@media(max-width:1200px) { .event-layout { gap:24px; } .event-visit time strong { font-size:21px; } }
@media(max-width:850px) { .event-layout { grid-template-columns:1fr; } .event-visit { order:-1; } .event-photo { max-width:660px; } }
@media(max-width:500px) { .event-welcome { font-size:19px; } .event-online { padding:20px 16px; gap:12px; } .event-online .primary { font-size:14px; padding:14px 16px; } .event-place { font-size:18px; } }
