
/* ===== Team profiles - brass medallion portraits, details at right ===== */
#pz-root .pz-team{display:flex;flex-direction:column;gap:24px;margin:26px 0 0;padding:0;background:transparent;border:0;border-radius:0}
#pz-root .pz-px-main{background:transparent}
#pz-root .pz-team-row{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;padding:46px 44px 40px;background:#f8f2e2;border:1px solid #d9c6a3;border-radius:24px;overflow:hidden}
#pz-root .pz-team-row::before{content:"";position:absolute;inset:9px;border:1px solid #e3d3b6;border-radius:16px;pointer-events:none}
@media (hover:hover){
  #pz-root .pz-team-row{transition:transform .35s ease}
  #pz-root .pz-team-row:hover{transform:translateY(-3px)}
}
/* medallion */
#pz-root .pz-team-photo{position:relative;width:min(500px,78%);max-width:100%;margin:0 auto 28px;padding:0;flex:none}
#pz-root .pz-team-frame{position:relative;width:100%;height:auto;aspect-ratio:4/5;max-width:100%;box-sizing:border-box;border-radius:14px;padding:11px;background:#f8f2e0;border:1.5px solid #b39052}
#pz-root .pz-team-frame::before{content:"";position:absolute;inset:0;border-radius:18px;background:#0a4b30;transform:translate(16px,16px);z-index:-1;pointer-events:none}#pz-root .pz-team-frame::marker{content:none}
#pz-root .pz-team-frame::after{display:none}
#pz-root .pz-team-frame img{width:100%;height:100%;object-fit:cover;border-radius:7px;display:block;border:1px solid #b9ac94}
#pz-root .pz-team-shine{display:none}
#pz-root .pz-team-shine::before{content:"";position:absolute;top:-25%;height:150%;left:-48%;width:36%;transform:skewX(-16deg) translateX(0)}
#pz-root .pz-team-row:hover .pz-team-shine::before{transform:skewX(-16deg) translateX(520%);transition:transform 1s cubic-bezier(.4, 0, .2, 1)}
/* botanical sprig accents on the ring */
#pz-root .pz-team-corner{position:absolute;width:54px;height:54px;color:#A8803A;opacity:.95;z-index:3;filter:none}
#pz-root .pz-team-corner.tl{top:-12px;left:-12px;right:auto;bottom:auto;transform:none}
#pz-root .pz-team-corner.br{bottom:-12px;right:-12px;top:auto;left:auto;transform:rotate(180deg)}
/* details - right of the portrait */
#pz-root .pz-team-info{min-width:0;width:100%;max-width:760px;margin:0 auto;padding:0;display:flex;flex-direction:column;align-items:center}
#pz-root h3.pz-team-name{font-family:"Fraunces","Playfair Display",serif;font-weight:500;font-size:clamp(32px,3.2vw,46px);line-height:1.05;letter-spacing:.01em;color:var(--green,#0C5C3A);margin:0 0 10px;text-align:center}
#pz-root h3.pz-team-name em{font-style:italic;font-weight:500;color:var(--brass,#A8803A)}
#pz-root .pz-team-role{display:flex;justify-content:center;align-items:center;gap:12px;font-family:"Hanken Grotesk",sans-serif;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#8a6a2c;margin:0 0 18px}#pz-root .pz-team-role::before{content:"";flex:0 0 36px;height:1px}
#pz-root .pz-team-role::after{content:"";flex:0 0 36px;height:1px}
#pz-root .pz-team-info p{font-family:"Hanken Grotesk",sans-serif;font-size:16px;line-height:1.72;color:#3E4B41;margin:0 0 12px;max-width:60ch;text-align:center}
#pz-root .pz-team-info p:last-child{margin-bottom:0}
/* tablet */
@media (max-width:1080px){
  #pz-root .pz-team-row{padding:34px 30px 30px}
  #pz-root .pz-team-photo{width:min(420px,80%)}
  #pz-root .pz-team-frame{width:300px;height:375px;padding:9px}
#pz-root .pz-team-frame::before{transform:translate(12px,12px)}
  
  
}
/* mobile - portrait left, name/role beside it, story below */
@media (max-width:640px){
  #pz-root .pz-team{gap:20px;margin:28px 0 8px}
  #pz-root .pz-team-row{padding:26px 20px 24px}
  #pz-root .pz-team-row::before{inset:7px;border-radius:12px}
  #pz-root .pz-team-info{display:contents}
  #pz-root .pz-team-photo{width:min(400px,94vw);margin:0 auto 20px}
  #pz-root .pz-team-frame{width:100%;height:auto;aspect-ratio:4/5;padding:8px}
#pz-root .pz-team-frame::before{transform:translate(10px,10px)}
  
  
  
  #pz-root .pz-team-corner{width:40px;height:40px}
  #pz-root .pz-team-corner.tl{top:-7px;left:-5px}
  #pz-root .pz-team-corner.br{bottom:-7px;right:-5px}
  #pz-root h3.pz-team-name{font-size:26px;margin:0 0 8px}
  #pz-root .pz-team-role{margin:0 0 14px;font-size:11px;letter-spacing:.16em}
  #pz-root .pz-team-role::after{flex-basis:26px}
  #pz-root .pz-team-info p{grid-column:1/-1;margin:14px 0 0;font-size:14.5px;line-height:1.62}
  #pz-root .pz-team-info p + p{margin:10px 0 0}
}
@media (prefers-reduced-motion:reduce){
  #pz-root .pz-team-row,#pz-root .pz-team-shine::before{transition:none!important;transform:none!important}
  #pz-root .pz-hero-leaves .pz-hl,#pz-root .pz-hero-leaves .lfL,#pz-root .pz-hero-leaves .lfR,#pz-root .pz-hero-leaves .berry{animation:none!important}
}
/* ===== Compact page: minimal header, tighter vertical rhythm ===== */
#pz-root .pz-page-inner{padding-top:36px;padding-bottom:46px}
#pz-root .pz-px-hero.pz-hero-min{display:block;position:relative;max-width:none;padding:0;min-height:0}
#pz-root .pz-hero-min .pz-px-copy{max-width:760px;position:relative;z-index:1}
#pz-root .pz-hero-min .pz-px-kicker{margin-bottom:10px}
#pz-root .pz-hero-min .pz-px-title{margin:0 0 12px}
#pz-root .pz-hero-min .pz-px-lead{margin:0;max-width:58ch}
/* animated branch, right side of hero */
#pz-root .pz-hero-leaves{position:absolute;right:3%;top:-14px;height:200px;width:auto;pointer-events:none}
#pz-root .pz-hero-leaves .pz-hl{transform-origin:82% 96%;animation:pzHlSway 8s ease-in-out infinite alternate}
#pz-root .pz-hero-leaves .lfL{transform-box:fill-box;transform-origin:96% 12%;animation:pzHlLeafL 5.6s ease-in-out infinite alternate}
#pz-root .pz-hero-leaves .lfR{transform-box:fill-box;transform-origin:4% 12%;animation:pzHlLeafR 6.4s ease-in-out infinite alternate}
#pz-root .pz-hero-leaves .lfL:nth-of-type(odd){animation-delay:-2.3s}
#pz-root .pz-hero-leaves .lfR:nth-of-type(odd){animation-delay:-1.5s}
#pz-root .pz-hero-leaves .berry{animation:pzHlBerry 4.5s ease-in-out infinite alternate}
#pz-root .pz-hero-leaves .berry:nth-of-type(2){animation-delay:-1.6s}
#pz-root .pz-hero-leaves .berry:nth-of-type(3){animation-delay:-3s}
@keyframes pzHlSway{from{transform:rotate(-2deg)}to{transform:rotate(2.4deg)}}
@keyframes pzHlLeafL{from{transform:rotate(-4deg)}to{transform:rotate(3deg)}}
@keyframes pzHlLeafR{from{transform:rotate(3.6deg)}to{transform:rotate(-3deg)}}
@keyframes pzHlBerry{from{opacity:.5}to{opacity:1}}
@media (max-width:1180px){#pz-root .pz-hero-leaves{height:156px;right:1.5%}}
@media (max-width:900px){#pz-root .pz-hero-leaves{display:none}}
#pz-root .pz-px-rule{margin:28px 0 0}
#pz-root .pz-team-notes{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:32px 0 4px}
#pz-root .pz-team-notes .pz-px-sec{margin:0;padding-top:14px;border-top:2px solid #cab082}
#pz-root .pz-team-notes .pz-px-sec h2{font-size:21px;margin:0 0 8px}
#pz-root .pz-team-notes .pz-px-sec p{font-size:14.5px;line-height:1.62;margin:0}
#pz-root .pz-px-rel h2{margin-top:28px}
#pz-root .pz-px-cta{margin-top:36px}
@media (max-width:640px){
  #pz-root .pz-page-inner{padding-top:26px;padding-bottom:36px}
  #pz-root .pz-px-rule{margin:22px 0 0}
  #pz-root .pz-team{margin-top:24px;gap:20px}
  #pz-root .pz-team-notes{grid-template-columns:1fr;gap:20px;margin-top:26px}
}

#pz-root .pz-dd.pz-dd--right{left:auto!important;right:0!important;transform:none!important}#pz-root .pz-dd.pz-dd--right::before,#pz-root .pz-dd.pz-dd--right::after{left:auto;right:22px}

#pz-root .pz-side-card--affs{background:#fbf6ec;border:1px solid #d9c5a1}
#pz-root .pz-affs-sub{margin:-4px 0 14px;font-size:12.5px;line-height:1.6;color:color-mix(in srgb,var(--ink) 58%,transparent)}
#pz-root .pz-affs{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#pz-root .pz-aff{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  min-height:88px;padding:12px 8px 10px;border-radius:13px;text-align:center;text-decoration:none;
  background:#fdf9f0;
  border:1px solid transparent;
  transition:transform .45s cubic-bezier(.2, .7, .2, 1)}
#pz-root .pz-aff:hover,#pz-root .pz-aff:focus-visible{transform:translateY(-4px) scale(1.02)}
#pz-root .pz-aff::before{content:'';position:absolute;inset:0;pointer-events:none;
  transform:translateX(-135%)}
