/*
Theme Name: Pest Control Phoenix
Theme URI: https://pestcontrolphoenix.io/
Author: Pest Control Phoenix
Description: Desert-warm theme for Pest Control Phoenix. Fredoka + Nunito Sans, clay and bone palette, rounded card system.
Version: 1.0.3
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pest-control-phoenix
Tags: business, one-column, custom-menu, block-styles, wide-blocks
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root{
  --pcp-bone:#FBF4E9;      --pcp-bone-oklch:oklch(96.96% .0164 79.35);
  --pcp-sand:#F3E5CE;      --pcp-sand-oklch:oklch(92.7% .0341 80.3);
  --pcp-clay:#C4744C;      --pcp-clay-oklch:oklch(63.82% .1148 46.55);
  --pcp-clay-deep:#9A5334; --pcp-clay-deep-oklch:oklch(52.05% .1044 43.53);
  --pcp-paloma:#A9794F;
  --pcp-sun:#E8A24C;       --pcp-sun-oklch:oklch(76.44% .1309 69.05);
  --pcp-sun-soft:#F6CB85;
  --pcp-blush:#F1B49A;
  --pcp-ink:#3B322B;       --pcp-ink-oklch:oklch(32.45% .0177 59.99);
  --pcp-ink-soft:#6E6152;
  --pcp-card:#fff;

  --pcp-wrap:1152px;
  --pcp-gutter:24px;
  --pcp-section-y:56px;
  --pcp-r-card:24px;
  --pcp-r-panel:28px;
  --pcp-r-field:20px;
  --pcp-ring:0 0 0 1px rgba(0,0,0,.05);

  --pcp-display:"Fredoka","Trebuchet MS",system-ui,sans-serif;
  --pcp-body:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@supports (color:oklch(0% 0 0)){
  :root{
    --pcp-bone:var(--pcp-bone-oklch); --pcp-sand:var(--pcp-sand-oklch);
    --pcp-clay:var(--pcp-clay-oklch); --pcp-clay-deep:var(--pcp-clay-deep-oklch);
    --pcp-sun:var(--pcp-sun-oklch);   --pcp-ink:var(--pcp-ink-oklch);
  }
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{
  margin:0;background:var(--pcp-bone);color:var(--pcp-ink);
  font-family:var(--pcp-body);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--pcp-clay-deep);text-decoration:none}
a:hover{color:var(--pcp-clay)}
h1,h2,h3,h4,h5,h6{font-family:var(--pcp-display);color:var(--pcp-ink);margin:0 0 .5em}
h1{font-size:clamp(2.25rem,1.4rem + 3.4vw,3.75rem);line-height:1.02;font-weight:700;letter-spacing:-.025em}
h2{font-size:clamp(1.75rem,1.35rem + 1.6vw,2.25rem);line-height:1.11;font-weight:700;letter-spacing:-.025em}
h3{font-size:1.125rem;line-height:1.35;font-weight:600;letter-spacing:-.01em}
h4{font-size:1rem;font-weight:600}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}
:focus-visible{outline:3px solid var(--pcp-clay);outline-offset:2px;border-radius:6px}
.pcp-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pcp-skip{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;padding:12px 20px;border-radius:0 0 12px 0}
.pcp-skip:focus{left:0}

/* ==========================================================================
   3. Layout
   ========================================================================== */
.pcp-wrap{width:100%;max-width:calc(var(--pcp-wrap) + var(--pcp-gutter) * 2);margin-inline:auto;padding-inline:var(--pcp-gutter)}
.pcp-section{padding-block:var(--pcp-section-y)}
.pcp-section.pcp-alt{background:color-mix(in oklab,var(--pcp-sand) 40%,transparent)}
@supports not (background:color-mix(in oklab,red,blue)){.pcp-section.pcp-alt{background:#F9EFE0}}
.pcp-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}
.pcp-section-head h2{margin:0}
.pcp-eyebrow{font-size:.875rem;color:var(--pcp-ink-soft)}
.pcp-lede{font-size:1.1875rem;line-height:1.65;color:var(--pcp-ink-soft);max-width:100%}

/* Grids */
.pcp-grid{display:grid;gap:16px}
.pcp-grid.pcp-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcp-grid.pcp-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcp-grid.pcp-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pcp-grid.pcp-g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.pcp-grid > *{margin:0!important;max-width:none!important}
@media (max-width:1024px){
  .pcp-grid.pcp-g5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pcp-grid.pcp-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .pcp-grid.pcp-g5,.pcp-grid.pcp-g4,.pcp-grid.pcp-g3,.pcp-grid.pcp-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .pcp-grid.pcp-g5,.pcp-grid.pcp-g4,.pcp-grid.pcp-g3,.pcp-grid.pcp-g2{grid-template-columns:1fr}
}
.pcp-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.pcp-split > *{margin:0!important;max-width:none!important}
@media (max-width:900px){.pcp-split{grid-template-columns:1fr;gap:28px}}

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.pcp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--pcp-display);font-weight:600;font-size:1rem;line-height:1;
  min-height:48px;padding:12px 24px;border-radius:999px;border:0;cursor:pointer;
  text-decoration:none;transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.pcp-btn:active{transform:translateY(1px)}
