/* ════════════════════════════════════════════════════════════════════
   California Asphalt Professionals — style.css
   Design system: "Valley Light"
   Vibe: Central Valley editorial. Warm earth palette, Fraunces +
         Source Sans 3, generous white space, restraint.
   Class prefix: apf-
   ════════════════════════════════════════════════════════════════════ */

/* ── FONTS ──────────────────────────────────────────────────────── */
/* Anton (display, single bold weight) + Inter (body) — built for
   conversion: strong industrial display + universally legible UI. */
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;500;600;700;800&display=swap');

/* ── DESIGN TOKENS ──────────────────────────────────────────────── */
:root {
  /* Palette — matches asphaltpavingfresno.com brand (red + black + white) */
  --apf-red:      #B92027;   /* PRIMARY brand — CTAs, accents, headline pops */
  --apf-red-2:    #951820;   /* hover / pressed state */
  --apf-black:    #1A1A1A;   /* near-black, body type, dark bg */
  --apf-charcoal: #3A3A3A;   /* secondary dark — section bg, dark cards */
  --apf-slate:    #4B4F58;   /* muted dark text */
  --apf-stone:    #808285;   /* lightest gray text */
  --apf-white:    #FFFFFF;   /* main bg */
  --apf-off:      #FAFAFA;   /* alt section bg */
  --apf-pale:     #F5F5F5;   /* card / subtle bg */
  --apf-rule:     #E5E5E5;   /* hairline dividers */
  --apf-text:     #1A1A1A;
  --apf-text-mute:#4B4F58;

  /* Legacy aliases — keeps older page styles compiling until they're
     rebuilt in the new direction. Each maps to a sensible new value. */
  --apf-coffee:   var(--apf-black);
  --apf-clay:     var(--apf-red);
  --apf-clay-2:   var(--apf-red-2);
  --apf-olive:    var(--apf-charcoal);
  --apf-bone:     var(--apf-white);
  --apf-paper:    var(--apf-off);
  --apf-cream:    var(--apf-pale);
  --apf-dust:     var(--apf-stone);

  /* Type families */
  --apf-display: 'Anton', 'Arial Narrow', sans-serif;
  --apf-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Spacing scale */
  --apf-shell:    1200px;
  --apf-gap-sm:   16px;
  --apf-gap-md:   32px;
  --apf-gap-lg:   64px;
  --apf-gap-xl:   96px;
}

/* ── RESET / BASE ───────────────────────────────────────────────── */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--apf-body);
  font-size: 1.0625rem;       /* 17px base */
  line-height: 1.65;
  color: var(--apf-text);
  background: var(--apf-bone);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, picture, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--apf-clay); text-decoration: none; transition: color .15s; }
a:hover { color: var(--apf-clay-2); }

/* ── TYPOGRAPHY ─────────────────────────────────────────────────── */
/* Display = Anton (condensed industrial, single weight 400, scales up
   dramatically with size). Use for hero claims + section headings.
   Inter handles everything else, with 700/800 weights for sub-headings. */
.apf-display {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -.005em;
  line-height: 1;
  color: var(--apf-black);
}
.apf-display-xxl { font-size: clamp(3.5rem, 8vw,  7rem); }
.apf-display-xl  { font-size: clamp(3rem,   6vw,  5.5rem); }
.apf-display-lg  { font-size: clamp(2.5rem, 4.5vw, 4rem); }

.apf-h1 { font-family: var(--apf-display); font-weight: 400; text-transform: uppercase; font-size: clamp(2.5rem,5vw,4rem); line-height: 1.02; letter-spacing: -.005em; color: var(--apf-black); }
.apf-h2 { font-family: var(--apf-display); font-weight: 400; text-transform: uppercase; font-size: clamp(2rem,3.5vw,2.75rem); line-height: 1.05; letter-spacing: -.005em; color: var(--apf-black); }
.apf-h3 { font-family: var(--apf-body); font-weight: 700; font-size: 1.35rem; line-height: 1.25; color: var(--apf-black); letter-spacing: -.01em; }

.apf-eyebrow {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--apf-red);
  display: inline-flex; align-items: center; gap: 10px;
}
.apf-eyebrow::before {
  content: ""; display: inline-block; width: 22px; height: 2px;
  background: var(--apf-red);
}

.apf-lede {
  font-family: var(--apf-body);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1.1rem, 1.3vw, 1.25rem);
  line-height: 1.6;
  color: var(--apf-text-mute);
  max-width: 60ch;
}

.apf-body    { font-size: 1.0625rem; line-height: 1.7; color: var(--apf-text); max-width: 66ch; }
.apf-body-lg { font-size: 1.15rem;   line-height: 1.7; color: var(--apf-text); max-width: 62ch; }
.apf-small   { font-size: .9rem;     line-height: 1.6; color: var(--apf-text-mute); }

.apf-caption {
  font-family: var(--apf-body);
  font-weight: 500;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--apf-dust);
}

/* ── LAYOUT ─────────────────────────────────────────────────────── */
.apf-shell {
  max-width: var(--apf-shell);
  margin: 0 auto;
  padding: 0 28px;
}
.apf-section { padding: var(--apf-gap-xl) 0; }
.apf-section-tight { padding: var(--apf-gap-lg) 0; }

.apf-surf-bone  { background: var(--apf-bone); }
.apf-surf-paper { background: var(--apf-paper); }
.apf-surf-cream { background: var(--apf-cream); }
.apf-surf-coffee{ background: var(--apf-coffee); color: var(--apf-bone); }

.apf-rule { border: 0; border-top: 1px solid var(--apf-rule); margin: 0; }
.apf-rule-clay { border-top: 1px solid var(--apf-clay); width: 48px; }

/* ── MARQUEE (utility top bar — brand red strip) ─────────────────── */
.apf-marquee {
  background: var(--apf-red);
  color: var(--apf-white);
  font-size: .82rem;
  letter-spacing: .04em;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,.18);
}
.apf-marquee-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}
.apf-marquee-left { display: flex; gap: 26px; flex-wrap: wrap; opacity: .92; }
.apf-marquee-phone {
  color: var(--apf-white);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  display: inline-flex; align-items: center; gap: 8px;
}
.apf-marquee-phone:hover { color: var(--apf-black); }

/* ── NAV ────────────────────────────────────────────────────────── */
.apf-nav {
  background: var(--apf-bone);
  border-bottom: 1px solid var(--apf-rule);
  position: sticky; top: 0; z-index: 80;
}
.apf-nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  gap: 24px;
}
.apf-brand { display: flex; align-items: center; gap: 14px; color: var(--apf-coffee); }
.apf-brand-icon { width: 52px; height: 52px; display: block; }
.apf-brand-icon img { width: 52px; height: 52px; object-fit: contain; }
.apf-brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.apf-brand-main {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.1rem;
  letter-spacing: -.01em;
  color: var(--apf-coffee);
}
.apf-brand-sub {
  font-family: var(--apf-body);
  font-weight: 500;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--apf-text-mute);
  margin-top: 2px;
}

.apf-menu {
  display: flex;
  align-items: center;
  gap: 28px;
}
.apf-menu a {
  font-family: var(--apf-body);
  font-weight: 500;
  font-size: .95rem;
  color: var(--apf-coffee);
  letter-spacing: .01em;
  padding: 8px 0;
  border-bottom: 2px solid transparent;
  transition: border-color .15s, color .15s;
}
.apf-menu a:hover,
.apf-menu a.is-active { border-bottom-color: var(--apf-clay); color: var(--apf-coffee); }

.apf-burger {
  display: none;
  background: none;
  border: 0;
  width: 38px; height: 38px;
  cursor: pointer;
  position: relative;
}
.apf-burger span {
  position: absolute;
  left: 7px; right: 7px;
  height: 2px;
  background: var(--apf-coffee);
  transition: transform .25s, opacity .25s, top .25s;
}
.apf-burger span:nth-child(1) { top: 12px; }
.apf-burger span:nth-child(2) { top: 18px; }
.apf-burger span:nth-child(3) { top: 24px; }
.apf-burger.open span:nth-child(1) { top: 18px; transform: rotate(45deg); }
.apf-burger.open span:nth-child(2) { opacity: 0; }
.apf-burger.open span:nth-child(3) { top: 18px; transform: rotate(-45deg); }

/* ── BUTTONS (rectangular, industrial, conversion-oriented) ─────── */
.apf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 2px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, transform .12s;
  text-decoration: none;
}
.apf-btn:active { transform: translateY(1px); }
.apf-btn-red,
.apf-btn-clay {
  background: var(--apf-red);
  color: var(--apf-white);
  border-color: var(--apf-red);
}
.apf-btn-red:hover,
.apf-btn-clay:hover {
  background: var(--apf-red-2);
  border-color: var(--apf-red-2);
  color: var(--apf-white);
}
.apf-btn-outline {
  background: transparent;
  color: var(--apf-black);
  border-color: var(--apf-black);
}
.apf-btn-outline:hover {
  background: var(--apf-black);
  color: var(--apf-white);
}
.apf-btn-white {
  background: var(--apf-white);
  color: var(--apf-black);
  border-color: var(--apf-white);
}
.apf-btn-white:hover {
  background: transparent;
  color: var(--apf-white);
  border-color: var(--apf-white);
}
.apf-btn-ghost {
  background: transparent;
  color: var(--apf-red);
  border-color: var(--apf-rule);
}
.apf-btn-ghost:hover {
  background: var(--apf-red);
  color: var(--apf-white);
  border-color: var(--apf-red);
}
.apf-btn-lg { padding: 18px 34px; font-size: 1rem; }
.apf-btn-xl { padding: 22px 42px; font-size: 1.05rem; }

/* ═══════════════════════════════════════════════════════════════
   HOME v4 — Full-bleed hero + quick-estimate bar + dual-audience band
   ═══════════════════════════════════════════════════════════════ */

/* HERO v4 — single coherent visual: photo background, dark overlay,
   left-aligned content block. ONE design language throughout. */
.apf-hero-v4 {
  position: relative;
  background: var(--apf-black);
  color: var(--apf-white);
  overflow: hidden;
  min-height: 640px;
  display: flex;
  align-items: center;
}
.apf-hero-v4::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('/img/apf/jobs/hero-main.webp');
  background-size: cover;
  background-position: center 50%;
  z-index: 0;
}
.apf-hero-v4::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(95deg,
      rgba(0,0,0,.88) 0%,
      rgba(0,0,0,.78) 38%,
      rgba(0,0,0,.55) 60%,
      rgba(0,0,0,.35) 100%);
  z-index: 1;
}
.apf-hero-v4 > .apf-shell {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 84px 28px 96px;
}
.apf-hero-v4-content { max-width: 720px; }

/* Top eyebrow — single small red diamond + small caps */
.apf-hero-eyebrow-v4 {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--apf-white);
  margin-bottom: 24px;
  opacity: .9;
}
.apf-hero-eyebrow-v4::before {
  content: "";
  width: 12px; height: 12px;
  background: var(--apf-red);
  transform: rotate(45deg);
  flex: 0 0 auto;
}

/* The big headline — clean Anton, all caps, no fighting decoration */
.apf-hero-claim-v4 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.8rem, 7vw, 6.5rem);
  line-height: .9;
  color: var(--apf-white);
  letter-spacing: -.005em;
  margin-bottom: 28px;
}
.apf-hero-claim-v4 .red { color: var(--apf-red); }
.apf-hero-claim-v4 .stack {
  display: block;
}

