/* ==========================================================================
   Plumbing and Drains Solutions — design system (2026 redesign)
   Layout and content live in Elementor; this file holds tokens and the
   component styles Elementor (free) cannot express on its own.
   Brand colours sampled from plumberspringvalley.com (logo + live CSS).
   Component classes are prefixed `pnd-` and applied via Elementor "CSS Classes".
   ========================================================================== */

:root {
  --pnd-blue: #004799;          /* service buttons, nav text */
  --pnd-blue-2: #114F91;        /* secondary brand blue */
  --pnd-navy: #00205B;          /* top strip, logo wordmark */
  --pnd-sky: #019CDE;           /* logo "SOLUTIONS" */
  --pnd-red: #BA192C;           /* CTA red */
  --pnd-red-hover: #9E1525;
  --pnd-star: #FB8E28;
  --pnd-heading: #333333;
  --pnd-text: #3E3E3E;
  --pnd-muted: #555555;
  --pnd-light: #F9F9F9;
  --pnd-border: #E6E6E6;
  --pnd-border-soft: #F0F0F0;
  --pnd-tint: #EDF2F8;          /* 7% brand blue on white */
  --pnd-tint-2: #D9E3F0;        /* 15% brand blue on white */
  --pnd-red-tint: #F9EDEE;

  --pnd-blue-rgb: 0 71 153;
  --pnd-navy-rgb: 0 32 91;
  --pnd-sky-rgb: 1 156 222;
  --pnd-red-rgb: 186 25 44;

  --pnd-font-head: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --pnd-font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

  --pnd-r-sm: 10px;
  --pnd-r-md: 16px;
  --pnd-r-lg: 22px;
  --pnd-r-xl: 28px;
  --pnd-shadow-sm: 0 1px 2px rgb(var(--pnd-navy-rgb) / .06), 0 2px 8px rgb(var(--pnd-navy-rgb) / .05);
  --pnd-shadow-md: 0 10px 30px rgb(var(--pnd-navy-rgb) / .09);
  --pnd-shadow-lg: 0 24px 60px rgb(var(--pnd-navy-rgb) / .14);

  --pnd-gutter: 24px;
  --pnd-section-y: 96px;
  --pnd-topbar-h: 40px;
  --pnd-header-h: 80px;
  --pnd-ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
@supports (overflow: clip) { body { overflow-x: clip; } }
body :focus-visible { outline: 3px solid var(--pnd-blue); outline-offset: 3px; border-radius: 6px; }
body .pnd-on-dark :focus-visible, body .pnd-topbar :focus-visible { outline-color: var(--pnd-sky); }
body .pnd-sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Flex sizing utilities for nested Elementor containers (default is width:100%) */
body .e-con.pnd-auto { --width: auto; width: auto; flex: 0 0 auto; }
body .e-con.pnd-grow { --width: auto; width: auto; flex: 1 1 0%; min-width: 0; }
@media (max-width: 1024px) { body .e-con.pnd-grow { flex: 1 1 auto; width: 100%; } }

/* Stretched link: makes a whole card the click/tap target of its single link */
body .pnd-trust__item .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Section rhythm */
body .pnd-section { --padding-top: var(--pnd-section-y); --padding-bottom: var(--pnd-section-y); }
body .pnd-section--wash { background-color: var(--pnd-light); }

/* Eyebrow (small uppercase label with red rule) */
body .pnd-eyebrow .elementor-heading-title, body .pnd-eyebrow p {
  display: inline-flex; align-items: center; gap: 10px; margin: 0;
  font-family: var(--pnd-font-head); font-size: .78rem; font-weight: 800; line-height: 1.3;
  letter-spacing: .14em; text-transform: uppercase; color: var(--pnd-blue);
}
body .pnd-eyebrow .elementor-heading-title::before { content: ""; width: 22px; height: 3px; border-radius: 3px; background: var(--pnd-red); flex: none; }
body .pnd-eyebrow--light .elementor-heading-title { color: var(--pnd-sky); }

body .pnd-lead, body .pnd-lead p { font-size: 1.08rem; color: var(--pnd-muted); }
body .pnd-lead p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Buttons (Elementor button widget + .pnd-btn modifiers)
   -------------------------------------------------------------------------- */
body .pnd-btn .elementor-button {
  --pnd-btn-bg: var(--pnd-blue); --pnd-btn-fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 24px; border-radius: 999px; border: 2px solid transparent;
  background: var(--pnd-btn-bg); color: var(--pnd-btn-fg);
  font-family: var(--pnd-font-head); font-weight: 700; font-size: 1rem; line-height: 1.2; letter-spacing: -.005em; white-space: nowrap;
  transition: transform .2s var(--pnd-ease), box-shadow .2s var(--pnd-ease), background-color .2s, color .2s, border-color .2s;
}
body .pnd-btn .elementor-button:hover, body .pnd-btn .elementor-button:focus { background: var(--pnd-btn-bg); color: var(--pnd-btn-fg); transform: translateY(-2px); }
body .pnd-btn .elementor-button-content-wrapper { gap: 10px; align-items: center; }
body .pnd-btn .elementor-button-icon svg { width: 18px; height: 18px; fill: currentColor; }
body .pnd-btn--red .elementor-button { --pnd-btn-bg: var(--pnd-red); box-shadow: 0 10px 24px rgb(var(--pnd-red-rgb) / .28); }
body .pnd-btn--red .elementor-button:hover, body .pnd-btn--red .elementor-button:focus { --pnd-btn-bg: var(--pnd-red-hover); box-shadow: 0 14px 30px rgb(var(--pnd-red-rgb) / .34); }
body .pnd-btn--blue .elementor-button { box-shadow: 0 10px 24px rgb(var(--pnd-blue-rgb) / .22); }
body .pnd-btn--blue .elementor-button:hover, body .pnd-btn--blue .elementor-button:focus { --pnd-btn-bg: var(--pnd-navy); }
body .pnd-btn--ghost .elementor-button { --pnd-btn-bg: #fff; --pnd-btn-fg: var(--pnd-blue); border-color: var(--pnd-border); box-shadow: var(--pnd-shadow-sm); }
body .pnd-btn--ghost .elementor-button:hover, body .pnd-btn--ghost .elementor-button:focus { border-color: var(--pnd-sky); --pnd-btn-fg: var(--pnd-blue); }
body .pnd-btn--lg .elementor-button { min-height: 58px; padding: 0 30px; font-size: 1.06rem; }
body .pnd-btn--sm .elementor-button { min-height: 44px; padding: 0 18px; font-size: .94rem; }
body .pnd-btn--block, body .pnd-btn--block .elementor-button { width: 100%; }

/* Text link with sliding arrow */
body .pnd-text-link .elementor-heading-title, body .pnd-text-link > a {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--pnd-font-head); font-weight: 700; font-size: .94rem; color: var(--pnd-blue);
}
body .pnd-text-link .elementor-heading-title::after, body .pnd-text-link > a::after {
  content: ""; width: 17px; height: 17px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s var(--pnd-ease);
}
body .pnd-text-link:hover .elementor-heading-title::after, body .pnd-text-link > a:hover::after { transform: translateX(4px); }

/* Pulse dot */
body .pnd-pulse { position: relative; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-pulse, var(--pnd-red)); flex: none; }
body .pnd-pulse::after {
  content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--pnd-pulse, var(--pnd-red)); opacity: 0;
  animation: pnd-pulse 2.2s ease-out infinite;
}
@keyframes pnd-pulse { 0% { transform: scale(.5); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }

/* --------------------------------------------------------------------------
   1. Utility / emergency bar
   -------------------------------------------------------------------------- */
body .pnd-topbar { --pnd-pulse: var(--pnd-sky); background-color: var(--pnd-navy); color: rgba(255,255,255,.92); font-size: .84rem; min-height: var(--pnd-topbar-h); }
body .pnd-topbar .elementor-icon-list-items { row-gap: 4px; }
body .pnd-topbar .elementor-icon-list-item { font-size: .84rem; color: rgba(255,255,255,.92); }
body .pnd-topbar .elementor-icon-list-icon svg { width: 15px; height: 15px; fill: var(--pnd-sky); }
body .pnd-topbar .elementor-icon-list-item:first-child .elementor-icon-list-text { color: #fff; font-weight: 600; }
body .pnd-topbar__live .elementor-icon-list-item:first-child .elementor-icon-list-icon svg { display: none; }
body .pnd-topbar__live .elementor-icon-list-item:first-child .elementor-icon-list-icon::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-sky); box-shadow: 0 0 0 0 rgb(var(--pnd-sky-rgb) / .6);
  animation: pnd-ring 2.2s ease-out infinite;
}
@keyframes pnd-ring { 0% { box-shadow: 0 0 0 0 rgb(var(--pnd-sky-rgb) / .6); } 100% { box-shadow: 0 0 0 7px rgb(var(--pnd-sky-rgb) / 0); } }
body .pnd-topbar__phone .elementor-heading-title[class*="elementor-size-"] a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; color: #fff; font-family: var(--pnd-font-body); font-weight: 700; font-size: .88rem; white-space: nowrap; }
body .pnd-topbar__phone .elementor-heading-title[class*="elementor-size-"] a:hover { color: var(--pnd-sky); }

/* --------------------------------------------------------------------------
   2. Sticky header (UAE header template)
   The whole template is sticky with a negative offset equal to the top-bar
   height, so the utility bar scrolls away and the main bar stays.
   -------------------------------------------------------------------------- */
html body.ehf-header #masthead { position: sticky; top: calc(-1 * var(--pnd-topbar-h)); z-index: 100; }
html body.ehf-header.admin-bar #masthead { top: calc(32px - var(--pnd-topbar-h)); }
@media (max-width: 782px) { html body.ehf-header.admin-bar #masthead { top: calc(-1 * var(--pnd-topbar-h)); } }
body .pnd-header {
  background: rgba(255,255,255,.97);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--pnd-border-soft); min-height: var(--pnd-header-h);
  transition: box-shadow .25s;
}
body .pnd-header.is-scrolled, body.pnd-scrolled .pnd-header { box-shadow: 0 8px 28px rgb(var(--pnd-navy-rgb) / .08); }
body .pnd-logo img { width: 190px; max-width: 100%; height: auto; }

body .pnd-header__phone .elementor-heading-title { display: flex; flex-direction: column; line-height: 1.15; text-align: right; }
body .pnd-header__phone small { font-family: var(--pnd-font-body); font-size: .74rem; font-weight: 600; color: var(--pnd-muted); letter-spacing: .02em; }
body .pnd-header__phone .elementor-heading-title[class*="elementor-size-"] a { display: inline-block; padding: 3px 0; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.12rem; color: var(--pnd-red); white-space: nowrap; }
body .pnd-header__phone .elementor-heading-title[class*="elementor-size-"] a:hover { color: var(--pnd-red-hover); }

/* Navigation (UAE "Navigation Menu" widget) */
body .pnd-nav .hfe-nav-menu > .menu-item > .hfe-menu-item, body .pnd-nav .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > .hfe-menu-item {
  display: inline-flex; align-items: center; gap: 5px; min-height: 44px; padding: 0 12px; border-radius: 999px; white-space: nowrap;
  color: var(--pnd-blue); font-family: var(--pnd-font-head); font-weight: 700; font-size: .95rem;
  transition: background-color .2s, color .2s;
}
body .pnd-nav .hfe-nav-menu > .menu-item:hover > .hfe-menu-item, body .pnd-nav .hfe-nav-menu > .menu-item:hover > .hfe-has-submenu-container > .hfe-menu-item, body .pnd-nav .hfe-nav-menu > .menu-item:focus-within > .hfe-has-submenu-container > .hfe-menu-item { background: var(--pnd-tint); color: var(--pnd-blue); }
body .pnd-nav .hfe-nav-menu > .pnd-hot > .hfe-menu-item { color: var(--pnd-red); }
body .pnd-nav .hfe-nav-menu > .pnd-hot:hover > .hfe-menu-item { background: var(--pnd-red-tint); color: var(--pnd-red-hover); }
body .pnd-nav .hfe-nav-menu .sub-arrow { padding: 0 0 0 2px; }
body .pnd-nav .hfe-nav-menu .sub-arrow i, body .pnd-nav .hfe-nav-menu .sub-arrow svg { font-size: 11px; width: 11px; transition: transform .2s; }
body .pnd-nav .hfe-nav-menu > .menu-item:hover > .hfe-has-submenu-container .sub-arrow i { transform: rotate(180deg); }
/* HFE's arrow glyph needs the legacy FontAwesome 4 font, which redesigned pages don't load: draw the chevron in CSS instead */
body .pnd-nav .hfe-nav-menu .parent-has-child .sub-arrow i.fa { display: inline-flex; align-items: center; justify-content: center; height: 11px; line-height: 1; }
body .pnd-nav .hfe-nav-menu .parent-has-child .sub-arrow i.fa::before { content: ""; font-family: inherit; display: block; width: 6px; height: 6px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
body .pnd-nav .hfe-nav-menu .sub-menu-active > .hfe-has-submenu-container .sub-arrow i { transform: rotate(180deg); }
body .pnd-nav .hfe-pointer__none .hfe-menu-item::before, body .pnd-nav .hfe-pointer__none .hfe-menu-item::after { display: none; }

/* Desktop dropdown panels */
@media (min-width: 1025px) {
  body .pnd-nav .hfe-nav-menu > .menu-item { position: relative; }
  body .pnd-nav .hfe-nav-menu > .menu-item > .sub-menu {
    top: calc(100% + 12px) !important; left: 50% !important; transform: translate(-50%, 8px);
    min-width: 260px; padding: 14px; border: 1px solid var(--pnd-border-soft) !important; border-radius: var(--pnd-r-lg);
    background: #fff; box-shadow: var(--pnd-shadow-lg) !important;
    transition: opacity .2s var(--pnd-ease), transform .2s var(--pnd-ease), visibility 0s linear .2s;
  }
  body .pnd-nav .hfe-nav-menu > .menu-item > .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
  /* Keyboard users: open the panel while focus is inside it */
  body .pnd-nav .hfe-nav-menu > .menu-item:focus-within > .sub-menu { visibility: visible !important; opacity: 1 !important; }
  body .pnd-nav .hfe-nav-menu > .menu-item:hover > .sub-menu, body .pnd-nav .hfe-nav-menu > .menu-item:focus-within > .sub-menu { transform: translate(-50%, 0); transition-delay: 0s; }
  body .pnd-nav .sub-menu .hfe-sub-menu-item, body .pnd-nav .sub-menu .hfe-menu-item {
    display: block; padding: 7px 10px !important; border-radius: 8px; color: var(--pnd-heading) !important;
    font-family: var(--pnd-font-body); font-size: .93rem; font-weight: 500; line-height: 1.35; background: none !important; white-space: normal;
  }
  body .pnd-nav .sub-menu .hfe-sub-menu-item:hover, body .pnd-nav .sub-menu .hfe-menu-item:hover { background: var(--pnd-tint) !important; color: var(--pnd-blue) !important; }
  body .pnd-nav .sub-menu .menu-item { border: 0 !important; }

  /* Mega panels: level-2 items become column titles, level-3 lists always visible */
  body .pnd-nav .hfe-nav-menu > .pnd-mega > .sub-menu { display: grid; gap: 8px 28px; padding: 26px 28px; }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services > .sub-menu { grid-template-columns: repeat(3, minmax(190px, 1fr)); width: min(820px, calc(100vw - 48px)) !important; left: 0 !important; transform: translate(-30%, 8px); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services:hover > .sub-menu, body .pnd-nav .hfe-nav-menu > .pnd-mega--services:focus-within > .sub-menu { transform: translate(-30%, 0); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--resources > .sub-menu { grid-template-columns: repeat(2, minmax(220px, 1fr)); width: min(600px, calc(100vw - 48px)) !important; left: auto !important; right: -40px; transform: translate(0, 8px); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--resources:hover > .sub-menu, body .pnd-nav .hfe-nav-menu > .pnd-mega--resources:focus-within > .sub-menu { transform: translate(0, 0); }
  body .pnd-nav .pnd-mega > .sub-menu > .pnd-col-title > .hfe-has-submenu-container > a, body .pnd-nav .pnd-mega > .sub-menu > .pnd-col-title > a {
    pointer-events: none; cursor: default; padding: 0 0 8px !important; margin-bottom: 4px;
    font-family: var(--pnd-font-head) !important; font-size: .74rem !important; font-weight: 800 !important; letter-spacing: .13em; text-transform: uppercase; color: var(--pnd-muted) !important;
  }
  body .pnd-nav .pnd-mega > .sub-menu > .pnd-col-title .sub-arrow { display: none !important; }
  body .pnd-nav .pnd-mega > .sub-menu > li { background: none !important; min-width: 0; }
  body .pnd-nav .pnd-mega .sub-menu .sub-menu {
    position: static !important; display: block !important; visibility: visible !important; opacity: 1 !important; transform: none !important;
    box-shadow: none !important; border: 0 !important; padding: 0 !important; min-width: 0 !important; width: auto !important; background: none !important;
  }
  body .pnd-nav .pnd-view-all > a { color: var(--pnd-blue) !important; font-family: var(--pnd-font-head) !important; font-weight: 700 !important; margin-top: 6px; }
  body .pnd-nav .pnd-view-all > a::after { content: " \2192"; }

  /* Two-column dropdown (Areas Served) */
  body .pnd-nav .hfe-nav-menu > .pnd-drop-2col > .sub-menu { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; width: 480px !important; padding: 20px; }
  body .pnd-nav .hfe-nav-menu > .pnd-drop-2col > .sub-menu > .pnd-view-all { grid-column: 1 / -1; border-top: 1px solid var(--pnd-border-soft) !important; margin-top: 8px; padding-top: 8px; }
}

/* Tablet / mobile: UAE hamburger + dropdown */
@media (max-width: 1024px) {
  body .pnd-header__bar { position: relative; }
  body .pnd-header__bar > .pnd-logo { margin-right: auto; }
  body .pnd-header__bar > .pnd-nav { order: 3; position: static; flex: 0 0 auto !important; width: auto !important; --flex-grow: 0; }
  body .pnd-nav nav.hfe-dropdown { position: absolute !important; left: 0 !important; right: 0 !important; top: 100% !important; width: auto !important; background: #fff; z-index: 50; padding: 6px 4px 12px; }
  :root { --pnd-header-h: 72px; }
  body .pnd-nav .hfe-nav-menu__toggle { width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--pnd-border); background: #fff; justify-content: center; }
  body .pnd-nav .hfe-nav-menu-icon svg { width: 22px; height: 22px; fill: var(--pnd-heading); }
  body .pnd-nav .hfe-nav-menu__layout-horizontal.hfe-nav-menu__submenu-arrow, body .pnd-nav nav.hfe-dropdown { box-shadow: var(--pnd-shadow-lg); border-radius: 0 0 var(--pnd-r-lg) var(--pnd-r-lg); max-height: calc(100vh - 140px); overflow-y: auto; }
  body .pnd-nav nav.hfe-dropdown .hfe-menu-item, body .pnd-nav nav.hfe-dropdown .hfe-sub-menu-item {
    min-height: 48px; display: flex; align-items: center; font-family: var(--pnd-font-head); font-weight: 700; font-size: 1rem; color: var(--pnd-heading);
    border-bottom: 1px solid var(--pnd-border-soft);
  }
  body .pnd-nav nav.hfe-dropdown .sub-menu .hfe-sub-menu-item { font-family: var(--pnd-font-body); font-weight: 500; font-size: .95rem; color: var(--pnd-text); }
  body .pnd-nav nav.hfe-dropdown .pnd-hot > .hfe-menu-item { color: var(--pnd-red); }
  body .pnd-nav nav.hfe-dropdown .pnd-col-title > .hfe-has-submenu-container > a { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-muted); }
  body .pnd-header__phone { display: none; }
}

/* Header call button collapses to an icon on small screens */
@media (max-width: 600px) {
  :root { --pnd-header-h: 66px; --pnd-topbar-h: 36px; }
  body .pnd-logo img { width: 150px; }
  body .pnd-header__call .elementor-button { width: 46px; min-height: 46px; padding: 0; }
  body .pnd-header__call .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* --------------------------------------------------------------------------
   3. Hero
   -------------------------------------------------------------------------- */
body .pnd-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 480px at 88% 8%, rgb(var(--pnd-sky-rgb) / .16), transparent 62%),
    radial-gradient(700px 420px at 0% 100%, rgb(var(--pnd-blue-rgb) / .08), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--pnd-tint) 100%);
}
body .pnd-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgb(var(--pnd-navy-rgb) / .045) 1px, transparent 1px),
    linear-gradient(90deg, rgb(var(--pnd-navy-rgb) / .045) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%); mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
}
/* Faint San Diego map layer (existing site asset 2018/08/san-diego-california.jpg) */
body .pnd-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 70%; pointer-events: none;
  background: url("../../../../uploads/2018/08/san-diego-california.jpg") 40% 45% / cover no-repeat;
  background-image: image-set(url("../../../../uploads/2018/08/san-diego-california.jpg.webp") type("image/webp"), url("../../../../uploads/2018/08/san-diego-california.jpg") type("image/jpeg"));
  opacity: .22; filter: grayscale(1) contrast(1.15);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 55%); mask-image: linear-gradient(180deg, transparent 0%, #000 55%);
}
/* Phase 8: the decorative map is not preloaded; smaller WebP copies (made by Imagify) below desktop widths */
@media (max-width: 1199px) { body .pnd-hero::after { background-image: url("../../../../uploads/2018/08/san-diego-california-1024x729.jpg"); background-image: image-set(url("../../../../uploads/2018/08/san-diego-california-1024x729.jpg.webp") type("image/webp"), url("../../../../uploads/2018/08/san-diego-california-1024x729.jpg") type("image/jpeg")); } }
@media (max-width: 767px) { body .pnd-hero::after { background-image: url("../../../../uploads/2018/08/san-diego-california-768x546.jpg"); background-image: image-set(url("../../../../uploads/2018/08/san-diego-california-768x546.jpg.webp") type("image/webp"), url("../../../../uploads/2018/08/san-diego-california-768x546.jpg") type("image/jpeg")); } }

