/* Design tokens (scoped) */
.ppm-page{
  --ppm-navy:#014B68;
  --ppm-blue:#015A8E;
  --ppm-sky:#9dd7ff;
  --ppm-accent:#F08D25;
  --ppm-ink:#112a49;
  --ppm-muted:#4a5a6a;

  --bg:#ffffff;
  --bg-soft:#eff9ff;
  --border:#d9e6f0;

  --radius:14px;
  --radius-lg:18px;

  --shadow: 0 10px 24px rgba(17,42,73,.10);
  --shadow-soft: 0 8px 18px rgba(17,42,73,.08);

  --container: 1120px;
  --gutter: 24px;

  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 72px;

  --h1: clamp(2.0rem, 1.2rem + 2vw, 3.0rem);
  --h2: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
  --h3: 1.15rem;
  --body: 1rem;
  --lead: 1.08rem;
  --lh: 1.55;

  color:var(--ppm-ink);
  background:#fff;
  display: flow-root;
  font-family: Roboto, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}

/* Safety for large images in editor */
img {max-width:100%;height:auto;}

/* Layout */
.ppm-container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter);}
.ppm-section{padding-block:var(--space-6);}
.ppm-section--soft{background:var(--bg-soft);}
.ppm-section--tight{padding-block:var(--space-6);}
.ppm-stack > * + *{margin-top:var(--space-4);}
.ppm-stack-tight > * + *{margin-top:var(--space-3);}
.ppm-grid{display:grid;gap:var(--space-4);}
.ppm-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.ppm-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (min-width: 768px) {
  .ppm-grid-2-60-40 {grid-template-columns: 3fr 2fr;}
}

@media (max-width: 767px) {
  .ppm-grid-2-60-40 {grid-template-columns: 1fr;}
}

.ppm-grid-gap6 {gap:var(--space-6);}
@media (max-width: 900px){
  .ppm-grid-2,.ppm-grid-3{grid-template-columns:1fr;}
  .ppm-page{--gutter:18px;--space-7:60px;}
}
@media (max-width: 540px){
  .ppm-page{--space-7:52px;}
}

/* Grid alignment utilities */
.ppm-align-center { align-items: center; }
.ppm-align-start  { align-items: start; }
.ppm-align-end    { align-items: end; }

/* Per-item alignment utilities */
.ppm-self-center { align-self: center; }
.ppm-self-start  { align-self: start; }
.ppm-self-end    { align-self: end; }

.ppm-list--padded {
  padding-left: 1.25rem;
  margin-top: 0.75rem;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.ppm-list--padded li {
  margin-bottom: 0.5rem;
}


/* Typography */
.ppm-page p {font-size: var(--body);line-height: var(--lh);color: var(--ppm-ink);margin:0;}
.ppm-h1,.ppm-h2,.ppm-h3{font-family:Bitter, Georgia, serif;margin:0;line-height:1.15;}
.ppm-h1{font-size:var(--h1);}
.ppm-h2{font-size:var(--h2);}
.ppm-h3{font-size:var(--h3);}
.ppm-lead{font-size:var(--lead);line-height:var(--lh);color:var(--ppm-muted);margin:0;}
.ppm-muted{color:var(--ppm-muted);}

.ppm-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ppm-blue);font-size:.78rem;
}
.ppm-eyebrow:before{
  content:"";width:28px;height:2px;background:var(--ppm-accent);border-radius:999px;
}

.ppm-subhead{
  margin:0;
  font-size: 1.05rem;
  line-height: var(--lh);
  color: var(--ppm-muted);
  max-width: 62ch;
}

.ppm-subhead strong{
  color: var(--ppm-ink);
  font-weight: 800;
}

.ppm-panel-kicker {
  display: inline-block;width: fit-content;              /* shrink to text width */
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;

  color: var(--ppm-blue);
  background-color: #e6f3fb;           /* light blue background */
  border: 1px solid var(--ppm-blue);

  padding: 6px 10px;                   /* vertical / horizontal */
  border-radius: 4px;                  /* optional, subtle */
}


