/*
Theme Name:   Arizona Turf Company Child
Theme URI:    https://arizonaturfcompany.com
Description:  Astra child theme for arizonaturfcompany.com. Carries the atc- brand skin (v2.0) — Deep Turf / Cream / Fresh Turf / Sun Yellow palette, Anton/Inter type, crisp-rectangle geometry, and the sticky mobile call bar. Never edit the parent Astra theme directly.
Author:       Wilder West Assets, LLC
Template:     astra
Version:      2.0.0
Text Domain:  astra-child-atc
*/

/* ============================================================================
   atc- SKIN — arizonaturfcompany.com
   Wilder West Assets LLC · v2.0 · August 22, 2026

   v2.0 REBUILT TO BRAND STANDARDS v1.0 (Aug 2026).
   The v1.0 green/gold palette and Poppins/Source Sans 3 pairing are RETIRED.
   Source of truth: 01-strategy/Arizona-Turf-Company-Brand-Standards-v2.pdf

   INSTALL: paste this entire file into the Astra CHILD theme stylesheet
   (Appearance → Theme File Editor → child theme style.css).

   ---------------------------------------------------------------------------
   THE COLOR RULE THAT DRIVES EVERY DECISION BELOW
   Brand standards p6: "Never use Fresh Turf or Sun Yellow for body text on
   light backgrounds." Verified — the contrast math is brutal:

       Deep Turf on Cream ......... 14.48:1  PASS
       Deep Turf on White ......... 15.96:1  PASS
       Deep Turf on Fresh Turf .... 10.48:1  PASS
       Deep Turf on Sun Yellow .... 13.53:1  PASS
       Cream on Deep Turf ......... 14.48:1  PASS
       Fresh Turf on White ......... 1.52:1  FAIL
       Sun Yellow on White ......... 1.18:1  FAIL

   CONSEQUENCE: Fresh Turf and Sun Yellow are BACKGROUND-ONLY colors.
   Buttons are Fresh Turf background with Deep Turf text — never light text
   on a light accent. This is why v1.0's gold-button-with-white-text is gone.
   ---------------------------------------------------------------------------

   PREFIX RULE: `atc-` throughout, NEVER `lrc-`. Shared class names across the
   two business lines are a machine-detectable association between a commercial
   lead-gen site and the YMYL legal network. Protocol §F.3.

   GEOMETRY: brand p8 calls for "crisp rectangles, strong horizontal rules,
   straight Arizona-ray geometry with generous space." Radii are near-zero by
   design. Do not round these back up.

   TEXTURE: brand p8 — turf texture belongs in logo artwork, short accent bars
   and selective display graphics ONLY. Never on body copy, forms, or icons.
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Archivo+Narrow:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap');

/* ---------------------------------------------------------------------------
   1. TOKENS — brand standards p6/p7
   --------------------------------------------------------------------------- */
:root {
  /* Four brand colors. No others. */
  --atc-cream:  #F5F4EE;   /* primary page background */
  --atc-deep:   #122700;   /* ALL readable text + dark chrome */
  --atc-fresh:  #91E75D;   /* accent — BACKGROUND ONLY */
  --atc-sun:    #F3F27C;   /* accent — BACKGROUND ONLY */
  --atc-white:  #FFFFFF;

  /* Derived working tints — kept minimal and inside the brand's spirit */
  --atc-deep-90: #1d3a08;  /* hover state for deep surfaces */
  --atc-fresh-d: #7ACF46;  /* button hover — still takes Deep Turf text */
  --atc-line:    #D7D6CE;  /* hairlines on cream */
  --atc-line-2:  #E8E7E0;  /* lighter rules */
  --atc-muted:   #4A5540;  /* secondary text — passes on cream */

  --atc-warn-bg:   #FBFAE9;
  --atc-warn-line: #D8D77A;
  --atc-alert:     #8F2E1F;   /* failure states in diagrams/notices only */

  /* Type — brand p7 */
  --atc-font-display: 'Anton', Impact, 'Arial Narrow', sans-serif;
  --atc-font-head:    'Archivo Narrow', 'Arial Narrow', Arial, sans-serif;
  --atc-font-body:    'Inter', Arial, Helvetica, sans-serif;

  /* Crisp geometry — brand p8 */
  --atc-radius: 2px;
  --atc-radius-lg: 3px;

  --atc-rule: 3px solid var(--atc-deep);   /* the "strong horizontal rule" */
  --atc-callbar-h: 62px;
}