body .pnd-hero > .e-con-inner { position: relative; z-index: 1; }

body .pnd-hero__status .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px; padding: 7px 16px 7px 12px;
  background: #fff; border: 1px solid var(--pnd-border); border-radius: 999px; box-shadow: var(--pnd-shadow-sm);
  font-family: var(--pnd-font-head); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-blue);
}
body .pnd-hero__status .elementor-heading-title::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-red); flex: none;
  box-shadow: 0 0 0 0 rgb(var(--pnd-red-rgb) / .5); animation: pnd-ring-red 2.2s ease-out infinite;
}
@keyframes pnd-ring-red { 0% { box-shadow: 0 0 0 0 rgb(var(--pnd-red-rgb) / .5); } 100% { box-shadow: 0 0 0 7px rgb(var(--pnd-red-rgb) / 0); } }
body .pnd-hero h1 .pnd-accent {
  background: linear-gradient(95deg, var(--pnd-blue) 0%, var(--pnd-sky) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
body .pnd-hero__lead p { font-size: 1.14rem; color: var(--pnd-text); max-width: 590px; margin: 0; }

/* Chips (icon list, inline) */
body .pnd-chips .elementor-icon-list-items { gap: 10px; }
body .pnd-chips .elementor-icon-list-item {
  margin: 0 !important; padding: 8px 14px !important; border-radius: 999px;
  background: rgba(255,255,255,.85); border: 1px solid var(--pnd-border);
  color: var(--pnd-blue); font-size: .88rem; font-weight: 600;
}
body .pnd-chips .elementor-icon-list-item::after { display: none !important; }
body .pnd-chips .elementor-icon-list-icon svg { width: 14px; height: 14px; fill: var(--pnd-blue); }
body .pnd-chips .elementor-icon-list-text { color: var(--pnd-blue); padding-left: 6px; }

/* Media column with floating cards */
body .pnd-hero__media { position: relative; }
body .pnd-hero__media::before {
  content: ""; position: absolute; right: -36px; top: -36px; width: 180px; height: 180px; border-radius: 50%;
  border: 28px solid rgb(var(--pnd-sky-rgb) / .22); z-index: 0; pointer-events: none;
}
body .pnd-hero__frame { position: relative; z-index: 1; border-radius: var(--pnd-r-xl); overflow: hidden; box-shadow: var(--pnd-shadow-lg); background: var(--pnd-navy); aspect-ratio: 5 / 5.2; }
body .pnd-hero__frame img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: 56% center; display: block; }
body .pnd-hero__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(var(--pnd-navy-rgb) / 0) 55%, rgb(var(--pnd-navy-rgb) / .6) 100%); pointer-events: none; }

body .pnd-float-card { position: absolute !important; z-index: 2; background: #fff; border-radius: var(--pnd-r-md); box-shadow: var(--pnd-shadow-lg); border: 1px solid var(--pnd-border); }
body .pnd-float-card--badge { top: 26px; left: -34px; width: auto !important; }
body .pnd-float-card--badge .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: center; gap: 12px; text-align: left !important; padding: 12px 18px 12px 14px; }
body .pnd-float-card--badge .elementor-icon-box-icon { margin: 0 !important; display: inline-flex; }
body .pnd-float-card--badge .elementor-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--pnd-tint); display: grid; place-items: center; }
body .pnd-float-card--badge .elementor-icon svg { width: 20px; height: 20px; fill: var(--pnd-blue); }
body .pnd-float-card--badge .elementor-icon-box-title { margin: 0; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.05rem; line-height: 1.15; color: var(--pnd-heading); }
body .pnd-float-card--badge .elementor-icon-box-description { margin: 2px 0 0; font-size: .78rem; font-weight: 600; color: var(--pnd-muted); }

body .pnd-float-card--call { right: -26px; bottom: 30px; width: 272px !important; padding: 18px 20px !important; }
body .pnd-float-card--call .pnd-float-label .elementor-heading-title { display: flex; align-items: center; gap: 8px; font-family: var(--pnd-font-body); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pnd-blue); margin: 0 0 6px; }
body .pnd-float-card--call .pnd-float-label .elementor-heading-title::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-red); animation: pnd-ring-red 2.2s ease-out infinite; }
body .pnd-float-card--call .pnd-float-num .elementor-heading-title[class*="elementor-size-"] a { font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.45rem; color: var(--pnd-blue); letter-spacing: -.02em; }
body .pnd-float-card--call .pnd-float-num .elementor-heading-title[class*="elementor-size-"] a:hover { color: var(--pnd-red); }
body .pnd-float-card--call .pnd-float-text p { font-size: .84rem; color: var(--pnd-muted); margin: 4px 0 0; line-height: 1.45; }

body .pnd-hero__media > .pnd-hero__caption { position: absolute !important; left: 24px; bottom: 22px; z-index: 2; max-width: min(46%, 300px) !important; width: auto !important; }
body .pnd-hero__caption .elementor-heading-title { color: #fff; font-family: var(--pnd-font-body); font-size: .84rem; font-weight: 600; line-height: 1.35; text-shadow: 0 1px 8px rgba(0,0,0,.35); }

/* --------------------------------------------------------------------------
   4. Trust strip
   -------------------------------------------------------------------------- */
body .pnd-trust { position: relative; z-index: 3; margin-top: -76px; }
body .pnd-trust__card { background: #fff; border-radius: var(--pnd-r-lg); box-shadow: var(--pnd-shadow-lg); border: 1px solid var(--pnd-border-soft); overflow: hidden; }
body .pnd-trust__item { position: relative; padding: 24px 18px; height: 100%; }
body .pnd-trust__card > .e-con-inner > .pnd-trust__item + .pnd-trust__item::before, body .pnd-trust__card > .pnd-trust__item + .pnd-trust__item::before { content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 1px; background: var(--pnd-border); }
body .pnd-trust__item .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: center; gap: 12px; text-align: left !important; }
body .pnd-trust__item .elementor-icon-box-icon { margin: 0 !important; display: inline-flex; }
body .pnd-trust__item .elementor-icon { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--pnd-tint); }
body .pnd-trust__item .elementor-icon svg { width: 22px; height: 22px; fill: var(--pnd-blue); }
body .pnd-trust__item--red .elementor-icon { background: var(--pnd-red-tint); }
body .pnd-trust__item--red .elementor-icon svg { fill: var(--pnd-red); }
body .pnd-trust__item .elementor-icon-box-title { margin: 0; font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-heading); font-size: .96rem; line-height: 1.25; white-space: nowrap; }
body .pnd-trust__item .elementor-icon-box-title a { color: inherit; }
body .pnd-trust__item .elementor-icon-box-description { margin: 2px 0 0; font-size: .83rem; color: var(--pnd-muted); line-height: 1.35; }
body .pnd-trust__item:has(a):hover { background: var(--pnd-light); }

/* --------------------------------------------------------------------------
   Section heading pattern
   -------------------------------------------------------------------------- */
body .pnd-section-head { max-width: 760px; }
body .pnd-section-head .elementor-widget-text-editor p { font-size: 1.08rem; color: var(--pnd-muted); margin: 0; }

/* --------------------------------------------------------------------------
   5. Services
   -------------------------------------------------------------------------- */
body .pnd-services { --padding-top: 104px; }
body .pnd-service-card {
  position: relative; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); overflow: hidden;
  box-shadow: var(--pnd-shadow-sm); transition: transform .3s var(--pnd-ease), box-shadow .3s var(--pnd-ease), border-color .3s;
}
body .pnd-service-card:hover, body .pnd-service-card:focus-within { transform: translateY(-6px); box-shadow: var(--pnd-shadow-lg); border-color: var(--pnd-tint-2); }
body .pnd-service-card__media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--pnd-tint); flex: none; }
body .pnd-service-card__media > .pnd-service-card__img { position: absolute; inset: 0; width: 100% !important; height: 100%; margin: 0 !important; }
body .pnd-service-card__media img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .6s var(--pnd-ease); display: block; }
body .pnd-service-card:hover .pnd-service-card__media img { transform: scale(1.06); }
body .pnd-service-card__tag { position: absolute !important; top: 14px; left: 14px; z-index: 2; width: auto !important; }
body .pnd-service-card__tag .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: var(--pnd-red); color: #fff;
  font-family: var(--pnd-font-head); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
body .pnd-service-card__body { flex: 1 1 auto; }
body .pnd-service-card__body .elementor-heading-title[class*="elementor-size-"] a { color: var(--pnd-heading); }
body .pnd-service-card__body h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card is one link target */
body .pnd-service-card__body .elementor-widget-text-editor p { font-size: .95rem; color: var(--pnd-muted); line-height: 1.55; margin: 0; }
body .pnd-service-card__body .pnd-text-link { margin-top: auto !important; }
body .pnd-service-card--emergency { border-color: rgb(var(--pnd-red-rgb) / .25); }
body .pnd-service-card--emergency .pnd-text-link .elementor-heading-title { color: var(--pnd-red); }

body .pnd-services__footer { background: var(--pnd-light); border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); }
body .pnd-services__more-title .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-heading); font-size: .95rem; }
body .pnd-pills .elementor-icon-list-items { gap: 8px; }
body .pnd-pills .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body .pnd-pills .elementor-icon-list-item::after { display: none !important; }
body .pnd-pills .elementor-icon-list-item a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: #fff;
  border: 1px solid var(--pnd-border); transition: border-color .2s, background-color .2s;
}
body .pnd-pills .elementor-icon-list-text { color: var(--pnd-blue); font-size: .87rem; font-weight: 600; padding: 0 !important; }
body .pnd-pills .elementor-icon-list-item a:hover { border-color: var(--pnd-sky); background: var(--pnd-tint); }
body .pnd-pills .elementor-icon-list-icon { display: none; }

/* --------------------------------------------------------------------------
   14. Footer (UAE footer template)
   -------------------------------------------------------------------------- */