.ppm-panel-title{
  margin:0;
  font-family: Bitter, Georgia, serif;
  font-size: 1.15rem;
  line-height: 1.2;
  color: var(--ppm-ink);
}


/* Vertical spacing utilities (use gap so list margin resets don't break spacing) */
.ppm-stack{
  display:flex;
  flex-direction:column;
  gap: var(--space-2); /* default rhythm */
}

.ppm-stack-tight{
  display:flex;
  flex-direction:column;
  gap: var(--space-1); /* tighter grouping */
}

.ppm-stack-loose{
  display:flex;
  flex-direction:column;
  gap: var(--space-4); /* airy sections */
}
.ppm-stack-loosest{
  display:flex;
  flex-direction:column;
  gap: var(--space-5); /* airy sections */
}


/* Reusable framed media (use for photos anywhere) */
.ppm-media{
  margin:0;
  border:1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow:hidden;
  background:#fff;
  box-shadow: var(--shadow-soft);
}

.ppm-media img{
  display:block;
  width:100%;
  height:auto !important;
  max-width:520px;
  max-height:520px;
}

/* Optional sizing helpers */
.ppm-media--sm{ max-width: 320px; }
.ppm-media--md{ max-width: 400px; }
.ppm-media--lg{ max-width: 600px; }

/* Optional alignment helpers */
.ppm-media--right{ margin-left:auto; }
.ppm-media--center{ margin-inline:auto; }


/* Accessibility helpers */
.ppm-skip{
  position:absolute;left:-999px;top:10px;
  background:#fff;border:2px solid var(--border);padding:10px 14px;border-radius:12px;
  z-index:10000;
}
.ppm-skip:focus{left:10px;}

/* Buttons */
.ppm-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
/* Dreamweaver Design View safety: add space only when flex gap isn't supported */
.ppm-actions{
  margin-top: 44px;
}

@supports (gap: 1rem){
  .ppm-actions{
    margin-top: var(--space-3);
  }
}