#pz-root .pz-affs.in .pz-aff::before{animation:pzAffGlint 8.5s ease-in-out infinite;animation-delay:calc(var(--d,0s) * 14 + 1.8s)}
#pz-root .pz-aff:hover::before{animation:none;transition:transform .7s ease;transform:translateX(135%)}
@keyframes pzAffGlint{0%,88%{transform:translateX(-135%)}94%{transform:translateX(135%)}100%{transform:translateX(135%)}}
#pz-root .pz-aff-logo{position:relative;display:flex;align-items:center;justify-content:center;height:36px;width:100%}
#pz-root .pz-aff-logo img{max-height:34px;max-width:86%;object-fit:contain;filter:saturate(.88);transition:transform .45s ease, filter .45s ease}
#pz-root .pz-aff:hover .pz-aff-logo img{transform:scale(1.07);filter:saturate(1)}
#pz-root .pz-aff-abbr{display:none;font-family:var(--font-display),serif;font-style:italic;font-size:19px;letter-spacing:.02em;color:var(--gold-deep,#A8803A);transition:transform .45s ease, color .45s ease}
#pz-root .pz-aff:hover .pz-aff-abbr{transform:scale(1.08);color:#c79a4e}
#pz-root .pz-aff.no-img img{display:none}
#pz-root .pz-aff.no-img .pz-aff-abbr{display:block}
#pz-root .pz-aff-name{font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;line-height:1.35;color:color-mix(in srgb,var(--ink) 62%,transparent)}
#pz-root .pz-affs.armed .pz-aff{opacity:0;transform:translateY(14px) scale(.92)}
#pz-root .pz-affs.armed.in .pz-aff{opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);transition-delay:var(--d,0s)}
#pz-root .pz-affs.armed.in .pz-aff:hover{transition-delay:0s;transform:translateY(-4px) scale(1.02)}
@media (prefers-reduced-motion:reduce){
  #pz-root .pz-affs.armed .pz-aff{opacity:1;transform:none;transition:none}
  #pz-root .pz-aff,#pz-root .pz-aff-logo img,#pz-root .pz-aff-abbr{transition:none}
  #pz-root .pz-affs.in .pz-aff::before{animation:none}
}