.apf-hero-sub-v4 {
  font-family: var(--apf-body);
  font-weight: 400;
  font-size: 1.18rem;
  line-height: 1.55;
  color: rgba(255,255,255,.88);
  max-width: 58ch;
  margin-bottom: 36px;
}
.apf-hero-sub-v4 strong { color: var(--apf-white); font-weight: 600; }

.apf-hero-cta-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.apf-hero-cta-row .apf-btn-white { color: var(--apf-black); }
.apf-hero-cta-row .apf-btn-white:hover { background: transparent; color: var(--apf-white); border-color: var(--apf-white); }
.apf-hero-cta-row .ghost-light {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .92rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--apf-white);
  border-bottom: 2px solid var(--apf-white);
  padding-bottom: 4px;
  transition: gap .15s, color .15s;
}
.apf-hero-cta-row .ghost-light:hover { gap: 16px; color: var(--apf-red); border-bottom-color: var(--apf-red); }

/* Phone — inline, big, single red icon, NO competing strip styling */
.apf-hero-phone-v4 {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  color: var(--apf-white);
  text-decoration: none;
  letter-spacing: -.005em;
  margin-bottom: 28px;
  transition: color .15s;
}
.apf-hero-phone-v4:hover { color: var(--apf-red); }
.apf-hero-phone-v4 .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  background: var(--apf-red);
  color: var(--apf-white);
}
.apf-hero-phone-v4 .label {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  display: block;
  margin-bottom: 4px;
}

/* Trust row at bottom of hero — single thin divider, diamond bullets */
.apf-hero-trust-v4 {
  border-top: 1px solid rgba(255,255,255,.18);
  padding-top: 24px;
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .88rem;
  color: rgba(255,255,255,.85);
  letter-spacing: .02em;
}
.apf-hero-trust-v4 span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.apf-hero-trust-v4 span::before {
  content: "";
  width: 8px; height: 8px;
  background: var(--apf-red);
  transform: rotate(45deg);
  flex: 0 0 auto;
}

/* QUICK ESTIMATE BAR — red bg, beefier 4-field form in 2 rows */
.apf-quick-bar {
  background: var(--apf-red);
  color: var(--apf-white);
  padding: 56px 0 60px;
  position: relative;
  border-bottom: 4px solid var(--apf-black);
}
.apf-quick-bar .shell-row {
  max-width: var(--apf-shell);
  margin: 0 auto;
  padding: 0 28px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 48px;
  align-items: start;
}
.apf-quick-bar .header h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2rem, 3vw, 2.7rem);
  line-height: .95;
  color: var(--apf-white);
  letter-spacing: -.005em;
  margin-bottom: 14px;
}
.apf-quick-bar .header p {
  font-size: 1rem;
  color: rgba(255,255,255,.92);
  line-height: 1.55;
  max-width: 30ch;
}
.apf-quick-bar .header p a {
  color: var(--apf-white);
  border-bottom: 1.5px solid var(--apf-white);
  font-weight: 600;
}

.apf-quick-bar form {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
}
.apf-quick-bar form .field { display: flex; flex-direction: column; gap: 6px; }
.apf-quick-bar form label {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
}
.apf-quick-bar form input,
.apf-quick-bar form textarea {
  padding: 16px 18px;
  border: 0;
  background: var(--apf-white);
  font-family: var(--apf-body);
  font-size: 1rem;
  color: var(--apf-text);
  border-radius: 0;
  width: 100%;
}
.apf-quick-bar form textarea {
  min-height: 68px;
  resize: vertical;
  line-height: 1.45;
}
.apf-quick-bar form input:focus,
.apf-quick-bar form textarea:focus {
  outline: 3px solid var(--apf-black);
  outline-offset: 0;
}
.apf-quick-bar form .message { grid-column: 1 / 3; }
.apf-quick-bar form button {
  grid-column: 3 / 4;
  padding: 18px 28px;
  background: var(--apf-black);
  color: var(--apf-white);
  border: 0;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, transform .12s;
  white-space: nowrap;
  align-self: end;
  height: auto;
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.apf-quick-bar form button:hover { background: rgba(0,0,0,.85); }
.apf-quick-bar form button:active { transform: translateY(1px); }

@media (max-width: 1024px) {
  .apf-hero-v4 { min-height: auto; }
  .apf-hero-v4 > .apf-shell { padding: 64px 24px 76px; }
  .apf-quick-bar .shell-row { grid-template-columns: 1fr; gap: 28px; }
  .apf-quick-bar form { grid-template-columns: 1fr 1fr; }
  .apf-quick-bar form .message { grid-column: 1 / 3; }
  .apf-quick-bar form button { grid-column: 1 / 3; }
}
@media (max-width: 600px) {
  .apf-hero-claim-v4 { font-size: 2.5rem; }
  .apf-quick-bar form { grid-template-columns: 1fr; }
  .apf-quick-bar form .message,
  .apf-quick-bar form button { grid-column: 1; }
}

/* ═══════════════════════════════════════════════════════════════
   DIAMOND HOME (v3) — CAP logo's diamond shape as structural spine
   ═══════════════════════════════════════════════════════════════ */

/* Hero v3 — rectangle photo + diamond badge accent + dual-audience headline + quick form */
.apf-hero-v3 {
  background: var(--apf-off);
  position: relative;
  overflow: hidden;
  border-bottom: 6px solid var(--apf-red);
}
.apf-hero-v3-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
  padding: 72px 28px 88px;
  max-width: var(--apf-shell);
  margin: 0 auto;
}

/* Rectangle photo with embellishments — landscape for action shots */
.apf-hero-photo-frame {
  position: relative;
  width: 100%;
}
.apf-hero-photo-frame .photo {
  width: 100%;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  background: var(--apf-pale);
  box-shadow: 0 36px 72px -24px rgba(0,0,0,.45),
              0 0 0 1px rgba(0,0,0,.08);
  position: relative;
  border: 4px solid var(--apf-black);
}
.apf-hero-photo-frame .photo img {
  width: 100%; height: 100%;
  object-fit: cover;
}

/* Top banner strip overlaying the photo — red eyebrow */
.apf-hero-photo-frame .top-banner {
  position: absolute;
  top: 0;
  left: 0; right: 0;
  background: var(--apf-red);
  color: var(--apf-white);
  padding: 10px 22px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.apf-hero-photo-frame .top-banner::after {
  content: "";
  width: 10px; height: 10px;
  background: var(--apf-white);
  transform: rotate(45deg);
}

/* Red diamond badge — outside the frame at top-left corner */
.apf-hero-badge-diamond {
  position: absolute;
  top: -22px;
  left: -22px;
  width: 120px;
  height: 120px;
  background: var(--apf-red);
  transform: rotate(45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  box-shadow: 0 10px 28px -8px rgba(0,0,0,.5);
  border: 4px solid var(--apf-black);
}
.apf-hero-badge-diamond .inner {
  transform: rotate(-45deg);
  color: var(--apf-white);
  text-align: center;
  line-height: 1.05;
}
.apf-hero-badge-diamond .est {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .92;
}
.apf-hero-badge-diamond .year {
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: 2rem;
  line-height: 1;
  margin-top: 2px;
}

/* Black caption strip — sign-shop specs across the bottom */
.apf-hero-photo-frame .caption {
  position: absolute;
  bottom: 0;
  left: 0; right: 0;
  background: var(--apf-black);
  color: var(--apf-white);
  padding: 14px 22px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 2px solid var(--apf-red);
}
.apf-hero-photo-frame .caption .label { opacity: .65; font-weight: 600; }
.apf-hero-photo-frame .caption .value { color: var(--apf-red); }

/* Right column content — embellished */
.apf-hero-v3-content { max-width: 640px; }

/* Decorative top ornament: line · diamond · TEXT · diamond · line */
.apf-ornament {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 26px;
}
.apf-ornament .line {
  flex: 0 0 auto;
  width: 36px;
  height: 2px;
  background: var(--apf-red);
}
.apf-ornament .diam {
  width: 10px; height: 10px;
  background: var(--apf-red);
  transform: rotate(45deg);
}
.apf-ornament .text {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .76rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--apf-black);
}

.apf-hero-v3-claim {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  line-height: .92;
  color: var(--apf-black);
  letter-spacing: -.005em;
  margin-bottom: 14px;
}
.apf-hero-v3-claim .red { color: var(--apf-red); }
.apf-hero-v3-claim .stack {
  display: block;
}

/* Decorative rule between headline and subhead — like a sign painter's flourish */
.apf-hero-rule {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0;
}
.apf-hero-rule .l { flex: 1; height: 1.5px; background: var(--apf-black); }
.apf-hero-rule .d {
  width: 14px; height: 14px;
  background: var(--apf-red);
  transform: rotate(45deg);
  border: 2px solid var(--apf-black);
  box-sizing: border-box;
}
.apf-hero-rule .d.outline {
  background: var(--apf-off);
  border: 2px solid var(--apf-black);
}

.apf-hero-v3-sub {
  font-family: var(--apf-body);
  font-weight: 400;
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--apf-text-mute);
  max-width: 56ch;
  margin-bottom: 28px;
}
.apf-hero-v3-sub strong {
  color: var(--apf-black);
  font-weight: 600;
}

/* Phone — wrapped in a black strip for impact */
.apf-hero-phone-strip {
  display: inline-flex;
  align-items: stretch;
  background: var(--apf-black);
  margin-bottom: 22px;
  box-shadow: 0 8px 24px -10px rgba(0,0,0,.35);
}
.apf-hero-phone-strip .label {
  background: var(--apf-red);
  color: var(--apf-white);
  padding: 12px 16px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  line-height: 1.15;
}
.apf-hero-phone-strip .num {
  padding: 8px 22px 8px 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 3.2vw, 2.4rem);
  color: var(--apf-white);
  text-decoration: none;
  letter-spacing: -.005em;
  transition: color .15s;
}
.apf-hero-phone-strip .num:hover { color: var(--apf-red); }
.apf-hero-phone-strip .num svg { color: var(--apf-red); flex: 0 0 auto; }

/* Trust signal row beneath form */
.apf-hero-trust-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--apf-rule);
}
.apf-hero-trust-row span {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .88rem;
  letter-spacing: .04em;
  color: var(--apf-black);
  display: flex;
  align-items: center;
  gap: 8px;
}
.apf-hero-trust-row span::before {
  content: "";
  width: 8px; height: 8px;
  background: var(--apf-red);
  transform: rotate(45deg);
  flex: 0 0 auto;
}