.ppm-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 16px;border-radius:999px;border:1px solid transparent;
  text-decoration:none;font-weight:700;line-height:1;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease;
}
.ppm-btn:focus{outline:3px solid rgba(157,215,255,.75);outline-offset:2px;}
.ppm-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);}
.ppm-btn--primary{background:var(--ppm-blue);color:#fff;}
.ppm-btn--primary:hover{background:var(--ppm-sky);color:#014b68;text-decoration:none;}
.ppm-btn--ghost{background:#fff;border-color:var(--border);color:var(--ppm-blue);}
.ppm-btn--ghost:hover{background:var(--ppm-blue);color:#fff;text-decoration:none;}
a.ppm-btn--primary {color: #fff;}
a.ppm-btn--ghost {color: var(--ppm-blue);}
.ppm-btn__icon{
  width:16px;
  height:16px;
  display:block;
}

/* default ghost button colors */
.ppm-btn--ghost{
  color:var(--ppm-blue);
}

/* play triangle */
.ppm-btn__icon-play{
  transition:fill .15s ease;
}

/* circle stroke */
.ppm-btn__icon-circle{
  transition:stroke .15s ease;
}

/* hover: both turn white */
.ppm-btn--ghost:hover .ppm-btn__icon-play{
  fill:#fff;
}

.ppm-btn--ghost:hover .ppm-btn__icon-circle{
  stroke:#fff;
}


/* Cards (keep these borders) */
.ppm-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--space-5);box-shadow:0 1px 0 rgba(17,42,73,.03);
}
.ppm-card--shadow{box-shadow:var(--shadow);}

.ppm-chip{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(157,215,255,.35);border:1px solid rgba(157,215,255,.65);
  color:var(--ppm-navy);font-weight:700;font-size:.9rem;
  padding:8px 12px;border-radius:999px;
}

/* Feature list */
.ppm-featurelist{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.ppm-featurelist--2col{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;}
@media (max-width: 700px){.ppm-featurelist--2col{grid-template-columns:1fr;}}

/* Feature list: checkmark variant (no extra markup) */
.ppm-featurelist--checks li{
  position:relative;
  padding-left:28px;          /* room for the icon */
  display:block;              /* stop flex; makes DW + editing easier */
  align-items:unset;
  gap:0;
}

.ppm-featurelist--checks li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0.15em;

  width:18px;
  height:18px;
  border-radius:999px;
  background:var(--ppm-accent);
  color:#fff;
  font-size:12px;
  font-weight:800;

  display:flex;
  align-items:center;
  justify-content:center;
}

.ppm-inline-dot {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.4em; /* adjust spacing between dot and text */
}

/* Full Service Approach dots */
.ppm-inline-dot .dot {
  width: 0.5em;
  height: 0.5em;
  background-color: currentColor;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}


/* Hero */
.ppm-hero{
  padding-block: clamp(52px, 5vw, 64px);
  background:
    radial-gradient(900px 420px at 15% 25%, rgba(157,215,255,.55), transparent 60%),
    radial-gradient(700px 360px at 85% 35%, rgba(240,141,37,.18), transparent 62%),
    linear-gradient(180deg, #ffffff, #ffffff);
}
.ppm-hero__grid{display:grid;gap:var(--space-5);align-items:center;grid-template-columns: 1.15fr .85fr;}
@media (max-width: 900px){.ppm-hero__grid{grid-template-columns:1fr;}}
.ppm-hero__panel{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--space-4);box-shadow:var(--shadow);
}
.ppm-hero__trust{margin-top:14px;font-size:.95rem;color:var(--ppm-muted);}
.ppm-hero__trust b{color:var(--ppm-ink);}

.ppm-hero__panel .ppm-featurelist{
  gap: 14px; /* was 10px */
}

.ppm-hero__panel .ppm-featurelist li{
  line-height: 1.4;
}


/* Ideal-for cards with thumbs */
.ppm-ideal-card{
  display:grid;
  grid-template-columns: 100px 1fr;
  gap:14px;
  align-items:center;
}
.ppm-ideal-thumb{
  width:100px;height:100px;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
  flex:0 0 auto;
}
.ppm-ideal-thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.ppm-ideal-card h3{margin:0 0 6px 0;}
.ppm-ideal-card p{margin:0;color:var(--ppm-muted);line-height:var(--lh);}

/* Why Choose PPM cards */
.ppm-whyus-card h3{margin:0 0 6px 0;}

/* Steps */
.ppm-steps{display:grid;gap:18px;margin:0;padding:15px 0 0 0;list-style:none;}
.ppm-step{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;}
.ppm-step__num{
  width:36px;height:36px;border-radius:999px;background:var(--ppm-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;
}
.ppm-step__title{margin:0;font-family:Bitter,Georgia,serif;font-weight:700;font-size:1.05rem;}
.ppm-step__desc{margin:6px 0 0 0;color:var(--ppm-muted);line-height:var(--lh);}

/* Testimonials */
.ppm-stars{display:inline-flex;gap:4px;align-items:center;font-size:1.05rem;line-height:1;color:var(--ppm-accent);}
.ppm-quote{margin:12px 0 0 0;color:var(--ppm-ink);line-height:var(--lh);}
.ppm-person{margin-top:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--ppm-muted);font-size:.95rem;}
.ppm-avatar{
  width:40px;height:40px;border-radius:999px;
  background:linear-gradient(135deg, rgba(157,215,255,.8), rgba(1,90,142,.12));
  border:1px solid var(--border);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--ppm-navy);font-weight:800;
}

/* =========================================================
   FAQ Accordion (Accessible + production)
   ========================================================= */

.ppm-faq{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:#fff;
  box-shadow:0 1px 0 rgba(17,42,73,.03);
  overflow:hidden;
}

/* Remove default heading spacing but keep semantic h3 */
.ppm-faq-heading{
  margin:0;
}

/* Divider between items */
.ppm-faq .ppm-faq-item + .ppm-faq-item{
  border-top:1px solid var(--border);
}

/* Clickable question row */
.ppm-faq-q{
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  border:0;

  width:100%;
  text-align:left;
  cursor:pointer;
box-sizing: border-box;
  padding:18px 18px;

  display:flex;
  gap:14px;

  align-items:flex-start;          /* NOT vertically centered */
  justify-content:space-between;

  font-family: Roboto, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
  font-weight:400;
  font-size:var(--body);
  line-height:var(--lh);
  color:var(--ppm-ink);
}

/* Focus state */
.ppm-faq-q:focus{
  outline:3px solid rgba(157,215,255,.75);
  outline-offset:2px;
}

/* If supported, prefer focus-visible (doesn't hurt older browsers) */
.ppm-faq-q:focus:not(:focus-visible){
  outline:none;
}
.ppm-faq-q:focus-visible{
  outline:3px solid rgba(157,215,255,.75);
  outline-offset:2px;
}

/* Question text wrapper
   - flex:1 so it takes available space
   - min-width:0 so it can wrap instead of pushing chevron out */
.ppm-faq-qtext{
  flex:1 1 auto;
  min-width:0;                    /* critical */
  display:block;
}

/* Ensure actual question text wraps nicely */
.ppm-faq-qtext > span{
  display:block;
}

/* Chevron */
.ppm-faq-chev{
  width:20px;
  height:20px;
  flex:0 0 auto;
  margin-left:14px;

  transition:transform .18s ease;
  color:var(--ppm-accent);
}

/* Rotate chevron when open */
.ppm-faq-q[aria-expanded="true"] .ppm-faq-chev{
  transform:rotate(180deg);
}

/* Answer panel */
.ppm-faq-a{
  padding:0 18px 18px 18px;
  color:var(--ppm-muted);
  line-height:var(--lh);
 
}
/* FAQ trigger should not inherit link color */
.ppm-faq-q,
.ppm-faq-q:link,
.ppm-faq-q:visited,
.ppm-faq-q:hover,
.ppm-faq-q:active,
.ppm-faq-q:focus {
  color: var(--ppm-ink);
  text-decoration: none;
}

}
/* Let clicks pass through the decorative chevron */
.ppm-faq-chev,
.ppm-faq-chev * {
  pointer-events: none;
}



/* CTA band */
.ppm-cta{
  background:
    radial-gradient(700px 260px at 10% 30%, rgba(157,215,255,.55), transparent 60%),
    linear-gradient(90deg, rgba(1,90,142,.10), rgba(1,75,104,.06));
  border-top:1px solid var(--border);
}
.ppm-cta__box{
  display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-4);align-items:center;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--space-5);box-shadow:var(--shadow);
}
@media (max-width: 900px){.ppm-cta__box{grid-template-columns:1fr;}}
.ppm-mini{display:flex;gap:12px;align-items:center;color:var(--ppm-muted);font-size:.95rem;flex-wrap:wrap;}
.ppm-mini .dot{width:6px;height:6px;border-radius:999px;background:var(--ppm-accent);display:inline-block;}