#pz-root .pz-px-body{position:relative}
#pz-root .pz-gvine{position:absolute;top:0;bottom:0;z-index:0;pointer-events:none}
#pz-root .pz-gvine-w{position:absolute;left:0;right:0;top:0;bottom:8px}
#pz-root .pz-gvine svg{width:100%;height:100%;display:block;overflow:visible}
#pz-root .pz-gvine .vsw{transform-box:view-box;transform-origin:50% 0;animation:pzgvSway 12s ease-in-out infinite alternate}
@keyframes pzgvSway{from{transform:rotate(-1.1deg)}to{transform:rotate(1.2deg)}}
@media(max-width:900px){#pz-root .pz-gvine{display:none}}
@media(prefers-reduced-motion:reduce){#pz-root .pz-gvine .vsw{animation:none}}

/* ---- build override: split-theme reveal ----
   The split theme mirrors the wipe gradient for every second heading (.sp-r uses
   270deg instead of 90deg) but reuses the SAME mask-position for both states.
   Mirroring the gradient swaps which end is opaque, so for .sp-r the "revealed"
   position (0 0) is the transparent end: those headings vanish when revealed.
   The source tried to switch this off with mask:none, but that selector sits at
   lower specificity than .sp-r / .is-rv and never applied. Switch it off properly. */
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv],
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv].sp-r,
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv].is-rv,
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv].sp-r.is-rv{-webkit-mask:none;mask:none}

/* Article layout: the hero title sat left-aligned in the full-width wrap while
   the body was a 760px column centred inside it, so the copy read as indented
   by ~190px. Put the hero on the same measure. box-sizing is border-box, so the
   wrap's own gutter has to be added back. */
#pz-root .pz-bp-hero .pz-wrap{max-width:calc(760px + 2*var(--gutter))}
#pz-root .pz-bp-art{padding-left:0;padding-right:0}

/* "Areas we serve" directory on the service hubs. Plain multi-column list of
   links: these pages had no inbound links at all after the migration. */
#pz-root .pz-areas{padding-top:0}
#pz-root .pz-areas .pz-h2{font-size:clamp(23px,2.6vw,32px);margin:0 0 20px}
#pz-root .pz-areas-list{columns:3;column-gap:36px;list-style:none;padding:0;margin:0}
#pz-root .pz-areas-list li{break-inside:avoid;margin:0 0 10px}
#pz-root .pz-areas-list a{font-size:14.5px;line-height:1.5;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}
#pz-root .pz-areas-list a:hover{border-bottom-color:var(--gold-deep)}
@media(max-width:980px){#pz-root .pz-areas-list{columns:2}}
@media(max-width:640px){#pz-root .pz-areas-list{columns:1}}

/* the featured card is a 2-column grid; with no image panel it must not hold a dead column */
#pz-root .pz-bl-feat:not(:has(.pz-bl-feat-img)){grid-template-columns:1fr}