/* ---------------------------------------------------------------------------
   2. BASE
   --------------------------------------------------------------------------- */
body {
  background: var(--atc-cream);
  font-family: var(--atc-font-body);
  color: var(--atc-deep);
}
.entry-content, .ast-container { font-family: var(--atc-font-body); color: var(--atc-deep); }

/* Display face — Anton is uppercase-heavy by nature. H1/H2 only. */
h1.entry-title, .entry-content h1, .atc-display {
  font-family: var(--atc-font-display);
  font-weight: 400;
  color: var(--atc-deep);
  text-transform: uppercase;
  letter-spacing: .01em;
  line-height: 1.04;
  font-size: clamp(2.1rem, 5.2vw, 3.4rem);
}
.entry-content h2 {
  font-family: var(--atc-font-display);
  font-weight: 400;
  color: var(--atc-deep);
  text-transform: uppercase;
  letter-spacing: .01em;
  line-height: 1.1;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  margin-top: 2em;
  padding-bottom: .3em;
  border-bottom: var(--atc-rule);          /* strong horizontal rule — brand p8 */
}
/* Supporting headline face */
.entry-content h3, .entry-content h4 {
  font-family: var(--atc-font-head);
  font-weight: 700;
  color: var(--atc-deep);
  line-height: 1.2;
}
.entry-content h3 { font-size: clamp(1.2rem, 2.3vw, 1.45rem); margin-top: 1.7em; }

.entry-content p { line-height: 1.7; font-size: 1.02rem; }
.entry-content a { color: var(--atc-deep); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; }
.entry-content a:hover { text-decoration-color: var(--atc-fresh); }

.atc-prose > p, .atc-prose > ul, .atc-prose > ol { max-width: 68ch; }
.atc-lede { font-family: var(--atc-font-head); font-size: 1.2rem; line-height: 1.5; color: var(--atc-deep); }

/* ---------------------------------------------------------------------------
   3. BUTTONS
   Fresh Turf / Sun Yellow backgrounds with DEEP TURF text. Never the inverse.
   --------------------------------------------------------------------------- */
.atc-btn {
  display: inline-block;
  font-family: var(--atc-font-head);
  font-weight: 700;
  font-size: 1.02rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 15px 30px;
  border-radius: var(--atc-radius);
  text-decoration: none !important;
  text-align: center;
  line-height: 1.15;
  border: 2px solid var(--atc-deep);
  transition: background .15s ease;
  cursor: pointer;
}
.atc-btn-solid { background: var(--atc-fresh); color: var(--atc-deep) !important; }
.atc-btn-solid:hover { background: var(--atc-fresh-d); }
.atc-btn-ghost  { background: transparent; color: var(--atc-deep) !important; }
.atc-btn-ghost:hover { background: var(--atc-sun); }
/* On a Deep Turf surface, the ghost variant inverts */
.atc-on-deep .atc-btn-ghost { color: var(--atc-cream) !important; border-color: var(--atc-cream); }
.atc-on-deep .atc-btn-ghost:hover { background: var(--atc-cream); color: var(--atc-deep) !important; }
.atc-btn-block { display: block; width: 100%; }

/* ---------------------------------------------------------------------------
   4. IMAGE SLOTS — the "add photos later" mechanism
   Fixed aspect ratio + flat fill = zero layout shift when a photo lands.
   Brand p8: no turf texture on informational surfaces, so the empty state is
   a flat Sun Yellow wash, not a pattern.
   --------------------------------------------------------------------------- */
