/*
 * ═══════════════════════════════════════════════════════════════════
 * pawplants-v2.css — PawPlants Design System v4 "Field Guide"
 * ═══════════════════════════════════════════════════════════════════
 *
 * HOW TO DEPLOY:
 *   1. Add this file to your Cloudflare Pages site root
 *   2. Replace <link rel="stylesheet" href="/pawplants.css"> with
 *      <link rel="stylesheet" href="/pawplants-v2.css"> in all pages
 *   3. Update the Google Fonts link to Libre Baskerville + Outfit
 *      (the migration script handles both automatically)
 *
 * FONT LINK TO USE IN <head>:
 *   <link href="https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
 *
 * DESIGN VARIABLES — edit :root to retheme the entire site:
 *   --parchment  page background
 *   --forest     primary green (nav, buttons, links)
 *   --danger     toxic/emergency red
 *   --amber      moderate toxicity amber
 *   --safe       safe-plant green
 *
 * SECTIONS:
 *  1.  Design Tokens
 *  2.  Reset & Base
 *  3.  Accessibility
 *  4.  Alert Banner        .pp-alert
 *  5.  Navigation          .pp-nav, .pp-nav-logo, .pp-nav-links
 *  6.  Breadcrumb          .pp-breadcrumb
 *  7.  Hero (full)         .pp-hero, .pp-hero-inner, .pp-kicker
 *  8.  Hero (simple)       .pg-hero, .pg-hero-inner, .pg-kicker
 *  9.  Severity Strip      .pp-severity-strip
 * 10.  Two-Column Layout   .pp-layout, main, .pp-sidebar
 * 11.  Notice & Callouts   .pp-notice-box, .pp-safe-notice, .pp-warning
 * 12.  Content Sections    .pp-section
 * 13.  Symptom Grid        .pp-symptom-grid, .pp-symptom-item
 * 14.  Buttons             .pp-btn variants
 * 15.  Related Grid        .pp-related-grid
 * 16.  Plant List          .pp-plant-list
 * 17.  Sidebar             .pp-sidebar-card, emergency card
 * 18.  Emergency Band      .pp-emergency-band
 * 19.  Guide Links         .pp-guide-links
 * 20.  Content Bands       .pp-band, .pg-content, main, .wrap
 * 21.  Forms               .pp-form, .pp-form-row
 * 22.  Affiliate Cards     .pp-affiliate-card, .fg-aff-*
 * 23.  Footer              .pp-footer, footer
 * 24.  Modal               .modal-overlay, .modal
 * 25.  Utilities           pills, tags, badges, shimmer
 * 26.  Responsive
 * 27.  Print
 * ═══════════════════════════════════════════════════════════════════
 */

/* ═══════════════════════════════════════════════════════
   1. DESIGN TOKENS
   Change these to retheme the entire site instantly.
   ═══════════════════════════════════════════════════════ */
:root {
  /* ── Color palette ── */
  --parchment:   #f5f0e6;   /* page background */
  --parchment2:  #ede8da;   /* section background */
  --parchment3:  #ddd6c4;   /* borders */
  --cream:       #faf8f2;   /* card background */
  --paper:       #fffefb;   /* modal / elevated surfaces */
  --ink:         #2a2218;   /* primary text */
  --ink-70:      rgba(42,34,24,.70);
  --ink-40:      rgba(42,34,24,.40);
  --ink-15:      rgba(42,34,24,.15);

  /* Brand */
  --forest:      #3d6142;   /* primary green */
  --forest-lt:   #e8f0e9;   /* green tint bg */
  --forest-mid:  #7fa882;   /* green mid tone */
  --forest-dark: #2c4d30;   /* green dark */
  --danger:      #b83a28;   /* toxic / emergency red */
  --danger-lt:   #fdf0ed;   /* red tint bg */
  --danger-dark: #8c2c1c;   /* red dark */
  --amber:       #c08a25;   /* moderate toxicity */
  --amber-lt:    #fef8e8;   /* amber tint bg */
  --safe:        #226348;   /* safe plant green */
  --safe-lt:     #e6f4ec;   /* safe tint bg */

  /* Darks (hero / nav / emergency band) */
  --dark-bg:     #1e2a1f;
  --dark-mid:    #2a3b2c;
  --dark-warm:   #35291e;

  /* ── Typography ── */
  --serif:  'Libre Baskerville', Georgia, serif;
  --sans:   'Outfit', system-ui, -apple-system, sans-serif;

  /* ── Spacing (8px grid) ── */
  --sp-1:  8px;
  --sp-2:  16px;
  --sp-3:  24px;
  --sp-4:  32px;
  --sp-5:  40px;
  --sp-6:  48px;

  /* ── Radii ── */
  --r-xs:   3px;
  --r-sm:   8px;
  --r-md:   14px;
  --r-lg:   22px;
  --r-pill: 999px;

  /* ── Shadows ── */
  --sh-xs:  0 1px 3px rgba(42,34,24,.06);
  --sh-sm:  0 3px 12px rgba(42,34,24,.07);
  --sh-md:  0 8px 28px rgba(42,34,24,.10);
  --sh-lg:  0 20px 60px rgba(42,34,24,.14);
  --sh-modal: 0 40px 100px rgba(0,0,0,.38);

  /* ── Transitions ── */
  --tr:       .2s ease;
  --tr-spring:.22s cubic-bezier(.4,0,.2,1);

  /* ── Layout ── */
  --max-w:  1140px;
  --nav-h:  68px;
  --gap:    clamp(1rem, 4vw, 2.5rem);
}

