/* High View widgets - every colour/size references Elementor v4 global variables (kit tokens).
   Change a token in Elementor > Variables and it updates here site-wide. */

/* HV Stats Counter (Figma: Facts Strip) */
.hv-stats{display:flex;flex-wrap:wrap;gap:var(--Space6);align-items:center;justify-content:center}
.hv-stat{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--SpaceXs);flex:0 0 var(--SizeStat,11rem);min-height:var(--SizeStat,11rem);padding:var(--Space6) var(--Space3);background:var(--ColorAccentTint);border-radius:var(--Radius22);text-align:center}
.hv-stat+.hv-stat{margin-left:var(--Space6)}
.hv-stat+.hv-stat::before{content:"";position:absolute;top:0;bottom:0;left:calc(-1 * var(--Space6));width:.5px;background:var(--ColorSkyAction)}
.hv-stat__num{width:100%;font-family:var(--FontHeading),sans-serif;font-size:var(--FsH2);font-weight:500;line-height:var(--LhH2);letter-spacing:var(--LsTight);color:var(--ColorBrandText);font-variant-numeric:tabular-nums;text-align:center}
.hv-stat__label{width:100%;margin:0;font-family:var(--FontBody),sans-serif;font-size:var(--FsBodyS);line-height:var(--LhBodyS);color:var(--ColorBrandText);text-align:center}

/* HV Leaders Messages (Figma: Frame 13) */
.hv-leaders{--hv-dim:.35;--hv-word:.18;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--Space6);width:100%;max-width:var(--SizeContent);margin-inline:auto}
.hv-leaders__people{flex:0 1 var(--SizeCol);display:flex;flex-direction:column;gap:var(--Space46);padding:var(--Space10) 0}
.hv-leaders__msg{flex:0 1 var(--SizeCol);display:flex;flex-direction:column;gap:var(--Space3);min-width:0}
.hv-leader{display:flex;flex-direction:column;align-items:flex-start;gap:var(--SpaceBtnGap)}
.hv-leader__av{width:95px;height:107px;border-radius:var(--Radius20);border:1px solid var(--ColorBorder);background:var(--ColorSurfaceAlt);overflow:hidden}
.hv-leader__av img{width:100%;height:100%;object-fit:cover;display:block}
.hv-leader__txt{display:flex;flex-direction:column}
.hv-leader__name{margin:0;font-family:var(--FontBody),sans-serif;font-size:var(--FsBodyL);font-weight:700;line-height:var(--LhBodyL);color:var(--ColorAccent)}
.hv-leader__role{margin:0;max-width:204px;font-family:var(--FontBody),sans-serif;font-size:var(--FsBodyM);line-height:var(--LhBodyM);color:var(--ColorAccent)}
.hv-leaders__eyebrow{margin:0;font-family:var(--FontBody),sans-serif;font-size:var(--FsOverline);font-weight:700;line-height:var(--LhOverline);letter-spacing:var(--LsWide);text-transform:uppercase;color:var(--ColorAccent)}
.hv-leaders__eyebrow::after{content:"";display:block;width:64px;height:46px;margin-top:var(--Space3);background:url(/wp-content/uploads/2026/10/highview-quote-mark.png) center/contain no-repeat}
.hv-leaders__quotes{display:grid}
.hv-leaders__quote{margin:0;padding:0;border:0;font-family:var(--FontHeading),sans-serif;font-size:var(--FsDisplayL);line-height:var(--LhDisplayL);letter-spacing:var(--LsTight);color:var(--ColorInk)}
.hv-leaders__quote+.hv-leaders__quote{margin-top:var(--Space6)}
.hv-leaders.is-anim .hv-leaders__quote{grid-area:1/1;margin-top:0;visibility:hidden}
.hv-leaders.is-anim .hv-leaders__quote.is-active{visibility:visible}
.hv-leaders.is-anim .hv-leader{opacity:var(--hv-dim);transition:opacity .4s}
.hv-leaders.is-anim .hv-leader.is-active{opacity:1}
.hv-leaders.is-anim .hv-w{opacity:var(--hv-word)}
@media (max-width:1024px){.hv-leaders{flex-direction:column;align-items:stretch;gap:var(--Space10)}.hv-leaders__people,.hv-leaders__msg{flex:none;width:100%}.hv-leaders__people{padding:0}}
@media (max-width:767px){.hv-leaders__people{order:2;padding:0}.hv-leaders.is-anim .hv-leader:not(.is-active){display:none}.hv-leader{flex-direction:row;align-items:center;gap:var(--Space5)}.hv-stat+.hv-stat{margin-left:0}.hv-stat+.hv-stat::before{display:none}.hv-stat{flex:1 1 40%}}