/* Inline 3-field quick form — name/phone/go */
.apf-quick-form {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 10px;
  margin-top: 12px;
  padding: 16px;
  background: var(--apf-white);
  border: 2px solid var(--apf-black);
  position: relative;
}
.apf-quick-form::before {
  content: "FREE ESTIMATE";
  position: absolute;
  top: -12px;
  left: 18px;
  background: var(--apf-red);
  color: var(--apf-white);
  padding: 4px 12px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .16em;
}
.apf-quick-form input {
  padding: 14px 14px;
  border: 1.5px solid var(--apf-rule);
  font-family: var(--apf-body);
  font-size: 1rem;
  background: var(--apf-white);
}
.apf-quick-form input:focus {
  outline: none;
  border-color: var(--apf-red);
}
.apf-quick-form button {
  padding: 14px 28px;
  background: var(--apf-red);
  color: var(--apf-white);
  border: 0;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.apf-quick-form button:hover { background: var(--apf-red-2); }
.apf-quick-form-note {
  margin-top: 14px;
  font-size: .88rem;
  color: var(--apf-text-mute);
}
.apf-quick-form-note a { color: var(--apf-red); font-weight: 600; }

/* DUAL-AUDIENCE BAND — the B2B elevation */
.apf-dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 3px solid var(--apf-black);
  border-bottom: 3px solid var(--apf-black);
}
.apf-dual-half {
  padding: 64px 40px;
  position: relative;
  overflow: hidden;
  transition: background .2s;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.apf-dual-half.left  { background: var(--apf-black); color: var(--apf-white); }
.apf-dual-half.right { background: var(--apf-red);   color: var(--apf-white); }
.apf-dual-half::after {
  /* huge diamond outline in the corner */
  content: "";
  position: absolute;
  width: 320px; height: 320px;
  border: 2px solid currentColor;
  opacity: .12;
  transform: rotate(45deg);
  right: -160px;
  bottom: -160px;
  pointer-events: none;
}
.apf-dual-eyebrow {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 1;
}
.apf-dual-eyebrow::before {
  content: "";
  width: 10px; height: 10px;
  background: currentColor;
  transform: rotate(45deg);
  display: inline-block;
}
.apf-dual-half h2 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.2rem, 3.5vw, 3.2rem);
  line-height: 1;
  margin-bottom: 18px;
  letter-spacing: -.005em;
  position: relative;
  z-index: 1;
  color: inherit;
  max-width: 16ch;
}
.apf-dual-half p {
  font-size: 1.02rem;
  line-height: 1.6;
  opacity: .9;
  max-width: 38ch;
  margin-bottom: 26px;
  position: relative;
  z-index: 1;
}
.apf-dual-half ul {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  position: relative;
  z-index: 1;
  text-align: left;
  display: inline-block;
  min-width: 280px;
}
.apf-dual-half ul li {
  padding: 8px 0 8px 22px;
  position: relative;
  font-size: .98rem;
  opacity: .92;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.apf-dual-half ul li::before {
  content: "";
  position: absolute;
  left: 0; top: 16px;
  width: 8px; height: 8px;
  background: currentColor;
  transform: rotate(45deg);
}
.apf-dual-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .88rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: inherit;
  border-bottom: 2px solid currentColor;
  padding-bottom: 4px;
  position: relative;
  z-index: 1;
  transition: gap .15s, opacity .15s;
}
.apf-dual-cta:hover { gap: 16px; opacity: .85; color: inherit; }

/* ── WHY-CAP 3-UP — competitor differentiators ────────────────── */
.apf-why-3up {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 48px;
}
.apf-why-3up-item {
  border-top: 3px solid var(--apf-red);
  padding-top: 24px;
}
.apf-why-3up-item h3 {
  font-family: var(--apf-display);
  text-transform: uppercase;
  font-size: 1.6rem;
  line-height: 1.05;
  margin-bottom: 12px;
  color: var(--apf-black);
}
.apf-why-3up-item p {
  color: var(--apf-text-mute);
  line-height: 1.65;
}
@media (max-width: 760px) {
  .apf-why-3up { grid-template-columns: 1fr; gap: 28px; margin-top: 32px; }
  .apf-why-3up-item { padding-top: 18px; }
  .apf-why-3up-item h3 { font-size: 1.35rem; }
}

/* ── TESTIMONIALS — 3-card social proof grid ───────────────────── */
.apf-testimonials-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 14px;
}
.apf-testimonials-rating {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0 8px;
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .92rem;
  color: var(--apf-text-mute);
}
.apf-testimonials-rating .stars {
  color: var(--apf-red);
  font-size: 1.1rem;
  letter-spacing: 2px;
}
.apf-testimonials-rating .score {
  font-family: var(--apf-display);
  font-size: 1.6rem;
  color: var(--apf-black);
  letter-spacing: -.01em;
}
.apf-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 48px;
}
.apf-testimonial {
  background: var(--apf-white);
  border: 1px solid var(--apf-rule);
  border-top: 3px solid var(--apf-red);
  padding: 30px 28px 30px;
  display: flex;
  flex-direction: column;
}
.apf-testimonial .stars {
  color: var(--apf-red);
  font-size: 1.05rem;
  letter-spacing: 3px;
  margin-bottom: 16px;
}
.apf-testimonial blockquote {
  font-family: var(--apf-body);
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--apf-text);
  margin: 0 0 22px;
  flex: 1;
}
.apf-testimonial blockquote::before {
  content: "\201C";
  display: block;
  font-family: var(--apf-display);
  color: var(--apf-red);
  font-size: 3.2rem;
  line-height: .6;
  margin-bottom: 14px;
}
.apf-testimonial cite {
  font-style: normal;
  display: block;
  border-top: 1px solid var(--apf-rule);
  padding-top: 14px;
}
.apf-testimonial cite .name {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .98rem;
  color: var(--apf-black);
  display: block;
  margin-bottom: 2px;
}
.apf-testimonial cite .source {
  font-family: var(--apf-body);
  font-size: .82rem;
  color: var(--apf-text-mute);
  display: block;
}
.apf-testimonials-note {
  text-align: center;
  margin-top: 28px;
  font-size: .85rem;
  color: var(--apf-stone);
  font-style: italic;
}

/* ── FROM-THE-SHOP — owner / family intro block ─────────────────── */
.apf-shop-intro {
  background: var(--apf-black);
  color: var(--apf-white);
  padding: 80px 0;
  position: relative;
}
.apf-shop-intro .shell {
  max-width: var(--apf-shell);
  margin: 0 auto;
  padding: 0 28px;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 64px;
  align-items: center;
}
.apf-shop-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  border: 4px solid var(--apf-white);
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.6);
}
.apf-shop-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(.2) contrast(1.05);
}
.apf-shop-photo::after {
  content: "";
  position: absolute;
  top: -22px; left: -22px;
  width: 90px; height: 90px;
  background: var(--apf-red);
  transform: rotate(45deg);
  z-index: -1;
}
.apf-shop-intro .text .apf-eyebrow {
  color: var(--apf-white);
}
.apf-shop-intro .text .apf-eyebrow::before {
  background: var(--apf-red);
}
.apf-shop-intro h2 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: .95;
  color: var(--apf-white);
  letter-spacing: -.005em;
  margin: 16px 0 24px;
}
.apf-shop-intro h2 .red { color: var(--apf-red); }
.apf-shop-intro p {
  color: rgba(255,255,255,.85);
  font-size: 1.08rem;
  line-height: 1.65;
  margin-bottom: 18px;
  max-width: 56ch;
}
.apf-shop-intro p strong { color: var(--apf-white); font-weight: 600; }
.apf-shop-signature {
  border-top: 1px solid rgba(255,255,255,.2);
  padding-top: 22px;
  margin-top: 26px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.apf-shop-signature .name {
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: 1.6rem;
  color: var(--apf-white);
  letter-spacing: -.005em;
  text-transform: uppercase;
}
.apf-shop-signature .title {
  font-family: var(--apf-body);
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* ── FAQ — 2-column Q&A grid ───────────────────────────────────── */
.apf-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
  margin-top: 48px;
}
.apf-faq-item {
  padding: 28px 0;
  border-top: 2px solid var(--apf-rule);
  position: relative;
}
.apf-faq-item:first-child,
.apf-faq-item:nth-child(2) { border-top-color: var(--apf-black); }
.apf-faq-q {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.2rem;
  line-height: 1.15;
  color: var(--apf-black);
  margin-bottom: 12px;
  padding-left: 28px;
  letter-spacing: -.005em;
  position: relative;
}
.apf-faq-q::before {
  content: "";
  position: absolute;
  left: 0; top: 6px;
  width: 12px; height: 12px;
  background: var(--apf-red);
  transform: rotate(45deg);
}
.apf-faq-a {
  font-family: var(--apf-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--apf-text-mute);
  padding-left: 28px;
  max-width: 52ch;
}

@media (max-width: 1024px) {
  .apf-testimonials-grid { grid-template-columns: 1fr; gap: 18px; }
  .apf-shop-intro .shell { grid-template-columns: 1fr; gap: 40px; }
  .apf-shop-photo { max-width: 380px; margin: 0 auto; }
  .apf-faq-grid { grid-template-columns: 1fr; gap: 0; }
  .apf-faq-item:nth-child(2) { border-top-color: var(--apf-rule); }
}

/* SERVICE AREA — 4-county typographic block (replaces the SVG map) */
.apf-counties-section { background: var(--apf-off); }
.apf-counties-head {
  text-align: center;
  margin: 0 auto 56px;
  max-width: 760px;
}
.apf-counties-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 3px solid var(--apf-black);
  border-bottom: 3px solid var(--apf-black);
}
.apf-county {
  padding: 36px 28px 32px;
  border-right: 1px solid var(--apf-rule);
  position: relative;
}
.apf-county:last-child { border-right: 0; }
.apf-county::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--apf-red);
}
.apf-county:nth-child(2)::before { background: var(--apf-black); }
.apf-county:nth-child(4)::before { background: var(--apf-black); }
.apf-county-label {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--apf-red);
  margin-bottom: 8px;
}
.apf-county h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.55rem;
  line-height: 1;
  color: var(--apf-black);
  margin-bottom: 6px;
  letter-spacing: -.005em;
}
.apf-county .tag {
  font-family: var(--apf-body);
  font-style: italic;
  font-size: .92rem;
  color: var(--apf-text-mute);
  margin-bottom: 18px;
  line-height: 1.4;
}
.apf-county ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.apf-county ul li {
  padding: 6px 0;
  font-size: .95rem;
  color: var(--apf-text);
  border-top: 1px solid var(--apf-rule);
}
.apf-county ul li:first-child { border-top: 0; padding-top: 0; }
.apf-county ul li a { color: var(--apf-text); transition: color .12s; }
.apf-county ul li a:hover { color: var(--apf-red); }

.apf-counties-after {
  margin-top: 40px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}
.apf-counties-stat {
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: 1.4rem;
  color: var(--apf-black);
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  letter-spacing: -.005em;
}
.apf-counties-stat .n { color: var(--apf-red); }
.apf-counties-stat::after {
  content: "";
  width: 6px; height: 6px;
  background: var(--apf-red);
  transform: rotate(45deg);
  margin-left: 32px;
}
.apf-counties-stat:last-child::after { display: none; }

@media (max-width: 900px) {
  .apf-counties-grid { grid-template-columns: 1fr 1fr; }
  .apf-county { border-right: 1px solid var(--apf-rule); border-bottom: 1px solid var(--apf-rule); }
  .apf-county:nth-child(2) { border-right: 0; }
  .apf-county:nth-child(3),
  .apf-county:nth-child(4) { border-bottom: 0; }
  .apf-county:nth-child(4) { border-right: 0; }
}
@media (max-width: 560px) {
  .apf-counties-grid { grid-template-columns: 1fr; }
  .apf-county { border-right: 0; border-bottom: 1px solid var(--apf-rule); }
  .apf-county:last-child { border-bottom: 0; }
  .apf-counties-stat::after { display: none; }
}

