/* About and specialist-profile pages. All About composition is scoped to .vv-team-page. */
.vv-team-page { background: var(--vv-paper, #fffaf7); color: var(--vv-ink, #20232d); }
.vv-team-page h1, .vv-team-page h2, .vv-team-page h3 { color: inherit; letter-spacing: -.055em; }
.about-hero { position: relative; display: grid; min-height: clamp(35rem, 70svh, 47.5rem); overflow: clip; color: var(--vv-white, #fff); background: var(--vv-ink, #20232d); }
.about-hero::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgb(20 27 25 / .9) 0%, rgb(20 27 25 / .75) 35%, rgb(20 27 25 / .38) 56%, transparent 80%); content: ""; }
.about-hero__media, .about-hero__media img { width: 100%; height: 100%; }
.about-hero__media { position: absolute; inset: 0; margin: 0; }
.about-hero__media img { display: block; object-fit: cover; object-position: center 52%; }
.about-hero__content { position: relative; z-index: 2; display: grid; align-content: center; width: var(--vv-shell, min(calc(100% - 2rem), 75rem)); padding-block: clamp(4rem, 9vw, 8rem); }
.about-hero .eyebrow, .about-hero h1, .about-hero .text-link { color: var(--vv-white, #fff); }
.about-hero .eyebrow::before { background: var(--vv-red, #ff224d); }
.about-hero h1 { max-width: 18ch; margin: .9rem 0 1.2rem; font-size: clamp(2.55rem, 5.2vw, 5.3rem); line-height: .97; }
.about-hero__lead { max-width: 42rem; margin: 0; color: rgb(255 255 255 / .9); font-size: clamp(1.05rem, 1.55vw, 1.32rem); line-height: 1.55; }
.about-hero .action-row { margin-top: 1.7rem; }
.about-hero .text-link { border-bottom-color: rgb(255 255 255 / .42); }
.about-facts { border-bottom: 1px solid var(--vv-line, #e8deda); background: var(--vv-white, #fff); }
.about-facts dl { display: grid; margin: 0; }
.about-facts dl > div { padding: 1.35rem 0; border-bottom: 1px solid var(--vv-line, #e8deda); }
.about-facts dl > div:last-child { border: 0; }
.about-facts dt { font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-weight: 900; letter-spacing: -.055em; }
.about-facts dd { margin: .15rem 0 0; color: var(--vv-muted, #65636b); font-size: .88rem; font-weight: 700; }
.about-centre, .team-roster, .team-leadership, .team-organisation, .team-facilities { padding: clamp(3.5rem, 7vw, 7rem) 0; }
.about-centre { background: var(--vv-paper, #fffaf7); }
.about-centre__grid { display: grid; gap: 2.5rem; }
.about-centre h2, .team-section-intro h2, .team-facilities h2 { max-width: 17ch; margin: .8rem 0 1rem; font-size: clamp(2.15rem, 4.1vw, 4.1rem); line-height: .98; }
.about-centre__lead, .team-section-intro > p:last-child, .team-facilities__intro > p:last-child { max-width: 45rem; margin: 0; color: var(--vv-muted, #65636b); line-height: 1.65; }
.about-centre__principles { display: grid; border-top: 1px solid var(--vv-line, #e8deda); }
.about-centre__principles section { padding: 1.35rem 0; border-bottom: 1px solid var(--vv-line, #e8deda); }
.about-centre__principles h3 { margin: 0 0 .55rem; font-size: 1.35rem; }
.about-centre__principles p { max-width:35rem; margin:0; color:var(--vv-muted,#65636b); line-height:1.58; }
.team-roster { background: var(--vv-white, #fff); }
.team-section-intro { max-width: 47rem; margin-bottom: 2rem; }
.team-roster__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.35rem .9rem; }
.team-person { min-width:0; }
.team-person a { display:block; color:inherit; text-decoration:none; }
.team-person img { display:block; width:100%; aspect-ratio:4 / 5; object-fit:cover; object-position:center 20%; background:var(--vv-sand,#f1e5d5); }
.team-person span { display:grid; gap:.32rem; padding-top:.85rem; }
.team-person strong { font-size:clamp(1.05rem,2vw,1.35rem); letter-spacing:-.04em; line-height:1.05; }
.team-person small { color:var(--vv-muted,#65636b); line-height:1.38; }
.team-person em { margin-top:.12rem; color:var(--vv-red-dark,#bd1538); font-size:.78rem; font-style:normal; font-weight:850; }
.team-person a:hover strong { color:var(--vv-red-dark,#bd1538); }
.team-guidance { max-width:42rem; margin:2rem 0 .65rem; color:var(--vv-muted,#65636b); }
.team-organisation { background:var(--vv-sage,#d9e5de); }
.team-leadership { background:var(--vv-paper,#fffaf7); }
.team-roster__grid--organisation { max-width:none; }
.team-facilities { background:var(--vv-paper,#fffaf7); }
.team-facilities__intro { max-width:49rem; margin-bottom:2rem; }
.facility-gallery { display:grid; gap:1.8rem; }
.facility-gallery figure { margin:0; }
.facility-gallery a { display:block; }
.facility-gallery img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.facility-gallery__wide img { object-position:center 48%; }
.facility-gallery figcaption { padding-top:.85rem; }
.facility-gallery h3 { margin:0 0 .32rem; font-size:1.25rem; }
.facility-gallery p { max-width:35rem; margin:0; color:var(--vv-muted,#65636b); line-height:1.55; }
.vv-gallery-open { overflow:hidden; }
.vv-gallery-lightbox { position:fixed; z-index:1000; inset:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.75rem; padding:1rem; background:rgb(20 31 29 / .92); }
.vv-gallery-lightbox[hidden] { display:none; }
.vv-gallery-lightbox figure { width:min(100%,72rem); margin:0; justify-self:center; }
.vv-gallery-lightbox img { display:block; width:100%; max-height:78vh; object-fit:contain; background:#111; }
.vv-gallery-lightbox figcaption { color:#fff; padding:.8rem 0 0; text-align:center; }
.vv-gallery-lightbox button { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid rgb(255 255 255 / .65); border-radius:50%; background:rgb(20 31 29 / .72); color:#fff; font:inherit; font-size:1.5rem; cursor:pointer; }
.vv-gallery-lightbox button:focus-visible { outline:3px solid var(--vv-accent,#ff224d); outline-offset:3px; }
.vv-gallery-lightbox__close { position:absolute; top:1rem; right:1rem; }
.team-final { padding:clamp(3rem,6vw,5rem) 0; background:var(--vv-sand,#f1e5d5); }
.team-final > div { display:grid; gap:1.5rem; align-items:center; }
.team-final h2 { max-width:18ch; margin:0 0 .6rem; font-size:clamp(2rem,3.8vw,3.5rem); line-height:.98; }
.team-final p { max-width:44rem; margin:0; color:var(--vv-muted,#65636b); }
.team-final .action-row { align-items:flex-start; }

/* Existing Ieva profile presentation. */
.vv-profile { background:var(--vv-paper,#fffaf7); color:var(--vv-ink,#20232d); }
.profile-crumb { width:var(--vv-shell,min(calc(100% - 2rem),75rem)); margin:1.5rem auto 0; display:flex; gap:.6rem; font-size:.9rem; }
.profile-hero { padding:clamp(2rem,4vw,3.5rem) 0; background:var(--vv-sage,#d9e5de); color:var(--vv-ink,#20232d); }
.profile-hero > div, .profile-copy > div, .profile-final > div { display:grid; gap:2rem; }
.profile-hero figure { margin:0; }.profile-hero img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 24%; }.profile-hero h1 { max-width:16ch; color:var(--vv-ink,#20232d); font-size:clamp(2.6rem,5vw,4.8rem); line-height:.98; letter-spacing:-.06em; }.profile-role { color:var(--vv-green,#234a40); font-weight:800; }.profile-hero p,.profile-copy p { max-width:44rem; line-height:1.65; }.profile-copy { padding:clamp(2.5rem,5vw,4.5rem) 0; }.profile-copy > div { grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); align-items:start; }.profile-copy section { max-width:46rem; }.profile-copy section + section { border-top:1px solid var(--vv-line,#e8deda); padding-top:1.25rem; }.profile-copy p + p { margin-top:.8rem; }.profile-copy ul { padding-left:1.1rem; }.profile-final { padding:2.5rem 0; background:var(--vv-green,#234a40); color:var(--vv-white,#fff); }.profile-final h2 { color:inherit; }.profile-final p { margin:0; color:rgb(255 255 255 /.84); }.profile-final .text-link { color:inherit; }
@media (min-width:48rem) { .about-facts dl { grid-template-columns:repeat(3,minmax(0,1fr)); }.about-facts dl > div { min-height:6.4rem; padding:1.35rem 1.5rem; border-right:1px solid var(--vv-line,#e8deda); border-bottom:0; }.about-facts dl > div:first-child { padding-left:0; }.about-facts dl > div:last-child { border-right:0; }.facility-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }.facility-gallery__wide { grid-column:1 / -1; }.facility-gallery__wide img { aspect-ratio:16 / 7; }.team-final > div,.profile-final > div { grid-template-columns:minmax(0,1fr) auto; }.profile-hero > div { grid-template-columns:minmax(17rem,.7fr) minmax(0,1.3fr); gap:clamp(2rem,6vw,6rem); } }
@media (min-width:64rem) { .about-centre__grid { grid-template-columns:minmax(0,1.05fr) minmax(21rem,.8fr); gap:clamp(3rem,8vw,8rem); }.team-roster__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.2rem 1.35rem; }.facility-gallery { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:2.5rem; }.facility-gallery__wide { grid-column:1 / -1; }.facility-gallery > figure:not(.facility-gallery__wide) img { aspect-ratio:5/4; } }
@media (max-width:47.999rem) { .vv-gallery-lightbox { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr) auto; padding:1rem .5rem; }.vv-gallery-lightbox figure { align-self:center; }.vv-gallery-lightbox img { max-height:68vh; }.vv-gallery-lightbox__previous { position:absolute; left:.65rem; bottom:1.2rem; }.vv-gallery-lightbox__next { position:absolute; right:.65rem; bottom:1.2rem; } }
@media (max-width:47.999rem) { .about-hero { display:flex; min-height:0; flex-direction:column; background:var(--vv-green,#234a40); overflow:visible; }.about-hero::after { display:none; }.about-hero__media { position:relative; inset:auto; height:auto; }.about-hero__media img { height:auto; aspect-ratio:4/3; object-position:center 50%; }.about-hero__content { width:100%; padding:2.5rem max(1rem, calc((100% - var(--vv-shell,min(calc(100% - 2rem),75rem))) / 2)) 2.8rem; }.about-hero h1 { max-width:13ch; font-size:clamp(2.3rem,11vw,3.35rem); }.about-hero .action-row { align-items:flex-start; }.about-hero .text-link { width:fit-content; }.team-final .action-row { width:100%; }.team-final .button { width:100%; } }
