/*

=============================================================

  PEST ME OFF - GLOBAL CSS

  Paste into: WP Code plugin as a CSS snippet

  Version: V130 | 2026-10-14 CST | the old teal colour, and its faint see-through backgrounds, are now the site link blue 1f78d1 (T85). V129 2026-05-16 00:00 CST

  Covers all service pages, the About page, the Services hub page,

  the Homepage widget, all City Page widgets, the Pest Library hub,

  the Pricing page, the site Footer (V76+), blog post layout (V108+),

  Pest Articles hub (V118+), and City Gallery hub (V118+).

  Do NOT add page-specific CSS here except About page, Services hub,

  Homepage widget, Pest Library hub, and Pricing page classes.

  NEVER remove, rename, or change any existing CSS class or property.

  Only add new classes.



  V101 | 2026-05-10 22:00

  Full-bleed extended to .hero-bar pages (Services, Contact, Pricing).

  Added :has(.hero-bar) selectors alongside existing :has(.hero) rules so

  pages using the compact hero-bar header also get GP article padding removed.



  V99 | 2026-05-11 10:00

  faq-phone hover: added .faq-phone:hover rule (color:#fff, text-decoration:none)

  to prevent WP/GP theme overriding link hover color to blue on dark CTA box.

  pmo-dude background changed from #0e2c49 to transparent so hero gradient

  shows through the div, reducing visible box around tech image.

  Hero button phone SVG: size guidance updated (see Homepage-PMO.html V9).



  V90 | 2026-05-10 12:30

  Second pass dead code removal: city-grid/city-card old aliases removed

  (widgets use -v2 variants), faq-btn/faq-answer/faq-cta-box dead aliases

  removed, fb-desc/about-city-chip/sec-flush-bottom removed, peak-notice

  block removed, form-col-label/form-col-sub removed (forms are GHL),

  pl-dim removed, rq-grid-3 removed, entry-content .cite removed,

  species-thumb/species-name-text/sci removed, species-cell-text removed,

  minor-pest-axes + sec-list full blocks removed (LBA/Pavement Ant already

  use a different architecture), diy-ok-pill removed, conf-label removed,

  chart-img-sm/chart-stat-rail/chart-caption/pull-stat-muted/diagram-fig-sm

  removed, collapsed risk axis color variants removed.



  V89 | 2026-05-10 12:00

  Deep CSS audit: cross-referenced all 907 CSS classes against all 57

  widget HTML files. Removed all dead code confirmed unused in any widget:

  preview HTML nav chrome (topbar/nav/hamburger/mobile-menu),

  dev-label and dev-block sections, mobile-cta-bar block (PL pages use

  msc- prefix), reviews/picture placeholder blocks, all HTML form field

  classes (forms are GHL iframes - ff, ff-row, form-btn, form-note etc.),

  lform-title/sub, old About page hero classes (about-hero-inner/sub/ctas,

  about-trust-bar, trust-pill, bio-conf-badge), old CP-specific classes

  (cp-cta-banner, cp-faq-*, cp-svc-*, cp-btn-*), old outbound-links /

  related-resources section, old diy-fail list architecture (diy-fail,

  diy-fail-intro, diy-fail-subhead, diy-fail-list - widgets now use

  diy-fail-card/grid/head pattern), old treatment-grid/treatment-card

  (renamed to treatment-protocol-grid), egg-cycle-box/ec-* (old

  cockroach pattern), footer-tagline/footer-top-strip neutralize rules,

  img-pending placeholder, reviews-footer-note.

  btn-white-outline kept (used in About widget).



  V88 | 2026-05-10 10:54

  CSS audit: Elementor is fully removed from the site. Three dead

  selector blocks removed: V9 Elementor structural overrides

  (.elementor-section, .elementor-container, .elementor-column,

  .elementor-column-wrap), V58 Flexbox Container overrides (.e-con,

  .e-con-inner), and V60 header/footer e-con fix. Footer H4 margin

  rule re-scoped from .elementor-location-footer to bare footer.footer.

  Comment references to Elementor widget filenames updated.

  guides/Guide-ElementorJSON-PMO.md deleted (Elementor gone).



  V87 | 2026-05-10 10:21

  Phone icon nudge increased: .ico svg margin-top 2px -> 4px,

  .msc-ico svg margin-top 1px -> 3px. Icon was still sitting too high

  relative to button text vertical center.



  V86 | 2026-05-10 10:17

  Full-bleed for PL species pages: .grid-container, #primary, .content-area

  expanded to 100vw on pages containing .bc-wrap. Dark sections (hero,

  breadcrumb, risk banners, bottom CTA) now reach browser edges on desktop

  and mobile. Inner .wrap handles 1100px content constraint per section.

  SVG phone icon alignment: switched .ico/.msc-ico from inline-flex to flex

  with align-self:center + margin-top:2px on SVG for true vertical center.



  V85 | 2026-05-10 09:30

  SVG phone icon vertical alignment fix. .ico and .msc-ico use

  display:inline-flex + align-items:center so the SVG sits centered

  on the text baseline in btn-call and mobile sticky CTA.



  V84 | 2026-05-10 08:45

  Hide GP post title on PL species pages (.inside-article:has(.bc-wrap) .entry-header).

  The hero section serves as the page title - GP's auto-rendered .entry-title

  was appearing above the dark breadcrumb section as a redundant float.



  V83 | May 2026

  Non-Elementor architecture retrofit. All CSS that was scoped under

  .elementor-widget-html is now scoped under .entry-content, which is

  the GeneratePress post content wrapper when Elementor is not present.

  Removed the Elementor widget structural reset block (width/padding/margin

  overrides on .elementor-widget-container) - not needed without Elementor.

  Added .inside-article:has(.bc-wrap) { padding: 0 !important; } so PL

  species pages (identified by .bc-wrap breadcrumb) can render full-bleed

  dark sections (hero, risk banners, bottom CTA) edge-to-edge without GP

  article padding fighting them. Each section controls its own padding.



  V82 | May 2026

  Footer column alignment fix: all 5 column H4 headings now share

  the same top y-coordinate at desktop width. Brand column content

  (NAP, hours, social icons) is taller than the 4 link columns,

  creating an optical impression of misalignment even though the

  H4 tops align. Fix: footer-grid switches from align-items:start

  to align-items:stretch so all 5 columns fill the same height,

  then each footer-col uses display:flex / flex-direction:column

  so the H4 stays at the very top of every column regardless of

  content height.

  Also: footer V76-V81 addition blocks consolidated into one clean

  block. All redundant override layers removed. Settled rules only.

  Header comment trimmed to last 3 versions.



  V81 | May 2026

  Footer grid ratio fix: brand column reduced from 2fr to 1.4fr

  so the 4 link columns get more horizontal room. align-items:start

  added so all 5 columns top-align. H4 line-height and margin

  normalized across all 5 columns.



  V80 | May 2026

  Footer V5 polish: Yelp icon normalized to match other socials

  (white-ish letter Y, no special red). .footer-social-letter class

  added for letter-form glyphs. .footer-bom-pill SVG icon spacing

  rule added. Brand column tagline display:none defense-in-depth.

=============================================================

*/



/* ── DESIGN TOKENS ─────────────────────────────────────────

   Single source of truth for all brand colors and values.

   Change one value here and it updates everywhere.

──────────────────────────────────────────────────────────── */

:root {

  --blue:       #1f78d1;

  --blue-d:     #1d6a8a;

  --blue-l:     #4FA8CC;

  --blue-pale:  #E0EAF2;

  --navy:       #0D2137;

  --yellow:     #F5A623;

  --yellow-d:   #D4861A;

  --text:       #1A2A3A;

  --muted:      #5A7A8A;

  --border:     #C8DDE8;

}





/* ── BASE RESET ────────────────────────────────────────────

   Applied globally.

──────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

img { max-width: 100%; height: auto; display: block; }

a { text-decoration: none; color: inherit; }





/* ── LAYOUT ────────────────────────────────────────────────*/

.wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }





/* ── TYPOGRAPHY ────────────────────────────────────────────*/

.eyebrow {

  font-size: 13px; font-weight: 700; letter-spacing: .2em;
 color: var(--blue);

  display: block; margin-bottom: 10px;

}

.eyebrow-center { text-align: center; }



/* ── PAGE TITLE BAR SUBTITLE ────────────────────────────────── */

/* Muted subtitle line below H1 in .page-title-bar sections     */

.page-title-sub {

  color: rgba(255,255,255,.65);

  font-size: 15px;

  margin-top: 6px;

}



/* ── SEC-H2-CENTER (base class) ─────────────────────────────── */

.sec-h2-center { text-align: center; }



/* ── SEC MAP CAPTION ────────────────────────────────────────── */

/* Centered muted paragraph above map embeds in sec-navy blocks  */

.sec-map-caption {

  text-align: center;

  color: rgba(255,255,255,.65);

  font-size: 14px;

  margin-bottom: 28px;

}





/* ── BUTTONS ───────────────────────────────────────────────*/

.btn {

  display: inline-flex; align-items: center; justify-content: center; gap: 8px;

  padding: 14px 26px; border-radius: 8px; font-weight: 700; font-size: 15px;

  transition: all .2s; cursor: pointer; border: none;

  font-family: "Plus Jakarta Sans", sans-serif;

  line-height: 1; white-space: nowrap; min-height: 50px;

}

@media(max-width:480px) { .btn { white-space: normal; text-align: center; line-height: 1.3; } }

.btn-amber { background: var(--yellow); color: var(--navy); }

.btn-amber:hover { background: var(--yellow-d); transform: translateY(-1px); }





/* ── HERO ───────────────────────────────────────────────────*/