/* DIAMOND-MASKED SERVICE TILES (subtle — clipped corners not full diamond) */
.apf-svc-v3-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  margin-top: 48px;
}
.apf-svc-v3-card {
  background: var(--apf-white);
  border: 2px solid var(--apf-black);
  padding: 26px 22px 24px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform .25s, background .15s;
}
.apf-svc-v3-card::before {
  /* small diamond accent top-right */
  content: "";
  position: absolute;
  top: -7px; right: 22px;
  width: 12px; height: 12px;
  background: var(--apf-red);
  transform: rotate(45deg);
  border: 2px solid var(--apf-black);
}
.apf-svc-v3-card:hover {
  background: var(--apf-black);
  transform: translateY(-4px);
}
.apf-svc-v3-card:hover h3,
.apf-svc-v3-card:hover p { color: var(--apf-white); }
.apf-svc-v3-card:hover .apf-svc-v3-cta { color: var(--apf-red); }
.apf-svc-v3-num {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--apf-red);
  margin-bottom: 18px;
}
.apf-svc-v3-card h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.45rem;
  line-height: 1;
  color: var(--apf-black);
  margin-bottom: 12px;
  transition: color .15s;
}
.apf-svc-v3-card p {
  color: var(--apf-text-mute);
  font-size: .94rem;
  line-height: 1.5;
  margin-bottom: 18px;
  flex: 1;
  transition: color .15s;
}
.apf-svc-v3-cta {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-red);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color .15s, gap .15s;
}
.apf-svc-v3-cta:hover { gap: 12px; }

/* Page-wide diamond divider element */
.apf-diamond-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 32px;
  gap: 8px;
}
.apf-diamond-divider span {
  width: 14px; height: 14px;
  background: var(--apf-red);
  transform: rotate(45deg);
}
.apf-diamond-divider span:nth-child(2) {
  background: transparent;
  border: 2px solid var(--apf-black);
}

/* Responsive for v3 */
@media (max-width: 1024px) {
  .apf-hero-v3-grid { grid-template-columns: 1fr; gap: 56px; padding: 56px 24px 72px; }
  .apf-diamond-stage { max-width: 380px; }
  .apf-dual { grid-template-columns: 1fr; }
  .apf-map-grid { grid-template-columns: 1fr; gap: 36px; }
  .apf-svc-v3-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .apf-quick-form { grid-template-columns: 1fr; }
  .apf-svc-v3-row { grid-template-columns: 1fr; }
  .apf-diamond-label.tl,
  .apf-diamond-label.br { display: none; }
  .apf-dual-half { padding: 40px 28px; }
  .apf-map-pin-list { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   CONVERSION HOME (v2) — red brand, embedded form, trust signals
   ═══════════════════════════════════════════════════════════════ */
.apf-hero-v2 {
  background: var(--apf-black);
  color: var(--apf-white);
  position: relative;
  overflow: hidden;
}
.apf-hero-v2::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('/img/apf/jobs/maint.webp');
  background-size: cover;
  background-position: center 62%;
  opacity: .35;
  z-index: 0;
}
.apf-hero-v2::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,26,26,.45) 0%, rgba(26,26,26,.85) 100%);
  z-index: 0;
}
.apf-hero-v2 > .apf-shell {
  position: relative;
  z-index: 1;
  padding: 72px 28px 88px;
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 56px;
  align-items: center;
}
.apf-hero-badge {
  display: inline-block;
  background: var(--apf-red);
  color: var(--apf-white);
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 7px 14px;
  margin-bottom: 24px;
}
.apf-hero-claim-v2 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.8rem, 6.5vw, 5.5rem);
  line-height: .95;
  color: var(--apf-white);
  letter-spacing: -.005em;
  margin-bottom: 22px;
}
.apf-hero-claim-v2 .red { color: var(--apf-red); }
.apf-hero-sub-v2 {
  font-family: var(--apf-body);
  font-weight: 400;
  font-size: 1.12rem;
  line-height: 1.55;
  color: rgba(255,255,255,.85);
  max-width: 56ch;
  margin-bottom: 32px;
}
.apf-hero-phone-row {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.apf-hero-phone-big {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: clamp(2rem, 3.5vw, 2.6rem);
  color: var(--apf-white);
  text-decoration: none;
  letter-spacing: -.005em;
  transition: color .15s;
}
.apf-hero-phone-big:hover { color: var(--apf-red); }
.apf-hero-phone-big svg { color: var(--apf-red); }
.apf-hero-phone-label {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.apf-hero-trust {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  font-family: var(--apf-body);
  font-size: .92rem;
  font-weight: 500;
  color: rgba(255,255,255,.78);
}
.apf-hero-trust span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.apf-hero-trust span::before {
  content: "✓";
  color: var(--apf-red);
  font-weight: 700;
}

/* Embedded estimate form card */
.apf-hero-form-card {
  background: var(--apf-white);
  color: var(--apf-text);
  padding: 30px 30px 32px;
  border-top: 5px solid var(--apf-red);
  box-shadow: 0 30px 70px -20px rgba(0,0,0,.5);
}
.apf-hero-form-card h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 2.1rem;
  line-height: 1;
  color: var(--apf-black);
  margin-bottom: 6px;
}
.apf-hero-form-card .sub {
  font-size: .92rem;
  color: var(--apf-text-mute);
  margin-bottom: 20px;
}
.apf-hero-form-card .apf-form { gap: 14px; }
.apf-hero-form-card .apf-field label {
  font-size: .72rem;
  letter-spacing: .12em;
  color: var(--apf-black);
}
.apf-hero-form-card .apf-field input,
.apf-hero-form-card .apf-field textarea,
.apf-hero-form-card .apf-field select {
  padding: 12px 14px;
  border: 1.5px solid var(--apf-rule);
  background: var(--apf-white);
  font-size: .98rem;
  border-radius: 2px;
}
.apf-hero-form-card .apf-field input:focus,
.apf-hero-form-card .apf-field textarea:focus,
.apf-hero-form-card .apf-field select:focus {
  border-color: var(--apf-red);
  background: var(--apf-white);
}
.apf-hero-form-card .apf-field textarea { min-height: 90px; }
.apf-hero-form-card button[type="submit"] {
  width: 100%;
  padding: 16px 20px;
  margin-top: 4px;
}
.apf-hero-form-card .privacy {
  font-size: .78rem;
  color: var(--apf-stone);
  text-align: center;
  margin-top: 12px;
  line-height: 1.5;
}

/* TRUST BAR — under hero */
.apf-trust-bar {
  background: var(--apf-red);
  color: var(--apf-white);
}
.apf-trust-bar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  text-align: center;
}
.apf-trust-item {
  padding: 28px 16px;
  border-right: 1px solid rgba(255,255,255,.18);
}
.apf-trust-item:last-child { border-right: 0; }
.apf-trust-item .n {
  font-family: var(--apf-display);
  font-size: 2.4rem;
  line-height: 1;
  margin-bottom: 6px;
  display: block;
  letter-spacing: -.01em;
}
.apf-trust-item .l {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .92;
}

/* SERVICES v2 — 5-card grid (2+3) with red CTAs */
.apf-svc-v2-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  margin-top: 40px;
}
.apf-svc-v2-row.three { grid-template-columns: repeat(3, 1fr); margin-top: 22px; }
.apf-svc-v2-card {
  background: var(--apf-white);
  border: 1px solid var(--apf-rule);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .15s;
}
.apf-svc-v2-card:hover {
  transform: translateY(-4px);
  border-color: var(--apf-red);
  box-shadow: 0 24px 48px -24px rgba(0,0,0,.18);
}
.apf-svc-v2-photo {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--apf-pale);
}
.apf-svc-v2-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.apf-svc-v2-card:hover .apf-svc-v2-photo img { transform: scale(1.05); }
.apf-svc-v2-body {
  padding: 26px 26px 26px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.apf-svc-v2-body h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.55rem;
  line-height: 1;
  margin-bottom: 10px;
  color: var(--apf-black);
}
.apf-svc-v2-body p {
  color: var(--apf-text-mute);
  font-size: .98rem;
  line-height: 1.55;
  margin-bottom: 18px;
  flex: 1;
}
.apf-svc-v2-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .84rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-red);
  align-self: flex-start;
  border-bottom: 2px solid var(--apf-red);
  padding-bottom: 3px;
  transition: gap .15s;
}
.apf-svc-v2-cta:hover { gap: 14px; color: var(--apf-red-2); }

/* WHY US — 4 reasons, 2x2 grid, red numbered */
.apf-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 48px;
}
.apf-why-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 22px;
  align-items: start;
}
.apf-why-num {
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: 4rem;
  line-height: .8;
  color: var(--apf-red);
}
.apf-why-item h3 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.6rem;
  line-height: 1.05;
  margin-bottom: 10px;
  color: var(--apf-black);
}
.apf-why-item p {
  color: var(--apf-text-mute);
  font-size: 1rem;
  line-height: 1.65;
}

/* GALLERY TEASER — 4 photo strip with overlay CTA */
.apf-gallery-teaser {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 40px;
}
.apf-gt-tile {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--apf-pale);
  position: relative;
}
.apf-gt-tile img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease, opacity .25s;
}
.apf-gt-tile:hover img { transform: scale(1.05); opacity: .85; }

/* SERVICE AREA STRIP — red highlight */
.apf-area-v2 {
  background: var(--apf-black);
  color: var(--apf-white);
  padding: 56px 0;
}
.apf-area-v2 h2 { color: var(--apf-white); }
.apf-area-v2 h2 .red { color: var(--apf-red); }
.apf-area-v2 p { color: rgba(255,255,255,.78); }
.apf-area-v2-cities {
  margin-top: 24px;
  font-size: 1rem;
  line-height: 1.85;
}
.apf-area-v2-cities a { color: var(--apf-white); border-bottom: 1px solid transparent; }
.apf-area-v2-cities a:hover { color: var(--apf-red); border-bottom-color: var(--apf-red); }
.apf-area-v2-cities span { color: rgba(255,255,255,.4); margin: 0 6px; }

/* BIG FINAL CTA — large red bottom band */
.apf-final-cta {
  background: var(--apf-red);
  color: var(--apf-white);
  padding: 120px 0 130px;
  text-align: center;
}
.apf-final-cta .apf-eyebrow { color: var(--apf-white); justify-content: center; }
.apf-final-cta .apf-eyebrow::before { background: var(--apf-white); }
.apf-final-cta h2 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.08;
  color: var(--apf-white);
  letter-spacing: -.005em;
  margin: 28px 0 48px;
}
.apf-final-cta-phone {
  display: block;
  width: fit-content;
  margin: 0 auto 56px;
  font-family: var(--apf-display);
  font-size: clamp(2.2rem, 4.2vw, 3rem);
  color: var(--apf-white);
  letter-spacing: -.005em;
  border-bottom: 3px solid var(--apf-white);
  padding-bottom: 10px;
  transition: opacity .15s;
}
.apf-final-cta-phone:hover { opacity: .85; color: var(--apf-white); }
.apf-final-cta-btns {
  display: inline-flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}

