/*
Theme Name: Piedmont Capital Advisors
Theme URI: https://piedmontcapitaladvisors.com
Author: Focus Digital
Description: Custom theme for Piedmont Capital Advisors — fee-conscious financial planning for the Piedmont Triad.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: piedmont-capital
*/

/* Cross-document View Transitions: a same-origin navigation cross-fades
   instead of hard-cutting. Chromium-stable; other browsers just ignore this
   at-rule and navigate normally — pure progressive enhancement, no fallback
   needed. */
@view-transition {
  navigation: auto;
}

/* The view-transition pseudo-elements live in their own top-layer tree, not
   the regular DOM — the global reduced-motion override further down (which
   targets *, *::before, *::after) doesn't reach them, so they need their
   own opt-out here. */
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation: none !important;
  }
}

:root{
  --navy: #142A42;
  --navy-deep: #0B1826;
  --blue: #1B3A5C;
  --blue-mid: #52708C;
  --blue-light: #6C8AA5;
  --accent: #A9793C;
  --accent-light: #E3C79A;
  --cream: #F8F5EF;
  --sand: #F1ECE2;
  --tan: #D9CBAE;
  --ink: #1B2430;
  --ink-2: #2B3746;
  --body: #545E6B;
  --muted: #9AA3AE;
  --line: rgba(20,42,66,.12);
  --line-strong: rgba(20,42,66,.18);
  --serif: 'Source Serif 4', serif;
  --sans: 'Manrope', sans-serif;
}

/* Respect OS-level "reduce motion" across every animation/transition in the
   theme and every compiled block stylesheet — a single global override
   instead of hunting down each src/style.scss animation individually. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/*
Responsive breakpoints (standardized theme-wide — CSS media queries can't
read custom properties, so these are literal values by convention, mirrored
in src/shared/_breakpoints.scss for the block library):
  1024px — large tablet / small desktop (2-col layouts start stacking)
  768px  — tablet (nav collapses, most 2-col grids go to 1-col)
  600px  — large mobile (tighter stacking, reduced spacing)
  420px  — small mobile (smallest phones)
*/

/*
Two independent styling systems share this theme and must never bleed into
each other (a block-scoped class was once accidentally reused in a hardcoded
template and broke silently — see git history around the "eliminate inline
styles" pass):
  1. Hardcoded templates (this file) — every top-level template wraps its
     content in <div id="pc-template">. Classes here never end in "-block".
  2. The Gutenberg block library (src/style.scss, compiled per-block and
     enqueued only when that block is present on the page) — every block's
     render.php wraps its output in a class ending in "-block"
     (e.g. .pc-differentiators-block), and block-built pages wrap the whole
     block stream in <div id="pc-blocks"> (see template-parts/flexible-content.php).
Rule of thumb: if you're adding a class for a hardcoded template section,
give it a page/section-scoped prefix (.pc-cpt-*, .pc-home-*, etc.) and never
"-block" — that suffix is reserved for actual Gutenberg blocks.
*/

/* Base reading size for body copy (p/span carrying flowing text) —
   bigger on purpose for legibility; headings and eyebrows are sized
   separately and stay clear of this class. */