/* HV Photo Albums - filter pills, album cards, lightbox with swipe + thumbnails */
.hv-albums{display:flex;flex-direction:column;gap:var(--SpaceLg);width:100%;font-family:var(--FontBody),sans-serif}
.hv-albums__filters{display:flex;flex-wrap:wrap;gap:var(--Space3)}
.hv-albums__filter{padding:var(--SpaceSm) var(--SpaceMd);border:1px solid var(--ColorBorder);border-radius:var(--RadiusPill);background:var(--ColorBg);color:var(--ColorInkSecondary);font:600 var(--FsBodyM)/var(--LhBodyM) var(--FontBody),sans-serif;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.hv-albums__filter:hover,.hv-albums__filter:focus,.hv-albums__filter.is-active{background:var(--ColorBrandText);border-color:var(--ColorBrandText);color:var(--ColorSurface)}
.hv-albums__filter:focus-visible{outline:2px solid var(--ColorSkyAction);outline-offset:2px}
.hv-albums__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--SpaceMd)}
.hv-album{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--RadiusLg);overflow:hidden;background:var(--ColorSurfaceAlt);cursor:zoom-in;text-align:left;animation:hvAlbumIn .35s ease-out}
.hv-album[hidden]{display:none}
.hv-album:hover,.hv-album:focus{background:var(--ColorSurfaceAlt)}
.hv-album:focus-visible{outline:3px solid var(--ColorSkyAction);outline-offset:3px}
.hv-album__media{display:block;position:relative;padding-bottom:var(--SizeGalleryRatio,66.67%)}
.hv-album__img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;transition:transform .5s ease}
.hv-album:hover .hv-album__img,.hv-album:focus-visible .hv-album__img{transform:scale(1.04)}
.hv-album__count{position:absolute;top:var(--SpaceMd);right:var(--SpaceMd);display:inline-flex;align-items:center;gap:var(--SpaceXs);padding:var(--SpaceXs) var(--SpaceSm);border-radius:var(--RadiusPill);background:color-mix(in srgb,var(--ColorInk) 70%,transparent);color:var(--ColorSurface);font-size:var(--FsCaption);line-height:var(--LhCaption);font-weight:600}
.hv-album__chip{position:absolute;left:var(--SpaceMd);bottom:var(--SpaceMd);display:flex;flex-direction:column;max-width:calc(100% - 2 * var(--SpaceMd));padding:var(--SpaceSm) var(--Space3);border-radius:var(--RadiusSm);background:color-mix(in srgb,var(--ColorSurface) 88%,transparent)}
.hv-album__title{font-size:var(--FsH4);line-height:var(--LhH4);font-weight:600;color:var(--ColorInk)}
.hv-album__cat{font-size:var(--FsCaption);line-height:var(--LhCaption);color:var(--ColorInkTertiary)}
@keyframes hvAlbumIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