@media (max-width: 1024px) {
  .apf-hero-v2 > .apf-shell { grid-template-columns: 1fr; gap: 40px; }
  .apf-trust-bar-grid { grid-template-columns: 1fr 1fr; }
  .apf-trust-item:nth-child(2) { border-right: 0; }
  .apf-trust-item:nth-child(1),
  .apf-trust-item:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,.18); }
  .apf-svc-v2-row { grid-template-columns: 1fr; }
  .apf-svc-v2-row.three { grid-template-columns: 1fr 1fr; }
  .apf-why-grid { grid-template-columns: 1fr; gap: 28px; }
  .apf-gallery-teaser { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .apf-hero-v2 > .apf-shell { padding: 48px 20px 56px; }
  .apf-trust-bar-grid { grid-template-columns: 1fr; }
  .apf-trust-item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .apf-trust-item:last-child { border-bottom: 0; }
  .apf-svc-v2-row.three { grid-template-columns: 1fr; }
  .apf-gallery-teaser { grid-template-columns: 1fr; }
}

/* ── HERO (editorial pattern) ───────────────────────────────────── */
.apf-hero {
  padding: 56px 0 80px;
  background: var(--apf-bone);
}
.apf-hero-photo {
  margin-bottom: 56px;
  border-radius: 4px;
  overflow: hidden;
  background: var(--apf-cream);
  aspect-ratio: 21 / 9;
}
.apf-hero-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.apf-hero-body {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.apf-hero-meta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--apf-body);
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--apf-text-mute);
  margin-bottom: 22px;
}
.apf-hero-meta::before,
.apf-hero-meta::after {
  content: ""; width: 30px; height: 1px; background: var(--apf-rule);
}
.apf-hero-claim {
  font-family: var(--apf-display);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  line-height: 1.35;
  color: var(--apf-coffee);
  letter-spacing: -.01em;
}
.apf-hero-claim em {
  font-style: italic;
  font-weight: 500;
  color: var(--apf-clay);
}
.apf-hero-ctas {
  margin-top: 36px;
  display: inline-flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ── SECTION HEAD ───────────────────────────────────────────────── */
.apf-section-head { max-width: 720px; }
.apf-section-head .apf-eyebrow { margin-bottom: 14px; }
.apf-section-head p { margin-top: 16px; color: var(--apf-text-mute); }
.apf-section-head.center { margin: 0 auto; text-align: center; }
.apf-section-head.center .apf-eyebrow { justify-content: center; }

/* ── EDITORIAL TEXT BLOCK ───────────────────────────────────────── */
.apf-editorial {
  max-width: 64ch;
  margin: 0 auto;
}
.apf-editorial p + p { margin-top: 18px; }
.apf-editorial p { font-size: 1.1rem; line-height: 1.78; color: var(--apf-text); }

/* ── LEGAL PAGE TYPESETTING (readable long-form) ───────────────── */
.apf-legal {
  max-width: 760px;
  margin: 0 auto;
  font-family: var(--apf-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--apf-text);
}
.apf-legal h2 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 1.75rem;
  line-height: 1.05;
  color: var(--apf-black);
  margin: 56px 0 18px;
  letter-spacing: -.005em;
  border-top: 2px solid var(--apf-red);
  padding-top: 24px;
}
.apf-legal h2:first-of-type { margin-top: 0; border-top: 0; padding-top: 0; }
.apf-legal h3 {
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--apf-black);
  margin: 28px 0 8px;
}
.apf-legal p { margin-bottom: 16px; max-width: 64ch; }
.apf-legal ul, .apf-legal ol { margin: 0 0 18px 22px; }
.apf-legal ul li, .apf-legal ol li { margin-bottom: 8px; line-height: 1.65; }
.apf-legal a { color: var(--apf-red); border-bottom: 1px solid currentColor; }
.apf-legal a:hover { color: var(--apf-red-2); }
.apf-legal .updated {
  font-size: .88rem;
  color: var(--apf-text-mute);
  font-style: italic;
  margin-bottom: 36px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--apf-rule);
}
.apf-legal strong { font-weight: 700; color: var(--apf-black); }

/* ── DARK SECTION (mid-page color break for interior pages) ──────
   Use as: <section class="apf-section apf-section-dark"> ...
   Scoped overrides only affect section-head elements + bare children.
   Cards/components inside keep their own styling. */
.apf-section-dark {
  background: var(--apf-black);
  color: var(--apf-white);
}
.apf-section-dark .apf-section-head .apf-eyebrow { color: var(--apf-red); }
.apf-section-dark .apf-section-head h2,
.apf-section-dark .apf-section-head .apf-display,
.apf-section-dark > .apf-shell > h2,
.apf-section-dark > .apf-shell > .apf-display { color: var(--apf-white); }
.apf-section-dark .apf-section-head p,
.apf-section-dark .apf-section-head .apf-body-lg { color: rgba(255,255,255,.82); }
/* Counties grid on dark — keep cards light but adjust borders */
.apf-section-dark .apf-counties-grid {
  border-top-color: var(--apf-red);
  border-bottom-color: var(--apf-red);
}
.apf-section-dark .apf-county {
  background: var(--apf-charcoal);
  border-right-color: rgba(255,255,255,.12);
}
.apf-section-dark .apf-county h3 { color: var(--apf-white); }
.apf-section-dark .apf-county .tag { color: rgba(255,255,255,.65); }
.apf-section-dark .apf-county ul li { color: var(--apf-white); border-top-color: rgba(255,255,255,.12); }
.apf-section-dark .apf-county ul li a { color: var(--apf-white); }
.apf-section-dark .apf-county ul li a:hover { color: var(--apf-red); }
.apf-section-dark .apf-counties-stat { color: var(--apf-white); }
.apf-section-dark .apf-counties-stat .n { color: var(--apf-red); }
/* Gallery on dark — photos float, captions lighten */
.apf-section-dark .apf-gallery figcaption { color: rgba(255,255,255,.72); }
/* Outline button works on dark */
.apf-section-dark .apf-btn-outline { color: var(--apf-white); border-color: var(--apf-white); }
.apf-section-dark .apf-btn-outline:hover { background: var(--apf-white); color: var(--apf-black); }

/* Dark-section text overrides (apply when story/incl content sits on dark bg) */
.apf-surf-coffee .apf-display,
.apf-surf-coffee .apf-h1,
.apf-surf-coffee .apf-h2,
.apf-surf-coffee .apf-h3,
.apf-surf-coffee .apf-story-text h2,
.apf-surf-coffee .apf-story-text h3 { color: var(--apf-white); }
.apf-surf-coffee .apf-story-text p,
.apf-surf-coffee p { color: rgba(255,255,255,.82); }
.apf-surf-coffee .apf-incl li { color: var(--apf-white); }
.apf-surf-coffee .apf-incl li::before { color: var(--apf-red); }
.apf-surf-coffee .apf-svc-more { color: var(--apf-red); }
.apf-surf-coffee .apf-svc-more:hover { color: var(--apf-red-2); }
.apf-surf-coffee .apf-divider span { color: var(--apf-red); }
.apf-surf-coffee .apf-divider::before,
.apf-surf-coffee .apf-divider::after { background: rgba(255,255,255,.18); }

/* ── PAGE HERO V2 (interior pages — dark photo hero matching home) ── */
.apf-page-hero-v2 {
  background: var(--apf-black);
  color: var(--apf-white);
  position: relative;
  overflow: hidden;
  padding: 64px 0 80px;
}
.apf-page-hero-v2::before {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--hero-photo, url('/img/apf/jobs/hero-main.webp'));
  background-size: cover;
  background-position: var(--hero-pos, center 50%);
  z-index: 0;
}
.apf-page-hero-v2::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(95deg,
    rgba(0,0,0,.86) 0%,
    rgba(0,0,0,.76) 45%,
    rgba(0,0,0,.5) 80%,
    rgba(0,0,0,.35) 100%);
  z-index: 1;
}
.apf-page-hero-v2 > .apf-shell {
  position: relative;
  z-index: 2;
}
.apf-page-hero-v2 .apf-breadcrumb {
  color: rgba(255,255,255,.92);
  margin-bottom: 22px;
}
.apf-page-hero-v2 .apf-breadcrumb a { color: rgba(255,255,255,.78); }
.apf-page-hero-v2 .apf-breadcrumb a:hover { color: var(--apf-red); }
.apf-page-hero-v2 .apf-breadcrumb span { color: rgba(255,255,255,.45); }
.apf-page-hero-v2 .apf-breadcrumb span:last-child { color: rgba(255,255,255,.92); font-weight: 700; }
.apf-page-hero-v2 .eyebrow-v2 {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--apf-body);
  font-weight: 700;
  font-size: .76rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--apf-white);
  margin-bottom: 18px;
  opacity: .92;
}
.apf-page-hero-v2 .eyebrow-v2::before {
  content: "";
  width: 11px; height: 11px;
  background: var(--apf-red);
  transform: rotate(45deg);
  flex: 0 0 auto;
}
.apf-page-hero-v2 h1 {
  font-family: var(--apf-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.4rem, 5.5vw, 4.5rem);
  line-height: .95;
  color: var(--apf-white);
  letter-spacing: -.005em;
  max-width: 20ch;
  margin-bottom: 22px;
}
.apf-page-hero-v2 h1 .red { color: var(--apf-red); }
.apf-page-hero-v2 .lede {
  font-family: var(--apf-body);
  font-size: 1.1rem;
  line-height: 1.55;
  color: rgba(255,255,255,.85);
  max-width: 60ch;
  margin-bottom: 30px;
}
.apf-page-hero-v2 .actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.apf-page-hero-v2 .actions .phone {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--apf-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  color: var(--apf-white);
  text-decoration: none;
  letter-spacing: -.005em;
  transition: color .15s;
}
.apf-page-hero-v2 .actions .phone:hover { color: var(--apf-red); }
.apf-page-hero-v2 .actions .phone .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  background: var(--apf-red);
  color: var(--apf-white);
}

/* ── PAGE HERO (interior pages) ────────────────────────────────── */
.apf-page-hero {
  background: var(--apf-bone);
  padding: 56px 0 72px;
  border-bottom: 1px solid var(--apf-rule);
}
.apf-breadcrumb {
  font-family: var(--apf-body);
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--apf-text-mute);
  margin-bottom: 18px;
}
.apf-breadcrumb a { color: var(--apf-text-mute); border-bottom: 1px solid transparent; }
.apf-breadcrumb a:hover { color: var(--apf-clay); border-bottom-color: var(--apf-clay); }
.apf-breadcrumb span { margin: 0 8px; opacity: .5; }

.apf-page-hero h1 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -.02em;
  color: var(--apf-coffee);
  max-width: 18ch;
}
.apf-page-hero h1 em { font-style: italic; font-weight: 500; color: var(--apf-clay); }
.apf-page-hero .apf-lede { margin-top: 26px; max-width: 56ch; }

/* ── ABOUT STORY (alternating text + photo blocks) ─────────────── */
.apf-story {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
}
.apf-story.flip { grid-template-columns: 1fr 1.1fr; }
.apf-story.flip .apf-story-text { order: 2; }

/* Single-column variant: text on top, photo full-width below.
   Use when the side-by-side feels off (e.g. when the photo crop
   doesn't read well alongside the text). */
