/* UPDM: shared footer and the page-home.php layout. Official site colours. */
.updm-design {
    --hp-bg: #f8f8f8;
    --hp-paper: #fff;
    --hp-ink: #444;
    --hp-muted: #777;
    --hp-rule: #eee;
    --hp-blue: #005d76;
    --hp-orange: #ff6600;
    container: hp / inline-size;
    color: var(--hp-ink);
    background: var(--hp-bg);
    line-height: 1.6;
}
.updm-design *, .updm-design *::before, .updm-design *::after { box-sizing: border-box; }
.updm-design h2, .updm-design h3, .updm-design p { margin: 0; }
.updm-design h2, .updm-design h3 { font-weight: 500; letter-spacing: normal; }
.updm-design a { color: inherit; text-decoration: none; }
.updm-design button { font: inherit; cursor: pointer; }
.updm-design img { display: block; max-width: 100%; }
.updm-design [hidden] { display: none !important; }
.updm-design button:focus-visible, .updm-design a:focus-visible { outline: 2px solid #5197d5; outline-offset: 4px; }
.updm-design .hp-main, .updm-design .hp-footer-inner { max-width: 1440px; margin: 0 auto; padding: 0 24px; }
.updm-design .hp-section { margin-top: 48px; scroll-margin-top: 130px; }
.updm-design .hp-panel { position: relative; min-width: 0; border: 1px solid var(--section-color, #5197d5); border-radius: 0 30px 0 0; background: #fff; box-shadow: 0 12px 36px rgba(0,0,0,.055); }
.updm-design .hp-panel.has-drawn-frame { border-color: transparent; }
.updm-design .hp-panel-content { position: relative; z-index: 1; padding: 28px; }
.updm-design .hp-panel::before { content: ""; position: absolute; top: 0; left: 28px; width: 62px; height: 5px; background: var(--section-color, #5197d5); z-index: 4; }
.updm-design .hp-frame { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 3; color: var(--section-color, #5197d5); }
.updm-design .hp-frame path { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-dasharray: 1; stroke-dashoffset: 0; vector-effect: non-scaling-stroke; }
.updm-design .hp-reveal-cover { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 5; opacity: 0; pointer-events: none; background: var(--section-color, #5197d5); clip-path: inset(0 calc(100% - 90px) calc(100% - 5px) 28px); }
.updm-design .hp-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 20px; color: #005d76; }
.updm-design .hp-heading h2 { color: inherit; font-size: 23px; line-height: 1.3; }
.updm-design .hp-heading span { display: block; margin-top: 5px; font-size: 11px; letter-spacing: .13em; }
.updm-design .hp-text-link { color: #777; font-size: 12px; white-space: nowrap; }
.updm-design .hp-arrow { color: #005d76; font-size: 22px; }
.updm-design .hp-empty { padding: 24px 0; color: #777; }

/* News and poster share a single frame. */
.updm-design .hp-news-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); align-items: stretch; }
.updm-design .hp-news-panel, .updm-design .hp-poster-panel { min-width: 0; background: transparent; border: 0; box-shadow: none; }
.updm-design .hp-categories { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 20px; }
.updm-design .hp-categories a { display: inline-block; padding: 6px 12px; border: 1px solid rgba(2,172,216,.3); border-top-color: rgba(255,255,255,.9); border-radius: 30px; color: #005d76; font-size: 12px; background: linear-gradient(130deg,rgba(255,255,255,.88),rgba(2,172,216,.09)); box-shadow: 0 3px 10px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.updm-design .hp-categories .is-current { background: #005d76; border-color: #005d76; color: #fff; }
.updm-design .hp-news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #eee; }
.updm-design .hp-news-list li { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 12px; padding: 15px 0; border-bottom: 1px solid #eee; }
.updm-design img.hp-news-symbol { display: block; width: 40px; height: auto; object-fit: contain; padding: 0; margin-top: 5px; }
.updm-design .hp-news-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; color: #777; font-size: 11px; }
.updm-design .hp-news-meta time { font-variant-numeric: tabular-nums; }
.updm-design .hp-news-meta a { color: #005d76; }
.updm-design .hp-news-title { display: block; color: #005d76; font-size: 15px; line-height: 1.55; overflow-wrap: anywhere; }
.updm-design .hp-news-title:hover { color: #000; }
.updm-design .hp-poster-panel .hp-panel-content { padding-left: 12px; }
.updm-design .hp-poster-panel .hp-heading { color: #ff6600; }
.updm-design .hp-image-clip { display: block; overflow: hidden; }
.updm-design .hp-image-clip img { display: block; width: 100%; transition: transform .8s cubic-bezier(.22,1,.36,1); }
.updm-design .hp-poster-media { border: 1px solid #ff6600; border-radius: 0; background: #f8f8f8; }
.updm-design .hp-poster-media img { width: 100%; height: auto; max-height: 650px; object-fit: contain; }
.updm-design .hp-poster-dots { display: none; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 0; padding-top: 16px; }
.updm-design .hp-poster-panel.is-enhanced .hp-poster-dots { display: flex; }
.updm-design .hp-poster-dots button { border: 0; width: 36px; height: 32px; padding: 0; background: transparent; }
.updm-design .hp-poster-dots button::after { content: ""; display: block; height: 4px; background: #ffd9c4; }
.updm-design .hp-poster-dots button[aria-pressed="true"]::after { background: #ff6600; }

/* Image links and student area. */
.updm-design .hp-portals { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.updm-design .hp-portal { display: flex; flex-direction: column; height: 45vh; min-height: 320px; overflow: hidden; }
.updm-design .hp-portal-image { flex: 1 1 auto; min-height: 0; height: auto; border-radius: 0 30px 0 0; overflow: hidden; }
.updm-design .hp-portal-image img { width: 100%; height: 100%; object-fit: cover; }
.updm-design .hp-portal .hp-panel-content { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; }
.updm-design .hp-portal h3 { font-size: 20px; }
.updm-design .hp-portal p { color: #777; font-size: 11px; letter-spacing: .12em; }
.updm-design .hp-students { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: stretch; gap: 20px; }
.updm-design .hp-students-no-photo { grid-template-columns: minmax(0,1fr); }
.updm-design .hp-student-feature { display: block; height: auto; min-height: 250px; overflow: hidden; align-self: stretch; }
.updm-design .hp-student-feature > img { position: absolute; inset: 0; width: 100%; height: calc(100% - 110px); object-fit: cover; transition: transform 1.25s cubic-bezier(.22,1,.36,1); }
.updm-design .hp-feature-caption { position: absolute; left: 0; right: 0; bottom: 0; height: 110px; min-height: 110px; padding: 22px 28px; background: #fff; color: #444; }
.updm-design .hp-feature-caption h2 { font-size: 20px; line-height: 1.4; margin: 0 0 3px; }
.updm-design .hp-feature-caption span { color: #444; font-size: 13px; }
.updm-design .hp-links-panel { display: contents; }
.updm-design .hp-links-panel::before, .updm-design .hp-links-panel > .hp-frame { display: none; }
.updm-design .hp-student-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: minmax(130px,auto); gap: 16px; }
.updm-design .hp-link-card { display: block; min-height: 130px; color: #444; transition: transform .65s ease,background .65s ease,box-shadow .65s ease; }
.updm-design .hp-link-card .hp-panel-content { height: 100%; padding: 18px 20px; }
.updm-design .hp-link-card h3 { margin-bottom: 5px; font-size: 15px; line-height: 1.35; }
.updm-design .hp-link-card p { color: #444; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.updm-design .hp-link-card .hp-arrow { display: none; }

/* Original YouTube content, presented as thumbnails and a native modal. */
.updm-design .hp-videos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.updm-design .hp-video-card .hp-panel-content { display: flex; flex-direction: column; height: 100%; }
.updm-design .hp-video-card .hp-heading h2 { font-size: 20px; }
.updm-design .hp-video-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.updm-design .hp-video-featured { grid-column: 1/-1; }
.updm-design .hp-video-item { min-width: 0; }
.updm-design .hp-video-thumb { position: relative; display: block; width: 100%; aspect-ratio: 16/9; padding: 0; border: 0; border-radius: 5px; background: #18374a; }
.updm-design .hp-video-thumb img { width: 100%; height: 100%; object-fit: cover; }
.updm-design .hp-play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 48px; height: 48px; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(255,255,255,.95); color: #5197d5; font-size: 18px; pointer-events: none; transition: transform .35s; }
.updm-design .hp-video-item:not(.hp-video-featured) .hp-play { width: 36px; height: 36px; font-size: 13px; }
.updm-design .hp-video-caption { display: block; padding-top: 10px; color: #444; font-size: 13px; line-height: 1.6; text-align: left; }
.updm-design .hp-video-item:not(.hp-video-featured) .hp-video-caption { font-size: 12px; }
.updm-design .hp-channel { margin-top: auto; color: #005d76; font-size: 12px; }
.updm-video-lightbox { width: min(1080px,calc(100% - 32px)); max-width: 1080px; max-height: 90dvh; margin: auto; padding: 0; border: 0; border-radius: 20px; background: #111e28; color: #fff; overflow: auto; box-shadow: 0 30px 100px #0008; }
.updm-video-lightbox::backdrop { background: rgba(6,19,31,.82); backdrop-filter: blur(10px); }
.updm-lightbox-head { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 14px 18px; }
.updm-lightbox-head h2 { margin: 0; color: #fff; font-size: 15px; line-height: 1.5; }
.updm-lightbox-close { flex: 0 0 44px; height: 44px; padding: 0; border: 1px solid #ffffff35; border-radius: 50%; background: #ffffff12; color: #fff; font-size: 28px; cursor: pointer; }
.updm-lightbox-player { aspect-ratio: 16/9; background: #000; }
.updm-lightbox-player iframe { display: block; width: 100%; height: 100%; border: 0; }

/* Shared contact footer: no outline, shadow or colour-cover animation. */
#footer-outer.updm-footer-outer { margin-top: 0; background-color: #f8f8f8; }
#footer-outer .updm-site-footer { display: flow-root; background: #f8f8f8; color: #444; }
.updm-design .hp-contact { margin-top: 48px; border: 0; box-shadow: none; }
.updm-design .hp-contact::before, .updm-design .hp-contact > .hp-frame { display: none; }
.updm-design .hp-contact-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; padding: 36px; }
.updm-design .hp-eyebrow { color: #777; font-size: 11px; letter-spacing: .13em; }
.updm-design .hp-contact h2 { margin: 12px 0; color: #444; font-size: 23px; line-height: 1.6; }
.updm-design .hp-contact-name > p { color: #777; font-size: 12px; }
.updm-design .hp-contact-school { margin-top: 16px; }
.updm-design .hp-contact-details { display: grid; gap: 18px; align-content: center; font-style: normal; }
.updm-design .hp-contact-details > div > span { display: block; margin-bottom: 4px; color: #777; font-size: 11px; }
.updm-design .hp-contact-details p, .updm-design .hp-contact-details a { color: #444; font-size: 14px; overflow-wrap: anywhere; }
.updm-design .hp-copyright { padding: 24px 0; text-align: center; color: #777; font-size: 11px; }
.updm-design .hp-footer-social { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0 0 20px; margin: 0; }
.updm-design .hp-footer-social a { color: #005d76; font-size: 18px; }
#footer-outer .updm-site-footer .hp-contact-details a { color: #444; }
#footer-outer .updm-site-footer .hp-contact-details a:hover { color: #005d76; }
#footer-outer .updm-site-footer .hp-footer-social a { color: #005d76; }
.updm-design .hp-pending .hp-frame path { stroke-dashoffset: 1; }
.updm-design .hp-pending.hp-panel::before, .updm-design .hp-pending .hp-panel::before { opacity: 0; }
.updm-design .hp-pending .hp-panel-content, .updm-design .hp-pending .hp-student-feature > img, .updm-design .hp-pending .hp-portal-image { opacity: 0; pointer-events: none; }
.updm-design .hp-pending .hp-news-list li { opacity: 0; transform: translateY(20px); }

@container hp (max-width:850px) {
    .updm-design .hp-main, .updm-design .hp-footer-inner { padding-left: 20px; padding-right: 20px; }
    .updm-design .hp-panel-content { padding: 24px; }
    .updm-design .hp-portal { height: 40vh; min-height: 280px; }
    .updm-design .hp-portal-image { height: auto; }
    .updm-design .hp-students { display: block; }
    .updm-design .hp-student-feature { height: 340px; min-height: 0; margin-bottom: 20px; }
    .updm-design .hp-links-panel { display: block; padding: 8px 20px; }
    .updm-design .hp-links-panel > .hp-frame { display: block; color: #eee; }
    .updm-design .hp-student-grid { grid-template-columns: minmax(0,1fr); grid-auto-rows: auto; gap: 0; }
    .updm-design .hp-links-panel .hp-link-card { min-height: 0; border: 0; border-bottom: 1px solid var(--section-color); border-radius: 0; background: transparent; box-shadow: none; }
    .updm-design .hp-links-panel .hp-link-card::before, .updm-design .hp-links-panel .hp-link-card > .hp-frame { display: none; }
    .updm-design .hp-links-panel .hp-link-card .hp-panel-content { display: grid; grid-template-columns: minmax(0,1fr) 20px; column-gap: 12px; padding: 18px 0; }
    .updm-design .hp-links-panel .hp-link-card h3 { grid-column: 1; margin-bottom: 3px; font-size: 16px; }
    .updm-design .hp-links-panel .hp-link-card p { grid-column: 1; font-size: 12px; }
    .updm-design .hp-links-panel .hp-link-card .hp-arrow { display: block; grid-column: 2; grid-row: 1/3; align-self: center; justify-self: end; color: #444; font-size: 18px; }
    .updm-design .hp-links-panel .hp-link-card:hover { transform: none; background: transparent; color: #444; box-shadow: none; }
    .updm-design .hp-links-panel .hp-link-card:hover p { color: #444; }
}
@container hp (max-width:599px) {
    .updm-design .hp-main, .updm-design .hp-footer-inner { padding-left: 16px; padding-right: 16px; }
    .updm-design .hp-section { margin-top: 32px; scroll-margin-top: 100px; }
    .updm-design .hp-news-grid, .updm-design .hp-portals, .updm-design .hp-videos, .updm-design .hp-contact-grid { grid-template-columns: minmax(0,1fr); }
    .updm-design .hp-panel-content { padding: 24px 20px; }
    .updm-design .hp-heading h2 { font-size: 22px; }
    .updm-design .hp-categories a { padding: 7px 11px; }
    .updm-design .hp-poster-panel .hp-panel-content { padding-left: 20px; }
    .updm-design .hp-poster-media img { max-height: 500px; }
    .updm-design .hp-portal { height: 40vh; min-height: 250px; }
    .updm-design .hp-portal-image { height: auto; }
    .updm-design .hp-student-feature { height: 320px; }
    .updm-design .hp-feature-caption { padding: 22px 20px; }
    .updm-design .hp-contact-grid { gap: 28px; padding: 28px 24px; }
    .updm-design .hp-contact h2 { font-size: 20px; }
}
@media (hover:hover) and (pointer:fine) {
    .updm-design .hp-image-clip:hover > img { transform: scale(1.065); }
    .updm-design .hp-link-card:hover { transform: translateY(-6px); background: var(--section-color); color: #fff; box-shadow: 0 16px 28px rgba(0,0,0,.18); }
    .updm-design .hp-link-card:hover p { color: #fff; }
    .updm-design .hp-video-thumb:hover .hp-play { transform: translate(-50%,-50%) scale(1.08); }
}

/* Hero slider. Its frame never grows on hover; only the image moves inside it. */
#updm-home-slider { --slider-blue:#5197d5; position:relative; overflow:hidden; background:#f8f8f8; color:#444; height:calc(100vh - var(--updm-header-height,122px)); min-height:380px; display:flex; flex-direction:column; justify-content:space-between; box-sizing:border-box; padding:16px 0 10px; }
@media only screen and (max-width:1000px) {
    #updm-home-slider { height:60vh; min-height:300px; max-height:600px; padding:12px 0 8px; }
}
#updm-home-slider .demo-stage { position:relative; flex:1 1 auto; width:100%; margin:0; min-height:0; touch-action:pan-y; user-select:none; }
#updm-home-slider .demo-slide { position:relative; width:calc(100% - 30px); max-height:100%; margin:0 auto; padding:4px; border-radius:20px; background:#fff; overflow:hidden; }
#updm-home-slider .demo-slide:not(:first-child) { display:none; }
#updm-home-slider .demo-slide a { display:block; width:100%; height:100%; }
#updm-home-slider .demo-slide img { width:100%; height:100%; max-width:none; object-fit:contain; border-radius:20px; pointer-events:none; }
#updm-home-slider .demo-slide.demo-full-bleed { padding:0; }
#updm-home-slider.is-enhanced .demo-stage { cursor:grab; }
#updm-home-slider.is-enhanced .demo-stage.dragging { cursor:grabbing; }
#updm-home-slider.is-enhanced .demo-slide { display:block; position:absolute; left:50%; top:50%; margin:0; will-change:transform,opacity; box-shadow:0 8px 20px rgba(28,58,77,.23); }
#updm-home-slider.is-enhanced .demo-slide img { height:100%; width:100%; object-fit:contain; will-change:transform; }
#updm-home-slider.is-enhanced .demo-full-bleed img { object-fit:cover; }
#updm-home-slider .demo-edge { display:none; }
#updm-home-slider.is-enhanced .demo-edge { display:grid; place-items:center; position:absolute; top:50%; transform:translateY(-50%); width:56px; height:112px; margin:0; padding:12px; border:0; border-radius:0; background:transparent; z-index:150; filter:drop-shadow(0 4px 10px rgba(24,55,79,.23)); touch-action:manipulation; }
#updm-home-slider .demo-edge::before { content:""; position:absolute; inset:0; background:#fff; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200' preserveAspectRatio='none'%3E%3Cpath d='M0 0 C0 44 100 48 100 100 C100 152 0 156 0 200 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat; }
#updm-home-slider .demo-edge-left { left:-1px; right:auto; }
#updm-home-slider .demo-edge-right { right:-1px; left:auto; }
#updm-home-slider .demo-edge-right::before { transform:scaleX(-1); }
#updm-home-slider .demo-edge span { position:relative; z-index:1; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#5197d5; color:#fff; font-size:14px; line-height:1; }
#updm-home-slider .demo-edge:disabled { cursor:default; }
#updm-home-slider .demo-caption { position:absolute; left:50%; bottom:16px; max-width:min(90%,800px); width:max-content; transform:translate(-50%,20px); z-index:140; opacity:0; padding:12px 24px; border:1px solid rgba(255,255,255,.6); border-radius:14px; background:rgba(185,219,242,.75); color:#000; backdrop-filter:blur(18px) saturate(130%); -webkit-backdrop-filter:blur(18px) saturate(130%); box-shadow:0 8px 24px rgba(48,94,126,.12); overflow-wrap:anywhere; pointer-events:none; transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1); }
#updm-home-slider .demo-caption.visible { opacity:1; transform:translate(-50%,0); }
#updm-home-slider .demo-scroll-cue { flex:0 0 32px; display:flex; align-items:center; justify-content:center; gap:8px; width:max-content; height:32px; margin:0 auto; padding:0 14px; color:#777; font-size:12px; letter-spacing:.12em; }
#updm-home-slider .demo-scroll-line { width:1px; height:16px; background:#5197d5; opacity:.7; }
#updm-home-slider .demo-scroll-chevron { color:#5197d5; font-size:20px; animation:updm-scroll-cue 2s ease-in-out infinite; }
#updm-home-slider.demo-entering .demo-slides, #updm-home-slider.demo-entering .demo-edge { opacity:0; }
#updm-home-slider.demo-entering .demo-edge { pointer-events:none; }
@keyframes updm-scroll-cue { 0%,100% { transform:translateY(-2px); opacity:.5; } 50% { transform:translateY(3px); opacity:1; } }
@container hp (max-width:480px) { #updm-home-slider .demo-caption { padding:14px 20px; } }
@media (hover:hover) and (pointer:fine) { #updm-home-slider .demo-slide img { transition:scale .7s cubic-bezier(.22,1,.36,1); } #updm-home-slider .demo-slide:hover img { scale:1.025; } }
@media (prefers-reduced-motion:reduce) {
    .updm-design *, .updm-design *::before, .updm-design *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
    #updm-home-slider .demo-scroll-chevron { animation:none; }
    #updm-home-slider.demo-entering .demo-slides, #updm-home-slider.demo-entering .demo-edge { opacity:1; }
}
.updm-design .hp-pending .hp-panel-content.hp-content-ready { pointer-events:auto; }
body.page-template-page-home #header-space { height:var(--updm-header-height,122px) !important; }
.updm-design .hp-contact { background:#fff; }