/* ═══════════════════════════════════════════════════════
   2. RESET & BASE
   ═══════════════════════════════════════════════════════ */
*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
}
html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
body {
  font-family: var(--sans);
  background: var(--parchment);
  color: var(--ink);
  line-height: 1.68;
  letter-spacing: -.01em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
/* Dot-grid texture — gives site a premium field-notebook feel */
body::before {
  content: '';
  position: fixed; inset: 0;
  background-image: radial-gradient(rgba(42,34,24,.05) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  z-index: 0;
}
body > * { position: relative; z-index: 1; }

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--forest); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
strong { font-weight: 700; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { padding-left: 1.4rem; }

/* ═══════════════════════════════════════════════════════
   3. ACCESSIBILITY
   ═══════════════════════════════════════════════════════ */
:focus-visible {
  outline: 2px solid var(--forest);
  outline-offset: 3px;
  border-radius: var(--r-xs);
}
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ═══════════════════════════════════════════════════════
   4. ALERT BANNER
   ═══════════════════════════════════════════════════════ */
.pp-alert {
  background: linear-gradient(90deg, var(--danger-dark), var(--danger));
  color: #fff;
  text-align: center;
  padding: 10px var(--gap);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.55;
}
.pp-alert strong { color: #ffd4cc; font-weight: 700; }
.pp-alert a {
  color: #ffd4cc;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ═══════════════════════════════════════════════════════
   5. NAVIGATION
   ═══════════════════════════════════════════════════════ */
.pp-nav {
  background: var(--cream);
  border-bottom: 2px solid var(--parchment3);
  padding: 0 var(--gap);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: var(--sh-sm);
}

/* Logo */
.pp-nav-logo, .pp-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.pp-nav-logo:hover, .pp-logo-link:hover { opacity: .82; text-decoration: none; }
.pp-logo-img {
  display: block;
  height: 44px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

/* Nav links */
.pp-nav-links {
  display: flex;
  gap: clamp(.7rem, 2vw, 2rem);
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.pp-nav-links a {
  color: var(--ink-70);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  transition: color var(--tr);
  padding: 5px 0;
  border-bottom: 2px solid transparent;
}
.pp-nav-links a:hover {
  color: var(--ink);
  border-bottom-color: var(--forest);
  text-decoration: none;
}
/* Emergency CTA in nav */
.pp-nav-links a[href^="tel"],
.pp-nav-links a.pp-nav-cta {
  background: var(--danger);
  color: #fff;
  padding: 7px 14px;
  border-radius: var(--r-pill);
  border-bottom: none;
  font-size: .68rem;
  letter-spacing: .06em;
}
.pp-nav-links a[href^="tel"]:hover,
.pp-nav-links a.pp-nav-cta:hover {
  background: var(--danger-dark);
  color: #fff;
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════
   6. BREADCRUMB
   ═══════════════════════════════════════════════════════ */
.pp-breadcrumb {
  font-size: .75rem;
  color: var(--ink-40);
  padding: 11px var(--gap);
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
}
.pp-breadcrumb a {
  color: var(--ink-70);
  font-weight: 600;
  transition: color var(--tr);
}
.pp-breadcrumb a:hover { color: var(--forest); text-decoration: none; }
.pp-breadcrumb-sep { opacity: .35; font-size: .65rem; }
.pp-breadcrumb-current { color: var(--ink-70); }

/* ═══════════════════════════════════════════════════════
   7. HERO — FULL (plant detail & guide pages)
   ═══════════════════════════════════════════════════════ */
.pp-hero {
  background: linear-gradient(160deg, var(--dark-bg) 0%, var(--dark-mid) 55%, var(--dark-warm) 100%);
  padding: clamp(3rem, 7vw, 5.5rem) var(--gap) clamp(2.5rem, 5vw, 4.5rem);
  position: relative;
  overflow: hidden;
}
/* Subtle botanical accent */
.pp-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 100% 60%, rgba(74,103,80,.28), transparent),
    radial-gradient(ellipse 40% 50% at 5% 80%, rgba(184,58,40,.12), transparent);
  pointer-events: none;
}
/* Decorative rule at bottom */
.pp-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(184,58,40,.5), var(--amber), rgba(74,103,80,.5), transparent);
}
.pp-hero-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr minmax(210px, 240px);
  gap: 2.5rem;
  align-items: center;
}
.pp-hero-text { max-width: 680px; }

/* Kicker label */
.pp-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .66rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  font-weight: 600;
  margin-bottom: .9rem;
}
.pp-kicker::before {
  content: '';
  display: block;
  width: 22px; height: 1.5px;
  background: currentColor;
  border-radius: 2px;
}

.pp-hero h1,
.pp-hero-text h1 {
  font-family: var(--serif);
  font-size: clamp(2.1rem, 5.5vw, 4rem);
  color: #fff;
  line-height: 1.06;
  letter-spacing: -.035em;
  font-weight: 700;
  margin: 0 0 1rem;
}
.pp-hero-lede {
  color: rgba(255,255,255,.6);
  font-size: clamp(.92rem, 1.5vw, 1.05rem);
  line-height: 1.76;
  max-width: 580px;
  margin-bottom: 1.6rem;
  font-weight: 300;
}
.pp-hero-cta-row {
  display: flex;
  gap: .7rem;
  flex-wrap: wrap;
  align-items: center;
}

/* Hero emergency card (right column) */
.pp-hero-emergency {
  background: rgba(184,58,40,.18);
  border: 1px solid rgba(184,58,40,.32);
  border-radius: var(--r-md);
  padding: 1.4rem 1.5rem;
  backdrop-filter: blur(10px);
}
.pp-hero-emergency-label {
  font-size: .59rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(255,255,255,.42);
  font-weight: 700;
  margin-bottom: .75rem;
}
.pp-emergency-number-block { margin-bottom: .9rem; }
.pp-emergency-number-block:last-of-type { margin-bottom: 0; }
.pp-emergency-org {
  font-size: .64rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.38);
  font-weight: 600;
  margin-bottom: .25rem;
}
.pp-hero-emergency-number {
  display: block;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  transition: color var(--tr);
}
.pp-hero-emergency-number:hover { color: #ffc4b2; text-decoration: none; }
.pp-hero-emergency-note {
  font-size: .67rem;
  color: rgba(255,255,255,.38);
  line-height: 1.5;
  margin-top: .75rem;
}

/* ═══════════════════════════════════════════════════════
   8. HERO — SIMPLE (utility / about / contact pages)
   ═══════════════════════════════════════════════════════ */
.pg-hero {
  background: linear-gradient(160deg, var(--dark-bg) 0%, var(--dark-mid) 60%, var(--dark-warm) 100%);
  color: #fff;
  padding: clamp(2.8rem, 6vw, 5rem) var(--gap);
  position: relative;
  overflow: hidden;
}
.pg-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(192,138,37,.5), transparent);
}
.pg-hero-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.pg-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .64rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
  font-weight: 700;
  margin-bottom: .75rem;
}
.pg-kicker::before {
  content: '';
  display: block;
  width: 20px; height: 1.5px;
  background: currentColor;
  border-radius: 2px;
}
.pg-hero h1 {
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 3.8rem);
  color: #fff;
  line-height: 1.06;
  letter-spacing: -.04em;
  font-weight: 700;
  margin: 0 0 .65rem;
}
.pg-hero p {
  color: rgba(255,255,255,.58);
  font-size: clamp(.9rem, 1.5vw, 1.02rem);
  line-height: 1.76;
  max-width: 640px;
  font-weight: 300;
}