.hero { background: linear-gradient(160deg, var(--navy) 0%, #0e2d4a 60%, #0a2035 100%); padding: 52px 20px 48px; position: relative; overflow: hidden; }

.hero::after { content: ""; position: absolute; top: -100px; right: -100px; width: 500px; height: 500px; background: radial-gradient(circle, rgba(31,120,209,.14) 0%, transparent 65%); pointer-events: none; }



.hero h1 { font-family: "Bebas Neue", sans-serif; font-size: clamp(38px,7vw,60px); line-height: .95; letter-spacing: .5px; color: #fff; margin-bottom: 16px; }

.hero h1 em { color: var(--yellow); font-style: normal; }

.hero-sub { color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.75; margin-bottom: 22px; max-width: 540px; }

.hero-cta-row { display: grid; grid-template-columns: auto 200px; gap: 20px; align-items: start; margin-top: 20px; }

@media(max-width:859px) { .hero-cta-row { display: block; } .pmo-dude { display: none; } }







/* ── TRUST BAR ──────────────────────────────────────────────*/

.tbar { background: var(--blue); display: flex; justify-content: center; flex-wrap: wrap; }

.tbar-item { padding: 14px 20px; display: flex; align-items: center; gap: 8px; color: #fff; font-size: 12px; font-weight: 700; border-right: 1px solid rgba(255,255,255,.2); }

.tbar-item:last-child { border-right: none; }

.tbar-item span { font-size: 18px; }

@media(max-width:640px) { .tbar { flex-direction: column; } .tbar-item { width: 100%; border-right: none !important; border-bottom: 1px solid rgba(255,255,255,.15); padding: 10px 20px; } .tbar-item:last-child { border-bottom: none; } }





/* ── PAGE SECTIONS ──────────────────────────────────────────*/

.sec      { padding: 56px 0; }

.sec-alt  { background: #f8fbfd; padding: 56px 0; }

.sec-pale { background: var(--blue-pale); padding: 56px 0; }





/* ── BREADCRUMB ─────────────────────────────────────────────*/

.breadcrumb { background: var(--blue-pale); padding: 10px 20px; border-bottom: 1px solid var(--border); }

.breadcrumb-inner { max-width: 1140px; margin: 0 auto; font-size: 12px; color: var(--muted); }

.breadcrumb-inner a { color: var(--blue); font-weight: 600; }

.breadcrumb-inner span { margin: 0 5px; opacity: .5; }





.aka { font-size: 11px; color: var(--blue); font-style: italic; margin-bottom: 6px; }











/* ── STAT RAIL ──────────────────────────────────────────────*/

.stat-rail { display: grid; grid-template-columns: 1fr; gap: 0; border: 1.5px solid var(--border); border-radius: 12px; overflow: hidden; margin: 24px 0; }

@media(min-width:600px) { .stat-rail { grid-template-columns: repeat(3,1fr); } }



.stat-num { font-family: "Bebas Neue", sans-serif; font-size: clamp(30px,4vw,42px); color: var(--blue); letter-spacing: .5px; line-height: 1; display: block; margin-bottom: 4px; }

.stat-num.amber { color: var(--yellow-d); }

.stat-num.navy  { color: var(--navy); }







@keyframes blink { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.5; transform:scale(.8); } }





/* ── CTA BANNER (Seasonal / Urgency) ───────────────────────*/

.seasonal-cta { background: linear-gradient(135deg, var(--navy) 0%, #0e2d4a 60%, #0a2035 100%); padding: 56px 20px; position: relative; overflow: hidden; }

.seasonal-cta::before { content: ""; position: absolute; top: -80px; right: -80px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(31,120,209,.18) 0%, transparent 65%); pointer-events: none; }

.seasonal-cta-inner { max-width: 800px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }

.seasonal-cta h2 { font-family: "Bebas Neue", sans-serif; font-size: clamp(30px,6vw,52px); color: #fff; letter-spacing: 1px; line-height: 1.05; margin-bottom: 10px; }

.seasonal-cta h2 em { color: var(--yellow); font-style: normal; }

/* Scoped override - beats base .entry-content h2 color:var(--text)!important

   Specificity (0,2,1) with !important wins over (0,1,1) with !important on the reset rule.

   Also restores the larger CTA font-size that sec-h2-white would reduce. */

.entry-content .seasonal-cta h2 { color: #fff !important; font-size: clamp(30px,6vw,52px) !important; letter-spacing: 1px !important; line-height: 1.05 !important; margin-bottom: 10px !important; }

.seasonal-cta .hook { font-size: 15px; color: rgba(255,255,255,.7); line-height: 1.7; margin-bottom: 28px; max-width: 560px; margin-left: auto; margin-right: auto; }

.seasonal-cta .cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 20px; }

.trust-micro { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }

.trust-micro span { font-size: 12px; color: rgba(255,255,255,.45); display: flex; align-items: center; gap: 5px; }

.trust-micro span::before { content: "✓"; color: var(--blue-l); font-weight: 700; }





/* ── ALL SERVICES GRID ──────────────────────────────────────*/

.svc-link-grid { display: grid; grid-template-columns: 1fr; gap: 8px; max-width: 1140px; margin: 0 auto; }

@media(min-width:400px) { .svc-link-grid { grid-template-columns: repeat(2,1fr); } }

@media(min-width:600px) { .svc-link-grid { grid-template-columns: repeat(3,1fr); } }

@media(min-width:900px) { .svc-link-grid { grid-template-columns: repeat(4,1fr); } }

.svc-link { display: flex; align-items: center; gap: 6px; background: #fff; border: 1.5px solid var(--border); border-radius: 8px; padding: 9px 10px; font-size: 12px!important; font-weight: 600; color: var(--text); transition: all .15s; text-decoration: none; min-width: 0; overflow: hidden; word-break: break-word; }

@media(min-width:600px) { .svc-link { font-size: 13px; padding: 11px 14px; gap: 8px; } }

.svc-link:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-pale); }

.svc-img { width: 30px; }









/* ── FAQ ────────────────────────────────────────────────────*/

.faq-layout { display: grid; grid-template-columns: 1fr; gap: 36px; max-width: 1140px; margin: 0 auto; overflow: hidden; }

@media(min-width:860px) { .faq-layout { grid-template-columns: 1fr 340px; overflow: visible; } }

.faq-list { display: flex; flex-direction: column; gap: 0; max-width: 100%; overflow: hidden; }

.faq-item { border-bottom: 1.5px solid var(--border); }

.faq-item:first-child { border-top: 1.5px solid var(--border); }

.faq-q { width: 100%; text-align: left; background: none; border: none; padding: 16px 0; font-family: "Plus Jakarta Sans", sans-serif; font-size: 15px; font-weight: 700; color: var(--navy) !important; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; line-height: 1.4; -webkit-tap-highlight-color: transparent !important; outline: none; white-space: normal; overflow-wrap: break-word; word-break: break-word; min-width: 0; -webkit-appearance: none; appearance: none; }

.faq-q:hover,

.faq-q:active,

.faq-q:focus,

.faq-q:focus-visible,

.faq-item .faq-q:hover,

.faq-item .faq-q:active,

.faq-item .faq-q:focus,

button.faq-q:hover, button.faq-q:active, button.faq-q:focus { background: transparent !important; background-color: transparent !important; outline: none !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent !important; border-color: transparent !important; }

.faq-q span { flex: 1; min-width: 0; white-space: normal; overflow-wrap: break-word; word-break: break-word; }

.faq-q::after { content: "+"; font-size: 24px; color: var(--blue); flex-shrink: 0; transition: transform .2s; font-weight: 300; line-height: 1; }

.faq-item.open .faq-q::after { transform: rotate(45deg); }

.faq-a { display: none !important; padding: 0 0 16px; font-size: 14px; color: var(--text); line-height: 1.75; overflow-wrap: break-word; word-break: break-word; }

.faq-a.open, .faq-item.open .faq-a { display: block !important; }

.faq-a a { color: var(--blue); text-decoration: underline; }

.faq-sidebar { position: sticky; top: 76px; display: flex; flex-direction: column; gap: 12px; max-width: 100%; overflow: hidden; }

.faq-sidebar > * { max-width: 100%; box-sizing: border-box; overflow: hidden; }

.faq-cta { background: var(--navy); border-radius: 12px; padding: 22px; color: #fff; text-align: center; }

.faq-cta h3 { font-family: "Bebas Neue", sans-serif; font-size: 24px; color: var(--yellow); margin-bottom: 7px; letter-spacing: .5px; }

.faq-cta p { font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.7; margin-bottom: 14px; }

.faq-phone { font-family: "Bebas Neue", sans-serif; font-size: 28px; color: #fff; letter-spacing: 1px; display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 11px; text-decoration: none; }

.faq-phone:hover { color: #fff; text-decoration: none; }

.btn-white-outline { display: inline-flex; align-items: center; justify-content: center; padding: 14px 26px; border-radius: 8px; font-weight: 700; font-size: 15px; font-family: "Plus Jakarta Sans", sans-serif; background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.45); min-height: 50px; line-height: 1; white-space: nowrap; transition: all .2s; cursor: pointer; }

.btn-white-outline:hover { border-color: #fff; background: rgba(255,255,255,.08); }





/* GP full-bleed: PMO-deployed pages use .hero or .hero-bar at the top.

   Remove .inside-article padding so dark sections can bleed edge-to-edge.

   Each section controls its own horizontal padding. */

.inside-article:has(.hero), .inside-article:has(.hero-bar) { padding: 0 !important; }

/* Hide GP page title on all PMO-deployed pages */

.inside-article:has(.hero) .entry-header, .inside-article:has(.hero-bar) .entry-header { display: none; }

/* Full-bleed: expand GP layout containers to viewport width on all PMO-deployed pages.

   Inner .wrap class constrains content per section. */

.grid-container:has(.hero), .grid-container:has(.hero-bar) { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }

#primary:has(.hero), .content-area:has(.hero), #primary:has(.hero-bar), .content-area:has(.hero-bar) { width: 100% !important; max-width: 100% !important; padding: 0 !important; }



/* Hero grid */

.hero { width: 100%; }







/* All services grid */

.svc-link-grid { display: grid !important; }



/* Two-col prose */





/* Hero CTA row */

@media(min-width:860px) { .hero-cta-row { display: grid !important; grid-template-columns: auto 200px !important; align-items: start !important; } }



/* RID grid */





/* FAQ layout */

@media(min-width:860px) { .faq-layout { display: grid !important; grid-template-columns: 1fr 340px !important; gap: 36px; overflow: visible; } }



/* Stat rail */

@media(min-width:600px) { .stat-rail { display: grid !important; grid-template-columns: repeat(3,1fr) !important; } }



/* About page grids */









/* Local knowledge grid (homepage) */

.local-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }

@media(max-width:860px) { .local-grid { grid-template-columns: 1fr; gap: 28px; } }

@media(min-width:860px) { .local-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; } }



/* Service area two-column layout (city pages) */







/* ══════════════════════════════════════════════════════════════

   NEW IN V35: ALL INLINE STYLES ELIMINATED FROM WIDGET FILES

   ══════════════════════════════════════════════════════════════ */



/* ── ENTRY CONTENT H2 BASE RESET ──────────────────────────── */

.entry-content h2 {

  font-family: "Bebas Neue", sans-serif !important;

  font-size: clamp(28px,4.5vw,42px) !important;

  letter-spacing: .5px !important;

  line-height: 1.1 !important;

  color: var(--text) !important;

  margin-bottom: 20px;

}



/* ── SECTION HEADINGS ──────────────────────────────────────── */

.entry-content .sec-h2 { font-family: "Bebas Neue", sans-serif !important; font-size: clamp(28px,4.5vw,42px) !important; letter-spacing: .5px; line-height: 1.1; color: var(--text); margin-bottom: 20px; }

.entry-content:has(.bc-wrap) .sec-h2 { text-align: center; }

.entry-content .sec-h2-sm { font-family: "Bebas Neue", sans-serif !important; font-size: clamp(24px,4vw,36px) !important; letter-spacing: .5px; line-height: 1.1; color: var(--text); margin-bottom: 20px; }

.entry-content .sec-h2-white { font-family: "Bebas Neue", sans-serif !important; font-size: clamp(28px,4.5vw,42px) !important; letter-spacing: .5px; line-height: 1.1; color: #fff !important; margin-bottom: 10px; }

.entry-content .sec-h2-tight { margin-bottom: 8px !important; }

.entry-content .sec-h2-center { text-align: center !important; }



/* ── WRAP WIDTH MODIFIERS ───────────────────────────────────── */

.wrap-sm { max-width: 900px; }

.wrap-md { max-width: 1000px; }



/* ── SECTION CONTENT ───────────────────────────────────────── */

.open-p { font-size: 15px; line-height: 1.85; color: var(--text); margin-bottom: 16px; }

.open-p:last-child { margin-bottom: 0; }

.sec-lead { font-size: 14px; color: var(--muted); margin-bottom: 24px; max-width: 680px; }



/* ── EYEBROW MODIFIERS ─────────────────────────────────────── */

.eyebrow-gold { color: var(--yellow); }



/* ── SECTION MODIFIERS ─────────────────────────────────────── */

.sec-tight { padding-top: 42px; padding-bottom: 42px; }



/* ── ADDITIONAL V35 CLASSES ─────────────────────────────────── */

.btn-ghost-white { background: rgba(255,255,255,.12); color: #fff; border: 2px solid rgba(255,255,255,.4); }

.btn-ghost-white:hover { background: rgba(255,255,255,.2); }



/* ── BUTTON UTILITIES ───────────────────────────────────────── */

.btn-full { width: 100%; margin-bottom: 8px; }





/* ══════════════════════════════════════════════════════════════

   V37: SERVICES HUB PAGE CLASSES

   ══════════════════════════════════════════════════════════════ */



/* ── SERVICES HUB: PAGE TITLE BAR ──────────────────────────── */

.page-title-bar { background: var(--navy); padding: 36px 20px 28px; text-align: center; }

.page-title-bar h1 {

  font-family: "Bebas Neue", sans-serif;

  font-size: clamp(26px, 5vw, 44px);

  line-height: 1.05;

  letter-spacing: .5px;

  color: #fff;

  margin-bottom: 16px;

}

.page-title-bar h1 em { color: var(--yellow); font-style: normal; }



/* ── SERVICES HUB: SERVICE CARD GRID ───────────────────────── */

.hub-grid {

  display: grid !important;

  grid-template-columns: repeat(2, 1fr);

  gap: 14px;

  max-width: 1140px;

  margin: 0 auto;

}

@media(min-width: 640px) { .hub-grid { grid-template-columns: repeat(3, 1fr); } }

@media(min-width: 900px) { .hub-grid { grid-template-columns: repeat(4, 1fr); } }



/* ── SERVICES HUB: INDIVIDUAL SERVICE CARD ─────────────────── */

.hub-card {

  background: var(--navy); border-radius: 12px; padding: 22px 16px 16px;

  display: flex; flex-direction: column; align-items: center; text-align: center;

  text-decoration: none; color: inherit;

  transition: background .2s, transform .15s, box-shadow .15s;

}

.hub-card:hover {

  background: #0e2d4a; transform: translateY(-2px);

  box-shadow: 0 8px 28px rgba(13,33,55,.4);

}



/* ── SERVICES HUB: CARD ICON CIRCLE ────────────────────────── */

.hub-icon {

  width: 72px; height: 72px; border-radius: 50%;

  background: rgba(255,255,255,.95);

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

  margin-bottom: 12px; flex-shrink: 0;

}

.hub-icon img { width: 44px; height: 44px; object-fit: contain; display: block; }



/* ── SERVICES HUB: CARD TEXT LAYERS ────────────────────────── */

.hub-name {

  font-family: "Bebas Neue", sans-serif; font-size: 21px; letter-spacing: .5px;

  color: #fff; line-height: 1.1; margin-bottom: 4px;

}

.hub-fun {

  font-size: 11px; font-weight: 800; letter-spacing: .12em;

  color: var(--yellow); margin-bottom: 8px; line-height: 1.3;

}

.hub-comma {

  font-size: 11px; line-height: 1.65; color: rgba(255,255,255,.55);

  margin-bottom: 12px; flex: 1; padding: 0 4px; text-align: center;

}

.hub-btn {

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

  width: 100%; padding: 9px 12px; background: var(--yellow); color: var(--navy);

  font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 12px;

  border-radius: 6px; transition: background .15s; text-decoration: none; margin-top: auto;

}

.hub-card:hover .hub-btn { background: var(--yellow-d); }









/* ── OUTLINE PILL (species / descriptor tags) ───────────────── */

.pill {

  display: inline-block;

  font-size: 11px;

  background: transparent;

  color: var(--muted);

  font-weight: 600;

  padding: 3px 9px;

  border-radius: 20px;

  border: 1.5px solid var(--border);

}



/* ── DEVICE-SPECIFIC CALL BUTTON TEXT ──────────────────────── */

.btn-call .btn-desktop { display: inline; }

.btn-call .btn-mobile  { display: none; }

@media(max-width:768px) {

  .btn-call .btn-desktop { display: none; }

  .btn-call .btn-mobile  { display: inline; }

}



/* ── CITY CHIP NAVIGATION GRID ──────────────────────────────── */

.city-chip-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 8px;

  margin-bottom: 20px;

}

@media(max-width:700px) { .city-chip-grid { grid-template-columns: repeat(2, 1fr); } }



.city-chip {

  display: block;

  background: #fff;

  border: 1.5px solid var(--border);

  border-radius: 30px;

  padding: 7px 10px;

  text-align: center;

  font-size: 12px !important;

  font-weight: 700;

  color: var(--blue-d);

  text-decoration: none !important;

  transition: border-color .15s, color .15s, background .15s;

}

.city-chip:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-pale); }





/* ── CITY PAGE SECTION BACKGROUNDS ─────────────────────────── */

.sec { padding: 72px 0; }

.sec-light { background: var(--blue-pale); padding: 72px 0; }

@media(max-width:600px) { .sec { padding: 52px 0; } .sec-light { padding: 52px 0; } }





.review-card { background: #fff; border-radius: 10px; padding: 22px 22px 20px; border: 1.5px solid var(--border); display: flex; flex-direction: column; gap: 0; }







/* ── SERVICE AREA CARD (Section 10) ────────────────────────── */

.area-card { background: var(--blue-pale); border: 1.5px solid var(--border); border-radius: 14px; padding: 24px; }

.area-card h3 { font-family: "Bebas Neue", sans-serif; font-size: 20px; letter-spacing: .5px; color: var(--navy); margin-bottom: 6px; }

.area-card-sub { font-size: 13px; color: var(--muted); margin-bottom: 16px; display: block; text-align: center; }













/* ── AREA MAP WRAPPER (inside .area-two-col) ─────────────────── */

.area-map-wrap { border-radius: 14px !important; overflow: hidden; min-height: 380px; width: 100%; }





/* ── PROSE LINK COLOR (city page pest sections) ─────────────── */

.sec p a, .sec-light p a, .reviews-section p a {

  color: var(--blue);

  text-decoration: underline;

  text-underline-offset: 2px;

}





/* ── REVIEW CARD BLOCKQUOTE LINE HEIGHT ─────────────────────── */

.review-card blockquote {

  font-size: 14.5px;

  font-style: italic;

  color: var(--text);

  line-height: 1.85;

  margin: 0;

}





/* ── MOBILE LINK SIZE FIX ───────────────────────────────────── */

.geo-intro a,

.open-p a,

.pest-prose a,

.hood-item p a {

  font-size: inherit;

}





/* ══════════════════════════════════════════════════════════════

   V47: SERVICE AREAS HUB CITY CARDS

   ══════════════════════════════════════════════════════════════ */



/* ── CITY HUB CARD GRID ─────────────────────────────────────── */

.city-hub-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 14px;

  max-width: 1140px;

  margin: 0 auto;

}

@media(min-width: 640px)  { .city-hub-grid { grid-template-columns: repeat(3, 1fr); } }

@media(min-width: 1000px) { .city-hub-grid { grid-template-columns: repeat(4, 1fr); } }



/* ── CITY HUB CARD ──────────────────────────────────────────── */

.city-hub-card {

  background: var(--navy);

  border-radius: 12px;

  padding: 20px 16px 16px;

  display: flex;

  flex-direction: column;

  align-items: flex-start;

  text-decoration: none;

  color: inherit;

  transition: background .2s, transform .15s, box-shadow .15s;

}

.city-hub-card:hover {

  background: #0e2d4a;

  transform: translateY(-2px);

  box-shadow: 0 8px 28px rgba(13,33,55,.3);

}



/* ── CITY HUB CARD TEXT LAYERS ──────────────────────────────── */

.city-hub-name {

  font-family: "Bebas Neue", sans-serif;

  font-size: 22px;

  letter-spacing: .5px;

  color: #fff;

  line-height: 1.1;

  margin-bottom: 10px;

}

.city-hub-row-label {

  font-size: 9px;

  font-weight: 800;

  letter-spacing: .14em;


  color: var(--yellow);

  margin-bottom: 3px;

  margin-top: 8px;

}

.city-hub-pests {

  font-size: 11px;

  line-height: 1.6;

  color: rgba(255,255,255,.75);

}

.city-hub-hoods {

  font-size: 11px;

  line-height: 1.6;

  color: rgba(255,255,255,.6);

  flex: 1;

}



/* ── CITY HUB CARD BUTTON ───────────────────────────────────── */

.city-hub-btn {

  display: flex;

  align-items: center;

  justify-content: center;

  width: 100%;

  padding: 9px 12px;

  background: var(--yellow);

  color: var(--navy);

  font-family: "Plus Jakarta Sans", sans-serif;

  font-weight: 800;

  font-size: 10px;

  border-radius: 6px;

  transition: background .15s;

  text-decoration: none;

  margin-top: 14px;

}

.city-hub-card:hover .city-hub-btn { background: var(--yellow-d); }



/* Grid display override for city-hub-grid */

.entry-content .city-hub-grid {

  display: grid !important;

  grid-template-columns: repeat(2, 1fr) !important;

}

@media(min-width: 640px) {

  .entry-content .city-hub-grid { grid-template-columns: repeat(3, 1fr) !important; }

}

@media(min-width: 1000px) {

  .entry-content .city-hub-grid { grid-template-columns: repeat(4, 1fr) !important; }

}





/* Display override */



.nap-row {

  display: flex;

  align-items: flex-start;

  gap: 12px;

  margin-bottom: 14px;

}

.nap-row:last-child { margin-bottom: 0; }

.nap-icon {

  width: 36px;

  height: 36px;

  background: var(--navy);

  border-radius: 8px;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

  font-size: 16px;

}

.nap-icon svg { stroke: #fff; }

.nap-detail {

  font-size: 14px;

  line-height: 1.6;

  color: var(--text);

}

.nap-detail strong {

  display: block;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: .1em;


  color: var(--muted);

  margin-bottom: 2px;

}

.nap-detail a {

  color: var(--navy);

  font-weight: 700;

  font-size: 16px;

  text-decoration: none;

}

.nap-detail a:hover { color: var(--blue); }

.hours-row {

  display: flex;

  justify-content: space-between;

  align-items: center;

  padding: 7px 0;

  border-bottom: 1px solid var(--border);

  font-size: 13px;

}

.hours-row:last-child { border-bottom: none; }

.hours-row .day { font-weight: 700; color: var(--text); }

.hours-row .time { color: var(--blue-d); font-weight: 600; }

.hours-row.closed .time { color: var(--muted); }

















/* ── COMMERCIAL PLANS SECTION ───────────────────────────────── */

.plans-section { background: var(--navy); padding: 60px 20px; }

.plans-header { text-align: center; margin-bottom: 36px; }





/* 2-column plan grid */

.plans-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 1060px; margin: 0 auto 20px; }

@media(max-width:600px) { .plans-grid { grid-template-columns: 1fr; } }



/* Individual plan card */

.plan-card { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 26px; }

.plan-badge { display: inline-flex; align-items: center; background: var(--yellow); color: var(--navy); font-size: 9px; font-weight: 900; padding: 3px 8px; border-radius: 10px; letter-spacing: .06em; white-space: nowrap; }

.plan-name { font-family: "Bebas Neue",sans-serif; font-size: 22px; color: #fff; letter-spacing: .5px; margin-bottom: 6px; }

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

.plan-list li { font-size: 12.5px; color: rgba(255,255,255,.65); line-height: 1.55; display: flex; align-items: flex-start; gap: 8px; }

.plan-list li svg { flex-shrink: 0; margin-top: 2px; }

















/* TOP 4 FEATURED CARDS */

.pl-top4-lead { text-align: center; margin: 0 auto 24px; }

.pl-feat-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 1140px; margin: 0 auto; }

@media(min-width:760px) { .pl-feat-strip { grid-template-columns: repeat(4, 1fr); } }

.pl-feat-card { background: var(--navy); border-radius: 14px; padding: 18px 12px 14px; display: flex; flex-direction: column; align-items: center; text-align: center; text-decoration: none; color: inherit; transition: background .2s, transform .15s; }

.pl-feat-card:hover { background: #0e2d4a; transform: translateY(-2px); }

.pl-feat-season { font-family: "Bebas Neue", sans-serif; font-size: 11px; letter-spacing: .15em; color: var(--yellow); display: block; margin-bottom: 8px; }

.pl-feat-img-wrap { width: 76px; height: 76px; border-radius: 50%; background: rgba(255,255,255,.95); display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; flex-shrink: 0; }

.pl-feat-img { width: 52px; height: 52px; object-fit: contain; }

.pl-feat-name { font-family: "Bebas Neue", sans-serif; font-size: 20px; color: #fff; letter-spacing: .5px; line-height: 1.05; margin-bottom: 10px; flex: 1; display: flex; align-items: center; justify-content: center; }

.pl-feat-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 6px 4px; background: none; color: var(--yellow); font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 11px; border: none; transition: opacity .15s; margin-top: auto; letter-spacing: .03em; }

.pl-feat-card:hover .pl-feat-btn { opacity: .8; }



/* STAT RAIL COLOR VARIANTS */

.pl-stat-blue { color: var(--blue); }

.pl-stat-red { color: #c0392b; }

.pl-stat-amber { color: var(--yellow-d); }



/* THREAT LEGEND */

.pl-threat-legend { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px 12px; margin-bottom: 24px; padding: 10px 14px; background: #fff; border: 1.5px solid var(--border); border-radius: 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }

.pl-threat-legend::-webkit-scrollbar { display: none; }

.pl-tleg-label { font-size: 10px; font-weight: 800; letter-spacing: .12em; color: var(--navy); margin-right: 4px; }

.pl-tleg-item { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); font-weight: 600; }

.pl-tleg-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }

.pl-tleg-red { background: #c0392b; }

.pl-tleg-amber { background: var(--yellow-d); }

.pl-tleg-blue { background: var(--blue); }

.pl-tleg-none { background: #c8d8e0; }

.pl-filter-label { font-size: 11px; font-weight: 800; letter-spacing: .12em; color: var(--navy); margin-bottom: 10px; display: block; }

.pl-filter-bar { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }

.pl-filter-bar::-webkit-scrollbar { display: none; }

.pl-filter-btn { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 6px; font-size: 12px; font-weight: 700; border: 1.5px solid var(--border); background: #fff; color: var(--muted); cursor: pointer; transition: all .15s; font-family: "Plus Jakarta Sans", sans-serif; white-space: nowrap; }

.pl-filter-btn:hover { border-color: var(--blue); color: var(--blue); }

.pl-filter-btn.active { background: var(--navy); border-color: var(--navy); color: #fff; }

.pl-fdot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }

.pl-fdot-all { background: var(--navy); }

.pl-filter-btn.active .pl-fdot-all { background: rgba(255,255,255,.6); }

.pl-fdot-red { background: #c0392b; }



/* CATEGORY BLOCK */

.pl-cat-block { margin-bottom: 48px; }

.pl-cat-block:last-child { margin-bottom: 0; }

.pl-cat-name { font-family: "Bebas Neue", sans-serif; font-size: clamp(18px, 4vw, 24px); color: #fff; letter-spacing: .5px; line-height: 1; }

.pl-cat-count { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: rgba(255,255,255,.35); line-height: 1; }

.pl-cat-match { font-size: 11px; font-weight: 800; color: var(--yellow); line-height: 1; display: none; }

.pl-cat-svc { font-size: 11px; font-weight: 700; color: rgba(255,255,255,.55); white-space: nowrap; transition: color .15s; text-decoration: none; }

.pl-cat-svc:hover { color: var(--yellow); }

.pl-cat-body { border: 1.5px solid var(--border); border-top: none; border-radius: 0 0 10px 10px; padding: 16px 16px 18px; }

.pl-cat-intro { font-size: 13.5px; color: var(--muted); line-height: 1.75; margin-top: 14px; }

.pl-cat-intro a { color: var(--blue); font-weight: 700; }

.pl-cat-intro a:hover { color: var(--blue-d); text-decoration: underline; }



/* SPECIES CARD GRID */

.pl-spl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }

@media(min-width:480px) { .pl-spl-grid { grid-template-columns: repeat(3, 1fr); } }

@media(min-width:760px) { .pl-spl-grid { grid-template-columns: repeat(4, 1fr); } }

@media(min-width:1000px) { .pl-spl-grid { grid-template-columns: repeat(5, 1fr); } }



/* SPECIES CARD */

.pl-spl-card { background: #fff; border: 1.5px solid var(--border); border-radius: 10px; padding: 14px 12px 10px; display: flex; flex-direction: column; align-items: center; text-align: center; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s, transform .12s, opacity .25s; }

.pl-spl-card:hover { border-color: var(--blue); box-shadow: 0 4px 14px rgba(31,120,209,.12); transform: translateY(-1px); }

.pl-spl-img { width: 60px; height: 60px; object-fit: contain; margin: 0 auto 8px; }

.pl-spl-name { font-size: 13px; font-weight: 800; color: var(--navy); line-height: 1.25; margin-bottom: 2px; }

.pl-spl-aka { font-size: 10px; font-style: italic; color: #888; line-height: 1.2; margin-bottom: 5px; }



/* THREAT DOTS */

.pl-spl-threats { display: flex; flex-direction: column; gap: 3px; margin-top: auto; padding-top: 8px; width: 100%; }



/* CALENDAR DEVICE */

.calendar-device { background: var(--navy); border-radius: 14px; padding: 30px 26px; max-width: 1140px; margin: 0 auto; }

.cal-eyebrow { font-size: 11px; font-weight: 900; letter-spacing: .18em; color: var(--yellow); display: block; margin-bottom: 8px; }

.cal-heading { color: #fff !important; margin-bottom: 6px; }

.cal-sub { font-size: 13px; color: rgba(255,255,255,.55); margin-bottom: 22px; }

.cal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

@media(min-width:700px) { .cal-grid { grid-template-columns: repeat(4, 1fr); } }

.cal-tile { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: 14px 12px; text-align: center; }

.cal-season { font-family: "Bebas Neue", sans-serif; font-size: 16px; letter-spacing: .5px; color: var(--yellow); margin-bottom: 4px; }

.cal-months { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: rgba(255,255,255,.35); margin-bottom: 8px; }

.cal-pests { font-size: 12px; color: rgba(255,255,255,.72); line-height: 1.65; }



/* FAQ SIDEBAR SERVICE LIST (Pest Library) */

.pl-svc-list { background: #fff; border: 1.5px solid var(--border); border-radius: 12px; padding: 18px; }

.pl-svc-list h4 { font-weight: 800; font-size: 12px; margin-bottom: 12px; color: var(--navy); letter-spacing: .1em; }

.pl-svc-item { display: block; padding: 7px 0; border-bottom: 1px solid var(--border); text-decoration: none; }

.pl-svc-item:last-child { border-bottom: none; padding-bottom: 0; }

.pl-svc-branded { display: block; font-size: 13px; font-weight: 800; color: var(--blue); line-height: 1.2; }

.pl-svc-plain { display: block; font-size: 11px; color: var(--muted); margin-top: 1px; }

.pl-svc-item:hover .pl-svc-branded { color: var(--blue-d); text-decoration: underline; }



/* DISPLAY OVERRIDES FOR PEST LIBRARY */

@media(min-width:760px) { .entry-content .pl-feat-strip { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; } }

@media(min-width:480px) { .entry-content .pl-spl-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; } }

@media(min-width:760px) { .entry-content .pl-spl-grid { grid-template-columns: repeat(4, 1fr) !important; } }

@media(min-width:1000px) { .entry-content .pl-spl-grid { grid-template-columns: repeat(5, 1fr) !important; } }

@media(min-width:700px) { .entry-content .cal-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; } }

.entry-content .cal-heading { color: #fff !important; }

.entry-content .pl-threat-legend { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; scrollbar-width: none !important; }



/* ── V57 CORRECTIONS (April 18, 2026) ──────────────────────────

   Four issues found after widget deployment. All fixed here.

   1. stat-cell was missing (widget uses stat-cell, base uses stat-tile)

   2. pl-filter-btn text color explicit to survive theme resets

   3. pl-cat-intro link color explicit to survive theme resets

   4. pl-cat-svc font size explicit to survive theme resets

   ────────────────────────────────────────────────────────────── */



/* Fix 1: stat-cell alias (Pest Library hub uses stat-cell, base uses stat-tile) */

.stat-cell { padding: 20px 18px; background: #fff; border-bottom: 1px solid var(--border); text-align: center; }

@media(min-width:600px) { .stat-cell { border-bottom: none; border-right: 1px solid var(--border); } .stat-cell:last-child { border-right: none; } }

@media(min-width:600px) { .entry-content .stat-rail { display: grid !important; grid-template-columns: repeat(3,1fr) !important; } }



/* Fix 2: pl-filter-btn explicit styling to survive theme resets */

.entry-content .pl-filter-btn { font-family: "Plus Jakarta Sans", sans-serif !important; font-size: 12px !important; font-weight: 700 !important; color: var(--muted) !important; background: #fff !important; border: 1.5px solid var(--border) !important; border-radius: 6px !important; padding: 8px 14px !important; cursor: pointer !important; display: inline-flex !important; align-items: center !important; gap: 7px !important; white-space: nowrap !important; }

.entry-content .pl-filter-btn:hover { border-color: var(--blue) !important; color: var(--blue) !important; }

.entry-content .pl-filter-btn.active { background: var(--navy) !important; border-color: var(--navy) !important; color: #fff !important; }



/* Fix 3: pl-cat-intro link color explicit to survive theme resets */

.entry-content .pl-cat-intro a { color: var(--blue) !important; font-weight: 700 !important; text-decoration: none !important; font-size: 13.5px !important; font-family: "Plus Jakarta Sans", sans-serif !important; line-height: 1.75 !important; }

.entry-content .pl-cat-intro a:hover { color: var(--blue-d) !important; text-decoration: underline !important; }



/* Fix 4: pl-cat-svc explicit sizing to survive theme resets */

.entry-content .pl-cat-svc { font-size: 11px !important; font-weight: 700 !important; color: rgba(255,255,255,.55) !important; font-family: "Plus Jakarta Sans", sans-serif !important; text-decoration: none !important; white-space: nowrap !important; line-height: 1.2 !important; }

.entry-content .pl-cat-svc:hover { color: var(--yellow) !important; text-decoration: none !important; }



/* Fix 5: pl-filter-bar nowrap display override */

.entry-content .pl-filter-bar { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; gap: 8px !important; scrollbar-width: none !important; }





/* =============================================================

   PRICING PAGE CLASSES — V58 ADDITIONS

   All classes below are new and pricing-page-specific.

   No existing classes were modified.

   ============================================================= */



/* TEXT UTILITIES */

.txt-gold { color: var(--yellow); }



/* WHITE OUTLINE BUTTON */

.btn-outline-w { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); }

.btn-outline-w:hover { background: rgba(255,255,255,.08); }







/* MOSQUITO ADD-ON */

.mosq-addon { max-width: 860px; margin: 16px auto 0; background: var(--navy); border: 1px solid rgba(31,120,209,.35); border-radius: 12px; padding: 18px 20px; display: flex; align-items: center; gap: 16px; }

@media(max-width:480px) { .mosq-addon { flex-direction: column; align-items: flex-start; gap: 10px; } }

.mosq-body-col { flex: 1; }

.mosq-name { font-family: 'Bebas Neue', sans-serif; font-size: 18px; color: #fff; letter-spacing: .4px; margin: 0 0 2px; }

.mosq-tag { font-size: 10px; font-weight: 700; color: var(--yellow); letter-spacing: .08em; }

.mosq-desc { font-size: 12px; color: rgba(255,255,255,.5); line-height: 1.6; margin-top: 4px; }

.mosq-price-col { text-align: right; flex-shrink: 0; }

.mosq-price-num { font-family: 'Bebas Neue', sans-serif; font-size: 34px; color: var(--yellow); line-height: 1; }

.mosq-price-note { font-size: 10px; color: rgba(255,255,255,.38); }

.sqft-note { font-size: 11px; color: var(--muted); text-align: center; margin: 12px auto 0; max-width: 860px; font-style: italic; }





/* REVIEWS GRID — 4 COLUMN (top section) */

.rq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 14px; }

@media(min-width:860px) { .rq-grid { grid-template-columns: repeat(4, 1fr); } }

.rq-card { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px; }

.rq-stars { color: var(--yellow); font-size: 14px; margin-bottom: 8px; letter-spacing: 1px; }

.rq-text { font-size: 12.5px; color: var(--text); line-height: 1.75; margin: 0 0 10px; font-style: italic; }

.rq-author { font-size: 11px; font-weight: 700; color: var(--muted); }

.reviews-note { font-size: 12.5px; color: var(--muted); margin-bottom: 20px; font-style: italic; }

.reviews-footer-link { color: var(--blue); font-weight: 700; }



.cal-legend { display: flex; gap: 14px; flex-wrap: wrap; padding: 10px 14px; border-top: 1px solid var(--border); }

.cal-leg-item { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--muted); font-weight: 600; }

.cal-leg-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }



/* COMMERCIAL PLANS */

.comm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; max-width: 860px; margin: 0 auto 22px; }

@media(max-width:540px) { .comm-grid { grid-template-columns: 1fr; } }

.comm-card { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px; }

.comm-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }

.comm-name { font-family: 'Bebas Neue', sans-serif; font-size: 18px; color: var(--navy); letter-spacing: .4px; }

.comm-freq { font-size: 9.5px; font-weight: 900; color: var(--blue); letter-spacing: .1em; background: var(--blue-pale); border: 1px solid var(--border); border-radius: 20px; padding: 2px 9px; white-space: nowrap; flex-shrink: 0; }

.comm-body { font-size: 12px; color: var(--muted); line-height: 1.65; margin: 0; }

.comm-cta-col { display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 860px; margin: 0 auto; }



/* ESTIMATE SECTION */

.est-section { background: #fff; padding: 52px 20px; border-top: 4px solid var(--navy); }

.est-inner { max-width: 960px; margin: 0 auto; }

.est-header { text-align: center; margin-bottom: 28px; }

.est-sub { font-size: 13px; color: var(--muted); line-height: 1.75; max-width: 560px; margin: 0 auto; }



.est-form-wrap { max-width: 540px; margin: 0 auto; background: var(--navy); border-radius: 14px; padding: 24px; }



/* PRICING PAGE SECTION OVERRIDES */

.pricing-plans-sec { background: var(--blue-pale); padding: 52px 20px; }

.pricing-plans-header { text-align: center; max-width: 660px; margin: 0 auto 28px; }

.pricing-h2-lg { font-family: 'Bebas Neue', sans-serif; font-size: clamp(28px, 4.5vw, 46px); color: var(--navy); letter-spacing: .4px; margin: 0 0 18px; }





/* HERO BAR — PRICING PAGE */

.hero-bar { background: var(--navy); padding: 28px 20px 24px; }

.hero-bar-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

.hero-bar-left { flex: 1; min-width: 260px; }

.hero-bar h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(26px, 3.8vw, 44px); color: #fff; letter-spacing: .5px; line-height: 1.08; margin: 0 0 8px; }

.hero-bar h1 span { color: var(--yellow); }

.hero-bar-h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(26px, 3.8vw, 44px); color: #fff; letter-spacing: .5px; line-height: 1.08; margin: 0 0 8px; }

.hero-bar-h1-accent { color: var(--yellow); }

.hero-bar-sub { font-size: 13.5px; color: rgba(255,255,255,.6); line-height: 1.65; margin: 0 0 14px; max-width: 500px; }



/* BOM PILL — PRICING PAGE VARIANT */

.bom-pill { display: flex; align-items: center; gap: 10px; background: rgba(245,166,35,.1); border: 1px solid rgba(245,166,35,.28); border-radius: 10px; padding: 10px 14px; flex-shrink: 0; }

.bom-pill img, .bom-pill-img { width: 44px; height: 44px; border-radius: 6px; object-fit: contain; }

.bom-pill-text { font-size: 11px; font-weight: 700; color: var(--yellow); line-height: 1.4; }

.hero-bar-cta-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 14px; }

.entry-content .hero-bar .btn-call .ico { display: flex; align-items: center; align-self: center; line-height: 1; }

.entry-content .hero-bar .btn-call .ico svg { display: block; margin-top: 4px; }



/* COMMERCIAL PLAN SECTION */

.plans-section { background: var(--navy); padding: 52px 20px; }

.plans-header { text-align: center; max-width: 660px; margin: 0 auto 28px; }

.plans-sub { font-size: 13.5px; color: rgba(255,255,255,.55); line-height: 1.7; }



/* Commercial cards: freq pill wraps to next line when title is long */

.comm-card-head { flex-wrap: wrap; align-items: flex-start; }

.comm-name { flex: 1 1 100%; }

.comm-freq { flex-shrink: 0; margin-top: 4px; }



/* Reviews note: clean centered link, no URL text wrapping */

.reviews-note { text-align: center; font-size: 13px; }

.reviews-footer-link { color: var(--blue); font-weight: 700; text-decoration: none; white-space: nowrap; }

.reviews-footer-link:hover { text-decoration: underline; }



/* Estimate anchor: move id to form wrapper so button scrolls past cards */

.est-form-anchor { display: block; height: 0; visibility: hidden; }









/* ── PRICING PAGE MOBILE FIXES — V58 PATCH 2 ──────────────────

   Reduces padding and fixes layout on small screens.

   Addresses: plan tile clipping, section gap, billing note,

   calendar column width, one-time services spacing.

────────────────────────────────────────────────────────────── */



/* Reduce section vertical padding on mobile */

@media(max-width:640px) {

  .pricing-plans-sec { padding: 32px 14px; }

  .cal-section { padding: 32px 14px; }

  .sec.sec-tight { padding-top: 24px; padding-bottom: 24px; }

  .onetimes-wrap { padding: 16px; }

  .est-section { padding: 36px 14px; }

}



/* Gap between reviews and plans: tighten bottom of reviews section */

.sec.sec-tight.sec-pale { padding-bottom: 24px; }



/* Plan tabs: shrink tiles to fit 3 on narrow mobile */





/* Tiles: shorter pills fit on one line without clipping */





/* Mobile: slightly narrower pest column */









/* ── PRICING PAGE — V58 PATCH 6: Calendar legend top + padding ─ */



/* Legend above table — remove border-top, add bottom margin */

.cal-legend { border-top: none; padding: 0; margin-bottom: 10px; }









/* =============================================================

   GLOBAL CSS V60 ADDITIONS

   Paste this block at the bottom of the existing V58 CSS in WP Code.

   Then update the version header comment at the top from V58 to V59.

   Delete the separate PL-Species-CSS-V1-PMO.css snippet once installed.



   V60 | April 22, 2026

   Added all Pest Library species page classes. Scoped under

   .entry-content to prevent conflicts with existing classes

   (cal-grid, local-grid, sec-h2, faq-list, btn-call). Mobile sticky

   CTA is unscoped because position:fixed requires global scope.

   Image URL convention locked: /wp-content/uploads/YYYY/MM/[slug]-hero.webp

   | [slug]-mugshot.webp | [slug]-annotated.webp (WordPress year/month default).

============================================================= */





/* ── PL SPECIES: BREADCRUMB ──────────────────────────────── */

.entry-content .bc-wrap { background: #0D2137; padding: 14px 24px; border-bottom: 1px solid #1A3145; }

.entry-content .bc-inner { max-width: 1100px; margin: 0 auto; font-size: 13px; color: #C8DDE8; }

.entry-content .bc-inner a { color: #F5A623; text-decoration: none; font-size: inherit; }

.entry-content .bc-inner a:hover { text-decoration: underline; }

.entry-content .bc-sep { margin: 0 6px; color: #7a8a9a; font-size: inherit; }

.entry-content .bc-inner span { color: #fff; font-size: inherit; }

@media(max-width:768px) {

  .entry-content .bc-wrap { padding: 10px 16px; }

  .entry-content .bc-inner { font-size: 11px; }

}





/* ── PL SPECIES: HERO ────────────────────────────────────── */

.entry-content:has(.bc-wrap) .hero { background: #0D2137; color: #fff; padding: 56px 24px 64px; position: relative; overflow: hidden; }

.entry-content:has(.bc-wrap) .hero:before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #F5A623 0%, #C0392B 100%); }

.entry-content .hero-wrap { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr 1fr; gap: 42px; align-items: center; }

.entry-content .hero-eyebrow { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: #F5A623; margin-bottom: 14px; }

.entry-content .hero-h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(34px, 5vw, 52px); line-height: 1.05; letter-spacing: .02em; color: #fff; margin-bottom: 14px; }

.entry-content .hero-h1 .pipe { color: #F5A623; font-weight: 400; margin: 0 6px; }

.entry-content .hero-meta { font-size: 11px; color: #7a8a9a; margin-bottom: 18px; font-style: italic; letter-spacing: .04em; }

.entry-content .hero-summary { font-size: 17px; color: #C8DDE8; line-height: 1.6; margin-bottom: 24px; max-width: 540px; }

.entry-content .hero-summary em { color: #F5A623; font-style: italic; }

.entry-content .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.entry-content .hero-img { border-radius: 14px; width: 100%; height: auto; display: block; }

.entry-content .hero .btn-call { background: #F5A623; color: #0D2137; font-weight: 900; font-size: 15px; letter-spacing: .04em; padding: 14px 24px; border-radius: 6px; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }

.entry-content .hero .btn-call:hover { background: #FFB733; color: #0D2137; text-decoration: none; }

.entry-content .hero .btn-call .ico { display: flex; align-items: center; align-self: center; line-height: 1; }

.entry-content .hero .btn-call .ico svg { display: block; margin-top: 4px; }

.entry-content .btn-service { background: #1f78d1; color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .04em; padding: 14px 22px; border-radius: 6px; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }

.entry-content .btn-service:hover { background: #1d6a8a; color: #fff; text-decoration: none; }

@media(max-width:768px) {

  .entry-content:has(.bc-wrap) .hero-wrap { grid-template-columns: 1fr; gap: 28px; }

  .entry-content:has(.bc-wrap) .hero { padding: 36px 20px 44px; }

}





/* ── PL SPECIES: LAYOUT UTILITIES ────────────────────────── */

.entry-content:has(.bc-wrap) .sec      { padding: 56px 24px; }

.entry-content:has(.bc-wrap) .sec-pale  { background: #E0EAF2; padding: 56px 24px; }

.entry-content:has(.bc-wrap) .sec-light { background: #F0F4F8; padding: 56px 24px; }

.entry-content:has(.bc-wrap) .wrap    { max-width: 1100px; margin: 0 auto; }

.entry-content:has(.bc-wrap) .wrap-md { max-width: 920px;  margin: 0 auto; }

.entry-content:has(.bc-wrap) .wrap-sm { max-width: 760px;  margin: 0 auto; }

.entry-content:has(.bc-wrap) .eyebrow { display: block; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: #1f78d1; margin-bottom: 10px; text-align: center; }

.entry-content:has(.bc-wrap) .eyebrow.gold { color: #F5A623; }

.entry-content:has(.bc-wrap) .eyebrow.red  { color: #C0392B; }

.entry-content:has(.bc-wrap) .sec-h2 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(28px, 4.4vw, 40px); line-height: 1.05; letter-spacing: .02em; color: #0D2137; margin-bottom: 8px; }

.entry-content:has(.bc-wrap) .sec-h3 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(22px, 3vw, 28px); line-height: 1.1; letter-spacing: .02em; color: #0D2137; margin: 0 0 14px; text-align: center; }

.entry-content:has(.bc-wrap) .sec-h2-tail { display: block; font-family: 'Inter', sans-serif; font-size: clamp(15px, 2.2vw, 18px); font-weight: 500; color: #4A5A6A; line-height: 1.4; margin-top: 6px; font-style: italic; margin-bottom: 18px; text-align: center; }

.entry-content .sec-p { font-size: 16px; color: #2A3A4A; line-height: 1.7; margin-bottom: 16px; }

.entry-content .sec-p:last-child { margin-bottom: 0; }

.entry-content .cap { font-size: 12px; color: #7a8a9a; font-style: italic; margin-top: 8px; line-height: 1.5; }

@media(max-width:768px) {

  .entry-content:has(.bc-wrap) .sec,

  .entry-content:has(.bc-wrap) .sec-pale,

  .entry-content:has(.bc-wrap) .sec-light { padding: 36px 20px; }

}





/* ── PL SPECIES: MUG SHOT ────────────────────────────────── */

.entry-content .mugshot { background: #fff; border: 1px solid #C8DDE8; border-radius: 14px; overflow: hidden; display: grid; grid-template-columns: 280px 1fr; box-shadow: 0 4px 22px rgba(13,33,55,.06); }

.entry-content .mugshot-img { background: #F0F4F8; display: flex; align-items: center; justify-content: center; padding: 32px; border-right: 1px solid #E0EAF2; }

.entry-content .mugshot-img img { max-width: 200px; }

.entry-content .mugshot-data { padding: 28px 32px; }

.entry-content .mugshot-name { font-family: 'Bebas Neue', sans-serif; font-size: 28px; letter-spacing: .02em; color: #0D2137; line-height: 1.05; margin-bottom: 4px; }

.entry-content .mugshot-sci { font-style: italic; font-size: 14px; color: #7a8a9a; margin-bottom: 18px; }

.entry-content .mugshot-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; margin-bottom: 16px; }

.entry-content .mugshot-stat { display: flex; flex-direction: column; }

.entry-content .mugshot-stat-label { font-size: 10px; font-weight: 800; letter-spacing: .1em; color: #1f78d1; margin-bottom: 4px; }

.entry-content .mugshot-stat-val { font-size: 14px; color: #1A2A3A; font-weight: 600; line-height: 1.4; }

.entry-content .mugshot-desc { font-size: 13px; color: #4A5A6A; line-height: 1.55; border-top: 1px solid #E0EAF2; padding-top: 14px; margin-bottom: 14px; }

.entry-content .mugshot-brand { font-size: 10px; color: #7a8a9a; letter-spacing: .12em; font-weight: 800; border-top: 1px dashed #C8DDE8; padding-top: 10px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 6px; }

.entry-content .mugshot-brand .pmo { color: #0D2137; }

.entry-content .mugshot-brand .pmo span { color: #F5A623; }

.entry-content .mugshot-brand .pmo .species { color: #C0392B; font-weight: 900; }

@media(max-width:768px) {

  .entry-content .mugshot { grid-template-columns: 1fr; }

  .entry-content .mugshot-img { border-right: none; border-bottom: 1px solid #E0EAF2; padding: 24px; }

  .entry-content .mugshot-data { padding: 22px; }

}





/* ── PL SPECIES: PAIN METER / RISK ASSESSMENT ────────────── */

.entry-content .pain-meter { background: #F8FBFD; border: 1px solid #E0EAF2; border-radius: 8px; padding: 14px 18px; margin-bottom: 16px; }

.entry-content .pain-meter-title { font-size: 10px; font-weight: 900; letter-spacing: .12em; color: #0D2137; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; }

.entry-content .pain-meter-title .pm-help { font-size: 9px; color: #7a8a9a; font-weight: 600; letter-spacing: .04em; text-transform: none; font-style: italic; }

.entry-content .pain-meter-axes { display: flex; flex-direction: column; }

.entry-content .pain-axis-row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 18px; padding: 12px 0; border-bottom: 1px dashed #C8DDE8; align-items: center; text-decoration: none; color: inherit; cursor: pointer; transition: background .15s; }

.entry-content .pain-axis-row:last-child { border-bottom: none; }

.entry-content .pain-axis-row:hover { background: #EDF4F8; }

.entry-content .pain-axis-left { display: grid; grid-template-columns: 155px 1fr auto; gap: 10px; align-items: center; font-size: 12px; padding-right: 8px; }

.entry-content .pain-label { font-weight: 700; color: #0D2137; font-size: 11px; white-space: nowrap; }

.entry-content .pain-dots { display: flex; gap: 4px; }

.entry-content .pain-dot { width: 13px; height: 13px; border-radius: 50%; background: #E0EAF2; }

.entry-content .pain-dot.lvl-1 { background: #F9E79F; }

.entry-content .pain-dot.lvl-2 { background: #F5A623; }

.entry-content .pain-dot.lvl-3 { background: #C0392B; }

.entry-content .pain-rating { font-size: 10px; font-weight: 700; color: #7a8a9a; letter-spacing: .04em; white-space: nowrap; }

.entry-content .pain-axis-right { border-left: 1px solid #C8DDE8; padding-left: 18px; font-size: 11px; color: #4A5A6A; line-height: 1.5; }

.entry-content .pain-legend-scale { display: flex; gap: 18px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #E0EAF2; flex-wrap: wrap; font-size: 10px; letter-spacing: .04em; font-weight: 700; justify-content: center; }

.entry-content .pain-legend-scale span { display: inline-flex; align-items: center; gap: 5px; }

.entry-content .pain-legend-scale span:before { content: ""; display: inline-block; width: 11px; height: 11px; border-radius: 50%; }

.entry-content .pain-legend-scale .lg-low:before  { background: #F9E79F; }

.entry-content .pain-legend-scale .lg-med:before  { background: #F5A623; }

.entry-content .pain-legend-scale .lg-high:before { background: #C0392B; }

@media(max-width:920px) {

  .entry-content .pain-axis-row { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }

  .entry-content .pain-axis-right { border-left: none; padding-left: 0; padding-top: 8px; border-top: 1px dotted #E0EAF2; margin-top: 4px; }

}





/* ── PL SPECIES: CALENDAR ─────────────────────────────────── */

.entry-content:has(.bc-wrap) .calendar-device { background: #fff; border: 1px solid #C8DDE8; border-radius: 14px; padding: 28px; box-shadow: 0 4px 22px rgba(13,33,55,.06); margin: 0; }

.entry-content:has(.bc-wrap) .calendar-device .cal-eyebrow { display: block; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: #F5A623; margin-bottom: 8px; }

.entry-content .cal-h { font-family: 'Bebas Neue', sans-serif; font-size: 24px; color: #0D2137; letter-spacing: .02em; margin-bottom: 6px; line-height: 1.1; }

.entry-content .cal-context { font-size: 13px; color: #4A5A6A; margin-bottom: 20px; line-height: 1.55; }

/* Override Global CSS .cal-grid (2-col) for the species 12-col monthly strip */

.entry-content:has(.bc-wrap) .calendar-device .cal-grid { display: grid !important; grid-template-columns: repeat(12, 1fr) !important; gap: 6px; margin-bottom: 18px; }

.entry-content .cal-month { text-align: center; }

.entry-content .cal-month-label { font-size: 10px; font-weight: 800; letter-spacing: .06em; color: #0D2137; margin-bottom: 6px; }

.entry-content .cal-month-cell { height: 42px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 800; letter-spacing: .04em; color: #fff; }

.entry-content .cal-c-dormant  { background: #ECF0F4; color: #4A5A6A; }

.entry-content .cal-c-emerging { background: #FCD9A8; color: #7a4800; }

.entry-content .cal-c-active   { background: #F5A623; color: #0D2137; }

.entry-content .cal-c-peak     { background: #C0392B; color: #fff; }

.entry-content .cal-c-slowing  { background: #B8C4D0; color: #0D2137; }

.entry-content:has(.bc-wrap) .calendar-device .cal-legend { display: flex; flex-wrap: wrap; gap: 14px; font-size: 11px; color: #4A5A6A; border-top: 1px solid #E0EAF2; padding-top: 14px; margin-top: 6px; background: transparent; padding-bottom: 0; }

.entry-content:has(.bc-wrap) .calendar-device .cal-leg-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #4A5A6A; }

.entry-content:has(.bc-wrap) .calendar-device .cal-leg-dot { width: 14px; height: 14px; border-radius: 3px; flex-shrink: 0; }

.entry-content .cal-confidence { font-size: 10px; color: #7a8a9a; font-style: italic; margin-top: 10px; letter-spacing: .04em; }

@media(max-width:768px) {

  .entry-content:has(.bc-wrap) .calendar-device .cal-grid { grid-template-columns: repeat(6, 1fr) !important; }

  .entry-content .cal-month-cell { height: 36px; font-size: 8px; }

}





/* ── PL SPECIES: IDENTIFICATION ───────────────────────────── */

.entry-content .id-section-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 28px; margin-top: 18px; align-items: start; }

.entry-content .id-image-block { background: #fff; border: 1px solid #E0EAF2; border-radius: 10px; padding: 18px; text-align: center; }

.entry-content .id-image-block img { width: 100%; height: auto; border-radius: 6px; }

.entry-content .dead-giveaways { background: #fff; border: 1px solid #E0EAF2; border-radius: 10px; padding: 22px 24px; height: 100%; }

.entry-content .dead-giveaways-title { font-size: 12px; font-weight: 800; letter-spacing: .1em; color: #1f78d1; margin-bottom: 12px; }

.entry-content .dead-giveaways-sub { font-size: 11px; color: #7a8a9a; font-weight: 500; text-transform: none; margin-top: 4px; font-style: italic; display: block; }

.entry-content .dead-giveaways ul { list-style: none; padding: 0; margin: 0; }

.entry-content .dead-giveaways li { padding: 9px 0 9px 22px; position: relative; font-size: 13.5px; line-height: 1.5; border-bottom: 1px dashed #E0EAF2; color: #2A3A4A; }

.entry-content .dead-giveaways li:last-child { border-bottom: none; }

.entry-content .dead-giveaways li:before { content: ""; position: absolute; left: 0; top: 14px; width: 10px; height: 10px; border: 2px solid #1f78d1; border-radius: 50%; }

@media(max-width:768px) { .entry-content .id-section-grid { grid-template-columns: 1fr; gap: 18px; } }





/* ── PL SPECIES: CONFUSION MATRIX ────────────────────────── */

.entry-content .confusion-table { width: 100%; border-collapse: collapse; margin-top: 18px; background: #fff; border: 1px solid #E0EAF2; border-radius: 10px; overflow: hidden; }

.entry-content .confusion-table th { background: #0D2137; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .08em; padding: 12px 14px; text-align: left; }

.entry-content .confusion-table td { padding: 12px 14px; font-size: 13px; color: #2A3A4A; border-bottom: 1px solid #E0EAF2; vertical-align: middle; line-height: 1.5; }

.entry-content .confusion-table tr:last-child td { border-bottom: none; }

.entry-content .confusion-table tr:nth-child(odd) td { background: #F8FBFD; }

.entry-content .species-cell { display: flex; align-items: center; gap: 12px; }

.entry-content .confusion-footnote { margin-top: 12px; padding: 14px 18px; background: #FFF8F0; border-left: 3px solid #F5A623; border-radius: 4px; font-size: 12px; color: #7a4800; line-height: 1.55; font-style: italic; }

.entry-content .confusion-footnote strong { color: #0D2137; font-style: normal; }

@media(max-width:768px) {

  .entry-content .confusion-table thead { display: none; }

  .entry-content .confusion-table,

  .entry-content .confusion-table tbody,

  .entry-content .confusion-table tr,

  .entry-content .confusion-table td { display: block; width: 100%; }

  .entry-content .confusion-table tr { border: 1px solid #E0EAF2; border-radius: 8px; margin-bottom: 14px; padding: 14px 16px; }

  .entry-content .confusion-table tr:nth-child(odd)  { background: #F8FBFD !important; }

  .entry-content .confusion-table tr:nth-child(even) { background: #fff !important; }

  .entry-content .confusion-table tr:nth-child(odd) td { background: transparent; }

  .entry-content .confusion-table td { border-bottom: 1px dashed #E0EAF2; padding: 9px 0; font-size: 13px; }

  .entry-content .confusion-table td:last-child { border-bottom: none; padding-bottom: 0; }

  .entry-content .confusion-table td:first-child { padding-top: 0; border-bottom: 2px solid #F5A623; margin-bottom: 6px; padding-bottom: 10px; }

  .entry-content .confusion-table td[data-label]:before { content: attr(data-label); display: block; font-size: 9px; font-weight: 800; color: #1f78d1; letter-spacing: .08em; margin-bottom: 4px; }

}





/* ── PL SPECIES: RISK GROUP BANNERS ─────────────────────── */

.entry-content .risk-group { padding: 0; }

.entry-content .risk-banner { padding: 36px 24px 28px; color: #fff; position: relative; }

.entry-content .risk-banner.people   { background: linear-gradient(180deg, #922B21 0%, #7a1f17 100%); }

.entry-content .risk-banner.property { background: linear-gradient(180deg, #EDC264 0%, #D4A438 100%); }

.entry-content .risk-banner.spread   { background: linear-gradient(180deg, #1d6a8a 0%, #155270 100%); }

.entry-content .risk-banner.treat    { background: linear-gradient(180deg, #1A3145 0%, #0D2137 100%); }

.entry-content .risk-banner.property .risk-banner-h2      { color: #0D2137 !important; }

.entry-content .risk-banner.property .risk-banner-eyebrow { color: #6b3e00; }

.entry-content .risk-banner.property .risk-banner-why     { color: #2a3a4a; }

.entry-content .risk-banner-wrap { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; }

.entry-content .risk-recap-card { background: #fff; border: 1px solid rgba(255,255,255,.4); border-radius: 10px; padding: 18px 22px; display: flex; flex-direction: column; gap: 10px; min-width: 240px; box-shadow: 0 4px 18px rgba(0,0,0,.18); }

.entry-content .risk-recap-axis { font-size: 10px; font-weight: 900; letter-spacing: .14em; color: #7a8a9a; }

.entry-content .risk-recap-rating { font-family: 'Bebas Neue', sans-serif; font-size: 36px; color: #0D2137; line-height: 1; letter-spacing: .02em; display: flex; align-items: baseline; gap: 8px; }

.entry-content .risk-recap-rating .denom { font-size: 18px; color: #7a8a9a; }

.entry-content .risk-recap-dots { display: flex; gap: 6px; }

.entry-content .risk-recap-dots .pdot { width: 18px; height: 18px; border-radius: 50%; background: #E0EAF2; }

.entry-content .risk-recap-dots .pdot.lvl-1 { background: #F9E79F; }

.entry-content .risk-recap-dots .pdot.lvl-2 { background: #F5A623; }

.entry-content .risk-recap-dots .pdot.lvl-3 { background: #C0392B; }

.entry-content .risk-recap-label { font-size: 11px; font-weight: 800; color: #0D2137; letter-spacing: .08em; }

.entry-content .risk-banner-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .18em; color: rgba(255,255,255,.7); margin-bottom: 8px; display: block; }

.entry-content .risk-banner-h2 { font-family: 'Bebas Neue', sans-serif !important; font-size: clamp(30px, 4.6vw, 42px) !important; color: #fff !important; letter-spacing: .02em !important; line-height: 1.05 !important; margin-bottom: 10px; }

.entry-content .risk-banner-why { font-size: 14px; color: rgba(255,255,255,.85); line-height: 1.55; max-width: 640px; }

@media(max-width:880px) {

  .entry-content .risk-banner-wrap { grid-template-columns: 1fr; gap: 16px; }

  .entry-content .risk-banner { padding: 28px 20px 24px; }

  .entry-content .risk-recap-card { flex-direction: row; flex-wrap: wrap; align-items: center; padding: 12px 18px; gap: 10px 14px; min-width: 0; }

  .entry-content .risk-recap-card .risk-recap-axis   { flex: 0 0 auto; }

  .entry-content .risk-recap-card .risk-recap-rating { font-size: 26px; flex: 0 0 auto; }

  .entry-content .risk-recap-card .risk-recap-rating .denom { font-size: 14px; }

  .entry-content .risk-recap-card .risk-recap-dots  { flex: 0 0 auto; }

  .entry-content .risk-recap-card .risk-recap-dots .pdot { width: 14px; height: 14px; }

  .entry-content .risk-recap-card .risk-recap-label { font-size: 10px; flex: 0 0 auto; margin-left: auto; }

}





/* ── PL SPECIES: RISK CONTENT ────────────────────────────── */

.entry-content .risk-content { padding: 48px 24px 56px; }

.entry-content .risk-content.people   { background: #FFF5F4; }

.entry-content .risk-content.property { background: #FFFAF0; }

.entry-content .risk-content.spread   { background: #F0F8FB; }

.entry-content .risk-content.treat    { background: #F0F4F8; }

.entry-content .risk-sub { margin-bottom: 42px; }

.entry-content .risk-sub:last-child { margin-bottom: 0; }

.entry-content .risk-sub-eyebrow { display: block; font-size: 11px; font-weight: 800; letter-spacing: .14em; margin-bottom: 8px; text-align: center; }

.entry-content .risk-sub.people .risk-sub-eyebrow   { color: #922B21; }

.entry-content .risk-sub.property .risk-sub-eyebrow { color: #9c6f12; }

.entry-content .risk-sub.spread .risk-sub-eyebrow   { color: #1d6a8a; }

.entry-content .risk-sub.treat .risk-sub-eyebrow    { color: #0D2137; }

@media(max-width:768px) { .entry-content .risk-content { padding: 32px 20px 36px; } }





/* ── PL SPECIES: PMO TRANSLATION ─────────────────────────── */

.entry-content .pmo-translation { background: #0D2137; color: #fff; border-radius: 10px; padding: 24px 28px; margin: 24px 0; }

.entry-content .pmo-translation-label { font-size: 10px; font-weight: 900; letter-spacing: .14em; color: #F5A623; margin-bottom: 12px; }

.entry-content .pmo-translation-row { display: grid; grid-template-columns: auto auto 1fr; gap: 14px; align-items: center; padding: 8px 0; border-bottom: 1px dashed #2E4456; font-size: 13px; }

.entry-content .pmo-translation-row:last-child { border-bottom: none; }

.entry-content .pmo-tr-sci   { font-style: italic; color: #F5A623; font-weight: 700; white-space: nowrap; }

.entry-content .pmo-tr-arrow { color: #7a8a9a; font-family: monospace; }

.entry-content .pmo-tr-plain { color: #fff; line-height: 1.4; }

@media(max-width:600px) {

  .entry-content .pmo-translation-row { grid-template-columns: 1fr; gap: 4px; padding: 10px 0; }

  .entry-content .pmo-tr-arrow { display: none; }

}





/* ── PL SPECIES: LOCAL GRID + WHAT WE SEE ───────────────── */

/* Override Global CSS .local-grid (1fr 1fr) for species 1.4fr 1fr */

.entry-content .risk-content .local-grid { display: grid !important; grid-template-columns: 1.4fr 1fr !important; gap: 28px; align-items: start; margin-top: 14px; }

.entry-content .local-prose p { font-size: 15.5px; color: #2A3A4A; line-height: 1.7; margin-bottom: 14px; }

.entry-content .local-prose p:last-child { margin-bottom: 0; }

.entry-content .what-we-see { background: #fff; border: 1.5px solid #1f78d1; border-radius: 10px; padding: 20px 22px; position: sticky; top: 20px; }

.entry-content .what-we-see-label { display: block; font-size: 11px; font-weight: 900; letter-spacing: .14em; color: #1f78d1; margin-bottom: 12px; }

.entry-content .what-we-see-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }

.entry-content .what-we-see-list li { padding-left: 18px; position: relative; font-size: 13px; color: #2A3A4A; line-height: 1.5; }

.entry-content .what-we-see-list li:before { content: "\25B8"; position: absolute; left: 0; color: #F5A623; font-weight: 900; }

.entry-content .what-we-see-attr { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #C8DDE8; font-size: 10px; color: #7a8a9a; font-style: italic; letter-spacing: .04em; }

@media(max-width:880px) {

  .entry-content .risk-content .local-grid { grid-template-columns: 1fr !important; gap: 20px; }

  .entry-content .what-we-see { position: static; }

}





/* ── PL SPECIES: COST CALLOUT ────────────────────────────── */

.entry-content .cost-callout { background: #FFF0EE; border: 1.5px solid #C0392B; border-radius: 8px; padding: 18px 22px; margin-top: 16px; }

.entry-content .cost-callout-label { display: block; font-size: 10px; font-weight: 900; letter-spacing: .14em; color: #C0392B; margin-bottom: 8px; }

.entry-content .cost-callout p { font-size: 14px; color: #2A3A4A; line-height: 1.6; margin: 0; }

.entry-content .cost-callout strong { color: #922B21; }





/* ── PL SPECIES: SEVERITY SIGNALS ───────────────────────── */

.entry-content .severity-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 18px; }

.entry-content .severity-card { background: #fff; border: 1px solid #E0EAF2; border-radius: 8px; padding: 18px 20px; }

.entry-content .severity-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }

.entry-content .severity-pill { display: inline-block; font-size: 9px; font-weight: 900; letter-spacing: .1em; padding: 4px 10px; border-radius: 4px; width: 84px; text-align: center; flex-shrink: 0; line-height: 1.1; }

.entry-content .severity-pill.high { background: #C0392B; color: #fff; }

.entry-content .severity-pill.med  { background: #F5A623; color: #0D2137; }

.entry-content .severity-pill.low  { background: #F9E79F; color: #7a4800; }

.entry-content .severity-card h4 { font-family: 'Bebas Neue', sans-serif; font-size: 18px; color: #0D2137; letter-spacing: .02em; line-height: 1.15; }

.entry-content .severity-card p { font-size: 13px; color: #2A3A4A; line-height: 1.6; margin: 0; }

@media(max-width:600px) { .entry-content .severity-grid { grid-template-columns: 1fr; } }





/* ── PL SPECIES: THINGS YOU SHOULD KNOW ─────────────────── */

.entry-content .rather-not-know { background: #fff; border: 1px solid #E0EAF2; border-radius: 14px; padding: 30px 32px; margin-top: 14px; box-shadow: 0 4px 22px rgba(13,33,55,.06); }

.entry-content .rather-not-know h3 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(24px, 3.4vw, 30px); color: #0D2137; letter-spacing: .02em; line-height: 1.1; margin-bottom: 6px; }

.entry-content .rather-not-know-sub { font-size: 14px; color: #4A5A6A; font-style: italic; margin-bottom: 22px; line-height: 1.4; border-bottom: 1px solid #F0F4F8; padding-bottom: 16px; }

.entry-content .rather-not-know-list { display: grid; grid-template-columns: 1fr; gap: 18px; }

.entry-content .rnk-fact { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: start; }

.entry-content .rnk-fact-num { font-family: 'Bebas Neue', sans-serif; font-size: 30px; color: #F5A623; line-height: 1; text-align: center; background: #0D2137; border-radius: 6px; padding: 8px 0; }

.entry-content .rnk-fact-text { font-size: 14.5px; color: #1A2A3A; line-height: 1.6; padding-top: 4px; }

.entry-content .rnk-fact-text strong { color: #0D2137; }

.entry-content .rnk-so-what { display: block; margin-top: 8px; font-size: 13px; color: #7a4800; font-style: italic; background: #FFF8F0; padding: 10px 14px; border-radius: 4px; border-left: 3px solid #F5A623; }

.entry-content .rnk-so-what strong { color: #7a4800; }





/* ── PL SPECIES: DANGER CARD ─────────────────────────────── */

.entry-content .danger-card { background: #fff; border: 1.5px solid #C0392B; border-radius: 10px; padding: 24px 28px; margin: 14px 0; }

.entry-content .danger-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }

.entry-content .danger-pill { display: inline-block; background: #C0392B; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .08em; padding: 4px 10px; border-radius: 4px; }

.entry-content .danger-card-title { font-family: 'Bebas Neue', sans-serif; font-size: 22px; color: #0D2137; letter-spacing: .02em; line-height: 1.1; }

.entry-content .danger-card p { font-size: 14px; color: #2A3A4A; line-height: 1.65; margin-bottom: 10px; }

.entry-content .danger-card p:last-child { margin-bottom: 0; }





/* ── PL SPECIES: DIY FAIL ────────────────────────────────── */





/* ── PL SPECIES: PREVENTION ──────────────────────────────── */

.entry-content .prevention-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 14px; }

.entry-content .prevention-card { background: #fff; border: 1px solid #E0EAF2; border-radius: 8px; padding: 16px 18px; display: flex; gap: 14px; align-items: start; }

.entry-content .prev-icon { background: #1f78d1; color: #fff; font-family: 'Bebas Neue', sans-serif; font-size: 18px; width: 32px; height: 32px; border-radius: 50%; text-align: center; line-height: 32px; flex-shrink: 0; }

.entry-content .prev-text { font-size: 14px; color: #2A3A4A; line-height: 1.55; }

.entry-content .prev-text strong { color: #0D2137; }

@media(max-width:600px) { .entry-content .prevention-grid { grid-template-columns: 1fr; } }





/* ── PL SPECIES: FAQ ─────────────────────────────────────── */

.entry-content:has(.bc-wrap) .faq-list { margin-top: 14px; }

.entry-content:has(.bc-wrap) .faq-item { background: #fff; border: 1px solid #E0EAF2; border-radius: 8px; margin-bottom: 10px; overflow: hidden; }

.entry-content:has(.bc-wrap) .faq-q { width: 100%; background: none; border: none; text-align: left; padding: 16px 50px 16px 22px; font-size: 15px; font-weight: 700; color: #0D2137; cursor: pointer; font-family: inherit; position: relative; line-height: 1.45; }

.entry-content:has(.bc-wrap) .faq-q:after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 22px; color: #1f78d1; font-weight: 400; transition: transform .2s; }

.entry-content:has(.bc-wrap) .faq-q[aria-expanded="true"]:after { content: "\2212"; color: #F5A623; }

.entry-content:has(.bc-wrap) .faq-q:hover { background: #F8FBFD; }

.entry-content:has(.bc-wrap) .faq-a { display: none; padding: 0 22px 18px; font-size: 14px; color: #2A3A4A; line-height: 1.65; border-top: 1px solid #F0F4F8; }

.entry-content:has(.bc-wrap) .faq-q[aria-expanded="true"] + .faq-a { display: block !important; padding-top: 14px; }





/* ── PL SPECIES: RELATED SPECIES GRID ───────────────────── */

.entry-content .related-ants { padding: 48px 24px; background: #F0F4F8; border-top: 1px solid #E0EAF2; }

.entry-content .related-ants-eyebrow { display: block; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: #1f78d1; text-align: center; margin-bottom: 8px; }

.entry-content .related-ants-h { font-family: 'Bebas Neue', sans-serif; font-size: 30px; color: #0D2137; letter-spacing: .02em; text-align: center; margin-bottom: 22px; }

.entry-content .related-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

.entry-content .related-card { background: #fff; border: 1px solid #E0EAF2; border-radius: 10px; padding: 14px; text-align: center; text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 10px; transition: all .2s; }

.entry-content .related-card:hover { background: #0D2137; border-color: #0D2137; text-decoration: none; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(13,33,55,.12); }

.entry-content .related-card:hover .related-name  { color: #fff; }

.entry-content .related-card:hover .related-thumb { background: #F5A623; }

.entry-content .related-thumb { background: #F0F4F8; border-radius: 50%; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; transition: background .2s; }

.entry-content .related-thumb img { width: 48px; height: 48px; object-fit: cover; border-radius: 50%; }

.entry-content .related-name { font-size: 13px; font-weight: 700; color: #0D2137; letter-spacing: .02em; }

.entry-content .related-card.all-link { background: #0D2137; }

.entry-content .related-card.all-link .related-thumb { background: #F5A623; color: #0D2137; font-family: 'Bebas Neue', sans-serif; font-size: 24px; }

.entry-content .related-card.all-link .related-name { color: #fff; }

.entry-content .related-card.all-link:hover .related-name { color: #F5A623; }

@media(max-width:768px) { .entry-content .related-grid { grid-template-columns: repeat(2, 1fr); } }





/* ── PL SPECIES: BOTTOM CTA ──────────────────────────────── */

.entry-content .bottom-cta { background: #0D2137; color: #fff; padding: 64px 24px; text-align: center; }

.entry-content .bottom-cta-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .16em; color: #F5A623; margin-bottom: 14px; display: block; }

.entry-content .bottom-cta-h { font-family: 'Bebas Neue', sans-serif !important; font-size: clamp(30px, 4.4vw, 42px) !important; color: #fff !important; letter-spacing: .02em !important; line-height: 1.1 !important; margin-bottom: 14px; }

.entry-content .bottom-cta-p { font-size: 16px; color: #C8DDE8; margin-bottom: 24px; max-width: 600px; margin-left: auto; margin-right: auto; line-height: 1.6; }

.entry-content .bottom-stops { background: #1A3145; border: 1px solid #2E4456; border-radius: 10px; padding: 22px 26px; margin: 0 auto 28px; max-width: 640px; display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: center; text-align: left; }

.entry-content .bottom-stops-mark { font-family: 'Bebas Neue', sans-serif; font-size: 58px; color: #F5A623; line-height: .85; letter-spacing: .02em; border-right: 1px solid #2E4456; padding-right: 20px; text-align: center; }

.entry-content .bottom-stops-mark .bs-sub { display: block; font-size: 10px; letter-spacing: .14em; color: #C8DDE8; margin-top: 6px; font-family: 'Inter', sans-serif; font-weight: 700; }

.entry-content .bottom-stops-text { font-size: 14px; line-height: 1.6; color: #C8DDE8; }

.entry-content .bottom-stops-text strong { color: #F5A623; }

.entry-content .bottom-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; align-items: center; }

.entry-content .btn-call-large { background: #F5A623; color: #0D2137; font-weight: 900; font-size: 18px; letter-spacing: .04em; padding: 18px 30px; border-radius: 8px; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }

.entry-content .btn-call-large:hover { background: #FFB733; color: #0D2137; text-decoration: none; }

.entry-content .btn-desktop-label { display: inline; }

.entry-content .btn-mobile-label  { display: none; }

@media(max-width:600px) {

  .entry-content .bottom-stops { grid-template-columns: 1fr; gap: 14px; padding: 20px 22px; text-align: center; }

  .entry-content .bottom-stops-mark { border-right: none; border-bottom: 1px solid #2E4456; padding-right: 0; padding-bottom: 14px; font-size: 52px; }

  .entry-content .btn-desktop-label { display: none; }

  .entry-content .btn-mobile-label  { display: inline; }

  .entry-content .btn-call-large { font-size: 16px; padding: 16px 22px; }

}





/* ── PL SPECIES: JUMP LINKS ──────────────────────────────── */

.entry-content .jump-link { text-decoration: none; color: inherit; }

.entry-content .jump-link:hover .pain-label { color: #1f78d1; }





/* ── PL SPECIES: MOBILE STICKY CALL + TEXT BAR ──────────── */

/* Unscoped: position:fixed requires global scope. Sitewide pattern. */

.mobile-sticky-cta { display: none; }

@media(max-width:768px) {

  .mobile-sticky-cta { display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; box-shadow: 0 -2px 12px rgba(0,0,0,.22); }

  .mobile-sticky-cta a { flex: 1; padding: 14px 12px; text-align: center; font-weight: 900; font-size: 14px; letter-spacing: .06em; text-decoration: none; display: flex; align-items: center; justify-content: center; gap: 8px; }

  .mobile-sticky-cta a:hover { text-decoration: none; }

  .msc-call { background: #F5A623; color: #0D2137 !important; }

  .msc-text  { background: #1f78d1; color: #fff !important; }

  .msc-ico   { display: flex; align-items: center; align-self: center; line-height: 1; }

  .msc-ico svg { display: block; margin-top: 3px; }

  body { padding-bottom: 54px; }

}





/* ── PL SPECIES: INLINE LIGHTBOX ─────────────────────────── */

/* Zero dependencies. Triggered by .pl-zoomable on any species image. */

.pl-zoomable { cursor: zoom-in; }

.pl-lightbox-overlay {

  display: none;

  position: fixed;

  inset: 0;

  background: rgba(0,0,0,.88);

  z-index: 9999;

  align-items: center;

  justify-content: center;

  padding: 24px;

  cursor: zoom-out;

}

.pl-lightbox-overlay.open { display: flex; }

.pl-lightbox-img {

  max-width: 90vw;

  max-height: 88vh;

  border-radius: 8px;

  box-shadow: 0 8px 48px rgba(0,0,0,.5);

  object-fit: contain;

  cursor: default;

}

.pl-lightbox-close {

  position: absolute;

  top: 16px;

  right: 20px;

  font-size: 36px;

  color: #fff;

  cursor: pointer;

  line-height: 1;

  background: none;

  border: none;

  opacity: .7;

  font-family: inherit;

  padding: 4px 10px;

  transition: opacity .15s;

}

.pl-lightbox-close:hover { opacity: 1; }

.pl-lightbox-caption {

  position: absolute;

  bottom: 20px;

  left: 50%;

  transform: translateX(-50%);

  color: rgba(255,255,255,.6);

  font-size: 12px;

  letter-spacing: .05em;

  text-align: center;

  white-space: nowrap;

  max-width: 80vw;

  overflow: hidden;

  text-overflow: ellipsis;

}





/* =============================================================

   GLOBAL CSS V62 ADDITIONS

   All new classes below. Zero existing classes modified.

   ============================================================= */





/* ── PL SPECIES: AKA BOOKING-SHEET BLOCK ─────────────────────

   Sits between .mugshot-sci and .pain-meter in the mug shot

   section. Styled like a police booking card alias line.

   Gold AKA badge + italic alias names.

   Scoped with :has(.bc-wrap) to prevent bleed into service pages.

────────────────────────────────────────────────────────────── */

.entry-content:has(.bc-wrap) .mugshot-aka {

  display: flex;

  align-items: center;

  gap: 9px;

  margin: 8px 0 20px;

  padding: 7px 12px 7px 10px;

  background: #fdf6e9;

  border-left: 3px solid #F5A623;

  border-radius: 0 4px 4px 0;

}



.entry-content:has(.bc-wrap) .mugshot-aka-label {

  font-size: 9px;

  font-weight: 900;

  letter-spacing: .1em;


  color: #0D2137;

  background: #F5A623;

  padding: 2px 7px;

  border-radius: 3px;

  white-space: nowrap;

  flex-shrink: 0;

  line-height: 1.6;

}



.entry-content:has(.bc-wrap) .mugshot-aka-names {

  font-size: 13px;

  color: #5a3e00;

  font-style: italic;

  line-height: 1.4;

}





/* ── PL SPECIES: CONFUSION MATRIX AKA + SCI NAME CLASSES ─────

   .cm-aka             -- alias line; amber, bold, shown ABOVE sci name

   .cm-sci             -- scientific name; grey, smaller, secondary

   .self-badge         -- "This species" identity badge

   .confusion-callout  -- summary paragraph below the confusion table

────────────────────────────────────────────────────────────── */

.entry-content .cm-aka {

  display: block;

  font-size: 11px;

  font-style: italic;

  font-weight: 700;

  color: #b86e00;

  margin: 3px 0 1px;

  letter-spacing: .01em;

}



.entry-content .cm-sci {

  display: block;

  font-size: 10px;

  font-style: italic;

  color: #aaa;

  margin-top: 1px;

  line-height: 1.4;

}



.entry-content .self-badge {

  display: inline-block;

  background: #0D2137;

  color: #F5A623;

  font-size: 8px;

  font-weight: 900;

  letter-spacing: .1em;


  padding: 2px 7px;

  border-radius: 3px;

  margin-top: 4px;

  width: fit-content;

}



.entry-content .confusion-callout {

  background: #FFF8F0;

  border-left: 3px solid #F5A623;

  border-radius: 0 6px 6px 0;

  padding: 14px 18px;

  margin-top: 14px;

  font-size: 13.5px;

  color: #2A3A4A;

  line-height: 1.65;

}





/* ── MUGSHOT: CIRCULAR IMAGE FRAME ───────────────────────────

   Clips white background corners of AI-generated mugshot images.

────────────────────────────────────────────────────────────── */

.entry-content .mugshot-img img {

  border-radius: 50%;

  object-fit: cover;

}



/* ── CONFUSION MATRIX: LARGE CIRCULAR SPECIES IMAGE ──────────

   Replaces the small 44px .species-thumb for the confusion matrix

   on species pages. Circular, clickable (cursor: zoom-in via

   .pl-zoomable), centered above species name.

────────────────────────────────────────────────────────────── */

.entry-content .species-cm-img {

  width: 80px;

  height: 80px;

  border-radius: 50%;

  object-fit: cover;

  display: block;

  margin: 0 auto 10px;

  border: 2px solid #E0EAF2;

  background: #F0F4F8;

  flex-shrink: 0;

}

.entry-content .species-cm-img:hover {

  border-color: #1f78d1;

}



/* Vertical stacked layout: image centered above name/AKA/sci */

.entry-content .species-cell-v {

  flex-direction: column;

  align-items: center;

  text-align: center;

  gap: 4px;

}

.entry-content .species-cell-v strong {

  display: block;

  font-size: 13px;

  font-weight: 800;

  color: #0D2137;

  line-height: 1.25;

}



/* Wider first column for confusion matrix on species pages */

.entry-content:has(.bc-wrap) .confusion-table th:first-child,

.entry-content:has(.bc-wrap) .confusion-table td:first-child {

  width: 20%;

}





/* ============================================================

   V64 FIXES - PEST LIBRARY SPECIES PAGES (.bc-wrap scoped)

   ============================================================ */



/* -- FIX D: Self-badge above ant image (all viewports) --

   td:first-child becomes position:relative so the badge can

   be anchored absolutely to the top of the cell.

   :has(.self-badge) scopes extra padding-top to the self-row

   only - comparison rows are unaffected.

   Desktop: badge centered above the image in the narrow column.

   Mobile breakpoint overrides left/top values below. */



.entry-content:has(.bc-wrap) .confusion-table td:first-child {

  position: relative;

}



/* Self-row only: push content down to make room for badge above */

.entry-content:has(.bc-wrap) .confusion-table td:first-child:has(.self-badge) {

  padding-top: 36px !important;

}



/* Badge: pulled out of flow, anchored top-center (desktop) */

.entry-content:has(.bc-wrap) .confusion-table td:first-child .self-badge {

  position: absolute;

  top: 10px;

  left: 50%;

  transform: translateX(-50%);

  margin: 0;

  white-space: nowrap;

}





/* ============================================================

   V64 MOBILE FIXES (max-width:768px)

   Breakpoint matches existing confusion-table stacked-card

   breakpoint already in this file.

   ============================================================ */



@media(max-width:768px) {



  /* -- FIX A: Root cause - column width --

     V63 :has(.bc-wrap) td:first-child width:20% has higher

     specificity than the general mobile width:100% rule.

     Override it back to full width. */

  .entry-content:has(.bc-wrap) .confusion-table th:first-child,

  .entry-content:has(.bc-wrap) .confusion-table td:first-child {

    width: 100% !important;

  }



  /* -- FIX B: Last card yellow line --

     Line 2511: tr:last-child td { border-bottom:none } is a global

     rule (no media query). On mobile stacked cards it kills the

     yellow border-bottom on the last card's td:first-child.

     Restore it explicitly. */

  .entry-content:has(.bc-wrap) .confusion-table tr:last-child td:first-child {

    border-bottom: 2px solid #F5A623 !important;

    margin-bottom: 6px !important;

    padding-bottom: 10px !important;

  }



  /* -- FIX C: Card inner padding --

     tr has padding:14px 16px but horizontal padding on

     block-converted table rows is unreliable cross-browser.

     Explicit td padding is the safe approach. */

  .entry-content:has(.bc-wrap) .confusion-table td {

    padding-left: 14px !important;

    padding-right: 14px !important;

  }



  /* -- FIX D (mobile override): Self-badge above ant image --

     On mobile cards, badge is left-aligned at the top of the

     full-width card header. Self-row gets extra padding-top

     so the image+name row sits below the badge with breathing room. */

  .entry-content:has(.bc-wrap) .confusion-table td:first-child .self-badge {

    left: 14px;

    transform: none;

    top: 10px;

  }

  .entry-content:has(.bc-wrap) .confusion-table td:first-child:has(.self-badge) {

    padding-top: 40px !important;

  }



  /* -- FIX E: species-cell-v row layout --

     Row layout: image beside name instead of stacked above.

     cm-aka restored (fits on one line with Fix A applied).

     cm-sci hidden on mobile (too verbose at narrow widths). */

  .entry-content:has(.bc-wrap) .species-cell-v {

    flex-direction: row !important;

    gap: 12px !important;

    align-items: center !important;

    text-align: left !important;

  }

  .entry-content:has(.bc-wrap) .species-cell-v strong {

    font-size: 13px;

    text-align: left;

    line-height: 1.3;

  }

  .entry-content:has(.bc-wrap) .species-cm-img {

    width: 40px !important;

    height: 40px !important;

    flex-shrink: 0;

    margin: 0 !important;

  }

  .entry-content:has(.bc-wrap) .confusion-table .cm-aka {

    display: block !important;

    font-size: 11px;

    line-height: 1.4;

  }

  .entry-content:has(.bc-wrap) .confusion-table .cm-sci {

    display: none !important;

  }

  /* Self-badge: compact size, already positioned absolute above */

  .entry-content:has(.bc-wrap) .confusion-table .self-badge {

    font-size: 9px !important;

    padding: 2px 7px !important;

  }



  /* -- FIX F: Confusion matrix section top padding --

     .sec-light drops to 36px top padding at mobile. Add 16px

     extra so the section breathes from the identification

     section above it. */

  .entry-content:has(.bc-wrap) #confusion-matrix {

    padding-top: 52px !important;

  }



}



/* ============================================================

   END V64 FIXES

   ============================================================ */





/* ============================================================

   V65 FIXES - PEST LIBRARY SPECIES PAGES (.bc-wrap scoped)

   ============================================================ */



/* -- V65 Fix 1: treatment-eyebrow centering --

   V63 centered .eyebrow and .risk-sub-eyebrow but did not add

   text-align:center to .treatment-eyebrow (the gold branded label

   above H3s in Difficulty 2/3+ sections). Left-aligned by default. */

.entry-content:has(.bc-wrap) .treatment-eyebrow {

  text-align: center;

}



/* -- V65 Fix 2: risk-sub section breathing room --

   The existing rule sets margin-bottom:42px on .risk-sub.

   This gives only 42px between Treatment, DIY Prevention, DIY

   Pitfalls, FAQ, and Reality Check sections. Too tight.

   Override with 64px bottom margin inside .bc-wrap scope.

   Add padding-top:24px and a subtle border-top to any risk-sub

   that follows another risk-sub, creating a clear visual separator

   between consecutive sub-sections within the same risk group. */

.entry-content:has(.bc-wrap) .risk-sub {

  margin-bottom: 64px;

}

.entry-content:has(.bc-wrap) .risk-sub + .risk-sub {

  padding-top: 24px;

  border-top: 1px solid rgba(200, 221, 232, 0.5);

}

.entry-content:has(.bc-wrap) .risk-sub:last-child {

  margin-bottom: 0;

}



/* ============================================================

   END V65 FIXES

   ============================================================ */



/* =============================================================

   V66 FIX 1: DIY FAIL CARD-GRID PATTERN

   Used by PharaohAnt, AcrobatAnt, TawnyCrazyAnt (V1) and future pages

   ============================================================= */



.entry-content .diy-fail-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  grid-auto-rows: auto;

  gap: 18px;

  margin-top: 8px;

  align-items: stretch;

}



.entry-content .diy-fail-card {

  background: #FFF8F0;

  border: 1px solid #F0D9AE;

  border-top: 4px solid #F5A623;

  border-radius: 6px;

  padding: 20px 18px 18px;

  display: flex;

  flex-direction: column;

  gap: 10px;

}



.entry-content .diy-fail-head {

  display: flex;

  flex-direction: column;

  gap: 8px;

}



.entry-content .diy-fail-head h4 {

  font-size: 13px;

  font-weight: 800;

  letter-spacing: .03em;


  color: #0D2137;

  margin: 0;

  line-height: 1.35;

}



.entry-content .diy-fail-pill {

  display: inline-block;

  font-size: 10px;

  font-weight: 900;

  letter-spacing: .1em;


  padding: 4px 10px;

  border-radius: 3px;

  background: #C0392B;

  color: #fff;

  align-self: flex-start;

}



/* "Works If Done Correctly" / "Works If Applied Correctly" / "Required" - green pill */

.entry-content .diy-fail-pill:not(:empty) {

  background: #C0392B;

  color: #fff;

}



/* "Required" / "Zero Effect" pills */

.entry-content .diy-fail-card:nth-child(1) .diy-fail-pill {

  background: #C0392B;

  color: #fff;

}



.entry-content .diy-fail-card p {

  font-size: 14px;

  color: #5a3a00;

  line-height: 1.65;

  margin: 0;

  flex: 1;

}



/* Mobile: stack cards single column */

@media (max-width: 768px) {

  .entry-content .diy-fail-grid {

    grid-template-columns: 1fr;

    gap: 14px;

  }

}



/* =============================================================

   V66 FIX 2: MUGSHOT STAT MOBILE TEXT OVERFLOW

   Prevents text clipping in 2-col mugshot stats grid on narrow screens

   ============================================================= */



.entry-content .mugshot-stat-val {

  overflow-wrap: break-word;

  word-break: break-word;

}



@media (max-width: 480px) {

  .entry-content .mugshot-stats {

    grid-template-columns: 1fr;

  }

}



/* =============================================================

   V67 FIX: REALITY CHECK SECTION CLASSES

   Used by PharaohAnt V4, TawnyCrazyAnt V4 (Persistence 3/3 pages)

   ============================================================= */



.entry-content .reality-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 18px;

  margin: 24px 0 8px;

}



.entry-content .reality-card {

  background: #fff;

  border: 1px solid #D9E4EE;

  border-top: 4px solid #1f78d1;

  border-radius: 6px;

  padding: 20px 18px 18px;

  display: flex;

  flex-direction: column;

  gap: 10px;

}



.entry-content .rc-num {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  width: 32px;

  height: 32px;

  background: #1f78d1;

  color: #fff;

  font-family: 'Bebas Neue', sans-serif;

  font-size: 18px;

  border-radius: 50%;

  flex-shrink: 0;

  align-self: flex-start;

}



.entry-content .reality-card h4 {

  font-size: 13px;

  font-weight: 800;

  letter-spacing: .03em;


  color: #0D2137;

  margin: 0;

  line-height: 1.35;

}



.entry-content .reality-card p {

  font-size: 14px;

  color: #2A3A4A;

  line-height: 1.65;

  margin: 0;

}



.entry-content .reality-note {

  background: #FFF3CD;

  border: 1px solid #F5C842;

  border-left: 4px solid #F5A623;

  border-radius: 6px;

  padding: 16px 20px;

  margin-top: 20px;

  font-size: 14px;

  color: #5a3a00;

  line-height: 1.65;

}



.entry-content .reality-note strong {

  color: #0D2137;

}



@media (max-width: 768px) {

  .entry-content .reality-grid {

    grid-template-columns: 1fr;

    gap: 14px;

  }

}



/*

=============================================================

  V68 ADDITIONS: Treatment Protocol Grid and Versus Card

  Per PI V128 Section 28 visual structure standard.

  First used: PL-GermanCockroach-V3 (April 26, 2026).

=============================================================

*/



.entry-content .treatment-protocol-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 20px;

  margin: 30px 0;

}



.entry-content .treatment-protocol-card {

  background: #fff;

  border: 1px solid #D9E4EE;

  border-radius: 6px;

  padding: 22px 20px 20px;

  display: flex;

  flex-direction: column;

  gap: 12px;

  box-shadow: 0 1px 3px rgba(13, 33, 55, 0.06);

}



.entry-content .tpc-step {

  display: inline-block;

  align-self: flex-start;

  font-family: 'Bebas Neue', sans-serif;

  font-size: 13px;

  letter-spacing: 0.12em;


  color: #C56B1A;

  background: #FFF4EA;

  padding: 5px 12px;

  border-radius: 3px;

}



.entry-content .tpc-title {

  font-size: 17px;

  font-weight: 800;

  color: #0D2137;

  margin: 0;

  line-height: 1.3;

  letter-spacing: 0.01em;

}



.entry-content .tpc-body {

  font-size: 14px;

  color: #2A3A4A;

  line-height: 1.65;

  margin: 0;

}



.entry-content .tpc-why {

  font-size: 13px;

  color: #4A5A6A;

  background: #F4F8FB;

  padding: 12px 14px;

  border-radius: 4px;

  font-style: italic;

  line-height: 1.55;

  margin-top: 4px;

}



.entry-content .tpc-why strong {

  font-style: normal;

  font-weight: 800;

  color: #0D2137;

}



.entry-content .versus-card {

  margin: 30px 0;

  border-radius: 8px;

  overflow: hidden;

  box-shadow: 0 2px 10px rgba(13, 33, 55, 0.10);

}



.entry-content .versus-card-row {

  padding: 22px 26px;

  display: flex;

  flex-direction: column;

  gap: 8px;

}



.entry-content .versus-card-pmo {

  background: #0D2137;

  color: #fff;

}



.entry-content .versus-card-spray {

  background: #FFFFFF;

  color: #2A3A4A;

  border-top: 1px solid #D9E4EE;

}



.entry-content .versus-card-label {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 16px;

  letter-spacing: 0.10em;


  flex-shrink: 0;

  min-width: 150px;

  word-break: break-word;

  overflow-wrap: break-word;

  white-space: normal;

}



.entry-content .versus-card-pmo .versus-card-label {

  color: #F5A623;

}



.entry-content .versus-card-spray .versus-card-label {

  color: #0D2137;

}



.entry-content .versus-card-text {

  font-size: 14px;

  line-height: 1.65;

  flex: 1;

}



@media (min-width: 768px) {

  .entry-content .versus-card-row {

    flex-direction: row;

    align-items: flex-start;

    gap: 24px;

  }

}



@media (max-width: 768px) {

  .entry-content .treatment-protocol-grid {

    grid-template-columns: 1fr;

    gap: 16px;

  }

}



/*

=============================================================

  V68 ADDITIONS: Inline style replacements (per Sam zero-inline rule)

  Replaces inline style attributes inherited from Fire Ant V8 era.

  PL widgets going forward use these classes instead of inline style.

=============================================================

*/



.entry-content .eyebrow.spacing-top {

  margin-top: 40px;

}



.entry-content .sec-p.constrained {

  max-width: 780px;

}



.entry-content .confusion-table th.col-species {

  width: 20%;

}



.entry-content .cm-species-link {

  color: inherit;

  font-weight: 700;

  text-decoration: none;

}



.entry-content .cm-species-link:hover {

  color: #1f78d1;

}



/*

=============================================================

  V68 ADDITION: Inline external link visibility

  The base `a { text-decoration: none; color: inherit; }` rule from V67

  makes inline external links invisible in body copy. The .ext-link class

  restores visibility for inline citations on PL pages without changing

  the global default (which is needed for nav, button, and confusion

  matrix species links).

=============================================================

*/



.entry-content .sec-p a[target="_blank"],

.entry-content .hero-summary a[target="_blank"],

.entry-content .danger-card a[target="_blank"],

.entry-content .diy-fail-card p a[target="_blank"] {

  color: #1f78d1;

  font-size: inherit;

  font-weight: inherit;

  line-height: inherit;

  text-decoration: none;

  transition: color 0.15s ease;

}



.entry-content .sec-p a[target="_blank"]:hover,

.entry-content .hero-summary a[target="_blank"]:hover,

.entry-content .danger-card a[target="_blank"]:hover,

.entry-content .diy-fail-card p a[target="_blank"]:hover {

  color: #C56B1A;

  text-decoration: none;

}



/*

=============================================================

  V71 ADDITIONS

=============================================================

*/



/* ── DIY BAND: full-width section wrapper ─────────────────

   Separates DIY Prevention + DIY Can Fail from the

   Difficulty to Treat risk group. Gets own #diy anchor.

   .diy-band-header: darker strip (#EAE5DC) at the top of the

     section, full-width, left-aligned, mirrors risk banner rhythm.

   .diy-band body: warm off-white (#F7F4EF), distinct from:

     - risk-content.treat background (#F0F4F8, cool slate)

     - sec-pale / FAQ background (#E0EAF2, cool blue; was #EBF5FB until 2026-08-02)

   The existing prevention-grid and diy-fail-grid classes are

   reused unchanged inside .diy-band-inner.

──────────────────────────────────────────────────────────── */



.entry-content:has(.bc-wrap) .diy-band {

  background: #F7F4EF;

}



/* Header strip: darker tan, full-width, left-aligned */

.entry-content:has(.bc-wrap) .diy-band-header {

  background: #EAE5DC;

  padding: 36px 24px 32px;

}



.entry-content:has(.bc-wrap) .diy-band-header-inner {

  max-width: 920px;

  margin: 0 auto;

}



.entry-content:has(.bc-wrap) .diy-band-eyebrow {

  display: block;

  font-size: 11px;

  font-weight: 800;

  letter-spacing: .16em;


  color: #5a4a2a;

  margin-bottom: 10px;

  text-align: left;

}



.entry-content:has(.bc-wrap) .diy-band-h {

  font-family: 'Bebas Neue', sans-serif;

  font-size: clamp(26px, 3.8vw, 38px);

  line-height: 1.05;

  letter-spacing: .02em;

  color: #0D2137;

  margin-bottom: 8px;

  text-align: left;

}



.entry-content:has(.bc-wrap) .diy-band-sub {

  display: block;

  font-family: 'Inter', sans-serif;

  font-size: clamp(14px, 2vw, 16px);

  font-weight: 500;

  color: #4A5A6A;

  line-height: 1.4;

  font-style: italic;

  text-align: left;

  margin-bottom: 0;

}



/* Body area: content inside the warm off-white zone */

.entry-content:has(.bc-wrap) .diy-band-inner {

  max-width: 920px;

  margin: 0 auto;

  padding: 48px 24px 56px;

}



/* DIY Prevention + Can Fail sub-section spacing */

.entry-content:has(.bc-wrap) .diy-band .diy-prevention-block {

  margin-bottom: 48px;

}



.entry-content:has(.bc-wrap) .diy-band .diy-prevention-block:last-child {

  margin-bottom: 0;

}



.entry-content:has(.bc-wrap) .diy-band .risk-sub-eyebrow {

  display: block;

  font-size: 11px;

  font-weight: 800;

  letter-spacing: .14em;


  color: #0D2137;

  text-align: center;

  margin-bottom: 8px;

}



.entry-content:has(.bc-wrap) .diy-band .sec-h3 {

  font-family: 'Bebas Neue', sans-serif;

  font-size: clamp(20px, 2.8vw, 26px);

  line-height: 1.1;

  letter-spacing: .02em;

  color: #0D2137;

  margin: 0 0 12px;

  text-align: center;

}



@media(max-width: 768px) {

  .entry-content:has(.bc-wrap) .diy-band-header {

    padding: 28px 20px 24px;

  }

  .entry-content:has(.bc-wrap) .diy-band-inner {

    padding: 32px 20px 40px;

  }

  .entry-content:has(.bc-wrap) .diy-band .diy-prevention-block {

    margin-bottom: 36px;

  }

}



/* ── AKA LEAD EYEBROW: top spacing fix ───────────────────

   The "Also Known As" eyebrow in the identification section

   needs clearance from the content block above it.

   Apply .eyebrow.aka-lead to that specific eyebrow element.

──────────────────────────────────────────────────────────── */



.entry-content:has(.bc-wrap) .eyebrow.aka-lead {

  margin-top: 48px;

  font-size: 14px;

  letter-spacing: .14em;

}



/*

=============================================================

  V71 ADDITIONAL FIXES (same version, appended)

=============================================================

*/



/* Hero H1 word-break: prevents mobile text overflow/reflow

   on long H1 strings with pipe characters */

.entry-content .hero-h1 {

  word-break: break-word;

  overflow-wrap: break-word;

}



/* Bottom stops text + CTA paragraph: force left-align on mobile.

   Parent .bottom-stops switches to text-align:center at 600px;

   .bottom-cta has text-align:center globally. Both cascade down

   and center the paragraph text on narrow viewports. */

@media(max-width: 600px) {

  .entry-content .bottom-stops-text {

    text-align: left;

  }

  .entry-content .bottom-cta-p {

    text-align: left;

  }

}



/* DIY band header: full-bleed background strip like risk banners,

   with inner text constrained to 1100px centered — matching

   .risk-banner-wrap so the left edge aligns with risk banner text.

   The padding on .diy-band-header provides gutters on narrow viewports. */

.entry-content:has(.bc-wrap) .diy-band-header {

  padding-left: 24px;

  padding-right: 24px;

}



.entry-content:has(.bc-wrap) .diy-band-header-inner {

  max-width: 1100px;

  margin: 0 auto;

}



/* ── BIOLOGY FACT BOXES ──────────────────────────────────────

   Used in Persistence biology section to break dense paragraphs

   into scannable fact cards. Each .bio-fact-grid holds

   .bio-fact-card divs. CONFIRMED label moves to a small badge

   inside each card rather than inline in prose.

──────────────────────────────────────────────────────────── */



.entry-content:has(.bc-wrap) .bio-fact-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 14px;

  margin-top: 18px;

  margin-bottom: 18px;

}



.entry-content:has(.bc-wrap) .bio-fact-card {

  background: #fff;

  border: 1px solid #D8E6EF;

  border-radius: 8px;

  padding: 18px 20px;

  display: flex;

  flex-direction: column;

  gap: 8px;

}



.entry-content:has(.bc-wrap) .bio-fact-label {

  font-size: 10px;

  font-weight: 900;

  letter-spacing: .14em;


  color: #1f78d1;

  display: block;

}



.entry-content:has(.bc-wrap) .bio-fact-value {

  font-size: 15px;

  font-weight: 700;

  color: #0D2137;

  line-height: 1.3;

}



.entry-content:has(.bc-wrap) .bio-fact-note {

  font-size: 13px;

  color: #4A5A6A;

  line-height: 1.5;

}



@media(max-width: 600px) {

  .entry-content:has(.bc-wrap) .bio-fact-grid {

    grid-template-columns: 1fr;

  }

}



/* All icons in svc-link-grid -- 32px base size */

.svc-img { width: 32px; height: 32px; object-fit: contain; flex-shrink: 0; }





/* 5-column grid at desktop. align-items:stretch forces equal heights. */





/* Mobile bottom row */




/* ── BLOG ARTICLE LAYOUT ─────────────────────────────────────
   V114 | 2026-05-14
   Used in all blog posts. Wrap post body content in .blog-article.
   GP renders H1 title and entry-meta outside .blog-article.
   H2/H3 use !important to override .entry-content h2 Bebas Neue rule.
──────────────────────────────────────────────────────────────── */

/* Single post title - suppressed site-wide via PHP; blog HTML provides its own H1 */
.single-post .entry-title { display: none !important; }

/* Hide GP auto-rendered date/author meta - blog-byline handles it */
.single-post .entry-header .entry-meta { display: none !important; }

/* Featured image - hidden; blog HTML provides the image with full layout control */
.single-post .wp-post-image { display: none !important; }

/* Hide GP prev/next post navigation and footer category meta */
.single-post #nav-below,
.single-post footer.entry-meta { display: none !important; }

/* ---- CITY GALLERY HUB ---- */

.city-tab-bar { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 18px; margin-bottom: 24px; border-bottom: 2px solid var(--border); }
.city-tab { padding: 7px 14px; background: #F0F5FA; border: none; border-radius: 20px; font-size: 13px; font-weight: 700; color: var(--navy); cursor: pointer; font-family: inherit; transition: background .15s, color .15s; white-space: nowrap; }
.city-tab.active { background: var(--blue); color: #fff; }
.city-tab:hover:not(.active) { background: #DDE8F2; }

.city-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(218px, 1fr)); gap: 14px; min-height: 200px; }

/* City gallery lightbox (V123) */
.city-lb { display: none; position: fixed; inset: 0; z-index: 9998; align-items: center; justify-content: center; padding: 16px; }
.city-lb.open { display: flex; }
.city-lb-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.82); cursor: pointer; }
.city-lb-box { position: relative; z-index: 1; background: #fff; border-radius: 12px; max-width: 700px; width: 100%; max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.city-lb-img { width: 100%; display: block; border-radius: 12px 12px 0 0; max-height: 55vh; object-fit: contain; background: #0D2137; }
.city-lb-body { padding: 18px 22px 24px; }
.city-lb-title { font-size: 16px; font-weight: 700; color: var(--navy); margin-bottom: 8px; line-height: 1.3; }
.city-lb-desc { font-size: 14px; color: #444; line-height: 1.65; }
.city-lb-close { position: absolute; top: 10px; right: 12px; background: rgba(0,0,0,.55); color: #fff; border: none; border-radius: 50%; width: 34px; height: 34px; font-size: 22px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; transition: background .15s; }
.city-lb-close:hover { background: rgba(0,0,0,.8); }
@media(max-width:600px) { .city-lb { padding: 8px; } .city-lb-body { padding: 14px 16px 18px; } .city-lb-title { font-size: 15px; } }

.city-link-strip { display: flex; flex-wrap: wrap; gap: 8px; padding: 20px 0 4px; }
.city-link-btn { display: inline-block; padding: 8px 16px; background: #F0F5FA; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--navy); text-decoration: none !important; transition: background .15s; }
.city-link-btn:hover { background: var(--blue); color: #fff !important; }

@media(max-width:600px) {
  .city-tab { font-size: 12px; padding: 6px 11px; }
  .city-photo-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .city-photo-meta { padding: 8px 10px 10px; }
}

/* =============================================================

   V125 | 2026-05-15 14:00 CST

   PICTURE POST LAYOUT (Location-Gallery single posts, cat 480)
   Classes injected by picture-post-image PHP snippet.

   ============================================================= */

.pic-post-wrap { max-width: 760px; margin: 0 auto; padding-bottom: 40px; }
.pic-post-img { width: 100%; height: auto; display: block; border-radius: 8px; margin-bottom: 20px; }
.pic-post-body { font-size: 16px; line-height: 1.75; color: var(--text); }
.pic-post-body p { margin-bottom: 16px; }
@media(max-width:600px) {
  .pic-post-img { border-radius: 4px; }
  .pic-post-body { font-size: 15px; }
}
@keyframes pmo-pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0.65); }
  50%       { box-shadow: 0 0 0 5px rgba(74,222,128,0); }
}

/* Mobile: hide ribbon entirely */