@media (prefers-reduced-motion: reduce){
  .ppm-btn{transition:none;}
  .ppm-btn:hover{transform:none;}
  .ppm-faq__chev{transition:none;}
}
/* aligns cta buttons to right */
.ppm-cta__box > .ppm-actions {
  justify-self: end;
}
@media (max-width: 900px) {
  .ppm-cta__box > .ppm-actions {
    justify-self: center;
    justify-content: center;
  }
}


/* Process section split */
.ppm-split--process{
  display:grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: var(--space-6);
  align-items:start;
}

@media (max-width: 900px){
  .ppm-split--process{ grid-template-columns:1fr; }
  .ppm-split--process .ppm-media{
    margin-top: var(--space-5);
    max-width: 320px;       /* overrides --md on mobile if you want */
    margin-inline:auto;
  }
}
/* Process section split */
.ppm-split--process{
  display:grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: var(--space-6);
  align-items:start;
}

@media (max-width: 900px){
  .ppm-split--process{
    grid-template-columns: 1fr;
  }
}
/* Single process image (right column) */
.ppm-process-media{
  margin:0;
  max-width:360px;
  margin-left:auto;
  border:1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow:hidden;
  background:#fff;
  box-shadow: var(--shadow-soft);
}

.ppm-process-media img{
  display:block;
  width:100%;
  height:auto;
}
@media (max-width: 900px){
  .ppm-process-media{
    max-width:320px;
    margin: var(--space-5) auto 0;
  }
}
/* Service Area cards with buttons */
.ppm-servicearea {
      position: relative;
      overflow: hidden;
    }

    .ppm-state-card {
      position: relative;
      overflow: hidden;
      text-align: center;
    }

    .ppm-state-card__counties {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      justify-content: center;
      margin-top: 14px;
    }

    .ppm-county-chip {
      font-size: .8rem;
      font-weight: 600;
      color: var(--ppm-navy);
      background: var(--bg-soft);
      border: 1px solid var(--border);
      padding: 4px 10px;
      border-radius: 999px;
      white-space: nowrap;
      text-decoration: none;
      transition: background-color .18s ease, color .18s ease, border-color .18s ease;
    }

    .ppm-county-chip:hover {
      background: var(--ppm-blue);
      color: #fff;
      border-color: var(--ppm-blue);
      text-decoration: none;
    }