/* ═══════════════════════════════════════════════════════
   9. SEVERITY STRIP
   ═══════════════════════════════════════════════════════ */
.pp-severity-strip {
  background: var(--cream);
  border-bottom: 2px solid var(--parchment3);
  padding: 1rem var(--gap);
}
.pp-severity-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 1.4rem;
  flex-wrap: wrap;
}
.pp-severity-label {
  font-size: .63rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
  color: var(--ink-40);
  flex-shrink: 0;
}
.pp-sev-keys { display: flex; gap: .5rem; flex-wrap: wrap; }
.pp-sev-key {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .74rem;
  font-weight: 600;
  padding: .3rem .7rem;
  border-radius: var(--r-pill);
  transition: background var(--tr);
}
.pp-sev-key-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sev-critical { background: rgba(184,58,40,.1); color: #8a2215; }
.sev-critical .pp-sev-key-dot { background: var(--danger); }
.sev-moderate { background: rgba(192,138,37,.1); color: #7a5500; }
.sev-moderate .pp-sev-key-dot { background: var(--amber); }
.sev-irritant { background: rgba(42,34,24,.07); color: var(--ink-70); }
.sev-irritant .pp-sev-key-dot { background: var(--ink-40); }

/* ═══════════════════════════════════════════════════════
   10. TWO-COLUMN LAYOUT
   ═══════════════════════════════════════════════════════ */
.pp-layout {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3.5rem) var(--gap);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 2.2rem;
  align-items: start;
}
/* Also match plain <main> inside .pp-layout */
.pp-layout main { min-width: 0; }

/* ═══════════════════════════════════════════════════════
   11. NOTICE BOXES & CALLOUTS
   ═══════════════════════════════════════════════════════ */
.pp-notice-box {
  background: var(--danger-lt);
  border: 1px solid rgba(184,58,40,.2);
  border-left: 3px solid var(--danger);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: 1rem 1.15rem;
  font-size: .88rem;
  color: #3b2418;
  line-height: 1.72;
  margin-bottom: 1.75rem;
}
.pp-notice-box a { color: var(--danger-dark); font-weight: 700; }
.pp-notice-box a:hover { text-decoration: underline; }

.pp-safe-notice {
  background: var(--safe-lt);
  border-left: 3px solid var(--safe);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: 1rem 1.15rem;
  font-size: .88rem;
  color: #1a3d2b;
  line-height: 1.72;
  margin-bottom: 1.75rem;
}
.pp-warning {
  background: var(--amber-lt);
  border-left: 3px solid var(--amber);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: 1rem 1.1rem;
  margin: 1rem 0;
  font-size: .9rem;
  line-height: 1.7;
  color: #3b2a10;
}
.pp-note {
  background: var(--forest-lt);
  border-left: 3px solid var(--forest);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: .85rem 1rem;
  font-size: .88rem;
  color: var(--ink-70);
  line-height: 1.7;
  margin: 1rem 0;
}

/* ═══════════════════════════════════════════════════════
   12. CONTENT SECTIONS
   ═══════════════════════════════════════════════════════ */
.pp-section {
  border-top: 2px solid var(--parchment3);
  padding: 2rem 0;
}
.pp-section:first-of-type { border-top: 0; padding-top: 0; }
.pp-section h2 {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.8vw, 1.9rem);
  letter-spacing: -.03em;
  line-height: 1.15;
  margin-bottom: .9rem;
  color: var(--ink);
  font-weight: 700;
}
.pp-section p, .pp-lede {
  color: var(--ink-70);
  line-height: 1.78;
  margin-bottom: .75rem;
  font-size: .96rem;
}
.pp-section p:last-child, .pp-lede:last-child { margin-bottom: 0; }
.pp-section ul, .pp-section ol {
  color: var(--ink-70);
  padding-left: 1.3rem;
}
.pp-section li { margin: .45rem 0; line-height: 1.7; font-size: .95rem; }

