/*
Theme Name: PZI
Theme URI: https://priestzim.com
Author: PZI Website Migration
Description: Custom theme for Priest-Zimmerman, Inc. Built from the approved Step 1 site frame and Step 2 homepage designs. Pairs with the PZI Core plugin for staff, manufacturer, and division records.
Version: 1.19.3
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: Proprietary
Text Domain: pzi
*/

@font-face{font-family:'Raleway';font-weight:400;src:url(assets/fonts/raleway-400.woff2) format('woff2')}
@font-face{font-family:'Raleway';font-weight:500;src:url(assets/fonts/raleway-500.woff2) format('woff2')}
@font-face{font-family:'Raleway';font-weight:600;src:url(assets/fonts/raleway-600.woff2) format('woff2')}
@font-face{font-family:'Raleway';font-weight:700;src:url(assets/fonts/raleway-700.woff2) format('woff2')}
:root{--navy:#123c63;--navy-deep:#0d2c49;--blue:#3498db;--blue-hover:#1573b2;--text:#858585}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Raleway,'Segoe UI',sans-serif;color:var(--text);font-size:16px;line-height:1.7}
a{text-decoration:none}
.wrap{max-width:1170px;margin:0 auto;padding:0 24px}
.topbar{background:var(--navy);color:#dfe9f2;font-size:.85rem;padding:8px 0}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.topbar .info{display:flex;gap:24px;flex-wrap:wrap}
.topbar a{color:#dfe9f2}.topbar a:hover{color:#fff}
header{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.nav .logo img{height:104px;width:auto}
.nav ul{display:flex;gap:4px;list-style:none;align-items:center}
.nav ul a{color:#7d8a97;font-weight:500;font-size:1rem;padding:10px 15px;transition:.15s}
.nav ul a:hover,.nav ul a.on{color:var(--blue)}
.caret::after{content:" ▾";font-size:.68em;opacity:.65}
.nav li{position:relative}
.dd{position:absolute;top:100%;left:0;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.14);border-top:3px solid var(--blue);min-width:210px;padding:8px 0;display:none}
.nav li:hover .dd{display:block}
.dd a{display:block;padding:9px 18px;font-size:.93rem}
.dd a:hover{background:#f4f8fb}
.placeholder{min-height:420px;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 14px,#f3f6f8 14px,#f3f6f8 28px);color:#aab6c0;font-size:1.05rem;border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4}
footer{background:var(--navy-deep);color:#93a7ba;font-size:.92rem}
footer .cols{display:grid;grid-template-columns:1.15fr 1.15fr .85fr .85fr;gap:40px;padding:58px 0 42px}
.cinfo li{margin-bottom:13px;line-height:1.55}
.cinfo .sub{font-size:.78rem;color:#6d8296;letter-spacing:.02em}
footer h4{color:#fff;font-size:1rem;font-weight:600;margin-bottom:15px}
footer ul{list-style:none}
footer li{margin-bottom:8px}
footer a{color:#93a7ba}footer a:hover{color:var(--blue)}
.foot-bar{border-top:1px solid rgba(255,255,255,.08);padding:18px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.82rem;color:#6d8296}
/* mobile nav */
.burger{display:none;background:none;border:2px solid #d8dfe6;border-radius:6px;width:46px;height:42px;cursor:pointer;padding:9px 10px}
.burger span{display:block;height:2.5px;background:var(--navy);border-radius:2px;margin:4px 0;transition:.2s}
.mnav{display:none;background:#fff;border-top:1px solid #e8edf1;box-shadow:0 14px 24px rgba(0,0,0,.1)}
.mnav.open{display:block}
.mnav a{display:block;padding:13px 24px;color:#556472;font-weight:500;border-bottom:1px solid #f0f3f6}
.mnav a:active,.mnav a.on{color:var(--blue)}
.mnav .sub{background:#f7f9fb;display:none}
.mnav .sub a{padding-left:44px;font-size:.93rem}
.mnav .grp.open .sub{display:block}
.mnav .grp>a::after{content:" \25be";font-size:.7em;opacity:.6}
@media(max-width:620px){
      
  .svc{flex:0 1 100%}
  .svc{flex-direction:row;text-align:left;padding:20px 18px;gap:18px}
  .sico{width:50px;height:50px;flex:0 0 50px}
}
@media(max-width:960px){
  .nav ul{display:none}
  .burger{display:block}
  footer .cols{grid-template-columns:1fr 1fr;gap:30px}
  .nav .logo img{height:74px}
}

/* hero */
@font-face{font-family:'Shadows Into Light';font-weight:400;src:url(assets/fonts/shadows-into-light.woff2) format('woff2')}
.hero{position:relative;height:560px;overflow:hidden;background:#42536a}
.hero .bg{position:absolute;inset:0;background:url(assets/img/hero-denver.jpg) center 30%/cover;filter:saturate(.55) brightness(.95);transform:scale(1.04);animation:kb 20s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.1)}}
.hero .shade{position:absolute;inset:0;background:linear-gradient(rgba(18,60,99,.22),rgba(18,60,99,.38))}
.hero .hcontent{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding-bottom:64px}
.hero h1{font-size:clamp(2.8rem,6vw,4.6rem);font-weight:400;color:#fff;line-height:1.06}
.weare{display:inline-block;opacity:0;transform:translateX(-170px)}
.hcontent.s-weare .weare{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.22,.75,.25,1)}
.rotator{font-weight:700;display:inline-block;text-align:left;vertical-align:bottom}
.word{display:inline-block;opacity:0}
.word.drop{animation:drop .8s cubic-bezier(.22,.75,.25,1) forwards}
@keyframes drop{from{opacity:0;transform:translateY(-54px)}to{opacity:1;transform:none}}
.hero .sub{font-size:clamp(.95rem,1.8vw,1.4rem);letter-spacing:.24em;text-transform:uppercase;margin-top:16px;color:#eaf2f9;opacity:0;transform:translateY(16px);transition:opacity .8s,transform .8s}
.hero .since{font-family:'Shadows Into Light',cursive;font-size:clamp(1.35rem,2.3vw,1.95rem);margin-top:12px;color:#fff;opacity:0;transform:translateY(16px);transition:opacity .8s,transform .8s}
.hcontent.s-sub .sub{opacity:1;transform:none}
.hcontent.s-since .since{opacity:1;transform:none}
.hero .arrow{position:absolute;top:44%;z-index:4;width:48px;height:82px;background:rgba(255,255,255,.13);border:none;color:#fff;font-size:1.5rem;cursor:pointer;transition:.15s}
.hero .arrow:hover{background:rgba(255,255,255,.26)}
.hero .prev{left:0}.hero .next{right:0}
.curve{position:absolute;bottom:-2px;left:0;right:0;z-index:5;line-height:0}
.curve svg{width:100%;height:100px;display:block}
.btn{display:inline-block;background:var(--blue);color:#fff;font-weight:500;padding:14px 34px;border-radius:4px;box-shadow:0 3px 0 #217dbb;transition:.18s}
.btn:hover{background:#42a6dd;transform:translateY(-1px)}
/* divisions cards */
.divsec{background:#f5f8fa;padding:42px 0 84px}
.sec-head{text-align:center;margin-bottom:38px}
.sec-head .kicker{max-width:720px;margin:0 auto}
.kicker{font-family:'Shadows Into Light',cursive;font-size:1.38rem;font-weight:400;color:var(--blue);line-height:1.4}
.sec-head h2{font-size:2rem;font-weight:600;color:#243447;margin-top:4px;letter-spacing:.01em}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{background:#fff;border:1px solid #e2e8ee;border-radius:10px;overflow:hidden;transition:.2s;display:block;box-shadow:0 2px 8px rgba(13,44,73,.05)}
.card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(13,44,73,.14)}
.card .ph{position:relative}
/* Division card photos are tinted in CSS, not baked into the files, so any
   image uploaded via Divisions -> Card image automatically matches the set.
   Tune --pzi-duotone-strength (0 = untouched colour, 1 = full navy duotone). */
.card .ph img{width:100%;height:200px;object-fit:cover;display:block;
  filter:grayscale(1) sepia(1) hue-rotate(178deg) saturate(2.2) brightness(.98) contrast(1.06)}
.card:hover .ph img{filter:grayscale(1) sepia(1) hue-rotate(178deg) saturate(2.4) brightness(1.03) contrast(1.06)}
.card .ci{position:absolute;left:18px;bottom:-22px;width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid #cfe0ee;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(13,44,73,.1)}
.card h3{font-size:1.1rem;font-weight:700;color:#243447;padding:38px 20px 10px}
.card .lm{padding:6px 20px 26px;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.card .lm span{margin-left:8px}
.card:hover .lm{color:#1573b2}
/* services */
.svcsec{background:#fff;padding:74px 0 80px}
.svcs{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.svc{flex:0 1 calc((100% - 44px) / 3)}
.svc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:32px 18px;border:1px solid var(--line,#e2e8ee);border-radius:10px;background:#fff;transition:.2s}
.svc:hover{border-color:#cfe0ee;box-shadow:0 14px 28px rgba(13,44,73,.10);transform:translateY(-4px)}
.sico{width:62px;height:62px;border-radius:50%;background:#eef4fa;display:flex;align-items:center;justify-content:center;color:var(--blue);transition:.2s}
.sico svg{width:30px;height:30px}
.svc:hover .sico{background:var(--blue);color:#fff}
.sname{font-size:1.02rem;font-weight:600;color:#243447;letter-spacing:.01em}
/* counters */
.counters{background:linear-gradient(rgba(24,42,60,.82),rgba(24,42,60,.82)),url(assets/img/counters-bg.jpg) center/cover fixed;padding:74px 0;color:#fff}
.cnt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
.cnt b{font-size:2.4rem;font-weight:700;color:#fff;display:block;line-height:1.1}
.cnt .t{font-family:'Shadows Into Light',cursive;font-size:1.4rem;line-height:1.4;color:#cfe4f4;margin-top:8px;display:block}
@media(max-width:960px){
  .hero{height:460px}
  .cards{grid-template-columns:repeat(2,1fr)}
  .kicker{font-size:1.25rem}
  .cnt-grid{grid-template-columns:1fr;gap:28px}
  .counters{background-attachment:scroll}
  .svcsec{padding:54px 0 58px}
  .svcs{gap:16px}
  .svc{flex:0 1 calc((100% - 16px) / 2)}
  .svc{padding:26px 16px;gap:14px}
  .sico{width:54px;height:54px}
  .sico svg{width:26px;height:26px}
  }

/* ---------- WordPress integration ---------- */
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:10px;left:10px;z-index:9999;background:#fff;color:var(--navy);padding:10px 18px;border-radius:4px;clip:auto;width:auto;height:auto}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* generic interior page (page.php) */
.entry{background:#fff;padding:34px 0 72px}
.entry .wrap > :not(.pagetitle){max-width:900px}
.entry h2{font-size:1.75rem;font-weight:600;color:#243447;margin:34px 0 12px}
.entry h3{font-size:1.3rem;font-weight:600;color:#243447;margin:26px 0 10px}
.entry p{margin-bottom:17px}
.entry ul,.entry ol{margin:0 0 17px 22px}
.entry li{margin-bottom:7px}
.entry a{color:var(--blue)}
.entry a:hover{color:var(--blue-hover);text-decoration:underline}
.entry img{height:auto;border-radius:8px}
.pagelinks{margin:22px 0;font-weight:600;color:var(--blue)}
.entry blockquote{border-left:3px solid var(--blue);padding-left:22px;margin:24px 0;color:#5d6770;font-style:italic}
.entry table{width:100%;border-collapse:collapse;margin-bottom:20px}
.entry th,.entry td{border:1px solid var(--line,#e2e8ee);padding:10px 14px;text-align:left}
.entry th{background:#f5f8fa;font-weight:600;color:#243447}

/* the plugin directory shortcodes, brought onto the theme palette */
.entry .pzi-section-title{color:var(--navy);border-bottom:2px solid var(--blue)}
.entry .pzi-card h4{color:var(--navy)}
.entry .pzi-card .pzi-stock{color:var(--blue-hover)}

/* ---------- manufacturer directory ---------- */
.mfrdir{background:#f5f8fa;padding:48px 0 80px}
.mfr-tools{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:30px}
.mfr-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.mfr-side{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;min-width:0}
.mfr-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:6px;padding:0 12px;color:#93a0ad;min-width:250px}
.mfr-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(52,152,219,.15)}
.mfr-search input{min-width:0;font:inherit;font-size:.93rem;border:0;outline:0;padding:10px 0;width:100%;background:transparent;color:#243447}
.mfr-lc{padding:10px 18px;font-size:.8rem}
.mfr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mfr{background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;transition:.18s}
.mfr:hover{border-color:#cfe0ee;box-shadow:0 12px 26px rgba(13,44,73,.09)}
.mfr[hidden]{display:none}
.mfr-logo{height:104px;display:flex;align-items:center;justify-content:center;padding:18px 26px;border-bottom:1px solid #eef2f5}
.mfr-logo img{max-height:62px;max-width:200px;width:auto;height:auto;object-fit:contain}
.mfr-logo-text{font-weight:700;color:var(--navy);font-size:1.1rem}
.mfr-body{padding:18px 22px 6px;flex:1}
.mfr-name{font-size:1.08rem;font-weight:600;color:#243447;line-height:1.35;margin:0}
.mfr-divs{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-top:4px}
.mfr-products{list-style:none;margin:12px 0 0;padding:0;font-size:.9rem;line-height:1.55;color:#5d6770}
.mfr-products li{display:inline}
.mfr-products li+li::before{content:"\2022";color:#b8c3cd;margin:0 .45em}
.mfr-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding:14px 22px 18px}
.mfr-stock{display:inline-block;font-size:.78rem;font-weight:600;color:#1f6f43;background:#eaf6ef;border-radius:999px;padding:5px 11px;line-height:1.35}
.mfr-stock svg{color:#e0a526;vertical-align:-2px;margin-right:5px}
.mfr-stock-note{font-weight:500;color:#3f7a57}
.mfr-site{font-size:.84rem;font-weight:600;color:var(--blue);white-space:nowrap}
.mfr-site:hover{color:var(--blue-hover)}
.mfr-empty{text-align:center;padding:40px 20px;color:#5d6770}
.mfr-empty a{color:var(--blue)}
@media(max-width:1000px){.mfr-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .mfr-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
  .mfr-side{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
  .mfr-search{min-width:0}
  .mfr-lc{text-align:center}
  .mfr-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin:0 -24px;padding-left:24px;padding-right:24px;scrollbar-width:none}
  .mfr-chips::-webkit-scrollbar{display:none}
  .pill{flex:0 0 auto}
}
@media(max-width:620px){
  .mfr-grid{grid-template-columns:1fr;gap:14px}
  .mfr-logo{height:92px}
}

/* ---------- interior page header: breadcrumb bar + title ---------- */
.crumbbar{background:var(--blue) url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='120' viewBox='0 0 480 120'><g fill='%23fff'><path fill-opacity='.07' d='M0 0h90L40 70z'/><path fill-opacity='.04' d='M90 0l60 60L40 70z'/><path fill-opacity='.09' d='M150 60L90 0h110z'/><path fill-opacity='.03' d='M200 0l70 80-120-20z'/><path fill-opacity='.06' d='M270 80L200 0h120z'/><path fill-opacity='.08' d='M320 0l50 70-100 10z'/><path fill-opacity='.04' d='M370 70L320 0h100z'/><path fill-opacity='.07' d='M420 0h60v60l-110 10z'/><path fill-opacity='.05' d='M0 120V0l40 70-10 50z'/><path fill-opacity='.08' d='M40 70l110-10-50 60H30z'/><path fill-opacity='.03' d='M150 60l120 20-60 40H100z'/><path fill-opacity='.06' d='M270 80l100-10 20 50H210z'/><path fill-opacity='.04' d='M370 70l110-10v60h-90z'/></g><g fill='%230d2c49'><path fill-opacity='.06' d='M40 70L0 0v120h30z'/><path fill-opacity='.05' d='M200 0l-50 60 120 20z'/><path fill-opacity='.07' d='M320 0l-50 80 100-10z'/><path fill-opacity='.05' d='M370 70l50-70 60 60z'/></g></svg>") 0 0/480px 100% repeat-x;color:#fff;font-size:.88rem}
.crumbbar ol{list-style:none;margin:0;padding:17px 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 0}
.crumbbar li{display:inline-flex;align-items:center}
.crumbbar li+li::before{content:"/";margin:0 10px;color:rgba(255,255,255,.75)}
.crumbbar li.here+li::before{content:"";margin:0 6px}
.crumbbar li.here svg{margin-right:7px;opacity:.9}
.crumbbar a{color:#fff;font-weight:500}
.crumbbar a:hover{text-decoration:underline}
.crumbbar [aria-current]{color:rgba(255,255,255,.82)}
.crumbbar li[hidden]{display:none}
.crumbbar li:has(+ li[hidden]) a{color:rgba(255,255,255,.82);font-weight:400}
.pagetitle{margin-bottom:26px}
.pagetitle h1{font-size:1.75rem;font-weight:400;color:#4a5561;line-height:1.25;margin:0}
.pagetitle h1::after{content:"";display:block;width:26px;height:2px;background:var(--blue);margin-top:12px}
@media(max-width:620px){.crumbbar{font-size:.82rem}.crumbbar ol{padding:13px 0}.pagetitle h1{font-size:1.5rem}}

/* ---------- light-blue band above the footer, balancing the breadcrumb bar ---------- */
.footwave{line-height:0;background:#fff}
.footwave svg{display:block;width:100%;height:96px}
/* the band sits on whatever section it follows, so no seam */
.mfrdir + .footwave,.divsec + .footwave,.team + .footwave.on-grey{background:#f5f8fa}
.counters + .footwave{background:#182a3c}
@media(max-width:620px){.footwave svg{height:64px}}

/* ---------- team page ---------- */
.pband{background-position:center;background-size:cover;color:#fff;text-align:center;padding:42px 0 46px;position:relative}
.pband-line{font-size:clamp(1.2rem,2.1vw,1.65rem);font-weight:400;line-height:1.4;color:#fff;max-width:760px;margin:0 auto;text-wrap:balance}
.pband-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;margin-top:18px;box-shadow:0 8px 18px rgba(0,0,0,.25)}
.team{background:#fff;padding:52px 0 80px}
/* shared centred heading + intro, used by the team and manufacturer pages */
.team-head,.sec-intro{text-align:center;max-width:820px;margin:0 auto 34px}
.team-head h1,.sec-intro h1{font-size:1.9rem;font-weight:400;color:#4a5561;line-height:1.25;margin:0}
.team-head h1::after,.sec-intro h1::after{content:"";display:block;width:26px;height:2px;background:var(--blue);margin:14px auto 0}
.team-intro,.sec-intro-copy{margin-top:18px;color:#6b7784}
.team-intro p,.sec-intro-copy p{margin-bottom:12px}
.team-intro p:last-child,.sec-intro-copy p:last-child{margin-bottom:0}
.sec-intro-copy strong{color:#4a5561;font-weight:600}
.team-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:28px}
.pill{font:inherit;white-space:nowrap;cursor:pointer;font-size:.88rem;font-weight:600;color:#3f4b58;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:999px;padding:8px 18px;cursor:pointer;transition:.15s;line-height:1.2}
.pill:hover{border-color:#cfe0ee;color:var(--navy)}
.pill.on{background:var(--navy);border-color:var(--navy);color:#fff}
.team-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
/* Top-aligned, not centred: a role that wraps to two lines makes the card
   taller, and centring would then push the name up out of line with its
   neighbours. Top alignment keeps every name at the same offset. */
.pcard{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--line,#e2e8ee);border-left:3px solid var(--blue);border-radius:8px;padding:16px 18px;transition:.18s}
.pcard:hover{box-shadow:0 12px 26px rgba(13,44,73,.10);border-color:#cfe0ee;border-left-color:var(--blue);transform:translateY(-2px)}
.pcard[hidden]{display:none}
.pcard-photo{width:52px;height:52px;border-radius:50%;overflow:hidden;flex:0 0 52px;background:#eef4fa}
.pcard-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pcard-body{flex:1;min-width:0}
.pcard-name{font-size:1rem;font-weight:600;color:#243447;margin:0;line-height:1.3}
/* Two lines' worth of room whether the role needs it or not, so a long role
   like "Director of Sales Plumbing & Mechanical / Outside Sales" doesn't make
   its card taller than the one beside it. 2 x 1.45 line-height = 2.9em. */
.pcard-title{font-size:.84rem;color:#6b7784;margin:2px 0 0;line-height:1.45;min-height:2.9em}
.pcard-territory{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin:4px 0 0}
.pcard-contact{display:flex;gap:8px;flex:0 0 auto;align-self:center}
.pcard-contact .ic{width:34px;height:34px;border-radius:50%;border:1px solid var(--line,#e2e8ee);display:flex;align-items:center;justify-content:center;color:var(--blue);transition:.15s}
.pcard-contact .ic:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.pcard-contact .ic.li:hover{background:#0a66c2;border-color:#0a66c2}
@media(max-width:1000px){.team-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){
  .pband{padding:30px 0 34px}
  .team{padding:38px 0 60px}
  .team-list{grid-template-columns:1fr}
  .team-filters{gap:6px}
  .pill{font-size:.82rem;padding:7px 14px}
}

/* ---------- contact page ---------- */
/* ---------- about / our history ---------- */
.about{background:#fff;padding:52px 0 80px}
.history{max-width:780px;margin:0 auto;color:#6b7784}
.history p{margin-bottom:18px}
.history p:last-child{margin-bottom:0}
.history strong{color:#4a5561;font-weight:600}
.history h2{font-size:1.4rem;font-weight:600;color:#243447;margin:32px 0 12px}
.history a{color:var(--blue)}
.history a:hover{color:var(--blue-hover);text-decoration:underline}
/* ---------- training ---------- */
.training{background:#fff;padding:52px 0 80px}
.tnext{max-width:1000px;margin:56px auto 0;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:28px 30px}
.tnext h2{font-size:1.1rem;font-weight:600;color:var(--navy);margin:0 0 16px}
.tnext-list{list-style:none;margin:0;padding:0}
.tnext-list li{display:flex;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid #eef3f7;flex-wrap:wrap}
.tnext-list li:last-child{border-bottom:0}
.tnext-date{flex:0 0 74px;font-weight:700;color:var(--blue);font-size:.9rem;letter-spacing:.02em}
.tnext-title{font-weight:600;color:#243447}
.tnext-mfr{color:#8a97a4;font-size:.9rem}
.tnext-more{margin:18px 0 0}
.tcta{max-width:1000px;margin:34px auto 0;text-align:center;color:#6b7784}
.tcta p{margin-bottom:14px}
.tcta .btn{margin:0 5px}

/* ---------- training calendar ---------- */
.tcal{background:#fff;padding:52px 0 80px}
.slist{list-style:none;margin:0 auto;padding:0;max-width:1000px;display:flex;flex-direction:column;gap:16px}
.sess{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:24px;align-items:center;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:22px 26px;transition:.18s}
.sess:hover{border-color:#c4d7e5;box-shadow:0 8px 20px rgba(18,60,99,.08)}
.sess-when{background:var(--navy);color:#fff;border-radius:8px;padding:12px 8px;text-align:center;line-height:1.1}
.sess-mon{display:block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8fc4e8}
.sess-day{display:block;font-size:1.8rem;font-weight:700;margin:3px 0}
.sess-dow{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#a9c3d8}
.sess-title{font-size:1.15rem;font-weight:600;color:#243447;margin:0}
.sess-mfr{color:var(--blue);font-weight:600;font-size:.9rem;margin:3px 0 0}
.sess-sum{color:#6b7784;margin:9px 0 0}
.sess-meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:12px 0 0;padding:0}
.sess-meta li{display:flex;align-items:center;gap:7px;font-size:.88rem;color:#7d8b98}
.sess-meta svg{color:var(--blue);flex:0 0 14px}
.sess-seats{font-weight:600;color:#5d6770}
.sess-act{text-align:center}
.sess-mail{display:block;font-size:.84rem;color:var(--blue);margin-top:9px}
.sess-mail:hover{color:var(--blue-hover);text-decoration:underline}
.sess-fullbadge{display:inline-block;background:#f0e3e1;color:#b4332b;border:1px solid #e3c4c0;border-radius:999px;padding:7px 18px;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sess-seats.out{color:#b4332b;font-weight:700}
.sess-seats.out svg{color:#b4332b}
.signup{position:relative}
.signup > summary{list-style:none;cursor:pointer;display:inline-block}
.signup > summary::-webkit-details-marker{display:none}
.signup[open] > summary{background:#5d6770;box-shadow:0 3px 0 #4a5561}
.signup[open] > summary:hover{background:#4a5561}
.signup-form{margin-top:16px;text-align:left;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;background:#f5f8fa;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:20px 22px;width:min(520px,78vw)}
.signup-form label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#4a5561}
.signup-form label.wide{grid-column:1 / -1}
.signup-form .req{color:var(--blue)}
.signup-form input,.signup-form textarea{display:block;width:100%;margin-top:5px;font:inherit;font-size:.95rem;text-transform:none;letter-spacing:normal;color:#243447;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:6px;padding:9px 12px}
.signup-form input:focus,.signup-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(52,152,219,.15);outline:0}
.signup-form textarea{resize:vertical;line-height:1.5}
.signup-form .btn{grid-column:1 / -1;justify-self:start;margin-top:2px}
.signup-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.signup-note{max-width:1000px;margin:0 auto 22px;border-radius:8px;padding:15px 20px;font-weight:500;text-align:center}
.signup-note.good{background:#eaf6ef;border:1px solid #bfe3cd;color:#1f6f43}
.signup-note.bad{background:#fdf0ee;border:1px solid #f0cdc7;color:#b4332b}
@media(max-width:620px){.signup-form{grid-template-columns:minmax(0,1fr);width:100%}}
.sess-none{max-width:720px;margin:0 auto;text-align:center;color:#6b7784;background:#f5f8fa;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:36px 32px}
.sess-none p{margin-bottom:14px}
.sess-none p:last-child{margin-bottom:0}
.sess-none strong{color:#243447}
.tcal-foot{max-width:1000px;margin:26px auto 0;text-align:center;color:#7d8b98;font-size:.94rem}
.cinfo-plain li{align-items:flex-start}
.ci-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-top:8px}
@media(max-width:860px){
    .sess{grid-template-columns:72px minmax(0,1fr);gap:16px}
  .sess-act{grid-column:1 / -1;text-align:left;margin-top:6px}
  .sess-day{font-size:1.4rem}
  .training,.tcal{padding:38px 0 60px}
}

/* ---------- affiliations ---------- */
.affil{background:#fff;padding:52px 0 80px}
.agrid{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin:0;padding:0;max-width:1080px;margin-inline:auto}
.acard{background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:10px;min-height:168px;display:flex;transition:.18s}
.acard:hover{border-color:#c4d7e5;box-shadow:0 8px 20px rgba(18,60,99,.09);transform:translateY(-2px)}
.acard > a,.acard{text-decoration:none}
.acard > a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;padding:20px 16px}
.acard img{max-width:100%;max-height:62px;width:auto;height:auto;object-fit:contain}
.acard-name{font-size:.74rem;line-height:1.35;color:#7d8b98;text-align:center;font-weight:600}
.acard > a:hover .acard-name{color:var(--blue)}
@media(max-width:1000px){.agrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){
  .agrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .acard{min-height:140px}
  .affil{padding:38px 0 60px}
}

/* ---------- our territory ---------- */
.territory{background:#fff;padding:52px 0 80px}
.tmap{margin:0 auto;max-width:900px}
.tmap img{display:block;width:100%;height:auto}
.tareas{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:26px 0 0;padding:0}
.tareas li{background:#f5f8fa;border:1px solid var(--line,#e2e8ee);border-radius:999px;padding:9px 20px;font-size:.92rem;font-weight:600;color:var(--navy)}
@media(max-width:620px){.territory{padding:38px 0 60px}.tareas li{padding:8px 15px;font-size:.85rem}}

/* ---------- facilities ---------- */
.facilities{background:#fff;padding:52px 0 80px}
.frows{display:flex;flex-direction:column;gap:64px;max-width:1080px;margin:0 auto}
.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:46px;align-items:center}
.frow:nth-child(even) .frow-photo{order:2}
.frow.no-photo{grid-template-columns:minmax(0,1fr);max-width:780px;margin-inline:auto;text-align:center}
.frow-photo{line-height:0}
.frow-photo figure,.frow-photo img{margin:0;display:block;width:100%;height:auto;border-radius:10px}
.frow-photo figure{overflow:hidden;border-radius:10px}
.frow-photo figcaption{display:none}
.frow-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;margin-bottom:16px;box-shadow:0 6px 14px rgba(52,152,219,.28)}
.frow.no-photo .frow-icon{margin-inline:auto}
.frow-body h2{font-size:1.45rem;font-weight:600;color:var(--navy);margin:0 0 14px;letter-spacing:.01em}
.frow-body h2::after{content:"";display:block;width:26px;height:2px;background:var(--blue);margin-top:12px}
.frow.no-photo .frow-body h2::after{margin-inline:auto}
.frow-body{color:#6b7784}
.frow-body p{margin-bottom:13px}
.frow-body p:last-child{margin-bottom:0}
@media(max-width:860px){
  .frow,.frow:nth-child(even){grid-template-columns:minmax(0,1fr);gap:20px}
  .frow:nth-child(even) .frow-photo{order:0}
  .frows{gap:46px}
  .facilities{padding:38px 0 60px}
}

.hphoto{margin:34px 0 0;border-radius:10px;overflow:hidden;border:1px solid var(--line,#e2e8ee)}
.hphoto img{display:block;width:100%;height:auto}
.hphoto figcaption{font-size:.84rem;color:#8a97a4;text-align:center;padding:11px 14px;background:#f5f8fa;border-top:1px solid var(--line,#e2e8ee)}
.tenets-head{margin-top:62px}
.tenets-head h2{font-size:1.55rem;font-weight:400;color:#4a5561;line-height:1.25;margin:0}
.tenets-head h2::after{content:"";display:block;width:26px;height:2px;background:var(--blue);margin:14px auto 0}
.tenets{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:940px;margin:0 auto}
.tenet{background:#f5f8fa;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:28px 30px}
.tenet h3{font-size:1.08rem;font-weight:600;color:var(--navy);margin:0 0 14px;letter-spacing:.01em}
.tenet h3::after{content:"";display:block;width:24px;height:2px;background:var(--blue);margin-top:11px}
.tenet p{color:#6b7784;margin:0}
@media(max-width:820px){
  .tenets{grid-template-columns:1fr;gap:18px}
  .about{padding:38px 0 60px}
  .tenets-head{margin-top:44px}
}

.contact{background:#fff;padding:52px 0 70px}
.contact-grid{display:grid;grid-template-columns:400px minmax(0,1fr);gap:28px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:14px}
.cbox{background:#f5f8fa;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:24px 26px}
.cbox h2{font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 16px}
.cbox .cinfo{list-style:none;margin:0;padding:0}
.cbox .cinfo li{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;line-height:1.5;color:#4a5561}
.cbox .cinfo li:last-child{margin-bottom:0}
.ci-ico{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#fff;border:1px solid #dbe6ef;display:flex;align-items:center;justify-content:center;color:var(--blue)}
.cbox a{color:var(--navy);font-weight:600}
.cbox a:hover{color:var(--blue)}
.cbox a.big{font-size:1.25rem;font-weight:600}
.cbox .sub{font-size:.78rem;color:#8a97a4;font-weight:400;letter-spacing:.02em}
.cbox .sub-link{display:block;font-size:.8rem;font-weight:600;color:var(--blue);margin-top:4px}
.cphoto{margin:0;line-height:0;border:1px solid var(--line,#e2e8ee);border-radius:10px;overflow:hidden;background:#f5f8fa}
.cphoto img{display:block;width:100%;height:auto}
.contact-form{background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:10px;padding:30px 32px;min-height:340px}
.contact-form h2{font-size:1.3rem;font-weight:600;color:#243447;margin:0 0 12px}
.contact-form p{margin-bottom:14px}
.contact-form a{color:var(--blue)}
.form-placeholder{color:#5d6770}
.contact-map{line-height:0;border-top:1px solid var(--line,#e2e8ee)}
@media(max-width:900px){
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .contact-form{min-height:0}
}
@media(max-width:620px){
  .contact{padding:38px 0 50px}
  .cbox,.contact-form{padding:20px}
  .contact-map iframe{height:280px}
}

/* ---------- Fluent Forms, restyled to the PZI look ---------- */
.contact-form .fluentform,.entry .fluentform{--ff-radius:6px}
.contact-form .ff-el-group,.entry .ff-el-group{margin-bottom:18px}
.contact-form .ff-el-input--label label,.entry .ff-el-input--label label{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#4a5561;margin-bottom:6px}
.contact-form .ff-el-is-required.asterisk-right label:after,.entry .ff-el-is-required.asterisk-right label:after{color:var(--blue)}
.contact-form .ff-el-form-control,.entry .ff-el-form-control{font:inherit;font-size:.96rem;color:#243447;background:#fff;border:1px solid var(--line,#e2e8ee);border-radius:var(--ff-radius);padding:11px 14px;width:100%;transition:.15s;box-shadow:none}
.contact-form .ff-el-form-control:focus,.entry .ff-el-form-control:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(52,152,219,.15);outline:0}
.contact-form textarea.ff-el-form-control,.entry textarea.ff-el-form-control{min-height:130px;line-height:1.6}
.contact-form .ff-el-form-check-label,.entry .ff-el-form-check-label{font-size:.92rem;color:#5d6770}
.contact-form .ff-btn-submit,.entry .ff-btn-submit{background:var(--blue);color:#fff;font:inherit;font-size:.88rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:4px;padding:14px 32px;box-shadow:0 3px 0 #217dbb;cursor:pointer;transition:.18s}
.contact-form .ff-btn-submit:hover,.entry .ff-btn-submit:hover{background:#42a6dd;transform:translateY(-1px)}
.contact-form .ff-el-group.ff-el-form-bottom,.entry .ff-el-group.ff-el-form-bottom{margin-bottom:0}
.contact-form .ff-message-success,.entry .ff-message-success{background:#eaf6ef;border:1px solid #bfe3cd;border-radius:8px;color:#1f6f43;padding:18px 20px;font-weight:500}
.contact-form .error.text-danger,.entry .error.text-danger{color:#b4332b;font-size:.85rem;margin-top:5px}
.contact-form .ff-el-form-control.ff-el-is-error,.entry .ff-el-form-control.ff-el-is-error{border-color:#d9776f}