/* ── Video Grid ── */
.ppm-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}
@media (max-width: 700px) {
  .ppm-video-grid { grid-template-columns: 1fr; }
}

.ppm-video-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ppm-video-title {
  font-family: Bitter, Georgia, serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ppm-ink);
  margin: 0;
  text-align: center;
}

/* ── Facade (thumbnail + play button) ── */
.ppm-video-facade {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.ppm-video-facade img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.2s ease;
}

.ppm-video-facade:hover img {
  opacity: 0.85;
}

.ppm-video-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.ppm-video-play svg {
  width: 64px;
  height: 45px;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.45));
  transition: transform 0.15s ease;
}

.ppm-video-facade:hover .ppm-video-play svg {
  transform: scale(1.08);
}

/* ── Live iframe (swapped in on click) ── */
.ppm-video-facade iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── Service Area Grid ── */
.ppm-sa-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}
@media (max-width: 700px) {
  .ppm-sa-grid { grid-template-columns: 1fr; }
}

.ppm-sa-links-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  align-items: start;
}
.ppm-sa-grid .ppm-card {margin-bottom:20px;}
@media (max-width: 700px) {
  .ppm-sa-links-grid { grid-template-columns: 1fr; }
}

.ppm-sa-county {
  color: var(--ppm-blue);
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ppm-accent);
}

.ppm-sa-towns {
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--ppm-muted);
  margin-top: 8px !important;
}

.ppm-sa-linklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ppm-sa-linklist li {
  padding-left: 16px;
  position: relative;
  font-size: 0.95rem;
  line-height: 1.4;
}

.ppm-sa-linklist li::before {
  content: "›";
  position: absolute;
  left: 0;
  color: var(--ppm-accent);
  font-weight: 800;
}

.ppm-sa-linklist a {
  color: var(--ppm-blue);
  text-decoration: none;
}

.ppm-sa-linklist a:hover {
  text-decoration: underline;
}

/* ── Resource Links Page ── */

.ppm-res-linklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ppm-res-linklist li {
  padding-left: 18px;
  position: relative;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ppm-muted);
}