/* ═══════════════════════════════════════════════════════
   13. SYMPTOM GRID
   ═══════════════════════════════════════════════════════ */
.pp-symptom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
  margin-top: .5rem;
}
.pp-symptom-item {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .7rem .9rem;
  background: var(--paper);
  border: 2px solid var(--parchment3);
  border-radius: var(--r-sm);
  font-size: .86rem;
  color: var(--ink-70);
  line-height: 1.5;
  transition: border-color var(--tr);
}
.pp-symptom-item:hover { border-color: var(--parchment3); }
.pp-symptom-icon { font-size: 1rem; flex-shrink: 0; margin-top: .05rem; }
.pp-symptom-item.urgent {
  border-color: rgba(184,58,40,.28);
  background: var(--danger-lt);
  color: #3b2418;
}

/* ═══════════════════════════════════════════════════════
   14. BUTTONS
   ═══════════════════════════════════════════════════════ */
.pp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .82rem 1.4rem;
  border-radius: var(--r-sm);
  font-family: var(--sans);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  transition: all var(--tr-spring);
  white-space: nowrap;
  letter-spacing: .01em;
  min-height: 44px; /* WCAG touch target */
  cursor: pointer;
}
.pp-btn:hover { transform: translateY(-2px); text-decoration: none; }
.pp-btn:active { transform: translateY(0); }

.pp-btn-emergency {
  background: var(--danger);
  color: #fff;
  border-color: var(--danger);
  box-shadow: 0 6px 24px rgba(184,58,40,.28);
}
.pp-btn-emergency:hover { background: var(--danger-dark); box-shadow: 0 10px 36px rgba(184,58,40,.38); }

.pp-btn-sage,
.pp-btn-forest {
  background: var(--forest);
  color: #fff;
  border-color: var(--forest);
  box-shadow: 0 4px 16px rgba(61,97,66,.2);
}
.pp-btn-sage:hover,
.pp-btn-forest:hover { background: var(--forest-dark); }

.pp-btn-outline {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--parchment3);
}
.pp-btn-outline:hover { border-color: var(--forest); color: var(--forest); background: var(--forest-lt); }

.pp-btn-outline-ghost {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.24);
}
.pp-btn-outline-ghost:hover { background: rgba(255,255,255,.18); }

.pp-cta-row {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1.4rem;
  align-items: center;
}
.pp-link-row {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-top: 1.1rem;
}

/* ═══════════════════════════════════════════════════════
   15. RELATED PLANT LINK GRID
   ═══════════════════════════════════════════════════════ */