body .pnd-footer { background-color: var(--pnd-navy); color: rgba(255,255,255,.74); font-size: .93rem; }
body .pnd-footer a { color: rgba(255,255,255,.88); }
body .pnd-footer a:hover { color: #fff; }
body .pnd-footer .elementor-widget-text-editor p { color: rgba(255,255,255,.74); line-height: 1.6; }
body .pnd-footer__logo { display: inline-flex; width: auto !important; background: #fff; padding: 12px 16px; border-radius: 12px; }
body .pnd-footer__logo img { width: 180px; height: auto; }
body .pnd-footer__phone .elementor-heading-title[class*="elementor-size-"] a { display: inline-flex; align-items: center; gap: 10px; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.35rem; color: #fff; }
body .pnd-footer__phone .elementor-heading-title a::before {
  content: ""; width: 20px; height: 20px; background: var(--pnd-red);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .pnd-footer__social .elementor-social-icon { width: 42px; height: 42px; display: inline-grid; place-items: center; background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.14); transition: background-color .2s, border-color .2s; }
body .pnd-footer__social .elementor-social-icon svg { width: 17px; height: 17px; fill: #fff; }
body .pnd-footer__social .elementor-social-icon:hover { background: var(--pnd-blue) !important; border-color: var(--pnd-blue); }
body .pnd-footer__title .elementor-heading-title { font-family: var(--pnd-font-head); font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
body .pnd-footer__links .elementor-icon-list-item { padding-bottom: 9px !important; }
body .pnd-footer__links .elementor-icon-list-text { color: rgba(255,255,255,.86); font-size: .92rem; }
body .pnd-footer__links .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #fff; }
body .pnd-footer__contact .elementor-icon-list-item { align-items: flex-start !important; padding-bottom: 14px !important; line-height: 1.45; }
body .pnd-footer__contact .elementor-icon-list-icon { padding-top: 3px; }
body .pnd-footer__contact .elementor-icon-list-icon svg { width: 17px; height: 17px; fill: var(--pnd-sky); }
body .pnd-footer__contact .elementor-icon-list-text { color: rgba(255,255,255,.78); padding-left: 10px; overflow-wrap: anywhere; min-width: 0; }
body .pnd-footer__contact .elementor-icon-list-text strong { display: block; color: #fff; font-weight: 600; font-size: .9rem; }
body .pnd-footer__license .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 10px;
  background: rgb(var(--pnd-sky-rgb) / .1); border: 1px solid rgb(var(--pnd-sky-rgb) / .28); color: #fff; font-family: var(--pnd-font-body); font-size: .84rem; font-weight: 600;
}
body .pnd-footer__payment img { width: 190px; height: auto; border-radius: 6px; background: #fff; padding: 4px 6px; }
body .pnd-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); font-size: .84rem; }
body .pnd-footer__bottom .elementor-widget-text-editor p { margin: 0; font-size: .84rem; }
body .pnd-footer__legal .elementor-icon-list-text { color: rgba(255,255,255,.8); font-size: .84rem; }
body .pnd-footer__legal .elementor-icon-list-item::after { border-color: rgba(255,255,255,.18) !important; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1380px) {
  body .pnd-header__phone { display: none; }
}
@media (max-width: 1280px) {
  body .pnd-float-card--badge { left: -18px; }
  body .pnd-float-card--call { right: -12px; }
}
@media (max-width: 1100px) {
  :root { --pnd-section-y: 80px; }
  body .pnd-hero__caption { display: none; }
  body .pnd-float-card--call { width: 240px !important; padding: 16px !important; }
  body .pnd-float-card--call .pnd-float-num .elementor-heading-title[class*="elementor-size-"] a { font-size: 1.25rem; }
}
@media (max-width: 1024px) {
  body .pnd-trust__card > .e-con-inner > .pnd-trust__item::before, body .pnd-trust__card > .pnd-trust__item::before { display: none !important; }
  body .pnd-trust__item { border-top: 1px solid var(--pnd-border-soft); }
}
@media (max-width: 900px) {
  :root { --pnd-section-y: 68px; }
  body .pnd-hero__media { max-width: 600px; width: 100%; margin: 0 auto; }
  body .pnd-hero__media::before { display: none; }
  body .pnd-hero__frame { aspect-ratio: 16 / 11; }
  body .pnd-float-card--badge { left: 16px; top: 16px; }
  body .pnd-float-card--call { right: 16px; bottom: -34px; }
  body .pnd-trust { margin-top: -64px; }
}
@media (max-width: 767px) {
  body .pnd-topbar__phone { display: none; }
  body .pnd-topbar .elementor-icon-list-items { flex-wrap: nowrap; justify-content: center; }
  body .pnd-topbar .elementor-icon-list-item:nth-child(n+3) { display: none !important; }
  body .pnd-topbar .elementor-icon-list-item { white-space: nowrap; }
  body .pnd-hero__frame { aspect-ratio: 4 / 3.4; border-radius: var(--pnd-r-lg); }
  body .pnd-hero__status .elementor-heading-title { font-size: .7rem; letter-spacing: .1em; }
  body .pnd-hero__lead p { font-size: 1rem; }
  body .pnd-chips .elementor-icon-list-items { gap: 8px; }
  body .pnd-chips .elementor-icon-list-item { font-size: .8rem; padding: 6px 11px !important; }
  body .pnd-float-card--badge { left: 12px; top: 12px; }
  body .pnd-float-card--badge .elementor-icon-box-wrapper { padding: 9px 13px 9px 10px; gap: 9px; }
  body .pnd-float-card--badge .elementor-icon { width: 32px; height: 32px; border-radius: 10px; }
  body .pnd-float-card--call { left: 12px; right: 12px; width: auto !important; bottom: -40px; padding: 14px 16px !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 10px !important; }
  body .pnd-float-card--call .pnd-float-text { display: none; }
  body .pnd-float-card--call .pnd-float-label .elementor-heading-title { margin: 0; font-size: .68rem; letter-spacing: .06em; white-space: nowrap; }
  body .pnd-float-card--call .pnd-float-num .elementor-heading-title[class*="elementor-size-"] a { font-size: 1.2rem; white-space: nowrap; }
  body .pnd-trust { margin-top: -52px; }
  body .pnd-trust__item { padding: 15px 18px; }
  body .pnd-services { --padding-top: 72px; }
  body .pnd-service-card { flex-direction: row !important; flex-wrap: nowrap !important; align-items: stretch !important; }
  body .pnd-service-card > .pnd-service-card__body { --width: auto; width: auto !important; flex: 1 1 0% !important; min-width: 0; }
  body .pnd-service-card:hover { transform: none; }
  body .pnd-service-card__media { aspect-ratio: auto; width: 116px !important; --width: 116px; flex: 0 0 116px !important; align-self: stretch; }
  body .pnd-service-card__tag { top: 8px; left: 8px; }
  body .pnd-service-card__tag .elementor-heading-title { padding: 4px 8px; font-size: .62rem; }
  body .pnd-service-card__body h3 { font-size: 1.04rem; }
  body .pnd-service-card__body .elementor-widget-text-editor p { font-size: .88rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (max-width: 400px) {
  body .pnd-btn .elementor-button { white-space: normal; text-align: center; padding: 10px 18px; }
}
@media (max-width: 600px) {
  :root { --pnd-section-y: 56px; --pnd-gutter: 16px; }
  body .pnd-topbar .elementor-icon-list-item:nth-child(n+2) { display: none !important; }
  body .pnd-topbar .elementor-icon-list-item { font-size: .78rem; }
  body .pnd-btn--stack-mobile, body .pnd-btn--stack-mobile .elementor-button { width: 100%; }
}

/* ==========================================================================
   Homepage sections 7–15 (+ mobile action bar)
   ========================================================================== */

/* Shared */
body .pnd-on-dark .elementor-heading-title, body .pnd-on-dark h2, body .pnd-on-dark h3 { color: #fff; }
body .pnd-accent-sky { color: var(--pnd-sky); }
body .pnd-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
body .pnd-section-head--center .pnd-eyebrow .elementor-heading-title { justify-content: center; }
body .pnd-check-list .elementor-icon-list-item { align-items: flex-start !important; padding-bottom: 12px !important; }
body .pnd-check-list .elementor-icon-list-icon { padding-top: 4px; }
body .pnd-check-list .elementor-icon-list-icon svg { width: 16px; height: 16px; fill: var(--pnd-blue); }
body .pnd-check-list .elementor-icon-list-text { color: var(--pnd-text); font-size: .95rem; padding-left: 10px; }

/* ---------- 7. Emergency process (dark contrast band) ---------- */
body .pnd-response {
  position: relative; overflow: hidden; color: rgba(255,255,255,.8);
  background:
    radial-gradient(760px 440px at 100% 0%, rgb(var(--pnd-blue-rgb) / .55), transparent 65%),
    radial-gradient(620px 380px at 0% 100%, rgb(var(--pnd-blue-rgb) / .25), transparent 60%),
    var(--pnd-navy);
}
body .pnd-response::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .6;
  background-image: radial-gradient(rgb(var(--pnd-sky-rgb) / .1) 1px, transparent 1px); background-size: 22px 22px;
}
body .pnd-response > .e-con-inner { position: relative; z-index: 1; }
/* Both columns stretch to one row height; the step grid splits that height into two equal rows. */
body .pnd-response__grid { grid-template-columns: 380px 1fr !important; align-items: stretch !important; }
body .pnd-response__intro .elementor-widget-text-editor p { color: rgba(255,255,255,.78); font-size: 1.05rem; margin: 0; }
body .pnd-now-card { margin-top: auto !important; background: #fff; border-radius: var(--pnd-r-lg); padding: 26px !important; box-shadow: var(--pnd-shadow-lg); border-top: 5px solid var(--pnd-red); }
body .pnd-now-card h3.elementor-heading-title { color: var(--pnd-heading) !important; font-size: 1.1rem; display: flex; align-items: center; gap: 10px; }
body .pnd-now-card h3.elementor-heading-title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--pnd-red); flex: none; animation: pnd-ring-red 2.2s ease-out infinite; }
body .pnd-now-card ol { margin: 0; padding: 0; list-style: none; counter-reset: now; }
body .pnd-now-card li { counter-increment: now; position: relative; padding-left: 38px; margin-bottom: 12px; font-size: .95rem; line-height: 1.5; color: var(--pnd-text); }
body .pnd-now-card li::before {
  content: counter(now); position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%;
  background: var(--pnd-red-tint); color: var(--pnd-red); font-family: var(--pnd-font-head); font-weight: 800; font-size: .82rem; display: grid; place-items: center;
}
body .pnd-steps { grid-template-rows: repeat(2, 1fr) !important; }
body .pnd-step {
  --pnd-progress: 0%;
  position: relative; padding: 28px 26px 26px !important; border-radius: var(--pnd-r-lg);
  background: rgb(var(--pnd-blue-rgb) / .22); border: 1px solid rgb(var(--pnd-sky-rgb) / .18);
  transition: background-color .3s, border-color .3s, transform .3s var(--pnd-ease);
}
body .pnd-step:hover { background: rgb(var(--pnd-blue-rgb) / .34); border-color: rgb(var(--pnd-sky-rgb) / .45); transform: translateY(-4px); }
body .pnd-step::after {
  content: ""; display: block; height: 4px; margin-top: auto; border-radius: 4px;
  background: linear-gradient(90deg, var(--pnd-sky) 0 var(--pnd-progress), rgba(255,255,255,.1) var(--pnd-progress) 100%);
}
body .pnd-step:nth-child(1) { --pnd-progress: 16.67%; } body .pnd-step:nth-child(2) { --pnd-progress: 33.33%; } body .pnd-step:nth-child(3) { --pnd-progress: 50%; }
body .pnd-step:nth-child(4) { --pnd-progress: 66.67%; } body .pnd-step:nth-child(5) { --pnd-progress: 83.33%; } body .pnd-step:nth-child(6) { --pnd-progress: 100%; }
body .pnd-step__icon .elementor-icon { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: var(--pnd-blue); box-shadow: 0 8px 20px rgb(0 0 0 / .25); }
body .pnd-step__icon .elementor-icon svg { width: 22px; height: 22px; fill: #fff; }
body .pnd-step__num .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 800; font-size: 2.1rem; line-height: 1; color: rgb(var(--pnd-sky-rgb) / .38) !important; letter-spacing: -.04em; }
body .pnd-step h3.elementor-heading-title { font-size: 1.08rem; color: #fff; }
body .pnd-step .elementor-widget-text-editor p { font-size: .93rem; color: rgba(255,255,255,.76); margin: 0 0 22px; line-height: 1.55; }
body .pnd-step .elementor-widget-text-editor a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.45); }
body .pnd-step--first { background: rgb(var(--pnd-red-rgb) / .16); border-color: rgb(var(--pnd-red-rgb) / .55); }
body .pnd-step--first::after { background: linear-gradient(90deg, var(--pnd-red) 0 var(--pnd-progress), rgba(255,255,255,.1) var(--pnd-progress) 100%); }
body .pnd-step--first .pnd-step__icon .elementor-icon { background: var(--pnd-red); }
body .pnd-step--first .pnd-step__num .elementor-heading-title { color: rgb(255 255 255 / .35) !important; }

/* ---------- 8. Problem intent ---------- */
body .pnd-problem {
  position: relative; padding: 22px 20px 20px !important; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md);
  color: var(--pnd-text); text-decoration: none; transition: transform .25s var(--pnd-ease), box-shadow .25s var(--pnd-ease), border-color .25s;
}
body a.pnd-problem:hover, body a.pnd-problem:focus-visible { transform: translateY(-4px); box-shadow: var(--pnd-shadow-md); border-color: var(--pnd-sky); color: var(--pnd-text); }
body .pnd-problem__icon .elementor-icon { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: var(--pnd-tint); transition: background-color .25s; }
body .pnd-problem__icon .elementor-icon svg { width: 21px; height: 21px; fill: var(--pnd-blue); transition: fill .25s; }
body a.pnd-problem:hover .pnd-problem__icon .elementor-icon { background: var(--pnd-blue); }
body a.pnd-problem:hover .pnd-problem__icon .elementor-icon svg { fill: #fff; }
body .pnd-problem h3.elementor-heading-title { font-size: 1.02rem; line-height: 1.3; color: var(--pnd-heading); }
body .pnd-problem .elementor-widget-text-editor p { font-size: .86rem; color: var(--pnd-muted); margin: 0; line-height: 1.45; }
body .pnd-problem__to { margin-top: auto !important; }
body .pnd-problem__to .elementor-heading-title {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px dashed var(--pnd-border);
  font-family: var(--pnd-font-head); font-size: .82rem; font-weight: 700; color: var(--pnd-blue);
}
body .pnd-problem__to .elementor-heading-title::after {
  content: ""; width: 16px; height: 16px; flex: none; background: currentColor; transition: transform .2s var(--pnd-ease);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
body a.pnd-problem:hover .pnd-problem__to .elementor-heading-title::after { transform: translateX(4px); }
body .pnd-problem--urgent .pnd-problem__icon .elementor-icon { background: var(--pnd-red-tint); }
body .pnd-problem--urgent .pnd-problem__icon .elementor-icon svg { fill: var(--pnd-red); }
body a.pnd-problem--urgent:hover { border-color: var(--pnd-red); }
body a.pnd-problem--urgent:hover .pnd-problem__icon .elementor-icon { background: var(--pnd-red); }
body .pnd-problem--urgent .pnd-problem__to .elementor-heading-title { color: var(--pnd-red); }
body .pnd-problems__note p { margin: 0; text-align: center; color: var(--pnd-muted); }
body .pnd-problems__note strong { color: var(--pnd-heading); font-family: var(--pnd-font-head); }
body .pnd-problems__note a { font-family: var(--pnd-font-head); font-weight: 700; white-space: nowrap; }

/* ---------- 9. Why choose us ---------- */
body .pnd-why__media { position: relative; padding-bottom: 56px !important; align-self: center !important; }
body .pnd-why__photo { border-radius: var(--pnd-r-xl); overflow: hidden; box-shadow: var(--pnd-shadow-lg); aspect-ratio: 5 / 4; margin: 0 !important; }
body .pnd-why__photo img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: 40% center; display: block; }
body .pnd-why__media > .pnd-why__inset { position: absolute !important; right: -28px; bottom: 0; width: 46% !important; max-width: 46% !important; border-radius: var(--pnd-r-lg); overflow: hidden; border: 6px solid #fff; box-shadow: var(--pnd-shadow-lg); aspect-ratio: 4 / 3; z-index: 1; margin: 0 !important; }
body .pnd-why__inset img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
body .pnd-why__media > .pnd-why__quote { position: absolute !important; left: -24px; bottom: 18px; width: 58% !important; max-width: 58% !important; background: var(--pnd-blue); border-radius: var(--pnd-r-lg); padding: 22px 24px !important; box-shadow: var(--pnd-shadow-lg); z-index: 2; }
body .pnd-why__quote .elementor-widget-text-editor p { font-family: var(--pnd-font-head); color: #fff; font-weight: 600; font-size: 1rem; line-height: 1.45; margin: 0; }
body .pnd-why__quote .elementor-heading-title { font-size: .8rem; color: var(--pnd-sky) !important; font-weight: 600; letter-spacing: .02em; font-family: var(--pnd-font-body); }
body .pnd-why__item .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; gap: 14px; text-align: left !important; align-items: flex-start; }
body .pnd-why__item .elementor-icon-box-icon { margin: 0 !important; display: inline-flex; }
body .pnd-why__item .elementor-icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--pnd-tint); }
body .pnd-why__item .elementor-icon svg { width: 19px; height: 19px; fill: var(--pnd-blue); }
body .pnd-why__item .elementor-icon-box-title { margin: 0 0 3px; font-size: 1rem; color: var(--pnd-heading); }
body .pnd-why__item .elementor-icon-box-description { margin: 0; font-size: .9rem; color: var(--pnd-muted); line-height: 1.5; }
body .pnd-why__discount .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 999px; background: var(--pnd-tint);
  color: var(--pnd-blue); font-family: var(--pnd-font-body); font-size: .88rem; font-weight: 600;
}
body .pnd-why__discount .elementor-heading-title::before { content: "%"; width: 22px; height: 22px; border-radius: 50%; background: var(--pnd-blue); color: #fff; font-size: .7rem; font-weight: 800; display: grid; place-items: center; }
body .pnd-more { border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); background: #fff; }
body .pnd-more summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 12px 20px; font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-blue); font-size: .96rem; }
body .pnd-more summary::-webkit-details-marker { display: none; }
body .pnd-more summary::after { content: "+"; width: 28px; height: 28px; flex: none; border-radius: 50%; border: 1.5px solid var(--pnd-border); display: grid; place-items: center; font-size: 1.1rem; line-height: 1; transition: transform .25s; }
body .pnd-more[open] summary::after { transform: rotate(45deg); }
body .pnd-more__body { padding: 0 20px 20px; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-more__body p { font-size: .95rem; color: var(--pnd-text); margin: 14px 0 0; }

/* ---------- 10. Reviews (structure only until verified reviews are supplied) ---------- */
body .pnd-reviews { background: linear-gradient(180deg, var(--pnd-light) 0%, #fff 100%); }
body .pnd-review-sources { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); box-shadow: var(--pnd-shadow-md); padding: 18px 22px !important; }
body .pnd-review-sources .elementor-heading-title { font-family: var(--pnd-font-head); font-size: .9rem; font-weight: 700; color: var(--pnd-heading); }
body .pnd-review-sources .elementor-icon-list-item a { min-height: 32px; }
body .pnd-review-sources .elementor-icon-list-text { font-weight: 700; font-size: .9rem; color: var(--pnd-blue); }
body .pnd-review-sources .elementor-icon-list-icon svg { width: 16px; height: 16px; fill: var(--pnd-blue); }
body .pnd-review {
  position: relative; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg);
  padding: 28px !important; box-shadow: var(--pnd-shadow-sm); scroll-snap-align: start;
}
body .pnd-review::before { content: "\201C"; position: absolute; right: 22px; top: 6px; font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: var(--pnd-tint); }
body .pnd-review blockquote { margin: 0; color: var(--pnd-heading); font-size: .98rem; line-height: 1.62; }
body .pnd-review__footer { margin-top: auto !important; padding-top: 18px !important; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-review__name .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-heading); font-size: .96rem; line-height: 1.2; }
body .pnd-review__src .elementor-heading-title { font-family: var(--pnd-font-body); font-size: .8rem; color: var(--pnd-muted); font-weight: 500; }
/* Staging placeholder: impossible to miss, never mistaken for a real review */
body .pnd-review--placeholder { border: 2px dashed var(--pnd-red) !important; background: repeating-linear-gradient(135deg, #fff 0 14px, var(--pnd-red-tint) 14px 28px); }
body .pnd-review--placeholder blockquote { color: var(--pnd-red); font-weight: 700; }
body .pnd-placeholder-tag .elementor-heading-title { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--pnd-red); color: #fff !important; font-family: var(--pnd-font-head); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* ---------- 11. Areas served ---------- */
body .pnd-areas { background: linear-gradient(180deg, #fff 0%, var(--pnd-light) 100%); }
body .pnd-areas__grid { grid-template-columns: .82fr 1.18fr !important; align-items: stretch !important; }
body .pnd-areas__intro > .pnd-areas__bottom { margin-top: auto !important; }
body .pnd-areas__intro .pnd-section-head .elementor-widget-text-editor p { color: var(--pnd-muted); }
body .pnd-area-map { position: relative; height: 230px; margin: 0; overflow: hidden; isolation: isolate; border-radius: var(--pnd-r-lg); border: 1px solid var(--pnd-border); background: #EEF2F6; box-shadow: var(--pnd-shadow-sm); container-type: size; }
body .pnd-area-map__canvas { --w: max(150cqw, 260cqh); position: absolute; width: var(--w); aspect-ratio: 1920 / 1366; left: calc(50% - var(--w) * .48); top: calc(50% - var(--w) * .7115 * .37); }
body .pnd-area-map__canvas img { width: 100%; height: 100%; display: block; filter: grayscale(1) contrast(1.35) brightness(1.02); }
body .pnd-area-map__canvas::after { content: ""; position: absolute; inset: 0; background: var(--pnd-blue); mix-blend-mode: color; opacity: .7; pointer-events: none; }
body .pnd-area-map::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; box-shadow: inset 0 0 50px 10px rgba(249,249,249,.85); }
body .pnd-area-map__zone { position: absolute; z-index: 1; left: 49%; top: 37%; width: 22%; height: 20%; transform: translate(-50%, -50%); border-radius: 50%; border: 1.5px dashed rgb(var(--pnd-blue-rgb) / .45); background: radial-gradient(closest-side, rgb(var(--pnd-blue-rgb) / .16), rgb(var(--pnd-blue-rgb) / .04) 70%, transparent); }
body .pnd-area-map__pin { position: absolute; z-index: 2; left: var(--x); top: var(--y); width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--pnd-red); border: 2px solid #fff; box-shadow: 0 2px 6px rgb(var(--pnd-navy-rgb) / .3); }
body .pnd-area-map__pin--main { z-index: 3; width: 20px; height: 20px; margin: -10px 0 0 -10px; background: var(--pnd-blue); border-width: 3px; }
body .pnd-area-map__pin--main::before, body .pnd-area-map__pin--main::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid var(--pnd-blue); opacity: 0; animation: pnd-map-pulse 2.6s ease-out infinite; }
body .pnd-area-map__pin--main::after { animation-delay: 1.3s; }
@keyframes pnd-map-pulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(3.2); opacity: 0; } }
body .pnd-area-map__label { position: absolute; z-index: 3; left: var(--x); top: var(--y); transform: translate(12px, -50%); padding: 2px 7px; border-radius: 6px; background: rgba(255,255,255,.94); box-shadow: var(--pnd-shadow-sm); font-family: var(--pnd-font-head); font-size: .7rem; font-weight: 800; color: var(--pnd-blue); white-space: nowrap; }
body .pnd-area-map__label--main { transform: translate(16px, -50%); color: #fff; background: var(--pnd-blue); z-index: 4; }
body .pnd-area-map__label--left { transform: translate(calc(-100% - 12px), -50%); }
body .pnd-area-map__chip { position: absolute; z-index: 4; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.96); box-shadow: var(--pnd-shadow-sm); font-family: var(--pnd-font-head); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pnd-blue); margin: 0; }
body .pnd-area-map__chip::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-red); }
body .pnd-area-map__legend { position: absolute; z-index: 4; right: 16px; bottom: 16px; display: flex; gap: 14px; padding: 8px 12px; border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: var(--pnd-shadow-sm); font-size: .78rem; font-weight: 600; color: var(--pnd-text); }
body .pnd-area-map__legend span { display: inline-flex; align-items: center; gap: 6px; }
body .pnd-area-map__legend i { width: 9px; height: 9px; border-radius: 50%; background: var(--pnd-red); box-shadow: 0 0 0 2px #fff; }
body .pnd-area-map__legend i.main { background: var(--pnd-blue); }
@supports not (container-type: size) { body .pnd-area-map__canvas { width: 160%; left: -28%; top: -60%; } }
body .pnd-area-grid .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 12px; }
body .pnd-area-grid .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body .pnd-area-grid .elementor-icon-list-item::after { display: none !important; }
body .pnd-area-grid .elementor-icon-list-item > a {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 58px; padding: 10px 14px; border-radius: var(--pnd-r-sm);
  background: rgba(255,255,255,.95); border: 1px solid var(--pnd-border); box-shadow: var(--pnd-shadow-sm); transition: border-color .2s, transform .2s var(--pnd-ease), box-shadow .2s;
}
body .pnd-area-grid .elementor-icon-list-text { color: var(--pnd-heading); font-weight: 600; font-size: .93rem; line-height: 1.25; padding: 0 !important; }
body .pnd-area-grid .elementor-icon-list-icon svg { width: 15px; height: 15px; fill: var(--pnd-red); }
body .pnd-area-grid .elementor-icon-list-item > a:hover { border-color: var(--pnd-sky); transform: translateY(-2px); box-shadow: var(--pnd-shadow-md); }
body .pnd-area-grid .elementor-icon-list-item:first-child > a { background: var(--pnd-blue); border-color: var(--pnd-blue); }
body .pnd-area-grid .elementor-icon-list-item:first-child .elementor-icon-list-text { color: #fff; }
body .pnd-area-grid .elementor-icon-list-item:first-child .elementor-icon-list-icon svg { fill: var(--pnd-sky); }
body .pnd-all-areas { background: rgba(255,255,255,.96); border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); }
body .pnd-all-areas summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 12px 20px; font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-blue); font-size: .96rem; }
body .pnd-all-areas summary::-webkit-details-marker { display: none; }
body .pnd-all-areas summary::after { content: ""; width: 9px; height: 9px; flex: none; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s; margin-top: -4px; }
body .pnd-all-areas[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
body .pnd-all-areas__list { columns: 4 150px; column-gap: 20px; margin: 0; padding: 16px 20px 12px; border-top: 1px solid var(--pnd-border-soft); list-style: none; }
body .pnd-all-areas__list li { break-inside: avoid; padding: 3px 0; font-size: .88rem; color: var(--pnd-text); }
body .pnd-all-areas__list a { font-weight: 600; }
body .pnd-all-areas__more { padding: 0 20px 18px; margin: 0; font-size: .9rem; }

/* ---------- 12. Residential / commercial ---------- */
body .pnd-segment { position: relative; overflow: hidden; isolation: isolate; min-height: 560px; padding: 104px 36px 36px !important; border-radius: var(--pnd-r-xl); box-shadow: var(--pnd-shadow-md); justify-content: flex-end !important; }
body .pnd-segment > .pnd-segment__bg { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; height: 100%; margin: 0 !important; }
body .pnd-segment__bg img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .8s var(--pnd-ease); display: block; }
body .pnd-segment:hover .pnd-segment__bg img { transform: scale(1.04); }
body .pnd-segment::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(var(--pnd-navy-rgb) / .08) 0%, rgb(var(--pnd-navy-rgb) / .58) 36%, rgb(var(--pnd-navy-rgb) / .95) 70%); }
body .pnd-segment > .pnd-segment__label { position: absolute !important; top: 28px; left: 28px; width: auto !important; }
body .pnd-segment__label .elementor-heading-title { display: inline-block; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.95); color: var(--pnd-blue) !important; font-family: var(--pnd-font-head); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body .pnd-segment h3.elementor-heading-title { color: #fff; font-size: clamp(1.5rem, 2.3vw, 2rem); letter-spacing: -.025em; }
body .pnd-segment .elementor-widget-text-editor p { color: rgba(255,255,255,.88); font-size: 1rem; max-width: 520px; margin: 0; }
body .pnd-segment .pnd-pills .elementor-icon-list-item a { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.26); }
body .pnd-segment .pnd-pills .elementor-icon-list-text { color: #fff; }
body .pnd-segment .pnd-pills .elementor-icon-list-item a:hover { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.5); }
body .pnd-btn--ghost-light .elementor-button { --pnd-btn-bg: rgba(255,255,255,.08); --pnd-btn-fg: #fff; border-color: rgba(255,255,255,.32); }
body .pnd-btn--ghost-light .elementor-button:hover, body .pnd-btn--ghost-light .elementor-button:focus { --pnd-btn-bg: rgba(255,255,255,.18); border-color: rgba(255,255,255,.55); }

/* ---------- 13. FAQ (Elementor nested accordion) ---------- */
body .pnd-faq__grid { grid-template-columns: 340px 1fr !important; align-items: start !important; }
body .pnd-faq__aside { position: sticky !important; top: calc(var(--pnd-header-h) + 32px); }
body .pnd-faq__aside .pnd-section-head .elementor-widget-text-editor p { color: var(--pnd-muted); }
body .pnd-faq__help { padding: 22px !important; border-radius: var(--pnd-r-lg); background: var(--pnd-light); border: 1px solid var(--pnd-border); }
body .pnd-faq__help .elementor-heading-title { font-family: var(--pnd-font-head); color: var(--pnd-heading); font-size: 1rem; }
body .pnd-faq__help .elementor-widget-text-editor p { font-size: .9rem; margin: 0; color: var(--pnd-muted); }
body .pnd-faq .e-n-accordion { border-top: 1px solid var(--pnd-border); }
body .pnd-faq .e-n-accordion-item { border-bottom: 1px solid var(--pnd-border); }
body .pnd-faq .e-n-accordion-item-title { display: flex !important; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding: 20px 4px !important; background: none !important; border: 0 !important; cursor: pointer; }
body .pnd-faq .e-n-accordion-item-title-header { flex: 1; }
body .pnd-faq .e-n-accordion-item-title-text { font-family: var(--pnd-font-head) !important; font-weight: 700 !important; font-size: 1.1rem !important; line-height: 1.35 !important; letter-spacing: -.01em; color: var(--pnd-heading) !important; margin: 0; }
body .pnd-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--pnd-blue) !important; }
body .pnd-faq .e-n-accordion-item-title-icon { order: 2; width: 38px; height: 38px; flex: none; border-radius: 50%; border: 1.5px solid var(--pnd-border); background: #fff; display: grid !important; place-items: center; transition: background-color .25s, border-color .25s; }
body .pnd-faq .e-n-accordion-item-title-icon svg { width: 13px; height: 13px; fill: var(--pnd-blue) !important; }
body .pnd-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--pnd-blue); border-color: var(--pnd-blue); }
body .pnd-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg { fill: #fff !important; }
body .pnd-faq .e-n-accordion-item > .e-con { padding: 0 64px 24px 4px !important; border: 0 !important; }
body .pnd-faq .e-n-accordion-item .elementor-widget-text-editor p { margin: 0; color: var(--pnd-text); font-size: .99rem; }
body .pnd-faq .e-n-accordion-item .elementor-widget-text-editor a { font-weight: 600; }

/* ---------- 14. Final conversion panel + Gravity Forms ---------- */
body .pnd-cta { background-color: var(--pnd-light); }
body .pnd-cta__card { grid-template-columns: .9fr 1.1fr !important; border-radius: var(--pnd-r-xl); overflow: hidden; background: #fff; box-shadow: var(--pnd-shadow-lg); border: 1px solid var(--pnd-border-soft); }
body .pnd-cta__call { position: relative; overflow: hidden; padding: 52px 48px !important; background: radial-gradient(520px 360px at 0% 0%, rgb(var(--pnd-blue-rgb) / .55), transparent 65%), var(--pnd-navy); }
body .pnd-cta__call::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 300px; height: 300px; border-radius: 50%; border: 46px solid rgb(var(--pnd-sky-rgb) / .12); pointer-events: none; }
body .pnd-cta__call > * { position: relative; z-index: 1; }
body .pnd-cta__call .elementor-widget-text-editor p { color: rgba(255,255,255,.78); font-size: 1.05rem; margin: 0; }
body .pnd-cta__emergency { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: var(--pnd-r-lg); padding: 24px !important; }
body .pnd-cta__label .elementor-heading-title { display: flex; align-items: center; gap: 10px; font-family: var(--pnd-font-body); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
body .pnd-cta__label .elementor-heading-title::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pnd-red); animation: pnd-ring-red 2.2s ease-out infinite; }
body .pnd-cta__phone .elementor-heading-title[class*="elementor-size-"] a { display: block; font-family: var(--pnd-font-head); font-weight: 800; font-size: clamp(1.9rem, 3vw, 2.5rem); letter-spacing: -.03em; color: #fff; line-height: 1.1; }
body .pnd-cta__phone .elementor-heading-title[class*="elementor-size-"] a:hover { color: var(--pnd-sky); }
body .pnd-cta__emergency .elementor-widget-text-editor p { font-size: .92rem; color: rgba(255,255,255,.78); }
body .pnd-cta__facts { margin-top: auto !important; }
body .pnd-cta__facts .elementor-icon-list-item { align-items: flex-start !important; padding-bottom: 12px !important; }
body .pnd-cta__facts .elementor-icon-list-icon { padding-top: 3px; }
body .pnd-cta__facts .elementor-icon-list-icon svg { width: 17px; height: 17px; fill: var(--pnd-sky); }
body .pnd-cta__facts .elementor-icon-list-text { color: rgba(255,255,255,.8); font-size: .92rem; line-height: 1.45; padding-left: 12px; }
body .pnd-cta__facts .elementor-icon-list-text strong { color: #fff; font-weight: 600; }
body .pnd-cta__form { padding: 52px 48px !important; }
body .pnd-cta__form h3.elementor-heading-title { font-size: 1.5rem; letter-spacing: -.02em; }
body .pnd-cta__form > .elementor-widget-text-editor p { color: var(--pnd-muted); margin: 0; font-size: .98rem; }
/* Gravity Forms: existing form #3, styled in place (legacy and 2.5+ markup) */
body .pnd-gform .gform_wrapper { margin: 0 !important; max-width: none !important; }
body .pnd-gform .gform_wrapper ul.gform_fields, body .pnd-gform .gform_wrapper .gform_fields { display: grid !important; grid-template-columns: 1fr 1fr; gap: 18px !important; margin: 0 !important; padding: 0 !important; list-style: none !important; }
body .pnd-gform .gform_wrapper .gfield { margin: 0 !important; padding: 0 !important; max-width: none !important; width: auto !important; grid-column: auto !important; }
body .pnd-gform .gform_wrapper .gfield--type-name, body .pnd-gform .gform_wrapper .gfield--type-textarea, body .pnd-gform .gform_wrapper .gfield:has(textarea), body .pnd-gform .gform_wrapper .gfield:has(.ginput_complex) { grid-column: 1 / -1 !important; }
body .pnd-gform .gform_wrapper .gfield_label, body .pnd-gform .gform_wrapper legend.gfield_label { display: block; margin: 0 0 7px !important; padding: 0 !important; font-family: var(--pnd-font-head) !important; font-weight: 700 !important; font-size: .9rem !important; color: var(--pnd-heading) !important; }
body .pnd-gform .gform_wrapper .gfield_required { color: var(--pnd-red) !important; margin-left: 3px; }
body .pnd-gform .gform_wrapper .ginput_complex { display: grid !important; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0 !important; width: 100% !important; }
body .pnd-gform .gform_wrapper .ginput_complex > span { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; display: flex !important; flex-direction: column-reverse; gap: 6px; max-width: none !important; }
body .pnd-gform .gform_wrapper .ginput_complex label { font-size: .8rem !important; color: var(--pnd-muted) !important; margin: 0 !important; padding: 0 !important; }
body .pnd-gform .gform_wrapper input[type="text"], body .pnd-gform .gform_wrapper input[type="tel"], body .pnd-gform .gform_wrapper input[type="email"], body .pnd-gform .gform_wrapper textarea {
  width: 100% !important; min-height: 52px; padding: 13px 16px !important; border-radius: 12px !important; border: 1.5px solid var(--pnd-border) !important;
  background: var(--pnd-light) !important; color: var(--pnd-heading) !important; font-family: var(--pnd-font-body) !important; font-size: 16px !important; line-height: 1.4 !important; box-shadow: none !important; margin: 0 !important;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
}
body .pnd-gform .gform_wrapper textarea { min-height: 120px; height: 120px !important; resize: vertical; }
body .pnd-gform .gform_wrapper input:focus, body .pnd-gform .gform_wrapper textarea:focus { outline: none !important; border-color: var(--pnd-sky) !important; background: #fff !important; box-shadow: 0 0 0 4px rgb(var(--pnd-blue-rgb) / .14) !important; }
body .pnd-gform .gform_wrapper .gform_footer, body .pnd-gform .gform_wrapper .gform-footer { margin: 22px 0 0 !important; padding: 0 !important; }
body .pnd-gform .gform_wrapper .gform_button, body .pnd-gform .gform_wrapper input[type="submit"] {
  min-height: 58px; padding: 0 34px !important; border-radius: 999px !important; border: 0 !important; background: var(--pnd-blue) !important; color: #fff !important;
  font-family: var(--pnd-font-head) !important; font-weight: 700 !important; font-size: 1.06rem !important; line-height: 1 !important; cursor: pointer; box-shadow: 0 10px 24px rgb(var(--pnd-blue-rgb) / .22); transition: background-color .2s, transform .2s var(--pnd-ease); width: auto;
}
body .pnd-gform .gform_wrapper .gform_button:hover, body .pnd-gform .gform_wrapper input[type="submit"]:hover { background: var(--pnd-navy) !important; transform: translateY(-2px); }
body .pnd-gform .gform_wrapper .validation_message, body .pnd-gform .gform_wrapper .gfield_validation_message { color: var(--pnd-red) !important; font-size: .82rem !important; font-weight: 600; background: none !important; border: 0 !important; padding: 4px 0 0 !important; }
body .pnd-gform .gform_wrapper .gfield_error input, body .pnd-gform .gform_wrapper .gfield_error textarea { border-color: var(--pnd-red) !important; background: var(--pnd-red-tint) !important; }
body .pnd-gform .gform_confirmation_message { padding: 20px; border-radius: var(--pnd-r-md); background: var(--pnd-tint); border: 1px solid var(--pnd-tint-2); color: var(--pnd-navy); font-weight: 600; }
body .pnd-form-note p { font-size: .84rem; color: var(--pnd-muted); margin: 0; }
/* Mobile sticky action bar: replaced by the global sticky CTA bar (end of file). */


/* ---------- Responsive: sections 7–15 ---------- */
@media (max-width: 1100px) {
  body .pnd-response__grid { grid-template-columns: 1fr !important; }
  body .pnd-response__intro { display: grid !important; grid-template-columns: 1fr 1fr; gap: 40px !important; align-items: start; }
  body .pnd-now-card { margin-top: 0 !important; }
  body .pnd-steps { grid-template-columns: repeat(2, 1fr) !important; grid-template-rows: none !important; grid-auto-rows: 1fr; }
  body .pnd-why__media > .pnd-why__quote { left: -12px; width: 72% !important; max-width: 72% !important; }
  body .pnd-why__media > .pnd-why__inset { right: -12px; }
  body .pnd-areas__grid { grid-template-columns: 1fr !important; }
  body .pnd-area-map { height: 280px; }
  body .pnd-faq__grid { grid-template-columns: 1fr !important; }
  body .pnd-faq__aside { position: static !important; }
  body .pnd-cta__call, body .pnd-cta__form { padding: 44px 36px !important; }
  body .pnd-segment { min-height: 520px; padding: 96px 30px 30px !important; }
}
@media (max-width: 1024px) {
  body .pnd-review-track { display: flex !important; overflow-x: auto; gap: 20px !important; padding-bottom: 14px !important; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  body .pnd-review-track > .pnd-review { flex: 0 0 calc((100% - 20px) / 2) !important; }
}
@media (max-width: 900px) {
  body .pnd-response__intro { grid-template-columns: 1fr; gap: 28px !important; }
  body .pnd-cta__card { grid-template-columns: 1fr !important; }
}
@media (max-width: 767px) {
  body .pnd-steps { grid-template-columns: 1fr !important; grid-auto-rows: auto; }
  body .pnd-step { padding: 20px !important; }
  body .pnd-step .elementor-widget-text-editor p { margin-bottom: 16px; }
  body .pnd-step__num .elementor-heading-title { font-size: 1.4rem; }
  body .pnd-now-card { padding: 22px !important; }
  body .pnd-problem { padding: 16px 14px 14px !important; }
  body .pnd-problem__icon .elementor-icon { width: 40px; height: 40px; border-radius: 11px; }
  body .pnd-problem h3.elementor-heading-title { font-size: .95rem; }
  body .pnd-problem .elementor-widget-text-editor { display: none; }
  body .pnd-problem__to .elementor-heading-title { font-size: .76rem; padding-top: 10px; }
  body .pnd-why__media { padding-bottom: 40px !important; }
  body .pnd-why__photo { aspect-ratio: 4 / 3.3; }
  body .pnd-why__media > .pnd-why__inset { display: none; }
  body .pnd-why__media > .pnd-why__quote { left: 12px; right: 12px; width: auto !important; max-width: none !important; bottom: 0; padding: 18px 20px !important; }
  body .pnd-review-track > .pnd-review { flex-basis: 88% !important; }
  body .pnd-review { padding: 22px !important; }
  body .pnd-area-grid .elementor-icon-list-items { grid-template-columns: 1fr 1fr; gap: 10px; }
  body .pnd-area-grid .elementor-icon-list-item > a { min-height: 52px; padding: 8px 12px; }
  body .pnd-area-map { height: 220px; }
  body .pnd-area-map__legend { display: none; }
  body .pnd-area-map__chip { top: 12px; left: 12px; font-size: .68rem; }
  body .pnd-all-areas__list { columns: 2; }
  body .pnd-segment { min-height: 0; padding: 150px 22px 24px !important; border-radius: var(--pnd-r-lg); }
  body .pnd-segment > .pnd-segment__label { top: 18px; left: 18px; }
  body .pnd-faq .e-n-accordion-item-title { min-height: 68px; padding: 16px 2px !important; gap: 16px; }
  body .pnd-faq .e-n-accordion-item-title-text { font-size: 1rem !important; }
  body .pnd-faq .e-n-accordion-item-title-icon { width: 34px; height: 34px; }
  body .pnd-faq .e-n-accordion-item > .e-con { padding: 0 2px 20px !important; }
  body .pnd-cta__call, body .pnd-cta__form { padding: 32px 22px !important; }
  body .pnd-cta__card { border-radius: var(--pnd-r-lg); }
  body .pnd-gform .gform_wrapper ul.gform_fields, body .pnd-gform .gform_wrapper .gform_fields, body .pnd-gform .gform_wrapper .ginput_complex { grid-template-columns: 1fr; gap: 16px !important; }
  body .pnd-gform .gform_wrapper .gform_button, body .pnd-gform .gform_wrapper input[type="submit"] { width: 100% !important; }
}
@media (max-width: 480px) {
  body .pnd-area-map__label:not(.pnd-area-map__label--main) { display: none; }
}

/* Utility bar on tablets: keep the bar to one line */
@media (max-width: 1100px) { body .pnd-topbar .elementor-icon-list-item:nth-child(4) { display: none !important; } }
@media (max-width: 900px) { body .pnd-topbar .elementor-icon-list-item:nth-child(3) { display: none !important; } }

/* Process cards on phones: compact icon-left layout (as in the mockup) */
@media (max-width: 600px) {
  body .pnd-step { display: grid !important; grid-template-columns: 50px 1fr; column-gap: 16px; row-gap: 4px; align-items: start; }
  body .pnd-step > .pnd-step__top { grid-row: span 2; flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; margin: 0; width: auto !important; }
  body .pnd-step > .elementor-widget { min-width: 0; }
  body .pnd-step .elementor-widget-text-editor p { margin-bottom: 0; }
  body .pnd-step::after { grid-column: 1 / -1; margin-top: 14px; }
}
@media (max-width: 600px) {
  body .pnd-cta__label .elementor-heading-title { font-size: .72rem; letter-spacing: .06em; }
}

/* Standalone text links: comfortable tap height */
body .pnd-text-link .elementor-heading-title[class*="elementor-size-"] a { display: inline-flex; align-items: center; min-height: 32px; }
body .pnd-all-areas__more a { display: inline-flex; align-items: center; min-height: 32px; }


}

/* Hero on tablets (stacked from 1024px): keep the photo a sensible size */
@media (max-width: 1024px) {
  body .pnd-hero__media { max-width: 600px; width: 100% !important; margin: 0 auto; }
  body .pnd-hero__media::before { display: none; }
  body .pnd-hero__frame { aspect-ratio: 16 / 11; }
  body .pnd-float-card--badge { left: 16px; top: 16px; }
  body .pnd-float-card--call { right: 16px; bottom: -34px; }
  body .pnd-hero__copy { max-width: 680px; }
}



/* ==========================================================================
   Inner-page system (Phase 3): service pages, location pages, hubs.
   Reuses the homepage tokens, buttons, cards, FAQ, CTA and form styles;
   only components the homepage does not have are defined here.
   ========================================================================== */

/* ---------- Inner hero (compact) ---------- */
body .pnd-hero--inner .pnd-hero__copy { gap: 18px; }
body .pnd-hero--inner h1.elementor-heading-title { font-size: clamp(2.2rem, 3.4vw, 3.15rem); line-height: 1.08; letter-spacing: -.03em; }
body .pnd-hero--inner .pnd-hero__lead p { font-size: 1.1rem; max-width: 620px; }
body .pnd-hero--inner .pnd-hero__lead p + p { margin-top: 12px; }
body .pnd-hero--inner .pnd-hero__frame { aspect-ratio: 4 / 3.15; }
body .pnd-hero--inner .pnd-hero__media::before { width: 140px; height: 140px; right: -28px; top: -28px; border-width: 22px; }
body .pnd-hero--inner .pnd-float-card--badge { top: auto; bottom: 26px; left: -26px; }
body .pnd-hero__alt-link p { margin: 0; font-size: .92rem; color: var(--pnd-muted); }
body .pnd-hero__alt-link a { font-weight: 700; }

/* Breadcrumbs (Rank Math) */
body .pnd-breadcrumbs .rank-math-breadcrumb p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; font-size: .86rem; font-weight: 500; color: var(--pnd-muted); line-height: 1.4; }
body .pnd-breadcrumbs .rank-math-breadcrumb a { color: var(--pnd-blue); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; min-height: 28px; }
body .pnd-breadcrumbs .rank-math-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
body .pnd-breadcrumbs .rank-math-breadcrumb .separator { margin: 0 8px; color: #9AA3AE; }
body .pnd-breadcrumbs .rank-math-breadcrumb .last { color: var(--pnd-heading); font-weight: 600; }

/* Hero side panels: map (location pages) and category jump list (hubs) */
body .pnd-hero__panel { position: relative; z-index: 1; }
body .pnd-area-map--hero { height: 440px; box-shadow: var(--pnd-shadow-lg); border-radius: var(--pnd-r-xl); }
body .pnd-area-map--hero .pnd-area-map__label { font-size: .78rem; }
/* Inner-page maps are centred on the highlighted neighborhood (--cx = its x position) */
body .pnd-area-map--hero .pnd-area-map__canvas { --w: max(160cqw, 200cqh); }
body .pnd-area-map--hero .pnd-area-map__canvas, body .pnd-local__card .pnd-area-map__canvas { left: calc(50% - var(--w) * var(--cx, .48)); }
body .pnd-area-map__label--minor { display: none; }
body .pnd-area-map__label--down { transform: translate(-50%, 12px); }
body .pnd-area-map__label--up { transform: translate(-50%, calc(-100% - 12px)); }
/* Two-column feature grids: an odd last card spans the row */
body .pnd-fgrid--2 > .pnd-feature:last-child:nth-child(odd) { grid-column: 1 / -1; }
body .pnd-jump { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-xl); box-shadow: var(--pnd-shadow-lg); padding: 28px !important; }
body .pnd-jump__title .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-muted); }
body .pnd-jump .elementor-icon-list-items { display: grid; gap: 8px; }
body .pnd-jump .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body .pnd-jump .elementor-icon-list-item::after { display: none !important; }
body .pnd-jump .elementor-icon-list-item > a { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 50px; padding: 8px 14px; border-radius: var(--pnd-r-sm); background: var(--pnd-light); border: 1px solid var(--pnd-border-soft); transition: background-color .2s, border-color .2s; }
body .pnd-jump .elementor-icon-list-item > a:hover { background: var(--pnd-tint); border-color: var(--pnd-tint-2); }
body .pnd-jump .elementor-icon-list-icon svg { width: 17px; height: 17px; fill: var(--pnd-blue); }
body .pnd-jump .elementor-icon-list-text { flex: 1; color: var(--pnd-heading); font-family: var(--pnd-font-head); font-weight: 700; font-size: .96rem; padding: 0 !important; }
body .pnd-jump .elementor-icon-list-text small { float: right; font-family: var(--pnd-font-body); font-weight: 600; font-size: .78rem; color: var(--pnd-muted); padding: 2px 8px; border-radius: 999px; background: #fff; border: 1px solid var(--pnd-border); }

/* ---------- At-a-glance facts card (direct answers for search & AI) ---------- */
body .pnd-glance { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); box-shadow: var(--pnd-shadow-md); padding: 28px !important; }
body .pnd-glance__title .elementor-heading-title { display: flex; align-items: center; gap: 10px; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.12rem; color: var(--pnd-heading); }
body .pnd-glance__title .elementor-heading-title::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--pnd-red); flex: none; }
body .pnd-facts { margin: 0; display: grid; }
body .pnd-facts > div { display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 13px 0; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-facts > div:first-child { border-top: 0; padding-top: 4px; }
body .pnd-facts dt { font-family: var(--pnd-font-head); font-weight: 700; font-size: .86rem; color: var(--pnd-blue); line-height: 1.45; }
body .pnd-facts dd { margin: 0; font-size: .95rem; color: var(--pnd-text); line-height: 1.55; }

/* ---------- Long-form prose (preserved page copy) ---------- */
body .pnd-prose p { margin: 0 0 1em; color: var(--pnd-text); }
body .pnd-prose p:last-child { margin-bottom: 0; }
body .pnd-prose a { font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgb(var(--pnd-blue-rgb) / .35); }
body .pnd-prose a:hover { text-decoration-color: currentColor; }
body .pnd-prose ul, body .pnd-prose ol { margin: 0 0 1em; padding: 0; list-style: none; display: grid; gap: 10px; }
body .pnd-prose ul li { position: relative; padding-left: 28px; }
body .pnd-prose ul li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 14px; height: 14px; border-radius: 50%; background: var(--pnd-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23004799' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 9px no-repeat; }
body .pnd-prose ol { counter-reset: pnd; }
body .pnd-prose ol li { position: relative; padding-left: 34px; counter-increment: pnd; }
body .pnd-prose ol li::before { content: counter(pnd); position: absolute; left: 0; top: .1em; width: 24px; height: 24px; border-radius: 50%; background: var(--pnd-blue); color: #fff; display: grid; place-items: center; font-family: var(--pnd-font-head); font-size: .78rem; font-weight: 800; }
body .pnd-prose strong { color: var(--pnd-heading); }
body .pnd-prose--narrow { max-width: 780px; }
body .pnd-prose-block h2.elementor-heading-title { font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
body .pnd-prose-block h3.elementor-heading-title { font-size: 1.25rem; }

/* Split section: prose beside an image or card */
body .pnd-split { align-items: center !important; }
body .pnd-split--top { align-items: start !important; }
body .pnd-media-frame { border-radius: var(--pnd-r-xl); overflow: hidden; box-shadow: var(--pnd-shadow-md); }
body .pnd-media-frame img { width: 100% !important; height: 100% !important; aspect-ratio: 16 / 10.5; object-fit: cover; display: block; }
body .pnd-sticky { position: sticky !important; top: calc(var(--pnd-header-h) + 28px); }

/* ---------- Feature cards (signs, advantages, local factors, problems) ---------- */
body .pnd-feature { position: relative; height: 100%; padding: 24px 22px !important; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); box-shadow: var(--pnd-shadow-sm); }
body .pnd-feature__icon .elementor-icon { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: var(--pnd-tint); }
body .pnd-feature__icon .elementor-icon svg { width: 21px; height: 21px; fill: var(--pnd-blue); }
body .pnd-feature--warn .pnd-feature__icon .elementor-icon { background: var(--pnd-red-tint); }
body .pnd-feature--warn .pnd-feature__icon .elementor-icon svg { fill: var(--pnd-red); }
body .pnd-feature h3.elementor-heading-title { font-size: 1.06rem; line-height: 1.3; color: var(--pnd-heading); }
body .pnd-feature .elementor-widget-text-editor p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--pnd-muted); }
body .pnd-feature .elementor-widget-text-editor p + p { margin-top: 8px; }
body .pnd-feature .elementor-widget-text-editor a { font-weight: 600; }
body .pnd-feature__link { margin-top: auto !important; }
body .pnd-section--wash .pnd-feature { box-shadow: none; }
body .pnd-center-prose { margin-left: auto; margin-right: auto; text-align: center; }
body .pnd-section--tint { background: linear-gradient(180deg, var(--pnd-tint) 0%, #fff 100%); }

/* ---------- Process timeline (variable step count) ---------- */
body .pnd-timeline { list-style: none; margin: 0; padding: 0 !important; counter-reset: pnd-step; }
body .pnd-timeline__step { position: relative; display: grid !important; grid-template-columns: 52px 1fr; column-gap: 20px; padding: 0 0 28px !important; }
body .pnd-timeline__step:last-child { padding-bottom: 0 !important; }
body .pnd-timeline__step::before { content: counter(pnd-step, decimal-leading-zero); counter-increment: pnd-step; grid-row: 1 / span 3; width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--pnd-blue); color: #fff; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.02rem; box-shadow: 0 8px 18px rgb(var(--pnd-blue-rgb) / .25); position: relative; z-index: 1; }
body .pnd-timeline__step::after { content: ""; position: absolute; left: 25px; top: 56px; bottom: 4px; width: 2px; background: linear-gradient(180deg, var(--pnd-tint-2), transparent); }
body .pnd-timeline__step:last-child::after { display: none; }
body .pnd-timeline__step:first-child::before { background: var(--pnd-red); box-shadow: 0 8px 18px rgb(var(--pnd-red-rgb) / .25); }
body .pnd-timeline__step > .elementor-widget { grid-column: 2; min-width: 0; }
body .pnd-timeline__step h3.elementor-heading-title { font-size: 1.12rem; padding-top: 4px; }
body .pnd-timeline__step .elementor-widget-text-editor p { margin: 0; color: var(--pnd-muted); font-size: .97rem; }
body .pnd-timeline__step .elementor-widget-text-editor a { font-weight: 600; }
body .pnd-process__card { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-xl); box-shadow: var(--pnd-shadow-md); padding: 36px !important; }

/* ---------- Related services / link cards (reuse homepage .pnd-problem card) ---------- */
body .pnd-link-card .elementor-widget-text-editor p { font-size: .9rem; }

/* ---------- Service-hub categories ---------- */
body .pnd-cat { scroll-margin-top: calc(var(--pnd-header-h) + 24px); }
body .pnd-cat + .pnd-cat { padding-top: 44px !important; border-top: 1px solid var(--pnd-border); }
body .pnd-cat__head { align-items: flex-end !important; }
body .pnd-cat__icon .elementor-icon { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: var(--pnd-blue); }
body .pnd-cat__icon .elementor-icon svg { width: 24px; height: 24px; fill: #fff; }
body .pnd-cat--emergency .pnd-cat__icon .elementor-icon { background: var(--pnd-red); }
body .pnd-cat__head h2.elementor-heading-title { font-size: clamp(1.5rem, 2.2vw, 2rem); }
body .pnd-cat__head .elementor-widget-text-editor p { margin: 0; color: var(--pnd-muted); }
body .pnd-cat__count .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 700; font-size: .84rem; color: var(--pnd-blue); background: var(--pnd-tint); padding: 6px 12px; border-radius: 999px; white-space: nowrap; }

/* ---------- Emergency callout band (inner pages) ---------- */
body .pnd-callout { position: relative; overflow: hidden; border-radius: var(--pnd-r-xl); padding: 44px 48px !important; background: radial-gradient(520px 360px at 100% 0%, rgb(var(--pnd-sky-rgb) / .28), transparent 65%), var(--pnd-navy); box-shadow: var(--pnd-shadow-lg); }
body .pnd-callout .elementor-widget-text-editor p { color: rgba(255,255,255,.86); margin: 0 0 .8em; }
body .pnd-callout .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body .pnd-callout .elementor-widget-text-editor a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.45); }
body .pnd-callout h2.elementor-heading-title { font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
body .pnd-callout__actions { align-self: center; }

/* Callout title may be a <p> when the source CTA copy had no heading */
body .pnd-callout .pnd-callout__title .elementor-heading-title { font-family: var(--pnd-font-head); font-weight: 800; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; letter-spacing: -.025em; color: #fff; margin: 0; }
/* Answer panel used as the hero media when a page has no suitable photo */
body .pnd-hero__panel--glance { position: relative; z-index: 1; }
body .pnd-hero__panel--glance .pnd-glance { box-shadow: var(--pnd-shadow-lg); }
/* Tables preserved from legacy copy */
body .pnd-table-wrap { overflow-x: auto; margin: 0 0 1.2em; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); -webkit-overflow-scrolling: touch; }
body .pnd-table-wrap table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .93rem; }
body .pnd-table-wrap th, body .pnd-table-wrap td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--pnd-border-soft); }
body .pnd-table-wrap th, body .pnd-table-wrap thead td { background: var(--pnd-tint); color: var(--pnd-heading); font-family: var(--pnd-font-head); font-weight: 700; }
body .pnd-table-wrap tr:last-child td { border-bottom: 0; }
body .pnd-prose h3 { font-family: var(--pnd-font-head); font-weight: 700; font-size: 1.2rem; color: var(--pnd-heading); margin: 1.4em 0 .5em; }
body .pnd-prose h3:first-child { margin-top: 0; }
body .pnd-prose-block + .pnd-prose-block { margin-top: 8px; }