.ppm-res-linklist li::before {
  content: "›";
  position: absolute;
  left: 0;
  color: var(--ppm-accent);
  font-weight: 800;
}

.ppm-res-linklist a {
  color: var(--ppm-blue);
  text-decoration: none;
}

.ppm-res-linklist a:hover {
  text-decoration: underline;
}

.ppm-res-video-cta {
  background: linear-gradient(135deg, #eff9ff, #fff);
  border-color: var(--ppm-sky);
}

.ppm-res-video-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
}

@media (max-width: 700px) {
  .ppm-res-video-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ── Glossary ── */
.ppm-gloss-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ppm-gloss-item {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0 var(--space-4);
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.ppm-gloss-item:last-child {
  border-bottom: none;
}

.ppm-gloss-item dt {
  font-weight: 700;
  color: var(--ppm-ink);
  font-size: 0.95rem;
  line-height: 1.5;
  padding-top: 1px;
}

.ppm-gloss-item dd {
  margin: 0;
  color: var(--ppm-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

@media (max-width: 600px) {
  .ppm-gloss-item {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}




/* Founder row: centered, max-width cards */
.ppm-founders-row {
  display: flex;
  gap: var(--space-5);
  justify-content: center;
  flex-wrap: wrap;
}
.ppm-founder-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  max-width: 300px;
  width: 100%;
}
.ppm-founder-photo {
  width: 150px;
  height: 150px;
  border-radius: 999px;
  overflow: hidden;
  border: 3px solid var(--border);
  box-shadow: var(--shadow-soft);
  flex-shrink: 0;
}
.ppm-founder-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.ppm-founder-title {
  color: var(--ppm-muted);
  font-size: 0.9rem;
  font-style: italic;
  margin: 0;
}


/* ABOUT PAGE STYLES (scoped) */

/* Founder row: centered, max-width cards */
.ppm-founders-row {
  display: flex;
  gap: var(--space-5);
  justify-content: center;
  flex-wrap: wrap;
}
.ppm-founder-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  max-width: 300px;
  width: 100%;
}
.ppm-founder-card .ppm-btn {
  width: 140px;
  justify-content: center;
}
.ppm-founder-photo {
  width: 250px;
  height: 250px;
  border-radius: 999px;
  overflow: hidden;
  border: 3px solid var(--border);
  box-shadow: var(--shadow-soft);
  flex-shrink: 0;
}
.ppm-founder-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.ppm-founder-title {
  color: var(--ppm-muted);
  font-size: 0.9rem;
  font-style: italic;
  margin: 0;
}

/* ---- Bio modal --- */
.ppm-bio-modal {
  --ppm-navy:   #014B68;
  --ppm-blue:   #015A8E;
  --ppm-sky:    #9dd7ff;
  --ppm-ink:    #112a49;
  --ppm-muted:  #4a5a6a;
  --bg-soft:    #eff9ff;
  --border:     #d9e6f0;
  --radius-lg:  18px;
  --space-2:    12px;
  --space-3:    16px;

  border: none;
  border-radius: var(--radius-lg);
  box-shadow: 0 32px 80px rgba(17,42,73,.30);
  padding: 0;
  max-width: 560px;
  width: calc(100% - 32px);
  max-height: calc(100dvh - 48px);
  overflow: hidden; /* inner scrolls, not the dialog */
}
.ppm-bio-modal::backdrop {
  background: rgba(1, 75, 104, 0.62);
  backdrop-filter: blur(3px);
}
.ppm-bio-modal__inner {
  display: flex;
  flex-direction: column;
  max-height: calc(100dvh - 48px);
  position: relative;
}

/* Full-width photo hero at top of modal */
.ppm-bio-modal__hero {
  position: relative;
  width: 100%;
  height: 280px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--ppm-navy);
}
.ppm-bio-modal__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  opacity: 0.88;
}
/* Gradient scrim so name text is always readable */
.ppm-bio-modal__hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 30%,
    rgba(1, 75, 104, 0.82) 100%
  );
}
.ppm-bio-modal__hero-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px 24px;
  z-index: 1;
}
.ppm-bio-modal__name {
  margin: 0 0 2px 0;
  font-family: Bitter, Georgia, serif;
  font-size: 1.4rem;
  color: #fff;
  line-height: 1.2;
}
.ppm-bio-modal__role {
  margin: 0;
  color: var(--ppm-sky);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Scrollable body below the photo */
.ppm-bio-modal__body {
  overflow-y: auto;
  padding: 28px 32px 36px 32px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.ppm-bio-modal__body p {
  line-height: 1.7;
  color: var(--ppm-ink);
  font-size: 0.97rem;
  margin:0;
}
.ppm-bio-modal__body a {
  color: var(--ppm-blue);
  text-decoration: none;
}
.ppm-bio-modal__body a:hover {
  text-decoration: underline;
}

/* Close button: sits over the photo, top-right */
.ppm-bio-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: rgba(255,255,255,0.92);
  border: none;
  border-radius: 999px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ppm-navy);
  z-index: 2;
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
  flex-shrink: 0;
}
.ppm-bio-modal__close:hover {
  background: var(--ppm-blue);
  color: #fff;
  transform: scale(1.08);
}
.ppm-bio-modal__close:focus-visible {
  outline: 3px solid var(--ppm-sky);
  outline-offset: 2px;
}