.pp-related-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .35rem;
}
.pp-related-grid a {
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--parchment3);
  border-radius: var(--r-pill);
  padding: .5rem .95rem;
  background: var(--paper);
  color: var(--ink);
  font-weight: 600;
  font-size: .83rem;
  transition: all var(--tr);
}
.pp-related-grid a:hover {
  border-color: var(--forest);
  color: var(--forest);
  background: var(--forest-lt);
  text-decoration: none;
}
.pp-related-grid a.all-guides {
  border-color: var(--forest);
  color: var(--forest);
  font-weight: 700;
}
.pp-related-grid a.all-guides:hover { background: var(--forest); color: #fff; }

.pp-source-link {
  color: var(--ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ═══════════════════════════════════════════════════════
   16. PLANT LIST (guide pages)
   ═══════════════════════════════════════════════════════ */
.pp-plant-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.pp-plant-list li {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  padding: .75rem 1rem;
  background: var(--paper);
  border: 2px solid var(--parchment3);
  border-radius: var(--r-sm);
  font-size: .9rem;
  color: var(--ink-70);
  line-height: 1.6;
  transition: all var(--tr);
}
.pp-plant-list li:hover {
  border-color: var(--forest-mid);
  background: var(--cream);
  transform: translateX(3px);
}
.pp-plant-list li.critical { border-left: 3px solid var(--danger); }
.pp-plant-list li.moderate { border-left: 3px solid var(--amber); }
.pp-plant-list li.safer    { border-left: 3px solid var(--safe); }
.pp-plant-list a { font-weight: 700; color: var(--ink); flex-shrink: 0; }
.pp-plant-list a:hover { color: var(--forest); text-decoration: none; }
.pp-plant-note { color: var(--ink-70); font-size: .84rem; }
.pp-plant-sev {
  margin-left: auto;
  flex-shrink: 0;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .22rem .6rem;
  border-radius: var(--r-pill);
}
.pp-plant-sev.crit { background: rgba(184,58,40,.12); color: var(--danger); }
.pp-plant-sev.mod  { background: rgba(192,138,37,.12); color: #7a5500; }
.pp-plant-sev.safe { background: rgba(34,99,72,.12);   color: var(--safe); }

/* ═══════════════════════════════════════════════════════
   17. SIDEBAR
   ═══════════════════════════════════════════════════════ */
.pp-sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 16px);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pp-sidebar-card {
  background: var(--paper);
  border: 2px solid var(--parchment3);
  border-radius: var(--r-md);
  padding: 1.4rem 1.5rem;
  box-shadow: var(--sh-sm);
}
/* Emergency card override */
.pp-sidebar-card.emergency-card {
  background: linear-gradient(160deg, var(--dark-bg), var(--dark-mid));
  border-color: rgba(184,58,40,.35);
  box-shadow: var(--sh-md);
}
.pp-sidebar-heading {
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: .65rem;
  border-bottom: 2px solid var(--parchment3);
  color: var(--ink-70);
}
.emergency-card .pp-sidebar-heading {
  color: rgba(255,255,255,.38);
  border-bottom-color: rgba(255,255,255,.1);
}
/* Emergency phone in sidebar */
.pp-emergency-phone {
  display: block;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.2;
  transition: color var(--tr);
}
.pp-emergency-phone:hover { color: #ffc4b2; text-decoration: none; }
.pp-emergency-avail {
  font-size: .65rem;
  color: rgba(255,255,255,.32);
  margin-top: .2rem;
}
/* Sidebar CTA button */
.pp-sidebar-cta {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .9rem 1rem;
  border-radius: var(--r-sm);
  background: var(--danger);
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  margin-top: 1.1rem;
  transition: background var(--tr), transform var(--tr);
  box-shadow: 0 5px 18px rgba(184,58,40,.3);
  min-height: 44px;
  text-decoration: none;
}
.pp-sidebar-cta:hover { background: var(--danger-dark); transform: translateY(-1px); text-decoration: none; }
/* Numbered action list */
.pp-sidebar-action-list { list-style: none; padding: 0; }
.pp-sidebar-action-list li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .6rem 0;
  border-bottom: 1px solid var(--parchment3);
  font-size: .84rem;
  color: var(--ink-70);
  line-height: 1.5;
}
.pp-sidebar-action-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.pp-sidebar-action-num {
  flex-shrink: 0;
  width: 22px; height: 22px;
  background: var(--danger);
  color: #fff;
  border-radius: 50%;
  font-size: .68rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Sidebar link list */
.pp-sidebar-link-list { list-style: none; padding: 0; }
.pp-sidebar-link-list li { border-bottom: 1px solid var(--parchment3); }
.pp-sidebar-link-list li:last-child { border-bottom: 0; }
.pp-sidebar-link-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .65rem 0;
  font-size: .86rem;
  font-weight: 600;
  color: var(--ink);
  transition: color var(--tr);
}
.pp-sidebar-link-list a::after { content: '→'; font-size: .75rem; color: var(--ink-40); }
.pp-sidebar-link-list a:hover { color: var(--forest); text-decoration: none; }
.pp-sidebar-link-list a:hover::after { color: var(--forest); }

/* ═══════════════════════════════════════════════════════
   18. EMERGENCY BAND (dark section)
   ═══════════════════════════════════════════════════════ */
.pp-emergency-band,
.emergency-section {
  background: linear-gradient(160deg, #1c1710, #2b2118, #27301f);
  padding: clamp(2.5rem, 5vw, 4.5rem) var(--gap);
}
.pp-emergency-band-inner {
  max-width: var(--max-w);
  margin: 0 auto;
}
.pp-emergency-band h2,
.emergency-section h2 {
  font-family: var(--serif);
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  letter-spacing: -.03em;
  margin-bottom: .55rem;
  font-weight: 700;
}
.pp-emergency-band > .pp-emergency-band-inner > p,
.emergency-section > p {
  color: rgba(255,255,255,.48);
  font-size: .9rem;
  line-height: 1.75;
  max-width: 620px;
  margin-bottom: 1.75rem;
}
.pp-e-grid, .emergency-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.pp-e-cell, .e-card {
  padding: 1.1rem 1.1rem 1.1rem 0;
}
.pp-e-cell + .pp-e-cell,
.e-card + .e-card {
  border-left: 1px solid rgba(255,255,255,.1);
  padding-left: 1.1rem;
}
.pp-e-cell-label, .e-card-label {
  font-size: .59rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(255,255,255,.35);
  font-weight: 700;
  margin-bottom: .4rem;
}
.pp-e-cell-val, .e-card-val {
  color: #fff;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.35;
}
.pp-e-cell-val a, .e-card-val a { color: #fff; }
.pp-e-cell-val a:hover, .e-card-val a:hover { text-decoration: underline; }
.pp-e-cell-note, .e-card-note {
  font-size: .68rem;
  color: rgba(255,255,255,.35);
  margin-top: .35rem;
  line-height: 1.45;
}

/* ═══════════════════════════════════════════════════════
   19. GUIDE LINKS SECTION
   ═══════════════════════════════════════════════════════ */
.pp-guide-links, .pp-guide-hub {
  background: var(--parchment2);
  border-top: 2px solid var(--parchment3);
  border-bottom: 2px solid var(--parchment3);
  padding: clamp(2.5rem, 5vw, 4rem) var(--gap);
}
.pp-guide-inner { max-width: var(--max-w); margin: 0 auto; }
.pp-guide-kicker {
  font-size: .63rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--ink-40);
  font-weight: 700;
  margin-bottom: .5rem;
}
.pp-guide-links h2, .pp-guide-hub h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.05;
  margin: 0 0 .75rem;
  color: var(--ink);
  letter-spacing: -.03em;
}
.pp-guide-links p, .pp-guide-hub p {
  max-width: 680px;
  color: var(--ink-70);
  margin: 0 0 1.2rem;
  line-height: 1.65;
}
.pp-guide-list, .pp-guide-hub-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .65rem;
}
.pp-guide-list a, .pp-guide-hub-list a {
  display: block;
  background: var(--paper);
  border: 2px solid var(--parchment3);
  border-radius: var(--r-pill);
  padding: .72rem 1rem;
  color: var(--ink);
  font-weight: 600;
  font-size: .9rem;
  transition: all var(--tr);
  text-align: center;
}
.pp-guide-list a:hover, .pp-guide-hub-list a:hover {
  border-color: var(--forest);
  color: var(--forest);
  background: var(--forest-lt);
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════
   20. CONTENT BANDS (about / static pages)
   ═══════════════════════════════════════════════════════ */
.pg-content, .pp-page, .wrap, main {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 4rem) var(--gap);
}
.pp-page-wide { max-width: var(--max-w); margin: 0 auto; padding: clamp(2rem, 5vw, 4rem) var(--gap); }
main h2, .pg-content h2 {
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  letter-spacing: -.03em;
  margin: 2rem 0 .75rem;
  line-height: 1.15;
  color: var(--ink);
}
main h2:first-child, .pg-content h2:first-child { margin-top: 0; }
main h3, .pg-content h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 1.4rem 0 .45rem;
  color: var(--ink);
}
main p, .pg-content p {
  color: var(--ink-70);
  line-height: 1.78;
  margin-bottom: .8rem;
  font-size: .95rem;
}
main p:last-child, .pg-content p:last-child { margin-bottom: 0; }
main ul, main ol, .pg-content ul, .pg-content ol {
  color: var(--ink-70);
  margin-bottom: .8rem;
  padding-left: 1.3rem;
}
main li, .pg-content li { margin: .45rem 0; line-height: 1.7; font-size: .95rem; }

/* ═══════════════════════════════════════════════════════
   21. FORMS (contact page)
   ═══════════════════════════════════════════════════════ */
.pp-form { max-width: 560px; margin: 1.5rem 0; }
.pp-form-row, .pp-form-group { margin-bottom: 1.1rem; }
.pp-form-row label, .pp-form-group label {
  display: block;
  font-weight: 700;
  font-size: .86rem;
  margin-bottom: .4rem;
  color: var(--ink);
}
.pp-form-row input,
.pp-form-row textarea,
.pp-form-row select,
.pp-form-group input,
.pp-form-group textarea,
.pp-form-group select {
  width: 100%;
  padding: .78rem 1rem;
  border: 2px solid var(--parchment3);
  border-radius: var(--r-sm);
  font-family: var(--sans);
  font-size: .9rem;
  background: var(--paper);
  color: var(--ink);
  outline: none;
  transition: border-color var(--tr), box-shadow var(--tr);
  min-height: 44px;
  -webkit-appearance: none;
}
.pp-form-row input:focus,
.pp-form-row textarea:focus,
.pp-form-row select:focus,
.pp-form-group input:focus,
.pp-form-group textarea:focus,
.pp-form-group select:focus {
  border-color: var(--forest);
  box-shadow: 0 0 0 4px rgba(61,97,66,.1);
}
.pp-form-row textarea, .pp-form-group textarea {
  min-height: 120px;
  resize: vertical;
}

/* ═══════════════════════════════════════════════════════
   22. AFFILIATE CARDS
   ═══════════════════════════════════════════════════════ */
/* The original .pp-affiliate-card grid */
.pp-affiliate-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}
.pp-affiliate-card {
  display: flex;
  flex-direction: column;
  background: var(--paper);
  border: 2px solid var(--parchment3);
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: var(--ink);
  transition: border-color var(--tr), box-shadow var(--tr), transform var(--tr);
  box-shadow: var(--sh-xs);
}
.pp-affiliate-card:hover {
  border-color: var(--forest-mid);
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
  text-decoration: none;
}
.pp-affiliate-card img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  background: var(--parchment2);
}
.pp-affiliate-card > span {
  padding: .9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  flex: 1;
}
.pp-affiliate-card strong { font-size: .92rem; display: block; margin-bottom: .2rem; }
.pp-affiliate-card span > span { font-size: .78rem; color: var(--ink-70); line-height: 1.5; }
.pp-affiliate-card em {
  font-style: normal;
  font-size: .72rem;
  font-weight: 700;
  color: var(--forest);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-top: .4rem;
}
.pp-affiliate-disclaimer {
  font-size: .74rem;
  color: var(--ink-40);
  margin-top: .75rem;
  line-height: 1.65;
  padding-top: .75rem;
  border-top: 1px solid var(--parchment3);
}