html.hv-lb-open{overflow:hidden}
.hv-lb{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:color-mix(in srgb,var(--ColorInk) 96%,transparent);color:var(--ColorSurface);font-family:var(--FontBody),sans-serif}
.hv-lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;animation:hvLbIn .25s ease-out}
.hv-lb::backdrop{background:color-mix(in srgb,var(--ColorInk) 80%,transparent)}
.hv-lb__bar{display:flex;align-items:center;gap:var(--SpaceMd);padding:var(--SpaceMd) var(--SpaceGutter)}
.hv-lb__title{flex:1;margin:0;font-size:var(--FsH4);line-height:var(--LhH4);font-weight:600;color:var(--ColorSurface)}
.hv-lb__count{margin:0;font-size:var(--FsBodyS);line-height:var(--LhBodyS);color:var(--ColorOnBrandMuted);font-variant-numeric:tabular-nums}
.hv-lb__close,.hv-lb__nav{display:inline-flex;align-items:center;justify-content:center;width:var(--SizeIconBtn);height:var(--SizeIconBtn);padding:0;border:0;border-radius:var(--RadiusPill);background:color-mix(in srgb,var(--ColorSurface) 12%,transparent);color:var(--ColorSurface);cursor:pointer;transition:background-color .2s}
.hv-lb__close:hover,.hv-lb__close:focus,.hv-lb__nav:hover,.hv-lb__nav:focus{background:color-mix(in srgb,var(--ColorSurface) 24%,transparent);color:var(--ColorSurface)}
.hv-lb__close:focus-visible,.hv-lb__nav:focus-visible,.hv-lb__thumb:focus-visible{outline:2px solid var(--ColorSky);outline-offset:2px}
.hv-lb__nav[hidden],.hv-lb__thumbs[hidden],.hv-lb__cap[hidden]{display:none}
.hv-lb__stage{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--SpaceMd);min-height:0;padding:0 var(--SpaceGutter)}
.hv-lb__track{flex:1;align-self:stretch;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;touch-action:pan-y;user-select:none}
.hv-lb__img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--RadiusSm);transition:transform .25s ease;-webkit-user-drag:none}
.hv-lb__track.is-dragging .hv-lb__img{transition:none;cursor:grabbing}
.hv-lb__track.is-in-next .hv-lb__img{animation:hvLbNext .3s ease-out}
.hv-lb__track.is-in-prev .hv-lb__img{animation:hvLbPrev .3s ease-out}
.hv-lb__cap{margin:var(--SpaceSm) var(--SpaceGutter) 0;font-size:var(--FsBodyS);line-height:var(--LhBodyS);color:var(--ColorOnBrandMuted);text-align:center}
.hv-lb__thumbs{display:flex;gap:var(--SpaceSm);overflow-x:auto;padding:var(--SpaceMd) var(--SpaceGutter) var(--Space6);scrollbar-width:none;scroll-snap-type:x proximity}
.hv-lb__thumbs::-webkit-scrollbar{display:none}
.hv-lb__thumb{flex:0 0 auto;width:4.5rem;height:3.25rem;padding:0;border:2px solid transparent;border-radius:var(--RadiusSm);overflow:hidden;background:none;opacity:.5;cursor:pointer;scroll-snap-align:center;transition:opacity .2s,border-color .2s}
.hv-lb__thumb:first-child{margin-left:auto}
.hv-lb__thumb:last-child{margin-right:auto}
.hv-lb__thumb:hover,.hv-lb__thumb:focus{opacity:.85;background:none}
.hv-lb__thumb.is-active{opacity:1;border-color:var(--ColorSurface)}
.hv-lb__thumb img{display:block;width:100%;height:100%;object-fit:cover}
@keyframes hvLbIn{from{opacity:0}to{opacity:1}}
@keyframes hvLbNext{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes hvLbPrev{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@media (max-width:767px){.hv-albums__grid{grid-template-columns:minmax(0,1fr)}.hv-lb__nav{display:none}.hv-lb__stage{padding:0}.hv-lb__img{border-radius:0}.hv-lb__thumb{width:3.5rem;height:2.5rem}}
@media (prefers-reduced-motion:reduce){.hv-album,.hv-lb[open],.hv-lb__track .hv-lb__img{animation:none!important}.hv-album__img{transition:none}}

/* HV Year Calendar (Figma: Exam Resource Library Section) - grid left, details panel right */
.hv-cal{display:flex;flex-direction:column;gap:var(--Space10);width:100%;font-family:var(--FontBody),sans-serif}
.hv-cal__nav{display:flex;align-items:center;gap:var(--SpaceBtnGap)}
.hv-cal__btn{display:inline-flex;align-items:center;justify-content:center;width:var(--SizeIconBtn);height:var(--SizeIconBtn);padding:0;border:1px solid var(--ColorInk);border-radius:0;background:var(--ColorSurface);color:var(--ColorInk);font:500 20px/1 var(--FontBody),sans-serif;cursor:pointer;transition:background .2s}
.hv-cal__btn:disabled{opacity:.5;cursor:default}
.hv-cal__btn:hover:not(:disabled),.hv-cal__btn:focus{background:var(--ColorAccentTint);color:var(--ColorInk);border-color:var(--ColorInk)}
.hv-cal__btn:focus-visible{outline:2px solid var(--ColorSkyAction);outline-offset:2px}
.hv-cal__year{margin:0;font-size:var(--FsH2);font-weight:500;line-height:var(--LhH2);letter-spacing:var(--LsTight);color:var(--ColorInk);font-variant-numeric:tabular-nums}
.hv-cal__layout{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--Space10)}
.hv-cal__grids{flex:0 0 auto;min-width:0}
.hv-cal__grid{display:grid;max-width:calc(3 * 148px + 2 * var(--SpaceXs));gap:var(--SpaceXs)}
.hv-cal__grid[hidden]{display:none}
.hv-cal__month{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:121px;padding:var(--Space15) var(--Space5);background:var(--ColorSurface);border:1px solid var(--ColorInk);border-radius:0;cursor:pointer;transition:background-color .2s}
.hv-cal__month:hover{background:var(--ColorSkyTintAlt)}
/* Today's month: border twice as thick (inset ring adds the extra 1px so the grid never shifts) */
.hv-cal__month.is-current{border-color:var(--hv-cal-current,var(--ColorInk));box-shadow:inset 0 0 0 1px var(--hv-cal-current,var(--ColorInk))}
/* The month the visitor clicked */
.hv-cal__month.is-active{background:var(--ColorSky)}
.hv-cal__month:focus-visible{outline:2px solid var(--ColorSkyAction);outline-offset:2px}
.hv-cal__mname{font-size:var(--FsBodyS);font-weight:400;line-height:var(--LhBodyS);color:var(--ColorInk);opacity:.8}
.hv-cal__empty{margin:0;font-size:var(--FsBodyS);line-height:normal;color:var(--ColorInk);opacity:.8}
.hv-cal__list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.hv-cal__list li[hidden]{display:none}
.hv-cal__ev{display:flex;align-items:flex-start;gap:var(--SpaceSm);width:100%;padding:0;border:0;border-radius:0;background:none;color:var(--ColorInk);font:400 var(--FsBodyS)/normal var(--FontBody),sans-serif;text-align:left;white-space:normal;cursor:pointer;opacity:.8}
.hv-cal__ev:hover,.hv-cal__ev:focus{background:none;color:var(--ColorAccentDark);text-decoration:underline}
.hv-cal__ev:focus-visible{outline:2px solid var(--ColorSkyAction);outline-offset:2px}
.hv-cal__ev.is-selected{opacity:1;color:var(--ColorAccentDark);font-weight:600;text-decoration:underline}
.hv-cal__day{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums}
.hv-cal__ttl{min-width:0;overflow-wrap:anywhere}
.hv-cal__more{align-self:flex-start;padding:0;border:0;background:none;color:var(--ColorAccentDark);font:600 var(--FsCaption)/var(--LhCaption) var(--FontBody),sans-serif;text-decoration:underline;cursor:pointer}
.hv-cal__more:hover,.hv-cal__more:focus{background:none;color:var(--ColorAccent)}

/* Details panel (replaces the old popup) */
.hv-cal__panel{flex:0 1 var(--SizeCalNote);min-width:0;color:var(--ColorInk)}
.hv-cal__intro,.hv-cal__detail{display:flex;flex-direction:column;gap:var(--SpaceSm)}
.hv-cal__intro[hidden],.hv-cal__detail[hidden]{display:none}
.hv-cal__intro-text{margin:0;font-size:var(--FsBodyM);line-height:var(--LhBodyM);color:var(--ColorInkTertiary)}
.hv-cal__hint{margin:0;font-size:var(--FsCaption);line-height:var(--LhCaption);color:var(--ColorInkTertiary);font-style:italic}
.hv-cal__img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--Radius10);margin-bottom:var(--SpaceSm)}
.hv-cal__img[hidden]{display:none}
.hv-cal__when{margin:0;font-size:var(--FsOverline);font-weight:700;line-height:var(--LhOverline);letter-spacing:var(--LsWide);text-transform:uppercase;color:var(--ColorAccent)}
.hv-cal__mt{margin:0;font-family:var(--FontHeading),sans-serif;font-size:var(--FsH2);font-weight:500;line-height:var(--LhH2);letter-spacing:var(--LsTight);color:var(--ColorInk)}
.hv-cal__mt:focus{outline:none}
.hv-cal__meta{margin:0;font-size:var(--FsBodyS);line-height:var(--LhBodyS);color:var(--ColorInkSecondary)}
.hv-cal__meta:empty{display:none}
.hv-cal__body{font-size:var(--FsBodyM);line-height:var(--LhBodyM);color:var(--ColorInkSecondary)}
.hv-cal__body p{margin:0 0 var(--Space3)}
.hv-cal__body p:last-child{margin-bottom:0}
.hv-cal__back{align-self:flex-start;margin-top:var(--SpaceSm);padding:0;border:0;background:none;color:var(--ColorAccentDark);font:600 var(--FsBodyS)/var(--LhBodyS) var(--FontBody),sans-serif;text-decoration:underline;cursor:pointer}
.hv-cal__back:hover,.hv-cal__back:focus{background:none;color:var(--ColorAccent)}
.hv-cal__back:focus-visible{outline:2px solid var(--ColorSkyAction);outline-offset:2px}
.hv-cal__panel.is-swapping>*{animation:hvCalIn .3s ease-out}
@keyframes hvCalIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hv-cal__panel.is-swapping>*{animation:none}}
@media (max-width:1024px){.hv-cal__layout{flex-direction:column;gap:var(--Space10)}.hv-cal__panel{flex:none;width:100%}}
@media (max-width:767px){.hv-cal__grids{width:100%}.hv-cal__grid{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))!important}.hv-cal__month{min-height:0;padding:var(--Space3)}}
