/* ==========================================================================
   ATPC Design System — "City in a Forest" (Urban Environmental Science × Southern Modern)
   Namespace: atpc-   |   Mobile-first   |   No external fonts (system serif/sans stacks)
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --atpc-forest-900: #020f27;
  --atpc-forest-800: #031a41;
  --atpc-forest-700: #0d2c63;
  --atpc-forest-500: #3a5a94;
  --atpc-moss-400: #5b7fbf;
  --atpc-moss-100: #e3eaf6;
  --atpc-clay-600: #b44d00;
  --atpc-clay-500: #f97609;
  --atpc-clay-100: #ffeedd;
  --atpc-paper: #f4f6fa;
  --atpc-paper-2: #e8edf5;
  --atpc-card: #ffffff;
  --atpc-ink: #111a2c;
  --atpc-ink-soft: #4a5468;
  --atpc-line: #d5dbe6;
  --atpc-gold: #d8a62a;
  --atpc-focus: #1a73e8;

  --atpc-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --atpc-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --atpc-step--1: clamp(.84rem, .82rem + .1vw, .9rem);
  --atpc-step-0: clamp(1rem, .97rem + .15vw, 1.08rem);
  --atpc-step-1: clamp(1.18rem, 1.1rem + .35vw, 1.35rem);
  --atpc-step-2: clamp(1.4rem, 1.25rem + .7vw, 1.8rem);
  --atpc-step-3: clamp(1.75rem, 1.45rem + 1.4vw, 2.5rem);
  --atpc-step-4: clamp(2.1rem, 1.6rem + 2.4vw, 3.5rem);

  --atpc-space-1: .25rem; --atpc-space-2: .5rem; --atpc-space-3: .75rem; --atpc-space-4: 1rem;
  --atpc-space-5: 1.5rem; --atpc-space-6: 2rem; --atpc-space-7: 3rem; --atpc-space-8: clamp(3rem, 2rem + 4vw, 5.5rem);
  --atpc-radius: 14px; --atpc-radius-sm: 8px; --atpc-radius-pill: 999px;
  --atpc-shadow: 0 1px 2px rgba(3,26,65,.06), 0 8px 24px -12px rgba(3,26,65,.25);
  --atpc-wrap: 1200px;
  --atpc-topo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.2'%3E%3Cpath d='M-20 60c40-30 80 20 120-6s70-40 160 0'/%3E%3Cpath d='M-20 100c50-26 90 26 130-4s80-30 150 4'/%3E%3Cpath d='M-20 140c40-20 90 30 140 0s70-24 140 6'/%3E%3Cpath d='M-20 180c60-24 100 24 150-2s60-20 130 6'/%3E%3Cpath d='M-20 220c50-18 90 22 140-2s80-18 140 8'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--atpc-sans); font-size: var(--atpc-step-0); line-height: 1.65; color: var(--atpc-ink); background: var(--atpc-paper); padding-bottom: 64px; }
@media (min-width: 900px) { body { padding-bottom: 0; } }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--atpc-forest-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--atpc-clay-600); }
:focus-visible { outline: 3px solid var(--atpc-focus); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--atpc-serif); font-weight: 600; line-height: 1.15; color: var(--atpc-forest-900); letter-spacing: -.01em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: var(--atpc-step-4); } h2 { font-size: var(--atpc-step-3); } h3 { font-size: var(--atpc-step-1); }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.2em; }
table { border-collapse: collapse; width: 100%; }
.atpc-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.atpc-wrap { width: min(100% - 2.5rem, var(--atpc-wrap)); margin-inline: auto; }
.atpc-skip { position: absolute; left: -999px; top: 0; background: var(--atpc-clay-500); color: var(--atpc-forest-900); padding: .6rem 1rem; z-index: 100; }
.atpc-skip:focus { left: 1rem; top: 1rem; }
.atpc-muted { color: var(--atpc-ink-soft); font-size: var(--atpc-step--1); }
.atpc-kicker { font-family: var(--atpc-sans); text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; font-weight: 700; color: var(--atpc-clay-600); margin: 0 0 .75rem; }
.atpc-icon { width: 1.1em; height: 1.1em; fill: currentColor; flex: none; }
.atpc-placeholder-note { background: #fff6d9; border: 1px dashed #c9a43a; color: #5c4710; padding: .6rem .8rem; border-radius: var(--atpc-radius-sm); font-size: var(--atpc-step--1); }

/* ---------- 3. Buttons & links ---------- */
.atpc-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 46px; padding: .7rem 1.2rem; border-radius: var(--atpc-radius-pill); font-weight: 650; font-size: .98rem; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; line-height: 1.2; font-family: var(--atpc-sans); }
.atpc-btn:active { transform: translateY(1px); }
.atpc-btn--primary { background: var(--atpc-clay-500); color: var(--atpc-forest-900); }
.atpc-btn--primary:hover { background: #ff8f2b; color: var(--atpc-forest-900); }
.atpc-btn--call { background: var(--atpc-forest-800); color: #fff; }
.atpc-btn--call:hover { background: var(--atpc-forest-700); color: #fff; }
.atpc-btn--ghost { background: transparent; color: var(--atpc-forest-800); border-color: var(--atpc-forest-800); }
.atpc-btn--ghost:hover { background: var(--atpc-forest-800); color: #fff; }
.atpc-btn--lg { min-height: 54px; padding: .9rem 1.5rem; font-size: 1.04rem; }
.atpc-btn--sm { min-height: 38px; padding: .4rem .9rem; font-size: .88rem; }
.atpc-btn--block { width: 100%; }
.atpc-arrow-link { font-weight: 650; text-decoration: none; color: var(--atpc-clay-600); }
.atpc-arrow-link::after { content: " →"; transition: margin .2s; }
.atpc-arrow-link:hover::after { margin-left: .2rem; }
.atpc-link-call { font-weight: 700; display: inline-flex; align-items: center; gap: .35rem; }

/* ---------- 4. Header & navigation ---------- */
.atpc-header { position: sticky; top: 0; z-index: 50; background: var(--atpc-paper); border-bottom: 1px solid var(--atpc-line); }
.atpc-header__bar { display: flex; align-items: center; gap: 1rem; min-height: 72px; }
.atpc-brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--atpc-forest-900); flex: none; }
.atpc-brand svg { width: 42px; height: 42px; }
.atpc-brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.atpc-brand__name { font-family: var(--atpc-serif); font-weight: 700; font-size: 1.12rem; }
.atpc-brand__tag { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--atpc-ink-soft); margin-top: 3px; }
.atpc-brand--light { color: #fff; } .atpc-brand--light .atpc-brand__tag { color: #b8c4d8; }
.atpc-header__actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
.atpc-header__quote { display: none; }
.atpc-header__call span { display: none; }
@media (min-width: 560px) { .atpc-header__call span { display: inline; } }
.atpc-header__menu { width: 48px; height: 48px; border-radius: 12px; border: 1px solid var(--atpc-line); background: var(--atpc-card); display: grid; place-items: center; cursor: pointer; }
.atpc-header__burger, .atpc-header__burger::before, .atpc-header__burger::after { display: block; width: 22px; height: 2px; background: var(--atpc-forest-900); position: relative; transition: transform .25s, background .25s; content: ""; }
.atpc-header__burger::before { position: absolute; top: -7px; } .atpc-header__burger::after { position: absolute; top: 7px; }
.atpc-header__menu[aria-expanded="true"] .atpc-header__burger { background: transparent; }
.atpc-header__menu[aria-expanded="true"] .atpc-header__burger::before { transform: translateY(7px) rotate(45deg); }
.atpc-header__menu[aria-expanded="true"] .atpc-header__burger::after { transform: translateY(-7px) rotate(-45deg); }

.atpc-nav { position: fixed; inset: 72px 0 0 0; background: var(--atpc-paper); overflow-y: auto; padding: 1rem 1.25rem 6rem; display: none; z-index: 55; }
.atpc-nav.is-open { display: block; }
.atpc-nav__list { list-style: none; margin: 0; padding: 0; }
.atpc-nav__item { border-bottom: 1px solid var(--atpc-line); }
.atpc-nav__link, .atpc-nav__trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 1rem .25rem; font: 600 1.1rem var(--atpc-serif); color: var(--atpc-forest-900); background: none; border: 0; text-decoration: none; cursor: pointer; text-align: left; }
.atpc-nav__chev { width: 14px; height: 14px; transition: transform .2s; }
.atpc-nav__trigger[aria-expanded="true"] .atpc-nav__chev { transform: rotate(180deg); }
.atpc-nav__panel { display: none; padding: 0 .25rem 1rem; }
.atpc-nav__trigger[aria-expanded="true"] + .atpc-nav__panel { display: grid; gap: 1rem; }
.atpc-nav__group-title { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--atpc-clay-600); font-weight: 700; margin: 0 0 .35rem; }
.atpc-nav__group ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .1rem; }
.atpc-nav__group a { display: block; padding: .35rem 0; text-decoration: none; color: var(--atpc-ink); }
.atpc-nav__group a:hover, .atpc-nav__group a[aria-current] { color: var(--atpc-clay-600); }
.atpc-nav__mobile-cta { display: grid; gap: .6rem; margin-top: 1.5rem; }