.apf-story-stack {
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.apf-story-stack .apf-story-photo {
  aspect-ratio: 16 / 9;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
.apf-story-stack .apf-story-text { max-width: 760px; margin: 0 auto; }
.apf-story-stack .apf-story-text p { max-width: 64ch; }
.apf-story-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--apf-cream);
}
.apf-story-photo img { width: 100%; height: 100%; object-fit: cover; }
.apf-story-text .apf-eyebrow { margin-bottom: 16px; }
.apf-story-text h2 { margin-bottom: 20px; }
.apf-story-text p { color: var(--apf-text); font-size: 1.075rem; line-height: 1.78; margin-bottom: 16px; max-width: 56ch; }

/* ── INCLUSION LIST (used inside .apf-story-text for service includes) ── */
.apf-incl {
  list-style: none;
  margin: 8px 0 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 28px;
  font-size: 1rem;
  max-width: 56ch;
}
.apf-incl li {
  padding-left: 18px;
  position: relative;
  color: var(--apf-text);
  line-height: 1.55;
}
.apf-incl li::before {
  content: "—";
  position: absolute;
  left: 0; top: 0;
  color: var(--apf-clay);
  font-weight: 600;
}

/* ── SECTION DIVIDER LABEL (between hub groupings) ─────────────── */
.apf-divider {
  display: flex;
  align-items: center;
  gap: 24px;
  margin: 32px 0 48px;
}
.apf-divider::before,
.apf-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--apf-rule);
}
.apf-divider span {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--apf-clay);
}

/* ── CREDENTIALS STRIP ──────────────────────────────────────────── */
.apf-creds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}
.apf-cred {
  padding: 32px 32px 28px;
  background: var(--apf-paper);
  border: 1px solid var(--apf-rule);
  border-top: 2px solid var(--apf-clay);
}
.apf-cred-label {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 14px;
}
.apf-cred-value {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--apf-coffee);
  margin-bottom: 8px;
}
.apf-cred-note { font-size: .92rem; color: var(--apf-text-mute); line-height: 1.55; }

/* ── SERVICE GRID (2 feature + 3 sub — not a numbered 3-col grid) ── */
.apf-services {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 48px;
}
.apf-svc-feature {
  background: var(--apf-paper);
  border: 1px solid var(--apf-rule);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s, box-shadow .25s;
}
.apf-svc-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 48px -28px rgba(31,26,20,.2);
}
.apf-svc-photo {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--apf-cream);
}
.apf-svc-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.apf-svc-feature:hover .apf-svc-photo img { transform: scale(1.04); }
.apf-svc-body { padding: 32px 32px 36px; flex: 1; display: flex; flex-direction: column; }
.apf-svc-body h3 { font-size: 1.55rem; margin-bottom: 12px; }
.apf-svc-body p { color: var(--apf-text-mute); margin-bottom: 18px; flex: 1; }
.apf-svc-more {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .92rem;
  letter-spacing: .04em;
  color: var(--apf-clay);
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  transition: gap .15s;
}
.apf-svc-more::after { content: "→"; transition: transform .15s; }
.apf-svc-more:hover { gap: 14px; color: var(--apf-clay-2); }

.apf-svc-row {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 22px;
  margin-top: 22px;
}
.apf-svc-sub {
  background: var(--apf-bone);
  border: 1px solid var(--apf-rule);
  padding: 28px 28px 30px;
  display: flex; flex-direction: column;
  transition: border-color .15s, transform .25s;
}
.apf-svc-sub:hover {
  border-color: var(--apf-clay);
  transform: translateY(-2px);
}
.apf-svc-sub h3 { font-size: 1.3rem; margin-bottom: 10px; }
.apf-svc-sub p { color: var(--apf-text-mute); font-size: .98rem; margin-bottom: 16px; flex: 1; }
.apf-svc-sub .apf-svc-more { font-size: .85rem; }

/* ── PROJECT TYPES (typographic tiles — no photos, big type) ──── */
.apf-types {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 48px;
  border-top: 1px solid var(--apf-rule);
  border-left: 1px solid var(--apf-rule);
}
.apf-type {
  padding: 36px 36px 38px;
  border-right: 1px solid var(--apf-rule);
  border-bottom: 1px solid var(--apf-rule);
  background: var(--apf-paper);
  transition: background .15s;
}
.apf-type:hover { background: var(--apf-cream); }
.apf-type-num {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 12px;
}
.apf-type h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.7rem;
  line-height: 1.18;
  color: var(--apf-coffee);
  margin-bottom: 12px;
  letter-spacing: -.01em;
}
.apf-type p { color: var(--apf-text-mute); font-size: 1rem; line-height: 1.65; }

/* ── REGION GRID (2×2 county/region cards) ─────────────────────── */
.apf-region-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  margin-top: 48px;
}
.apf-region {
  padding: 32px 32px 36px;
  background: var(--apf-paper);
  border: 1px solid var(--apf-rule);
  border-top: 3px solid var(--apf-clay);
}
.apf-region-eyebrow {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 8px;
}
.apf-region h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.7rem;
  line-height: 1.1;
  color: var(--apf-coffee);
  margin-bottom: 14px;
  letter-spacing: -.01em;
}
.apf-region p {
  color: var(--apf-text);
  font-size: 1rem;
  line-height: 1.65;
}
.apf-region-cities {
  list-style: none;
  margin: 18px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--apf-rule);
  font-size: .95rem;
  line-height: 1.85;
  color: var(--apf-text);
}
.apf-region-cities li { display: inline; }
.apf-region-cities li:not(:last-child)::after {
  content: "·";
  color: var(--apf-dust);
  margin: 0 8px;
  opacity: .7;
}

/* ── CITIES MULTI-COLUMN LIST ──────────────────────────────────── */
.apf-cities {
  columns: 4;
  column-gap: 28px;
  margin-top: 36px;
  list-style: none;
}
.apf-cities li {
  break-inside: avoid;
  padding: 9px 0;
  font-size: .98rem;
  color: var(--apf-text);
  border-bottom: 1px solid var(--apf-rule);
}
@media (max-width: 1024px) { .apf-cities { columns: 3; } }
@media (max-width: 760px)  { .apf-cities { columns: 2; } }
@media (max-width: 480px)  { .apf-cities { columns: 1; } }

/* ── CONTACT FORM ──────────────────────────────────────────────── */
.apf-contact-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 64px;
  align-items: start;
}
.apf-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.apf-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.apf-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.apf-field label {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-coffee);
}
.apf-field .req { color: var(--apf-clay); margin-left: 2px; }
.apf-field input,
.apf-field select,
.apf-field textarea {
  font-family: var(--apf-body);
  font-size: 1rem;
  padding: 14px 16px;
  border: 1.5px solid var(--apf-rule);
  background: var(--apf-bone);
  color: var(--apf-text);
  border-radius: 2px;
  transition: border-color .15s, background .15s;
  width: 100%;
}
.apf-field input:focus,
.apf-field select:focus,
.apf-field textarea:focus {
  outline: none;
  border-color: var(--apf-clay);
  background: var(--apf-paper);
}
.apf-field textarea { resize: vertical; min-height: 140px; line-height: 1.55; }
.apf-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  opacity: 0;
  pointer-events: none;
}
.apf-form-actions {
  margin-top: 8px;
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}
.apf-form-note {
  font-size: .88rem;
  color: var(--apf-text-mute);
  flex: 1 1 240px;
}
.apf-form-status {
  padding: 16px 20px;
  border-radius: 2px;
  font-size: .98rem;
  line-height: 1.5;
}
.apf-form-status.is-ok {
  background: rgba(61, 77, 56, .12);
  border-left: 3px solid var(--apf-olive);
  color: var(--apf-olive);
}
.apf-form-status.is-err {
  background: rgba(184, 88, 56, .12);
  border-left: 3px solid var(--apf-clay);
  color: var(--apf-clay-2);
}

/* Info column */
.apf-info {
  background: var(--apf-paper);
  border: 1px solid var(--apf-rule);
  padding: 32px;
}
.apf-info h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.4rem;
  margin-bottom: 20px;
  color: var(--apf-coffee);
}
.apf-info-block {
  padding: 16px 0;
  border-bottom: 1px solid var(--apf-rule);
}
.apf-info-block:last-child { border-bottom: 0; padding-bottom: 0; }
.apf-info-block:first-of-type { padding-top: 0; }
.apf-info-label {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 6px;
}
.apf-info-value {
  font-family: var(--apf-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--apf-coffee);
  line-height: 1.4;
}
.apf-info-value a { color: inherit; border-bottom: 1px solid transparent; }
.apf-info-value a:hover { color: var(--apf-clay); border-bottom-color: var(--apf-clay); }

/* ── BRAND LIST (vertical catalog entries) ─────────────────────── */
.apf-brand-list { margin-top: 56px; }
.apf-brand-entry {
  padding: 48px 0;
  border-top: 2px solid var(--apf-clay);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 56px;
  align-items: start;
}
.apf-brand-entry:last-child { border-bottom: 1px solid var(--apf-rule); }
.apf-brand-name {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 2.2rem;
  line-height: 1.05;
  letter-spacing: -.015em;
  color: var(--apf-coffee);
  margin-bottom: 10px;
}
.apf-brand-tag {
  font-family: var(--apf-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--apf-clay);
  line-height: 1.5;
  max-width: 28ch;
}
.apf-brand-body p {
  color: var(--apf-text);
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 14px;
  max-width: 60ch;
}
.apf-brand-tags {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--apf-rule);
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-text-mute);
}

/* ── VISIT BLOCK (practical contact panel for B2B page) ────────── */
.apf-visit {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--apf-rule);
  border-bottom: 1px solid var(--apf-rule);
  margin-top: 48px;
}
.apf-visit-block {
  padding: 36px 36px 38px;
  border-right: 1px solid var(--apf-rule);
}
.apf-visit-block:last-child { border-right: 0; }
.apf-visit-label {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 12px;
}
.apf-visit-value {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.3;
  color: var(--apf-coffee);
  margin-bottom: 8px;
}
.apf-visit-note { font-size: .95rem; color: var(--apf-text-mute); line-height: 1.55; }

/* ── SPEC SHEET (label / value rows for B2B pages) ─────────────── */
.apf-spec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 36px;
  border-top: 1px solid var(--apf-rule);
}
.apf-spec {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 22px 4px;
  border-bottom: 1px solid var(--apf-rule);
}
.apf-spec:nth-child(odd) { border-right: 1px solid var(--apf-rule); padding-right: 28px; }
.apf-spec:nth-child(even) { padding-left: 28px; }
.apf-spec-label {
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
}
.apf-spec-value {
  font-family: var(--apf-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--apf-coffee);
  line-height: 1.35;
}
.apf-spec-value small {
  display: block;
  font-family: var(--apf-body);
  font-weight: 400;
  font-style: normal;
  font-size: .9rem;
  color: var(--apf-text-mute);
  margin-top: 4px;
  line-height: 1.5;
}

/* ── CHECK LIST (what's included style) ────────────────────────── */
.apf-checks {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}
.apf-checks li {
  padding: 12px 0 12px 32px;
  position: relative;
  border-bottom: 1px solid var(--apf-rule);
  font-size: 1.02rem;
  color: var(--apf-text);
}
.apf-checks li:last-child { border-bottom: 0; }
.apf-checks li::before {
  content: "";
  position: absolute;
  left: 2px; top: 18px;
  width: 14px; height: 7px;
  border-left: 2px solid var(--apf-clay);
  border-bottom: 2px solid var(--apf-clay);
  transform: rotate(-45deg);
}