.pc-body-copy{font-size:20px;}
@media (max-width:768px){
  .pc-body-copy{font-size:18px;}
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:#fff;
  color:var(--ink);
  font-family:var(--sans);
  overflow-x:hidden;
}
a{color:var(--blue);text-decoration:none;}
a:hover{color:var(--accent);}
::selection{background:var(--accent);color:#fff;}

/* Sitewide keyboard-focus indicator — mouse/touch clicks don't trigger
   :focus-visible, so this doesn't add the outline noise a plain :focus
   rule would on every click; it only shows for keyboard/AT navigation. */
:focus-visible{
  outline:2.5px solid var(--accent);
  outline-offset:2px;
}

/* Visually hides content while keeping it in the accessibility tree —
   for form <label>s and similar text that's redundant on-screen (e.g.
   next to a placeholder) but required for screen readers. */
.pc-sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
input,textarea,select{font-family:var(--sans);}
input::placeholder,textarea::placeholder{color:var(--muted);}
img{max-width:100%;display:block;}
button{font-family:var(--sans);}

.pc-wrap{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px;}
.pc-wrap--flush{padding-left:0;padding-right:0;}
.pc-bg-white{background:#fff;}
.pc-bg-cream{background:var(--sand);}
.pc-bg-ivory{background:var(--cream);}
.pc-bg-navy{background:var(--navy);}
.pc-relative{position:relative;}
.pc-overflow-hidden{overflow:hidden;}
.pc-scroll-offset{scroll-margin-top:120px;}
.pc-mw-800{max-width:800px;}
.pc-page-hero{min-height:300px;padding:150px 40px 60px;}
.pc-page-hero__title{font-size:clamp(32px,4vw,48px);color:var(--navy);}

/* Every Piedmont block is a full-width page section, never inline
   content — it should always span the viewport regardless of the
   editor's per-block "align" choice or any ancestor width constraint
   (e.g. a page accidentally left on a classic narrow-content template).
   This is the standard "break out of a constrained parent" technique:
   100vw + a negative margin equal to half the viewport minus half the
   parent, re-centering the block edge-to-edge without touching the
   parent's own width. */
[class*="wp-block-piedmont-"]{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
/* Some blocks (Highlight Card, Feature List) are designed to be nested
   inside a core Columns block as one half of a two-column layout, not
   used as a standalone top-level section — the full-bleed breakout above
   would blow them out to 100vw and destroy the column layout. Undo it
   whenever a Piedmont block has a Columns ancestor. */
.wp-block-column [class*="wp-block-piedmont-"],
.wp-block-columns [class*="wp-block-piedmont-"]{
  width:auto;
  max-width:100%;
  margin-left:0;
  margin-right:0;
}
/* Full-bleed background, constrained content — the inner-content half of
   the same pattern every hardcoded template uses (.pc-section + .pc-wrap).
   Blocks with their own decorative full-bleed children (hero, team-card-grid,
   etc.) already define their own internal max-width and don't need this. */
.pc-block-inner{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px;}
@media (max-width:600px){.pc-block-inner{padding-left:20px;padding-right:20px;}}
@media (max-width:600px){
  .pc-wrap{padding-left:0;padding-right:0;}
}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes blobDrift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(26px,-18px) scale(1.08);}100%{transform:translate(0,0) scale(1);}}
@keyframes blobDrift2{0%{transform:translate(0,0) scale(1);}50%{transform:translate(-22px,20px) scale(1.06);}100%{transform:translate(0,0) scale(1);}}
@keyframes pulseRing{0%{transform:scale(.6);opacity:.7;}100%{transform:scale(2.4);opacity:0;}}
.pc-fade-up{animation:fadeUp .45s ease both;}

/* Position/size/blur/animation-duration vary per instance in the source, so
   they're set inline per blob — this class only carries what's constant. */
.pc-blob{position:absolute;border-radius:50%;pointer-events:none;}

/* ---------- Header ---------- */
.pc-topbar{background:var(--navy-deep);color:var(--tan);display:flex;align-items:center;justify-content:space-between;padding:9px 40px;font-size:14.5px;}
.pc-topbar-left{display:flex;align-items:center;gap:22px;}
.pc-topbar-left span{opacity:.45;}
.pc-topbar a{color:inherit;display:inline-flex;align-items:center;min-height:24px;}
.pc-topbar a:hover{color:#fff;}
@media (max-width:600px){
  .pc-topbar{padding-left:20px;padding-right:20px;gap:10px;}
  .pc-topbar-left{flex-direction:column;gap:0;}
  .pc-topbar-left span{display:none;}
}
.pc-login-btn{background:transparent;border:1px solid rgba(217,203,174,.4);color:#F1ECE2;padding:7px 18px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;cursor:pointer;}

.pc-header{position:sticky;top:0;z-index:50;background:#fff;transition:box-shadow .3s ease;}
.pc-header.is-scrolled{box-shadow:0 6px 24px rgba(20,42,66,.1);}
.pc-header-row{display:flex;align-items:center;justify-content:space-between;padding:15px 40px;border-bottom:1px solid var(--line);position:relative;}
.pc-logo{display:flex;align-items:center;gap:13px;background:none;border:none;cursor:pointer;padding:0;text-decoration:none;}
.pc-logo-img{height:56px;width:auto;max-width:210px;object-fit:contain;display:block;}

.pc-nav{display:flex;align-items:center;gap:0;white-space:nowrap;}
.pc-nav-link{background:none;border:none;font-family:var(--sans);font-weight:600;font-size:16.5px;color:var(--ink);padding:10px 12px;cursor:pointer;transition:color .2s ease;display:inline-flex;align-items:center;gap:4px;}
.pc-nav-link:hover,.pc-nav-link.is-active{color:var(--accent);}
.pc-nav-toggle::after{
  content:"";
  display:inline-block;
  width:10px;
  height:6px;
  flex-shrink:0;
  background-color:currentColor;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23000' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23000' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
}
.pc-nav-item{position:relative;}
.pc-nav-drop{position:absolute;top:100%;left:0;background:#fff;border:1px solid rgba(20,42,66,.12);box-shadow:0 18px 40px rgba(20,42,66,.14);min-width:210px;padding:8px;z-index:60;display:none;animation:fadeUp .22s ease both;}
.pc-nav-item.is-open .pc-nav-drop{display:block;}
.pc-nav-drop a{display:block;width:100%;text-align:left;background:none;border:none;padding:11px 14px;font-family:var(--sans);font-size:16.5px;color:var(--ink);cursor:pointer;transition:background .18s ease,color .18s ease,padding-left .18s ease;}
.pc-nav-drop a:hover{background:#F8F5EF;color:var(--accent);padding-left:19px;}
.pc-nav-cta{margin-left:10px;background:var(--blue);color:var(--cream);border:none;padding:12px 22px;font-weight:600;font-size:15px;letter-spacing:.02em;cursor:pointer;transition:background .25s ease,transform .25s ease;display:inline-block;}
.pc-nav-cta:hover{background:#24486D;color:var(--cream);transform:translateY(-2px);}

.pc-burger{background:none;border:none;cursor:pointer;padding:8px;display:none;flex-direction:column;gap:5px;}
.pc-burger span{width:24px;height:2px;background:var(--navy);display:block;}

.pc-mobile-menu{background:#fff;border-bottom:1px solid var(--line);padding:8px 24px 24px;display:none;flex-direction:column;animation:fadeUp .25s ease both;}
.pc-mobile-menu.is-open{display:flex;}
.pc-mobile-menu a{text-align:left;background:none;border:none;padding:14px 4px;font-weight:600;font-size:18px;color:var(--navy);border-bottom:1px solid rgba(20,42,66,.08);}
.pc-mobile-menu a:last-child{border-bottom:none;}

@media (max-width:1220px){
  .pc-nav{display:none;}
  .pc-burger{display:flex;}
}

/* ---------- Shared utility classes (replace one-off inline styles) ---------- */
.pc-honeypot{position:absolute;left:-9999px;}
/* Compound (not just .is-hidden) so this always outranks a single-class
   display rule on whatever it's applied to, regardless of source order —
   e.g. .pc-resources-card{display:flex} was winning the tie and the
   Resources category filter looked broken (JS toggled the class fine, but
   the card never actually visually hid). Same root cause as the icon
   sizing fixes elsewhere in this file. */
.is-hidden.is-hidden{display:none;}
.pc-text-link{font-weight:600;font-size:17px;}
.pc-heading-light{color:var(--cream);}
.pc-mw-480{max-width:480px;}
.pc-mw-600{max-width:600px;}
.pc-mw-680{max-width:680px;}
.pc-mw-720{max-width:720px;}
.pc-items-start{align-items:start;}
.pc-items-center{align-items:center;}
.pc-text-center{text-align:center;}
.pc-justify-center{justify-content:center;}
.pc-h1-compact{font-size:clamp(34px,4.6vw,50px);}
.pc-h2-sm{font-size:clamp(28px,3.3vw,36px);}
.pc-h2-md{font-size:clamp(28px,3.4vw,38px);}
.pc-text-ink2{color:#2B3746;}
.pc-label-heading{font-weight:700;font-size:14.5px;letter-spacing:.1em;text-transform:uppercase;color:#142A42;margin:0 0 4px;}
.pc-btn-sm{padding:15px 28px;font-size:16.5px;}
.pc-grid-2--11-9{grid-template-columns:1.1fr .9fr;}
.pc-grid-2--9-11{grid-template-columns:.9fr 1.1fr;}

/* ---------- Buttons / generic ---------- */
/* wp-block-library's own CSS (which normally supplies these) isn't enqueued on this classic theme, so the core/buttons flex layout is defined here instead — needed anywhere a block is rendered server-side via render_block() with wp-block-buttons/wp-block-button markup. */
.wp-block-buttons{margin:0;padding:0;list-style:none;}
.wp-block-buttons.is-layout-flex{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
.wp-block-buttons.is-content-justification-center{justify-content:center;}
.wp-block-buttons.is-content-justification-left{justify-content:flex-start;}
.wp-block-buttons.is-content-justification-right{justify-content:flex-end;}
.wp-block-button{margin:0;}
/* Core's own button styles (wp-block-library-inline-css) ship a pill border-radius; every .pc-btn button elsewhere in this theme is square, so pin it to 0 with enough specificity to win regardless of stylesheet load order. */
.wp-block-button__link.pc-btn{border-radius:0;}
.pc-btn{display:inline-block;border:none;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:17px;padding:17px 34px;transition:transform .25s ease,background .25s ease,border-color .25s ease;}
.pc-btn-light{background:var(--cream);color:var(--navy);}
.pc-btn-light:hover{transform:translateY(-3px);color:var(--navy);}
.pc-btn-outline{background:transparent;border:1.5px solid rgba(248,245,239,.6);color:var(--cream);}
.pc-btn-outline:hover{border-color:var(--cream);color:var(--cream);}
.pc-btn-navy{background:var(--blue);color:var(--cream);}
.pc-btn-navy:hover{background:#24486D;color:var(--cream);}
.pc-btn-outline-navy{background:transparent;border:1.5px solid var(--blue);color:var(--blue);}
/* #8B6331, not var(--accent) (#A9793C) — the lighter gold only hits 3.25:1 on cream/white, short of WCAG AA's 4.5:1 for this size/weight; this darkened value clears 4.5:1. .pc-eyebrow-light (dark backgrounds) is unaffected. */
.pc-eyebrow{font-family:var(--sans);font-weight:700;font-size:14.5px;letter-spacing:.16em;text-transform:uppercase;color:#8B6331;margin-bottom:18px;}
.pc-eyebrow-light{color:var(--accent-light);}
.pc-h2{font-family:var(--serif);font-weight:600;font-size:clamp(30px,3.6vw,42px);color:var(--navy);line-height:1.15;margin:0;letter-spacing:-.01em;}
.pc-h2.pc-heading-light{color:var(--cream);}
.pc-h1{font-family:var(--serif);font-weight:600;font-size:clamp(36px,5vw,56px);line-height:1.12;color:var(--cream);margin:0;letter-spacing:-.01em;}

/* ---------- Sections ---------- */
.pc-section{padding:110px 40px;}
@media (max-width:768px){.pc-section{padding:64px 40px;}}
@media (max-width:600px){.pc-section{padding-left:20px;padding-right:20px;}}
.pc-hero{position:relative;overflow:hidden;min-height:420px;display:flex;align-items:center;}
.pc-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.pc-hero-overlay{position:absolute;inset:0;}
.pc-overlay-navy-fade{background:linear-gradient(100deg, rgba(11,24,38,.93) 0%, rgba(20,42,66,.82) 50%, rgba(169,121,60,.38) 100%);}
.pc-overlay-navy-fade-wide{background:linear-gradient(115deg, rgba(11,24,38,.94) 0%, rgba(20,42,66,.86) 40%, rgba(82,112,140,.55) 78%, rgba(169,121,60,.4) 100%);}
.pc-overlay-cream-gold-fade{background:linear-gradient(90deg, #F8F5EF 0%, #F8F5EF 38%, rgba(248,245,239,.82) 46%, rgba(238,220,190,.55) 56%, rgba(227,199,154,.18) 68%, rgba(227,199,154,0) 82%);}
.pc-hero-badge{position:absolute;right:40px;bottom:24px;background:rgba(248,245,239,.1);backdrop-filter:blur(14px);border:1px solid rgba(248,245,239,.22);padding:14px 20px;font-weight:600;font-size:14.5px;color:var(--cream);}
@media (max-width:780px){.pc-hero-badge{display:none;}}

.pc-accordion{border-bottom:1px solid rgba(20,42,66,.15);}
.pc-accordion summary{width:100%;display:flex;justify-content:space-between;align-items:center;padding:26px 2px;cursor:pointer;list-style:none;font-family:var(--serif);font-size:23px;color:var(--navy);}
.pc-accordion summary::-webkit-details-marker{display:none;}
.pc-accordion summary::after{content:'+';font-family:var(--sans);font-size:24px;font-weight:300;color:var(--accent);}
.pc-accordion[open] summary::after{content:'\2212';}
.pc-accordion p{padding:0 2px 28px;font-size:18px;line-height:1.75;color:var(--body);max-width:520px;margin:0;animation:fadeUp .25s ease both;}

.pc-faq summary{font-family:var(--sans);font-weight:600;font-size:19px;color:var(--navy);padding:24px 2px;}
.pc-faq p{font-size:17.5px;max-width:640px;}

.pc-card{border:1px solid rgba(20,42,66,.14);padding:36px;transition:transform .3s ease,box-shadow .3s ease;}
.pc-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(20,42,66,.1);}

.pc-svg-panel{position:relative;background:var(--navy);min-height:380px;overflow:hidden;}
.pc-svg-panel svg{position:absolute;inset:0;width:100%;height:100%;}
.pc-wave-svg{position:absolute;inset:0;width:100%;height:100%;}
.pc-pulse-ring{transform-origin:var(--pc-pulse-origin,center);animation:pulseRing 2.5s ease-out infinite;}

.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';}

.pc-tabs-group__nav{display:flex;border-bottom:1px solid rgba(20,42,66,.12);margin-bottom:32px;}
.pc-gradient-overlay-bt{position:absolute;inset:0;background:linear-gradient(to top, rgba(11,24,38,.96) 0%, rgba(11,24,38,.75) 38%, rgba(11,24,38,.15) 75%, rgba(11,24,38,0) 100%);}

.pc-tab-btn{background:none;border:none;padding:14px 0;margin-right:36px;font-weight:600;font-size:18px;cursor:pointer;color:#9AA3AE;border-bottom:2px solid transparent;font-family:var(--sans);}
.pc-tab-btn:last-child{margin-right:0;}
.pc-tab-btn.is-active{color:var(--navy);border-bottom:2px solid var(--accent);}

@media (max-width:768px){
  .pc-hide-sm{display:none !important;}
}

/* ---------- Footer ---------- */
.pc-footer{background:var(--navy);color:#C9CFD6;padding:80px 40px 36px;}
@media (max-width:600px){.pc-footer{padding-left:20px;padding-right:20px;}}
.pc-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.12);}
.pc-footer-grid .pc-footer-col-title{font-family:var(--sans);font-weight:700;font-size:14.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);margin:0 0 20px;}
.pc-footer-grid a,.pc-footer-grid button{display:block;background:none;border:none;text-align:left;padding:0;margin-bottom:12px;font-family:var(--sans);font-size:16.5px;color:#AEB6BF;cursor:pointer;}
.pc-footer-grid a:last-child{margin-bottom:0;}
.pc-footer-grid a:hover{color:var(--accent-light);}
.pc-footer-disclosures{padding:44px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14.5px;line-height:1.75;color:#9AA3AE;}
.pc-footer-disclosures a{color:#C9CFD6;text-decoration:underline;}
.pc-footer-disclosures p{margin:0 0 14px;}
.pc-footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:14px;color:#87909B;flex-wrap:wrap;gap:12px;}
.pc-top-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#C9CFD6;padding:8px 14px;font-size:13.5px;cursor:pointer;}

@media (max-width:900px){
  .pc-footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .pc-footer-grid{grid-template-columns:1fr;}
}

/* ---------- Grids / responsive helpers ---------- */
.pc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.pc-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:768px){
  .pc-grid-2,.pc-grid-3{grid-template-columns:1fr;}
}
/* ---------- Forms ---------- */
.pc-input{padding:16px 18px;border:1px solid rgba(20,42,66,.2);font-size:17px;background:var(--cream);width:100%;}
.pc-input-dark{padding:15px 18px;background:transparent;border:1px solid rgba(248,245,239,.3);color:var(--cream);}

/* ---------- Reveal-on-scroll differentiators / steps ---------- */
/* "Unrevealed" colors are muted for the scroll-reveal effect, but still meet
   WCAG AA (4.5:1 body / 3:1 large text) against their background on their
   own — the full-color "revealed" state is a bonus, not the only readable one. */
[data-diff-idx] .pc-diff-icon{color:#B0B8C0;transition:color .8s ease;}
[data-diff-idx] .pc-diff-title{color:var(--body);transition:color .8s ease;}
[data-diff-idx] .pc-diff-text{color:var(--body);transition:color .8s ease;}
[data-diff-idx].is-revealed .pc-diff-icon{color:var(--accent);}
[data-diff-idx].is-revealed .pc-diff-title{color:var(--navy);}
[data-diff-idx].is-revealed .pc-diff-text{color:var(--body);}
[data-diff-idx].pc-diff-dark .pc-diff-icon{color:#8A94A0;}
[data-diff-idx].pc-diff-dark .pc-diff-title{color:#9AA6B3;}
[data-diff-idx].pc-diff-dark .pc-diff-text{color:#9AA6B3;}
[data-diff-idx].pc-diff-dark.is-revealed .pc-diff-icon{color:var(--accent);}
[data-diff-idx].pc-diff-dark.is-revealed .pc-diff-title{color:var(--cream);}
[data-diff-idx].pc-diff-dark.is-revealed .pc-diff-text{color:#D3DAE1;}

/* ---------- Home page interactive extras (hover states matching source) ---------- */
/* Base color/background/border are defined here (not inline) so :hover can
   actually override them — inline style attributes always beat an external
   stylesheet rule for the same property, hover or not. */
.pc-loc-chip{background:#fff;border:1px solid rgba(20,42,66,.2);color:var(--navy);padding:9px 18px;font-weight:600;font-size:15px;transition:background .2s ease,color .2s ease;}
.pc-loc-chip:hover{background:var(--navy);color:var(--cream);}

.pc-cover-img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.pc-home-team-card{position:relative;background:rgba(248,245,239,.05);overflow:hidden;display:block;border:1px solid rgba(248,245,239,.16);transition:transform .35s ease,border-color .35s ease;}
.pc-home-team-card:hover{transform:translateY(-8px);border-color:rgba(217,203,174,.5);}

.pc-insight-row{display:flex;gap:18px;border-bottom:1px solid rgba(20,42,66,.12);color:inherit;text-decoration:none;padding:26px 4px;transition:padding-left .25s ease;}
.pc-insight-row:hover{padding-left:10px;}

.pc-featured-card{transition:transform .3s ease,box-shadow .3s ease;}
.pc-featured-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(20,42,66,.12);}

.pc-related-card{transition:transform .3s ease;background:#fff;padding:30px;display:block;color:inherit;}
.pc-related-card:hover{transform:translateY(-4px);}
.pc-related-card__title{font-family:var(--serif);font-size:22px;color:var(--navy);margin:0 0 8px;font-weight:600;}
.pc-related-card__text{font-size:16.5px;color:var(--body);margin:0;}
.pc-related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
@media (max-width:600px){.pc-related-grid{grid-template-columns:1fr;}}

/* ---------- Resource filter chips ---------- */
.pc-res-chip{background:transparent;color:var(--body);border:1px solid rgba(20,42,66,.22);padding:9px 20px;font-weight:600;font-size:16px;cursor:pointer;}
.pc-res-chip.is-active{background:var(--navy);color:var(--cream);border-color:var(--navy);}

/* ---------- Home page ---------- */
.pc-home-hero{background:var(--navy);min-height:640px;padding:150px 40px 110px;}
.pc-home-hero__blob-a{width:460px;height:460px;background:radial-gradient(circle,rgba(169,121,60,.5),transparent 70%);top:-140px;right:-100px;filter:blur(50px);animation:blobDrift 16s ease-in-out infinite;}
.pc-home-hero__blob-b{width:380px;height:380px;background:radial-gradient(circle,rgba(82,112,140,.55),transparent 70%);bottom:-120px;left:10%;filter:blur(60px);animation:blobDrift2 18s ease-in-out infinite;}
.pc-home-hero__content{max-width:1200px;margin:0 auto;position:relative;width:100%;}
.pc-home-hero__intro{max-width:660px;}
.pc-home-hero__lead{font-size:21px;line-height:1.7;color:#D3DAE1;max-width:540px;margin:26px 0 38px;}
.pc-home-hero__actions{display:flex;gap:16px;flex-wrap:wrap;}
@media (max-width:600px){.pc-home-hero{min-height:auto;padding:130px 24px 80px;}}

.pc-home-floating-badge-wrap{position:relative;height:0;}
.pc-home-floating-badge{position:absolute;top:-64px;right:40px;background:rgba(20,42,66,.92);backdrop-filter:blur(18px);border:1px solid rgba(248,245,239,.14);padding:24px 28px;max-width:280px;z-index:5;}
.pc-home-floating-badge__label{font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#E3C79A;margin-bottom:8px;}
.pc-home-floating-badge__text{font-family:var(--serif);font-size:18.5px;line-height:1.4;color:#F8F5EF;}

.pc-home-work{grid-template-columns:0.8fr 1.2fr;align-items:start;}
.pc-home-work-lead{font-family:var(--serif);font-size:24px;line-height:1.6;color:#2B3746;margin:0 0 20px;max-width:600px;}
.pc-home-work-text{line-height:1.8;color:var(--body);max-width:580px;margin:0;}
@media (max-width:768px){.pc-home-work{grid-template-columns:1fr;}}

.pc-home-services-intro{max-width:600px;margin-bottom:56px;}
.pc-home-services-grid{grid-template-columns:1fr 0.85fr;}
.pc-home-strategies-panel{position:absolute;left:36px;bottom:36px;right:36px;}
.pc-home-strategies-panel__label{font-weight:700;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.pc-home-strategies-panel__heading{font-family:var(--serif);font-size:24px;line-height:1.35;color:#F8F5EF;margin-bottom:18px;}
.pc-home-strategies-panel__contact{display:flex;gap:18px;flex-wrap:wrap;font-size:15.5px;}
.pc-home-strategies-panel__contact a{color:#F1ECE2;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.pc-home-strategies-panel__contact .material-symbols-outlined{font-size:18px;}
@media (max-width:768px){.pc-home-services-grid{grid-template-columns:1fr;}}

.pc-home-diff-heading{max-width:640px;}
.pc-home-diff-list{margin-top:52px;border-top:1px solid rgba(20,42,66,.12);}
.pc-home-diff-row{display:grid;grid-template-columns:100px 1fr;gap:32px;padding:40px 0;border-bottom:1px solid rgba(20,42,66,.12);align-items:start;}
.pc-home-diff-icon{font-size:52px;line-height:1;}
.pc-home-diff-title{font-family:var(--serif);font-size:26px;margin:0 0 12px;font-weight:600;}
.pc-home-diff-text{line-height:1.75;max-width:680px;margin:0;}
@media (max-width:600px){.pc-home-diff-row{grid-template-columns:1fr;gap:16px;}}

.pc-home-locations-grid{align-items:center;}
.pc-home-locations-text{line-height:1.8;color:var(--body);margin:0 0 26px;max-width:480px;}
.pc-home-locations-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px;}
.pc-home-locations-address{line-height:1.8;color:var(--body);margin:0 0 24px;}
.pc-home-locations-links{display:flex;gap:24px;flex-wrap:wrap;}
@media (max-width:768px){.pc-home-locations-grid{grid-template-columns:1fr;}}

.pc-home-reviews-intro{text-align:center;max-width:640px;margin:0 auto 24px;}
.pc-home-reviews-rating{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:56px;}
.pc-home-reviews-rating__score{font-family:var(--serif);font-size:46px;color:var(--navy);font-weight:600;}
.pc-home-reviews-rating__stars{color:var(--accent);font-size:20px;letter-spacing:2px;}
.pc-home-reviews-rating__count{font-size:15px;color:var(--body);}

.pc-home-team-section{position:relative;background:var(--navy);overflow:hidden;}
.pc-home-team-section__blob-a{width:420px;height:420px;background:radial-gradient(circle,rgba(169,121,60,.35),transparent 70%);top:-140px;right:-80px;filter:blur(60px);animation:blobDrift 17s ease-in-out infinite;}
.pc-home-team-section__blob-b{width:340px;height:340px;background:radial-gradient(circle,rgba(82,112,140,.4),transparent 70%);bottom:-120px;left:-40px;filter:blur(60px);animation:blobDrift2 19s ease-in-out infinite;}

.pc-about-reviews{position:relative;overflow:hidden;}
.pc-about-reviews__blob-a{width:420px;height:420px;background:radial-gradient(circle,rgba(169,121,60,.35),transparent 70%);top:-140px;left:-80px;filter:blur(60px);animation:blobDrift2 17s ease-in-out infinite;}
.pc-about-reviews__blob-b{width:340px;height:340px;background:radial-gradient(circle,rgba(82,112,140,.4),transparent 70%);bottom:-120px;right:-40px;filter:blur(60px);animation:blobDrift 19s ease-in-out infinite;}
.pc-about-reviews__score{color:var(--cream);}
.pc-about-reviews__count{color:#D3DAE1;}
.pc-home-team-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:20px;margin-bottom:56px;}
.pc-home-team-header__heading{color:#F8F5EF;}
.pc-home-team-header__link{font-weight:600;font-size:17px;color:var(--accent-light);}
.pc-home-team-photo{height:230px;overflow:hidden;}
.pc-home-team-photo-fallback{height:230px;background:var(--pc-panel-color,#1B3A5C);display:flex;align-items:center;justify-content:center;}
.pc-home-team-photo-fallback span{font-family:var(--serif);font-size:56px;color:rgba(255,255,255,.92);}
.pc-home-team-body{padding:26px 24px 30px;}
.pc-home-team-body h4{font-family:var(--serif);font-size:22px;color:#F8F5EF;margin:0 0 4px;font-weight:600;}
.pc-home-team-body__title{font-size:15px;color:var(--accent-light);margin:0 0 12px;}
.pc-home-team-body__focus{line-height:1.6;color:#AEB6BF;margin:0;}

.pc-home-insights-bg{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(20,42,66,.07) 1.5px,transparent 1.5px);background-size:24px 24px;opacity:.6;pointer-events:none;}
.pc-home-insights-grid{grid-template-columns:1.3fr 1fr;}
.pc-home-insights-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:20px;margin-bottom:56px;}
.pc-home-featured-badge{display:inline-block;background:var(--accent);color:#fff;font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;margin-bottom:20px;width:fit-content;}
.pc-home-featured-meta{font-weight:700;font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;display:block;}
.pc-home-featured-title{font-family:var(--serif);font-size:30px;line-height:1.25;color:var(--navy);margin:0 0 16px;font-weight:600;}
.pc-home-featured-excerpt{line-height:1.75;color:var(--body);margin:0 0 24px;}
.pc-home-featured-card{position:relative;background:#fff;border:1px solid rgba(20,42,66,.12);border-left:4px solid var(--accent);padding:44px;display:flex;flex-direction:column;}
.pc-home-featured-cta{margin-top:auto;}
@media (max-width:600px){.pc-home-featured-card{padding:28px;}}
.pc-home-insight-n{font-family:var(--serif);font-size:22px;color:var(--accent);flex-shrink:0;}
.pc-home-insight-meta{font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.pc-home-insight-title{font-family:var(--serif);font-size:21px;color:var(--navy);margin:10px 0 0;font-weight:600;}
.pc-home-insight-list{display:flex;flex-direction:column;}
@media (max-width:1024px){.pc-home-insights-grid{grid-template-columns:1fr;}}

.pc-home-cta{position:relative;background:var(--navy);overflow:hidden;}
.pc-home-cta__blob-a{width:460px;height:460px;background:radial-gradient(circle,rgba(169,121,60,.4),transparent 70%);top:-160px;left:-100px;filter:blur(60px);animation:blobDrift2 18s ease-in-out infinite;}
.pc-home-cta__blob-b{width:380px;height:380px;background:radial-gradient(circle,rgba(82,112,140,.45),transparent 70%);bottom:-140px;right:-60px;filter:blur(60px);animation:blobDrift 20s ease-in-out infinite;}
.pc-home-cta__content{max-width:760px;margin:0 auto;text-align:center;position:relative;}
.pc-home-cta__heading{font-family:var(--serif);font-weight:600;font-size:clamp(32px,4vw,48px);color:#F8F5EF;margin:0 0 20px;letter-spacing:-.01em;}
.pc-home-cta__text{line-height:1.7;color:#D3DAE1;margin:0 0 40px;}
.pc-home-cta__actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.pc-home-cta__actions .pc-btn{padding:18px 40px;}

.pc-home-disclosure{background:var(--navy);padding:34px 40px;}
.pc-home-disclosure__inner{max-width:1200px;margin:0 auto;text-align:center;font-size:15px;color:#B9C2CC;}
.pc-home-disclosure__inner a{color:var(--tan);}

/* ---------- Single Service / Location profile pages ---------- */
.pc-cpt-hero{background:var(--navy);min-height:440px;padding:150px 40px 80px;}
.pc-cpt-hero__intro{max-width:520px;}
.pc-cpt-hero__intro:has(.pc-cpt-hero__lead-text){max-width:680px;}
.pc-cpt-hero__back{font-size:14.5px;color:#D3DAE1;margin-bottom:22px;display:inline-block;}
.pc-cpt-hero__subhead{font-family:var(--serif);font-size:clamp(20px,2.2vw,24px);line-height:1.5;color:#F8F5EF;margin:16px 0 20px;}
.pc-cpt-hero__lead-text{color:#D3DAE1;margin:0 0 18px;}
.pc-cpt-hero__actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;}

.pc-cpt-lead{font-family:var(--serif);font-size:23px;line-height:1.6;color:var(--ink-2);margin:0 0 30px;}
.pc-cpt-lead--sm{font-size:22px;margin-bottom:28px;}
.pc-cpt-actions{display:flex;gap:14px;flex-wrap:wrap;}
.pc-cpt-detail{line-height:1.85;color:var(--body);margin:0 0 14px;}
.pc-cpt-detail a{color:inherit;}
.pc-cpt-detail--last{margin-bottom:28px;}
.pc-cpt-reviews-intro{text-align:center;max-width:640px;margin:0 auto 40px;}

.pc-cpt-benefits{margin-top:28px;border-top:1px solid rgba(20,42,66,.12);}
.pc-cpt-benefit-row{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid rgba(20,42,66,.12);align-items:flex-start;}
.pc-cpt-benefit-icon{font-size:26px;color:var(--accent);flex-shrink:0;}
.pc-cpt-benefit-text{line-height:1.6;padding-top:2px;}
.pc-cpt-benefit-media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.pc-cpt-benefit-media img{width:100%;height:100%;object-fit:cover;display:block;}

.pc-cpt-highlight{background:var(--navy);padding:40px;position:relative;overflow:hidden;}
.pc-cpt-highlight__content{position:relative;}
.pc-cpt-highlight__label{font-weight:700;font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-light);margin-bottom:14px;}
.pc-cpt-highlight__text{font-family:var(--serif);font-size:20px;line-height:1.55;color:var(--cream);margin:0 0 30px;}

.pc-cpt-feature-row{display:flex;gap:14px;padding:18px 0;border-top:1px solid rgba(20,42,66,.12);}
.pc-cpt-feature-dash{color:var(--accent);font-family:var(--serif);font-size:20px;line-height:1;}

.pc-cpt-steps{display:grid;grid-template-columns:repeat(var(--pc-columns,4),1fr);gap:28px;}
.pc-cpt-step{padding:0 26px;border-right:1px solid rgba(248,245,239,.14);}
.pc-cpt-step:last-child{border-right:none;}
.pc-cpt-step__icon{font-size:40px;display:block;margin-bottom:16px;}
.pc-cpt-step__n{font-family:var(--serif);font-size:16px;}
.pc-cpt-step__title{font-family:var(--serif);font-size:23px;margin:8px 0 10px;font-weight:600;}
@media (max-width:768px){
  .pc-cpt-steps{grid-template-columns:1fr;gap:0;}
  .pc-cpt-step{padding:24px 0;border-right:none;border-bottom:1px solid rgba(248,245,239,.14);}
  .pc-cpt-step:last-child{border-bottom:none;}
}
.pc-cpt-steps-wrap{max-width:960px;margin:0 auto;position:relative;}
.pc-cpt-steps-intro{text-align:center;margin:0 auto 56px;}
.pc-cpt-steps-intro--service{max-width:620px;}
.pc-cpt-steps-intro--location{max-width:560px;}

.pc-cpt-compare-wrap{max-width:1000px;margin:0 auto;}
.pc-cpt-compare-intro{text-align:center;max-width:600px;margin:0 auto 48px;}
.pc-compare-table{border:1px solid rgba(20,42,66,.14);}
.pc-compare-table__head{display:grid;grid-template-columns:1.1fr 1fr 1fr;background:var(--navy);}
.pc-compare-table__head>div{padding:18px 24px;font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--cream);}
.pc-compare-table__head>div:last-child{color:var(--accent-light);}
.pc-compare-table__row{display:grid;grid-template-columns:1.1fr 1fr 1fr;border-top:1px solid rgba(20,42,66,.1);background:#fff;}
.pc-compare-table__row>div{padding:22px 24px;font-size:16.5px;line-height:1.5;color:var(--body);}
.pc-compare-table__label{font-family:var(--serif);font-weight:600;color:var(--navy) !important;font-size:18px;}
.pc-compare-table__hl{background:rgba(169,121,60,.06);color:var(--ink-2);}
@media (max-width:768px){
  .pc-compare-table__head,.pc-compare-table__row{grid-template-columns:1fr;}
}

.pc-cpt-faq-wrap{max-width:800px;margin:0 auto;}
.pc-custom-fields{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:0;}
.pc-custom-fields__row{border-top:1px solid rgba(20,42,66,.12);padding-top:12px;}
.pc-custom-fields__row dt{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--body);margin-bottom:4px;}
.pc-custom-fields__row dd{margin:0;font-size:16px;color:var(--ink);}

.pc-cpt-cta{position:relative;background:var(--navy);overflow:hidden;}
.pc-cpt-cta__inner{max-width:680px;margin:0 auto;text-align:center;position:relative;}
.pc-cpt-cta__heading{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.6vw,40px);color:var(--cream);margin:0 0 18px;letter-spacing:-.01em;}
.pc-cpt-cta__text{line-height:1.7;color:#D3DAE1;margin:0 0 32px;}
.pc-cpt-step__text{line-height:1.65;margin:0;}

/* ---------- Listing pages (Services / Locations) ---------- */
.pc-listing-hero{background:var(--navy);min-height:480px;padding:150px 40px 90px;}
.pc-listing-hero__lead{font-size:20px;line-height:1.75;color:#D3DAE1;margin:0;}
.pc-locations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
@media (max-width:768px){.pc-locations-grid{grid-template-columns:1fr;}}
.pc-listing-card{display:block;color:inherit;}
.pc-listing-card--col{display:flex;flex-direction:column;}
.pc-listing-card__eyebrow{font-weight:700;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
.pc-listing-card__title{font-family:var(--serif);font-size:26px;color:var(--navy);margin:10px 0 14px;font-weight:600;}
.pc-listing-card__text{line-height:1.7;color:var(--body);margin:0 0 20px;}
.pc-listing-card__cta{font-weight:600;font-size:16px;}
.pc-listing-card__cta--auto{margin-top:auto;}

.pc-cta-simple{text-align:center;position:relative;overflow:hidden;}
.pc-cta-simple>.pc-h2,.pc-cta-simple>.pc-btn{position:relative;}
.pc-btn-lg{padding:18px 40px;}

/* ---------- About page ---------- */
.pc-about-hero{background:var(--navy);min-height:420px;padding:130px 40px 90px;}
.pc-overlay-navy-fade-blue{background:linear-gradient(100deg, rgba(11,24,38,.93) 0%, rgba(20,42,66,.82) 50%, rgba(82,112,140,.5) 100%);}
.pc-about-hero__intro{max-width:720px;margin:0 auto;position:relative;width:100%;}
.pc-about-lead{font-family:var(--serif);font-size:26px;line-height:1.1;color:#2B3746;margin:0 0 26px;}
.pc-about-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(20,42,66,.18);}
@media (max-width:768px){.pc-about-steps{grid-template-columns:1fr;}}
.pc-about-step{padding:36px 24px 0;border-right:1px solid rgba(20,42,66,.18);}
@media (max-width:768px){.pc-about-step{padding:24px 0 0;border-right:none;border-bottom:1px solid rgba(20,42,66,.18);}}
.pc-about-step__n{font-family:var(--serif);font-size:17px;color:var(--accent);}
.pc-about-step__title{font-family:var(--serif);font-size:24px;color:var(--navy);margin:14px 0 12px;font-weight:600;}
.pc-about-step__text{line-height:1.7;color:var(--body);margin:0 0 36px;}
.pc-about-quote-wrap{max-width:820px;margin:0 auto;text-align:center;}
.pc-about-quote__logo{height:52px;width:auto;max-width:180px;object-fit:contain;filter:brightness(0) invert(1);opacity:.85;margin:0 auto 32px;display:block;}
.pc-about-quote__text{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,3.2vw,36px);line-height:1.45;color:#F8F5EF;margin:0 0 26px;}
.pc-about-quote__attribution{font-weight:600;font-size:16px;letter-spacing:.06em;color:var(--accent);text-transform:uppercase;}
.pc-about-partner__heading{line-height:1.18;}
.pc-about-disclaimer{font-style:italic;font-size:16px;line-height:1.7;color:#9AA3AE;margin:0 0 16px;}
.pc-about-disclaimer:last-child{margin-bottom:0;}
.pc-about-disclosures-list{list-style:decimal;padding-left:22px;}
.pc-about-disclosures-list li{margin-bottom:8px;}
.pc-about-disclosures-list li:last-child{margin-bottom:0;}
.pc-about-stats-panel{background:var(--navy);padding:56px 48px;}
.pc-about-stats-panel__intro{text-align:center;margin-bottom:44px;}
.pc-about-stats-panel__heading{font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.6vw,32px);color:#F8F5EF;margin:10px 0 0;}
.pc-about-stats-panel__n{font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);color:var(--accent-light);font-weight:600;margin-bottom:8px;}
.pc-about-stats-panel__t{font-size:14.5px;line-height:1.5;color:#AEB6BF;}
.pc-about-stats-panel__source{font-style:italic;font-size:14px;line-height:1.7;color:#7C8794;margin:36px 0 0;text-align:center;}
.pc-about-stats-panel__source-link{color:#AEB6BF;}
.pc-lpl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 24px;}
@media (max-width:600px){.pc-lpl-stats{grid-template-columns:1fr 1fr;}}
@media (max-width:420px){.pc-lpl-stats{grid-template-columns:1fr;}}

/* ---------- Team page ---------- */
.pc-team-section{padding:20px 40px 40px;}
.pc-team-row{display:flex;gap:64px;padding:80px 0;border-bottom:1px solid rgba(20,42,66,.12);align-items:flex-start;flex-direction:row;}
.pc-team-row--reverse{flex-direction:row-reverse;}
@media (max-width:768px){.pc-team-row{flex-direction:column !important;}}
.pc-team-photo-col{flex:0 0 340px;max-width:100%;}
.pc-team-photo{height:400px;overflow:hidden;}
.pc-team-photo-fallback{height:400px;background:var(--pc-panel-color,#1B3A5C);display:flex;align-items:flex-end;padding:28px;position:relative;overflow:hidden;}
.pc-team-photo-fallback__initials{font-family:var(--serif);font-size:80px;color:rgba(255,255,255,.92);position:relative;}
.pc-team-quote{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.5;color:#2B3746;margin:22px 0 0;}
.pc-team-info{flex:1;min-width:280px;}
.pc-team-name{font-family:var(--serif);font-size:32px;color:var(--navy);margin:0 0 6px;font-weight:600;}
.pc-team-job{font-size:18px;color:var(--accent);margin:0 0 18px;}
.pc-team-credentials{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;}
.pc-team-credential{font-weight:600;font-size:14px;letter-spacing:.04em;color:#1B3A5C;border:1px solid rgba(20,42,66,.25);padding:6px 12px;}
.pc-team-contact{display:flex;gap:22px;margin-bottom:26px;font-size:16.5px;color:var(--body);flex-wrap:wrap;}
.pc-team-bio{font-size:18px;line-height:1.85;color:var(--body);}
.pc-team-compact-row{display:flex;gap:48px;padding:80px 0 40px;align-items:flex-start;}
.pc-team-compact-photo-col{flex:0 0 220px;height:220px;overflow:hidden;}
.pc-team-compact-photo-fallback{flex:0 0 220px;height:220px;background:var(--pc-panel-color,#1B3A5C);display:flex;align-items:center;justify-content:center;}
.pc-team-compact-photo-fallback__initials{font-family:var(--serif);font-size:56px;color:rgba(255,255,255,.92);}
.pc-team-compact-info{flex:1;}
.pc-team-compact-name{font-family:var(--serif);font-size:28px;color:var(--navy);margin:0 0 6px;font-weight:600;}
.pc-team-compact-job{font-size:18px;color:var(--accent);margin:0 0 16px;}
.pc-team-compact-contact{display:flex;gap:22px;margin-bottom:20px;font-size:16.5px;color:var(--body);flex-wrap:wrap;}
.pc-team-compact-bio{font-size:18px;line-height:1.85;color:var(--body);}

/* ---------- Contact page ---------- */
.pc-contact-hero__heading{margin-bottom:22px;}
.pc-contact-hero__lead{line-height:1.75;color:#D3DAE1;margin:0;}
.pc-contact-notice{padding:20px 24px;margin-bottom:24px;font-size:17px;}
.pc-contact-notice--success{background:var(--sand);border-left:4px solid var(--accent);color:#2B3746;}
.pc-contact-notice--error{background:#fdecec;border-left:4px solid #c0392b;color:#7a271f;}
.pc-contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.pc-contact-textarea{margin-bottom:24px;resize:vertical;}
.pc-contact-panel{background:var(--navy);padding:44px;position:relative;overflow:hidden;}
.pc-contact-panel__logo{height:48px;width:auto;max-width:170px;object-fit:contain;filter:brightness(0) invert(1);opacity:.92;margin-bottom:28px;display:block;}
.pc-contact-panel__heading{font-family:var(--serif);font-size:24px;color:#F8F5EF;margin:0 0 28px;font-weight:600;}
.pc-contact-panel__line{line-height:1.8;color:#D9DEE3;margin:0 0 22px;}
.pc-contact-panel__line a{color:inherit;}
.pc-contact-panel__line--last{margin-bottom:0;}

/* ---------- Resources page ---------- */
.pc-resources-section{padding:50px 40px 30px;}
.pc-resources-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:56px;}
.pc-resources-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;overflow:hidden;transition:height .3s ease;}
@media (prefers-reduced-motion:reduce){.pc-resources-grid{transition:none;}}
@media (max-width:768px){.pc-resources-grid{grid-template-columns:1fr;}}
.pc-resources-card{display:flex;flex-direction:column;color:inherit;transition:opacity .25s ease,transform .25s ease;}
.pc-resources-card.is-fading{opacity:0;transform:scale(.96);}
@media (prefers-reduced-motion:reduce){.pc-resources-card{transition:none;}}
.pc-resources-card--featured{grid-column:span 2;}
@media (max-width:768px){.pc-resources-card--featured{grid-column:span 1;}}
.pc-resources-card__meta{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.pc-resources-card__dot{width:8px;height:8px;border-radius:50%;background:var(--pc-dot-color,#545E6B);display:inline-block;}
.pc-resources-card__meta-text{font-weight:700;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:#9AA3AE;}
.pc-resources-card__title{font-family:var(--serif);font-size:25px;line-height:1.3;color:var(--navy);margin:0 0 12px;font-weight:600;}
.pc-resources-card__excerpt{line-height:1.7;color:var(--body);margin:0 0 20px;}
.pc-resources-card__cta{font-weight:600;font-size:16px;margin-top:auto;}
.pc-weekly-list{display:flex;flex-direction:column;}
.pc-weekly-row{display:flex;align-items:center;gap:28px;padding:28px 0;border-bottom:1px solid #E7E2D8;}
.pc-weekly-row:first-child{padding-top:0;}
.pc-weekly-row__date{flex:0 0 140px;font-weight:600;font-size:14.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.pc-weekly-row__body{flex:1;}
.pc-weekly-row__title{font-family:var(--serif);font-size:22px;color:var(--navy);margin:0 0 6px;font-weight:600;}
.pc-weekly-row__title a{color:inherit;}
.pc-weekly-row__title a:hover{color:var(--accent);}
.pc-weekly-row__excerpt{color:var(--body);margin:0;}
.pc-weekly-row__download{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;}
.pc-weekly-row__download .material-symbols-outlined{font-size:20px;}
@media (max-width:640px){
  .pc-weekly-row{flex-wrap:wrap;gap:12px;}
  .pc-weekly-row__date{flex-basis:100%;}
  .pc-weekly-row__download{flex-basis:100%;}
}
.pc-weekly-embed{border:1px solid var(--line-strong);background:#fff;}
.pc-weekly-embed__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 28px;border-bottom:1px solid var(--line-strong);background:var(--cream);}
.pc-weekly-embed__label{font-family:var(--serif);font-size:19px;color:var(--navy);font-weight:600;}
.pc-weekly-embed__label span{display:block;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:4px;font-family:var(--sans);}
.pc-weekly-embed__download{display:inline-flex;align-items:center;gap:8px;}
.pc-weekly-embed__download .material-symbols-outlined{font-size:20px;}
.pc-weekly-embed__frame-wrap{position:relative;height:820px;}
.pc-weekly-embed__frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.pc-weekly-embed__fallback{display:none;padding:64px 28px;text-align:center;color:var(--body);}
@media (max-width:680px){
  .pc-weekly-embed__frame-wrap{display:none;}
  .pc-weekly-embed__fallback{display:block;}
  .pc-weekly-embed__bar{padding:18px 20px;}
}
.pc-cpt-weekly-single{max-width:720px;margin:0 auto;}
.pc-cpt-weekly-single__content{margin-bottom:32px;}
.pc-cpt-weekly-single .pc-btn .material-symbols-outlined{font-size:20px;vertical-align:middle;margin-right:6px;}
.pc-resources-cta{background:var(--navy);text-align:center;}
.pc-resources-cta__inner{max-width:720px;margin:0 auto;}
.pc-resources-cta__heading{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.4vw,36px);color:#F8F5EF;margin:0 0 16px;letter-spacing:-.01em;}
.pc-resources-cta__text{color:#B9C2CC;margin:0 0 32px;}
.pc-resources-cta__form{display:flex;gap:12px;max-width:440px;margin:0 auto;flex-wrap:wrap;justify-content:center;}
.pc-resources-cta__email{flex:1;min-width:220px;}
.pc-resources-cta__button{background:var(--accent);color:var(--navy);border:none;padding:15px 28px;font-weight:700;font-size:16px;cursor:pointer;}

/* ---------- Site wrapper / header / footer ---------- */
/* overflow-x:hidden alone forces the UA to compute overflow-y as auto too (CSS Overflow spec quirk), which makes this the "nearest scrolling ancestor" for every position:sticky descendant on the site — since this box never actually scrolls internally (it just grows to fit its content), sticky elements inside it can never engage. overflow-x:clip clips the same horizontal blob/wave bleed without establishing that scroll container. */
.pc-site-wrap{font-family:var(--sans);color:var(--ink);background:#fff;overflow-x:clip;overflow-y:visible;min-height:100vh;}
.pc-footer-logo-wrap{margin-bottom:20px;}
.pc-footer-logo{height:64px;width:auto;max-width:220px;object-fit:contain;filter:brightness(0) invert(1);opacity:.92;}
.pc-footer-tagline{line-height:1.8;color:#AEB6BF;margin:0 0 20px;max-width:280px;}
.pc-footer-address{line-height:1.9;color:#AEB6BF;margin:0;}
.pc-footer-address a{color:inherit;}
.pc-footer-disclosures__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;}
.pc-footer-disclosures__head-title{font-weight:700;font-size:.83em;margin:0;}
.pc-footer-disclosures__all-link{color:var(--accent-light);font-size:14px;font-weight:600;text-decoration:none;}
.pc-footer-disclosures__all-link:hover{text-decoration:underline;}

/* ---------- Blog / resource single & archive ---------- */
.pc-post-card__thumb{margin:-30px -30px 24px;}
.pc-post-card__thumb-img{width:100%;height:220px;object-fit:cover;}
.pc-post-card__title{font-size:24px;margin:0 0 12px;}
.pc-post-card__excerpt{color:var(--body);line-height:1.7;}
.pc-post-card__link{font-weight:600;}
.pc-pagination-wrap{margin-top:48px;}
.pc-resource-lead{font-family:var(--serif);font-size:22px;line-height:1.6;color:#2B3746;margin:0 0 30px;}
.pc-resource-back-link{font-weight:600;display:inline-block;margin-top:20px;}
.pc-single-thumb{width:100%;height:auto;}

/* ---------- Sticky CTA button ---------- */
.pc-sticky-cta{position:fixed;right:24px;bottom:24px;z-index:9999;display:inline-flex;align-items:center;padding:16px 28px;border-radius:999px;font-size:16px;font-weight:600;text-decoration:none;box-shadow:0 8px 24px rgba(11,24,38,.25);transition:transform .2s ease,box-shadow .2s ease;}
.pc-sticky-cta:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(11,24,38,.3);color:inherit;}
@media(max-width:600px){.pc-sticky-cta{right:16px;bottom:16px;padding:14px 22px;font-size:15px;}}

/* ---------- 404 ---------- */
.pc-404{background:#fff;text-align:center;min-height:50vh;display:flex;align-items:center;justify-content:center;}
.pc-404__text{color:var(--body);margin:20px 0 32px;}

/* ---------- Margin utilities (kept last so they reliably win the cascade
   over any earlier component class's own margin when composed together,
   e.g. class="pc-h2 pc-mb-44") ---------- */
.pc-m-0{margin:0;}
.pc-mb-16{margin-bottom:16px;}
.pc-mb-18{margin-bottom:18px;}
.pc-mb-20{margin-bottom:20px;}
.pc-mb-22{margin-bottom:22px;}
.pc-mb-24{margin-bottom:24px;}
.pc-mb-26{margin-bottom:26px;}
.pc-mb-28{margin-bottom:28px;}
.pc-mb-40{margin-bottom:40px;}
.pc-mb-44{margin-bottom:44px;}
.pc-mb-56{margin-bottom:56px;}
.pc-mt-64{margin-top:64px;}

/* ---------- Blog ---------- */
.pc-post-card{border:1px solid rgba(20,42,66,.14);padding:30px;}
.pc-post-card h2,.pc-post-card h3{font-family:var(--serif);color:var(--navy);}
.entry-content{font-family:var(--sans);font-size:18px;line-height:1.8;color:var(--body);}
.entry-content h2,.entry-content h3{font-family:var(--serif);color:var(--navy);}
.entry-content a{text-decoration:underline;}