@media (min-width: 1100px) {
  .atpc-header__menu, .atpc-nav__mobile-cta { display: none; }
  .atpc-nav { position: static; display: block; background: none; padding: 0; overflow: visible; margin-left: 1.5rem; }
  .atpc-nav__list { display: flex; gap: .25rem; }
  .atpc-nav__item { border: 0; position: relative; }
  .atpc-nav__link, .atpc-nav__trigger { font: 600 .95rem var(--atpc-sans); padding: .6rem .7rem; border-radius: 8px; gap: .35rem; }
  .atpc-nav__link:hover, .atpc-nav__trigger:hover, .atpc-nav__link[aria-current] { background: var(--atpc-paper-2); }
  .atpc-nav__panel { position: absolute; top: calc(100% + 10px); left: -1rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); box-shadow: var(--atpc-shadow); padding: 1.4rem; min-width: 640px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .atpc-nav__item:last-child .atpc-nav__panel, .atpc-nav__item:nth-child(4) .atpc-nav__panel { left: auto; right: -1rem; }
}

/* ---------- 5. Breadcrumbs ---------- */
.atpc-breadcrumbs { padding-top: 1rem; font-size: var(--atpc-step--1); }
.atpc-breadcrumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .25rem; }
.atpc-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: .35rem; color: var(--atpc-line); }
.atpc-breadcrumbs a { color: var(--atpc-ink-soft); }
.atpc-breadcrumbs [aria-current] { color: var(--atpc-ink); font-weight: 600; }

/* ---------- 6. Sections ---------- */
.atpc-section { padding-block: var(--atpc-space-8); }
.atpc-section__head { max-width: 760px; margin-bottom: var(--atpc-space-6); }
.atpc-section__head--split { max-width: none; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; }
.atpc-section__head--split h2 { margin: 0; }
.atpc-section__more { margin-top: var(--atpc-space-5); color: var(--atpc-ink-soft); }

