#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-bl-hero{position:relative;padding:clamp(64px,9vw,120px) 0 clamp(30px,4vw,54px);overflow:hidden}
#pz-root .pz-bl-hero .pz-wrap{position:relative}
#pz-root .pz-bl-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep,#A8803A);margin-bottom:14px}
#pz-root .pz-bl-h1{font-family:var(--font-display),serif;font-weight:500;font-size:clamp(38px,6vw,64px);line-height:1.06;color:var(--ink);margin:0 0 16px}
#pz-root .pz-bl-h1 em{font-style:italic;color:var(--gold-deep,#A8803A)}
#pz-root .pz-bl-sub{max-width:560px;font-size:16.5px;line-height:1.75;color:color-mix(in srgb,var(--ink) 70%,transparent);margin:0}
#pz-root .pz-bl-sprig{position:absolute;width:clamp(96px,10vw,148px);pointer-events:none;line-height:0}
#pz-root .pz-bl-sprig.sTR{top:26px;right:2%;transform:scaleX(-1)}
#pz-root .pz-bl-sprig.sBL{bottom:-6px;left:1.5%}
#pz-root .pz-bl-sprig .sst{stroke-dasharray:300;stroke-dashoffset:300;animation:pzblDraw 1.6s ease .3s forwards}
#pz-root .pz-bl-sprig .slf{opacity:0;animation:pzblIn .9s ease 1.1s forwards}
#pz-root .pz-bl-sprig .ssw{transform-box:fill-box;transform-origin:10% 90%;animation:pzblSway 11s ease-in-out 2s infinite alternate}
@keyframes pzblDraw{to{stroke-dashoffset:0}}@keyframes pzblIn{to{opacity:1}}
@keyframes pzblSway{from{transform:rotate(-1.4deg)}to{transform:rotate(1.6deg)}}
/* featured */
#pz-root .pz-bl-feat{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:22px;overflow:hidden;background:#0b4c30;margin:10px 0 34px}
#pz-root .pz-bl-feat-tx{padding:clamp(26px,4vw,52px);color:#F2EAD5;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
#pz-root .pz-bl-feat h2{font-family:var(--font-display),serif;font-weight:500;font-size:clamp(24px,3vw,36px);line-height:1.15;margin:12px 0 12px}
#pz-root .pz-bl-feat h2 a{color:inherit;text-decoration:none}
#pz-root .pz-bl-feat h2 a:hover{color:#E9CE8F}
#pz-root .pz-bl-feat p{margin:0 0 20px;line-height:1.75;color:#d0cdba;font-size:15px}
#pz-root .pz-bl-feat-img{position:relative;min-height:260px;background:#0b4a30}
#pz-root .pz-bl-feat-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}
/* chips + meta */
#pz-root .pz-bl-chip{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep,#A8803A);background:#efe2c9;border:1px solid #d9c5a1;border-radius:999px;padding:5px 11px}
#pz-root .pz-bl-feat .pz-bl-chip{color:#E9CE8F;border-color:#717454;background:#243a2e}
#pz-root .pz-bl-meta{font-size:12.5px;letter-spacing:.04em;color:color-mix(in srgb,var(--ink) 55%,transparent)}
#pz-root .pz-bl-feat .pz-bl-meta{color:#979d8e}
/* filters */
#pz-root .pz-bl-filters{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 26px}
#pz-root .pz-bl-fbtn{font:600 12.5px/1 'Hanken Grotesk',sans-serif;letter-spacing:.06em;padding:9px 16px;border-radius:999px;cursor:pointer;border:1px solid #d5c099;background:transparent;color:var(--ink);transition:all .3s ease}
#pz-root .pz-bl-fbtn:hover{border-color:#A8803A;transform:translateY(-1px)}
#pz-root .pz-bl-fbtn.on{background:#0C5C3A;border-color:#0C5C3A;color:#F2EAD5}
/* grid cards */
#pz-root .pz-bl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:40px}
#pz-root .pz-bl-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:24px 22px 20px;border-radius:18px;background:#fffdf8;border:1px solid #e3d3b6;text-decoration:none;overflow:hidden;transition:transform .5s cubic-bezier(.2, .7, .2, 1), border-color .5s ease, opacity .35s ease}
#pz-root .pz-bl-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#bf9852}
#pz-root .pz-bl-card:hover{transform:translateY(-5px);border-color:#ae955c}
#pz-root .pz-bl-card h3{font-family:var(--font-display),serif;font-weight:500;font-size:19.5px;line-height:1.28;color:var(--ink);margin:0}
#pz-root .pz-bl-card p{margin:0;font-size:13.8px;line-height:1.7;color:color-mix(in srgb,var(--ink) 66%,transparent);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
#pz-root .pz-bl-card .pz-bl-read{margin-top:auto;display:flex;align-items:center;gap:8px;font:600 13px/1 'Hanken Grotesk',sans-serif;color:var(--gold-deep,#A8803A)}
#pz-root .pz-bl-read svg{width:16px;height:16px;transition:transform .35s ease}
#pz-root .pz-bl-card:hover .pz-bl-read svg{transform:translateX(4px)}
#pz-root .pz-bl-card.hide{opacity:0;transform:scale(.96);pointer-events:none}
#pz-root .pz-bl-card.gone{display:none}
#pz-root .pz-bl-grid.armed .pz-bl-card{opacity:0;transform:translateY(18px)}
#pz-root .pz-bl-grid.armed .pz-bl-card.in{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-bl-grid.armed .pz-bl-card.in:hover{transition-delay:0s;transform:translateY(-5px)}
/* archive note + cta */