.pcp-btn--primary{background:var(--pcp-clay);color:#fff}
.pcp-btn--primary:hover{background:var(--pcp-clay-deep);color:#fff}
.pcp-btn--soft{background:var(--pcp-sand);color:var(--pcp-ink)}
.pcp-btn--soft:hover{background:#EBD8BA;color:var(--pcp-ink)}
.pcp-btn--white{background:#fff;color:var(--pcp-clay-deep)}
.pcp-btn--white:hover{background:var(--pcp-bone);color:var(--pcp-clay-deep)}
.pcp-btn--outline{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.75)}
.pcp-btn--outline:hover{background:rgba(255,255,255,.12);color:#fff}
.pcp-btn--sm{min-height:38px;padding:8px 16px;font-size:.875rem}
.pcp-btns{display:flex;flex-wrap:wrap;gap:12px}
.pcp-arrow{font-family:var(--pcp-display);font-weight:600;color:var(--pcp-clay-deep);display:inline-block}
.pcp-arrow:hover{color:var(--pcp-clay)}

/* ==========================================================================
   5. Header
   ========================================================================== */
.pcp-header{
  position:sticky;top:0;z-index:100;
  background:color-mix(in oklab,var(--pcp-bone) 90%,transparent);
  -webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid color-mix(in oklab,var(--pcp-sand) 70%,transparent);
}
@supports not (background:color-mix(in oklab,red,blue)){.pcp-header{background:#FBF4E9;border-bottom-color:#EEDFC4}}
.admin-bar .pcp-header{top:32px}
@media screen and (max-width:782px){.admin-bar .pcp-header{top:46px}}
.pcp-header__inner{display:flex;align-items:center;gap:20px;min-height:61px}
.pcp-brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--pcp-display);font-weight:600;font-size:1.125rem;color:var(--pcp-ink);letter-spacing:-.01em;flex:0 0 auto}
.pcp-brand:hover{color:var(--pcp-ink)}
.pcp-brand__mark{width:32px;height:32px;border-radius:999px;background:var(--pcp-sun);color:#fff;display:grid;place-items:center;font-size:1rem;line-height:1;flex:0 0 auto}
.pcp-brand img{max-height:38px;width:auto}
.pcp-nav{margin-left:auto}
.pcp-nav ul{list-style:none;display:flex;align-items:center;gap:22px;margin:0;padding:0}
.pcp-nav a{font-family:var(--pcp-display);font-weight:500;font-size:.9375rem;color:var(--pcp-ink)}
.pcp-nav a:hover,.pcp-nav .current-menu-item > a,.pcp-nav .current_page_item > a{color:var(--pcp-clay)}
.pcp-header__cta{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.pcp-phonechip{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;background:var(--pcp-sand);color:var(--pcp-ink);font-family:var(--pcp-display);font-weight:600;font-size:.875rem;white-space:nowrap}
.pcp-phonechip:hover{background:#EBD8BA;color:var(--pcp-ink)}
.pcp-burger{display:none;width:42px;height:42px;border:0;border-radius:12px;background:var(--pcp-sand);cursor:pointer;padding:0;align-items:center;justify-content:center}
.pcp-burger span{display:block;width:18px;height:2px;background:var(--pcp-ink);border-radius:2px;position:relative}
.pcp-burger span::before,.pcp-burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--pcp-ink);border-radius:2px}
.pcp-burger span::before{top:-6px}.pcp-burger span::after{top:6px}
@media (max-width:1080px){
  .pcp-nav{position:fixed;inset:61px 0 auto;background:var(--pcp-bone);border-bottom:1px solid #EEDFC4;padding:8px 0 20px;display:none}
  .admin-bar .pcp-nav{top:93px}
  .pcp-nav.is-open{display:block}
  .pcp-nav ul{flex-direction:column;align-items:stretch;gap:0;padding-inline:var(--pcp-gutter)}
  .pcp-nav li{border-bottom:1px solid color-mix(in oklab,var(--pcp-sand) 70%,transparent)}
  .pcp-nav a{display:block;padding:14px 2px;font-size:1rem}
  .pcp-burger{display:inline-flex;margin-left:auto}
  .pcp-header__cta .pcp-btn,.pcp-phonechip{display:none}
}

/* ==========================================================================
   6. Hero
   ========================================================================== */
.pcp-hero{padding-block:40px 56px}
.pcp-hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:start}
.pcp-hero__grid > *{margin:0!important;max-width:none!important}
@media (max-width:980px){.pcp-hero__grid{grid-template-columns:1fr;gap:32px}}
.pcp-badge{
  display:inline-block;padding:7px 16px;border-radius:999px;
  background:color-mix(in oklab,var(--pcp-blush) 45%,transparent);
  color:var(--pcp-clay-deep);font-family:var(--pcp-display);font-weight:600;
  font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:20px;
}
@supports not (background:color-mix(in oklab,red,blue)){.pcp-badge{background:#F9DDD0}}
.pcp-hero h1{margin:0 0 20px}
.pcp-hero__sub{font-size:1.0625rem;line-height:1.6;color:var(--pcp-ink-soft);max-width:52ch;margin-bottom:28px}
.pcp-trust{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.pcp-trust__item{background:var(--pcp-sand);border-radius:16px;padding:12px 18px;min-width:118px}
.pcp-trust__item strong{display:block;font-family:var(--pcp-display);font-weight:600;font-size:.875rem;color:var(--pcp-ink)}
.pcp-trust__item span{display:block;font-size:.8125rem;color:var(--pcp-ink-soft);margin-top:2px}

/* ==========================================================================
   7. Cards
   ========================================================================== */
.pcp-card{background:var(--pcp-card);border-radius:var(--pcp-r-card);padding:20px;display:block;color:inherit}
a.pcp-card{transition:transform .18s ease,box-shadow .18s ease}
a.pcp-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(59,50,43,.28);color:inherit}
.pcp-card h3{margin:0 0 4px}
.pcp-card p{font-size:.875rem;color:var(--pcp-ink-soft);margin:0}
.pcp-chip{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;font-family:var(--pcp-display);font-weight:600;font-size:.9375rem;color:var(--pcp-clay-deep);background:var(--pcp-sun-soft);margin-bottom:14px}
.pcp-chip--blush{background:var(--pcp-blush)}
.pcp-chip--sand{background:var(--pcp-sand)}
.pcp-risk{font-family:var(--pcp-display);font-weight:600;font-size:.6875rem;letter-spacing:.09em;text-transform:uppercase;color:var(--pcp-clay);display:block;margin-bottom:8px}
.pcp-step__n{font-family:var(--pcp-display);font-weight:700;font-size:1.75rem;line-height:1;color:var(--pcp-sun);display:block;margin-bottom:20px}
.pcp-stars{color:var(--pcp-sun);font-size:1.125rem;letter-spacing:2px;margin-bottom:12px}
.pcp-quote{font-size:.9375rem;line-height:1.6;color:var(--pcp-ink);margin:0 0 14px}
.pcp-cite{font-family:var(--pcp-display);font-weight:600;font-size:.8125rem;color:var(--pcp-ink);font-style:normal}

/* Why-us list */
.pcp-why{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px}
.pcp-why > *{margin:0!important;max-width:none!important}
@media (max-width:560px){.pcp-why{grid-template-columns:1fr}}
.pcp-why__item{position:relative;padding-left:20px}
.pcp-why__item::before{content:"";position:absolute;left:0;top:7px;width:9px;height:9px;border-radius:999px;background:var(--pcp-clay)}
.pcp-why__item:nth-child(even)::before{background:var(--pcp-sun)}
.pcp-why__item strong{display:block;font-family:var(--pcp-display);font-weight:600;font-size:.9375rem;margin-bottom:3px}
.pcp-why__item span{font-size:.875rem;color:var(--pcp-ink-soft)}
.pcp-round{border-radius:var(--pcp-r-panel);overflow:hidden}
.pcp-round img{width:100%;height:100%;object-fit:cover}

/* City list */
.pcp-cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;list-style:none;margin:0;padding:0}
.pcp-cities a{font-size:.9375rem;color:var(--pcp-ink)}
.pcp-cities a:hover{color:var(--pcp-clay)}
@media (max-width:640px){.pcp-cities{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Post / blog cards */
.pcp-post{background:#fff;border-radius:var(--pcp-r-card);overflow:hidden;display:flex;flex-direction:column}
.pcp-post__media{aspect-ratio:16/10;background:var(--pcp-sand)}
.pcp-post__media img{width:100%;height:100%;object-fit:cover}
.pcp-post__body{padding:18px 20px 22px}
.pcp-post__cat{font-family:var(--pcp-display);font-weight:600;font-size:.6875rem;letter-spacing:.09em;text-transform:uppercase;color:var(--pcp-clay);display:block;margin-bottom:8px}
.pcp-post h3{margin:0 0 6px}
.pcp-post p{font-size:.875rem;color:var(--pcp-ink-soft);margin:0 0 14px}
.pcp-topics{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.pcp-topics li{background:var(--pcp-sand);border-radius:999px;padding:8px 16px;font-size:.875rem;color:var(--pcp-ink)}

/* ==========================================================================
   8. FAQ
   ========================================================================== */
.pcp-faq{max-width:720px;margin-inline:auto;display:grid;gap:12px}
.pcp-faq > *{margin:0!important;max-width:none!important}
.pcp-faq details{background:#fff;border-radius:999px;padding:0;overflow:hidden;transition:border-radius .2s ease}
.pcp-faq details[open]{border-radius:var(--pcp-r-card)}
.pcp-faq summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 26px;font-family:var(--pcp-display);font-weight:600;font-size:1rem;color:var(--pcp-ink);
}
.pcp-faq summary::-webkit-details-marker{display:none}
.pcp-faq summary::after{content:"+";font-family:var(--pcp-display);font-weight:400;font-size:1.375rem;color:var(--pcp-ink-soft);line-height:1;transition:transform .2s ease}
.pcp-faq details[open] summary::after{transform:rotate(45deg)}
.pcp-faq .pcp-faq__a,.pcp-faq details > *:not(summary){padding:0 26px 22px;font-size:.9375rem;line-height:1.65;color:var(--pcp-ink-soft);margin:0}
.pcp-faq h2,.pcp-faq h3{padding:0}

/* ==========================================================================
   9. Quote form
   ========================================================================== */
.pcp-quote-card{background:#fff;border-radius:var(--pcp-r-panel);padding:24px;box-shadow:var(--pcp-ring)}
.pcp-quote-card h2,.pcp-quote-card h3{font-size:1.5rem;line-height:1.33;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}
.pcp-quote-card__sub{font-size:.9375rem;color:var(--pcp-ink-soft);margin:0 0 20px}
.pcp-field{display:block;margin-bottom:12px}
.pcp-field input,.pcp-field select,.pcp-field textarea{
  width:100%;height:44px;border:0;border-radius:var(--pcp-r-field);background:var(--pcp-bone);
  padding:12px 16px;font-family:var(--pcp-body);font-size:.875rem;color:var(--pcp-ink);appearance:none;
}
.pcp-field textarea{height:auto;min-height:96px;resize:vertical}
.pcp-field input::placeholder,.pcp-field textarea::placeholder{color:var(--pcp-ink-soft);opacity:.85}
.pcp-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236E6152' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;padding-right:40px;
}
.pcp-submit{width:100%;height:52px;border:0;border-radius:var(--pcp-r-field);background:var(--pcp-sun);color:#fff;font-family:var(--pcp-display);font-weight:600;font-size:1rem;cursor:pointer;transition:filter .18s ease}
.pcp-submit:hover{filter:brightness(.95)}
.pcp-fineprint{font-size:.75rem;color:var(--pcp-ink-soft);text-align:center;margin:12px 0 0}
.pcp-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.pcp-notice{border-radius:16px;padding:14px 18px;font-size:.9375rem;margin-bottom:16px}
.pcp-notice--ok{background:color-mix(in oklab,var(--pcp-sun-soft) 60%,transparent);color:var(--pcp-clay-deep)}
.pcp-notice--err{background:#FBE3DC;color:#93341C}

/* ==========================================================================
   10. Contact / info panels
   ========================================================================== */
.pcp-infogrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 40px}
.pcp-infogrid > *{margin:0!important;max-width:none!important}
@media (max-width:560px){.pcp-infogrid{grid-template-columns:1fr}}
.pcp-infogrid strong,.pcp-info__label{display:block;font-family:var(--pcp-display);font-weight:600;font-size:.8125rem;color:var(--pcp-ink);margin-bottom:5px}
.pcp-infogrid span,.pcp-infogrid p{font-size:.9375rem;color:var(--pcp-ink-soft);margin:0}
.pcp-infogrid .pcp-tel{font-family:var(--pcp-display);font-weight:700;font-size:1.25rem;color:var(--pcp-clay)}
.pcp-panel{background:var(--pcp-sand);border-radius:var(--pcp-r-panel);padding:32px}
.pcp-panel h2,.pcp-panel h3{margin-top:0}

/* ==========================================================================
   11. CTA band
   ========================================================================== */
.pcp-cta{background:var(--pcp-clay);color:#fff;border-radius:var(--pcp-r-panel);padding:40px;text-align:center}
.pcp-cta h2{color:#fff;margin:0 0 12px}
.pcp-cta p{color:rgba(255,255,255,.9);font-size:1.0625rem;max-width:46ch;margin:0 auto 26px}
.pcp-cta .pcp-btns{justify-content:center}
.pcp-cta__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px;text-align:left;max-width:760px;margin-inline:auto}
.pcp-cta__meta > *{margin:0!important;max-width:none!important}
.pcp-cta__meta strong{display:block;font-family:var(--pcp-display);font-weight:600;font-size:.8125rem;color:#fff;margin-bottom:4px}
.pcp-cta__meta span,.pcp-cta__meta a{font-size:.9375rem;color:rgba(255,255,255,.9)}
@media (max-width:640px){.pcp-cta{padding:32px 22px}.pcp-cta__meta{grid-template-columns:1fr;text-align:center}}

/* ==========================================================================
   12. Footer + mobile bar
   ========================================================================== */
.pcp-footer{background:var(--pcp-ink);color:color-mix(in oklab,var(--pcp-bone) 70%,transparent);padding:40px 0 44px;margin-top:56px}
@supports not (color:color-mix(in oklab,red,blue)){.pcp-footer{color:#CFC4B5}}
.pcp-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pcp-footer__brand{font-family:var(--pcp-display);font-weight:600;font-size:1.0625rem;color:#fff}
.pcp-footer nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0;flex-wrap:wrap}
.pcp-footer a{color:color-mix(in oklab,var(--pcp-bone) 70%,transparent);font-size:.9375rem}
.pcp-footer a:hover{color:#fff}
.pcp-footer__legal{font-size:.8125rem}
@media (max-width:760px){.pcp-footer__inner{flex-direction:column;align-items:flex-start}}
.pcp-mobilebar{display:none}
@media (max-width:760px){
  .pcp-mobilebar{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:120;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:color-mix(in oklab,var(--pcp-bone) 94%,transparent);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-top:1px solid #EEDFC4;
  }
  .pcp-mobilebar .pcp-btn{width:100%;min-height:44px;font-size:.9375rem}
  body{padding-bottom:74px}
}

/* ==========================================================================
   13. Editor / core block bridging
   ========================================================================== */
.entry-content > .pcp-section,
.entry-content > .pcp-hero{margin-block:0}
.wp-block-group.pcp-section{padding-block:var(--pcp-section-y)}
.wp-block-image{margin:0}
.wp-block-buttons{gap:12px}
.pcp-prose{max-width:100%}
.pcp-prose h2{margin-top:2rem}
.pcp-prose h3{margin-top:1.5rem}
.pcp-prose ul,.pcp-prose ol{padding-left:1.25rem}
.pcp-prose li{margin-bottom:.4rem}
.pcp-center{text-align:center}
.pcp-mt0{margin-top:0!important}
.pcp-mb24{margin-bottom:24px!important}
.pcp-mb32{margin-bottom:32px!important}

/* ==========================================================================
   14. Bridge: WordPress group blocks wrap children in an inner container
   ========================================================================== */
.pcp-hero__grid > .wp-block-group__inner-container,
.pcp-split > .wp-block-group__inner-container,
.pcp-grid > .wp-block-group__inner-container,
.pcp-why > .wp-block-group__inner-container,
.pcp-faq > .wp-block-group__inner-container,
.pcp-infogrid > .wp-block-group__inner-container,
.pcp-cta__meta > .wp-block-group__inner-container{display:contents}

.pcp-hero__grid > .wp-block-group__inner-container > *,
.pcp-split > .wp-block-group__inner-container > *,
.pcp-grid > .wp-block-group__inner-container > *,
.pcp-why > .wp-block-group__inner-container > *,
.pcp-faq > .wp-block-group__inner-container > *,
.pcp-infogrid > .wp-block-group__inner-container > *,
.pcp-cta__meta > .wp-block-group__inner-container > *{margin:0!important;max-width:none!important}

/* Group children inside a split/hero column keep normal flow spacing */
.pcp-split > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > * + *,
.pcp-hero__grid > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > * + *{margin-block-start:16px}

.pcp-hero__grid > .wp-block-group__inner-container > .wp-block-group,
.pcp-split > .wp-block-group__inner-container > .wp-block-group{min-width:0}

/* Section rhythm */
.entry-content > .pcp-section + .pcp-section{margin-top:0}
.wp-block-image.pcp-round{border-radius:var(--pcp-r-panel);overflow:hidden}
.wp-block-image.pcp-round img{width:100%;border-radius:var(--pcp-r-panel)}

/* ==========================================================================
   15. Article typography
   ========================================================================== */
.pcp-post h3 a{color:var(--pcp-ink)}
.pcp-post h3 a:hover{color:var(--pcp-clay)}
.pcp-prose h2{margin-top:2.25rem;margin-bottom:.6rem}
.pcp-prose h3{margin-top:1.75rem;margin-bottom:.4rem;font-size:1.25rem}
.pcp-prose p{margin-bottom:1.1rem;font-size:1.125rem;line-height:1.7;color:var(--pcp-ink-soft)}
.pcp-prose p:first-of-type{font-size:1.1875rem;color:var(--pcp-ink)}
.pcp-prose ul,.pcp-prose ol{margin:0 0 1.1rem;color:var(--pcp-ink-soft);font-size:1.125rem;line-height:1.7}
.pcp-prose a{text-decoration:underline;text-underline-offset:3px}
.pcp-prose blockquote{margin:1.5rem 0;padding:18px 24px;background:var(--pcp-sand);border-radius:var(--pcp-r-card)}
.pcp-prose blockquote p{margin:0;color:var(--pcp-ink)}
.pcp-prose figure{margin:1.5rem 0}
.pcp-prose figure img{border-radius:var(--pcp-r-card)}
.pcp-prose figcaption{font-size:.8125rem;color:var(--pcp-ink-soft);margin-top:8px}
.pcp-prose{max-width:100%;margin-bottom:8px}
.single .pcp-round img{aspect-ratio:16/10;object-fit:cover}
.wp-block-post-date,.single .pcp-post__cat{letter-spacing:.09em}
.pcp-pagination,.wp-block-query-pagination,.navigation.pagination{display:flex;gap:10px;flex-wrap:wrap}
.navigation.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border-radius:999px;background:#fff;color:var(--pcp-ink);font-family:var(--pcp-display);font-weight:600;font-size:.875rem}
.navigation.pagination .page-numbers.current{background:var(--pcp-clay);color:#fff}
.navigation.pagination .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------------------------------------------------------------
 * Content images - added 5 Sep 2026
 * Core block CSS renders images at their natural width, which left a
 * 1200px photo and an 800px square both sitting flush left and far too
 * tall. Constrain, centre and round them to match the card styling.
 * ------------------------------------------------------------ */
.pcp-section .wp-block-image{margin:34px 0}
.pcp-section .wp-block-image img{width:100%;height:auto;display:block;border-radius:14px}
.pcp-section .wp-block-image figcaption{margin-top:10px;font-size:.92rem;line-height:1.55;color:#7a6f64}
.pcp-section .wp-block-image.pcp-img--square{max-width:460px}
@media (max-width:640px){.pcp-section .wp-block-image{margin:24px 0}}

/* ---------------------------------------------------------------
 * Hero with a photograph behind it - added 5 Sep 2026
 * The image URL comes in as --pcp-hero-img on the block itself, so any
 * page can have one without new CSS. A warm scrim keeps the headline
 * readable over any photo; it is angled so the left side (where the
 * text sits) is darkest and the right stays lighter behind the form.
 * ------------------------------------------------------------ */
.pcp-hero--photo{position:relative;background-image:var(--pcp-hero-img);background-size:cover;background-position:var(--pcp-hero-pos,center 28%);padding-block:64px 72px;min-height:440px;display:flex;align-items:center}
.pcp-hero--photo::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,rgba(38,30,23,.92) 0%,rgba(38,30,23,.80) 38%,rgba(38,30,23,.46) 70%,rgba(38,30,23,.32) 100%)}
.pcp-hero--photo>*{position:relative;z-index:1;width:100%}
.pcp-hero--photo h1{color:#fff}
.pcp-hero--photo .pcp-hero__sub{color:rgba(255,255,255,.90)}
.pcp-hero--photo .pcp-badge{background:rgba(255,255,255,.18);color:#fff}
.pcp-hero--photo .pcp-btn--soft{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.38)}
.pcp-hero--photo .pcp-btn--soft:hover{background:rgba(255,255,255,.26);color:#fff}
@media (max-width:900px){.pcp-hero--photo{padding-block:44px 52px}.pcp-hero--photo::before{background:linear-gradient(180deg,rgba(38,30,23,.90) 0%,rgba(38,30,23,.82) 55%,rgba(38,30,23,.74) 100%)}}

/* ---------------------------------------------------------------
 * Card thumbnails - added 5 Sep 2026
 * For the pest identification cards. Full-bleed across the top of the
 * card, square because that is what identification needs and what the
 * photo brief asks suppliers for. A card with no image is untouched, so
 * the section degrades cleanly while photos are still being collected.
 * ------------------------------------------------------------ */
.pcp-card__img{display:block;width:calc(100% + 40px);margin:-20px -20px 16px;aspect-ratio:1/1;object-fit:cover;border-radius:var(--pcp-r-card) var(--pcp-r-card) 0 0;background:var(--pcp-sand)}
.pcp-card__cap{display:block;margin:-8px 0 10px;font-size:.75rem;letter-spacing:.02em;text-transform:uppercase;color:var(--pcp-clay-deep);font-family:var(--pcp-display);font-weight:600}
@media (max-width:900px){.pcp-card__img{aspect-ratio:4/3}}

/* A species grid where only some cards have their photo yet: let each card
 * size to its own content instead of stretching to the tallest in the row,
 * so a card still waiting for a photo reads as short, not half empty. */
/* Every card in a photo grid now has an image, so the cards stretch to a
 * common height again and each row reads as one block. */
.pcp-grid:has(.pcp-card__img){align-items:stretch}

/* Body prose measure and size. The old 70ch cap resolved to 672px - only 56% of
 * the 1152px wrap - so every text section showed a visibly empty right half.
 * Note that ch is misleading here: 70ch was already about 95 characters a line,
 * not 70. Widened to 48.75rem (780px, ~68% of the wrap) and the type stepped up
 * from 16px to 18px with a 1.7 line-height, which keeps the line at roughly the
 * same character count while filling far more of the column. Removing the cap
 * altogether puts it back to ~160 characters, which is why it is capped at all.
 * Updated 5 Oct 2026. Then uncapped to 100% the same day at Hina's request,
 * matching how Prime Van Rentals was set: the empty right-hand column is gone
 * and the line now runs the full 1152px, roughly 130 characters. The 18px size
 * and 1.7 line-height stay because they are what make a measure this wide
 * readable at all. Narrow it again by putting a rem value back here. */
.pcp-section .pcp-wrap > p:not(.pcp-lede),
.pcp-section .pcp-wrap > .wp-block-group__inner-container > p:not(.pcp-lede){
  max-width:100%;font-size:1.125rem;line-height:1.7}

/* Card bodies are all trimmed to five lines or fewer, so reserving five lines
 * makes every species card exactly the same height instead of each grid row
 * sizing to its own tallest card. Only above the single-column breakpoint. */
@media (min-width:521px){
  .pcp-grid:has(.pcp-card__img) .pcp-card p{min-height:105px;min-height:5lh}
}

/* Jump index for long reference pages. Most people arrive wanting one pest, so
 * the length only matters if they cannot skip straight to it. html already
 * carries scroll-behavior:smooth and scroll-padding-top:84px for the sticky header. */
.pcp-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;padding:0;list-style:none}
.pcp-jump a{display:inline-block;padding:8px 15px;border-radius:999px;background:var(--pcp-card);border:1px solid rgba(154,83,52,.22);font-family:var(--pcp-display);font-size:.86rem;font-weight:600;line-height:1.2;color:var(--pcp-ink);text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.pcp-jump a:hover,.pcp-jump a:focus-visible{background:var(--pcp-sand);border-color:var(--pcp-clay-deep);color:var(--pcp-clay-deep)}
@media (max-width:520px){.pcp-jump a{font-size:.8rem;padding:7px 12px}}

/* Smooth scrolling crawls over the distances on a page this long - the index
 * to "Big but harmless" is about 16,000px - so on any page carrying a jump
 * index the anchors land instantly, which is what a contents list should do. */
html:has(.pcp-jump){scroll-behavior:auto}

/* ---- Media row: image left, copy right. Replaces the old full-width image + caption. ---- */
.pcp-section .pcp-media > .wp-block-group__inner-container,
.pcp-section .pcp-media:not(:has(> .wp-block-group__inner-container)){
  display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);
  gap:38px;align-items:center;margin:38px 0}
.pcp-section .pcp-media .wp-block-image{margin:0}
.pcp-section .pcp-media .wp-block-image img{width:100%;height:auto;max-height:360px;object-fit:cover;display:block;border-radius:14px}
.pcp-section .pcp-media .wp-block-image figcaption{margin-top:10px;font-size:.86rem;line-height:1.5;color:#7a6f64}
.pcp-section .pcp-media p{max-width:none;font-size:1.125rem;line-height:1.7}
.pcp-section .pcp-media p:last-child{margin-bottom:0}
@media (max-width:820px){
  .pcp-section .pcp-media .wp-block-image img{max-height:260px}
  .pcp-section .pcp-media > .wp-block-group__inner-container,
  .pcp-section .pcp-media:not(:has(> .wp-block-group__inner-container)){
    grid-template-columns:1fr;gap:20px;margin:28px 0}
}

/* Landscape card-top images, for card grids where every card carries a photo
 * (the KY-KO pattern). Sits alongside the square .pcp-card__img used on
 * /pest-types/, which stays 1/1. Added 9 Sep 2026. */
.pcp-card__img--wide{aspect-ratio:3/2}

/* Media row inside blog posts (.pcp-prose). Same image-left / copy-right
 * pattern as the pages, sized for the narrower 72ch post column. Added 15 Sep 2026. */
.pcp-prose .pcp-media > .wp-block-group__inner-container,
.pcp-prose .pcp-media:not(:has(> .wp-block-group__inner-container)){
  display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);
  gap:28px;align-items:center;margin:28px 0}
.pcp-prose .pcp-media .wp-block-image{margin:0}
.pcp-prose .pcp-media .wp-block-image img{width:100%;height:auto;max-height:300px;object-fit:cover;display:block;border-radius:14px}
.pcp-prose .pcp-media .wp-block-image figcaption{margin-top:10px;font-size:.8125rem;line-height:1.5;color:#7a6f64}
.pcp-prose .pcp-media p:first-of-type{font-size:1.0625rem;color:var(--pcp-ink-soft)}
.pcp-prose .pcp-media p:last-child{margin-bottom:0}
@media (max-width:820px){
  .pcp-prose .pcp-media .wp-block-image img{max-height:260px}
  .pcp-prose .pcp-media > .wp-block-group__inner-container,
  .pcp-prose .pcp-media:not(:has(> .wp-block-group__inner-container)){grid-template-columns:1fr;gap:16px}
}

/* ---- Full footer: every page linked, in columns. Added 19 Sep 2026. ---- */
.pcp-footer{padding:56px 0 28px}
.pcp-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px 28px;align-items:start}
.pcp-footer__col{min-width:0}
.pcp-footer__about p{margin:14px 0 0;font-size:.9375rem;line-height:1.6;max-width:34ch}
.pcp-footer__addr{white-space:pre-line}
.pcp-footer__h{display:block;font-family:var(--pcp-display);font-weight:600;font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;color:var(--pcp-clay);margin-bottom:14px}
.pcp-footer__grid nav ul{display:block;list-style:none;margin:0;padding:0}
.pcp-footer__grid li{margin:0 0 9px;line-height:1.4}
.pcp-footer__hours{margin:14px 0 0;font-size:.875rem}
.pcp-footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
@media (max-width:1080px){.pcp-footer__grid{grid-template-columns:1fr 1fr 1fr;gap:34px 24px}.pcp-footer__about{grid-column:1 / -1}}
@media (max-width:700px){.pcp-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.pcp-footer__grid{grid-template-columns:1fr;gap:28px}.pcp-footer__bottom{flex-direction:column;align-items:flex-start}}


/* Post featured image. It was rendering the full 1152px column directly under
 * the title, which made it the loudest thing on the page and pushed the opening
 * copy below the fold. Floated right out of its own wrapper so the prose that
 * follows wraps up the left-hand side; the wrapper's own margin goes to 0 so the
 * image top lines up with the first paragraph. Stacks back to full width under
 * 720px. Its width is calc((100% - 48px) * .425), which is exactly the width of
 * the quote card in the hero - the .85fr column of .pcp-hero__grid, less its share
 * of the 48px gap - so image and form line up at every viewport. Scoped to .single,
 * so the .pcp-mb32 on /contact/ is untouched.
 * Added 5 Oct 2026. */
.single .pcp-wrap.pcp-mb32{margin-bottom:0!important}
.single .pcp-wrap.pcp-mb32 .pcp-round{float:right;width:calc((100% - 48px) * .425);margin:0 0 20px 34px}
.single .pcp-wrap.pcp-mb32 .pcp-round img{aspect-ratio:16/10}
@media (max-width:720px){
  .single .pcp-wrap.pcp-mb32{margin-bottom:28px!important}
  .single .pcp-wrap.pcp-mb32 .pcp-round{float:none;width:100%;max-width:none;margin:0}
}


/* Justified body copy. Hina asked for straight right-hand edges on every page.
 * hyphens:auto is not optional here - without it a justified 1152px line opens
 * visible word gaps, and it is what keeps the narrow 327px mobile column even
 * too. Relies on <html lang="en-US">, which WordPress emits. Deliberately NOT
 * applied to .pcp-card or .pcp-faq: those columns are too narrow to justify
 * without gapping. Added 5 Oct 2026. */
.pcp-section .pcp-wrap > p:not(.pcp-lede),
.pcp-section .pcp-wrap > .wp-block-group__inner-container > p:not(.pcp-lede),
.pcp-section .pcp-media p,
.pcp-lede,
.pcp-prose p,
.pcp-prose li{text-align:justify;-webkit-hyphens:auto;hyphens:auto}
