
/* ===== Testimonials: compact header, framed videos, tight 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-px-main{background:transparent}
#pz-root .pz-px-main > .pz-px-sec:first-child{margin:26px 0 0;padding:0;background:transparent;border:0}
/* video frames: dark gold + green */
#pz-root .pz-vid-featured{margin:0 0 20px;padding:0;background:transparent}
#pz-root .pz-vid-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0;padding:0;background:transparent}
#pz-root .pz-vid-frame{position:relative;border-radius:18px;padding:10px;background:#23301a;border:1px solid #e3ca9c;margin:0}
#pz-root .pz-vid-frame::before{content:"";position:absolute;inset:5px;border-radius:13px;border:1px solid #e9d6b2;pointer-events:none}
#pz-root .pz-vid-embed{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:#08150e;border:1px solid #e6d0a7}
#pz-root .pz-video{display:block;width:100%;height:100%;object-fit:contain;background:#08150e}
/* two-up notes */
#pz-root .pz-px-notes{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:32px 0 4px}
#pz-root .pz-px-notes .pz-px-sec{margin:0;padding:14px 0 0;border-top:2px solid #cab082;background:transparent}
#pz-root .pz-px-notes .pz-px-sec h2{font-size:21px;margin:0 0 8px}
#pz-root .pz-px-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-px-main > .pz-px-sec:first-child{margin-top:22px}
  #pz-root .pz-vid-grid{grid-template-columns:1fr;gap:16px}
  #pz-root .pz-vid-featured{margin-bottom:16px}
  #pz-root .pz-vid-frame{padding:8px;border-radius:15px}
  #pz-root .pz-vid-frame::before{inset:4px;border-radius:11px}
  #pz-root .pz-px-notes{grid-template-columns:1fr;gap:20px;margin-top:26px}
}
@media (prefers-reduced-motion:reduce){
  #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}
}

#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}
}

/* ---- 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}
