/* GPV Site — styles for portal-managed blocks on public pages. Scoped to .gpv-site-* classes. */
.gpv-site-table-wrap { overflow-x: auto; border: 1px solid #dbe3ee; border-radius: 12px; background: #fff; margin: 0 0 24px; }
.gpv-site-table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.gpv-site-table th { background: #0b3b7a; color: #fff; text-align: left; padding: 10px 14px; font-size: 13px; letter-spacing: .03em; text-transform: uppercase; border: 0; }
.gpv-site-table td { padding: 10px 14px; border: 0; border-bottom: 1px solid #e6ecf3; vertical-align: top; }
.gpv-site-table tr:last-child td { border-bottom: 0; }
.gpv-site-table tr.is-past td { color: #8a99ab; }
.gpv-site-table tr.is-current td { background: #fff8e6; }
.gpv-site-table a { color: #0b3b7a; font-weight: 600; text-decoration: none; }
.gpv-site-table a:hover { text-decoration: underline; }
.gpv-site-empty { color: #5d6f84; font-style: italic; }

.gpv-site-upcoming { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.gpv-site-upcoming__item { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid #dbe3ee; border-left: 4px solid #d4a22f; border-radius: 10px; background: #fff; }
.gpv-site-upcoming__item.is-current { border-left-color: #13794b; background: #f1faf5; }
.gpv-site-upcoming__item time { font-size: 13px; font-weight: 700; color: #0b3b7a; }
.gpv-site-upcoming__item span { font-size: 13px; color: #5d6f84; }

.gpv-site-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.gpv-site-link { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 12px; border: 1px solid #dbe3ee; background: #fff; color: #1b2a3a; text-decoration: none; }
.gpv-site-link:hover { border-color: #0b3b7a; box-shadow: 0 6px 16px rgba(11,59,122,.08); }
.gpv-site-link__badge { flex: none; padding: 3px 8px; border-radius: 999px; background: #d4a22f; color: #fff; font-size: 12px; font-weight: 700; }
.gpv-site-link__text { flex: 1; min-width: 0; }
.gpv-site-link__text strong, .gpv-site-link__text small { display: block; }
.gpv-site-link__text small { color: #5d6f84; font-size: 13px; }
.gpv-site-link__arrow { color: #0b3b7a; font-size: 22px; }

.gpv-site-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.gpv-site-album { margin: 0; background: #fff; border: 1px solid #dbe3ee; border-radius: 12px; overflow: hidden; }
.gpv-site-album__open { position: relative; display: block; width: 100%; padding: 0; border: 0; background: #eef2f7; cursor: zoom-in; }
.gpv-site-album__open img { display: block; width: 100%; height: 190px; object-fit: cover; }
.gpv-site-album__count { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 999px; background: rgba(0,0,0,.65); color: #fff; font-size: 12px; }
.gpv-site-album figcaption { padding: 10px 14px 14px; }
.gpv-site-album figcaption strong, .gpv-site-album figcaption time, .gpv-site-album figcaption span { display: block; }
.gpv-site-album figcaption time { color: #5d6f84; font-size: 13px; }
.gpv-site-album figcaption span { color: #3d4f63; font-size: 14px; margin-top: 4px; }

.gpv-site-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(5,12,24,.92); }
.gpv-site-lightbox[hidden] { display: none; }
.gpv-site-lightbox img { max-width: 92vw; max-height: 82vh; object-fit: contain; }
.gpv-site-lightbox__caption { position: absolute; left: 0; right: 0; bottom: 16px; text-align: center; color: #fff; font-size: 14px; padding: 0 16px; }
.gpv-site-lightbox button { position: absolute; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 26px; cursor: pointer; }
.gpv-site-lightbox button:focus-visible { outline: 3px solid #7aa7e8; }
.gpv-site-lightbox__close { top: 16px; right: 16px; }
.gpv-site-lightbox__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.gpv-site-lightbox__next { right: 16px; top: 50%; transform: translateY(-50%); }

@media (max-width: 640px) {
	.gpv-site-table thead { display: none; }
	.gpv-site-table, .gpv-site-table tbody, .gpv-site-table tr, .gpv-site-table td { display: block; width: 100%; }
	.gpv-site-table tr { padding: 8px 0; border-bottom: 1px solid #e6ecf3; }
	.gpv-site-table td { border: 0; padding: 3px 14px; }
	.gpv-site-table td[data-label]::before { content: attr(data-label); display: block; font-size: 11px; color: #5d6f84; text-transform: uppercase; }
	.gpv-site-lightbox__prev, .gpv-site-lightbox__next { top: auto; bottom: 56px; transform: none; }
}

/* [gpv_notice_board] — homepage "Institute Notices & Events" box (moved unchanged from the old code snippet). */
.gpv-ne{--navy:#0d2d62;--deep:#071d42;--blue:#1757a6;--gold:#e6ad36;--ink:#172033;--muted:#657086;--line:#dbe2ec;max-width:1180px;margin:0 auto;padding:28px;border:1px solid #e3e8f0;border-radius:22px;background:#f8fafc;color:var(--ink);font-family:Inter,Arial,sans-serif;box-sizing:border-box}.gpv-ne *{box-sizing:border-box}.gpv-ne a:focus-visible{outline:3px solid rgba(230,173,54,.72);outline-offset:3px}.gpv-ne-head,.gpv-ne-panel-head,.gpv-ne-events-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.gpv-ne-head{align-items:flex-end;margin-bottom:22px}.gpv-ne-kicker{margin:0 0 4px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.gpv-ne h2{margin:0;color:var(--deep);font-size:clamp(25px,4vw,36px);line-height:1.15}.gpv-ne h3{margin:0;color:var(--deep);font-size:16px}.gpv-ne-button,.gpv-ne-more{display:inline-flex;align-items:center;gap:6px;font-weight:800;text-decoration:none}.gpv-ne-button{padding:10px 15px;border-radius:9px;background:var(--navy);color:#fff!important;font-size:13px}.gpv-ne-button:hover{background:var(--blue)}.gpv-ne-more{color:var(--blue)!important;font-size:13px}.gpv-ne-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px}.gpv-ne-notices,.gpv-ne-events{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.gpv-ne-panel-head{margin-bottom:13px}.gpv-ne-meta{color:var(--muted);font-size:12px;font-weight:700}.gpv-ne-table{overflow:hidden;border:1px solid var(--line);border-radius:11px}.gpv-ne-table-head,.gpv-ne-row{display:grid;grid-template-columns:46px 82px minmax(0,1fr)}.gpv-ne-table-head{background:var(--navy);color:#fff;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.gpv-ne-table-head span,.gpv-ne-row>span,.gpv-ne-row>div{padding:9px 10px;border-right:1px solid var(--line)}.gpv-ne-table-head span:last-child,.gpv-ne-row>*:last-child{border-right:0}.gpv-ne-row{min-height:52px;border-bottom:1px solid var(--line);font-size:13px}.gpv-ne-row:nth-child(even){background:#f8fafc}.gpv-ne-row:last-child{border-bottom:0}.gpv-ne-num,.gpv-ne-date{display:flex;align-items:center;color:var(--muted);font-variant-numeric:tabular-nums}.gpv-ne-num{justify-content:center;font-weight:800}.gpv-ne-copy{display:flex;align-items:center;min-width:0}.gpv-ne-copy a{color:var(--ink)!important;font-weight:700;text-decoration:none!important}.gpv-ne-copy a:hover{color:var(--blue)!important;text-decoration:underline!important;text-underline-offset:3px}.gpv-ne-new{display:inline-block;margin-right:6px;padding:2px 5px;border:1px solid #efc260;border-radius:4px;background:#fff5dc;color:#8a4c00;font-size:9px;font-weight:900;line-height:1.2;vertical-align:2px}.gpv-ne-notices>.gpv-ne-more{margin-top:13px}.gpv-ne-empty{padding:24px;color:var(--muted);font-size:13px;text-align:center}.gpv-ne-recent{overflow:hidden;border-radius:16px;background:linear-gradient(155deg,var(--navy),var(--deep));color:#fff}.gpv-ne-recent .gpv-ne-panel-head{margin:0;padding:17px;border-bottom:1px solid rgba(255,255,255,.13)}.gpv-ne-recent h3{color:#fff}.gpv-ne-live{color:#ccefe1;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.gpv-ne-recent-window{height:278px;overflow:hidden}.gpv-ne-recent-track{animation:gpv-ne-scroll 44s linear infinite}.gpv-ne-recent-window:hover .gpv-ne-recent-track,.gpv-ne-recent-window:focus .gpv-ne-recent-track,.gpv-ne-recent-window:focus-within .gpv-ne-recent-track{animation-play-state:paused}.gpv-ne-recent-group{padding:2px 17px 0}.gpv-ne-recent-item{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.13)}.gpv-ne-recent-item time{display:block;margin-bottom:4px;color:#ffdc8c;font-size:10px;font-weight:800;text-transform:uppercase}.gpv-ne-recent-item a{display:block;color:#fff!important;font-size:12.5px;font-weight:650;line-height:1.4;text-decoration:none!important}.gpv-ne-recent-item a:hover{color:#ffdc8c!important;text-decoration:underline!important;text-underline-offset:3px}.gpv-ne-pause{margin:0;padding:8px 14px 11px;color:rgba(255,255,255,.58);font-size:10px;text-align:center}@keyframes gpv-ne-scroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}.gpv-ne-events{margin-top:18px}.gpv-ne-events-head{margin-bottom:14px}.gpv-ne-event-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.gpv-ne-event{padding:13px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;background:linear-gradient(145deg,#fff,#f8fafc)}.gpv-ne-event.current{border-left-color:#16845b;background:#f0fbf6}.gpv-ne-event time{display:block;color:var(--blue);font-size:11px;font-weight:900;text-transform:uppercase}.gpv-ne-event strong{display:block;margin:5px 0 3px;color:var(--deep);font-size:13px;line-height:1.3}.gpv-ne-event span{display:block;color:var(--muted);font-size:11.5px;line-height:1.4}@media(max-width:900px){.gpv-ne-grid{grid-template-columns:1fr}.gpv-ne-event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.gpv-ne{padding:15px;border-radius:17px}.gpv-ne-head{align-items:flex-start;flex-direction:column}.gpv-ne-notices,.gpv-ne-events{padding:13px}.gpv-ne-table-head,.gpv-ne-row{grid-template-columns:34px 66px minmax(0,1fr)}.gpv-ne-table-head span,.gpv-ne-row>span,.gpv-ne-row>div{padding:8px 6px}.gpv-ne-table-head{font-size:10px}.gpv-ne-row{font-size:11.5px}.gpv-ne-events-head{align-items:flex-start}.gpv-ne-event-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.gpv-ne-recent-track{animation:none}.gpv-ne-recent-window{overflow-y:auto}}