/* article pages */
#pz-root .pz-bp-progress{position:fixed;top:0;left:0;height:3px;width:0;background:#bf9852;z-index:1200}
#pz-root .pz-bp-hero{padding:clamp(56px,8vw,104px) 0 8px;text-align:left}
#pz-root .pz-bp-h1{font-family:var(--font-display),serif;font-weight:500;font-size:clamp(30px,4.6vw,50px);line-height:1.1;color:var(--ink);margin:14px 0 12px;max-width:820px}
#pz-root .pz-bp-heroimg{margin:26px 0 8px;border-radius:20px;overflow:hidden}
#pz-root .pz-bp-heroimg img{display:block;width:100%;height:auto}
#pz-root .pz-bp-art{max-width:760px;margin:26px auto 30px;padding:0 4px}
#pz-root .pz-bp-art p{font-size:16.5px;line-height:1.85;color:color-mix(in srgb,var(--ink) 82%,transparent);margin:0 0 20px}
#pz-root .pz-bp-art > p:first-of-type::first-letter{font-family:var(--font-display),serif;font-size:3.3em;line-height:.82;float:left;padding:6px 10px 0 0;color:var(--gold-deep,#A8803A)}
#pz-root .pz-bp-art h2{font-family:var(--font-display),serif;font-weight:500;font-size:clamp(23px,2.6vw,30px);line-height:1.2;color:var(--ink);margin:40px 0 14px;padding-left:16px;border-left:3px solid #D6B06A}
#pz-root .pz-bp-art h3{font-family:var(--font-display),serif;font-weight:500;font-size:20px;color:var(--ink);margin:28px 0 10px}
#pz-root .pz-bp-art ul{margin:0 0 20px;padding-left:22px}
#pz-root .pz-bp-art li{font-size:15.5px;line-height:1.8;color:color-mix(in srgb,var(--ink) 78%,transparent);margin-bottom:6px}
#pz-root .pz-bp-art a{color:var(--gold-deep,#A8803A);text-decoration:underline;text-underline-offset:3px}
#pz-root .pz-bp-faq{border:1px solid #deccac;border-radius:14px;background:#fffdf8;margin-bottom:12px;overflow:hidden}
#pz-root .pz-bp-faq summary{cursor:pointer;list-style:none;padding:16px 18px;font:600 15.5px/1.4 'Hanken Grotesk',sans-serif;color:var(--ink);display:flex;justify-content:space-between;gap:12px;align-items:center}
#pz-root .pz-bp-faq summary::-webkit-details-marker{display:none}
#pz-root .pz-bp-faq summary::after{content:'+';font-family:var(--font-display),serif;font-size:22px;color:#A8803A;transition:transform .3s ease}
#pz-root .pz-bp-faq[open] summary::after{transform:rotate(45deg)}
#pz-root .pz-bp-faq p{padding:0 18px 16px;margin:0;font-size:14.5px}
#pz-root .pz-bp-cta{display:inline-flex;align-items:center;gap:10px;background:#e0bf7c;color:#22352a;font:700 15px/1 'Hanken Grotesk',sans-serif;padding:16px 26px;border-radius:999px;text-decoration:none;transition:transform .35s ease;margin:6px 0 10px}
#pz-root .pz-bp-cta:hover{transform:translateY(-2px)}
#pz-root .pz-bp-next{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid #ddd6c6;padding-top:22px;margin-top:36px}
#pz-root .pz-bp-next a{font:600 14px/1.4 'Hanken Grotesk',sans-serif;color:var(--ink);text-decoration:none;max-width:46%}
#pz-root .pz-bp-next a:hover{color:var(--gold-deep,#A8803A)}
#pz-root .pz-bp-next small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep,#A8803A);margin-bottom:5px}
#pz-root [data-rv]{opacity:0;transform:translateY(16px);transition:opacity .7s ease, transform .7s ease}
#pz-root [data-rv].is-rv{opacity:1;transform:none}
@media(max-width:900px){#pz-root .pz-bl-grid{grid-template-columns:1fr 1fr}#pz-root .pz-bl-feat{grid-template-columns:1fr}#pz-root .pz-bl-feat-img{min-height:210px;order:-1}}
@media(max-width:640px){#pz-root .pz-bl-grid{grid-template-columns:1fr}#pz-root .pz-bl-sprig.sBL{display:none}}
@media(prefers-reduced-motion:reduce){
#pz-root .pz-bl-sprig .sst{animation:none;stroke-dashoffset:0}#pz-root .pz-bl-sprig .slf{animation:none;opacity:1}#pz-root .pz-bl-sprig .ssw{animation:none}
#pz-root .pz-bl-grid.armed .pz-bl-card{opacity:1;transform:none;transition:none}
#pz-root [data-rv]{opacity:1;transform:none;transition:none}
#pz-root .pz-bl-card,#pz-root .pz-bl-read svg,#pz-root .pz-bp-cta{transition:none}}


/* ---------- per-post scroll-animation themes ---------- */
/* theme: rise (soft rise + floating gold ring parallax) */
body[data-anim="rise"] #pz-blog .pz-bp-art p[data-rv]{transition-duration:.8s}
#pz-root .pz-th-ring{position:fixed;right:4vw;top:30vh;width:220px;height:220px;border:1px solid #e9d6b2;border-radius:50%;pointer-events:none;z-index:0}
#pz-root .pz-th-ring::after{content:'';position:absolute;inset:26px;border:1px solid #eddec3;border-radius:50%}
/* theme: vine (margin vine draws with scroll) */
#pz-root .pz-th-vinerail{position:absolute;left:calc(50% - 620px);top:0;bottom:0;width:120px;pointer-events:none}
#pz-root .pz-th-vinerail svg{width:100%;height:100%;overflow:visible}
@media(max-width:1330px){#pz-root .pz-th-vinerail{display:none}}
/* theme: drift (leaves at different parallax speeds) */
#pz-root .pz-th-leaf{position:fixed;pointer-events:none;z-index:0;opacity:.5;will-change:transform}
#pz-root .pz-th-leaf svg{width:100%;height:100%}
/* theme: rules (h2 underline draws on enter + drop cap pop) */
body[data-anim="rules"] #pz-blog .pz-bp-art h2{border-left:none;padding-left:0;position:relative;padding-bottom:10px}
body[data-anim="rules"] #pz-blog .pz-bp-art h2::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:#bf9852;transition:width 1.1s cubic-bezier(.2, .7, .2, 1)}
body[data-anim="rules"] #pz-blog .pz-bp-art h2.is-rv::after{width:72px}
body[data-anim="rules"] #pz-blog .pz-bp-art > p:first-of-type::first-letter{transition:none}
/* theme: alternate (blocks slide from alternating sides) + dots rail */
body[data-anim="alt"] #pz-blog .pz-bp-art [data-rv]{transform:translateX(-34px)}
body[data-anim="alt"] #pz-blog .pz-bp-art [data-rv].alt-r{transform:translateX(34px)}
body[data-anim="alt"] #pz-blog .pz-bp-art [data-rv].is-rv{transform:none}
#pz-root .pz-th-dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:5}
#pz-root .pz-th-dots span{width:8px;height:8px;border-radius:50%;border:1px solid #c6aa7a;transition:background .3s ease, transform .3s ease}
#pz-root .pz-th-dots span.on{background:#A8803A;transform:scale(1.25)}
@media(max-width:900px){#pz-root .pz-th-dots,#pz-root .pz-th-ring{display:none}}
/* theme: petals (gold petals settle downward with scroll) */
#pz-root .pz-th-petal{position:fixed;pointer-events:none;z-index:0;opacity:.55;will-change:transform}
/* theme: sway (blocks tilt in + breathing orb) */
body[data-anim="sway"] #pz-blog .pz-bp-art [data-rv]{transform:perspective(900px) rotateX(7deg) translateY(22px);transform-origin:50% 100%}
body[data-anim="sway"] #pz-blog .pz-bp-art [data-rv].is-rv{transform:none}
#pz-root .pz-th-orb{position:fixed;left:3vw;bottom:6vh;width:180px;height:180px;border-radius:50%;pointer-events:none;z-index:0;
 animation:pzthOrb 9s ease-in-out infinite alternate}
@keyframes pzthOrb{from{transform:scale(.92)}to{transform:scale(1.08)}}
/* theme: zoom (sections scale in + hero panel eases back on scroll) */
body[data-anim="zoom"] #pz-blog .pz-bp-art [data-rv]{transform:scale(.955);transform-origin:50% 60%}
body[data-anim="zoom"] #pz-blog .pz-bp-art [data-rv].is-rv{transform:scale(1)}
body[data-anim="zoom"] #pz-blog .pz-bp-heroimg{will-change:transform}
@media(prefers-reduced-motion:reduce){body[data-anim="zoom"] #pz-blog .pz-bp-art [data-rv]{transform:none}}
/* theme: trace (dotted margin path fills dot-by-dot) */
#pz-root .pz-th-trace{position:fixed;left:calc(50% - 560px - 70px);top:12vh;height:74vh;width:24px;pointer-events:none;z-index:0}
#pz-root .pz-th-trace span{position:absolute;left:9px;width:6px;height:6px;border-radius:50%;background:#A8803A;opacity:.15;transition:opacity .3s ease, transform .3s ease}
#pz-root .pz-th-trace span.on{opacity:.85;transform:scale(1.3)}
@media(max-width:1240px){#pz-root .pz-th-trace{display:none}}
/* theme: split (sections wipe in from alternating sides) */
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv]{transform:none;
 -webkit-mask:linear-gradient(90deg,#000 40%,transparent 60%) 100% 0/300% 100% no-repeat;
 mask:linear-gradient(90deg,#000 40%,transparent 60%) 100% 0/300% 100% no-repeat;
 transition:-webkit-mask-position .95s cubic-bezier(.2, .7, .2, 1), mask-position .95s cubic-bezier(.2, .7, .2, 1), opacity .5s ease}
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv].sp-r{
 -webkit-mask:linear-gradient(270deg,#000 40%,transparent 60%) 100% 0/300% 100% no-repeat;
 mask:linear-gradient(270deg,#000 40%,transparent 60%) 100% 0/300% 100% no-repeat}
body[data-anim="split"] #pz-blog .pz-bp-art [data-rv].is-rv{-webkit-mask-position:0 0;mask-position:0 0}
@media(prefers-reduced-motion:reduce){body[data-anim="split"] #pz-blog .pz-bp-art [data-rv]{-webkit-mask:none;mask:none}}
/* theme: focus (paragraphs de-blur into focus + calm halo) */
body[data-anim="focus"] #pz-blog .pz-bp-art [data-rv]{filter:blur(7px);transform:none;transition:filter .9s ease, opacity .6s ease}
body[data-anim="focus"] #pz-blog .pz-bp-art [data-rv].is-rv{filter:blur(0)}
#pz-root .pz-th-halo{position:fixed;right:5vw;top:16vh;width:150px;height:150px;border-radius:50%;pointer-events:none;z-index:0;
 border:1px solid #e6d0a7;animation:pzhalo 7s ease-in-out infinite}
#pz-root .pz-th-halo::after{content:'';position:absolute;inset:-24px;border:1px solid #edddc1;border-radius:50%;animation:pzhalo 7s ease-in-out infinite reverse}
@keyframes pzhalo{0%,100%{transform:scale(.94)}50%{transform:scale(1.06)}}
/* theme: steps (left ladder fills, node per section) */
#pz-root .pz-th-steps{position:fixed;left:calc(50% - 560px - 84px);top:14vh;height:70vh;width:30px;pointer-events:none;z-index:0}
#pz-root .pz-th-steps .rail{position:absolute;left:14px;top:0;width:2px;height:100%;background:#e8dac1}
#pz-root .pz-th-steps .fillrail{position:absolute;left:14px;top:0;width:2px;height:0;background:#A8803A;transition:height .25s ease}
#pz-root .pz-th-steps .nd{position:absolute;left:8px;width:14px;height:14px;border-radius:50%;border:2px solid #d5c099;background:#F2EAD5;transition:border-color .3s, background .3s}
#pz-root .pz-th-steps .nd.on{border-color:#A8803A;background:#D6B06A}
@media(max-width:1240px){#pz-root .pz-th-steps,#pz-root .pz-th-halo{display:none}}
@media(prefers-reduced-motion:reduce){#pz-root .pz-th-halo{animation:none}
 body[data-anim="focus"] #pz-blog .pz-bp-art [data-rv]{filter:none}}
/* featured photo overlay (drops in when assets/img/blog/<frag>.jpg exists) */
#pz-root .pz-bp-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;border-radius:inherit}
#pz-root .pz-bp-artsvg{position:absolute;inset:0;width:100%;height:100%}
/* side wings (margin decorations, every post page) */
#pz-root .pz-th-wing{position:fixed;top:14vh;width:90px;height:72vh;pointer-events:none;z-index:0}
#pz-root .pz-th-wing svg{width:100%;height:100%;overflow:visible}
#pz-root .pz-th-wing.wL{left:calc(50% - 560px - 110px)}
#pz-root .pz-th-wing.wR{right:calc(50% - 560px - 110px)}
#pz-root .pz-th-wing .wv{animation:pzwv 8s ease-in-out infinite alternate;transform-origin:50% 100%}
@keyframes pzwv{from{transform:rotate(-2.4deg)}to{transform:rotate(2.4deg)}}
@media(max-width:1240px){#pz-root .pz-th-wing{display:none}}
@media(prefers-reduced-motion:reduce){#pz-root .pz-th-wing .wv{animation:none}}
/* article tables */
#pz-root .pz-bp-table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:14px;line-height:1.6}
#pz-root .pz-bp-table th{font:600 12px/1.4 'Hanken Grotesk',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep,#A8803A);text-align:left;padding:10px 12px;border-bottom:2px solid #d5c099}
#pz-root .pz-bp-table td{padding:11px 12px;border-bottom:1px solid #ddd6c6;color:color-mix(in srgb,var(--ink) 78%,transparent);vertical-align:top}
#pz-root .pz-bp-table tr:nth-child(even) td{background:#f2e7d3}
@media(max-width:640px){#pz-root .pz-bp-table{display:block;overflow-x:auto}}
@media(prefers-reduced-motion:reduce){
 #pz-root .pz-th-leaf,#pz-root .pz-th-ring,#pz-root .pz-th-petal,#pz-root .pz-th-orb{display:none}
 body[data-anim="sway"] #pz-blog .pz-bp-art [data-rv]{transform:none}
 body[data-anim="alt"] #pz-blog .pz-bp-art [data-rv]{transform:none}
 body[data-anim="rules"] #pz-blog .pz-bp-art h2::after{transition:none;width:72px}
}

/* ---- 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}