/* ---------- Local relevance ---------- */
body .pnd-section-head h2.elementor-heading-title, body .pnd-callout h2.elementor-heading-title { text-wrap: balance; }
body .pnd-local__card .pnd-area-map__label:not(.pnd-area-map__label--main) { display: none; }
body .pnd-local__card { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); box-shadow: var(--pnd-shadow-md); padding: 26px !important; }
body .pnd-local__card .pnd-area-map { height: 220px; box-shadow: none; }
body .pnd-local__card .elementor-heading-title { font-family: var(--pnd-font-head); }
body .pnd-local__title .elementor-heading-title { font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-muted); }

/* ---------- Areas hub: searchable A–Z list ---------- */
body .pnd-az { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-xl); box-shadow: var(--pnd-shadow-md); overflow: hidden; }
body .pnd-az__bar { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--pnd-border-soft); background: var(--pnd-light); }
body .pnd-az__search { position: relative; flex: 1 1 280px; max-width: 420px; }
body .pnd-az__search input { width: 100%; min-height: 50px; padding: 10px 16px 10px 44px; border: 1px solid var(--pnd-border); border-radius: 999px; background: #fff; font: 500 1rem var(--pnd-font-body); color: var(--pnd-heading); }
body .pnd-az__search input:focus { outline: 3px solid rgb(var(--pnd-blue-rgb) / .25); border-color: var(--pnd-blue); }
body .pnd-az__search svg { position: absolute; left: 16px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); fill: var(--pnd-muted); pointer-events: none; }
body .pnd-az__count { margin: 0; font-size: .9rem; color: var(--pnd-muted); font-weight: 600; }
body .pnd-az__letters { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 24px 0; margin: 0; list-style: none; }
body .pnd-az__letters a { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 6px; border-radius: 8px; border: 1px solid var(--pnd-border); font-family: var(--pnd-font-head); font-weight: 700; font-size: .86rem; color: var(--pnd-blue); text-decoration: none; }
body .pnd-az__letters a:hover { background: var(--pnd-tint); }
body .pnd-az__groups { columns: 4 210px; column-gap: 28px; padding: 18px 24px 26px; }
body .pnd-az__group { break-inside: avoid; margin: 0 0 16px; scroll-margin-top: calc(var(--pnd-header-h) + 24px); }
body .pnd-az__group h3 { margin: 0 0 6px; font-family: var(--pnd-font-head); font-size: 1rem; font-weight: 800; color: var(--pnd-red); }
body .pnd-az__group ul { list-style: none; margin: 0; padding: 0; }
body .pnd-az__group li { padding: 3px 0; font-size: .93rem; color: var(--pnd-text); }
body .pnd-az__group li a { font-weight: 700; }
body .pnd-az__group li a::after { content: " \2192"; }
body .pnd-az__empty { display: none; padding: 0 24px 24px; margin: 0; color: var(--pnd-muted); }
body .pnd-az.is-filtering .pnd-az__letters { display: none; }