/* ── GALLERY WALL (captioned 3×2 photo grid) ───────────────────── */
.apf-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}
.apf-gallery figure { margin: 0; }
.apf-gallery .ph {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--apf-cream);
  margin-bottom: 12px;
}
.apf-gallery .ph img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.apf-gallery figure:hover .ph img { transform: scale(1.04); }
.apf-gallery figcaption {
  font-family: var(--apf-display);
  font-style: italic;
  font-weight: 400;
  font-size: .95rem;
  color: var(--apf-text-mute);
  line-height: 1.5;
  padding: 0 4px;
}

/* ── CATEGORY GROUPS (3-up service categories with sub-items) ──── */
.apf-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-top: 36px;
}
.apf-cat { padding-top: 18px; border-top: 2px solid var(--apf-clay); }
.apf-cat h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.3rem;
  color: var(--apf-coffee);
  margin-bottom: 6px;
}
.apf-cat p.cat-desc {
  color: var(--apf-text-mute);
  font-size: .95rem;
  line-height: 1.55;
  margin-bottom: 14px;
}
.apf-cat ul { list-style: none; padding: 0; }
.apf-cat ul li {
  padding: 7px 0;
  color: var(--apf-text);
  font-size: 1rem;
  border-bottom: 1px solid var(--apf-rule);
}
.apf-cat ul li:last-child { border-bottom: 0; }

/* ── TIMELINE (maintenance schedule milestones) ────────────────── */
.apf-timeline {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  position: relative;
  max-width: 760px;
}
.apf-timeline::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 14px;
  bottom: 14px;
  width: 2px;
  background: var(--apf-clay);
  opacity: .35;
}
.apf-timeline li {
  position: relative;
  padding: 0 0 36px 56px;
}
.apf-timeline li:last-child { padding-bottom: 0; }
.apf-timeline li::before {
  content: "";
  position: absolute;
  left: 12px; top: 14px;
  width: 14px; height: 14px;
  background: var(--apf-clay);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--apf-bone);
}
.apf-timeline .year {
  display: inline-block;
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--apf-clay);
  margin-bottom: 6px;
}
.apf-timeline h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--apf-coffee);
  margin-bottom: 8px;
  letter-spacing: -.01em;
}
.apf-timeline p {
  color: var(--apf-text-mute);
  font-size: 1rem;
  line-height: 1.65;
  max-width: 56ch;
}

/* ── SERVICE LIST (compact 4×2 brief items) ────────────────────── */
.apf-svc-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 48px;
  border-top: 1px solid var(--apf-rule);
}
.apf-svc-list-item {
  padding: 28px 32px 28px 0;
  border-bottom: 1px solid var(--apf-rule);
  display: flex;
  flex-direction: column;
}
.apf-svc-list-item:nth-child(even) { padding-left: 36px; border-left: 1px solid var(--apf-rule); padding-right: 0; }
.apf-svc-list-item h3 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--apf-coffee);
  margin-bottom: 6px;
}
.apf-svc-list-item p {
  color: var(--apf-text-mute);
  font-size: .98rem;
  line-height: 1.6;
}

/* ── EDITORIAL PHOTO BAND (single hero photo within a page) ───── */
.apf-photo-band {
  margin: 0;
  background: var(--apf-cream);
}
.apf-photo-band figure {
  max-width: 1280px;
  margin: 0 auto;
}
.apf-photo-band img {
  width: 100%;
  height: auto;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  display: block;
}
.apf-photo-band figcaption {
  text-align: center;
  font-family: var(--apf-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--apf-text-mute);
  padding: 18px 28px 24px;
}

/* ── THREE-POINT REASONS (NOT a numbered 3-col card grid) ─────── */
.apf-reasons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-top: 36px;
}
.apf-reason {
  padding-left: 24px;
  border-left: 2px solid var(--apf-clay);
}
.apf-reason h3 {
  font-size: 1.2rem;
  margin-bottom: 10px;
}
.apf-reason p {
  font-size: .97rem;
  line-height: 1.65;
  color: var(--apf-text-mute);
}

/* ── CROSS-LINK CALLOUT (cross-references between child pages) ── */
.apf-xlink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 32px;
  background: var(--apf-cream);
  border: 1px solid var(--apf-rule);
  margin-top: 56px;
  flex-wrap: wrap;
}
.apf-xlink-text { flex: 1 1 320px; }
.apf-xlink-text p { color: var(--apf-text); font-size: 1.02rem; line-height: 1.6; }
.apf-xlink-text strong {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.2rem;
  color: var(--apf-coffee);
  display: block;
  margin-bottom: 6px;
}

/* ── B2B FEATURE BLOCK (split 50/50, photo + text) ─────────────── */
.apf-feature {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 56px;
  align-items: center;
}
.apf-feature-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--apf-cream);
}
.apf-feature-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.apf-feature-text .apf-eyebrow { margin-bottom: 18px; }
.apf-feature-text h2 { margin-bottom: 22px; }
.apf-feature-text > p { color: var(--apf-text); margin-bottom: 18px; font-size: 1.075rem; line-height: 1.75; max-width: 56ch; }
.apf-feature-brands {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--apf-rule);
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  font-family: var(--apf-body);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--apf-text-mute);
}
.apf-feature-brands span { display: inline-block; }

/* ── SERVICE-AREA BAND ─────────────────────────────────────────── */
.apf-areas {
  background: var(--apf-cream);
  padding: 56px 0;
  border-top: 1px solid var(--apf-rule);
  border-bottom: 1px solid var(--apf-rule);
}
.apf-areas-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 48px;
  align-items: center;
}
.apf-areas h3 { font-size: 1.65rem; margin-bottom: 12px; }
.apf-areas-list {
  font-size: 1.02rem;
  line-height: 1.9;
  color: var(--apf-text);
}
.apf-areas-list a {
  color: var(--apf-text);
  border-bottom: 1px solid transparent;
  transition: border-color .15s, color .15s;
}
.apf-areas-list a:hover { color: var(--apf-clay); border-bottom-color: var(--apf-clay); }
.apf-areas-list span { color: var(--apf-dust); margin: 0 6px; }