@media (max-width: 540px) {
  .ppm-bio-modal__hero { height: 200px; }
  .ppm-bio-modal__body { padding: 20px 20px 28px 20px; }
}
/* Contact Page */
.ppm-contact-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-6);
  align-items: start;
}
@media (max-width: 900px) {
  .ppm-contact-grid {
    grid-template-columns: 1fr;
  }
}
.ppm-contact-call-btn {
  align-self: flex-start;
}
.ppm-contact-testimonial {
  background: var(--bg-soft);
  border-color: var(--border);
}
.ppm-contact-testimonial .ppm-quote {
  font-size: 0.95rem;
  line-height: 1.65;
}
/* ── ESTATE SALE LISTING SPECIFIC ── */

    /* Sale banner hero */
    .ppm-sale-hero {
      background:
        radial-gradient(900px 420px at 15% 25%, rgba(157,215,255,.55), transparent 60%),
        radial-gradient(700px 360px at 85% 35%, rgba(240,141,37,.18), transparent 62%),
        linear-gradient(180deg, #ffffff, #ffffff);
      padding-block: clamp(40px, 4vw, 60px);
      border-bottom: 1px solid var(--border);
    }

    .ppm-sale-hero__grid {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: var(--space-5);
      align-items: start;
    }
    @media (max-width: 720px) { .ppm-sale-hero__grid { grid-template-columns: 1fr; } }

    .ppm-sale-title {
      font-family: Bitter, Georgia, serif;
      font-size: clamp(1.5rem, 1rem + 2vw, 2.4rem);
      font-weight: 800;
      color: var(--ppm-navy);
      line-height: 1.2;
      margin: 0;
    }

    .ppm-sale-subtitle {
      font-family: Bitter, Georgia, serif;
      font-size: clamp(1rem, 0.85rem + 0.8vw, 1.25rem);
      font-weight: 700;
      color: var(--ppm-ink);
      margin: 0;
    }

    .ppm-sale-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 20px;
      align-items: center;
      margin-top: var(--space-2);
    }

    .ppm-sale-chip {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(157,215,255,.3); border: 1px solid rgba(157,215,255,.7);
      color: var(--ppm-navy); font-weight: 700; font-size: .88rem;
      padding: 6px 14px; border-radius: 999px;
    }
    .ppm-sale-chip svg { width: 14px; height: 14px; flex-shrink: 0; }

    .ppm-sale-badge {
      background: var(--ppm-accent);
      color: #fff;
      font-family: Bitter, Georgia, serif;
      font-weight: 800;
      font-size: .75rem;
      letter-spacing: .06em;
      text-transform: uppercase;
      padding: 8px 16px;
      border-radius: 999px;
      white-space: nowrap;
      align-self: flex-start;
    }

    /* Gallery placeholder */
    .ppm-gallery-placeholder {
      width: 100%;
      background: var(--ppm-ink);
      color: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      padding: 60px 24px;
      font-family: Roboto, sans-serif;
      font-size: 1rem;
      letter-spacing: .02em;
      border-top: 4px solid var(--ppm-accent);
    }
    .ppm-gallery-placeholder svg { opacity: .4; }
    .ppm-gallery-placeholder p { color: rgba(255,255,255,.6); margin: 0; font-size: .9rem; }
    .ppm-gallery-placeholder strong { color: #fff; font-size: 1.05rem; }

    /* Sale detail block */
    .ppm-sale-detail-block {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-4);
    }
    @media (max-width: 760px) { .ppm-sale-detail-block { grid-template-columns: 1fr; } }

    .ppm-detail-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      padding: var(--space-4);
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .ppm-detail-card__label {
      font-size: .75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .07em;
      color: var(--ppm-blue);
    }
    .ppm-detail-card__value {
      font-family: Bitter, Georgia, serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--ppm-ink);
      line-height: 1.3;
    }
    .ppm-detail-card__sub {
      font-size: .88rem;
      color: var(--ppm-muted);
      line-height: 1.4;
    }

    /* Items highlight tags */
    .ppm-item-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: var(--space-2);
    }
    .ppm-item-tag {
      background: var(--bg-soft);
      border: 1px solid var(--border);
      color: var(--ppm-navy);
      font-size: .85rem;
      font-weight: 600;
      padding: 5px 12px;
      border-radius: 999px;
    }

    /* Etiquette section */
    .ppm-etiquette-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 10px;
    }
    .ppm-etiquette-list li {
      position: relative;
      padding-left: 28px;
      line-height: 1.55;
      font-size: .96rem;
      color: var(--ppm-muted);
    }
    .ppm-etiquette-list li::before {
      content: "›";
      position: absolute;
      left: 0;
      top: 0;
      color: var(--ppm-accent);
      font-size: 1.2rem;
      font-weight: 800;
      line-height: 1.2;
    }

    /* Divider accent */
    .ppm-accent-bar {
      height: 4px;
      background: linear-gradient(90deg, var(--ppm-accent), var(--ppm-sky));
      border-radius: 999px;
      width: 60px;
    }

    /* Note card */
    .ppm-note {
      background: #fffbf4;
      border: 1px solid #f5d9a8;
      border-left: 4px solid var(--ppm-accent);
      border-radius: var(--radius);
      padding: var(--space-4);
      font-size: .95rem;
      color: var(--ppm-ink);
      line-height: 1.6;
    }
.ppm-service-card--featured-wrap {
  display: flex;
  justify-content: center;
}

.ppm-service-card--featured {
  max-width: 560px;
  width: 100%;
  border-color: var(--ppm-sky);
  background: linear-gradient(135deg, #eff9ff, #fff);
  text-align: left !important;
}

.ppm-service-card--featured-title {
  display: block;
  margin-bottom: 12px;
}

.ppm-service-card--featured-body {
  display: flex;
  flex-direction: row;
  gap: 16px;
  align-items: flex-start;
}

.ppm-service-card--featured-body .ppm-ideal-thumb {
  flex: 0 0 100px;
}

.ppm-service-card--featured-body p {
  flex: 1 1 0;
  min-width: 0;
  text-align: left !important;
  margin: 0;
}

@media (max-width: 600px) {
  .ppm-service-card--featured-body {
    flex-direction: column;
    align-items: center;
    text-align: center !important;
  }
  .ppm-service-card--featured-body p {
    text-align: center !important;
  }
}