/* ---------- Location cards (areas hub) ---------- */
body .pnd-place .pnd-problem__icon .elementor-icon { background: var(--pnd-red-tint); }
body .pnd-place .pnd-problem__icon .elementor-icon svg { fill: var(--pnd-red); }
body .pnd-place--main { background: var(--pnd-blue) !important; border-color: var(--pnd-blue) !important; }
body .pnd-place--main h3.elementor-heading-title, body .pnd-place--main .elementor-widget-text-editor p, body .pnd-place--main .pnd-problem__to .elementor-heading-title { color: #fff !important; }
body .pnd-place--main .pnd-problem__icon .elementor-icon { background: rgba(255,255,255,.14); }
body .pnd-place--main .pnd-problem__icon .elementor-icon svg { fill: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  body .pnd-hero--inner .pnd-float-card--badge { left: 16px; bottom: 16px; }
  body .pnd-callout { padding: 36px !important; }
}
@media (max-width: 1024px) {
  body .pnd-hero--inner .pnd-hero__panel { max-width: 640px; width: 100% !important; margin: 0 auto; }
  body .pnd-area-map--hero { height: 320px; }
  body .pnd-sticky { position: static !important; }
  body .pnd-callout { flex-direction: column !important; align-items: flex-start !important; }
}
@media (max-width: 767px) {
  body .pnd-hero--inner h1.elementor-heading-title { font-size: 1.95rem; }
  body .pnd-hero--inner .pnd-hero__lead p { font-size: 1rem; }
  body .pnd-hero--inner .pnd-hero__frame { aspect-ratio: 16 / 11; }
  body .pnd-hero--inner .pnd-float-card--badge { left: 12px; bottom: 12px; }
  body .pnd-breadcrumbs .rank-math-breadcrumb p { font-size: .8rem; }
  body .pnd-area-map--hero { height: 250px; }
  body .pnd-area-map--hero .pnd-area-map__label:not(.pnd-area-map__label--main) { display: none; }
  body .pnd-jump { padding: 20px !important; }
  body .pnd-glance { padding: 22px !important; }
  body .pnd-facts > div { grid-template-columns: 1fr; gap: 2px; padding: 11px 0; }
  body .pnd-feature { padding: 18px !important; }
  body .pnd-timeline__step { grid-template-columns: 42px 1fr; column-gap: 14px; padding-bottom: 22px !important; }
  body .pnd-timeline__step::before { width: 42px; height: 42px; border-radius: 13px; font-size: .9rem; }
  body .pnd-timeline__step::after { left: 20px; top: 46px; }
  body .pnd-process__card { padding: 22px !important; border-radius: var(--pnd-r-lg); }
  body .pnd-cat + .pnd-cat { padding-top: 32px !important; }
  body .pnd-cat__icon .elementor-icon { width: 46px; height: 46px; border-radius: 13px; }
  body .pnd-callout { padding: 28px 22px !important; border-radius: var(--pnd-r-lg); }
  body .pnd-az__bar { padding: 16px; }
  body .pnd-az__letters { padding: 12px 16px 0; }
  body .pnd-az__groups { columns: 2; column-gap: 18px; padding: 14px 16px 20px; }
  body .pnd-local__card { padding: 20px !important; }
  /* Link cards keep their one-line description on inner pages */
  body .pnd-link-card .elementor-widget-text-editor { display: block; }
  body .pnd-link-card .elementor-widget-text-editor p { font-size: .84rem; }
}
@media (max-width: 420px) {
  body .pnd-az__groups { columns: 1; }
}

/* ---- Phase 5: company / contact / FAQ pages ---- */
/* Title-only feature cards (legacy one-line list items and icon labels) */
body .pnd-feature:not(:has(.elementor-widget-text-editor)) { justify-content: flex-start; }
body .pnd-lead-out { max-width: 760px; }
body .pnd-lead-out p { margin: 0; font-size: 1.0625rem; font-weight: 600; color: var(--pnd-heading); }
/* Staging-only notice: deliberately not part of the public visual language */
body .pnd-staging-note { border: 2px dashed #B7791F; background: #FFF8E6; border-radius: var(--pnd-r-md); padding: 24px 26px; color: #5A3E0A; }
body .pnd-staging-note p { margin: 0 0 10px; }
body .pnd-staging-note ul { margin: 0 0 10px; padding-left: 20px; }
body .pnd-staging-note__flag { display: inline-block; font: 700 12px/1 var(--pnd-font-head); letter-spacing: .08em; text-transform: uppercase;
  background: #B7791F; color: #fff; padding: 6px 10px; border-radius: 999px; }
body .pnd-staging-note__title { font: 800 clamp(18px, 2.2vw, 22px)/1.25 var(--pnd-font-head); letter-spacing: .02em; color: #5A3E0A; }
body .pnd-staging-note--inline { padding: 14px 18px; font-size: .9375rem; }
@media (max-width: 767px) { body .pnd-staging-note { padding: 18px; } }

/* ---- Phase 6: cost guides, legal pages, HTML sitemap ---- */
body .pnd-subhead { margin-top: 8px; }
body .pnd-subhead .elementor-heading-title { font-size: 1.125rem; }
/* Legal / utility hero: compact, no media, no CTAs */
body .pnd-hero--legal { min-height: 0; }
body .pnd-hero--legal::after { display: none; }   /* no decorative map layer behind legal headings */
body .pnd-legal__head { max-width: 900px; }
body .pnd-legal__meta p { margin: 0; color: var(--pnd-muted); font-size: .9375rem; }
/* Legal reading layout */
body .pnd-legal { max-width: 1100px; margin: 0 auto; }
body .pnd-legal--toc { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; align-items: start; }
body .pnd-legal__body { max-width: 760px; font-size: 1.0625rem; line-height: 1.75; color: var(--pnd-text); overflow-wrap: anywhere; }
body .pnd-legal__body h2 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); margin: 2.2em 0 .6em; scroll-margin-top: 140px; }
body .pnd-legal__body h2:first-child { margin-top: 0; }
body .pnd-legal__body h3 { font-size: 1.2rem; margin: 1.6em 0 .5em; }
body .pnd-legal__body h4 { font-size: 1.05rem; margin: 1.4em 0 .4em; }
body .pnd-legal__body p { margin: 0 0 1em; }
body .pnd-legal__body ul { margin: 0 0 1.2em; padding-left: 1.3em; }
body .pnd-legal__body li { margin: 0 0 .5em; }
body .pnd-toc { position: sticky; top: 130px; background: var(--pnd-light); border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); padding: 18px 20px; }
body .pnd-toc summary { font: 700 .8125rem/1.2 var(--pnd-font-head); letter-spacing: .08em; text-transform: uppercase; color: var(--pnd-blue); cursor: pointer; list-style: none; }
body .pnd-toc summary::-webkit-details-marker { display: none; }
body .pnd-toc ol { margin: 12px 0 0; padding-left: 1.2em; font-size: .9375rem; line-height: 1.45; }
body .pnd-toc li { margin: 0 0 8px; }
body .pnd-toc a { color: var(--pnd-heading); text-decoration: none; }
body .pnd-toc a:hover, body .pnd-toc a:focus-visible { color: var(--pnd-blue); text-decoration: underline; }
@media (max-width: 1023px) {
  body .pnd-legal--toc { grid-template-columns: 1fr; gap: 28px; }
  body .pnd-toc { position: static; }
  body .pnd-legal__body h2 { scroll-margin-top: 100px; }
}
/* HTML sitemap directory */
body .pnd-sitemap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
body .pnd-sitemap__group { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); padding: 26px 28px; box-shadow: var(--pnd-shadow-sm); }
body .pnd-sitemap__group--wide { grid-column: 1 / -1; }
body .pnd-sitemap__group h2 { font-size: 1.25rem; margin: 0 0 14px; }
body .pnd-sitemap__group h3 { font-size: 1rem; margin: 18px 0 8px; }
body .pnd-sitemap ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 28px; }
body .pnd-sitemap--single ul, body .pnd-sitemap__group:not(.pnd-sitemap__group--wide) ul { columns: 1; }
body .pnd-sitemap li { break-inside: avoid; margin: 0 0 9px; line-height: 1.4; overflow-wrap: anywhere; }
body .pnd-sitemap a { color: var(--pnd-blue); text-decoration: none; }
body .pnd-sitemap a:hover, body .pnd-sitemap a:focus-visible { text-decoration: underline; }
body .pnd-sitemap details { border-top: 1px solid var(--pnd-border-soft); padding: 12px 0 2px; }
body .pnd-sitemap summary { cursor: pointer; font: 700 1rem/1.3 var(--pnd-font-head); color: var(--pnd-heading); }
body .pnd-sitemap summary span { color: var(--pnd-muted); font-weight: 500; }
body .pnd-sitemap details ul { margin-top: 12px; }
body .pnd-sitemap__more { margin: 6px 0 10px; font-size: .9375rem; }
@media (max-width: 767px) {
  body .pnd-sitemap { grid-template-columns: 1fr; }
  body .pnd-sitemap ul { columns: 1; }
  body .pnd-sitemap__group { padding: 20px; }
}