/* ── CTA SECTION ───────────────────────────────────────────────── */
.apf-cta {
  background: var(--apf-coffee);
  color: var(--apf-bone);
  padding: 96px 0;
  text-align: center;
}
.apf-cta .apf-eyebrow { color: var(--apf-clay); justify-content: center; }
.apf-cta .apf-eyebrow::before { background: var(--apf-clay); }
.apf-cta h2 {
  color: var(--apf-bone);
  max-width: 24ch;
  margin: 18px auto 0;
}
.apf-cta h2 em { color: var(--apf-clay); font-style: italic; }
.apf-cta-phone {
  display: block;
  font-family: var(--apf-display);
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--apf-bone);
  margin: 40px 0 32px;
  letter-spacing: -.01em;
  transition: color .15s;
}
.apf-cta-phone:hover { color: var(--apf-clay); }
.apf-cta-btns { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.apf-cta .apf-btn-outline { color: var(--apf-bone); border-color: var(--apf-bone); }
.apf-cta .apf-btn-outline:hover { background: var(--apf-bone); color: var(--apf-coffee); }

/* ── FOOTER ─────────────────────────────────────────────────────── */
.apf-foot {
  background: var(--apf-coffee);
  color: var(--apf-bone);
  padding: 72px 0 36px;
}
.apf-foot-social {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
.apf-foot-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  color: var(--apf-white);
  transition: background .15s, border-color .15s, transform .12s;
}
.apf-foot-social a:hover {
  background: var(--apf-red);
  border-color: var(--apf-red);
  color: var(--apf-white);
  transform: translateY(-2px);
}
.apf-foot-social svg { width: 18px; height: 18px; }
.apf-foot a { color: var(--apf-bone); }
.apf-foot a:hover { color: var(--apf-clay); }
.apf-foot-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
}
.apf-foot h4 {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.05rem;
  margin-bottom: 16px;
  color: var(--apf-bone);
}
.apf-foot ul { list-style: none; }
.apf-foot ul li { padding: 5px 0; font-size: .95rem; }
.apf-foot-brand-row { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.apf-foot-brand-row img { width: 60px; height: 60px; filter: invert(1) brightness(1.05); }
.apf-foot-brand-name {
  font-family: var(--apf-display);
  font-weight: 600;
  font-size: 1.15rem;
}
.apf-foot-brand-sub {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  opacity: .65;
  margin-top: 2px;
}
.apf-foot-bottom {
  border-top: 1px solid rgba(244,238,226,.15);
  margin-top: 56px;
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  font-size: .85rem;
  opacity: .7;
  flex-wrap: wrap;
  gap: 16px;
}
.apf-foot-legal { display: flex; gap: 22px; }

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .apf-foot-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .apf-services { grid-template-columns: 1fr; }
  .apf-svc-row { grid-template-columns: 1fr; }
  .apf-feature { grid-template-columns: 1fr; gap: 36px; }
  .apf-feature-photo { aspect-ratio: 16 / 10; }
  .apf-areas-grid { grid-template-columns: 1fr; gap: 24px; }
  .apf-story { grid-template-columns: 1fr; gap: 36px; }
  .apf-story.flip .apf-story-text { order: -1; }
  .apf-story-photo { aspect-ratio: 16 / 10; }
  .apf-creds { grid-template-columns: 1fr; }
  .apf-incl { grid-template-columns: 1fr; }
  .apf-types { grid-template-columns: 1fr; }
  .apf-reasons { grid-template-columns: 1fr; gap: 24px; }
  .apf-xlink { flex-direction: column; align-items: flex-start; }
  .apf-svc-list { grid-template-columns: 1fr; }
  .apf-svc-list-item:nth-child(even) { padding-left: 0; border-left: 0; padding-right: 0; }
  .apf-gallery { grid-template-columns: 1fr 1fr; gap: 18px; }
  .apf-cat-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 560px) {
  .apf-gallery { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .apf-spec-grid { grid-template-columns: 1fr; }
  .apf-spec:nth-child(odd),
  .apf-spec:nth-child(even) { padding-left: 4px; padding-right: 4px; border-right: 0; }
  .apf-spec { grid-template-columns: 140px 1fr; gap: 16px; }
  .apf-brand-entry { grid-template-columns: 1fr; gap: 18px; }
  .apf-visit { grid-template-columns: 1fr; }
  .apf-visit-block { border-right: 0; border-bottom: 1px solid var(--apf-rule); }
  .apf-visit-block:last-child { border-bottom: 0; }
  .apf-contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .apf-form-row { grid-template-columns: 1fr; }
  .apf-region-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 760px) {
  .apf-burger { display: block; }
  .apf-menu {
    display: none;
    position: absolute;
    left: 0; right: 0; top: 100%;
    background: var(--apf-bone);
    flex-direction: column;
    gap: 0;
    padding: 18px 28px;
    border-top: 2px solid var(--apf-clay);
    box-shadow: 0 20px 40px -24px rgba(31,26,20,.18);
  }
  .apf-menu.is-open { display: flex; }
  .apf-menu a {
    padding: 14px 0;
    border-bottom: 1px solid var(--apf-rule);
    width: 100%;
  }
  .apf-menu a:last-child { border-bottom: 0; }
  .apf-nav-wrap { position: relative; }
  .apf-hero { padding: 36px 0 56px; }
  .apf-hero-photo { margin-bottom: 36px; }
  .apf-section { padding: 64px 0; }
  .apf-foot-grid { grid-template-columns: 1fr; gap: 28px; }
  .apf-foot-bottom { flex-direction: column; align-items: flex-start; }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE PASS — comprehensive responsive cleanup
   Goal: every page reads cleanly at 375px (standard phone width)
   without horizontal scroll, cramped touch targets, or oversized type.
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 760px) {
  /* Safety net — never allow horizontal scroll on mobile */
  html, body { overflow-x: hidden; max-width: 100vw; }

  /* SHELL — tighter side padding on phones */
  .apf-shell { padding: 0 20px; }

  /* SECTION PADDING — reduce universally on mobile */
  .apf-section { padding: 56px 0; }
  .apf-section-tight { padding: 40px 0; }

  /* MARQUEE — trim to a single line on mobile (license + phone only) */
  .apf-marquee { font-size: .78rem; padding: 8px 0; }
  .apf-marquee-row { gap: 8px 16px; flex-wrap: nowrap; }
  .apf-marquee-left { gap: 0; flex-wrap: nowrap; min-width: 0; flex: 1; }
  .apf-marquee-left span:nth-child(2),
  .apf-marquee-left span:nth-child(3) { display: none; }   /* hide tagline + hours */
  .apf-marquee-left span:first-child {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .apf-marquee-phone { font-size: .85rem; white-space: nowrap; flex: 0 0 auto; }

  /* NAV — tighter brand text, hide sub-text on very small */
  .apf-brand-icon, .apf-brand-icon img { width: 44px; height: 44px; }
  .apf-brand-main { font-size: 1rem; }
  .apf-brand-sub { font-size: .66rem; letter-spacing: .12em; }

  /* HOME HERO v4 — tighter, scaled, photo focal point balanced for mobile */
  .apf-hero-v4::before { background-position: 60% 50%; }
  .apf-hero-v4 > .apf-shell { padding: 56px 20px 64px; }
  .apf-hero-claim-v4 { font-size: clamp(2.25rem, 9vw, 3.2rem); }
  .apf-hero-sub-v4 { font-size: 1rem; margin-bottom: 28px; }
  .apf-hero-phone-v4 { font-size: 1.5rem; gap: 12px; flex-wrap: wrap; }
  .apf-hero-phone-v4 .icon { width: 42px; height: 42px; }
  .apf-hero-phone-v4 .label { font-size: .66rem; }
  .apf-hero-cta-row { gap: 12px; }
  .apf-hero-cta-row .apf-btn { width: 100%; }
  .apf-hero-cta-row .ghost-light { text-align: center; width: 100%; }
  .apf-hero-trust-v4 { gap: 12px 18px; font-size: .82rem; padding-top: 18px; }

  /* INTERIOR PAGE HERO v2 */
  .apf-page-hero-v2 { padding: 56px 0 64px; }
  .apf-page-hero-v2 h1 { font-size: clamp(2rem, 8vw, 2.75rem); max-width: 100%; }
  .apf-page-hero-v2 .lede { font-size: 1rem; }
  .apf-page-hero-v2 .actions { flex-direction: column; align-items: stretch; gap: 14px; }
  .apf-page-hero-v2 .actions .phone { font-size: 1.5rem; justify-content: flex-start; }
  .apf-page-hero-v2 .actions .apf-btn { width: 100%; text-align: center; }
  .apf-page-hero-v2 .actions .ghost-light { width: 100%; text-align: center; }

  /* TRUST BAR — already stacks to 1 col at 600px; tighten numbers */
  .apf-trust-item { padding: 20px 16px; }
  .apf-trust-item .n { font-size: 2rem; }
  .apf-trust-item .l { font-size: .76rem; }

  /* QUICK ESTIMATE BAR — stack, big inputs for touch */
  .apf-quick-bar { padding: 40px 0 44px; }
  .apf-quick-bar .header h3 { font-size: 1.7rem; }
  .apf-quick-bar form input, .apf-quick-bar form textarea { padding: 14px 16px; font-size: 1rem; }
  .apf-quick-bar form button { padding: 16px 24px; font-size: .92rem; }

  /* DISPLAY HEADINGS — tame Anton scaling */
  .apf-display-xxl { font-size: clamp(2.5rem, 9vw, 3.5rem); }
  .apf-display-xl  { font-size: clamp(2.25rem, 8vw, 3rem); }
  .apf-display-lg  { font-size: clamp(2rem, 7vw, 2.75rem); }
  .apf-h1 { font-size: clamp(2rem, 7vw, 2.5rem); }
  .apf-h2 { font-size: clamp(1.6rem, 6vw, 2.1rem); }
  .apf-h3 { font-size: 1.2rem; }

  /* HERO BODY TEXT */
  .apf-lede { font-size: 1rem; }

  /* DUAL-AUDIENCE BAND — tighter padding */
  .apf-dual-half { padding: 48px 28px; }
  .apf-dual-half h2 { font-size: clamp(1.9rem, 7vw, 2.4rem); }

  /* 5 SERVICES (home v3) — sub row was 3-col, drop to 1 */
  .apf-svc-row { grid-template-columns: 1fr !important; }

  /* WHY US (3-up reasons) — stack vertically */
  .apf-reasons { grid-template-columns: 1fr; gap: 24px; }

  /* TESTIMONIALS — already stacks at 1024 */
  .apf-testimonial { padding: 26px 22px; }
  .apf-testimonial blockquote { font-size: .98rem; }

  /* OWNER INTRO (FROM THE SHOP) */
  .apf-shop-intro { padding: 56px 0; }
  .apf-shop-intro h2 { font-size: clamp(1.9rem, 7vw, 2.4rem); }
  .apf-shop-photo { max-width: 320px; }
  .apf-shop-photo::after { width: 60px; height: 60px; top: -16px; left: -16px; }
  .apf-shop-signature .name { font-size: 1.3rem; }

  /* COUNTIES BLOCK — stacks at 900 already, tweak typography */
  .apf-county { padding: 28px 24px; }
  .apf-county h3 { font-size: 1.4rem; }
  .apf-counties-stat { font-size: 1.15rem; }
  .apf-counties-stat::after { display: none; }

  /* REGION CARDS (service-areas hub) — tighter on mobile, force width fit */
  .apf-region-grid { gap: 18px; margin-top: 32px; max-width: 100%; }
  .apf-region {
    padding: 22px 20px 24px;
    min-width: 0;           /* allow grid items to shrink below content */
    overflow-wrap: anywhere; /* break long words / unbreakable content */
    box-sizing: border-box;
  }
  .apf-region h3 { font-size: 1.35rem; margin-bottom: 8px; word-break: break-word; }
  .apf-region p { font-size: .94rem; line-height: 1.55; overflow-wrap: break-word; }
  .apf-region-cities { font-size: .88rem; line-height: 1.75; margin-top: 14px; padding-top: 14px; word-break: break-word; }
  .apf-region-cities li { display: inline; }
  .apf-region-eyebrow { font-size: .72rem; }

  /* FAQ — already 1 col; tighten */
  .apf-faq-q { font-size: 1.1rem; padding-left: 24px; }
  .apf-faq-a { padding-left: 24px; }

  /* GALLERY TEASER */
  .apf-gallery-teaser { gap: 10px; }

  /* SECTION HEADS — tighter */
  .apf-section-head { max-width: 100%; }

  /* FINAL CTA */
  .apf-final-cta { padding: 80px 0 86px; }
  .apf-final-cta h2 { font-size: clamp(2rem, 7vw, 2.75rem); margin: 22px 0 36px; }
  .apf-final-cta-phone { font-size: clamp(1.8rem, 7vw, 2.4rem); margin-bottom: 40px; }
  .apf-final-cta-btns { gap: 12px; flex-direction: column; align-items: stretch; max-width: 360px; margin: 0 auto; }
  .apf-final-cta-btns .apf-btn { width: 100%; }

  /* FOOTER — tighter padding */
  .apf-foot { padding: 56px 0 32px; }
  .apf-foot h4 { font-size: 1rem; }
  .apf-foot ul li { font-size: .92rem; }

  /* CONTACT FORM (contact page) — already stacks */
  .apf-contact-grid { gap: 36px; }
  .apf-info { padding: 28px 24px; }
  .apf-info h3 { font-size: 1.25rem; }
  .apf-form-actions { flex-direction: column; align-items: stretch; }
  .apf-form-actions .apf-btn { width: 100%; }

  /* LEGAL PAGES */
  .apf-legal { font-size: 1rem; }
  .apf-legal h2 { font-size: 1.5rem; }
  .apf-legal h3 { font-size: 1.05rem; }

  /* BUTTONS — make sure touch targets are ≥44px tall */
  .apf-btn { padding: 13px 22px; }
  .apf-btn-lg { padding: 16px 26px; }
  .apf-btn-xl { padding: 18px 30px; font-size: 1rem; }

  /* SERVICE/PROJECT TYPES */
  .apf-type { padding: 28px 24px; }
  .apf-type h3 { font-size: 1.4rem; }

  /* TIMELINE (maintenance schedule) */
  .apf-timeline::before { left: 12px; }
  .apf-timeline li { padding: 0 0 30px 44px; }
  .apf-timeline li::before { left: 6px; width: 12px; height: 12px; }
  .apf-timeline h3 { font-size: 1.25rem; }

  /* SPEC SHEET (melter rentals) */
  .apf-spec-value { font-size: 1.05rem; }
  .apf-spec-value small { font-size: .82rem; }

  /* BRAND LIST (filler materials) */
  .apf-brand-name { font-size: 1.7rem; }

  /* PROJECT GALLERY */
  .apf-gallery { gap: 18px; }
}

/* Extra-small screens (iPhone SE class) */
@media (max-width: 380px) {
  .apf-shell { padding: 0 16px; }
  .apf-brand-text { display: none; }   /* logo only at very small */
  .apf-marquee { font-size: .72rem; }
  .apf-marquee-left span:first-child {
    /* shorten further to "C32 #760658" if there's no room */
    font-size: .9em;
  }
  .apf-hero-claim-v4 { font-size: 2rem; }
  .apf-display-lg { font-size: 1.85rem; }
  .apf-page-hero-v2 h1 { font-size: 1.85rem; }
}

/* ── mobile widget + form fixes (Jul 13 2026) ─────────────────────── */
@media (max-width: 760px) {
  /* floating widgets clear the sticky CALL NOW / FREE QUOTE bar */
  #rumb-a11y-trigger { bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important; }
  #cap-btn { bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important; }
  #cap-win { bottom: calc(150px + env(safe-area-inset-bottom, 0px)) !important;
             max-height: calc(100dvh - 220px) !important; height: auto !important; }
  /* iOS zooms the page when focusing inputs under 16px — prevent it */
  .apf-quick-bar form input, .apf-quick-bar form textarea, .apf-quick-bar form select,
  .apf-contact-form input, .apf-contact-form textarea, .apf-contact-form select {
    font-size: 16px; width: 100%; max-width: 100%; box-sizing: border-box;
  }
  .cf-turnstile-slot { max-width: 100%; overflow: hidden; }
  /* footer legal row: 7 links now — let them wrap */
  .apf-foot-legal { flex-wrap: wrap; justify-content: center; row-gap: 6px; }
}