.atc-imgslot {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--atc-sun);
  border: 2px solid var(--atc-deep);
  border-radius: var(--atc-radius);
  overflow: hidden;
}
.atc-imgslot--tall { aspect-ratio: 4 / 3; }
.atc-imgslot--wide { aspect-ratio: 21 / 9; }
.atc-imgslot img, .atc-imgslot svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.atc-imgslot--diagram { background: var(--atc-white); }
.atc-imgslot--diagram img, .atc-imgslot--diagram svg { object-fit: contain; padding: 14px; }

/* ---------------------------------------------------------------------------
   5. HERO
   --------------------------------------------------------------------------- */
.atc-hero { background: var(--atc-white); border: 2px solid var(--atc-deep); border-radius: var(--atc-radius-lg); padding: clamp(22px, 4vw, 46px); margin-bottom: 36px; }
.atc-hero h1 { margin: 0 0 14px; }
.atc-hero .atc-sub { font-family: var(--atc-font-head); font-size: clamp(1.05rem, 2vw, 1.22rem); color: var(--atc-muted); max-width: 62ch; margin: 0 0 24px; }
.atc-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Accent bar — one of the three approved places for turf texture (brand p8).
   Drop a texture background-image here if desired; flat Fresh Turf by default. */
.atc-accentbar { height: 10px; background: var(--atc-fresh); border-top: 2px solid var(--atc-deep); border-bottom: 2px solid var(--atc-deep); margin: 0 0 28px; }

/* ---------------------------------------------------------------------------
   6. SERVICE FORK — install vs cleaning
   EQUAL visual weight is deliberate. Cleaning is expected to sign a tenant
   FIRST (protocol §J.1); biasing toward install throttles the line that pays
   first. Do not "improve" this by emphasising install.
   --------------------------------------------------------------------------- */
.atc-fork { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin: 40px 0; }
.atc-fork-card { background: var(--atc-white); border: 2px solid var(--atc-deep); border-top: 10px solid var(--atc-fresh); border-radius: var(--atc-radius); padding: 26px; display: flex; flex-direction: column; }
.atc-fork-card h3 { margin: 0 0 8px; font-size: 1.3rem; }
.atc-fork-card p { color: var(--atc-muted); margin: 0 0 20px; flex-grow: 1; }

/* ---------------------------------------------------------------------------
   7. CTA
   --------------------------------------------------------------------------- */
.atc-cta { background: var(--atc-deep); color: var(--atc-cream); border-radius: var(--atc-radius-lg); padding: clamp(26px, 3.6vw, 40px); margin: 40px 0; text-align: center; }
.atc-cta h3 { color: var(--atc-cream) !important; font-family: var(--atc-font-display); text-transform: uppercase; font-weight: 400; margin: 0 0 12px; font-size: clamp(1.4rem, 2.8vw, 1.9rem); }
.atc-cta p { color: var(--atc-cream); opacity: .92; max-width: 60ch; margin: 0 auto 24px; }
.atc-cta a:not(.atc-btn) { color: var(--atc-fresh); }

/* Soft CTA — guide + DIY pages. Deliberately quieter: these are instructional
   pages and hard conversion framing reads as advertorial. Protocol §F.2. */
.atc-cta-soft { background: var(--atc-sun); border-left: 10px solid var(--atc-deep); border-radius: var(--atc-radius); padding: 18px 22px; margin: 32px 0; }
.atc-cta-soft p { margin: 0; color: var(--atc-deep); }

/* ---------------------------------------------------------------------------
   8. TABLES
   --------------------------------------------------------------------------- */