/* ---- Phase 7: blog index, category archives, article template (PHP-rendered markup, no Elementor wrappers) ---- */
body .pnd-wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--pnd-gutter); padding-right: var(--pnd-gutter); box-sizing: border-box; width: 100%; }
body .pnd-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Compact hero (articles + archives): same background language as the legal/utility hero, no map layer */
body .pnd-ahero { position: relative; overflow: hidden; background: radial-gradient(900px 420px at 88% 0%, rgb(var(--pnd-sky-rgb) / .14), transparent 62%), linear-gradient(180deg, #fff 0%, var(--pnd-tint) 100%); border-bottom: 1px solid var(--pnd-border-soft); }
body .pnd-ahero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgb(var(--pnd-navy-rgb) / .04) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--pnd-navy-rgb) / .04) 1px, transparent 1px); background-size: 44px 44px; -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%); mask-image: linear-gradient(180deg, #000 0%, transparent 85%); }
body .pnd-ahero__inner { position: relative; z-index: 1; padding-top: 32px; padding-bottom: 44px; }
body .pnd-ahero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 18px 0 14px; font-size: .9rem; color: var(--pnd-muted); }
body .pnd-ahero__cat { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; background: #fff; border: 1px solid var(--pnd-border); box-shadow: var(--pnd-shadow-sm); font: 800 .75rem/1 var(--pnd-font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-blue) !important; text-decoration: none; }
body a.pnd-ahero__cat:hover, body a.pnd-ahero__cat:focus-visible { border-color: var(--pnd-sky); }
body .pnd-ahero__title { margin: 0; max-width: 920px; font-family: var(--pnd-font-head); font-weight: 800; font-size: clamp(1.9rem, 3.4vw, 2.85rem); line-height: 1.12; letter-spacing: -.025em; color: var(--pnd-heading); text-wrap: balance; overflow-wrap: anywhere; }
body .pnd-ahero__lead p { margin: 12px 0 0; color: var(--pnd-muted); max-width: 720px; }
/* Article layout: readable column + optional sticky table of contents */
body .pnd-article { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; column-gap: 56px; padding: 40px 0 72px; }
body .pnd-article--toc { grid-template-columns: minmax(0, 760px) 280px; }
body .pnd-article > * { grid-column: 1; min-width: 0; }
body .pnd-article--toc > .pnd-article__aside { grid-column: 2; grid-row: 1 / span 20; }
body .pnd-toc__count { font-weight: 600; letter-spacing: .02em; text-transform: none; color: var(--pnd-muted); }
body .pnd-toc summary::after { content: "+"; float: right; font-size: 1.1rem; line-height: 1; }
body .pnd-toc details[open] summary::after { content: "\2212"; }
body .pnd-article__aside .pnd-toc { position: sticky; top: 130px; max-height: calc(100vh - 160px); overflow: auto; }
body .pnd-article__media { margin: 0 0 32px; border-radius: var(--pnd-r-lg); overflow: hidden; box-shadow: var(--pnd-shadow-md); background: var(--pnd-tint); }
body .pnd-article__media img { display: block; width: 100%; height: auto; }
body .pnd-article__body { font-size: 1.0625rem; line-height: 1.75; color: var(--pnd-text); overflow-wrap: break-word; }
body .pnd-article__body > :first-child { margin-top: 0; }
body .pnd-article__body h2 { font-family: var(--pnd-font-head); font-size: clamp(1.4rem, 2.3vw, 1.75rem); line-height: 1.25; letter-spacing: -.015em; color: var(--pnd-heading); margin: 2em 0 .6em; scroll-margin-top: 140px; text-wrap: balance; }
body .pnd-article__body h3 { font-family: var(--pnd-font-head); font-size: 1.25rem; line-height: 1.3; color: var(--pnd-heading); margin: 1.6em 0 .5em; }
body .pnd-article__body h4 { font-family: var(--pnd-font-head); font-size: 1.08rem; line-height: 1.35; color: var(--pnd-heading); margin: 1.4em 0 .4em; }
body .pnd-article__body p { margin: 0 0 1.1em; }
body .pnd-article__body ul, body .pnd-article__body ol { margin: 0 0 1.3em; padding-left: 1.35em; }
body .pnd-article__body li { margin: 0 0 .55em; }
body .pnd-article__body li > ul, body .pnd-article__body li > ol { margin: .5em 0 0; }
body .pnd-article__body a { color: var(--pnd-blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body .pnd-article__body a:hover, body .pnd-article__body a:focus-visible { color: var(--pnd-navy); text-decoration-thickness: 2px; }
body .pnd-article__body strong { color: var(--pnd-heading); }
body .pnd-article__body img { max-width: 100%; height: auto; border-radius: var(--pnd-r-sm); }
body .pnd-article__body .alignleft { float: left; margin: .35em 1.6em 1em 0; max-width: 45%; }
body .pnd-article__body .alignright { float: right; margin: .35em 0 1em 1.6em; max-width: 45%; }
body .pnd-article__body .aligncenter { display: block; margin: 1.2em auto; }
body .pnd-article__body h2, body .pnd-article__body h3 { clear: both; }
body .pnd-article__body iframe { display: block; max-width: 100%; margin: 1.4em 0; border: 0; border-radius: var(--pnd-r-sm); }
body .pnd-article__body iframe[src*="youtube"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }
body .pnd-article__body figure { margin: 1.6em 0; }
body .pnd-article__body blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--pnd-sky); color: var(--pnd-heading); }
/* Legacy inline styles: keep the content, normalise the type so tables and FAQ blocks match the page */
body .pnd-article__body [style*="font-family"] { font-family: inherit !important; }
body .pnd-article__body [style*="font-size"] { font-size: inherit !important; }
body .pnd-article__body [style*="max-width:900px"], body .pnd-article__body [style*="max-width: 900px"] { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
/* The article's own opening answer (existing "Executive Summary" paragraph), surfaced as a callout: wording unchanged */
body .pnd-article__body .executive-key-takeaways > p:first-child, body .pnd-article__body .executive-key-takeaways > h2:first-child + p, body .pnd-article__body .executive-key-takeaways > .executive-summary { background: var(--pnd-tint); border: 1px solid rgb(var(--pnd-blue-rgb) / .14); border-left: 4px solid var(--pnd-blue); border-radius: var(--pnd-r-md); padding: 20px 24px; font-size: 1.09rem; color: var(--pnd-heading); margin: 0 0 1.4em; }
body .pnd-article__body .executive-key-takeaways > h2:first-child { margin-top: 0; }
/* Tables: scroll inside their own box on small screens */
body .pnd-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.6em 0; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); background: #fff; }
body .pnd-table-wrap:focus-visible { outline: 3px solid var(--pnd-sky); outline-offset: 2px; }
body .pnd-article__body table { width: 100%; min-width: 560px; border-collapse: collapse; margin: 0; font-size: .95rem !important; line-height: 1.5; }
body .pnd-article__body th, body .pnd-article__body td { padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid var(--pnd-border) !important; text-align: left; vertical-align: top; }
body .pnd-article__body thead th, body .pnd-article__body tr:first-child th { background: var(--pnd-tint) !important; color: var(--pnd-heading); font-family: var(--pnd-font-head); font-weight: 700; }
body .pnd-article__body tbody tr:last-child td { border-bottom: 0 !important; }
/* <details> FAQ blocks inside some posts */
body .pnd-article__body details { border: 1px solid var(--pnd-border) !important; border-radius: var(--pnd-r-md) !important; margin: 0 0 10px !important; background: #fff; }
body .pnd-article__body summary { cursor: pointer; padding: 16px 20px !important; background: var(--pnd-light) !important; font-family: var(--pnd-font-head); font-weight: 700; color: var(--pnd-heading); }
body .pnd-article__body details > :not(summary) { padding: 14px 20px !important; }
/* Related service (restrained, one line of copy) */
body .pnd-related-service { margin: 40px 0 0; padding: 22px 24px; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); background: var(--pnd-light); }
body .pnd-related-service__label { margin: 0 0 6px; font: 800 .74rem/1.2 var(--pnd-font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--pnd-muted); }
body .pnd-related-service__name { margin: 0; font: 800 1.2rem/1.3 var(--pnd-font-head); }
body .pnd-related-service__name a { color: var(--pnd-blue); text-decoration: none; }
body .pnd-related-service__name a::after { content: " \2192"; }
body .pnd-related-service__name a:hover, body .pnd-related-service__name a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
body .pnd-related-service__text { margin: 6px 0 0; color: var(--pnd-muted); font-size: .97rem; }
/* Blog listing */
body .pnd-blog-wrap { padding-top: 40px; padding-bottom: 72px; }
body .pnd-blog { display: flex; flex-direction: column; gap: 32px; }
body .pnd-blog__label { margin: 0 0 16px; font: 800 .8rem/1.2 var(--pnd-font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--pnd-blue); display: flex; align-items: center; gap: 10px; }
body .pnd-blog__label::before { content: ""; width: 22px; height: 3px; border-radius: 3px; background: var(--pnd-red); flex: none; }
body .pnd-blog__page > .pnd-post-card--lead { margin-bottom: 24px; }
body .pnd-catnav ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body .pnd-catnav a { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--pnd-border); background: #fff; color: var(--pnd-blue); font: 700 .92rem/1 var(--pnd-font-head); text-decoration: none; transition: border-color .2s, background-color .2s; }
body .pnd-catnav a:hover, body .pnd-catnav a:focus-visible { border-color: var(--pnd-sky); background: var(--pnd-tint); }
body .pnd-catnav a[aria-current="page"] { background: var(--pnd-blue); border-color: var(--pnd-blue); color: #fff; }
body .pnd-post-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
body .pnd-post-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body .pnd-post-card { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); overflow: hidden; box-shadow: var(--pnd-shadow-sm); transition: transform .2s var(--pnd-ease), box-shadow .2s var(--pnd-ease), border-color .2s; }
body .pnd-post-card:hover { transform: translateY(-3px); box-shadow: var(--pnd-shadow-md); border-color: rgb(var(--pnd-sky-rgb) / .5); }
body .pnd-post-card:focus-within { outline: 3px solid var(--pnd-sky); outline-offset: 2px; }
body .pnd-post-card__media { aspect-ratio: 16 / 10; background: var(--pnd-tint); overflow: hidden; flex: none; }
body .pnd-post-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
body .pnd-post-card__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(135deg, var(--pnd-tint), #fff); font: 800 .8rem/1 var(--pnd-font-head); letter-spacing: .14em; text-transform: uppercase; color: rgb(var(--pnd-blue-rgb) / .55); }
body .pnd-post-card__body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; flex: 1 1 auto; }
body .pnd-post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; font-size: .84rem; color: var(--pnd-muted); }
body .pnd-post-card__cat { position: relative; z-index: 2; font: 800 .72rem/1 var(--pnd-font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-red) !important; text-decoration: none; padding: 6px 0; }
body .pnd-post-card__cat:hover, body .pnd-post-card__cat:focus-visible { text-decoration: underline; }
body .pnd-post-card__title { margin: 0; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.08rem; line-height: 1.32; letter-spacing: -.01em; overflow-wrap: anywhere; }
body .pnd-post-card__title a { color: var(--pnd-heading); text-decoration: none; }
body .pnd-post-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
body .pnd-post-card__title a:focus-visible { outline: none; }
body .pnd-post-card:hover .pnd-post-card__title a { color: var(--pnd-blue); }
body .pnd-post-card__excerpt { margin: 0; font-size: .94rem; line-height: 1.6; color: var(--pnd-muted); }
body .pnd-post-card__cta { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; font: 700 .92rem/1.2 var(--pnd-font-head); color: var(--pnd-blue); }
body .pnd-post-card__cta::after { content: "\2192"; transition: transform .2s var(--pnd-ease); }
body .pnd-post-card:hover .pnd-post-card__cta::after { transform: translateX(4px); }
body .pnd-post-card--lead { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
body .pnd-post-card--lead .pnd-post-card__media { aspect-ratio: auto; min-height: 320px; }
body .pnd-post-card--lead .pnd-post-card__body { padding: 32px 36px; justify-content: center; gap: 14px; }
body .pnd-post-card--lead .pnd-post-card__title { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.2; text-wrap: balance; }
body .pnd-post-card--lead .pnd-post-card__excerpt { font-size: 1rem; }
body .pnd-post-card--lead .pnd-post-card__cta { margin-top: 6px; }
/* Pagination */
body .pnd-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
body .pnd-pagination a, body .pnd-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--pnd-border); background: #fff; color: var(--pnd-blue); font: 700 .95rem/1 var(--pnd-font-head); text-decoration: none; box-sizing: border-box; }
body .pnd-pagination a:hover, body .pnd-pagination a:focus-visible { border-color: var(--pnd-sky); background: var(--pnd-tint); }
body .pnd-pagination span[aria-current] { background: var(--pnd-blue); border-color: var(--pnd-blue); color: #fff; }
body .pnd-pagination__gap { color: var(--pnd-muted); padding: 0 2px; }
/* Related articles + CTA band */
body .pnd-related { background: var(--pnd-light); border-top: 1px solid var(--pnd-border-soft); padding: 56px 0 64px; }
body .pnd-related h2 { margin: 0 0 24px; font-family: var(--pnd-font-head); font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: var(--pnd-heading); }
body .pnd-blog-cta { background: var(--pnd-navy); color: rgba(255,255,255,.9); padding: 48px 0; }
body .pnd-blog-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
body .pnd-blog-cta__eyebrow { margin: 0 0 6px; font: 800 .76rem/1.2 var(--pnd-font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--pnd-sky); }
body .pnd-blog-cta h2 { margin: 0 0 6px; color: #fff; font-family: var(--pnd-font-head); font-size: clamp(1.4rem, 2.5vw, 1.95rem); line-height: 1.2; }
body .pnd-blog-cta p { margin: 0; }
body .pnd-blog-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
body .pnd-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border-radius: 999px; font: 700 1rem/1.2 var(--pnd-font-head); text-decoration: none; white-space: nowrap; border: 2px solid transparent; box-sizing: border-box; transition: transform .2s var(--pnd-ease), background-color .2s, border-color .2s; }
body .pnd-pill:hover, body .pnd-pill:focus-visible { transform: translateY(-2px); }
body .pnd-pill--red { background: var(--pnd-red); color: #fff !important; box-shadow: 0 10px 24px rgb(var(--pnd-red-rgb) / .28); }
body .pnd-pill--red:hover, body .pnd-pill--red:focus-visible { background: var(--pnd-red-hover); }
body .pnd-pill--ghost { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.45); }
body .pnd-pill--ghost:hover, body .pnd-pill--ghost:focus-visible { border-color: #fff; background: rgba(255,255,255,.08); }
body .pnd-blog-cta__link { color: #fff !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1199px) {
  body .pnd-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  body .pnd-article, body .pnd-article--toc { grid-template-columns: minmax(0, 760px); }
  body .pnd-article--toc > .pnd-article__aside { grid-column: 1; grid-row: auto; margin: 0 0 28px; }
  body .pnd-article__aside .pnd-toc { position: static; max-height: none; }
  body .pnd-post-card--lead { grid-template-columns: 1fr; }
  body .pnd-post-card--lead .pnd-post-card__media { min-height: 0; aspect-ratio: 16 / 9; }
  body .pnd-post-card--lead .pnd-post-card__body { padding: 24px 26px 26px; }
  body .pnd-post-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body .pnd-ahero__inner { padding-top: 20px; padding-bottom: 32px; }
  body .pnd-article { padding: 24px 0 56px; }
  body .pnd-article__media { margin-bottom: 24px; border-radius: var(--pnd-r-md); }
  body .pnd-article__body { font-size: 1.02rem; line-height: 1.72; }
  body .pnd-article__body h2 { scroll-margin-top: 100px; }
  body .pnd-article__body .alignleft, body .pnd-article__body .alignright { float: none; display: block; margin: 1em auto; max-width: 100%; }
  body .pnd-post-grid, body .pnd-post-grid--3 { grid-template-columns: 1fr; gap: 18px; }
  body .pnd-blog-wrap { padding-top: 28px; padding-bottom: 56px; }
  body .pnd-related { padding: 44px 0 48px; }
  body .pnd-blog-cta { padding: 40px 0; }
  body .pnd-blog-cta__actions { width: 100%; }
  body .pnd-blog-cta__actions .pnd-pill { flex: 1 1 100%; }
}
@media (max-width: 420px) {
  body .pnd-ahero__title { font-size: 1.65rem; line-height: 1.16; }
}

/* ---- Phase 8: 404 page + internal search results (PHP templates, same compact hero as the blog) ---- */
body .pnd-ahero--utility .pnd-ahero__inner { padding-top: 40px; padding-bottom: 48px; }
body .pnd-ahero__search { margin-top: 20px; max-width: 640px; }
body .pnd-util-wrap { padding-top: 40px; padding-bottom: 64px; }
body .pnd-util-heading { margin: 0 0 16px; font-family: var(--pnd-font-head); font-weight: 800; font-size: clamp(1.2rem, 2vw, 1.45rem); color: var(--pnd-heading); }
body .pnd-util-links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
body .pnd-util-links a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px 22px; background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-lg); box-shadow: var(--pnd-shadow-sm); text-decoration: none; box-sizing: border-box; transition: transform .2s var(--pnd-ease), border-color .2s; }
body .pnd-util-links a:hover, body .pnd-util-links a:focus-visible { transform: translateY(-2px); border-color: var(--pnd-sky); }
body .pnd-util-links__name { font: 800 1.05rem/1.25 var(--pnd-font-head); color: var(--pnd-blue); }
body .pnd-util-links__name::after { content: " \2192"; }
body .pnd-util-links__desc { font-size: .92rem; line-height: 1.5; color: var(--pnd-muted); }
body .pnd-util-search { margin-top: 40px; max-width: 640px; }
body .pnd-search { display: flex; gap: 10px; }
body .pnd-search input[type=search] { flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 0 18px; border: 1px solid var(--pnd-border); border-radius: 999px; background: #fff; font-size: 1rem; color: var(--pnd-text); box-sizing: border-box; }
body .pnd-search input[type=search]:focus-visible { outline: 2px solid var(--pnd-sky); outline-offset: 2px; }
body .pnd-search button { flex: none; min-height: 52px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--pnd-blue); color: #fff; font: 700 1rem/1 var(--pnd-font-head); cursor: pointer; }
body .pnd-search button:hover, body .pnd-search button:focus-visible { background: var(--pnd-navy); }
body .pnd-results { list-style: none; margin: 0 0 8px; padding: 0; max-width: 820px; }
body .pnd-result { padding: 22px 0; border-bottom: 1px solid var(--pnd-border-soft); }
body .pnd-result:first-child { padding-top: 0; }
body .pnd-result__type { margin: 0 0 6px; font: 800 .74rem/1.2 var(--pnd-font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--pnd-muted); }
body .pnd-result__title { margin: 0; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.2rem; line-height: 1.3; overflow-wrap: anywhere; }
body .pnd-result__title a { color: var(--pnd-heading); text-decoration: none; }
body .pnd-result__title a:hover, body .pnd-result__title a:focus-visible { color: var(--pnd-blue); text-decoration: underline; text-underline-offset: 3px; }
body .pnd-result__excerpt { margin: 8px 0 0; font-size: .96rem; line-height: 1.6; color: var(--pnd-muted); }
body .pnd-util-empty { margin: 0 0 24px; font-size: 1.05rem; color: var(--pnd-text); max-width: 720px; }
@media (max-width: 1023px) { body .pnd-util-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) {
  body .pnd-util-links { grid-template-columns: 1fr; }
  body .pnd-search { flex-direction: column; }
  body .pnd-search button { width: 100%; }
}

/* Phase 8: area-map image wrapped in <picture> for WebP; keep the img sized by the canvas */
body .pnd-area-map__canvas picture { display: contents; }

/* ---------- Global sticky CTA bar (all viewports; markup: inc/pnd-cta-bar.php) ---------- */
/* One floating bar: navy "Call" + red "Request a Free Estimate". Solid surfaces only (no transparency, no blur, no black).
   --pnd-cta-space is set by the inline script to the bar's real height + offset; the values below are no-JS fallbacks. */
:root { --pnd-cta-space: 104px; }
html { scroll-padding-bottom: var(--pnd-cta-space); }
body #colophon::after { content: ""; display: block; height: var(--pnd-cta-space); background: var(--pnd-navy); }
body .pnd-cta-bar {
  position: fixed; z-index: 120; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateX(-50%);
  box-sizing: border-box; width: min(840px, calc(100% - 32px)); margin: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.14fr); gap: 10px; padding: 10px;
  background: #fff; border: 1px solid #c4d5ec; border-radius: 24px;
  box-shadow: 0 18px 44px rgb(var(--pnd-navy-rgb) / .24), 0 3px 10px rgb(var(--pnd-navy-rgb) / .12);
  animation: pnd-cta-in .5s cubic-bezier(.2, .8, .2, 1) .25s both;
}
@keyframes pnd-cta-in { from { opacity: 0; transform: translate(-50%, 20px); } to { opacity: 1; transform: translate(-50%, 0); } }
body .pnd-cta-bar__btn {
  display: flex; align-items: center; justify-content: center; gap: 12px; box-sizing: border-box; min-width: 0; min-height: 58px; padding: 0 20px 0 10px;
  border-radius: 16px; color: #fff !important; text-decoration: none !important; font-family: var(--pnd-font-head); font-weight: 800; font-size: 1.06rem;
  line-height: 1.15; letter-spacing: 0; text-transform: none; white-space: nowrap;
  box-shadow: 0 2px 0 rgb(var(--pnd-navy-rgb) / .18); transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
body .pnd-cta-bar__btn--call { background-color: var(--pnd-navy); }
body .pnd-cta-bar__btn--call:hover { background-color: var(--pnd-blue); }
body .pnd-cta-bar__btn--estimate { background-color: var(--pnd-red); }
body .pnd-cta-bar__btn--estimate:hover { background-color: #A31526; }
body .pnd-cta-bar__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgb(var(--pnd-navy-rgb) / .26); }
body .pnd-cta-bar__btn:focus-visible { outline: 3px solid var(--pnd-sky); outline-offset: 3px; }
body .pnd-cta-bar__icon { flex: 0 0 auto; display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; transition: transform .18s ease; }
body .pnd-cta-bar__btn--call .pnd-cta-bar__icon { background: var(--pnd-sky); color: #fff; }
body .pnd-cta-bar__btn--estimate .pnd-cta-bar__icon { background: #fff; color: var(--pnd-red); }
body .pnd-cta-bar__icon svg { display: block; width: 17px; height: 17px; fill: currentColor; }
body .pnd-cta-bar__btn:hover .pnd-cta-bar__icon { transform: scale(1.08); }
body .pnd-cta-bar__label { min-width: 0; overflow: hidden; text-overflow: clip; }
body .pnd-cta-bar__l--short { display: none; }

/* Tablet */
@media (max-width: 1023px) {
  body .pnd-cta-bar { width: min(760px, calc(100% - 32px)); gap: 8px; padding: 8px; border-radius: 22px; }
  body .pnd-cta-bar__btn { min-height: 56px; padding: 0 16px 0 8px; gap: 10px; font-size: 1rem; }
}

/* Mobile: the same bar, nearly full width */
@media (max-width: 767px) {
  :root { --pnd-cta-space: 84px; }
  body .pnd-cta-bar { width: calc(100% - 16px); bottom: calc(8px + env(safe-area-inset-bottom)); grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 8px; padding: 7px; border-radius: 20px; }
  body .pnd-cta-bar__btn { min-height: 52px; padding: 0 12px 0 6px; gap: 8px; border-radius: 14px; font-size: clamp(.875rem, 3.9vw, 1rem); }
  body .pnd-cta-bar__icon { width: 30px; height: 30px; }
  body .pnd-cta-bar__icon svg { width: 14px; height: 14px; }
  body .pnd-cta-bar__l--wide { display: none; }
  body .pnd-cta-bar__l--short { display: inline; }
}
@media (max-width: 374px) {
  body .pnd-cta-bar__btn { padding: 0 10px 0 5px; gap: 6px; }
  body .pnd-cta-bar__icon { width: 26px; height: 26px; }
  body .pnd-cta-bar__icon svg { width: 12px; height: 12px; }
}
@media (max-width: 340px) {
  body .pnd-cta-bar__btn { padding: 0 8px; }
  body .pnd-cta-bar__icon { display: none; }
}

/* Short landscape viewports (phones on their side): slimmer bar */
@media (max-height: 500px) and (orientation: landscape) {
  :root { --pnd-cta-space: 64px; }
  body .pnd-cta-bar { bottom: calc(6px + env(safe-area-inset-bottom)); padding: 5px; gap: 6px; border-radius: 16px; width: min(760px, calc(100% - 24px)); }
  body .pnd-cta-bar__btn { min-height: 44px; border-radius: 12px; font-size: .94rem; }
  body .pnd-cta-bar__icon { width: 28px; height: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  body .pnd-cta-bar { animation: none; }
  body .pnd-cta-bar__btn, body .pnd-cta-bar__icon { transition: none; }
  body .pnd-cta-bar__btn:hover, body .pnd-cta-bar__btn:hover .pnd-cta-bar__icon { transform: none; }
}
@media print {
  body .pnd-cta-bar, body #colophon::after { display: none; }
}

/* Sticky article/legal table of contents (desktop): keep its scroll area above the sticky CTA bar */
@media (min-width: 1024px) {
  body .pnd-article__aside .pnd-toc { max-height: calc(100vh - 160px - var(--pnd-cta-space)); }
}

/* ---------- Footer Google Map (global footer 3192; owner-approved GBP embed) ---------- */
/* Desktop (>=1200): sixth grid column on the right. 1025-1199: three columns (map fills the free cell of row 2, as on tablet).
   Mobile: full width, last in the stack (below contact/navigation). Solid edge, no transparency. */
body .pnd-footer__mapcol { min-width: 0; }
body .pnd-footer__map { position: relative; min-width: 0; overflow: hidden; line-height: 0; border-radius: var(--pnd-r-md); border: 1px solid #243F72; background: #0E2B66; }
body .pnd-footer__map iframe { display: block; width: 100%; height: 280px; border: 0; }
@media (min-width: 1025px) and (max-width: 1199px) {
  body .pnd-footer .e-con.e-grid.pnd-footer__grid { --e-con-grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  body .pnd-footer__map iframe { height: 240px; }
}
@media (max-width: 767px) {
  body .pnd-footer__map iframe { height: 220px; }
}
@media (min-width: 1200px) {
  /* six columns: keep the five social icons on one row in the brand column */
  body .pnd-footer .pnd-footer__grid .elementor-widget-social-icons.pnd-footer__social { --grid-column-gap: 6px; }
  body .pnd-footer .pnd-footer__grid .elementor-widget-social-icons.pnd-footer__social .elementor-social-icon { width: 38px; height: 38px; }
  body .pnd-footer .pnd-footer__grid .pnd-footer__links .elementor-icon-list-text { text-wrap: pretty; }
}
@media print {
  body .pnd-footer__mapcol { display: none; }
}

/* ---------- Header fit, 1025-1199px (2026-10-06) ----------
   The desktop header (logo 190 + nav 757 + Call 148 + gaps + side padding) needs ~1183px of layout width; below that
   the Call button was pushed past the right edge. Inside 1025-1199 only:
   - 1120-1199: nav-item padding, row gap, side padding and Call padding scale down fluidly (they equal the normal
     desktop values at 1199px, so there is no jump at 1200);
   - 1025-1119: fixed tighter values plus a slightly smaller menu font.
   Sized so it also fits with a classic (Windows) scrollbar. The Services mega panel is shifted less to the left
   so it stays inside the viewport. >=1200 and <=1024 are unchanged. */
@media (min-width: 1025px) and (max-width: 1199px) {
  body .elementor-3191 .e-con.e-parent.pnd-header { --padding-left: clamp(20px, calc(20px + (100vw - 1120px) * .0506), 24px); --padding-right: clamp(20px, calc(20px + (100vw - 1120px) * .0506), 24px); }
  body .elementor-3191 .e-con.pnd-header__bar { --pnd-hgap: clamp(14px, calc(14px + (100vw - 1120px) * .0759), 20px); --column-gap: var(--pnd-hgap); --gap: 0px var(--pnd-hgap); column-gap: var(--pnd-hgap); }
  body .elementor-3191 .pnd-nav .hfe-nav-menu > .menu-item > a.hfe-menu-item,
  body .elementor-3191 .pnd-nav .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item { padding-left: clamp(7px, calc(7px + (100vw - 1120px) * .0633), 12px); padding-right: clamp(7px, calc(7px + (100vw - 1120px) * .0633), 12px); }
  body .pnd-header .pnd-header__call .elementor-button { padding-left: clamp(20px, calc(20px + (100vw - 1120px) * .0506), 24px); padding-right: clamp(20px, calc(20px + (100vw - 1120px) * .0506), 24px); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services > .sub-menu { transform: translate(-22%, 8px); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services:hover > .sub-menu, body .pnd-nav .hfe-nav-menu > .pnd-mega--services:focus-within > .sub-menu { transform: translate(-22%, 0); }
}
@media (min-width: 1025px) and (max-width: 1119px) {
  body .elementor-3191 .e-con.e-parent.pnd-header { --padding-left: 16px; --padding-right: 16px; }
  body .elementor-3191 .e-con.pnd-header__bar { --pnd-hgap: 12px; }
  body .elementor-3191 .pnd-nav .hfe-nav-menu > .menu-item > a.hfe-menu-item,
  body .elementor-3191 .pnd-nav .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item { padding-left: 5px; padding-right: 5px; }
  body .pnd-nav .hfe-nav-menu > .menu-item > .hfe-menu-item, body .pnd-nav .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > .hfe-menu-item { gap: 4px; font-size: .875rem; }
  body .pnd-header .pnd-header__call .elementor-button { padding-left: 16px; padding-right: 16px; }
}

/* Services mega panel, 1200-1279px (2026-10-06): keep the -22% shift used at 1025-1199 up to 1279px. With a classic
   (Windows) scrollbar the -30% shift opened the panel ~10px past the left edge at 1200px; no position jump at 1200. */
@media (min-width: 1200px) and (max-width: 1279px) {
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services > .sub-menu { transform: translate(-22%, 8px); }
  body .pnd-nav .hfe-nav-menu > .pnd-mega--services:hover > .sub-menu, body .pnd-nav .hfe-nav-menu > .pnd-mega--services:focus-within > .sub-menu { transform: translate(-22%, 0); }
}

/* ---------- Google reviews: Rich Showcase for Google Reviews feed [grw id=3666] (Home #reviews, Reviews #google-reviews) ----------
   Themed only through the plugin's own CSS variables, set on .grw-row inside the widget (the plugin puts its defaults
   inline on .wp-gr), so plugin updates keep working. Google attribution, links and controls are untouched. */
body .pnd-reviews__feed { min-width: 0; }
body .pnd-reviews__feed .wp-gr .grw-row {
  --card-bg: #fff; --card-br: 1px solid; --card-br-color: var(--pnd-border); --card-radius: var(--pnd-r-md);
  --card-shadow: var(--pnd-shadow-sm); --name-color: var(--pnd-blue); --card-color: #222222; --time-color: #555555;
}

/* ---------- Trust strip (shared block 3208): five equal items (2026-10-06) ----------
   Grid columns are fixed by CSS (not by text length). Every item: same padding, icon (44px) top-aligned with the
   title, so all icons and titles sit on one line whatever the description length; descriptions wrap naturally.
   >=1200: 5 x 20% columns, 4 dividers between items. 768-1199: balanced 3 + 2 (row 2 = two halves), dividers
   between items in each row and one rule between the rows. <768: unchanged single column. */
body .pnd-trust .e-con.e-grid.pnd-trust__card { --e-con-grid-template-columns: repeat(5, minmax(0, 1fr)); }
body .pnd-trust__card > .pnd-trust__item { min-width: 0; }
/* outranks the block's own per-widget 'vertical align: middle' rule (.elementor-3208 .elementor-element.elementor-element-<id> ...) */
body .elementor-3208 .elementor-element.pnd-trust__item .elementor-icon-box-wrapper { align-items: flex-start; }
body .pnd-trust__item .elementor-icon-box-content { min-width: 0; }
body .pnd-trust__item .elementor-icon-box-description { text-wrap: pretty; }

@media (min-width: 768px) and (max-width: 1199px) {
  body .pnd-trust .e-con.e-grid.pnd-trust__card { --e-con-grid-template-columns: repeat(6, minmax(0, 1fr)); }
  body .pnd-trust__card > .pnd-trust__item { grid-column: span 2; border-top: 0; }
  body .pnd-trust__card > .pnd-trust__item:nth-child(n+4) { grid-column: span 3; border-top: 1px solid var(--pnd-border-soft); }
  body .pnd-trust .pnd-trust__card > .pnd-trust__item:nth-child(2)::before,
  body .pnd-trust .pnd-trust__card > .pnd-trust__item:nth-child(3)::before,
  body .pnd-trust .pnd-trust__card > .pnd-trust__item:nth-child(5)::before {
    display: block !important; content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 1px; background: var(--pnd-border);
  }
  body .pnd-trust .pnd-trust__card > .pnd-trust__item:nth-child(4)::before { display: none !important; }
}
@media (max-width: 767px) {
  body .pnd-trust .e-con.e-grid.pnd-trust__card { --e-con-grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Desktop dropdown hit areas (2026-10-06) ----------
   1) Mega panels (Services, Resources): the level-3 link lists were forced to visibility:visible, which overrides the
      closed panel's visibility:hidden, so the invisible (opacity 0) lists still caught the pointer and :hover on them
      opened the panel ("ghost card"). They now inherit the panel's visibility: nothing is hoverable while closed.
   2) Hover bridge: the panel-wide ::before strip (as wide as the panel, up to 820px) is replaced by a bridge that exists
      only while the parent item is hovered and is only as wide as that item, covering the 12px gap down to the panel.
   Keyboard (:focus-within) and the panels' 0.2s close delay are unchanged. Tablet/mobile (<=1024) are not affected. */
@media (min-width: 1025px) {
  body .pnd-nav .pnd-mega .sub-menu .sub-menu { visibility: inherit !important; }
  body .pnd-nav .hfe-nav-menu > .menu-item > .sub-menu::before { content: none; }
  body .pnd-nav .hfe-nav-menu > .menu-item-has-children:hover::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
}

/* pnd-lp:start */
/* ---------- Location page template (master: La Mesa 3046; rolled out to Spring Valley 3055, Lemon Grove 3035,
   Casa de Oro 3040, El Cajon 3050) ----------
   Every rule is scoped to .pnd-lp / .pnd-lp-* classes, which exist ONLY on those five pages' own sections. */

/* Section rhythm: one padding scale, alternating white / wash backgrounds (set per section on the page) */
body :is(.elementor-3046, .elementor-3035, .elementor-3040, .elementor-3050, .elementor-3055) .e-con.pnd-lp.pnd-section { --padding-top: 84px; --padding-bottom: 84px; }
body .pnd-lp .pnd-section-head { max-width: 760px; }
body .pnd-lp .pnd-section-head h2.elementor-heading-title,
body .pnd-lp-why h2.elementor-heading-title, body .pnd-lp-choose h2.elementor-heading-title,
body .pnd-lp-local h2.elementor-heading-title, body .pnd-lp-faq h2.elementor-heading-title, body .pnd-lp-cost__extra h2.elementor-heading-title { font-size: clamp(1.75rem, 2.6vw, 2.4rem); line-height: 1.12; text-wrap: balance; }

/* Hero */
body .pnd-lp-hero .pnd-hero__lead p { font-size: 1.05rem; line-height: 1.66; max-width: 34em; }
body .pnd-lp-hero .pnd-hero__copy > .e-con:has(.pnd-btn) { margin-top: 6px; }
body .pnd-lp-hero .pnd-chips { margin-top: 2px; }

/* Services: substantial, equal-height cards */
body .pnd-lp-services .pnd-problem { padding: 26px 24px 22px !important; gap: 12px; border-radius: var(--pnd-r-lg); }
body .pnd-lp-services .pnd-problem h3.elementor-heading-title { font-size: 1.1rem; }
body .pnd-lp-services .pnd-problem .elementor-widget-text-editor p { font-size: .93rem; line-height: 1.55; }
body .pnd-lp-services .pnd-problem__to { padding-top: 14px; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-lp-services .e-con.e-grid { gap: 20px; }

/* Why this service matters: one composition, text left (45%), image right (55%) as a full-height anchor */
body .pnd-lp-why .pnd-lp-why__grid { align-items: center !important; }
body .pnd-lp-why .pnd-lp-why__img img { height: auto !important; aspect-ratio: 4 / 5 !important; object-fit: cover; object-position: 58% 60%; }
body .pnd-lp-why .pnd-lp-points > .pnd-feature { padding: 16px 16px 16px 16px !important; box-shadow: none; gap: 8px; }
body .pnd-lp-why .pnd-lp-points .pnd-feature__icon .elementor-icon { width: 38px; height: 38px; border-radius: 11px; }
body .pnd-lp-why .pnd-lp-points .pnd-feature__icon .elementor-icon svg { width: 18px; height: 18px; }
body .pnd-lp-why .pnd-lp-points h3.elementor-heading-title { font-size: 1rem; }
body .pnd-lp-why .pnd-lp-points .elementor-widget-text-editor p { font-size: .88rem; line-height: 1.5; }
body .pnd-lp-why .pnd-lp-why__after p { font-size: .98rem; color: var(--pnd-muted); }

/* Common problems: calmer, scannable cards */
body .pnd-lp-problems .pnd-feature { padding: 22px 20px !important; gap: 12px; box-shadow: none; }
body .pnd-lp-problems .pnd-feature .elementor-widget-text-editor p { font-size: .92rem; color: var(--pnd-text); }
body .pnd-lp-problems .pnd-feature .elementor-widget-text-editor strong { color: var(--pnd-heading); }
body .pnd-lp-problems .pnd-feature h3.elementor-heading-title { font-size: .98rem; }
body .pnd-lp-problems .pnd-feature__link { padding-top: 12px; border-top: 1px solid var(--pnd-border-soft); }

/* Process: two columns; the intro is top-aligned (sticky on desktop, see the media query below) */
body .pnd-lp-process .pnd-split { align-items: start !important; }
body .pnd-lp-process .pnd-lp-process__support p { color: var(--pnd-muted); }
body .pnd-lp-process .pnd-process__card { padding: 32px 34px !important; }
body .pnd-lp-process .pnd-timeline__step { padding-bottom: 22px !important; }

/* Why choose: intro top-aligned (sticky on desktop, see below), 2x2 cards with equal height */
body .pnd-lp-choose .pnd-split > .e-con:first-child { position: static !important; align-self: start; }
body .pnd-lp-choose .pnd-split { align-items: start !important; }
body .pnd-lp-choose .pnd-fgrid { grid-auto-rows: 1fr; }
body .pnd-lp-choose .pnd-feature { padding: 26px 24px !important; gap: 10px; }

/* Local relevance: readable chunks next to a sticky map card */
body .pnd-lp-local .pnd-split { align-items: start !important; }
body .pnd-lp-local .pnd-prose p:first-child { font-size: 1.08rem; color: var(--pnd-heading); }
body .pnd-lp-local .pnd-prose p + p { padding: 16px 20px; background: #fff; border: 1px solid var(--pnd-border-soft); border-left: 3px solid var(--pnd-sky); border-radius: var(--pnd-r-md); }
body .pnd-lp-local .pnd-local__card { position: sticky; top: calc(var(--pnd-header-h) + 28px); }
body .pnd-lp-local .pnd-local__card .pnd-area-map { height: 260px; }

/* Cost, timeline, what to expect: intro + three informational cards */
body .pnd-lp-cost .pnd-lp-cost__head { margin-bottom: 4px; }
body .pnd-lp-cost .pnd-lp-cost__intro p { font-size: 1.04rem; color: var(--pnd-text); margin: 0 0 .7em; }
body .pnd-lp-cost .pnd-lp-cost__intro p:last-child { margin-bottom: 0; color: var(--pnd-muted); }
body .pnd-lp-cost .pnd-lp-cost__intro a { font-weight: 600; }
body .pnd-lp-cost .pnd-lp-cost__grid { grid-auto-rows: 1fr; }
body .pnd-lp-cost .pnd-lp-info { padding: 26px 24px !important; }
body .pnd-lp-cost .pnd-lp-info .elementor-widget-text-editor p, body .pnd-lp-cost .pnd-lp-info li { font-size: .95rem; line-height: 1.55; color: var(--pnd-text); }
body .pnd-lp-cost .pnd-lp-info ul { margin: 0; }
body .pnd-lp-cost .pnd-lp-cost__after p { font-size: 1rem; color: var(--pnd-text); max-width: 78ch; }
body .pnd-lp-cost .pnd-lp-cost__extra { margin-top: 10px; padding: 34px 36px !important; background: var(--pnd-light); border: 1px solid var(--pnd-border-soft); border-radius: var(--pnd-r-lg); box-shadow: none; max-width: none; }
body .pnd-lp-cost .pnd-lp-cost__extra .elementor-widget-text-editor p { max-width: 78ch; }

/* Request-service callout: calmer measure */
body .pnd-lp-cta .pnd-callout .pnd-grow { max-width: 720px; }
body .pnd-lp-cta .pnd-callout .elementor-widget-text-editor p { font-size: .98rem; line-height: 1.6; }
body .pnd-lp-cta .pnd-callout__actions { align-self: center; }

/* FAQ: 38 / 62 */
body .pnd-lp-faq .pnd-faq__grid { grid-template-columns: minmax(0, .38fr) minmax(0, .62fr) !important; }

/* Sticky intro columns (Process, Why choose): desktop only, and only when the viewport is tall enough that the intro
   always fits between the sticky header and the bottom CTA bar. Sticky is contained by the section's own grid row,
   so it stops at the end of the section. Top = visible sticky header height + 52px (132px at desktop). */
@media (min-width: 1025px) and (min-height: 560px) {
  body .pnd-lp-process .pnd-split > .pnd-lp-process__intro:not(.pnd-lp-sticky--media),
  body .pnd-lp-choose .pnd-split > .e-con:first-child:not(.pnd-lp-sticky--media) { position: sticky !important; top: calc(var(--pnd-header-h) + 52px); align-self: start; }
}
/* An intro column that keeps one of the page's photos (~600px tall) only fits between the header and the CTA bar on tall viewports */
@media (min-width: 1025px) and (min-height: 860px) {
  body .pnd-lp-process .pnd-split > .pnd-lp-process__intro.pnd-lp-sticky--media,
  body .pnd-lp-choose .pnd-split > .e-con:first-child.pnd-lp-sticky--media { position: sticky !important; top: calc(var(--pnd-header-h) + 52px); align-self: start; }
}
@media (min-width: 1025px) {
  /* start level with the first timeline step / first card's content (both cards have ~30px top padding) */
  body .pnd-lp-process .pnd-split > .pnd-lp-process__intro { padding-top: 30px; }
  body .pnd-lp-choose .pnd-split > .e-con:first-child { padding-top: 26px; }
  /* a last card that would sit alone or leave a hole fills the row */
  body .pnd-lp-problems .pnd-fgrid > .pnd-feature:last-child:nth-child(4n+3) { grid-column: span 2; }
  body .pnd-lp-problems .pnd-fgrid > .pnd-feature:last-child:nth-child(4n+1) { grid-column: 1 / -1; }
}
@media (min-width: 768px) {
  body .pnd-lp-why .pnd-lp-points > .pnd-feature:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  body .pnd-lp-problems .pnd-fgrid > .pnd-feature:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
  body .pnd-lp-faq .pnd-faq__grid { grid-template-columns: 1fr !important; }
}
@media (min-width: 900px) and (max-width: 1024px) {
  body .pnd-lp-cost .e-con.e-grid.pnd-lp-cost__grid { --e-con-grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  body :is(.elementor-3046, .elementor-3035, .elementor-3040, .elementor-3050, .elementor-3055) .e-con.pnd-lp.pnd-section { --padding-top: 68px; --padding-bottom: 68px; }
  body .pnd-lp-why .pnd-lp-why__img img { aspect-ratio: 16 / 10 !important; object-position: 50% 50%; }
  body .pnd-lp-local .pnd-local__card { position: static; }
  body .pnd-lp-choose .pnd-fgrid { grid-auto-rows: auto; }
  body .pnd-lp-cost .pnd-lp-cost__grid { grid-auto-rows: auto; }
}
@media (max-width: 767px) {
  body :is(.elementor-3046, .elementor-3035, .elementor-3040, .elementor-3050, .elementor-3055) .e-con.pnd-lp.pnd-section { --padding-top: 54px; --padding-bottom: 54px; }
  body .pnd-lp-services .pnd-problem .elementor-widget-text-editor { display: block; }
  body .pnd-lp-services .pnd-problem { padding: 20px 18px 18px !important; }
  body .pnd-lp-why .pnd-lp-points { grid-template-columns: 1fr !important; }
  body .pnd-lp-local .pnd-prose p + p { padding: 14px 16px; }
  body .pnd-lp-local .pnd-local__card .pnd-area-map { height: 220px; }
  body .pnd-lp-process .pnd-process__card { padding: 22px 18px !important; }
  body .pnd-lp-cost .pnd-lp-cost__extra { padding: 24px 20px !important; }
}
/* pnd-lp:end */

/* pnd-restore:start */
/* Preservation remediation (owner-approved 2026-10-07): production photos restored beside the Common Problems intro
   (11 pages) and the restored legacy copy in the homepage "More about" panel. */
body .pnd-problems-intro { align-items: center !important; }
body .pnd-problems-intro__copy .pnd-section-head { margin-bottom: 0; }
body .pnd-problems-intro__img img { aspect-ratio: 16 / 9; }
@media (max-width: 1024px) {
  body .pnd-problems-intro__media { width: 100%; max-width: 640px; }
}
body .pnd-more__body h3 { font-family: var(--pnd-font-head); font-size: 1.02rem; font-weight: 800; line-height: 1.3; color: var(--pnd-heading); margin: 22px 0 0; }
body .pnd-more__body ul { margin: 12px 0 0; padding-left: 1.15em; }
body .pnd-more__body li { font-size: .95rem; line-height: 1.6; color: var(--pnd-text); margin: 8px 0 0; }
/* pnd-restore:end */

/* pnd-sp:start */
/* ---------- Service-page article rail (pilot 2026-10-07: Water Damage Restoration 822; rolled out to 16 service pages) ----------
   Long-form prose (.pnd-sp-main, max 780px) beside a supporting rail (.pnd-sp-rail): an existing photo on top, then a
   sticky group with the page's own "In this service" navigation ([pnd_sp_toc]) and a small contextual request card.
   Every rule is scoped to .pnd-sp-* classes, which exist only on pages that opted in. */
body .pnd-sp-main, body .pnd-sp-rail { min-width: 0; }
body .pnd-sp-main > .pnd-prose--narrow { max-width: 780px; width: 100%; }
body .pnd-sp-anchor { scroll-margin-top: calc(var(--pnd-header-h) + 32px); }

/* Rail photo: a quieter frame than the full-width media frames (16px radius, small shadow) */
body .pnd-sp-rail__img.pnd-media-frame { border-radius: var(--pnd-r-md); box-shadow: var(--pnd-shadow-sm); }
body .pnd-sp-rail__img.pnd-media-frame img { aspect-ratio: 4 / 3; object-position: 40% 50%; }

/* Cards: white, subtle border, 16px radius, restrained shadow */
body .pnd-sp-toc, body .pnd-sp-cta { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); box-shadow: var(--pnd-shadow-sm); }
body .pnd-sp-toc { padding: 20px 22px 12px; }
body .pnd-sp-card__label, body .pnd-sp-cta__title .elementor-heading-title {
  display: flex; align-items: center; gap: 10px; margin: 0 0 6px;
  font-family: var(--pnd-font-head); font-size: .74rem; font-weight: 800; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; color: var(--pnd-blue);
}
body .pnd-sp-card__label::before, body .pnd-sp-cta__title .elementor-heading-title::before { content: ""; width: 18px; height: 3px; border-radius: 3px; background: var(--pnd-red); flex: none; }
body .pnd-sp-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: pndsp; }
body .pnd-sp-toc li { counter-increment: pndsp; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-sp-toc li:first-child { border-top: 0; }
body .pnd-sp-toc a {
  display: flex; gap: 12px; padding: 11px 0; border-radius: 4px;
  font-family: var(--pnd-font-head); font-size: .95rem; font-weight: 700; line-height: 1.35; color: var(--pnd-heading); text-decoration: none;
  transition: color .2s;
}
body .pnd-sp-toc a::before { content: counter(pndsp, decimal-leading-zero); flex: none; min-width: 1.6em; padding-top: .12em; font-size: .74rem; font-weight: 800; letter-spacing: .04em; color: var(--pnd-muted); }
body .pnd-sp-toc a:hover, body .pnd-sp-toc a:focus-visible { color: var(--pnd-blue); }
body .pnd-sp-toc a[aria-current] { color: var(--pnd-blue); }
body .pnd-sp-toc a[aria-current]::before { color: var(--pnd-red); }

body .pnd-sp-cta { padding: 20px 22px 22px !important; }
body .pnd-sp-cta__text p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--pnd-muted); }
/* Contextual, quieter than the global sticky CTA bar: a soft-blue call button and a plain text link (no red fill) */
body .pnd-sp-cta .pnd-btn .elementor-button { min-height: 44px; padding: 0 16px; font-size: .94rem; box-shadow: none; }
body .pnd-sp-cta__call .elementor-button { --pnd-btn-bg: var(--pnd-tint); --pnd-btn-fg: var(--pnd-blue); width: 100%; border-color: var(--pnd-tint-2); }
body .pnd-sp-cta__call .elementor-button:hover, body .pnd-sp-cta__call .elementor-button:focus { --pnd-btn-bg: var(--pnd-tint-2); --pnd-btn-fg: var(--pnd-navy); }
body .pnd-sp-cta__link .elementor-button { --pnd-btn-bg: transparent; --pnd-btn-fg: var(--pnd-blue); min-height: 0; padding: 4px 2px; border: 0; border-radius: 4px; }
body .pnd-sp-cta__link .elementor-button:hover, body .pnd-sp-cta__link .elementor-button:focus { transform: none; text-decoration: underline; text-underline-offset: 3px; }
body .pnd-sp-cta__link .elementor-button-icon svg { width: 14px; height: 14px; }

/* Long navigation lists (more than 8 H2s): compact rows; inside a sticky group the list scrolls within the viewport room
   that is left under the header offset, above the CTA bar and the request card (when the card is in the same group). */
body .pnd-sp-toc ol { position: relative; }
body .pnd-sp-toc--compact a { padding: 7px 0; font-size: .86rem; gap: 10px; }
body .pnd-sp-toc--compact a::before { font-size: .7rem; }
body .pnd-sp-rail__sticky { --pnd-sp-below: 0px; }
body .pnd-sp-rail__sticky:has(> .pnd-sp-cta) { --pnd-sp-below: 250px; }
body .pnd-sp-rail__sticky .pnd-sp-toc ol { max-height: max(180px, calc(100vh - var(--pnd-header-h) - 52px - var(--pnd-cta-space) - 74px - var(--pnd-sp-below))); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 4px; }

/* "See also" links: 2-3 existing service pages that complement (never repeat) the page's Related Services grid */
body .pnd-sp-links { background: #fff; border: 1px solid var(--pnd-border); border-radius: var(--pnd-r-md); box-shadow: var(--pnd-shadow-sm); padding: 20px 22px 14px !important; }
body .pnd-sp-cta .pnd-sp-links__list { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--pnd-border-soft); }
body .pnd-sp-links__list ul { list-style: none; margin: 6px 0 0; padding: 0; }
body .pnd-sp-links__list li { border-top: 1px solid var(--pnd-border-soft); }
body .pnd-sp-links__list li:first-child { border-top: 0; }
body .pnd-sp-links__list a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; font-family: var(--pnd-font-head); font-size: .93rem; font-weight: 700; color: var(--pnd-heading); text-decoration: none; }
body .pnd-sp-links__list a::after { content: "\2192"; color: var(--pnd-blue); font-weight: 700; transition: transform .2s; }
body .pnd-sp-links__list a:hover, body .pnd-sp-links__list a:focus-visible { color: var(--pnd-blue); }
body .pnd-sp-links__list a:hover::after { transform: translateX(3px); }
body .pnd-sp-links__list p { margin: 0; }
/* Compact static card (short sections): the links run inline under the request link */
body .pnd-sp-links__list--inline ul { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 4px; }
body .pnd-sp-links__list--inline li { border-top: 0; }
body .pnd-sp-links__list--inline a { justify-content: flex-start; gap: 6px; padding: 3px 0; font-size: .9rem; }
/* A rail photo beside a short section uses a wider crop */
body .pnd-sp-rail__img--wide.pnd-media-frame img { aspect-ratio: 16 / 9; }

/* An existing "at a glance" card moved into the rail keeps its own card style, slightly tighter */
body .pnd-sp-rail .pnd-glance { padding: 22px !important; box-shadow: var(--pnd-shadow-sm); border-radius: var(--pnd-r-md); }
body .pnd-sp-rail .pnd-glance__title .elementor-heading-title { font-size: 1.02rem; }
body .pnd-sp-rail .pnd-facts > div { grid-template-columns: 1fr; gap: 2px; padding: 10px 0; }   /* label above value in the narrow rail */
body .pnd-sp-rail .pnd-facts dd { font-size: .92rem; }

/* Desktop: two columns. Prose keeps its 780px measure; the rail takes the rest (min 300px). */
@media (min-width: 1025px) {
  body .e-con.pnd-sp-layout { display: grid !important; grid-template-columns: minmax(0, 780px) minmax(300px, 1fr); column-gap: 40px; align-items: stretch; }
  body .pnd-sp-rail { align-self: stretch; }
}
@media (min-width: 1200px) {
  body .e-con.pnd-sp-layout { column-gap: 52px; }
}
/* Sticky group: below the sticky header (same 132px offset as the location pages), released at the end of the
   article (it is contained by the rail, which is as tall as the article). Never on viewports under 560px tall. */
@media (min-width: 1025px) and (min-height: 560px) {
  body .pnd-sp-rail__sticky { position: sticky !important; top: calc(var(--pnd-header-h) + 52px); }
}
/* Short desktop viewports (e.g. laptops with ~650px of page): where the navigation and the request card share a group,
   only the navigation stays (the global CTA bar covers the request); a request card on its own stays */
@media (min-width: 1025px) and (min-height: 560px) and (max-height: 699px) {
  body .pnd-sp-layout:not(.pnd-sp-layout--static) .pnd-sp-rail__sticky:has(.pnd-sp-toc) > .pnd-sp-cta { display: none !important; }
  body .pnd-sp-layout:not(.pnd-sp-layout--static) .pnd-sp-rail__sticky:has(> .pnd-sp-cta) > .pnd-sp-links { display: none !important; }
  body .pnd-sp-rail__sticky { --pnd-sp-below: 0px !important; }
}
/* Safety net set by the rail scripts: a group taller than the space between header and CTA bar never sticks */
body .pnd-sp-rail__sticky.is-static { position: static !important; }
/* Short sections (General Plumbing, Toilets): a static support column, top-aligned, never sticky */
body .pnd-sp-layout--static .pnd-sp-rail__sticky { position: static !important; }
@media (min-width: 1025px) {
  body .e-con.pnd-sp-layout--static { align-items: start; }
}
/* Tablet / mobile: one column, text first; the photo follows the article. The navigation and the request card are
   desktop-only (the page's own request-service panel comes right after the article). */
@media (max-width: 1024px) {
  body .pnd-sp-rail { max-width: 640px; width: 100%; }
  body .pnd-sp-rail__sticky { display: none !important; }
  body .pnd-sp-rail--desk { display: none !important; }   /* rails that hold only desktop-only modules */
}
/* pnd-sp:end */