/* fg-aff-* classes from Variation B affiliate section */
.fg-aff-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 1rem;
}
.fg-aff-card {
  display: flex; flex-direction: column;
  background: var(--paper); border: 2px solid var(--parchment3);
  border-radius: var(--r-md); overflow: hidden; text-decoration: none;
  color: var(--ink);
  transition: border-color var(--tr), box-shadow var(--tr), transform var(--tr);
  box-shadow: var(--sh-xs);
}
.fg-aff-card:hover { border-color: var(--forest-mid); box-shadow: var(--sh-md); transform: translateY(-2px); text-decoration: none; }
.fg-aff-img { width: 100%; height: 145px; object-fit: cover; background: var(--parchment2); }
.fg-aff-img-ph { width: 100%; height: 145px; background: linear-gradient(135deg,var(--parchment2),var(--parchment3)); display:flex; align-items:center; justify-content:center; font-size:2.8rem; }
.fg-aff-body { padding: .9rem 1rem 1.1rem; display:flex; flex-direction:column; flex:1; }
.fg-aff-title { font-family: var(--serif); font-size: .94rem; font-weight:700; letter-spacing:-.01em; margin-bottom:.3rem; line-height:1.25; }
.fg-aff-desc { font-size:.78rem; color:var(--ink-70); line-height:1.55; flex:1; margin-bottom:.75rem; }
.fg-aff-cta { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:800; color:var(--forest); text-transform:uppercase; letter-spacing:.07em; }
.fg-aff-cta::after { content:'→'; font-size:.8rem; }
.fg-aff-disclosure { margin-top:1rem; font-size:.72rem; color:var(--ink-40); line-height:1.6; padding-top:.85rem; border-top:1px solid var(--parchment3); }

