/*
Theme Name: Holist
Author: Site Migration
Version: 1.14
Description: Lightweight responsive Holist WordPress theme.
*/
:root{
 --white:#fff;
 --ink:#55565a;
 --muted:#858585;
 --line:#dedede;
 --footer:#777779;
 --footer-dark:#68686a;
 --purple:#6b2d68;
 --deep-purple:#420A3B;
 --blue:#214496;
 --magenta:#9D2E64;
 --pink:#D15797;
 --cyan:#00A6BC;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.65;font-weight:300}
a{color:var(--purple);text-decoration:none}
a:hover{text-decoration:underline}
.site-header{background:#fff;padding:28px 28px 12px}
.header-inner{max-width:1120px;margin:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.brand{display:block;width:285px;max-width:58vw}
.brand-stage{position:relative;width:100%;height:112px}
.brand-stage .fig{position:absolute;inset:0;width:100%;height:76px;object-fit:contain;object-position:center bottom;opacity:0;animation:holistFigures 12s infinite ease-in-out}
.brand-stage .fig.still{opacity:1;animation:none}
.brand-stage .man{animation-delay:0s}.brand-stage .boy{animation-delay:1.5s}.brand-stage .oldman{animation-delay:3s}
.brand-stage .girl{animation-delay:4.5s}.brand-stage .woman{animation-delay:6s}.brand-stage .oldwoman{animation-delay:7.5s}
@keyframes holistFigures{0%,8%,100%{opacity:0;transform:translateY(4px)}12%,28%{opacity:1;transform:translateY(0)}32%{opacity:0;transform:translateY(-3px)}}
.tagline{position:absolute;left:0;right:0;bottom:0;text-align:center;color:#6b2d68;font-size:25px;line-height:1.1;font-weight:300;letter-spacing:-.5px}
.site-nav{display:flex;align-items:center;gap:0;border-bottom:1px solid #cfcfcf}
.site-nav a{padding:10px 18px;color:#777;font-size:15px;text-transform:lowercase;border-left:1px solid #ddd}
.site-nav a:last-child{border-right:1px solid #ddd}
.site-nav a:hover,.site-nav .current-menu-item>a{background:#6b2d68;color:#fff;text-decoration:none}
.nav-toggle{display:none;background:#6b2d68;color:#fff;border:0;padding:11px 16px;font-size:15px}
.hero-drawing{width:100%;overflow:hidden;border-top:1px solid #eee;border-bottom:1px solid #ddd;margin-top:8px}
.hero-drawing img{display:block;width:100%;height:auto}
.wrap{max-width:1120px;margin:auto;padding:54px 28px}
.page-title,.section-title{font-weight:300;color:#6b2d68;line-height:1.15;text-transform:lowercase}
.page-title{font-size:48px;margin:0 0 28px}
.section-title{font-size:36px;margin:0 0 22px}
.lead{font-size:21px;line-height:1.55;color:#656568}
.home-intro{text-align:center;max-width:850px;margin:0 auto;padding:48px 28px 34px}
.home-intro h1{font-weight:300;font-size:20px;color:#777;margin:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:52px 0;border-top:1px solid #e2e2e2}
.split img{width:100%;height:auto;display:block}
.statement{font-size:24px;line-height:1.35;color:#6b2d68;font-weight:300;margin:24px 0}
.more{display:inline-block;margin-top:12px;border:1px solid #9b9b9b;color:#666;padding:7px 18px;text-transform:lowercase;font-size:14px}
.more:hover{background:#6b2d68;color:#fff;border-color:#6b2d68;text-decoration:none}
.sector-list{list-style:none;padding:0;margin:20px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sector-list li{border-bottom:1px solid #ddd;padding:8px 0;color:#6b2d68}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:38px}
.person{border-top:4px solid #6b2d68;padding-top:18px}
.person h2{font-size:25px;font-weight:300;color:#6b2d68;margin:0}
.qual{font-size:14px;color:#888;margin:2px 0 10px}
.phone{font-size:15px}
.news-holding{min-height:330px;display:flex;flex-direction:column;justify-content:center;max-width:680px}
.news-holding p{font-size:20px}
.site-footer{background:var(--footer);color:#fff;margin-top:60px}
.footer-inner{max-width:1120px;margin:auto;padding:34px 28px;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;font-size:13px;line-height:1.6}
.site-footer a{color:#fff}
.footer-title{font-size:16px;margin:0 0 8px;font-weight:400}
.footer-bottom{background:var(--footer-dark);color:#ddd;font-size:11px}
.footer-bottom-inner{max-width:1120px;margin:auto;padding:12px 28px}
@media(max-width:760px){
 .site-header{padding:20px 18px 0}.header-inner{display:block}.brand{width:250px;max-width:82vw;margin:auto}
 .nav-toggle{display:block;width:100%;margin-top:16px;text-align:left}
 .site-nav{display:none;flex-direction:column;align-items:stretch;border:0}
 .site-nav.open{display:flex}.site-nav a{border:0;border-bottom:1px solid #ddd;padding:12px 16px}
 .wrap{padding:38px 20px}.page-title{font-size:38px}.split{grid-template-columns:1fr;gap:28px;padding:38px 0}
 .team{grid-template-columns:1fr}.sector-list{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr;gap:20px}
 .tagline{font-size:22px}.brand-stage{height:104px}
}
@media(prefers-reduced-motion:reduce){.brand-stage .fig:not(.still){animation:none;display:none}}

/* v1.1 legacy-content fidelity */
.legacy-bullets{margin:18px 0 30px;padding-left:24px}
.legacy-bullets li{margin:6px 0}
.team-full{display:block}
.team-full .person{display:grid;grid-template-columns:190px 1fr;gap:30px;margin:0 0 48px;padding-top:22px}
.profile-photo{width:190px;height:auto;display:block;filter:grayscale(100%)}
.person-copy h2{margin-top:0}
@media(max-width:650px){.team-full .person{grid-template-columns:1fr}.profile-photo{width:min(220px,70vw)}}

/* v1.3 — legacy homepage content and imagery */
.home-feature{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr);gap:54px;align-items:start;padding:50px 0;border-top:1px solid #e2e2e2}
.home-feature--reverse{grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr)}
.home-feature-image img{display:block;width:100%;height:auto}
.home-feature-copy h4{font-size:20px;line-height:1.35;font-weight:400;color:#6b2d68;margin:26px 0 14px}
.home-bottom-banner{width:100vw;position:relative;left:50%;margin-left:-50vw;margin-top:25px;overflow:hidden;border-top:1px solid #ddd;border-bottom:1px solid #ddd}
.home-bottom-banner img{display:block;width:100%;height:auto}
@media(max-width:760px){.home-feature,.home-feature--reverse{grid-template-columns:1fr;gap:28px}.home-feature-image{max-width:420px;margin:auto}}

/* v1.4 — keep every Holist figure visible; movement only */
.brand-stage .fig:not(.still){
  opacity:1 !important;
  animation:holistJump 4.8s infinite ease-in-out !important;
  transform:translateY(0);
}
.brand-stage .man{animation-delay:0s !important}
.brand-stage .boy{animation-delay:-.8s !important}
.brand-stage .oldman{animation-delay:-1.6s !important}
.brand-stage .girl{animation-delay:-2.4s !important}
.brand-stage .woman{animation-delay:-3.2s !important}
.brand-stage .oldwoman{animation-delay:-4s !important}
@keyframes holistJump{
  0%,16%,100%{transform:translateY(0)}
  7%{transform:translateY(-9px)}
  11%{transform:translateY(2px)}
}
@media(prefers-reduced-motion:reduce){
 .brand-stage .fig:not(.still){display:block !important;opacity:1 !important;animation:none !important;transform:none !important}
}

/* v1.7 — v1.4 logo retained, one overlapping woman removed */
.brand-stage .woman{display:none !important}

/* Preserve v1.4 positioning/visibility/jump behaviour for remaining figures. */
.brand-stage .fig:not(.still):not(.ballerina){
 opacity:1 !important;
 animation:holistJump 4.8s infinite ease-in-out !important;
}
.brand-stage .man{animation-delay:0s !important}
.brand-stage .boy{animation-delay:-.8s !important}
.brand-stage .oldman{animation-delay:-1.6s !important}
.brand-stage .girl{animation-delay:-2.4s !important}

/* Last woman: v1.6-style ballerina spin, on the spot around her vertical axis. */
.brand-stage .ballerina{
 opacity:1 !important;
 display:block !important;
 transform-origin:50% 72%;
 animation:holistBallerinaV17 9.2s -3.2s infinite ease-in-out !important;
}
.brand-stage{perspective:700px}
@keyframes holistBallerinaV17{
 0%,58%,100%{transform:translateY(0) rotateY(0deg)}
 61%{transform:translateY(-3px) rotateY(0deg)}
 67%{transform:translateY(-3px) rotateY(180deg)}
 73%{transform:translateY(-3px) rotateY(360deg)}
 76%,100%{transform:translateY(0) rotateY(360deg)}
}
@media(prefers-reduced-motion:reduce){
 .brand-stage .ballerina{animation:none !important;transform:none !important}
}

/* v1.8 — clean two-logo header */
.header-v18{align-items:center}
.wordmark-brand{display:block;width:249px;flex:0 0 249px}
.wordmark-brand img{display:block;width:100%;height:auto}
.header-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end}
.people-brand{display:block;width:285px;max-width:100%}
.people-brand .brand-stage{position:relative;width:100%;height:112px}

/* Explicitly suppress the old middle woman selector if cached CSS remains. */
.people-brand .brand-stage .woman{display:none !important}

/* v1.4-style visible group movement */
.people-brand .brand-stage .fig{
 position:absolute;inset:0;width:100%;height:76px;object-fit:contain;object-position:center bottom;opacity:1;
}
.people-brand .brand-stage .still{animation:none !important}
.people-brand .brand-stage .man{animation:holistJump 5.8s 0s infinite ease-in-out !important}
.people-brand .brand-stage .boy{animation:holistJump 6.8s -1.1s infinite ease-in-out !important}
.people-brand .brand-stage .oldman{animation:holistJump 7.7s -2.4s infinite ease-in-out !important}
.people-brand .brand-stage .girl{animation:holistJump 6.2s -3.2s infinite ease-in-out !important}
.people-brand .brand-stage .oldwoman{animation:holistJump 8.4s -4.5s infinite ease-in-out !important}

/* Final woman is always visible and spins in place like a ballerina. */
.people-brand .brand-stage .endwoman{
 display:block !important;
 opacity:1 !important;
 transform-origin:50% 72%;
 animation:holistEndWomanSpin 10.8s -2.6s infinite ease-in-out !important;
}
@keyframes holistEndWomanSpin{
 0%,58%,100%{transform:translateY(0) rotateY(0deg)}
 62%{transform:translateY(-2px) rotateY(0deg)}
 68%{transform:translateY(-2px) rotateY(180deg)}
 74%{transform:translateY(-2px) rotateY(360deg)}
 77%,100%{transform:translateY(0) rotateY(360deg)}
}
@keyframes holistJump{
 0%,70%,100%{transform:translateY(0)}
 75%{transform:translateY(-9px)}
 79%{transform:translateY(2px)}
 82%{transform:translateY(0)}
}
@media(max-width:760px){
 .header-v18{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 .wordmark-brand{width:210px;flex-basis:auto;margin:0 auto}
 .header-right{width:100%;align-items:center;margin-left:0}
 .people-brand{width:250px}
}
@media(prefers-reduced-motion:reduce){
 .people-brand .brand-stage .fig{animation:none !important;transform:none !important;display:block !important;opacity:1 !important}
}

/* v1.9 — definitive three-column header and isolated animation */
.header-v19{
 max-width:1180px;
 display:grid !important;
 grid-template-columns:220px minmax(420px,1fr) 285px;
 align-items:center !important;
 gap:28px;
}
.header-v19 .wordmark-brand{width:220px;display:block}
.header-v19 .wordmark-brand img{width:100%;height:auto;display:block}
.nav-centre{display:flex;align-items:center;justify-content:center}
.nav-centre .site-nav{justify-content:center}
.people-brand-v19{display:block;width:285px}
.people-stage-v19{position:relative;width:285px;height:112px;perspective:700px}
.people-stage-v19 img{
 position:absolute;left:0;top:0;width:250px;height:76px;object-fit:contain;object-position:center bottom;
 opacity:1;display:block;
}
.people-base-v19{z-index:1}
.jump-v19{z-index:2}
.jump-man-v19{animation:v19jump 6.7s .2s infinite ease-in-out}
.jump-boy-v19{animation:v19jump 7.9s -1.6s infinite ease-in-out}
.jump-oldman-v19{animation:v19jump 8.8s -3.1s infinite ease-in-out}
.jump-girl-v19{animation:v19jump 7.3s -4.4s infinite ease-in-out}
.jump-oldwoman-v19{animation:v19jump 9.6s -5.8s infinite ease-in-out}

/* Dedicated far-right woman: independent from every old .woman rule */
.people-stage-v19 .ballerina-v19{
 left:230px !important;
 top:3px !important;
 width:52px !important;
 height:72px !important;
 object-fit:contain !important;
 object-position:center bottom !important;
 z-index:5 !important;
 opacity:1 !important;
 display:block !important;
 transform-origin:50% 70%;
 animation:v19ballerina 10.8s -2.2s infinite ease-in-out !important;
}
.tagline-v19{
 position:absolute;left:0;right:0;bottom:0;text-align:center;
 color:#6b2d68;font-size:25px;line-height:1.1;font-weight:300;letter-spacing:-.5px;
}
@keyframes v19jump{
 0%,72%,100%{transform:translateY(0)}
 76%{transform:translateY(-9px)}
 80%{transform:translateY(2px)}
 83%{transform:translateY(0)}
}
@keyframes v19ballerina{
 0%,58%,100%{transform:translateY(0) rotateY(0deg)}
 62%{transform:translateY(-2px) rotateY(0deg)}
 68%{transform:translateY(-2px) rotateY(180deg)}
 74%{transform:translateY(-2px) rotateY(360deg)}
 77%,100%{transform:translateY(0) rotateY(360deg)}
}
@media(max-width:980px){
 .header-v19{grid-template-columns:180px 1fr 230px;gap:16px}
 .header-v19 .wordmark-brand{width:180px}
 .people-brand-v19,.people-stage-v19{width:230px}
 .people-stage-v19 img{width:195px}
 .people-stage-v19 .ballerina-v19{left:185px !important;width:43px !important}
 .tagline-v19{font-size:21px}
}
@media(max-width:760px){
 .header-v19{display:flex !important;flex-direction:column;align-items:center !important;gap:12px}
 .header-v19 .wordmark-brand{width:210px}
 .nav-centre{width:100%;order:3;display:block}
 .nav-centre .nav-toggle{display:block}
 .people-brand-v19{order:2;width:250px}
 .people-stage-v19{width:250px}
 .people-stage-v19 img{width:212px}
 .people-stage-v19 .ballerina-v19{left:201px !important;width:47px !important}
}
@media(prefers-reduced-motion:reduce){
 .people-stage-v19 .jump-v19,.people-stage-v19 .ballerina-v19{animation:none !important;transform:none !important}
}

/* v1.10 — move ballerina into the group, directly beside the final man */
.people-stage-v19 .ballerina-v19{
 left:198px !important;
 width:48px !important;
}
@media(max-width:980px){
 .people-stage-v19 .ballerina-v19{left:158px !important;width:42px !important}
}
@media(max-width:760px){
 .people-stage-v19 .ballerina-v19{left:171px !important;width:45px !important}
}

/* v1.11 — tighter ballerina spacing and livelier original-style jumping */

/* Place the ballerina immediately alongside the last man, matching the
   close spacing seen between figures at the start of the group. */
.people-stage-v19 .ballerina-v19{
 left:166px !important;
 width:48px !important;
}

/* More frequent movement. Shared durations/delays intentionally allow
   occasional simultaneous jumps, as on the original animation. */
.people-stage-v19 .jump-man-v19{
 animation:v111jumpA 4.5s 0s infinite ease-in-out !important;
}
.people-stage-v19 .jump-boy-v19{
 animation:v111jumpB 5.0s -.8s infinite ease-in-out !important;
}
.people-stage-v19 .jump-oldman-v19{
 animation:v111jumpA 4.5s 0s infinite ease-in-out !important;
}
.people-stage-v19 .jump-girl-v19{
 animation:v111jumpC 4.1s -1.6s infinite ease-in-out !important;
}
.people-stage-v19 .jump-oldwoman-v19{
 animation:v111jumpB 5.0s -.8s infinite ease-in-out !important;
}
.people-stage-v19 .ballerina-v19{
 animation:v111ballerina 6.4s -1.2s infinite ease-in-out !important;
}

@keyframes v111jumpA{
 0%,52%,100%{transform:translateY(0)}
 58%{transform:translateY(-9px)}
 64%{transform:translateY(2px)}
 68%{transform:translateY(0)}
}
@keyframes v111jumpB{
 0%,30%,100%{transform:translateY(0)}
 36%{transform:translateY(-10px)}
 42%{transform:translateY(2px)}
 46%{transform:translateY(0)}
}
@keyframes v111jumpC{
 0%,66%,100%{transform:translateY(0)}
 72%{transform:translateY(-8px)}
 78%{transform:translateY(1px)}
 82%{transform:translateY(0)}
}
@keyframes v111ballerina{
 0%,48%,100%{transform:translateY(0) rotateY(0deg)}
 53%{transform:translateY(-2px) rotateY(0deg)}
 61%{transform:translateY(-2px) rotateY(180deg)}
 69%{transform:translateY(-2px) rotateY(360deg)}
 74%,100%{transform:translateY(0) rotateY(360deg)}
}
@media(max-width:980px){
 .people-stage-v19 .ballerina-v19{left:132px !important;width:42px !important}
}
@media(max-width:760px){
 .people-stage-v19 .ballerina-v19{left:143px !important;width:45px !important}
}

/* v1.12 — Who We Are: original-style three-person team row */
body.page-who-we-are .team-grid,
body.page-who-we-are .team-list,
body.page-who-we-are .people-grid,
body.page-who-we-are .team{
 display:grid !important;
 grid-template-columns:repeat(3,minmax(0,1fr)) !important;
 gap:36px !important;
 align-items:start !important;
}
body.page-who-we-are .team-card,
body.page-who-we-are .team-member,
body.page-who-we-are .person{
 width:auto !important;
 max-width:none !important;
 margin:0 !important;
 display:block !important;
}
body.page-who-we-are .team-card img,
body.page-who-we-are .team-member img,
body.page-who-we-are .person img{
 width:100% !important;
 height:auto !important;
 display:block !important;
 margin:0 0 20px !important;
}
@media(max-width:760px){
 body.page-who-we-are .team-grid,
 body.page-who-we-are .team-list,
 body.page-who-we-are .people-grid,
 body.page-who-we-are .team{
  grid-template-columns:1fr !important;
  gap:42px !important;
 }
}

/* Reliable Who We Are selector from page.php */
.page-who-we-are .team{
 display:grid !important;
 grid-template-columns:repeat(3,minmax(0,1fr)) !important;
 gap:34px !important;
 align-items:start !important;
}
.page-who-we-are .person{display:block !important;width:auto !important;margin:0 !important}
.page-who-we-are .profile-photo{display:block !important;width:100% !important;height:auto !important;margin:0 0 18px !important}
.page-who-we-are .person h2{margin-top:0}
@media(max-width:760px){.page-who-we-are .team{grid-template-columns:1fr !important}}

/* v1.13 footer address separation */
.footer-locations{display:block !important}
.footer-location{display:block}
.footer-location + .footer-location{margin-top:24px}
.main-phone{font-size:1.08em;margin-top:0}

/* v1.14 footer social links */
.footer-social{margin-top:20px}