.atc-table-wrap { overflow-x: auto; margin: 30px 0; -webkit-overflow-scrolling: touch; }
.atc-table { width: 100%; border-collapse: collapse; font-size: .97rem; background: var(--atc-white); border: 2px solid var(--atc-deep); }
.atc-table th { background: var(--atc-deep); color: var(--atc-cream); font-family: var(--atc-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-align: left; padding: 13px 15px; }
.atc-table td { padding: 12px 15px; border-bottom: 1px solid var(--atc-line); }
.atc-table tr:last-child td { border-bottom: none; }
.atc-table tr:nth-child(even) td { background: var(--atc-cream); }
.atc-table .atc-num { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------------------------------------------------------------------------
   9. FIGURE / FAQ
   --------------------------------------------------------------------------- */
.atc-figure { margin: 36px 0; }
.atc-figure figcaption { font-size: .9rem; color: var(--atc-muted); margin-top: 10px; line-height: 1.5; }

/* Plain Q&A. NO FAQPage schema anywhere — protocol §E.6. */
.atc-faq { margin: 36px 0; }
.atc-faq h3 { font-size: 1.12rem; margin: 24px 0 6px; padding-left: 15px; border-left: 6px solid var(--atc-fresh); }
.atc-faq p { margin: 0 0 4px; }

/* ---------------------------------------------------------------------------
   10. DISCLOSURE + TENANT CREDIT
   Protocol §C.3 / §C.6. Never add "not a licensed contractor" to cleaning
   copy (§C.8.1), and never imply the cleaning tenant holds a license.
   --------------------------------------------------------------------------- */
.atc-disclosure { background: var(--atc-warn-bg); border: 2px solid var(--atc-warn-line); border-radius: var(--atc-radius); padding: 18px 20px; margin: 36px 0 0; font-size: .93rem; line-height: 1.6; }
.atc-disclosure p { margin: 0 0 9px; }
.atc-disclosure p:last-child { margin-bottom: 0; }
.atc-tenant-credit { font-size: .88rem; color: var(--atc-muted); line-height: 1.6; margin: 14px 0 0; }
.atc-tenant-credit + .atc-tenant-credit { margin-top: 7px; }

/* ---------------------------------------------------------------------------
   11. BYLINE — guide pages and /how-we-work/ ONLY. Protocol §G.3.
   --------------------------------------------------------------------------- */
.atc-byline { font-family: var(--atc-font-head); font-size: .93rem; color: var(--atc-muted); margin: 0 0 22px; padding-bottom: 14px; border-bottom: 2px solid var(--atc-line); }
/* Dated verification line — the pages with checkable figures. Protocol §G.5. */
.atc-checked { font-size: .87rem; color: var(--atc-muted); background: var(--atc-white); border: 1px solid var(--atc-line); border-left: 6px solid var(--atc-fresh); padding: 12px 15px; margin: 30px 0; }

/* ---------------------------------------------------------------------------
   12. FORMS (Fluent Forms)
   The consent checkbox must be VISIBLE and adjacent to submit — never
   collapsed, de-emphasised, or hidden behind a link. Protocol §B.4.
   Brand p8: no texture on forms.
   --------------------------------------------------------------------------- */
.atc-formwrap { background: var(--atc-white); border: 2px solid var(--atc-deep); border-radius: var(--atc-radius-lg); padding: clamp(20px, 3vw, 32px); margin: 36px 0; }
.atc-formwrap h3 { margin: 0 0 6px; font-size: 1.3rem; }
.atc-formwrap .atc-formnote { color: var(--atc-muted); font-size: .95rem; margin: 0 0 20px; }

.fluentform .ff-el-input--label label { font-family: var(--atc-font-head); font-weight: 700; color: var(--atc-deep); }
.fluentform input[type=text], .fluentform input[type=email],
.fluentform input[type=tel], .fluentform textarea {
  border: 2px solid var(--atc-line) !important;
  border-radius: var(--atc-radius) !important;
  padding: 12px 14px !important;
  font-family: var(--atc-font-body) !important;
  font-size: 1rem !important;
  background: var(--atc-white) !important;
}
.fluentform input:focus, .fluentform textarea:focus {
  border-color: var(--atc-deep) !important;
  box-shadow: 0 0 0 3px var(--atc-fresh) !important;
  outline: none !important;
}
.fluentform .ff-btn-submit {
  background: var(--atc-fresh) !important;
  color: var(--atc-deep) !important;
  font-family: var(--atc-font-head) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  font-size: 1.02rem !important;
  padding: 15px 32px !important;
  border: 2px solid var(--atc-deep) !important;
  border-radius: var(--atc-radius) !important;
  width: 100%;
}
.fluentform .ff-btn-submit:hover { background: var(--atc-fresh-d) !important; }

/* Consent block — legibility here is a compliance property, not a style choice */
.atc-consent,
.fluentform .ff-el-group.atc-consent-group {
  background: var(--atc-cream);
  border: 1px solid var(--atc-line);
  border-radius: var(--atc-radius);
  padding: 14px 16px;
  margin: 18px 0;
  font-size: .87rem;
  line-height: 1.55;
  color: var(--atc-deep);
}
.atc-consent input[type=checkbox] { margin-right: 8px; transform: translateY(1px); }
.atc-consent a { text-decoration: underline; }

/* ---------------------------------------------------------------------------
   13. STICKY MOBILE CALL BAR
   This is the feature that makes Astra Pro unnecessary ($59/yr saved).

   SILO RULE: one number per bar, except city/home which show both LABELED.
   Never two unlabeled numbers — a caller reaching the wrong tenant is a
   wasted lead and a §H.4 measurement dispute.
   --------------------------------------------------------------------------- */
.atc-callbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  display: none;
  background: var(--atc-deep);
  border-top: 3px solid var(--atc-fresh);
  padding: 8px 10px;
  padding-bottom: calc(8px + env(safe-area-inset-bottom));
}
.atc-callbar-inner { display: flex; gap: 8px; }
.atc-callbar a {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 46px;                      /* accessible tap target */
  background: var(--atc-fresh);
  color: var(--atc-deep) !important;     /* NEVER light-on-light */
  font-family: var(--atc-font-head);
  font-weight: 700;
  text-decoration: none !important;
  border-radius: var(--atc-radius);
  padding: 6px 10px;
  line-height: 1.15;
}
.atc-callbar a:active { background: var(--atc-fresh-d); }
.atc-callbar .atc-callbar-label { font-size: .67rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.atc-callbar .atc-callbar-num { font-size: 1rem; }
.atc-callbar--single a { flex-direction: row; gap: 8px; font-size: 1.04rem; }

@media (max-width: 921px) {
  .atc-callbar { display: block; }
  body { padding-bottom: var(--atc-callbar-h); }   /* never cover the footer */
}

/* ---------------------------------------------------------------------------
   14. HEADER PHONE (desktop)
   --------------------------------------------------------------------------- */
.atc-headerphone { display: flex; gap: 20px; align-items: center; }
.atc-headerphone a { font-family: var(--atc-font-head); font-weight: 700; color: var(--atc-deep) !important; text-decoration: none !important; line-height: 1.15; }
.atc-headerphone .atc-hp-label { display: block; font-size: .66rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--atc-muted); }
@media (max-width: 921px) { .atc-headerphone { display: none; } }

/* ---------------------------------------------------------------------------
   15. UTILITIES + ACCESSIBILITY
   --------------------------------------------------------------------------- */
.atc-panel { background: var(--atc-white); border: 2px solid var(--atc-deep); border-radius: var(--atc-radius); padding: 22px; margin: 28px 0; }
.atc-on-deep { background: var(--atc-deep); color: var(--atc-cream); }
.atc-on-deep h2, .atc-on-deep h3 { color: var(--atc-cream); border-bottom-color: var(--atc-fresh); }
.atc-center { text-align: center; }
.atc-rule { border: none; border-top: var(--atc-rule); margin: 36px 0; }

a:focus-visible, button:focus-visible, input:focus-visible, .atc-btn:focus-visible {
  outline: 3px solid var(--atc-deep);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
@media print { .atc-callbar, .atc-cta, .ast-mobile-header-wrap { display: none !important; } }