/* ═══════════════════════════════════════════════════════
   23. FOOTER
   ═══════════════════════════════════════════════════════ */
.pp-footer, footer {
  background: #1a150f;
  color: rgba(255,255,255,.35);
  text-align: center;
  padding: clamp(1.5rem, 4vw, 2.8rem) var(--gap);
  font-size: .7rem;
  letter-spacing: .04em;
  line-height: 1.95;
}
.pp-footer a, footer a {
  color: rgba(255,255,255,.5);
  text-decoration: none;
  transition: color var(--tr);
}
.pp-footer a:hover, footer a:hover { color: rgba(255,255,255,.82); text-decoration: none; }
.pp-footer-links, .footer-links {
  display: flex;
  gap: .9rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: .55rem 0;
}
.pp-footer p { margin: .2rem 0; }

/* ═══════════════════════════════════════════════════════
   24. MODAL
   ═══════════════════════════════════════════════════════ */
.modal-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(20,15,10,.8);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  backdrop-filter: blur(14px);
}
.modal-overlay.open { display: flex; }
.modal {
  background: var(--paper);
  border-radius: var(--r-md);
  max-width: 530px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: var(--sh-modal);
  border: 2px solid var(--parchment3);
  overscroll-behavior: contain;
}
.modal-photo, .modal-photo-ph {
  width: 100%; height: 210px;
  object-fit: cover;
  border-radius: var(--r-md) var(--r-md) 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4.5rem;
  background: var(--parchment2);
}
.modal-header {
  padding: 1.4rem 1.5rem 1rem;
  border-bottom: 2px solid var(--parchment3);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.modal-close {
  background: transparent;
  border: 2px solid var(--parchment3);
  width: 34px; height: 34px; min-width: 34px;
  border-radius: 50%; font-size: .9rem; cursor: pointer;
  color: var(--ink-70);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--tr), border-color var(--tr);
}
.modal-close:hover { background: var(--parchment); border-color: var(--ink-40); }
.modal-body { padding: 1.4rem 1.5rem; }
.modal-section { margin-bottom: 1.2rem; }
.modal-section:last-child { margin-bottom: 0; }
.modal-section h4 {
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--ink-40);
  margin-bottom: .55rem;
  font-weight: 700;
}
.modal-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.danger-box {
  padding: .9rem 1rem;
  border-radius: var(--r-sm);
  font-size: .84rem;
  line-height: 1.65;
  background: var(--danger-lt);
  border-left: 3px solid var(--danger);
}
.safe-box {
  padding: .9rem 1rem;
  border-radius: var(--r-sm);
  font-size: .84rem;
  line-height: 1.65;
  background: var(--safe-lt);
  border-left: 3px solid var(--safe);
}
.modal-seo-link a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 2px solid var(--parchment3);
  border-radius: var(--r-pill);
  padding: 7px 14px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--parchment);
  transition: border-color var(--tr), color var(--tr);
}
.modal-seo-link a:hover { border-color: var(--forest); color: var(--forest); text-decoration: none; }
.modal-toxicity-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: capitalize;
}
.modal-toxicity-high { background: var(--danger-lt); color: var(--danger); }
.modal-toxicity-moderate { background: var(--amber-lt); color: #7a5500; }

/* ═══════════════════════════════════════════════════════
   25. UTILITIES — Pills, tags, badges
   ═══════════════════════════════════════════════════════ */

/* Pet species pills */
.pill-dog    { background:#fff8e1; color:#7a5800; border:1px solid #efd26a; }
.pill-cat    { background:#f3e8ff; color:#6228c2; border:1px solid #cdb9ff; }
.pill-rabbit { background:#ecfdf5; color:#065f46; border:1px solid #7ee3ba; }
.pill-bird   { background:#eff6ff; color:#1e4ab4; border:1px solid #a2c8f6; }

/* Directory card tags */
.st-tag { background: var(--danger-lt); color: var(--danger); font-size:.62rem; padding:3px 8px; border-radius:var(--r-pill); font-weight:700; white-space:nowrap; }
.ss-tag { background: var(--safe-lt);   color: var(--safe);   font-size:.62rem; padding:3px 8px; border-radius:var(--r-pill); font-weight:700; white-space:nowrap; }

/* Toxicity badges */
.badge-high     { background: var(--danger); color: #fff; }
.badge-moderate { background: var(--amber);  color: #fff; }
.badge-safe     { background: var(--safe);   color: #fff; }
.pp-badge, .fg-sev-badge {
  display: inline-flex; align-items: center;
  border-radius: var(--r-pill);
  padding: .35rem .75rem;
  font-weight: 700;
  font-size: .78rem;
}

/* Shimmer loading */
@keyframes pp-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}
.card-img-ph.loading,
.is-loading {
  background: linear-gradient(90deg, #e8e2d8 25%, #d5cfc3 50%, #e8e2d8 75%);
  background-size: 400px 100%;
  animation: pp-shimmer 1.4s infinite;
  font-size: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   26. RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  .pp-layout {
    grid-template-columns: 1fr;
  }
  .pp-sidebar {
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  .pp-hero-inner {
    grid-template-columns: 1fr;
  }
  .pp-hero-emergency {
    max-width: 100%;
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
  }
  .pp-emergency-number-block { margin-bottom: 0; }
  .pp-e-grid, .emergency-cards {
    grid-template-columns: 1fr 1fr;
  }
  .pp-e-cell:nth-child(3), .e-card:nth-child(3) { border-left: 0; padding-left: 0; }
  .pp-e-cell:nth-child(n+3), .e-card:nth-child(n+3) {
    border-top: 1px solid rgba(255,255,255,.1);
    padding-top: 1.1rem;
  }
}

@media (max-width: 680px) {
  :root { --nav-h: 60px; }
  .pp-nav {
    padding: 10px var(--sp-2);
    height: auto;
    min-height: var(--nav-h);
    flex-wrap: wrap;
    gap: 8px;
  }
  .pp-logo-img { height: 38px; max-width: 155px; }
  .pp-nav-links { gap: 8px; justify-content: flex-end; }
  .pp-nav-links a { font-size: .62rem; letter-spacing: .08em; }

  .pp-hero { padding: 2.5rem 1rem 2rem; }
  .pp-hero::after { display: none; }
  .pp-hero h1, .pp-hero-text h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .pp-hero-cta-row { flex-direction: column; align-items: flex-start; max-width: 320px; }
  .pp-hero-cta-row .pp-btn { width: 100%; justify-content: center; }

  .pg-hero { padding: 2.5rem 1rem; }
  .pg-hero h1 { font-size: clamp(1.9rem, 8vw, 3rem); }

  .pp-symptom-grid { grid-template-columns: 1fr; }
  .pp-sidebar { grid-template-columns: 1fr; }

  .pp-e-grid, .emergency-cards { grid-template-columns: 1fr; }
  .pp-e-cell, .pp-e-cell + .pp-e-cell,
  .e-card, .e-card + .e-card {
    border-left: 0; padding-left: 0;
    border-top: 1px solid rgba(255,255,255,.1);
    padding-top: 1rem;
  }
  .pp-e-cell:first-child, .e-card:first-child { border-top: 0; padding-top: 0; }

  .pp-cta-row { flex-direction: column; }
  .pp-cta-row .pp-btn { width: 100%; justify-content: center; }

  .pp-guide-list, .pp-guide-hub-list { grid-template-columns: 1fr; }
  .pp-affiliate-card-grid { grid-template-columns: 1fr 1fr; }
  .fg-aff-grid { grid-template-columns: 1fr 1fr; }

  main, .pg-content, .wrap { padding: 1.6rem 1rem; }
  .pp-layout { padding: 1.5rem 1rem; }
}

@media (max-width: 440px) {
  .pp-affiliate-card-grid { grid-template-columns: 1fr; }
  .fg-aff-grid { grid-template-columns: 1fr; }
  .pp-nav-links a:not([href^="tel"]):not(.pp-nav-cta) {
    display: none;
  }
}

/* ═══════════════════════════════════════════════════════
   27. PRINT
   ═══════════════════════════════════════════════════════ */
@media print {
  .pp-alert, .pp-nav, nav, .pp-sidebar,
  .pp-hero-actions, .pp-cta-row, .pp-link-row,
  .pp-guide-links, .pp-guide-hub,
  .pp-emergency-band, .pp-footer, footer,
  .modal-overlay { display: none !important; }
  body::before { display: none; }
  .pp-layout { grid-template-columns: 1fr; }
  .pp-hero { padding: 2rem 1rem; }
  .pp-hero::before, .pp-hero::after { display: none; }
}