/* ---------- 7. Home hero ---------- */
.atpc-hero { background: var(--atpc-forest-800) var(--atpc-topo); color: #e3e9f4; position: relative; overflow: hidden; }
.atpc-hero::after { content: ""; position: absolute; inset: auto -10% -1px -10%; height: 60px; background: var(--atpc-paper); clip-path: ellipse(60% 100% at 50% 100%); }
.atpc-hero__inner { display: grid; gap: var(--atpc-space-6); padding-block: var(--atpc-space-7) calc(var(--atpc-space-8) + 30px); position: relative; z-index: 1; }
.atpc-hero .atpc-kicker { color: #ffa24d; }
.atpc-hero__title { color: #fff; font-size: var(--atpc-step-4); }
.atpc-hero__title em { font-style: italic; color: #ffa24d; font-weight: 500; }
.atpc-hero__lede { font-size: var(--atpc-step-1); color: #e3e9f4; max-width: 640px; }
.atpc-hero__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: var(--atpc-space-5) 0; }
.atpc-hero .atpc-btn--call { background: #fff; color: var(--atpc-forest-900); }
.atpc-hero__facts { list-style: none; padding: 0; margin: var(--atpc-space-5) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.2rem; }
.atpc-hero__facts strong { display: block; font: 600 1.6rem var(--atpc-serif); color: #fff; }
.atpc-hero__facts span { font-size: .82rem; color: #b8c4d8; }
@media (min-width: 980px) { .atpc-hero__inner { grid-template-columns: 1.25fr .9fr; align-items: center; } }

.atpc-problem-selector { background: var(--atpc-card); color: var(--atpc-ink); border-radius: calc(var(--atpc-radius) + 6px); padding: 1.4rem; box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); }
.atpc-problem-selector__title { font-size: var(--atpc-step-2); margin-bottom: 1rem; }
.atpc-problem-selector__chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.atpc-problem-selector__chip { border: 1px solid var(--atpc-line); background: var(--atpc-paper); border-radius: var(--atpc-radius-pill); padding: .5rem .85rem; font: 600 .86rem var(--atpc-sans); cursor: pointer; color: var(--atpc-ink); min-height: 40px; }
.atpc-problem-selector__chip[aria-selected="true"] { background: var(--atpc-forest-800); color: #fff; border-color: var(--atpc-forest-800); }
.atpc-problem-selector__panel { display: grid; grid-template-columns: 96px 1fr; gap: 1rem; align-items: center; background: var(--atpc-paper); border-radius: var(--atpc-radius); padding: 1rem; }
.atpc-problem-selector__panel[hidden] { display: none; }
.atpc-problem-selector__panel p { margin: 0 0 .5rem; }
.atpc-problem-selector__links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-weight: 600; }
.atpc-problem-selector__more { display: inline-block; margin-top: 1rem; font-size: .9rem; font-weight: 600; }

/* ---------- 8. Service cards ---------- */
.atpc-service-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.atpc-service-card__link { display: flex; flex-direction: column; height: 100%; padding: 1.3rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); text-decoration: none; color: var(--atpc-ink); transition: transform .2s, box-shadow .2s, border-color .2s; }
.atpc-service-card__link:hover { transform: translateY(-3px); box-shadow: var(--atpc-shadow); border-color: var(--atpc-forest-500); color: var(--atpc-ink); }
.atpc-service-card__link img { width: 64px; height: 64px; margin-bottom: .8rem; }
.atpc-service-card__title { font-size: var(--atpc-step-1); margin-bottom: .4rem; }
.atpc-service-card__link p { color: var(--atpc-ink-soft); font-size: .95rem; flex: 1; }

/* ---------- 9. Feature spotlights ---------- */
.atpc-feature { background: var(--atpc-paper-2); }
.atpc-feature--mosquito { background: var(--atpc-moss-100); }
.atpc-feature__grid { display: grid; gap: var(--atpc-space-6); align-items: center; }
.atpc-feature__media { display: grid; place-items: center; }
.atpc-feature__media img { width: min(280px, 70vw); filter: drop-shadow(0 20px 30px rgba(3,26,65,.18)); }
.atpc-feature__links { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.25rem; }
@media (min-width: 900px) { .atpc-feature__grid { grid-template-columns: .8fr 1.2fr; } .atpc-feature__grid--reverse { grid-template-columns: 1.2fr .8fr; } .atpc-feature__grid--reverse .atpc-feature__media { order: 2; } }
.atpc-ticks { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .5rem; }
.atpc-ticks li { position: relative; padding-left: 1.6rem; }
.atpc-ticks li::before { content: ""; position: absolute; left: 0; top: .45em; width: .9rem; height: .55rem; border-left: 2.5px solid var(--atpc-clay-500); border-bottom: 2.5px solid var(--atpc-clay-500); transform: rotate(-45deg); }
.atpc-ticks--leaf li::before { border-color: var(--atpc-forest-500); }

.atpc-duo__grid, .atpc-audience__grid { display: grid; gap: 1.25rem; }
@media (min-width: 860px) { .atpc-duo__grid, .atpc-audience__grid { grid-template-columns: 1fr 1fr; } }
.atpc-duo__card, .atpc-audience__panel { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: clamp(1.25rem, 3vw, 2.25rem); }
.atpc-duo__card h2 { font-size: var(--atpc-step-2); }
.atpc-audience__panel img { width: 96px; margin-bottom: 1rem; }
.atpc-audience__panel--biz { background: var(--atpc-forest-800) var(--atpc-topo); color: #e3e9f4; border: 0; }
.atpc-audience__panel--biz h3 { color: #fff; } .atpc-audience__panel--biz a { color: #ffbf80; }
.atpc-audience__panel--biz .atpc-btn--ghost { color: #fff; border-color: #fff; }
.atpc-audience__panel--biz .atpc-btn--ghost:hover { background: #fff; color: var(--atpc-forest-900); }
.atpc-audience__panel--biz .atpc-ticks li::before { border-color: #ffa24d; }

/* Local factors */
.atpc-local-factors { background: var(--atpc-card); border-block: 1px solid var(--atpc-line); }
.atpc-factor-list { list-style: none; padding: 0; margin: 0; counter-reset: f; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.atpc-factor-list li { counter-increment: f; border-top: 3px solid var(--atpc-forest-800); padding-top: 1rem; }
.atpc-factor-list li::before { content: counter(f, decimal-leading-zero); font: 600 2rem var(--atpc-serif); color: var(--atpc-clay-500); display: block; margin-bottom: .25rem; }
.atpc-factor-list p { color: var(--atpc-ink-soft); }

/* Specimen row */
.atpc-specimen-row { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 1rem; }
.atpc-specimen-row a { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; text-decoration: none; padding: 1rem .5rem; border-radius: var(--atpc-radius); background: var(--atpc-card); border: 1px solid var(--atpc-line); font-weight: 600; font-size: .9rem; color: var(--atpc-ink); }
.atpc-specimen-row a:hover { border-color: var(--atpc-clay-500); }

/* Pill list */
.atpc-pill-list, .atpc-service-chips, .atpc-chips { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.atpc-pill-list a, .atpc-service-chips a { display: inline-block; padding: .45rem .9rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius-pill); text-decoration: none; font-weight: 600; font-size: .9rem; }
.atpc-pill-list a:hover, .atpc-service-chips a:hover { background: var(--atpc-forest-800); color: #fff; border-color: var(--atpc-forest-800); }
.atpc-chips li { padding: .4rem .85rem; border-radius: var(--atpc-radius-pill); background: var(--atpc-moss-100); font-size: .9rem; }
.atpc-chip { padding: .45rem .9rem; border-radius: var(--atpc-radius-pill); border: 1px solid var(--atpc-line); background: var(--atpc-card); font: 600 .85rem var(--atpc-sans); cursor: pointer; }
.atpc-chip[aria-pressed="true"] { background: var(--atpc-clay-500); border-color: var(--atpc-clay-500); color: var(--atpc-forest-900); }

/* Resources */
.atpc-resources__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.atpc-linklist { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1.2rem 1.3rem; }
.atpc-linklist__title { font-size: 1.08rem; margin-bottom: .6rem; }
.atpc-linklist ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.atpc-linklist a { font-weight: 600; text-decoration: none; }
.atpc-linklist a:hover { text-decoration: underline; }
.atpc-linklist span { display: block; font-size: .85rem; color: var(--atpc-ink-soft); }
.atpc-linklist--cta { background: var(--atpc-forest-800); border: 0; }
.atpc-linklist--cta .atpc-linklist__title { color: #fff; } .atpc-linklist--cta a { color: #ffbf80; }
.atpc-linklist--cards ul { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.atpc-linklist--cards li { padding: 1rem; background: var(--atpc-paper); border-radius: var(--atpc-radius-sm); }

/* ---------- 10. Map ---------- */
.atpc-map { margin: 0; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: .75rem; }
.atpc-map__svg { width: 100%; height: auto; font-family: var(--atpc-sans); }
.atpc-map__dot circle { fill: var(--atpc-forest-700); stroke: #fff; stroke-width: 2; transition: r .2s, fill .2s; }
.atpc-map__dot text { font-size: 11px; fill: var(--atpc-ink); paint-order: stroke; stroke: rgba(255,255,255,.85); stroke-width: 3px; opacity: 0; transition: opacity .2s; pointer-events: none; }
.atpc-map__dot:hover circle, .atpc-map__dot:focus circle { fill: var(--atpc-clay-500); }
.atpc-map__dot:hover text, .atpc-map__dot:focus text, .atpc-map__dot.is-active text, .atpc-map__dot.is-lit text { opacity: 1; }
.atpc-map__dot.is-active circle { fill: var(--atpc-clay-500); }
.atpc-map__dot.is-dim circle { fill: #b8c1d1; }
.atpc-map__dot.is-lit circle { fill: var(--atpc-clay-500); }
.atpc-map__ring { font-size: 11px; fill: var(--atpc-ink-soft); }
.atpc-map__center { font: 700 12px var(--atpc-sans); fill: var(--atpc-clay-600); }
.atpc-map__compass { font: 700 14px var(--atpc-serif); fill: var(--atpc-forest-800); }
.atpc-map figcaption { font-size: .8rem; color: var(--atpc-ink-soft); padding: .5rem .25rem 0; }
@media (min-width: 900px) { .atpc-map:not(.atpc-map--compact) .atpc-map__dot text { opacity: .9; } }

.atpc-location-directory__grid { display: grid; gap: var(--atpc-space-6); align-items: center; }
@media (min-width: 960px) { .atpc-location-directory__grid { grid-template-columns: 1fr 1fr; } }
.atpc-location-directory:not(.atpc-section) { display: grid; gap: var(--atpc-space-6); }
@media (min-width: 1000px) { .atpc-location-directory:not(.atpc-section) { grid-template-columns: 1.1fr 1fr; align-items: start; } .atpc-location-directory__map { position: sticky; top: 90px; } }
.atpc-location-directory__filters { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.atpc-location-directory__group { margin-bottom: 1.75rem; }
.atpc-location-directory__group h2 { font-size: var(--atpc-step-1); border-bottom: 2px solid var(--atpc-forest-800); padding-bottom: .4rem; }
.atpc-location-directory__group ul { list-style: none; padding: 0; margin: 0; }
.atpc-location-directory__group li { padding: .55rem 0; border-bottom: 1px solid var(--atpc-line); }
.atpc-location-directory__group a { font-weight: 650; text-decoration: none; }
.atpc-location-directory__group span { display: block; font-size: .84rem; color: var(--atpc-ink-soft); }

/* ---------- 11. Seasonal calendar ---------- */
.atpc-table-scroll { overflow-x: auto; border-radius: var(--atpc-radius); border: 1px solid var(--atpc-line); background: var(--atpc-card); }
.atpc-seasonal-calendar__table { font-size: .82rem; min-width: 760px; }
.atpc-seasonal-calendar__table th, .atpc-seasonal-calendar__table td { padding: .45rem .3rem; text-align: center; border-bottom: 1px solid var(--atpc-paper-2); }
.atpc-seasonal-calendar__table tbody th { text-align: left; padding-left: .8rem; font-weight: 600; white-space: nowrap; }
.atpc-seasonal-calendar__table tbody th a { text-decoration: none; color: var(--atpc-ink); }
.atpc-seasonal-calendar__table abbr { text-decoration: none; }
.atpc-heat { font-size: 0; }
td.atpc-heat::before { content: ""; display: block; height: 18px; border-radius: 5px; }
.atpc-heat--0::before, i.atpc-heat--0 { background: #e6e9f0; }
.atpc-heat--1::before, i.atpc-heat--1 { background: #fddcbc; }
.atpc-heat--2::before, i.atpc-heat--2 { background: #fbae66; }
.atpc-heat--3::before, i.atpc-heat--3 { background: #f97609; }
.atpc-seasonal-calendar__table .is-current { background: #fff3c4; }
.atpc-seasonal-calendar__legend { display: flex; flex-wrap: wrap; gap: 1rem; margin: .8rem 0; font-size: .82rem; }
.atpc-seasonal-calendar__legend i { display: inline-block; width: 20px; height: 12px; border-radius: 3px; margin-right: .35rem; vertical-align: middle; }
.atpc-seasonal-calendar__notes { background: var(--atpc-card); border-left: 4px solid var(--atpc-clay-500); padding: 1rem 1.2rem; border-radius: 0 var(--atpc-radius) var(--atpc-radius) 0; margin: 1rem 0; }
.atpc-seasonal-calendar__notes select { font: inherit; padding: .35rem .5rem; border-radius: 6px; border: 1px solid var(--atpc-line); }
.atpc-seasonal-calendar__note { margin: .6rem 0 0; font-size: 1.05rem; }

/* ---------- 12. FAQ ---------- */
.atpc-faq { margin-block: var(--atpc-space-7); }
.atpc-faq__item { border-bottom: 1px solid var(--atpc-line); }
.atpc-faq__q { cursor: pointer; list-style: none; padding: 1.1rem 2.5rem 1.1rem 0; font: 600 var(--atpc-step-1) var(--atpc-serif); color: var(--atpc-forest-900); position: relative; }
.atpc-faq__q::-webkit-details-marker { display: none; }
.atpc-faq__q::after { content: "+"; position: absolute; right: .25rem; top: .9rem; font: 400 1.6rem var(--atpc-sans); color: var(--atpc-clay-500); transition: transform .2s; }
.atpc-faq__item[open] .atpc-faq__q::after { transform: rotate(45deg); }
.atpc-faq__a { padding-bottom: 1rem; color: var(--atpc-ink-soft); max-width: 72ch; }
.atpc-home-faq { max-width: 860px; }

/* ---------- 13. Conversion section & forms ---------- */
.atpc-conversion-section { background: var(--atpc-forest-900) var(--atpc-topo); color: #e3e9f4; padding-block: var(--atpc-space-8); }
.atpc-conversion-section--commercial { background-color: #020f27; }
.atpc-conversion-section__inner { display: grid; gap: var(--atpc-space-6); }
@media (min-width: 960px) { .atpc-conversion-section__inner { grid-template-columns: .85fr 1.15fr; align-items: start; } }
.atpc-conversion-section__title { color: #fff; font-size: var(--atpc-step-3); }
.atpc-conversion-section .atpc-kicker { color: #ffa24d; }
.atpc-conversion-section__call a { color: #fff; }
.atpc-form { background: var(--atpc-card); color: var(--atpc-ink); border-radius: calc(var(--atpc-radius) + 4px); padding: clamp(1.2rem, 3vw, 2rem); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.atpc-form__grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .atpc-form__grid { grid-template-columns: 1fr 1fr; } .atpc-field--full { grid-column: 1 / -1; } }
.atpc-field label { display: block; font-weight: 650; font-size: .9rem; margin-bottom: .3rem; }
.atpc-field input, .atpc-field select, .atpc-field textarea { width: 100%; font: inherit; padding: .7rem .8rem; border: 1.5px solid #aab4c6; border-radius: 10px; background: #fff; color: var(--atpc-ink); min-height: 48px; }
.atpc-field input:focus, .atpc-field select:focus, .atpc-field textarea:focus { border-color: var(--atpc-forest-700); outline: 3px solid rgba(26,115,232,.25); outline-offset: 0; }
.atpc-field__hint { font-size: .78rem; color: var(--atpc-ink-soft); margin: .25rem 0 0; }
.atpc-field__error { font-size: .82rem; color: #a3261b; margin: .3rem 0 0; font-weight: 600; }
.atpc-field.is-invalid input, .atpc-field.is-invalid select { border-color: #a3261b; background: #fff7f6; }
.atpc-field--hp { position: absolute; left: -9999px; }
.atpc-form__fine { font-size: .8rem; color: var(--atpc-ink-soft); margin: 1rem 0; }
.atpc-form__status { margin-top: 1rem; }
.atpc-form__status:empty { display: none; }
.atpc-form__status.is-success { background: #e6f2e2; border: 1px solid #5b7fbf; color: #0d2c63; padding: .9rem 1rem; border-radius: 10px; }
.atpc-form__status.is-error { background: #fdecea; border: 1px solid #d9877c; color: #7d1d14; padding: .9rem 1rem; border-radius: 10px; }

/* ---------- 14. Footer & sticky CTA ---------- */
.atpc-footer { background: var(--atpc-forest-900); color: #b8c4d8; padding-top: var(--atpc-space-7); font-size: .94rem; }
.atpc-footer__grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.atpc-footer__brand { grid-column: 1 / -1; max-width: 420px; }
@media (min-width: 1000px) { .atpc-footer__grid { grid-template-columns: 1.6fr repeat(4, 1fr); } .atpc-footer__brand { grid-column: auto; } }
.atpc-footer__heading { font: 700 .74rem var(--atpc-sans); letter-spacing: .14em; text-transform: uppercase; color: #ffa24d; }
.atpc-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.atpc-footer a { color: #e3e9f4; text-decoration: none; }
.atpc-footer a:hover { color: #fff; text-decoration: underline; }
.atpc-footer__mission { margin-top: 1rem; }
.atpc-footer__tel { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.15rem; }
.atpc-footer__legal { border-top: 1px solid rgba(255,255,255,.1); margin-top: 2.5rem; padding-block: 1.5rem; font-size: .82rem; }
.atpc-footer__notice { background: rgba(255,255,255,.06); padding: .8rem 1rem; border-radius: 10px; }
.atpc-sticky-cta { position: fixed; inset: auto 0 0 0; z-index: 60; display: grid; grid-template-columns: 1fr; background: var(--atpc-forest-900); box-shadow: 0 -6px 20px rgba(0,0,0,.2); padding: .5rem; gap: .5rem; padding-bottom: calc(.5rem + env(safe-area-inset-bottom)); }
.atpc-sticky-cta a { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; border-radius: 10px; font-weight: 700; text-decoration: none; }
.atpc-sticky-cta__call { background: var(--atpc-clay-500); color: var(--atpc-forest-900); font-size: 1.05rem; }
.atpc-sticky-cta__form { background: var(--atpc-clay-500); color: #fff; }
@media (min-width: 900px) { .atpc-sticky-cta { display: none; } }

/* ---------- 15. Service page ---------- */
.atpc-service-hero { background: linear-gradient(180deg, var(--atpc-paper-2), var(--atpc-paper)); border-bottom: 1px solid var(--atpc-line); padding-block: var(--atpc-space-6) var(--atpc-space-6); }
.atpc-service-hero__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .atpc-service-hero__grid { grid-template-columns: 1.4fr .8fr; } }
.atpc-service-hero__title { font-size: var(--atpc-step-4); }
.atpc-service-hero__lede { font-size: var(--atpc-step-1); color: var(--atpc-ink-soft); max-width: 62ch; }
.atpc-service-hero__plate { margin: 0; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: 50% 50% var(--atpc-radius) var(--atpc-radius); padding: 1.5rem; text-align: center; box-shadow: var(--atpc-shadow); max-width: 320px; justify-self: center; }
.atpc-service-hero__plate figcaption { font: italic 600 1rem var(--atpc-serif); color: var(--atpc-ink-soft); margin-top: .5rem; }
.atpc-service-hero__strip { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; background: var(--atpc-forest-800); color: #fff; border-radius: var(--atpc-radius-sm); padding: .75rem 1rem; font-weight: 600; font-size: .92rem; }
.atpc-service-hero__strip a { color: #ffbf80; }
.atpc-service--mosquito .atpc-service-hero { background: linear-gradient(180deg, var(--atpc-moss-100), var(--atpc-paper)); }
.atpc-service--commercial .atpc-service-hero { background: linear-gradient(180deg, #e8edf5, var(--atpc-paper)); }
.atpc-service--commercial .atpc-service-hero__strip { background: #0d2c63; }
.atpc-service--rodent .atpc-service-hero__strip { background: #1e2a44; }
.atpc-service--bedbug .atpc-service-hero__strip { background: #7a3300; }
.atpc-service__layout { display: grid; gap: var(--atpc-space-6); padding-block: var(--atpc-space-7); }
@media (min-width: 1000px) { .atpc-service__layout { grid-template-columns: 260px 1fr; } .atpc-service__aside { position: sticky; top: 92px; align-self: start; } }
.atpc-toc { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1rem 1.2rem; margin-bottom: 1rem; }
.atpc-toc__title { font-weight: 700; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--atpc-clay-600); margin-bottom: .5rem; }
.atpc-toc ol { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; font-size: .92rem; }
.atpc-toc a { text-decoration: none; }
.atpc-aside-cta { background: var(--atpc-paper-2); border-radius: var(--atpc-radius); padding: 1.1rem; display: grid; gap: .6rem; margin-top: 1rem; }
.atpc-aside-cta__title { font: 600 1.05rem var(--atpc-serif); margin: 0; }
.atpc-prose { max-width: 820px; }
.atpc-prose > * + * { margin-top: 0; }
.atpc-block { margin-bottom: var(--atpc-space-7); }
.atpc-block h2 { font-size: var(--atpc-step-2); }
.atpc-signs { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
@media (min-width: 700px) { .atpc-signs { grid-template-columns: 1fr 1fr; } }
.atpc-signs__item { display: grid; grid-template-columns: auto 1fr; gap: .9rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1rem 1.1rem; }
.atpc-signs__num { font: 600 1.5rem var(--atpc-serif); color: var(--atpc-clay-500); line-height: 1; }
.atpc-signs__title { font-size: 1.05rem; margin-bottom: .25rem; }
.atpc-signs__item p { margin: 0; color: var(--atpc-ink-soft); font-size: .95rem; }
.atpc-steps { list-style: none; padding: 0; margin: 0; counter-reset: s; border-left: 2px solid var(--atpc-line); }
.atpc-steps__item { counter-increment: s; position: relative; padding: 0 0 1.4rem 2.2rem; }
.atpc-steps__item::before { content: counter(s); position: absolute; left: -15px; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--atpc-forest-800); color: #fff; display: grid; place-items: center; font: 700 .85rem var(--atpc-sans); }
.atpc-steps__title { font-size: 1.1rem; margin-bottom: .25rem; }
.atpc-steps__item p { margin: 0; color: var(--atpc-ink-soft); }
.atpc-table { font-size: .94rem; background: var(--atpc-card); min-width: 560px; }
.atpc-table th, .atpc-table td { text-align: left; padding: .75rem .9rem; border-bottom: 1px solid var(--atpc-paper-2); vertical-align: top; }
.atpc-table thead th { background: var(--atpc-forest-800); color: #fff; font-weight: 650; font-size: .86rem; }
.atpc-table tbody th { font-weight: 650; color: var(--atpc-forest-900); }
.atpc-table tbody tr:nth-child(even) { background: #f7f9fc; }
.atpc-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.atpc-checklist li { position: relative; padding: .6rem .8rem .6rem 2.4rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: 10px; }
.atpc-checklist li::before { content: ""; position: absolute; left: .8rem; top: .85rem; width: 1rem; height: 1rem; border: 2px solid var(--atpc-forest-500); border-radius: 4px; }
.atpc-callout { border-radius: var(--atpc-radius); padding: 1.1rem 1.3rem; margin: 0 0 var(--atpc-space-7); border-left: 5px solid; background: var(--atpc-card); }
.atpc-callout__title { font: 700 .78rem var(--atpc-sans); letter-spacing: .12em; text-transform: uppercase; margin-bottom: .4rem; }
.atpc-callout p:last-child { margin-bottom: 0; }
.atpc-callout--regulatory { border-color: var(--atpc-forest-700); background: #e8eef8; } .atpc-callout--regulatory .atpc-callout__title { color: var(--atpc-forest-700); }
.atpc-callout--health { border-color: var(--atpc-clay-500); background: var(--atpc-clay-100); } .atpc-callout--health .atpc-callout__title { color: var(--atpc-clay-600); }
.atpc-callout--info { border-color: var(--atpc-gold); background: #fbf3dc; } .atpc-callout--info .atpc-callout__title { color: #7a5b0a; }
.atpc-related { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: var(--atpc-space-6); }

/* ---------- 16. Location page ---------- */
.atpc-place-hero { background: var(--atpc-forest-800) var(--atpc-topo); color: #e3e9f4; padding-block: var(--atpc-space-7); }
.atpc-place-hero__grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 960px) { .atpc-place-hero__grid { grid-template-columns: 1.5fr .9fr; } }
.atpc-place-hero__title { color: #fff; }
.atpc-place-hero .atpc-kicker { color: #ffa24d; }
.atpc-place-hero__lede { font-size: var(--atpc-step-1); color: #e3e9f4; max-width: 62ch; }
.atpc-place-hero .atpc-btn--call { background: #fff; color: var(--atpc-forest-900); }
.atpc-field-card { background: var(--atpc-paper); color: var(--atpc-ink); border-radius: var(--atpc-radius); padding: 1.3rem 1.4rem; box-shadow: 0 20px 40px -24px rgba(0,0,0,.55); position: relative; }
.atpc-field-card::before { content: ""; position: absolute; inset: 8px; border: 1px dashed var(--atpc-line); border-radius: 10px; pointer-events: none; }
.atpc-field-card__title { font: italic 600 1.2rem var(--atpc-serif); color: var(--atpc-clay-600); margin-bottom: .6rem; }
.atpc-field-card dl { margin: 0; display: grid; gap: .55rem; }
.atpc-field-card dl div { display: grid; grid-template-columns: 9.5rem 1fr; gap: .5rem; border-bottom: 1px solid var(--atpc-paper-2); padding-bottom: .45rem; font-size: .92rem; }
.atpc-field-card dt { font-weight: 700; color: var(--atpc-forest-800); }
.atpc-field-card dd { margin: 0; }
.atpc-place__body { padding-block: var(--atpc-space-7); }
.atpc-place__section { margin-bottom: var(--atpc-space-7); }
.atpc-place__section h2 { font-size: var(--atpc-step-2); }
.atpc-place__intro { max-width: 820px; font-size: 1.08rem; }
.atpc-place__includes { background: var(--atpc-moss-100); padding: .8rem 1rem; border-radius: 10px; font-size: .95rem; }
.atpc-place__twin { display: grid; gap: 2rem; }
@media (min-width: 900px) { .atpc-place__twin { grid-template-columns: 1fr 1fr; } }
.atpc-pressure__list { list-style: none; padding: 0; margin: 0; counter-reset: p; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.atpc-pressure__item { counter-increment: p; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-top: 4px solid var(--atpc-clay-500); border-radius: var(--atpc-radius); padding: 1.1rem 1.2rem; }
.atpc-pressure__item h3::before { content: counter(p) ". "; color: var(--atpc-clay-500); }
.atpc-pressure__item h3 a { text-decoration: none; color: var(--atpc-forest-900); }
.atpc-pressure__item p { margin: 0; color: var(--atpc-ink-soft); font-size: .95rem; }
.atpc-place__season { background: var(--atpc-paper-2); border-radius: var(--atpc-radius); padding: 1.3rem 1.4rem; }
.atpc-place__nearby-grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 900px) { .atpc-place__nearby-grid { grid-template-columns: 1fr 1fr; } }
.atpc-nearby { list-style: none; padding: 0; margin: 0; }
.atpc-nearby li { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--atpc-line); }
.atpc-nearby a { font-weight: 650; }
.atpc-nearby span { color: var(--atpc-ink-soft); font-size: .88rem; }

/* ---------- 17. Article layouts ---------- */
.atpc-article-layout__head { background: var(--atpc-paper-2); border-bottom: 1px solid var(--atpc-line); padding-block: var(--atpc-space-6); }
.atpc-article-layout__head-grid { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 860px) { .atpc-article-layout__head-grid { grid-template-columns: 1fr 200px; } }
.atpc-article-layout__specimen { width: 160px; justify-self: start; }
@media (min-width: 860px) { .atpc-article-layout__specimen { width: 200px; justify-self: end; } }
.atpc-article-layout__title { font-size: var(--atpc-step-4); max-width: 22ch; }
.atpc-article-layout__lede { font-size: var(--atpc-step-1); color: var(--atpc-ink-soft); max-width: 64ch; }
.atpc-article-layout__meta { font-size: .85rem; color: var(--atpc-ink-soft); margin: 0; }
.atpc-article-layout__body { display: grid; gap: var(--atpc-space-6); padding-block: var(--atpc-space-7); }
@media (min-width: 1000px) { .atpc-article-layout__body { grid-template-columns: 1fr 300px; } .atpc-article-layout__aside { position: sticky; top: 92px; align-self: start; display: grid; gap: 1rem; } }
.atpc-article-layout__aside { display: grid; gap: 1rem; align-content: start; }
.atpc-article__section h2, .atpc-article-layout__main > .atpc-block h2 { font-size: var(--atpc-step-2); }
.atpc-article__section { margin-bottom: var(--atpc-space-6); }
.atpc-article__section li { margin-bottom: .4rem; }
.atpc-article__num { font-family: var(--atpc-sans); font-size: .9rem; color: var(--atpc-clay-500); vertical-align: middle; background: var(--atpc-clay-100); padding: .1rem .45rem; border-radius: 6px; }
.atpc-article-layout--problem .atpc-article-layout__head { background: var(--atpc-clay-100); }
.atpc-article-layout--property .atpc-article-layout__head { background: var(--atpc-moss-100); }
.atpc-article-layout--regulation .atpc-article-layout__head { background: #e6ebf3; border-bottom: 3px double var(--atpc-forest-700); }
.atpc-article-layout--regulation .atpc-article-layout__title { font-size: var(--atpc-step-3); }
.atpc-article-layout--compare .atpc-block--table .atpc-table thead th:nth-child(2) { background: var(--atpc-forest-700); }
.atpc-article-layout--compare .atpc-block--table .atpc-table thead th:nth-child(3) { background: var(--atpc-clay-600); }
.atpc-quick-answer { background: var(--atpc-forest-800); color: #e3e9f4; border-radius: var(--atpc-radius); padding: 1.2rem 1.4rem; margin-bottom: var(--atpc-space-6); font-size: 1.08rem; }
.atpc-quick-answer__title { font: 700 .76rem var(--atpc-sans); letter-spacing: .14em; text-transform: uppercase; color: #ffa24d; margin-bottom: .4rem; }
.atpc-quick-answer p:last-child { margin: 0; }
.atpc-official { border: 2px solid var(--atpc-forest-700); border-radius: var(--atpc-radius); padding: 1rem 1.3rem; margin-bottom: var(--atpc-space-6); background: var(--atpc-card); }
.atpc-official__title { font-weight: 700; color: var(--atpc-forest-700); margin-bottom: .4rem; }
.atpc-official ul { margin: 0; }
.atpc-sources { border-top: 2px solid var(--atpc-line); margin-top: var(--atpc-space-7); padding-top: 1.2rem; font-size: .9rem; }
.atpc-sources h2 { font-size: var(--atpc-step-1); }
.atpc-sources li { margin-bottom: .35rem; word-break: break-word; }

/* ---------- 18. Hubs, tools ---------- */
.atpc-hub__head { background: var(--atpc-paper-2); border-bottom: 1px solid var(--atpc-line); padding-block: var(--atpc-space-6); }
.atpc-hub__lede { font-size: var(--atpc-step-1); color: var(--atpc-ink-soft); max-width: 70ch; }
.atpc-hub__body { padding-block: var(--atpc-space-7); }
.atpc-hub__note { margin-top: var(--atpc-space-7); }
.atpc-guide-index { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.atpc-guide-index__group h2 { font-size: var(--atpc-step-2); border-bottom: 2px solid var(--atpc-forest-800); padding-bottom: .4rem; }
.atpc-guide-index__group ul { list-style: none; padding: 0; margin: 0; }
.atpc-guide-index__group li { padding: .7rem 0; border-bottom: 1px solid var(--atpc-line); }
.atpc-guide-index__group a { font-weight: 650; text-decoration: none; font-family: var(--atpc-serif); font-size: 1.08rem; }
.atpc-guide-index__group p { margin: .2rem 0 0; color: var(--atpc-ink-soft); font-size: .9rem; }
.atpc-guide-index__group--problems { background: var(--atpc-clay-100); padding: 1rem 1.25rem; border-radius: var(--atpc-radius); }
.atpc-card-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.atpc-card-list__item { display: grid; grid-template-columns: 88px 1fr; gap: 1rem; align-items: start; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1.2rem; }
.atpc-card-list__item h2 { font-size: 1.15rem; } .atpc-card-list__item h2 a { text-decoration: none; }
.atpc-card-list__item p { margin: 0; font-size: .92rem; color: var(--atpc-ink-soft); }

.atpc-pest-library { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.atpc-pest-library__card { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1.2rem; display: flex; flex-direction: column; }
.atpc-pest-library__card img { width: 110px; margin: 0 auto .5rem; }
.atpc-pest-library__name { font-size: 1.15rem; margin-bottom: .1rem; }
.atpc-pest-library__sci { font-size: .82rem; color: var(--atpc-ink-soft); }
.atpc-pest-library__facts { margin: 0 0 .8rem; display: grid; gap: .45rem; font-size: .88rem; flex: 1; }
.atpc-pest-library__facts dt { font-weight: 700; color: var(--atpc-forest-800); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.atpc-pest-library__facts dd { margin: 0; }
.atpc-pest-library__links { font-weight: 650; margin: 0; }

.atpc-navigator { display: grid; gap: 1.5rem; margin-bottom: var(--atpc-space-7); }
@media (min-width: 1000px) { .atpc-navigator { grid-template-columns: 1.2fr 1fr; align-items: start; } .atpc-navigator__results { position: sticky; top: 92px; } }
.atpc-navigator__form fieldset { border: 0; padding: 0; margin: 0 0 1rem; }
.atpc-navigator__legend { font: 600 var(--atpc-step-1) var(--atpc-serif); margin-bottom: .3rem; }
.atpc-navigator__options { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.atpc-navigator__option { display: flex; gap: .7rem; align-items: flex-start; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: 10px; padding: .75rem .85rem; cursor: pointer; font-size: .94rem; transition: border-color .2s, background .2s; }
.atpc-navigator__option:has(input:checked) { border-color: var(--atpc-forest-700); background: #e8eef8; }
.atpc-navigator__option input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--atpc-forest-700); flex: none; }
.atpc-navigator__results { background: var(--atpc-forest-800); color: #e3e9f4; border-radius: var(--atpc-radius); padding: 1.3rem; min-height: 200px; }
.atpc-navigator__results h3 { color: #fff; }
.atpc-navigator__empty { color: #b8c4d8; margin: 0; }
.atpc-navigator__result { display: grid; grid-template-columns: 72px 1fr; gap: .9rem; background: rgba(255,255,255,.06); border-radius: 10px; padding: .8rem; margin-bottom: .7rem; }
.atpc-navigator__result img { background: var(--atpc-paper); border-radius: 50%; }
.atpc-navigator__result h4 { color: #fff; margin: 0 0 .2rem; font-size: 1.08rem; }
.atpc-navigator__result p { margin: 0 0 .35rem; font-size: .88rem; }
.atpc-navigator__result a { color: #ffbf80; font-weight: 650; margin-right: .8rem; font-size: .9rem; }
.atpc-navigator__match { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #ffa24d; }

.atpc-house-guide { display: grid; gap: 1.5rem; margin-bottom: var(--atpc-space-7); }
@media (min-width: 1000px) { .atpc-house-guide { grid-template-columns: 1.15fr 1fr; align-items: start; } }
.atpc-house-guide__figure { background: linear-gradient(#dbe9ef, #eef2f8 70%); border-radius: var(--atpc-radius); border: 1px solid var(--atpc-line); padding: .5rem; }
.atpc-house-guide__hotspot { cursor: pointer; }
.atpc-house-guide__hotspot circle { fill: var(--atpc-clay-500); stroke: #fff; stroke-width: 3; transition: r .2s, fill .2s; }
.atpc-house-guide__hotspot text { fill: var(--atpc-forest-900); font: 700 14px var(--atpc-sans); pointer-events: none; }
.atpc-house-guide__hotspot.is-active circle { fill: var(--atpc-forest-800); r: 21; }
.atpc-house-guide__tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.atpc-house-guide__tab { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--atpc-line); background: var(--atpc-card); border-radius: var(--atpc-radius-pill); padding: .4rem .8rem .4rem .4rem; font: 600 .86rem var(--atpc-sans); cursor: pointer; min-height: 40px; }
.atpc-house-guide__tab span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--atpc-clay-500); color: var(--atpc-forest-900); font-size: .78rem; font-weight: 800; }
.atpc-house-guide__tab[aria-selected="true"] { background: var(--atpc-forest-800); color: #fff; border-color: var(--atpc-forest-800); }
.atpc-house-guide__tab[aria-selected="true"] span { background: #fff; color: var(--atpc-forest-900); }
.atpc-house-guide__panel { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-left: 5px solid var(--atpc-clay-500); border-radius: var(--atpc-radius); padding: 1.2rem 1.3rem; }
.atpc-house-guide__instruction { color: var(--atpc-ink-soft); }

.atpc-checklists__tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; border-bottom: 2px solid var(--atpc-line); }
.atpc-checklists__tab { border: 0; background: none; padding: .7rem 1rem; font: 650 .95rem var(--atpc-sans); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; color: var(--atpc-ink-soft); }
.atpc-checklists__tab[aria-selected="true"] { color: var(--atpc-forest-900); border-color: var(--atpc-clay-500); }
.atpc-checklists__panel ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.atpc-checklists__panel label { display: flex; gap: .7rem; align-items: flex-start; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: 10px; padding: .75rem .9rem; cursor: pointer; }
.atpc-checklists__panel input { width: 20px; height: 20px; accent-color: var(--atpc-forest-700); flex: none; margin-top: 2px; }
.atpc-checklists__panel label:has(input:checked) span { text-decoration: line-through; color: var(--atpc-ink-soft); }
.atpc-checklists__progress { font-weight: 650; color: var(--atpc-forest-700); margin-top: .8rem; }

.atpc-contact__intro { margin-bottom: 1rem; font-size: 1.1rem; }
.atpc-hub .atpc-conversion-section { border-radius: var(--atpc-radius); margin-block: 1.5rem; }
.atpc-legal h2 { font-size: var(--atpc-step-2); margin-top: 1.5rem; }

@media print { .atpc-header, .atpc-footer, .atpc-sticky-cta, .atpc-conversion-section, .atpc-service__aside, .atpc-article-layout__aside { display: none !important; } body { background: #fff; } }

/* ---------- 19. Grid overflow guards (tables/scrollers inside grid tracks) ---------- */
.atpc-service__layout > *, .atpc-article-layout__body > *, .atpc-hub__body > *, .atpc-place__twin > *, .atpc-navigator > *, .atpc-house-guide > *,
.atpc-location-directory > *, .atpc-location-directory__grid > *, .atpc-conversion-section__inner > *, .atpc-feature__grid > * { min-width: 0; }
.atpc-section > .atpc-wrap, .atpc-seasonal-calendar { min-width: 0; max-width: 100%; }
.atpc-table-scroll { max-width: 100%; position: relative; }

/* ---------- 20. v2: pest + service cards (merged block) ---------- */
.atpc-btn--xl { min-height: 60px; padding: 1rem 1.8rem; font-size: 1.2rem; }
.atpc-pest-services__grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.atpc-pest-services__card { display: grid; grid-template-columns: 88px 1fr; gap: 1rem; align-items: start; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1.2rem; transition: border-color .2s, box-shadow .2s; }
.atpc-pest-services__card:hover { border-color: var(--atpc-forest-500); box-shadow: var(--atpc-shadow); }
.atpc-pest-services__media img { width: 88px; height: 88px; }
.atpc-pest-services__title { font-size: var(--atpc-step-1); margin-bottom: .3rem; }
.atpc-pest-services__body p { color: var(--atpc-ink-soft); font-size: .94rem; margin-bottom: .8rem; }
.atpc-pest-services__links { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 !important; }
.atpc-pest-services__links a { display: inline-flex; align-items: center; min-height: 38px; padding: .35rem .85rem; border-radius: var(--atpc-radius-pill); font-weight: 650; font-size: .88rem; text-decoration: none; }
.atpc-pest-services__svc { background: var(--atpc-forest-800); color: #fff !important; }
.atpc-pest-services__svc:hover { background: var(--atpc-forest-700); }
.atpc-pest-services__guide { border: 1.5px solid var(--atpc-line); color: var(--atpc-forest-800) !important; background: var(--atpc-paper); }
.atpc-pest-services__guide::before { content: "?"; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--atpc-clay-500); color: var(--atpc-forest-900); font-size: .7rem; font-weight: 800; margin-right: .4rem; }
.atpc-pest-services__guide:hover { border-color: var(--atpc-clay-500); }

/* Home plan */
.atpc-home-plan { background: var(--atpc-paper-2); }
.atpc-home-plan__grid { display: grid; gap: 2rem; align-items: center; }
.atpc-home-plan__media { display: grid; place-items: center; }
.atpc-home-plan__media img { width: min(240px, 60vw); }
@media (min-width: 900px) { .atpc-home-plan__grid { grid-template-columns: .7fr 1.3fr; } }

/* Coverage */
.atpc-coverage__grid { display: grid; gap: 2rem; align-items: start; }
.atpc-coverage__grid > * { min-width: 0; }
@media (min-width: 1000px) { .atpc-coverage__grid { grid-template-columns: 1.15fr 1fr; } .atpc-coverage__grid > .atpc-map { position: sticky; top: 92px; } }
.atpc-coverage__group { margin-bottom: 1.4rem; }
.atpc-coverage__group h3 { margin-bottom: .1rem; }
.atpc-coverage__group p { margin-bottom: .5rem; }
.atpc-coverage__group ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.atpc-coverage__group a { display: inline-block; padding: .3rem .75rem; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius-pill); text-decoration: none; font-weight: 600; font-size: .88rem; }
.atpc-coverage__group a:hover { background: var(--atpc-forest-800); color: #fff; }

/* Call section (replaces forms) */
.atpc-call-section__inner { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .atpc-call-section__inner { grid-template-columns: 1.1fr .9fr; } }
.atpc-call-section__action { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--atpc-radius); padding: 1.6rem; }
.atpc-call-section__action .atpc-btn { width: 100%; }
.atpc-call-section__tips { margin: 1.2rem 0 0; padding-left: 1.1rem; color: #b8c4d8; font-size: .92rem; display: grid; gap: .3rem; }
.atpc-call-section .atpc-placeholder-note { margin-top: 1rem; }
.atpc-hub .atpc-call-section { border-radius: var(--atpc-radius); margin-block: 1.5rem; }
.atpc-contact__phone { margin: 0 0 1rem; }
.atpc-header__call { padding-inline: .9rem; }

/* ---------- 21. v2: schematic city map ---------- */
.atpc-map--city { padding: .5rem; }
.atpc-map__itp { fill: #e3eaf6; stroke: none; }
.atpc-map__perimeter { fill: none; stroke: #f97609; stroke-width: 4; stroke-linejoin: round; opacity: .9; }
.atpc-map__road { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.atpc-map--city .atpc-map__road { filter: drop-shadow(0 0 .6px #9aa3b5); }
.atpc-map__river { fill: none; stroke: #8fb4c4; stroke-width: 6; stroke-linecap: round; }
.atpc-map__river-label { font: italic 600 11px var(--atpc-serif); fill: #4f7f92; letter-spacing: .04em; }
.atpc-map__shield rect { fill: #1f4e8c; stroke: #fff; stroke-width: 1.5; }
.atpc-map__shield text { font: 700 9.5px var(--atpc-sans); fill: #fff; }
.atpc-map__shield--loop rect { fill: #f97609; }
.atpc-map__airport rect { fill: #4a5468; } .atpc-map__airport path { stroke: #fff; stroke-width: 2; fill: none; }
.atpc-map__poi { font: 600 10.5px var(--atpc-sans); fill: #4a5468; }
.atpc-map__zone { font: 700 13px var(--atpc-sans); letter-spacing: .25em; fill: #3a5a94; opacity: .45; }
.atpc-map--city .atpc-map__dot circle { fill: var(--atpc-forest-800); stroke: #fff; stroke-width: 2; }
.atpc-map--city .atpc-map__dot text { font: 600 11px var(--atpc-sans); fill: var(--atpc-forest-900); stroke: #f2f4f8; stroke-width: 3.5px; paint-order: stroke; opacity: 0; }
.atpc-map--city .atpc-map__dot.is-labeled text, .atpc-map--city .atpc-map__dot:hover text, .atpc-map--city .atpc-map__dot:focus text { opacity: 1; }
.atpc-map--city .atpc-map__dot:hover circle, .atpc-map--city .atpc-map__dot.is-active circle { fill: var(--atpc-clay-500); }
.atpc-map--city .atpc-map__dot.is-active text { font-size: 13px; font-weight: 800; }
.atpc-map__compass path { fill: var(--atpc-forest-800); } .atpc-map__compass text { font: 700 11px var(--atpc-sans); fill: var(--atpc-forest-800); }
.atpc-map__key { display: inline-block; width: 14px; height: 10px; margin: 0 .3rem 0 .6rem; vertical-align: middle; border-radius: 3px; }
.atpc-map__key--itp { background: #e3eaf6; border: 2px solid #f97609; margin-left: 0; }
.atpc-map__key--dot { width: 10px; border-radius: 50%; background: var(--atpc-forest-800); }
@media (min-width: 900px) { .atpc-map:not(.atpc-map--compact) .atpc-map__dot text { opacity: 0; } .atpc-map--city .atpc-map__dot.is-labeled text { opacity: 1; } }

/* ---------- 22. v3: service page lead-gen components ---------- */
.atpc-call-if { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-left: 4px solid var(--atpc-clay-500); border-radius: var(--atpc-radius-sm); padding: .9rem 1.1rem; margin: 1rem 0 0; max-width: 560px; }
.atpc-call-if__title { font-weight: 700; margin: 0 0 .35rem; color: var(--atpc-forest-900); }
.atpc-call-if ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .2rem; font-size: .95rem; }
.atpc-service-hero .atpc-hero__actions { align-items: center; gap: 1rem; }
.atpc-midcta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; background: var(--atpc-forest-800) var(--atpc-topo); color: #e3e9f4; border-radius: var(--atpc-radius); padding: 1.3rem 1.5rem; margin: 0 0 var(--atpc-space-7); }
.atpc-midcta p { margin: 0; } .atpc-midcta__title { font: 600 1.25rem var(--atpc-serif); color: #fff; margin-bottom: .2rem !important; }
.atpc-process { margin-bottom: var(--atpc-space-7); }
.atpc-process h2 { font-size: var(--atpc-step-2); }
.atpc-process__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.atpc-process__step { background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1.1rem; }
.atpc-process__num { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--atpc-clay-500); color: var(--atpc-forest-900); font-weight: 800; margin-bottom: .6rem; }
.atpc-process__step h3 { font-size: 1.05rem; margin-bottom: .3rem; }
.atpc-process__step p { margin: 0; font-size: .92rem; color: var(--atpc-ink-soft); }
.atpc-service-areas { margin-bottom: var(--atpc-space-6); }
.atpc-service-areas h2 { font-size: var(--atpc-step-2); }
.atpc-service-areas__group h3 { font-size: 1rem; margin: 1rem 0 .4rem; font-family: var(--atpc-sans); text-transform: uppercase; letter-spacing: .08em; color: var(--atpc-clay-600); }
.atpc-service-areas__group ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.atpc-service-areas__group a { display: inline-block; padding: .25rem .7rem; border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius-pill); background: var(--atpc-card); text-decoration: none; font-size: .86rem; font-weight: 600; }
.atpc-service-areas__group a:hover { background: var(--atpc-forest-800); color: #fff; }
/* services hub */
.atpc-services-hub__group { margin-bottom: 2rem; }
.atpc-services-hub__group h2 { font-size: var(--atpc-step-2); border-bottom: 2px solid var(--atpc-forest-800); padding-bottom: .4rem; }
.atpc-services-hub__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.atpc-services-hub__item a { display: grid; grid-template-columns: 64px 1fr; gap: .9rem; align-items: start; background: var(--atpc-card); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); padding: 1rem; text-decoration: none; color: var(--atpc-ink); height: 100%; }
.atpc-services-hub__item a:hover { border-color: var(--atpc-forest-500); box-shadow: var(--atpc-shadow); }
.atpc-services-hub__item strong { display: block; font: 600 1.1rem var(--atpc-serif); color: var(--atpc-forest-900); margin-bottom: .2rem; }
.atpc-services-hub__item span span { display: block; font-size: .9rem; color: var(--atpc-ink-soft); }
.atpc-services-hub__help { font-size: 1.05rem; }

/* ---------- 23. v4: cookie notice + back-to-top (bottom-right) ---------- */
.atpc-cookie { position: fixed; right: 16px; left: 16px; bottom: 140px; z-index: 70; background: var(--atpc-card); color: var(--atpc-ink); border: 1px solid var(--atpc-line); border-radius: var(--atpc-radius); box-shadow: 0 18px 40px -16px rgba(3,26,65,.45); padding: 1.1rem 1.2rem 1rem; }
.atpc-cookie[hidden] { display: none; }
.atpc-cookie__title { font: 600 1.05rem var(--atpc-serif); margin: 0 1.6rem .3rem 0; color: var(--atpc-forest-900); }
.atpc-cookie__text { font-size: .88rem; color: var(--atpc-ink-soft); margin: 0 0 .8rem; }
.atpc-cookie__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; }
.atpc-cookie__link { font-size: .86rem; font-weight: 600; }
.atpc-cookie__close { position: absolute; top: .4rem; right: .5rem; width: 36px; height: 36px; border: 0; background: none; font-size: 1.5rem; line-height: 1; color: var(--atpc-ink-soft); cursor: pointer; border-radius: 8px; }
.atpc-cookie__close:hover { background: var(--atpc-paper-2); color: var(--atpc-ink); }
.atpc-totop { position: fixed; right: 16px; bottom: 80px; z-index: 65; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--atpc-forest-800); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 10px 24px -10px rgba(3,26,65,.6); transition: background .2s, transform .2s; }
.atpc-totop[hidden] { display: none; }
.atpc-totop:hover { background: var(--atpc-clay-500); color: var(--atpc-forest-900); transform: translateY(-2px); }
.atpc-totop svg { width: 22px; height: 22px; fill: currentColor; }
@media (min-width: 560px) { .atpc-cookie { left: auto; width: 360px; } }
@media (min-width: 900px) {
  .atpc-totop { right: 24px; bottom: 24px; }
  .atpc-cookie { right: 24px; bottom: 24px; }
  .atpc-has-cookie .atpc-totop { bottom: calc(24px + var(--atpc-cookie-h, 190px) + 12px); }
}
@media print { .atpc-cookie, .atpc-totop { display: none !important; } }
.atpc-service-hero__search { font-size: .98rem; color: var(--atpc-ink-soft); max-width: 62ch; border-left: 3px solid var(--atpc-moss-400); padding-left: .8rem; }

/* ---------- 24. v5: brand logo ---------- */
.atpc-brand__logo { height: 48px; width: auto; display: block; }
@media (min-width: 560px) { .atpc-brand__logo { height: 56px; } }
.atpc-footer .atpc-brand__logo { height: 56px; }
.atpc-sitemap { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.atpc-sitemap__group h2 { font-size: var(--atpc-step-1); border-bottom: 2px solid var(--atpc-forest-800); padding-bottom: .35rem; }
.atpc-sitemap__group ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.atpc-sitemap__group a { text-decoration: none; font-weight: 600; }
.atpc-sitemap__group a:hover { text-decoration: underline; }
.atpc-footer .atpc-brand__logo { background: #fff; padding: 6px 10px; border-radius: 12px; box-sizing: content-box; }
.atpc-map__shield--loop text { fill: var(--atpc-forest-900); }

/* ---------- 25. v6: photography ---------- */
.atpc-photo { display: block; width: 100%; height: auto; border-radius: var(--atpc-radius); background: var(--atpc-paper-2); }
.atpc-service-hero__photo, .atpc-article-layout__photo, .atpc-hub__photo { margin: 0; justify-self: stretch; }
.atpc-service-hero__photo .atpc-photo, .atpc-article-layout__photo .atpc-photo, .atpc-hub__photo .atpc-photo { aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 24px 50px -28px rgba(3,26,65,.55); border: 4px solid #fff; }
@media (min-width: 860px) { .atpc-article-layout__head-grid:has(.atpc-article-layout__photo) { grid-template-columns: 1fr 400px; } }
.atpc-hub__head-grid { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 900px) { .atpc-hub__head-grid { grid-template-columns: 1fr 400px; } }
.atpc-figure { margin: 0 0 var(--atpc-space-7); }
.atpc-figure .atpc-photo { aspect-ratio: 16 / 9; object-fit: cover; }
.atpc-figure figcaption { font-size: .88rem; color: var(--atpc-ink-soft); margin-top: .5rem; padding-left: .75rem; border-left: 3px solid var(--atpc-clay-500); }
.atpc-feature__media--photo .atpc-photo, .atpc-home-plan__media--photo .atpc-photo { aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 24px 50px -28px rgba(3,26,65,.55); }
.atpc-feature__media--photo, .atpc-home-plan__media--photo { display: block; }
.atpc-feature__media--photo img.atpc-photo, .atpc-home-plan__media--photo img.atpc-photo { width: 100%; max-width: 560px; filter: none; }
.atpc-feature__media--photo { place-items: stretch; }

/* ---------- 26. v7: photo cards on homepage ---------- */
.atpc-pest-services__card { grid-template-columns: 1fr; padding: 0; overflow: hidden; gap: 0; }
.atpc-pest-services__media { display: block; }
.atpc-pest-services__media .atpc-photo { border-radius: 0; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .35s ease; }
.atpc-pest-services__card:hover .atpc-pest-services__media .atpc-photo { transform: scale(1.03); }
.atpc-pest-services__media { overflow: hidden; }
.atpc-pest-services__body { padding: 1.1rem 1.2rem 1.25rem; }
.atpc-problem-selector__panel { grid-template-columns: 1fr; padding: 0; overflow: hidden; gap: 0; }
.atpc-problem-selector__photo { margin: 0; }
.atpc-problem-selector__photo .atpc-photo { border-radius: 0; aspect-ratio: 16 / 8; object-fit: cover; }
.atpc-problem-selector__panel > div { padding: .9rem 1rem 1rem; }
.atpc-pest-services__media img.atpc-photo { width: 100%; height: auto; }

/* ---------- 27. v8: photo background in homepage hero ---------- */
.atpc-hero--photo { background: var(--atpc-forest-800); }
.atpc-hero__bg { position: absolute; inset: 0; z-index: 0; }
.atpc-hero__bg .atpc-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; border-radius: 0; }
.atpc-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(3,26,65,.96) 0%, rgba(3,26,65,.9) 38%, rgba(3,26,65,.62) 70%, rgba(3,26,65,.45) 100%); }
@media (max-width: 979px) { .atpc-hero--photo::before { background: linear-gradient(180deg, rgba(3,26,65,.88) 0%, rgba(3,26,65,.94) 60%, rgba(3,26,65,.97) 100%); } }
.atpc-hero--photo::after { z-index: 1; }
.atpc-hero--photo .atpc-hero__inner { z-index: 2; }
.atpc-hero--photo .atpc-hero__lede, .atpc-hero--photo .atpc-hero__facts span { text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.atpc-hero--photo::before { z-index: 1; } .atpc-hero--photo .atpc-hero__inner { z-index: 2; } .atpc-hero--photo::after { z-index: 3; }
.atpc-home-process { background: var(--atpc-paper-2); }
.atpc-home-process__cta { margin-top: 1.5rem; }
.atpc-field-card .atpc-btn { margin-top: 1rem; position: relative; }

/* ---------- 28. v9: photos in pest library + navigator ---------- */
.atpc-pest-library__card { padding: 0; overflow: hidden; }
.atpc-pest-library__card > :not(figure) { margin-left: 1.2rem; margin-right: 1.2rem; }
.atpc-pest-library__card > :last-child { margin-bottom: 1.2rem; }
.atpc-pest-library__photo { margin: 0 0 1rem; position: relative; }
.atpc-pest-library__photo .atpc-photo { border-radius: 0; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; margin: 0; }
.atpc-pest-library__photo figcaption { position: absolute; left: .7rem; bottom: .7rem; background: rgba(3,26,65,.85); color: #fff; font-size: .74rem; font-weight: 700; letter-spacing: .04em; padding: .25rem .55rem; border-radius: 6px; }
.atpc-pest-library__photo--illo { display: grid; place-items: center; aspect-ratio: 4 / 3; background: var(--atpc-paper-2); }
.atpc-pest-library__photo--illo img { width: 120px; margin: 0; }
.atpc-navigator__result img { object-fit: cover; border-radius: 10px; width: 72px; height: 72px; }

/* ---------- 29. v10: area photo behind location heroes ---------- */
.atpc-place-hero--photo { position: relative; overflow: hidden; }
.atpc-place-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(3,26,65,.95) 0%, rgba(3,26,65,.88) 45%, rgba(3,26,65,.55) 100%); }
@media (max-width: 959px) { .atpc-place-hero--photo::before { background: rgba(3,26,65,.88); } }
.atpc-place-hero--photo > .atpc-wrap { position: relative; z-index: 2; }
.atpc-place-hero--photo .atpc-place-hero__lede { text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.atpc-place__intro--photo { display: grid; gap: 1.75rem; align-items: start; max-width: none; }
@media (min-width: 960px) { .atpc-place__intro--photo { grid-template-columns: 1fr 520px; } }
.atpc-place__photo { margin: 0; }
.atpc-place__photo .atpc-photo { aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 24px 50px -28px rgba(3,26,65,.55); }

/* ---------- 30. v11: large photos in navigator results ---------- */
.atpc-navigator__result { grid-template-columns: 1fr; padding: 0; overflow: hidden; gap: 0; }
.atpc-navigator__result img.atpc-navigator__img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; background: var(--atpc-paper); display: block; }
.atpc-navigator__result > div { padding: .9rem 1rem 1rem; }
.atpc-navigator__result h4 { font-size: 1.2rem; }
.atpc-place__extra { max-width: 820px; }
.atpc-place__extra-fig .atpc-photo { aspect-ratio: 16 / 9; }

/* ---------- 31. v12: compact comparable navigator results ---------- */
.atpc-navigator__result { grid-template-columns: 160px 1fr; gap: 0; align-items: stretch; margin-bottom: .6rem; }
.atpc-navigator__result img.atpc-navigator__img { width: 160px; height: 100%; min-height: 120px; aspect-ratio: auto; object-fit: cover; }
.atpc-navigator__result > div { padding: .7rem .9rem; }
.atpc-navigator__result h4 { font-size: 1.05rem; margin-bottom: .15rem; }
.atpc-navigator__result p { margin-bottom: .3rem; font-size: .85rem; }
@media (max-width: 480px) { .atpc-navigator__result { grid-template-columns: 112px 1fr; } .atpc-navigator__result img.atpc-navigator__img { width: 112px; min-height: 100px; } }
.atpc-services-hub__item a { grid-template-columns: 96px 1fr; }
.atpc-services-hub__item .atpc-photo, .atpc-card-list__item .atpc-photo { width: 96px; height: 72px; aspect-ratio: auto; object-fit: cover; border-radius: 8px; }
.atpc-card-list__item { grid-template-columns: 96px 1fr; }
