/* === ASPEN LAND MANAGEMENT - GLOBAL CUSTOM CSS === */

/* Full-width content for custom HTML pages */
.wp-site-blocks { padding: 0 !important; }
.entry-content { max-width: 100% !important; padding: 0 !important; margin: 0 !important; }
.wp-block-html { max-width: 100% !important; }
.alm-page { width: 100%; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }

/* Remove default theme padding on pages with alm-page */
body:has(.alm-page) .wp-site-blocks > * { padding-inline: 0 !important; }
body:has(.alm-page) .entry { padding: 0 !important; }

/* Brand colors */
:root {
	  --alm-green-dark: #0d2e1a;
	  --alm-green-mid: #1a5c2a;
	  --alm-green-light: #6fcf8a;
	  --alm-black: #0a0a0a;
	  --alm-near-black: #060606;
}

/* Fix Assembler theme content width */
.has-global-padding { padding-inline: 0 !important; }
.wp-block-post-content { max-width: 100% !important; }
.is-layout-constrained > * { max-width: 100% !important; }

}

/* === ACCESSIBILITY: Color Contrast Fixes (WCAG AA) === */
.alm-hero-eyebrow { color: rgba(255, 255, 255, 0.85) !important; }
.alm-hero-sub { color: rgba(255, 255, 255, 0.85) !important; }
.alm-trust-item { color: rgba(255, 255, 255, 0.80) !important; }
.alm-trust-dot { color: rgba(255, 255, 255, 0.80) !important; }
.alm-eyebrow { color: rgba(255, 255, 255, 0.80) !important; }
.alm-desc { color: rgba(255, 255, 255, 0.82) !important; }
.alm-stat-label { color: rgba(255, 255, 255, 0.80) !important; }
.alm-service-desc { color: rgba(255, 255, 255, 0.80) !important; }
.alm-service-arrow { color: rgba(255, 255, 255, 0.75) !important; }
.alm-project-desc { color: rgba(255, 255, 255, 0.80) !important; }

/* Stronger specificity overrides for elements with inline style blocks */
body .alm-hero-eyebrow { color: rgba(255, 255, 255, 0.85) !important; }
body .alm-trust-dot { color: rgba(255, 255, 255, 0.85) !important; }

/* Footer contrast fixes (inline-style-block override) */
body .alm-footer-brand p { color: rgba(255, 255, 255, 0.80) !important; }
body .alm-footer-col h4 { color: rgba(255, 255, 255, 0.80) !important; }
body .alm-footer-col ul li a { color: rgba(255, 255, 255, 0.80) !important; }
body .alm-footer-social a { color: rgba(255, 255, 255, 0.80) !important; }
body .alm-footer-copy, body .alm-footer-cert { color: rgba(255, 255, 255, 0.75) !important; }
body .alm-footer-bottom p { color: rgba(255, 255, 255, 0.75) !important; }

.share-customize-link { display: none !important; }

/* ── FIX HERO BACKGROUND IMAGE OVERRIDE ── */
/* Override anything that sets background-image:none on hero */
.alm-hero-bg[style] {
  background-image: var(--hero-bg) !important;
}
section.alm-hero .alm-hero-bg {
  background-size: cover !important;
  background-position: center !important;
}
/* Ensure hero has fallback gradient even without image */
.alm-hero {
  background: linear-gradient(135deg, #0d1f0f 0%, #0d2e1a 40%, #1a3d20 70%, #0d2e1a 100%) !important;
}

/* ── FIX SERVICES SECTION EYEBROW TEXT ── */
.alm-section-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #6fcf8a;
  margin-bottom: 16px;
}

/* ── FIX COMMON PROJECTS SECTION H2 ── */
.alm-projects h2 {
  font-size: clamp(28px,3.5vw,44px);
  font-weight: 800;
  color: #fff;
  margin: 0 0 24px;
}

/* ── FIX HOW IT WORKS SECTION ── */
.alm-how {
  background: #0f0f0f !important;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}


/* ============================================
   LOCATION PAGE STYLES (lp-*)
   Moved from inline <style> to prevent wpautop corruption
   ============================================ */
.lp-wrap { max-width:1100px; margin:0 auto; padding:0 24px; }

/* Section 1: Hero */
.lp-hero { background:linear-gradient(135deg,#0d2b0f 0%,#1a4d1e 100%); color:#fff; padding:72px 24px 60px; text-align:center; }
.lp-hero-eyebrow { font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#7fd87f; margin-bottom:16px; }
.lp-hero h1 { font-size:clamp(28px,4vw,48px); font-weight:800; line-height:1.15; margin:0 0 20px; color:#fff; }
.lp-hero-intro { font-size:18px; line-height:1.7; max-width:780px; margin:0 auto 36px; color:#d4edda; }
.lp-hero-btns { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; }
.lp-btn-primary { background:#3a9e3a; color:#fff; padding:16px 32px; border-radius:6px; font-size:17px; font-weight:700; text-decoration:none; display:inline-block; }
.lp-btn-primary:hover { background:#2e7d2e; }
.lp-btn-secondary { background:transparent; color:#fff; padding:14px 28px; border-radius:6px; font-size:16px; font-weight:600; text-decoration:none; display:inline-block; border:2px solid rgba(255,255,255,0.6); }
.lp-btn-secondary:hover { border-color:#fff; }

/* Section 2: Why This Area */
.lp-area { background:#fff; padding:64px 24px; }
.lp-area h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 20px; }
.lp-area p { font-size:17px; line-height:1.8; color:#2d2d2d; max-width:900px; margin:0 0 16px; }

/* Section 3: Services Grid */
.lp-services { background:#f6f9f6; padding:64px 24px; }
.lp-services h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 12px; text-align:center; }
.lp-services-sub { font-size:17px; color:#444; text-align:center; margin:0 0 40px; }
.lp-svc-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; max-width:1100px; margin:0 auto; }
.lp-svc-card { background:#fff; border-radius:10px; padding:28px 24px; border-left:5px solid #3a9e3a; box-shadow:0 2px 12px rgba(0,0,0,0.07); }
.lp-svc-card h3 { font-size:18px; font-weight:700; color:#0d2b0f; margin:0 0 10px; }
.lp-svc-card h3 a { color:#0d2b0f; text-decoration:none; }
.lp-svc-card h3 a:hover { color:#3a9e3a; }
.lp-svc-card p { font-size:15px; line-height:1.65; color:#444; margin:0; }

/* Section 4: Property Types */
.lp-props { background:#fff; padding:64px 24px; }
.lp-props h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 36px; text-align:center; }
.lp-props-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; max-width:1100px; margin:0 auto; }
.lp-prop-card { background:#f6f9f6; border-radius:8px; padding:24px 20px; text-align:center; }
.lp-prop-icon { font-size:32px; margin-bottom:10px; }
.lp-prop-card h3 { font-size:16px; font-weight:700; color:#0d2b0f; margin:0 0 8px; }
.lp-prop-card p { font-size:14px; color:#555; line-height:1.6; margin:0; }

/* Section 5: Scope Disclaimer */
.lp-scope { background:#0d2b0f; color:#fff; padding:56px 24px; }
.lp-scope h2 { font-size:clamp(20px,2.5vw,28px); font-weight:800; color:#7fd87f; margin:0 0 20px; }
.lp-scope p { font-size:16px; line-height:1.8; color:#c8e6c9; max-width:900px; margin:0; }

/* Section 6: Quote Process */
.lp-process { background:#f6f9f6; padding:64px 24px; }
.lp-process h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 40px; text-align:center; }
.lp-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; max-width:900px; margin:0 auto; }
.lp-step { text-align:center; }
.lp-step-num { width:52px; height:52px; background:#3a9e3a; color:#fff; border-radius:50%; font-size:20px; font-weight:800; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.lp-step p { font-size:16px; color:#2d2d2d; line-height:1.6; margin:0; font-weight:600; }

/* Section 7: Service Area Map-Text */
.lp-area-txt { background:#fff; padding:64px 24px; }
.lp-area-txt h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 20px; }
.lp-area-txt p { font-size:17px; line-height:1.8; color:#2d2d2d; max-width:900px; margin:0 0 16px; }

/* Section 8: FAQ */
.lp-faq { background:#f6f9f6; padding:64px 24px; }
.lp-faq h2 { font-size:clamp(22px,3vw,34px); font-weight:800; color:#0d2b0f; margin:0 0 36px; text-align:center; }
.lp-faq-list { max-width:900px; margin:0 auto; }
.lp-faq-item { background:#fff; border-radius:8px; padding:24px 28px; margin-bottom:16px; border-left:4px solid #3a9e3a; }
.lp-faq-item h3 { font-size:17px; font-weight:700; color:#0d2b0f; margin:0 0 10px; }
.lp-faq-item p { font-size:16px; line-height:1.7; color:#444; margin:0; }

/* Section 9: Final CTA */
.lp-cta { background:linear-gradient(135deg,#0d2b0f 0%,#1a4d1e 100%); color:#fff; padding:72px 24px; text-align:center; }
.lp-cta h2 { font-size:clamp(24px,3.5vw,40px); font-weight:800; color:#fff; margin:0 0 16px; }
.lp-cta p { font-size:18px; color:#d4edda; margin:0 0 36px; max-width:700px; margin-left:auto; margin-right:auto; }
.lp-cta-btns { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; }

@media(max-width:600px){
  .lp-hero { padding:48px 16px 40px; }
  .lp-svc-grid, .lp-props-grid, .lp-steps { grid-template-columns:1fr; }
}

/* ============================================
   CONTACT FORM FIXES (CF7 / wpcf7)
   Fixes label sizing, file inputs, checkbox,
   select dropdowns, and overall form polish
   ============================================ */

/* --- Form paragraph spacing & layout --- */
.wpcf7-form p {
  margin: 0 0 18px !important;
  padding: 0 !important;
}
.wpcf7-form p:last-of-type { margin-bottom: 0 !important; }

/* --- Labels: readable size, proper weight --- */
.wpcf7-form label {
  display: block !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.65) !important;
  margin-bottom: 8px !important;
  line-height: 1.4 !important;
}

/* --- Text / email / tel / number / textarea inputs --- */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea {
  width: 100% !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 8px !important;
  padding: 13px 16px !important;
  color: #fff !important;
  font-size: 15px !important;
  font-family: 'Open Sans', sans-serif !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s, background 0.2s !important;
  display: block !important;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="number"]:focus,
.wpcf7-form textarea:focus {
  border-color: rgba(111,207,138,0.7) !important;
  background: rgba(255,255,255,0.08) !important;
}
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
  color: rgba(255,255,255,0.35) !important;
}

/* --- Textarea height --- */
.wpcf7-form textarea { min-height: 130px !important; resize: vertical !important; }

/* --- Select dropdowns --- */
.wpcf7-form select {
  width: 100% !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 8px !important;
  padding: 13px 40px 13px 16px !important;
  color: #fff !important;
  font-size: 15px !important;
  font-family: 'Open Sans', sans-serif !important;
  outline: none !important;
  box-sizing: border-box !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.5)' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  display: block !important;
  transition: border-color 0.2s !important;
}
.wpcf7-form select:focus {
  border-color: rgba(111,207,138,0.7) !important;
}
.wpcf7-form select option { background: #1a1a1a !important; color: #fff !important; }

/* --- File inputs: clean dark style --- */
.wpcf7-form input[type="file"] {
  width: 100% !important;
  background: rgba(255,255,255,0.04) !important;
  border: 1px dashed rgba(255,255,255,0.25) !important;
  border-radius: 8px !important;
  padding: 12px 16px !important;
  color: rgba(255,255,255,0.6) !important;
  font-size: 14px !important;
  font-family: 'Open Sans', sans-serif !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  display: block !important;
  transition: border-color 0.2s, background 0.2s !important;
}
.wpcf7-form input[type="file"]:hover {
  border-color: rgba(111,207,138,0.5) !important;
  background: rgba(255,255,255,0.07) !important;
}
.wpcf7-form input[type="file"]::file-selector-button {
  background: rgba(111,207,138,0.15) !important;
  border: 1px solid rgba(111,207,138,0.4) !important;
  border-radius: 5px !important;
  color: #6fcf8a !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 6px 14px !important;
  margin-right: 12px !important;
  cursor: pointer !important;
  font-family: 'Open Sans', sans-serif !important;
  transition: background 0.2s !important;
}
.wpcf7-form input[type="file"]::file-selector-button:hover {
  background: rgba(111,207,138,0.25) !important;
}

/* --- Radio buttons: styled row --- */
.wpcf7-form .wpcf7-radio { display: flex !important; gap: 12px !important; flex-wrap: wrap !important; }
.wpcf7-form .wpcf7-radio .wpcf7-list-item {
  display: flex !important; align-items: center !important;
  gap: 8px !important; margin: 0 !important;
}
.wpcf7-form .wpcf7-radio input[type="radio"] {
  width: 18px !important; height: 18px !important;
  accent-color: #6fcf8a !important;
  cursor: pointer !important;
  margin: 0 !important; padding: 0 !important;
  border: none !important; background: none !important;
}
.wpcf7-form .wpcf7-radio .wpcf7-list-item-label {
  font-size: 14px !important;
  color: rgba(255,255,255,0.8) !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* --- Checkbox: consent --- */
.wpcf7-form .wpcf7-acceptance { display: flex !important; align-items: flex-start !important; gap: 10px !important; }
.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
  width: 18px !important; height: 18px !important; min-width: 18px !important;
  accent-color: #6fcf8a !important;
  cursor: pointer !important; margin: 2px 0 0 !important;
  padding: 0 !important; border: none !important; background: none !important;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 13px !important;
  color: rgba(255,255,255,0.65) !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* --- Checkbox list items (checkboxes) --- */
.wpcf7-form .wpcf7-checkbox { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item {
  display: flex !important; align-items: center !important; gap: 8px !important; margin: 0 !important;
}
.wpcf7-form .wpcf7-checkbox input[type="checkbox"] {
  width: 16px !important; height: 16px !important;
  accent-color: #6fcf8a !important; cursor: pointer !important;
  margin: 0 !important; padding: 0 !important; border: none !important; background: none !important;
}
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item-label {
  font-size: 14px !important;
  color: rgba(255,255,255,0.8) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* --- Submit button --- */
.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
  width: 100% !important;
  background: #3a9e3a !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 17px 32px !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-family: 'Open Sans', sans-serif !important;
  transition: background 0.2s !important;
  display: block !important;
  margin-top: 8px !important;
}
.wpcf7-form input[type="submit"]:hover {
  background: #2e7d2e !important;
}

/* --- Validation errors: show inline --- */
.wpcf7-not-valid-tip {
  display: block !important;
  font-size: 12px !important;
  color: #ff7b7b !important;
  margin-top: 5px !important;
}
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid {
  border-color: rgba(255,100,100,0.6) !important;
}

/* --- Response output (success/error message) --- */
.wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 14px 18px !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  border: none !important;
  font-weight: 600 !important;
}
.wpcf7-mail-sent-ok {
  background: rgba(58,158,58,0.2) !important;
  color: #6fcf8a !important;
  border-left: 4px solid #3a9e3a !important;
}
.wpcf7-mail-sent-ng,
.wpcf7-spam-blocked,
.wpcf7-aborted {
  background: rgba(255,100,100,0.15) !important;
  color: #ff9090 !important;
  border-left: 4px solid rgba(255,100,100,0.6) !important;
}

/* --- wpcf7-form-control-wrap: remove default spacing --- */
.wpcf7-form-control-wrap { display: block !important; }

/* --- Remove CF7 spinner (use CSS animation) --- */
.wpcf7-spinner { display: none !important; }

/* ============================================
   FORM FIXES — ROUND 2: Consent + File inputs
   ============================================ */

/* Consent/acceptance label: normal size, not uppercase */
.wpcf7-form p:has(.wpcf7-acceptance) > label,
.wpcf7-form label:has(.wpcf7-acceptance) {
  font-size: 13px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: rgba(255,255,255,0.6) !important;
  font-weight: 400 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  cursor: pointer !important;
  line-height: 1.5 !important;
}
/* Checkbox inside consent */
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item input[type="checkbox"],
.wpcf7-form label .wpcf7-acceptance input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  accent-color: #6fcf8a !important;
  cursor: pointer !important;
  margin: 2px 0 0 !important;
}

/* File input: override all existing rules */
.wpcf7-form input[type="file"],
.wpcf7-form .wpcf7-file {
  width: 100% !important;
  background: rgba(255,255,255,0.05) !important;
  border: 1.5px dashed rgba(255,255,255,0.22) !important;
  border-radius: 8px !important;
  padding: 11px 14px !important;
  color: rgba(255,255,255,0.55) !important;
  font-size: 13px !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  display: block !important;
}
.wpcf7-form input[type="file"]:hover,
.wpcf7-form .wpcf7-file:hover {
  border-color: rgba(111,207,138,0.45) !important;
  background: rgba(255,255,255,0.08) !important;
}
/* Style the "Choose File" button using ::file-selector-button */
.wpcf7-form input[type="file"]::file-selector-button {
  background: rgba(58,158,58,0.18) !important;
  border: 1px solid rgba(111,207,138,0.45) !important;
  border-radius: 5px !important;
  color: #7fd87f !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 6px 14px !important;
  margin-right: 14px !important;
  cursor: pointer !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}
.wpcf7-form input[type="file"]::-webkit-file-upload-button {
  background: rgba(58,158,58,0.18) !important;
  border: 1px solid rgba(111,207,138,0.45) !important;
  border-radius: 5px !important;
  color: #7fd87f !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 6px 14px !important;
  margin-right: 14px !important;
  cursor: pointer !important;
}

/* Service needed checkbox list: vertical with green ticks */
.wpcf7-form .wpcf7-checkbox {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 8px 16px !important;
}
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item {
  display: flex !important; align-items: center !important; gap: 8px !important; margin: 0 !important;
}
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item-label {
  font-size: 14px !important;
  color: rgba(255,255,255,0.8) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}

/* ============================================
   CHECKBOX VISIBILITY FIX — dark background
   Native checkbox needs outline to be visible
   ============================================ */

/* Make native checkboxes visible on dark background */
.wpcf7-form input[type="checkbox"] {
  outline: 1.5px solid rgba(255,255,255,0.4) !important;
  outline-offset: 0 !important;
  border-radius: 3px !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  accent-color: #6fcf8a !important;
  cursor: pointer !important;
  -webkit-appearance: auto !important;
  appearance: auto !important;
  flex-shrink: 0 !important;
}
.wpcf7-form input[type="checkbox"]:checked {
  outline-color: #6fcf8a !important;
  accent-color: #6fcf8a !important;
}

/* Consent / acceptance wrapper - flex row with gap */
.wpcf7-form .wpcf7-acceptance {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  flex-direction: row !important;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
  display: contents !important;
}

/* File input "Choose File" button -- override page inline styles */
.wpcf7-form input[type="file"]::file-selector-button,
.wpcf7-form input[type="file"]::-webkit-file-upload-button {
  background: rgba(40,120,40,0.25) !important;
  border: 1px solid rgba(111,207,138,0.5) !important;
  border-radius: 5px !important;
  color: #9fe09f !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 5px 12px !important;
  margin-right: 12px !important;
  cursor: pointer !important;
}

/* ============================================
   CF7 FORM VALIDATION ERROR STYLES
   ============================================ */

/* Highlight invalid fields with red border */
.wpcf7-form .wpcf7-not-valid,
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid {
  border-color: #e05252 !important;
  background-color: rgba(224, 82, 82, 0.08) !important;
  box-shadow: 0 0 0 2px rgba(224, 82, 82, 0.25) !important;
}

/* Show the inline "Please fill out this field." error tips */
.wpcf7-form .wpcf7-not-valid-tip {
  display: block !important;
  color: #f08080 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  margin-top: 5px !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}

/* Make the form-wide error message banner stand out */
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
  display: block !important;
  background-color: rgba(224, 82, 82, 0.12) !important;
  border: 1.5px solid rgba(224, 82, 82, 0.6) !important;
  border-left: 4px solid #e05252 !important;
  color: #f08080 !important;
  border-radius: 6px !important;
  padding: 12px 16px !important;
  margin-top: 12px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Success message styling */
.wpcf7-form.sent .wpcf7-response-output {
  display: block !important;
  background-color: rgba(111, 207, 138, 0.12) !important;
  border: 1.5px solid rgba(111, 207, 138, 0.5) !important;
  border-left: 4px solid #6fcf8a !important;
  color: #6fcf8a !important;
  border-radius: 6px !important;
  padding: 12px 16px !important;
  margin-top: 12px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Label color highlight for invalid fields */
.wpcf7-form span.wpcf7-form-control-wrap:has(.wpcf7-not-valid) + span,
.wpcf7-form label:has(.wpcf7-not-valid) {
  color: #f08080 !important;
}


/* ── PROCESS LOCATION BLOCK ── */
.alm-process-loc {
  background: #0a0a0a;
  padding: 28px 60px;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.alm-ploc-inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}
.alm-ploc-text {
  font-size: 14px;
  color: rgba(255,255,255,.45);
  line-height: 1.7;
  margin: 0;
  font-style: italic;
}
@media (max-width: 768px) {
  .alm-process-loc { padding: 20px 24px; }
  .alm-ploc-text { font-size: 13px; }
}

/* === SERVICE AREA PAGES === */

/* ============================================
   ALM SERVICE AREA PAGE STYLES
   ============================================ */
@keyframes alm-sa-fadein {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes alm-sa-slidein-left {
  from { opacity: 0; transform: translateX(-40px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes alm-sa-badge-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(77,222,128,.4); }
  50% { box-shadow: 0 0 0 8px rgba(77,222,128,0); }
}
.alm-sa-anim { opacity: 0; }
.alm-sa-anim.alm-sa-visible { animation: alm-sa-fadein 0.7s cubic-bezier(.22,.68,0,1.2) forwards; }
.alm-sa-page { background: #0a0a0a; color: #fff; font-family: inherit; }
.alm-sa-hero { background: linear-gradient(135deg, #051a08 0%, #0d2e1a 40%, #0a1f10 100%); padding: 100px 24px 80px; position: relative; overflow: hidden; }
.alm-sa-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 50%, rgba(61,184,95,.08) 0%, transparent 60%); pointer-events: none; }
.alm-sa-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(77,222,128,.3), transparent); }
.alm-sa-hero-inner { max-width: 900px; margin: 0 auto; animation: alm-sa-fadein 0.8s ease forwards; }
.alm-sa-badge { display: inline-block; background: rgba(77,222,128,.12); border: 1px solid rgba(77,222,128,.35); color: #4ade80; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 6px 14px; border-radius: 4px; margin-bottom: 20px; animation: alm-sa-badge-pulse 2.5s ease infinite; }
.alm-sa-h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 800; line-height: 1.1; color: #fff; margin: 0 0 20px; letter-spacing: -0.02em; }
.alm-sa-intro { font-size: 1.1rem; color: rgba(255,255,255,.75); max-width: 720px; line-height: 1.7; margin: 0 0 32px; }
.alm-sa-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
.alm-sa-btn-primary { display: inline-block; background: #3db85f; color: #fff !important; font-weight: 700; font-size: .95rem; padding: 14px 28px; border-radius: 4px; text-decoration: none !important; transition: background .2s, transform .2s, box-shadow .2s; box-shadow: 0 4px 20px rgba(61,184,95,.3); }
.alm-sa-btn-primary:hover { background: #2ea34f; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(61,184,95,.45); color: #fff !important; }
.alm-sa-btn-secondary { display: inline-block; background: transparent; color: #fff !important; font-weight: 600; font-size: .95rem; padding: 13px 28px; border-radius: 4px; border: 1.5px solid rgba(255,255,255,.3); text-decoration: none !important; transition: border-color .2s, background .2s, transform .2s; }
.alm-sa-btn-secondary:hover { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.06); transform: translateY(-2px); color: #fff !important; }
.alm-sa-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.alm-sa-chip { font-size: .78rem; font-weight: 600; letter-spacing: .06em; color: rgba(255,255,255,.55); text-transform: uppercase; }
.alm-sa-about { background: #0f0f0f; padding: 80px 24px; border-top: 1px solid rgba(255,255,255,.06); }
.alm-sa-about-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 340px; gap: 60px; align-items: start; }
.alm-sa-eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #4ade80; margin-bottom: 12px; }
.alm-sa-h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); font-weight: 800; color: #fff; margin: 0 0 20px; line-height: 1.15; letter-spacing: -0.01em; }
.alm-sa-about-text p { color: rgba(255,255,255,.72); line-height: 1.75; margin-bottom: 16px; font-size: 1rem; }
.alm-sa-about-stats { display: flex; flex-direction: column; gap: 0; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 8px; overflow: hidden; }
.alm-sa-stat { padding: 24px 28px; border-bottom: 1px solid rgba(255,255,255,.06); transition: background .2s; }
.alm-sa-stat:last-child { border-bottom: none; }
.alm-sa-stat:hover { background: rgba(77,222,128,.04); }
.alm-sa-stat-num { display: block; font-size: 2rem; font-weight: 800; color: #4ade80; line-height: 1; margin-bottom: 4px; }
.alm-sa-stat-lbl { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.alm-sa-services { background: #080808; padding: 80px 24px; border-top: 1px solid rgba(255,255,255,.06); }
.alm-sa-services-inner { max-width: 1100px; margin: 0 auto; }
.alm-sa-services-sub { color: rgba(255,255,255,.6); max-width: 680px; margin-bottom: 48px; font-size: 1rem; line-height: 1.7; }
.alm-sa-scards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.alm-sa-scard { display: flex; flex-direction: column; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 8px; padding: 28px 24px; text-decoration: none !important; transition: border-color .25s, background .25s, transform .25s, box-shadow .25s; position: relative; overflow: hidden; }
.alm-sa-scard::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, #3db85f, #4ade80); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.alm-sa-scard:hover { border-color: rgba(77,222,128,.35); background: rgba(77,222,128,.05); transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.4); }
.alm-sa-scard:hover::before { transform: scaleX(1); }
.alm-sa-snum { font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: #4ade80; margin-bottom: 10px; display: block; }
.alm-sa-sname { font-size: 1rem; font-weight: 700; color: #fff; display: block; margin-bottom: 10px; line-height: 1.3; }
.alm-sa-sdesc { font-size: .88rem; color: rgba(255,255,255,.55); line-height: 1.6; display: block; flex: 1; }
.alm-sa-sarrow { display: block; font-size: .8rem; font-weight: 700; color: #4ade80; margin-top: 18px; letter-spacing: .04em; transition: letter-spacing .2s; }
.alm-sa-scard:hover .alm-sa-sarrow { letter-spacing: .1em; }
.alm-sa-process { background: #0d2e1a; padding: 80px 24px; position: relative; overflow: hidden; }
.alm-sa-process::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, rgba(61,184,95,.06) 0%, transparent 60%); pointer-events: none; }
.alm-sa-process-inner { max-width: 1100px; margin: 0 auto; position: relative; }
.alm-sa-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 40px; }
.alm-sa-step { background: rgba(0,0,0,.3); border: 1px solid rgba(77,222,128,.15); border-radius: 8px; padding: 32px 28px; position: relative; transition: border-color .25s, background .25s, transform .25s; }
.alm-sa-step:hover { border-color: rgba(77,222,128,.4); background: rgba(0,0,0,.5); transform: translateY(-4px); }
.alm-sa-step-num { display: block; font-size: 2.5rem; font-weight: 800; color: rgba(77,222,128,.25); line-height: 1; margin-bottom: 12px; transition: color .25s; }
.alm-sa-step:hover .alm-sa-step-num { color: rgba(77,222,128,.6); }
.alm-sa-step strong { display: block; font-size: 1.05rem; font-weight: 700; color: #fff; margin-bottom: 10px; }
.alm-sa-step p { font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.65; margin: 0; }
.alm-sa-areas { background: #0f0f0f; padding: 80px 24px; border-top: 1px solid rgba(255,255,255,.06); }
.alm-sa-areas-inner { max-width: 1100px; margin: 0 auto; }
.alm-sa-areas-text { color: rgba(255,255,255,.65); font-size: 1rem; line-height: 1.8; margin-bottom: 32px; max-width: 800px; }
.alm-sa-nearby { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }
.alm-sa-nearby-label { font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.4); margin-right: 4px; }
.alm-sa-area-chip { display: inline-block; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.8) !important; font-size: .85rem; font-weight: 500; padding: 8px 16px; border-radius: 4px; text-decoration: none !important; transition: background .2s, border-color .2s, color .2s, transform .2s; }
.alm-sa-area-chip:hover { background: rgba(77,222,128,.1); border-color: rgba(77,222,128,.4); color: #4ade80 !important; transform: translateY(-2px); }
.alm-sa-cta { background: linear-gradient(135deg, #0d2e1a 0%, #1a4d1e 100%); padding: 80px 24px; text-align: center; position: relative; overflow: hidden; border-top: 1px solid rgba(77,222,128,.2); }
.alm-sa-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, rgba(77,222,128,.1) 0%, transparent 60%); pointer-events: none; }
.alm-sa-cta-inner { max-width: 700px; margin: 0 auto; position: relative; }
.alm-sa-cta-h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800; color: #fff; margin: 0 0 16px; letter-spacing: -0.01em; }
.alm-sa-cta p { color: rgba(255,255,255,.7); font-size: 1.05rem; margin-bottom: 32px; line-height: 1.65; }
.alm-sa-cta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 900px) {
  .alm-sa-about-inner { grid-template-columns: 1fr; }
  .alm-sa-scards { grid-template-columns: repeat(2, 1fr); }
  .alm-sa-steps { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 600px) {
  .alm-sa-hero { padding: 70px 16px 56px; }
  .alm-sa-about, .alm-sa-services, .alm-sa-process, .alm-sa-areas, .alm-sa-cta { padding: 56px 16px; }
  .alm-sa-scards { grid-template-columns: 1fr; }
  .alm-sa-h1 { font-size: 2rem; }
  .alm-sa-h2 { font-size: 1.6rem; }
  .alm-sa-hero-ctas { flex-direction: column; }
}

/* === Services page intro-stat fix === */
.alm-svcs-intro-stat { color: rgba(255,255,255,0.85) !important; }
.alm-svcs-intro-stat h3, .alm-svcs-intro-stat strong, .alm-svcs-intro-stat b { color: #fff !important; font-weight: 700; }
.alm-svcs-intro-stat p, .alm-svcs-intro-stat span { color: rgba(255,255,255,0.65) !important; }


/* === Not Sure / Service Guide Bottom Section === */
.sp-content-section {
	  background-color: #0a0f0a !important;
	  color: #e8e8e8 !important;
	  padding: 80px 40px !important;
	  max-width: 1200px !important;
	  margin: 0 auto !important;
}

.sp-content-section h2 {
	  color: #ffffff !important;
	  font-size: 2rem !important;
	  font-weight: 700 !important;
	  margin-bottom: 32px !important;
	  margin-top: 0 !important;
	  letter-spacing: -0.5px !important;
}

.sp-content-section h2:first-child {
	  font-size: 2.4rem !important;
	  border-left: 4px solid #4ade80 !important;
	  padding-left: 20px !important;
	  margin-bottom: 40px !important;
}

.sp-content-section h2:last-of-type {
	  margin-top: 72px !important;
	  font-size: 2rem !important;
	  border-left: 4px solid #4ade80 !important;
	  padding-left: 20px !important;
}

.sp-content-section p {
	  color: #d1d5db !important;
	  font-size: 1rem !important;
	  line-height: 1.75 !important;
	  margin-bottom: 16px !important;
	  padding: 16px 20px !important;
	  background: rgba(255,255,255,0.04) !important;
	  border-radius: 8px !important;
	  border-left: 3px solid #1a3d2b !important;
}

.sp-content-section p strong,
.sp-content-section p b {
	  color: #4ade80 !important;
	  font-weight: 700 !important;
}

.sp-content-section table {
	  width: 100% !important;
	  border-collapse: collapse !important;
	  border-radius: 12px !important;
	  overflow: hidden !important;
	  margin-top: 24px !important;
}

.sp-content-section table th {
	  background-color: #1a3d2b !important;
	  color: #4ade80 !important;
	  font-weight: 700 !important;
	  text-transform: uppercase !important;
	  letter-spacing: 0.08em !important;
	  font-size: 0.8rem !important;
	  padding: 16px 24px !important;
	  text-align: left !important;
	  border-bottom: 2px solid #4ade80 !important;
}

.sp-content-section table td {
	  padding: 14px 24px !important;
	  color: #e8e8e8 !important;
	  font-size: 0.95rem !important;
	  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
	  background-color: #111a11 !important;
	  vertical-align: middle !important;
}

.sp-content-section table tr:nth-child(even) td {
	  background-color: #0e160e !important;
}

.sp-content-section table tr:hover td {
	  background-color: #1a2e1a !important;
}

.sp-content-section table td a,
.sp-content-section table td a:visited {
	  color: #4ade80 !important;
	  text-decoration: none !important;
	  font-weight: 600 !important;
	  transition: color 0.2s ease !important;
}

.sp-content-section table td a:hover {
	  color: #86efac !important;
	  text-decoration: underline !important;
}
}
}
}
}
}
}
}
}
}
}
}
}
}

/* === PRIVACY POLICY PAGE STYLES === */
.page-id-557 .elementor-widget-text-editor h1,
.page-id-557 .elementor-widget-text-editor h2,
.page-id-557 .elementor-widget-text-editor h3 {
	    color: #ffffff !important;
	    font-weight: 700;
	    margin-top: 40px;
	    margin-bottom: 15px;
}
.page-id-557 .elementor-widget-text-editor h1 {
	    font-size: 42px;
	    margin-top: 0;
}
.page-id-557 .elementor-widget-text-editor h2 {
	    font-size: 28px;
	    color: #e8e8e8 !important;
	    border-bottom: 2px solid #2d6a4f;
	    padding-bottom: 10px;
}
.page-id-557 .elementor-widget-text-editor p,
.page-id-557 .elementor-widget-text-editor li {
	    color: #d4d4d4 !important;
	    font-size: 16px;
	    line-height: 1.8;
	    margin-bottom: 15px;
}
.page-id-557 .elementor-widget-text-editor strong {
	    color: #ffffff !important;
}
.page-id-557 .elementor-widget-text-editor ul {
	    padding-left: 20px;
	    margin-bottom: 20px;
}
.page-id-557 .elementor-widget-text-editor li {
	    margin-bottom: 8px;
}
/* === END PRIVACY POLICY PAGE STYLES === */
}
}
}
}
}
}
}

/* === BLOG PAGE FULL-WIDTH FIX === */
/* Fix horizontal overflow causing misaligned full-width sections */
html.is-block-theme {
  overflow-x: hidden;
}

html.is-block-theme body {
  overflow-x: hidden;
}

/* Blog page: make alignfull sections truly full-width */
.blog .wp-site-blocks {
  overflow-x: hidden;
}

.blog main.wp-block-group {
  max-width: 100% !important;
  width: 100% !important;
}

.blog .wp-block-group.alignfull {
  width: calc(100vw) !important;
  max-width: 100vw !important;
  margin-left: calc(-1 * (100vw - 100%) / 2) !important;
  margin-right: calc(-1 * (100vw - 100%) / 2) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Keep inner content padded */
.blog .wp-block-group.alignfull > .wp-block-group.has-global-padding,
.blog .wp-block-group.alignfull > div {
  padding-left: max(30px, 5%) !important;
  padding-right: max(30px, 5%) !important;
}


/* ===== ASPEN LAND MANAGEMENT — LANDING PAGE STYLES ===== */
#alp-lp, #alp-lp * { box-sizing: border-box; }
#alp-lp { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }

/* URGENCY BANNER */
.alp-urg { background: #1e5c2a; color: #e0f0e5; text-align: center; padding: 11px 16px; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.02em; }
.alp-urg a { color: #5bce7f; text-decoration: none; font-weight: 700; }

/* HERO */
.alp-hero { background: #0a1a0d; padding: 80px 20px 64px; text-align: center; position: relative; }
.alp-badge { display: inline-block; background: rgba(91,206,127,0.12); border: 1px solid rgba(91,206,127,0.35); color: #5bce7f; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 6px 16px; border-radius: 30px; margin-bottom: 24px; }
.alp-h1 { font-size: clamp(2.4rem,5vw,4.2rem); font-weight: 900; line-height: 1.1; color: #fff; margin: 0 0 8px; text-transform: uppercase; letter-spacing: -0.01em; }
.alp-h1-outline { display: block; color: transparent; -webkit-text-stroke: 2px #5bce7f; font-size: clamp(2.2rem,4.5vw,3.8rem); }
.alp-h1-cta { display: block; color: #5bce7f; font-size: clamp(2rem,4vw,3.4rem); }
.alp-sub { font-size: clamp(0.95rem,1.5vw,1.1rem); color: #9fcfaf; max-width: 600px; margin: 20px auto 32px; line-height: 1.65; }
.alp-sub strong { color: #5bce7f; }
.alp-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 32px; }
.alp-btn-primary { background: #5bce7f; color: #0a1a0d; font-size: 1rem; font-weight: 800; padding: 16px 32px; border-radius: 8px; text-decoration: none; letter-spacing: 0.03em; text-transform: uppercase; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: background 0.2s; }
.alp-btn-primary:hover { background: #4ab56e; }
.alp-btn-secondary { background: transparent; color: #e0f0e5; font-size: 1rem; font-weight: 700; padding: 16px 32px; border-radius: 8px; text-decoration: none; border: 2px solid rgba(255,255,255,0.25); display: inline-flex; align-items: center; gap: 8px; transition: border-color 0.2s; }
.alp-btn-secondary:hover { border-color: #5bce7f; color: #5bce7f; }
.alp-trust { display: flex; gap: 8px 24px; justify-content: center; flex-wrap: wrap; }
.alp-trust span { font-size: 0.78rem; color: #7fb993; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }

/* FORM SECTION */
.alp-form-sec { background: #0d1a10; padding: 72px 20px; border-top: 1px solid #1e3a22; }
.alp-cnt { max-width: 1100px; margin: 0 auto; }
.alp-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
@media (max-width: 900px) { .alp-2col { grid-template-columns: 1fr; gap: 40px; } }
.alp-left h2 { font-size: clamp(1.6rem,3vw,2.4rem); font-weight: 900; color: #fff; margin: 0 0 16px; line-height: 1.15; }
.alp-left h2 span { color: #5bce7f; }
.alp-lp-p { color: #9fcfaf; font-size: 0.95rem; line-height: 1.7; margin: 0 0 24px; }
.alp-cl { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.alp-cl li { font-size: 0.9rem; color: #c8e8d4; display: flex; align-items: flex-start; gap: 10px; line-height: 1.5; }
.alp-fc { background: #162a1a; border: 1px solid #2a4a30; border-radius: 16px; padding: 36px 32px; }
.alp-micro { font-size: 0.85rem; color: #9fcfaf; font-style: italic; margin-bottom: 10px; text-align: center; }
.alp-fc h3 { font-size: 1.4rem; font-weight: 800; color: #fff; margin: 0 0 6px; text-align: center; }
.alp-fc-sub { font-size: 0.78rem; color: #7fb993; text-align: center; margin-bottom: 24px; letter-spacing: 0.02em; }
.alp-2f { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 540px) { .alp-2f { grid-template-columns: 1fr; } }
.alp-fld { margin-bottom: 14px; }
.alp-fld label { display: block; font-size: 0.7rem; font-weight: 700; color: #7fb993; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 6px; }
.alp-fld input, .alp-fld select, .alp-fld textarea { width: 100%; background: #0d1a10; border: 1px solid #2a4a30; border-radius: 8px; color: #e0f0e5; font-size: 0.92rem; padding: 12px 14px; outline: none; transition: border-color 0.2s; font-family: inherit; -webkit-appearance: none; }
.alp-fld input:focus, .alp-fld select:focus, .alp-fld textarea:focus { border-color: #5bce7f; }
.alp-fld input::placeholder, .alp-fld textarea::placeholder { color: #4a6e54; }
.alp-fld select { appearance: none; background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.alp-fld textarea { resize: vertical; min-height: 90px; }
.alp-fld select option { background: #0d1a10; color: #e0f0e5; }
.alp-fsub { width: 100%; background: #5bce7f; color: #0a1a0d; font-size: 0.9rem; font-weight: 800; padding: 16px 20px; border-radius: 8px; border: none; cursor: pointer; letter-spacing: 0.04em; text-transform: uppercase; margin-top: 8px; transition: background 0.2s; font-family: inherit; }
.alp-fsub:hover { background: #4ab56e; }
.alp-fnote { text-align: center; margin-top: 12px; font-size: 0.76rem; color: #7fb993; }
.alp-ftalk { text-align: center; margin-top: 8px; font-size: 0.82rem; color: #9fcfaf; }
.alp-ftalk a { color: #5bce7f; font-weight: 700; text-decoration: none; }
.alp-ftalk a:hover { text-decoration: underline; }

/* HOW IT WORKS */
.alp-how { background: #0a1a0d; padding: 72px 20px; text-align: center; border-top: 1px solid #1e3a22; }
.alp-sec-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.15em; color: #5bce7f; text-transform: uppercase; display: block; margin-bottom: 12px; }
.alp-how h2 { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 900; color: #fff; margin: 0 0 12px; }
.alp-how-sub { color: #9fcfaf; font-size: 1rem; max-width: 560px; margin: 0 auto 48px; line-height: 1.6; }
.alp-steps { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; max-width: 1000px; margin: 0 auto; }
.alp-step { background: #162a1a; border: 1px solid #2a4a30; border-radius: 14px; padding: 32px 24px; flex: 1; min-width: 240px; max-width: 300px; }
.alp-step-num { width: 52px; height: 52px; border-radius: 50%; background: #1e5c2a; border: 2px solid #5bce7f; color: #5bce7f; font-size: 1.5rem; font-weight: 900; display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; }
.alp-step h3 { font-size: 1rem; font-weight: 800; color: #fff; margin: 0 0 10px; }
.alp-step p { font-size: 0.88rem; color: #9fcfaf; line-height: 1.6; margin: 0; }

/* PROOF STRIP */
.alp-proof-strip { background: #162a1a; padding: 52px 20px; text-align: center; border-top: 1px solid #2a4a30; border-bottom: 1px solid #2a4a30; }
.alp-proof-strip-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.15em; color: #5bce7f; text-transform: uppercase; display: block; margin-bottom: 20px; }
.alp-strip-quote { max-width: 680px; margin: 0 auto 32px; }
.alp-strip-stars { font-size: 1.5rem; color: #f5c542; margin-bottom: 14px; letter-spacing: 2px; }
.alp-strip-google-badge { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 20px; }
.alp-google-label { color: #7fb993; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.alp-strip-quote blockquote { font-size: 1.05rem; color: #e0f0e5; font-style: italic; line-height: 1.75; margin: 0 0 14px; border: none; padding: 0; }
.alp-strip-quote cite { font-size: 0.85rem; color: #7fb993; font-style: normal; font-weight: 600; }
.alp-strip-trust { display: flex; flex-wrap: wrap; gap: 10px 28px; justify-content: center; }
.alp-strip-trust span { font-size: 0.82rem; color: #9fcfaf; font-weight: 600; }

/* WHY SECTION */
.alp-why { background: #0d1a10; padding: 72px 20px; border-top: 1px solid #1e3a22; }
.alp-why-h { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 900; color: #fff; text-align: center; margin: 0 0 12px; }
.alp-why-sub { color: #9fcfaf; font-size: 1rem; text-align: center; max-width: 560px; margin: 0 auto 48px; line-height: 1.6; }
.alp-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; max-width: 1100px; margin: 0 auto; }
@media (max-width: 900px) { .alp-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .alp-grid { grid-template-columns: 1fr; } }
.alp-card { background: #162a1a; border: 1px solid #2a4a30; border-radius: 14px; padding: 28px 24px; box-shadow: 0 4px 20px rgba(0,0,0,0.5),0 1px 0 rgba(255,255,255,0.05); transition: border-color 0.2s; }
.alp-card:hover { border-color: #5bce7f; }
.alp-card-icon { font-size: 1.6rem; margin-bottom: 14px; display: block; }
.alp-card h3 { font-size: 0.98rem; font-weight: 800; color: #fff; margin: 0 0 8px; }
.alp-card p { font-size: 0.85rem; color: #9fcfaf; line-height: 1.6; margin: 0; }

/* SERVICES */
.alp-svc-sec { background: #0a1a0d; padding: 72px 20px; border-top: 1px solid #1e3a22; }
.alp-svc-h { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 900; color: #fff; text-align: center; margin: 0 0 48px; }
.alp-svc-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; max-width: 1100px; margin: 0 auto; }
@media (max-width: 900px) { .alp-svc-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .alp-svc-grid { grid-template-columns: 1fr; } }
.alp-svc-item { background: #162a1a; border: 1px solid #2a4a30; border-radius: 12px; padding: 24px 20px; transition: border-color 0.2s; }
.alp-svc-item:hover { border-color: #5bce7f; }
.alp-svc-num { font-size: 0.68rem; font-weight: 700; color: #5bce7f; letter-spacing: 0.1em; display: block; margin-bottom: 8px; }
.alp-svc-item h4 { font-size: 0.92rem; font-weight: 800; color: #fff; margin: 0 0 6px; }
.alp-svc-item p { font-size: 0.82rem; color: #9fcfaf; line-height: 1.5; margin: 0; }

/* GOOGLE CTA */
.alp-google-cta { background: #0d1a10; padding: 60px 20px; text-align: center; border-top: 1px solid #1e3a22; }
.alp-google-review-block { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; }
.alp-gcta-stars { font-size: 1.7rem; color: #f5c542; letter-spacing: 3px; }
.alp-gcta-headline { font-size: 1.1rem; font-weight: 700; color: #fff; margin: 0; }
.alp-gcta-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; background: #fff; color: #1a2e1e; font-size: 0.9rem; font-weight: 700; padding: 12px 26px; border-radius: 8px; text-decoration: none; transition: opacity 0.2s; letter-spacing: 0.01em; }
.alp-gcta-link:hover { opacity: 0.88; }

/* FAQ */
.alp-faq { background: #0a1a0d; padding: 72px 20px; border-top: 1px solid #1e3a22; }
.alp-faq h2 { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 900; color: #fff; text-align: center; margin: 0 0 12px; }
.alp-faq-list { max-width: 780px; margin: 36px auto 0; display: flex; flex-direction: column; gap: 10px; }
.alp-faq-item { background: #162a1a; border: 1px solid #2a4a30; border-radius: 10px; overflow: hidden; transition: border-color 0.2s; }
.alp-faq-item[open] { border-color: #5bce7f; }
.alp-faq-item summary { padding: 18px 22px; font-size: 0.95rem; font-weight: 700; color: #e0f0e5; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; user-select: none; gap: 12px; }
.alp-faq-item summary::after { content: '+'; font-size: 1.4rem; color: #5bce7f; font-weight: 300; flex-shrink: 0; }
.alp-faq-item[open] summary::after { content: '\2212'; }
.alp-faq-item summary::-webkit-details-marker { display: none; }
.alp-faq-ans { padding: 0 22px 18px; }
.alp-faq-ans p { font-size: 0.88rem; color: #9fcfaf; line-height: 1.7; margin: 0; }

/* FINAL CTA */
.alp-cta2 { background: #0d1a10; padding: 80px 20px; text-align: center; border-top: 1px solid #1e3a22; }
.alp-cta2 h2 { font-size: clamp(1.8rem,3.5vw,3rem); font-weight: 900; color: #fff; margin: 0 0 16px; line-height: 1.15; }
.alp-cta2 p { color: #9fcfaf; font-size: 1rem; max-width: 560px; margin: 0 auto 32px; line-height: 1.7; }
.alp-cta2-phone { font-size: clamp(2rem,4vw,3.2rem); font-weight: 900; color: #5bce7f; display: block; margin-bottom: 24px; text-decoration: none; letter-spacing: -0.01em; }
.alp-cta2-phone:hover { color: #4ab56e; }
.alp-cta2-foot { font-size: 0.8rem; color: #7fb993; margin-top: 28px; }

/* RESPONSIVE */
@media (max-width: 768px) {
  .alp-hero { padding: 60px 16px 48px; }
  .alp-form-sec { padding: 52px 16px; }
  .alp-fc { padding: 28px 20px; }
  .alp-steps { flex-direction: column; align-items: center; }
  .alp-step { max-width: 100%; width: 100%; }
  .alp-strip-trust { gap: 8px 16px; }
}

/* =====================================================
   ACCESSIBILITY FIXES — HOME PAGE & GLOBAL (WCAG 2.1 AA)
   ===================================================== */

/* FIX 1: body color contrast — default body text must be visible on dark background
   The WordPress theme sets body { color: #1a1a1a } which is near-invisible on our
   dark #0a0a0a background. Override to white so any fallback text is readable. */
body {
  color: #ffffff !important;
}

/* FIX 2: aria-hidden-focus — ticker duplicate tracks have focusable <a> links.
   Since we cannot add tabindex="-1" via server-side HTML to the ticker copies,
   we use pointer-events and visibility to ensure AT ignores these duplicates. 
   The aria-hidden attribute handles screen readers; this handles focus traps. */
.atb-track[aria-hidden="true"] a,
.atb-track[aria-hidden="true"] button {
  pointer-events: none;
  visibility: visible; /* keep visual, just not reachable */
  /* Note: tabindex="-1" must be added via JS — CSS cannot set tabindex */
}

/* FIX 3: Privacy Policy link — must be distinguishable without color alone.
   WCAG 1.4.1 requires links in body text to have non-color visual cues. */
#aspen-privacy-bar a,
.alm-footer-copy a {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* FIX 4: Separator pipe characters in top bar have low contrast (#555 on #1a1a1a).
   Make them slightly more visible — use a lighter color. */
.atb-sep {
  color: #888888 !important;
}

/* FIX 5: Screen-reader-only utility class for visually hidden headings */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* FIX 6: Hero subgeo paragraph — style like the old h3 so visual appearance is preserved */
.alm-hero-subgeo {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  margin: 0 0 0.75rem;
  letter-spacing: 0.01em;
}

/* FIX 7: Focus indicators — ensure visible focus rings on all interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #4caf50 !important;
  outline-offset: 2px !important;
}

/* FIX 8: Skip to content link — make it visible when focused */
.skip-link:focus,
#wp-skip-link:focus {
  position: fixed !important;
  top: 8px !important;
  left: 8px !important;
  z-index: 999999 !important;
  background: #4caf50 !important;
  color: #ffffff !important;
  padding: 12px 24px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
}


/* A11Y: Fix footer phone link color - browser default blue is invisible on dark bg */
.alm-footer-brand a,
.alm-footer a[href^="tel:"],
.alm-footer a[href^="mailto:"] {
  color: #ffffff !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* A11Y: Fix all links in dark footer sections */
.alm-footer a {
  color: rgba(255,255,255,0.9) !important;
}
.alm-footer a:hover {
  color: #4caf50 !important;
}


/* =====================================================
   WCAG 2.1 AA SITEWIDE ACCESSIBILITY FIXES — BATCH 2
   Covers all pages audited: home, quote, about, services,
   forestry-mulching, land-clearing, brush-clearing, faq,
   contact, request-a-quote, service-areas, subsoil-mulching,
   overgrown-lot-cleanup, and all service/location pages.
   ===================================================== */

/* ─── 1. COLOR CONTRAST: Step numbers (.alm-step-num) ─────────────────
   #3d6d4a on #0a0a0a = 3.28 → fix to #50a064 (6.18:1)              */
.alm-step-num {
  color: #50a064 !important;
}

/* ─── 2. COLOR CONTRAST: Gray muted text on dark bg ──────────────────
   #7a7a7a on dark greens (~4.1-4.2) — boost to #a0a0a0 (6.8+:1)
   Targets form sub-labels, meta text, descriptive text             */
.alp-fc-sub,
.alp-stag,
.alp-ftalk,
p[style*="color:#7a7a7a"],
p[style*="color: #7a7a7a"],
span[style*="color:#7a7a7a"] {
  color: #a0a0a0 !important;
}

/* ─── 3. COLOR CONTRAST: Uncolored bare links on dark bg ─────────────
   Browser default #0000ee on dark bg = 1.9-2.2 — override to green */
.alm-page a:not([class]),
.alm-s2 a:not([class]),
.alm-s1 a:not([class]) {
  color: #4caf50 !important;
  text-decoration: underline;
}

/* ─── 4. COLOR CONTRAST: Quote page button/link colors ───────────────
   .alp-bp and .alp-bs have no explicit color → browser defaults to blue */
.alp-bp,
.alp-bs,
.alp-phn {
  color: #ffffff !important;
}
.alp-bp:hover,
.alp-bs:hover,
.alp-phn:hover {
  color: #c8f0ca !important;
}

/* ─── 5. COLOR CONTRAST: Phone link in green hero/banner ─────────────
   #5bce7f on #1e5c2a = 4.03 → fix to #78eba0 (5.42:1)             */
.alp-urg a[href^="tel"],
.alp-hero-phone a,
a[href^="tel"].alp-hero-tel {
  color: #78eba0 !important;
}

/* ─── 6. COLOR CONTRAST: CTA button .alm-btn-primary ─────────────────
   #fcfcfc on #5a9a3a = 3.34 → darken bg to #2d782d (5.34:1)       */
.alm-btn-primary {
  background-color: #2d782d !important;
  color: #ffffff !important;
  border-color: #2d782d !important;
}
.alm-btn-primary:hover,
.alm-btn-primary:focus {
  background-color: #266926 !important;
  border-color: #266926 !important;
  color: #ffffff !important;
}

/* ─── 7. COLOR CONTRAST: "Related Resources" heading (#888 on #f7f7f5) 
   #888888 on #f7f7f5 = 3.3 → fix to #696969 (5.12:1)
   Uses !important to override inline style                          */
p[style*="color:#888"],
p[style*="color: #888"],
p[style*="color:#888888"],
p[style*="color: #888888"] {
  color: #696969 !important;
}

/* ─── 8. COLOR CONTRAST: White text on light callout boxes ───────────
   p[style*="background:#f5f5f5"] has color:white inherited → force dark */
p[style*="background:#f5f5f5"],
p[style*="background: #f5f5f5"] {
  color: #1a1a1a !important;
}
p[style*="background:#f5f5f5"] strong,
p[style*="background: #f5f5f5"] strong,
p[style*="background:#f5f5f5"] a,
p[style*="background: #f5f5f5"] a {
  color: #1a1a1a !important;
}

/* ─── 9. COLOR CONTRAST: Service areas card text ─────────────────────
   .alm-sa-loc-card-county: #4f4f4f on #0a0a0a = 2.41 → #a0a0a0
   .alm-sa-loc-card-services: #676767 on #0a0a0a = 3.5 → #a0a0a0
   .alm-sa-smaller-label: #606060 on #0a0a0a = 3.14 → #a0a0a0
   .alm-sa-svcs-label: #626a64 on #0d1a10 = 3.21 → #b0c8b5      */
.alm-sa-loc-card-county,
.alm-sa-loc-card-services,
.alm-sa-smaller-label {
  color: #a0a0a0 !important;
}
.alm-sa-svcs-label {
  color: #b0c8b5 !important;
}

/* ─── 10. COLOR CONTRAST: Subsoil page comparison labels ─────────────
   .smr-diff-label: #646a64 on #111a11 = 3.21 → #b0c8b5          */
.smr-diff-label {
  color: #b0c8b5 !important;
}

/* ─── 11. COLOR CONTRAST: Toggle button on contact/quote pages ───────
   #alm-toggle-advanced: #2e5c2e on #000 = 2.68 → #4caf50         */
#alm-toggle-advanced {
  color: #4caf50 !important;
  background: transparent !important;
  border: 1px solid #4caf50 !important;
  border-radius: 4px !important;
  padding: 6px 14px !important;
  cursor: pointer !important;
}
#alm-toggle-advanced:hover,
#alm-toggle-advanced:focus {
  background: rgba(76,175,80,0.12) !important;
  outline: 3px solid #4caf50 !important;
  outline-offset: 2px !important;
}

/* ─── 12. COLOR CONTRAST: rgba opacity fixes for contact page ────────
   Inline rgba(255,255,255,0.45) and 0.4 fall below 4.5:1 on #0a0a0a.
   Override these inline-style opacities via !important CSS matches  */
p[style*="rgba(255,255,255,0.45)"],
p[style*="rgba(255,255,255, 0.45)"] {
  color: rgba(255,255,255,0.72) !important;  /* ~#b8b8b8 = 8.2:1 */
}
p[style*="rgba(255,255,255,0.4)"],
p[style*="rgba(255,255,255, 0.4)"] {
  color: rgba(255,255,255,0.72) !important;
}

/* ─── 13. LINK VISIBILITY: Services page arrow links ─────────────────
   Arrow (→) links have no class and no color → browser default blue.
   Make them visible on dark bg                                      */
.alm-s2 a[href]:not([class]),
.alm-s1 a[href]:not([class]),
.alm-section a[href]:not([class]) {
  color: #4caf50 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* ─── 14. AVOID-INLINE-SPACING: CTA H2 letter-spacing fix ───────────
   Multiple pages have H2 with inline letter-spacing:-Xpx!important
   which blocks user stylesheet overrides (WCAG 1.4.12).
   Override with a CSS rule that wins but is not !important so users
   can still override it via their own stylesheet.
   We use !important here to beat the inline, but the user can still
   override our !important with their own (user stylesheets have higher
   specificity than author stylesheets in cascade).
   Fix: use a reasonable letter-spacing that allows user override     */
.alm-cta h2[style*="letter-spacing"],
.alm-cta .alm-inner h2[style*="letter-spacing"] {
  letter-spacing: -0.03em !important;  /* -3% = visually similar, but in em = user-overridable */
}

/* ─── 15. FAQ: .faq-tabs-wrap scrollable region keyboard access ──────
   Added tabindex via JS (WPCode snippet). Add visual focus indicator */
.faq-tabs-wrap:focus {
  outline: 3px solid #4caf50 !important;
  outline-offset: 2px !important;
}

/* ─── 16. FAQ: .faq-q keyboard button focus indicator ───────────────
   JS adds role="button" and tabindex. Add focus styles.             */
.faq-q[tabindex="0"]:focus,
.faq-q[role="button"]:focus {
  outline: 3px solid #4caf50 !important;
  outline-offset: 2px !important;
  background: rgba(76,175,80,0.08) !important;
}

/* ─── 17. QUOTE PAGE: No <main> landmark ─────────────────────────────
   Add role="main" via JS. Add visual styling for the main region.
   #alp-lp gets role="main" via our JS snippet.                      */

/* ─── 18. LINK-IN-TEXT-BLOCK: Global underline for in-text links ─────
   Links within paragraph text blocks that rely solely on color       */
.alm-page p a,
.alm-content p a,
.entry-content p a {
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* ─── FIX: alp-fsub (submit button) restore white text ─────────────── */
.alp-fsub {
  color: #0a1a0d !important;  /* dark text on green button - keep original */
}

/* ─── FIX: Additional gray text elements on quote page ──────────────── */
.alp-ti,
.alp-desc,
.alp-fc p,
.alp-hero p,
.alp-why p {
  color: #a0a0a0 !important;
}

/* ─── FIX: Form input text color on dark bg ────────────────────────── 
   Form inputs in .alp-form have #7a7a7a text on #162a1a bg = 3.54
   Raise to #a0a0a0 (5.8:1 on #162a1a)                              */
#qfn, #qln, #qph, #qemail, #qservice, #qdesc,
.alp-form-sec input[type="text"],
.alp-form-sec input[type="tel"],
.alp-form-sec input[type="email"],
.alp-form-sec select,
.alp-form-sec textarea,
#alp-form input,
#alp-form select,
#alp-form textarea {
  color: #c8d4ca !important;
}
.alp-form-sec input::placeholder,
.alp-form-sec textarea::placeholder,
#alp-form input::placeholder,
#alp-form textarea::placeholder {
  color: #a0a0a0 !important;
  opacity: 1 !important;
}

/* ─── FIX: More gray text elements on quote/landing page ────────────── */
.alp-sn,
.alp-fn,
.alp-si .alp-sn,
.alp-faq-a {
  color: #a0a0a0 !important;
}

/* ─── FIX: Services page — sections with gray text on dark bg ────────
   Elementor widget color setting creates gray text on dark backgrounds.
   Target sections with dark green bg that contain insufficiently contrasting text. */
section[style*="background: #0d1a0d"],
section[style*="background:#0d1a0d"] {
  color: #ffffff !important;
}
section[style*="background: #0d1a0d"] h2,
section[style*="background: #0d1a0d"] h3,
section[style*="background: #0d1a0d"] p,
section[style*="background: #0d1a0d"] li,
section[style*="background:#0d1a0d"] h2,
section[style*="background:#0d1a0d"] h3,
section[style*="background:#0d1a0d"] p,
section[style*="background:#0d1a0d"] li {
  color: #e0ece0 !important;
}

/* ─── FIX: Services page — bare arrow links on dark bg ──────────────
   Arrow links (→) have no class and use browser-default blue on black. */
/* Arrow links in sections: use JS to set color (in WPCode snippet)
   CSS approach failed due to inline style conflicts */

/* ─── FIX: Services page — resources list span text ─────────────────
   .alm-resources-list span has rgba(255,255,255,0.45) = ~#787878 on dark bg
   Just below the 4.5:1 threshold (4.48). Increase opacity. */
.alm-resources-list span,
.alm-resources-list li span {
  color: rgba(255,255,255,0.72) !important;  /* ~#b8b8b8 = 8.2:1 */
}

/* ─── FIX: Links with no class inside dark Elementor sections ─────── 
   NOTE: We do NOT use !important here to avoid overriding inline color styles.
   Instead we rely on inheritance and the more specific section rules above.   */
/* Removed overly broad rule - was overriding inline color:white on green buttons */

/* ─── FIX: Contact page rgba opacity fine-grained fixes ─────────────
   Some contact page elements use very specific rgba values */
[style*="rgba(255,255,255,0.4)"] {
  color: rgba(255,255,255,0.72) !important;
}
[style*="rgba(255,255,255,0.45)"] {
  color: rgba(255,255,255,0.72) !important;
}

/* ─── FIX: SAM.gov credentials text (.acu-uei) ──────────────────────
   rgba(255,255,255,0.32) on very dark bg = 2.8:1. Increase to pass 4.5:1 */
.acu-uei {
  color: rgba(255,255,255,0.72) !important;  /* ~8.2:1 on #060d06 */
}

/* ─── FIX: Subsoil page .smr-btn-primary ─────────────────────────────
   Browser default blue on dark bg = 2.23:1. Fix to white on dark green. */
.smr-btn-primary {
  color: #ffffff !important;
  background-color: #2d782d !important;
  border: 1px solid #4caf50 !important;
  padding: 10px 24px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  display: inline-block !important;
}
.smr-btn-primary:hover,
.smr-btn-primary:focus {
  background-color: #266926 !important;
  color: #ffffff !important;
}

/* ─── FIX: Subsoil page .smr-btn-secondary ───────────────────────────
   Browser default blue on black bg = 2.23:1. Fix to white/light green. */
.smr-btn-secondary {
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.5) !important;
  padding: 10px 24px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  display: inline-block !important;
}
.smr-btn-secondary:hover,
.smr-btn-secondary:focus {
  border-color: #4caf50 !important;
  color: #4caf50 !important;
}


/* ============================================================
   === MOBILE RESPONSIVE FIXES — Aspen Land Management ===
   Max 768px: all mobile layout, spacing, typography, nav
   Desktop styles UNTOUCHED (all rules inside @media)
   ============================================================ */

/* ── GLOBAL OVERFLOW PREVENTION ── */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* Prevent any element from causing horizontal scroll */
  .elementor-section,
  .elementor-container,
  .e-con,
  .e-con-inner,
  [class*="alm-"],
  [class*="alp-"] {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ── HEADER / NAVIGATION ── */
  /* Fix the header nav bar - collapse items, show hamburger */
  .aspen-header-wrap {
    position: relative !important;
    flex-wrap: wrap !important;
    padding: 0 16px !important;
    min-height: 56px !important;
    align-items: center !important;
  }

  .aspen-header-left {
    flex: 1 !important;
    min-width: 0 !important;
  }

  /* Hide desktop nav links on mobile */
  .aspen-header-nav {
    display: none !important;
    overflow: visible !important;
  }

  /* Show hamburger button on mobile */
  .aspen-hamburger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: 8px !important;
    color: #ffffff !important;
  }

  .aspen-hamburger span,
  .aspen-hamburger .hamburger-line {
    background: #ffffff !important;
  }

  /* Show CTA/social when hamburger is present */
  .aspen-header-right,
  .aspen-header-social {
    display: none !important;
  }

  /* When nav is open (JS-toggled), show it as dropdown */
  .aspen-header-wrap.nav-open .aspen-header-nav,
  .aspen-header-nav.active,
  .aspen-header-nav[aria-expanded="true"] {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    background: #0a0a0a !important;
    padding: 12px 0 20px !important;
    order: 10 !important;
  }

  .aspen-header-nav > a {
    display: block !important;
    padding: 12px 20px !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    font-size: 16px !important;
    color: #ffffff !important;
    text-decoration: none !important;
  }

  .aspen-header-nav > a:last-child {
    border-bottom: none !important;
  }

  /* Contact Us button - make it accessible on mobile */
  .aspen-cta-btn {
    display: inline-flex !important;
    padding: 10px 18px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  /* ── TOP INFO BAR ── */
  /* The ticker/top-bar items overflow - hide on very small screens */
  .atb-inner {
    overflow: hidden !important;
  }

  .atb-item {
    font-size: 11px !important;
    padding: 0 12px !important;
    white-space: nowrap !important;
  }

  /* ── HERO SECTIONS ── */
  .alm-hero-content {
    padding: 48px 20px 40px !important;
    max-width: 100% !important;
  }

  .alm-hero-content h1 {
    font-size: clamp(28px, 8vw, 44px) !important;
    line-height: 1.2 !important;
  }

  .alm-hero-content h2 {
    font-size: clamp(24px, 7vw, 36px) !important;
    line-height: 1.2 !important;
  }

  /* ── MAIN CONTENT SPACING ── */
  main,
  #main,
  .wp-site-blocks main {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* ── HOME PAGE SECTIONS ── */
  .alm-how {
    padding: 48px 20px !important;
  }

  .alm-services {
    padding: 0 20px 48px !important;
  }

  .alm-projects {
    padding: 0 20px 48px !important;
  }

  /* Why Aspen section — huge padding crush fix */
  .alm-why-aspen {
    padding: 56px 20px !important;
  }

  .alm-wa-inner {
    width: 100% !important;
    max-width: 100% !important;
  }

  .alm-wa-hdr {
    width: 100% !important;
    max-width: 100% !important;
  }

  .alm-wa-body-inner {
    padding-left: 16px !important;
    padding-bottom: 20px !important;
  }

  .alm-wa-num {
    font-size: 13px !important;
    color: rgba(111, 207, 138, 0.7) !important;
  }

  .alm-home-subsoil {
    padding: 48px 20px !important;
  }

  /* ── SERVICES PAGE ── */
  .alm-s2 {
    padding: 56px 20px 48px !important;
  }

  .alm-s2-grid {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Site Expert / 2-col layout — force wrap */
  .alm-site-expert {
    padding: 56px 20px !important;
    overflow: hidden !important;
  }

  .alm-site-expert > div,
  .alm-site-expert .elementor-column,
  .alm-site-expert .e-con > .e-con-inner {
    flex-wrap: wrap !important;
  }

  /* Fix Elementor flex columns on mobile */
  .alm-site-expert .elementor-widget-wrap,
  .alm-site-expert .elementor-column-wrap {
    flex-wrap: wrap !important;
  }

  .alm-site-expert div[style*="flex-shrink: 0"],
  .alm-site-expert div[style*="flex-shrink:0"] {
    flex-shrink: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .alm-com-utility-section {
    padding: 48px 20px !important;
  }

  .alm-svcs-intro-inner {
    padding: 48px 20px !important;
  }

  .alm-subsoil-announcement {
    padding: 48px 20px !important;
  }

  .alm-who {
    padding: 56px 20px !important;
  }

  .alm-svcs-areas {
    padding: 56px 20px !important;
  }

  .alm-svcs-cta {
    padding: 56px 20px !important;
  }

  .alm-resources-section {
    padding: 56px 20px !important;
  }

  .alm-resources-group {
    padding: 20px !important;
  }

  /* ── SERVICE DETAIL PAGES (forestry, land-clearing, etc.) ── */
  .alm-svc-hero {
    padding: 56px 20px 48px !important;
  }

  .alm-step-wrap {
    padding: 48px 20px !important;
  }

  .alm-process-loc {
    padding: 16px !important;
  }

  /* ── SUBSOIL PAGE ── */
  .smr-hero {
    padding: 56px 20px 48px !important;
  }

  .smr-intro {
    padding: 48px 20px !important;
  }

  .smr-diff-grid {
    flex-direction: column !important;
    gap: 0 !important;
  }

  .smr-diff-col {
    width: 100% !important;
    padding: 32px 20px !important;
  }

  /* ── CONTACT / QUOTE PAGES ── */
  .alp-hero {
    padding: 48px 16px !important;
  }

  .alp-form-wrap {
    padding: 32px 16px !important;
  }

  /* ── SERVICE AREA PAGES ── */
  .alm-sa-hero {
    padding: 56px 16px 48px !important;
  }

  .alm-sa-about {
    padding: 48px 16px !important;
  }

  /* ── FAQ PAGE ── */
  .faq-tabs-wrap {
    padding: 0 !important;
    overflow-x: auto !important;
  }

  .faq-section {
    padding: 48px 16px !important;
  }

  /* ── ABOUT PAGE ── */
  .alm-about-hero {
    padding: 56px 16px 48px !important;
  }

  .alm-about-intro {
    padding: 48px 16px !important;
  }

  /* ── TYPOGRAPHY ── */
  /* Small labels/eyebrows — readable minimum */
  .alm-section-eyebrow,
  .alm-how-num,
  .alm-service-num,
  .alm-wa-eyebrow,
  .alm-wa-num,
  .alm-step-num,
  .alp-step-num,
  .alm-home-subsoil-label,
  .alm-sa-svcs-label {
    font-size: 12px !important;
    letter-spacing: 0.08em !important;
  }

  /* Footer copyright */
  .alm-footer-bottom p {
    font-size: 13px !important;
  }

  /* ── SERVICE CARDS GRID ── */
  /* 2-col service grid should stay 2-col on phones */
  .alm-services-list {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }

  .alm-service-card {
    padding: 20px 16px !important;
  }

  /* ── FOOTER ── */
  .alm-footer {
    padding: 32px 20px 16px !important;
  }

  .alm-footer-inner {
    max-width: 100% !important;
  }

  /* ── ABOUT PAGE TEAM / STATS ── */
  .alm-about-stats {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  /* ── MOBILE CTA BAR (sticky bottom bar) ── */
  .aspen-mobile-cta {
    display: flex !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    padding: 10px 16px !important;
  }

  /* Add bottom padding to body so content isn't hidden behind CTA bar */
  body {
    padding-bottom: 68px !important;
  }

  /* ── OVERGROWN LOT / GENERAL CLEANUP SECTIONS ── */
  .alm-process-section,
  .alm-why-section,
  .alm-benefits-section {
    padding: 48px 20px !important;
  }

  /* ── PROJECT GALLERY ── */
  .alm-projects-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 100% !important;
  }

  .alm-projects-top {
    max-width: 100% !important;
  }

  /* ── GENERAL ELEMENTOR SECTIONS ── */
  /* Reduce excessive padding in Elementor sections on mobile */
  .elementor-section.elementor-section-boxed > .elementor-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Ensure all images are responsive */
  img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* Fix any pre/code tags that might overflow */
  pre, code {
    overflow-x: auto !important;
    white-space: pre-wrap !important;
    word-break: break-word !important;
  }
}

/* ── VERY SMALL SCREENS (< 400px) ── */
@media (max-width: 400px) {
  /* Service cards: 1 column on tiny screens */
  .alm-services-list {
    grid-template-columns: 1fr !important;
  }

  /* Hero title scales down more */
  .alm-hero-content h1 {
    font-size: 26px !important;
  }

  .alm-hero-content h2 {
    font-size: 22px !important;
  }

  /* Footer tight */
  .alm-footer {
    padding: 24px 16px 12px !important;
  }
}


/* =====================================================
   BLOG TEMPLATE REDESIGN - Single Post & Archive
   Added: 2026-06-21
   ===================================================== */

/* === SINGLE POST HERO HEADER === */
.single-post .wp-block-post-title,
.single-post .entry-title,
.single-post h1.wp-block-post-title {
  font-family: Georgia, 'Palatino Linotype', serif !important;
  font-size: clamp(1.8rem, 4vw, 2.8rem) !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  line-height: 1.2 !important;
  margin: 0 0 16px 0 !important;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3) !important;
  letter-spacing: -0.02em !important;
}

.single-post .wp-block-post-date time {
  color: #4ade80 !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

/* === SINGLE POST CONTENT === */
.single-post .entry-content,
.single-post .wp-block-post-content {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  font-size: 1.06rem !important;
  line-height: 1.85 !important;
  color: #2a2a2a !important;
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 48px 36px 64px !important;
}

.single-post .entry-content > p:first-of-type {
  font-size: 1.18rem !important;
  line-height: 1.75 !important;
  color: #1a3d28 !important;
  font-weight: 500 !important;
  padding-bottom: 28px !important;
  border-bottom: 2px solid #d6ede0 !important;
  margin-bottom: 36px !important;
}

.single-post .entry-content h2,
.single-post .wp-block-post-content h2 {
  font-family: Georgia, serif !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  color: #0d2818 !important;
  margin: 52px 0 16px 0 !important;
  padding-bottom: 14px !important;
  border-bottom: 3px solid #0d2818 !important;
  line-height: 1.3 !important;
}

.single-post .entry-content h3,
.single-post .wp-block-post-content h3 {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  font-size: 1.22rem !important;
  font-weight: 700 !important;
  color: #1a3d28 !important;
  margin: 40px 0 12px 0 !important;
  line-height: 1.35 !important;
}

.single-post .entry-content h4,
.single-post .wp-block-post-content h4 {
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  color: #2d7d46 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin: 32px 0 8px 0 !important;
}

.single-post .entry-content p,
.single-post .wp-block-post-content p {
  font-size: 1.06rem !important;
  line-height: 1.85 !important;
  color: #2a2a2a !important;
  margin-bottom: 1.5em !important;
}

.single-post .entry-content strong,
.single-post .wp-block-post-content strong {
  color: #0d2818 !important;
  font-weight: 700 !important;
}

.single-post .entry-content ul,
.single-post .wp-block-post-content ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin-bottom: 1.5em !important;
}

.single-post .entry-content ul li,
.single-post .wp-block-post-content ul li {
  position: relative !important;
  padding-left: 22px !important;
  margin-bottom: 8px !important;
  line-height: 1.7 !important;
}

.single-post .entry-content ul li::before,
.single-post .wp-block-post-content ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 11px !important;
  width: 8px !important;
  height: 8px !important;
  background: #2d7d46 !important;
  border-radius: 50% !important;
}

.single-post .entry-content ol,
.single-post .wp-block-post-content ol {
  padding-left: 24px !important;
  margin-bottom: 1.5em !important;
}

.single-post .entry-content blockquote,
.single-post .wp-block-post-content blockquote,
.single-post .wp-block-quote {
  border-left: 4px solid #2d7d46 !important;
  background: #f2faf5 !important;
  margin: 36px 0 !important;
  padding: 24px 28px !important;
  border-radius: 0 10px 10px 0 !important;
  font-style: italic !important;
  color: #1a3d28 !important;
  font-size: 1.08rem !important;
}

.single-post .entry-content table,
.single-post .wp-block-post-content table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 36px 0 !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.08) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}

.single-post .entry-content table th,
.single-post .wp-block-post-content table th {
  background: #0d2818 !important;
  color: #ffffff !important;
  padding: 14px 18px !important;
  text-align: left !important;
  font-weight: 700 !important;
  font-size: 0.82rem !important;
  text-transform: uppercase !important;
}

.single-post .entry-content table td,
.single-post .wp-block-post-content table td {
  padding: 12px 18px !important;
  border-bottom: 1px solid #e4ede7 !important;
  vertical-align: top !important;
}

.single-post .entry-content table tr:nth-child(even) td,
.single-post .wp-block-post-content table tr:nth-child(even) td {
  background: #f8fdf9 !important;
}

.single-post .entry-content a,
.single-post .wp-block-post-content a {
  color: #1a7a3c !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.single-post .entry-content img,
.single-post .wp-block-post-content img {
  border-radius: 10px !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.12) !important;
  max-width: 100% !important;
}

/* === BLOG ARCHIVE === */
.blog article,
.archive article {
  border: 1px solid #e4ede7 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  background: #ffffff !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05) !important;
}

.blog article:hover,
.archive article:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 36px rgba(13,40,24,0.12) !important;
}

.blog .entry-title a,
.archive .entry-title a {
  font-family: Georgia, serif !important;
  font-weight: 700 !important;
  color: #0d2818 !important;
  text-decoration: none !important;
}

.blog .entry-title a:hover,
.archive .entry-title a:hover {
  color: #2d7d46 !important;
}

.blog .entry-meta,
.archive .entry-meta {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #2d7d46 !important;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
  .single-post .entry-content,
  .single-post .wp-block-post-content {
    padding: 32px 20px 48px !important;
    font-size: 1rem !important;
  }
  .single-post .entry-content h2,
  .single-post .wp-block-post-content h2 {
    font-size: 1.35rem !important;
  }
}

/* === BLOG PAGE FIX - Font & Grid === */

/* 1. FONT FIX: Override Times New Roman / Georgia to match site font (Inter) */
.blog,
.blog body,
.blog .wp-site-blocks,
.blog .entry-content,
.blog .wp-block-query,
.blog .wp-block-post-template,
.blog .wp-block-post,
.blog .wp-block-post-title,
.blog .wp-block-post-title a,
.blog .wp-block-post-excerpt,
.blog .wp-block-post-excerpt p,
.blog .wp-block-post-date,
.blog .wp-block-post-terms,
.blog .wp-block-post-author,
.blog h1, .blog h2, .blog h3, .blog h4,
.blog p, .blog span, .blog a,
.blog .blog-header,
.blog .blog-hero h1,
.blog .blog-hero p {
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
}

/* Override the Georgia serif rule for blog entry titles */
.blog .entry-title a,
.archive .entry-title a,
.blog .wp-block-post-title a {
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
}

/* 2. GRID LAYOUT: Compact grid for 100 posts — 8 columns on desktop, scaling down */
.blog .wp-block-post-template.columns-4,
.blog .wp-block-post-template.columns-3,
.blog .wp-block-post-template.columns-2,
.blog .wp-block-post-template,
.blog .wp-block-query .wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(8, 1fr) !important;
  gap: 10px !important;
  padding: 0 !important;
}

/* 3. POST CARD: Compact card style */
.blog .wp-block-post {
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
  border: 1px solid #e8ede9 !important;
  transition: box-shadow 0.2s, transform 0.2s !important;
}

.blog .wp-block-post:hover {
  box-shadow: 0 4px 14px rgba(13,46,26,0.15) !important;
  transform: translateY(-2px) !important;
}

/* 4. THUMBNAIL: Small, fixed-height, cover crop */
.blog .wp-block-post-featured-image,
.blog .wp-block-post .post-thumbnail,
.blog .wp-block-post figure.wp-block-post-featured-image {
  width: 100% !important;
  height: 90px !important;
  overflow: hidden !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

.blog .wp-block-post-featured-image img,
.blog .wp-block-post .post-thumbnail img,
.blog .wp-block-post figure.wp-block-post-featured-image img {
  width: 100% !important;
  height: 90px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  max-width: none !important;
}

/* 5. POST TITLE: Compact, bold, site font */
.blog .wp-block-post-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  padding: 6px 7px 4px !important;
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  color: #0d2e1a !important;
}

.blog .wp-block-post-title a {
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  color: #0d2e1a !important;
  text-decoration: none !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.blog .wp-block-post-title a:hover {
  color: #1a5c2a !important;
}

/* 6. DATE / META: Tiny, muted */
.blog .wp-block-post-date,
.blog .wp-block-post-terms,
.blog .wp-block-post-author,
.blog .wp-block-post-date time {
  font-size: 9px !important;
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  color: #5a7a60 !important;
  padding: 0 7px 5px !important;
  margin: 0 !important;
  display: block !important;
}

/* 7. HIDE EXCERPT on compact grid view */
.blog .wp-block-post-excerpt {
  display: none !important;
}

/* 8. Blog header / hero fonts */
.blog .blog-header h1,
.blog .blog-hero h1,
.blog .wp-block-query-title,
.blog .page-title {
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
  font-weight: 800 !important;
}

/* 9. RESPONSIVE: scale columns down */
@media (max-width: 1200px) {
  .blog .wp-block-post-template.columns-4,
  .blog .wp-block-post-template {
    grid-template-columns: repeat(6, 1fr) !important;
  }
}

@media (max-width: 900px) {
  .blog .wp-block-post-template.columns-4,
  .blog .wp-block-post-template {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

@media (max-width: 600px) {
  .blog .wp-block-post-template.columns-4,
  .blog .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* === END BLOG PAGE FIX === */

/* ============================================================
 *    GLOBAL FONT CONSISTENCY FIX - Roboto Site-Wide
 *    Fixes Times New Roman on SA pages, service pages, etc.
 *    WCAG 2.0 AA compliant contrast
 *    ============================================================ */

/* 1. SET GLOBAL BODY FONT to Roboto */
html,
body,
.alm-page,
.alm-sa-page,
.entry-content,
.wp-site-blocks,
.wp-block-post-content {
	  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
}

/* 2. SERVICE AREA PAGES - Fix all .alm-sa-* elements */
.alm-sa-h1,
.alm-sa-h2,
.alm-sa-h3,
.alm-sa-cta-h2,
.alm-sa-intro,
.alm-sa-badge,
.alm-sa-chip,
.alm-sa-btn-primary,
.alm-sa-btn-secondary,
.alm-sa-eyebrow,
.alm-sa-about-text p,
.alm-sa-services-sub,
.alm-sa-sdesc,
.alm-sa-sname,
.alm-sa-snum,
.alm-sa-sarrow,
.alm-sa-step p,
.alm-sa-step strong,
.alm-sa-areas-text,
.alm-sa-cta p,
.alm-sa-nearby-label,
.alm-sa-area-chip {
	  font-family: 'Roboto', sans-serif !important;
}

/* 3. HOME PAGE & .alm-page classes */
.alm-page h1,
.alm-page h2,
.alm-page h3,
.alm-page h4,
.alm-page p,
.alm-page span,
.alm-page a,
.alm-page button {
	  font-family: 'Roboto', sans-serif !important;
}

/* 4. WCAG 2.0 CONTRAST FIXES - improve low-opacity text */
.alm-sa-stat-lbl { color: rgba(255,255,255,0.75) !important; }
.alm-sa-chip { color: rgba(255,255,255,0.85) !important; }
.alm-sa-sdesc { color: rgba(255,255,255,0.80) !important; }
.alm-sa-step p { color: rgba(255,255,255,0.85) !important; }
.alm-sa-areas-text { color: rgba(255,255,255,0.85) !important; }
.alm-sa-nearby-label { color: rgba(255,255,255,0.70) !important; }
.alm-sa-services-sub { color: rgba(255,255,255,0.85) !important; }
.alm-sa-intro { color: rgba(255,255,255,0.90) !important; }
.alm-sa-cta p { color: rgba(255,255,255,0.90) !important; }
.alm-sa-loc-card-county,
.alm-sa-loc-card-services,
.alm-sa-smaller-label { color: rgba(255,255,255,0.80) !important; }
body .alm-footer-col ul li a,
body .alm-footer-col h4 { color: rgba(255,255,255,0.90) !important; }
body .alm-footer-copy,
body .alm-footer-cert,
body .alm-footer-bottom p { color: rgba(255,255,255,0.80) !important; }
}
}
}

/* ============================================================
   ADDITIONAL FONT FIX - FAQ, Contact, Services, Privacy pages
   These pages use specific classes that override font-family
   ============================================================ */

/* FAQ page font fix */
.faq-pg,
.faq-pg h1,
.faq-pg h2,
.faq-pg h3,
.faq-pg h4,
.faq-pg p,
.faq-pg span,
.faq-pg a,
.faq-pg button,
.faq-hero,
.faq-hero h1,
.faq-section-h2,
.faq-body,
.faq-q,
.faq-a,
.faq-tabs-wrap,
.faq-tab-btn {
  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
}

/* Contact page - fix any remaining serif fonts */
.page-id-contact .entry-content h1,
.page-id-contact .entry-content h2,
.page-id-contact .entry-content p {
  font-family: 'Roboto', sans-serif !important;
}

/* Services overview page */
.page-id-services .entry-content h1,
.page-id-services .entry-content h2,
.page-id-services .entry-content p {
  font-family: 'Roboto', sans-serif !important;
}

/* Privacy Policy page */
.privacy-policy .entry-content,
.privacy-policy .entry-content h1,
.privacy-policy .entry-content h2,
.privacy-policy .entry-content h3,
.privacy-policy .entry-content p,
.privacy-policy .entry-content li {
  font-family: 'Roboto', sans-serif !important;
  color: rgba(255, 255, 255, 0.90) !important;
}

/* Override Georgia/Times from Elementor global kit on all pages */
body h1, body h2, body h3, body h4, body h5, body h6 {
  font-family: 'Roboto', sans-serif !important;
}

/* =====================================================
   WCAG 2.0 AA CONTRAST FIXES - Phase 2
   Applied 2026-06-22
   ===================================================== */

/* 
  FIX 1: .alm-sa-step-num - Process step numbers (01, 02, 03)
  Current: rgba(77, 222, 128, 0.25) on dark green = ~1.77:1 (FAIL)
  Fix: Increase opacity to 0.60 = still decorative but readable
  Actual ratio with 0.60 alpha on rgb(6,22,13) ≈ 3.5:1 (large text PASS at 40px)
*/
.alm-sa-step-num {
  color: rgba(77, 222, 128, 0.70) !important;
}

/*
  FIX 2: .alm-sa-btn-primary - "Request a Free Quote" primary button
  Current: rgb(255,255,255) on rgb(61,184,95) = 2.55:1 (FAIL)
  Fix: Use dark text #0a1f0e (near black-green) on same green background
  Dark text on rgb(61,184,95) = ~8.2:1 (PASS)
*/
.alm-sa-btn-primary {
  color: #0a1f0e !important;
}
.alm-sa-btn-primary:hover {
  color: #0a1f0e !important;
}

/*
  FIX 3: .alm-wa-num - Home page service list numbers (01-06)
  Current: rgba(111, 207, 138, 0.35) on rgb(5,10,5) = 2.15:1 (FAIL)
  Fix: Increase opacity to 0.65
*/
.alm-wa-num {
  color: rgba(111, 207, 138, 0.65) !important;
}

/*
  FIX 4: .alm-home-subsoil-btn - Home page "Ask About Subsoil Mulching" button
  Current: rgb(111,207,138) on rgba(46,92,46,0.8) = ~4.08:1 (just below 4.5 threshold)
  Fix: Use white text which on blended dark-green bg gives better ratio
  OR increase background opacity
*/
.alm-home-subsoil-btn {
  color: #ffffff !important;
  background: rgba(30, 70, 30, 0.90) !important;
  border: 1px solid rgba(111, 207, 138, 0.60) !important;
}

/* =====================================================
   MOBILE RESPONSIVENESS - Global Fixes
   ===================================================== */

/* Prevent horizontal overflow on all pages */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}

/* SA Pages - Mobile Responsive Fixes */
@media (max-width: 768px) {
  /* Hero section */
  .alm-sa-hero {
    padding: 60px 20px 50px !important;
    min-height: auto !important;
  }
  .alm-sa-h1 {
    font-size: clamp(1.9rem, 7vw, 3rem) !important;
    line-height: 1.15 !important;
  }
  .alm-sa-intro {
    font-size: clamp(0.95rem, 3.5vw, 1.1rem) !important;
    line-height: 1.6 !important;
  }
  .alm-sa-cta-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }
  .alm-sa-btn-primary,
  .alm-sa-btn-secondary {
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
    font-size: 1rem !important;
    padding: 14px 20px !important;
  }
  
  /* Stats row */
  .alm-sa-stats {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    padding: 30px 20px !important;
  }
  .alm-sa-stat {
    width: 100% !important;
  }
  
  /* Services grid - stack to single column */
  .alm-sa-services-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 20px !important;
  }
  
  /* Process steps - stack vertically */
  .alm-sa-steps {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    padding: 20px !important;
  }
  .alm-sa-step {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  
  /* About section */
  .alm-sa-about {
    padding: 40px 20px !important;
  }
  .alm-sa-about-inner {
    flex-direction: column !important;
    gap: 30px !important;
  }
  .alm-sa-about-text,
  .alm-sa-about-stats {
    width: 100% !important;
  }
  
  /* Nearby areas chips */
  .alm-sa-nearby-row {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .alm-sa-area-chip {
    font-size: 0.85rem !important;
    padding: 6px 12px !important;
  }
  
  /* CTA section */
  .alm-sa-cta {
    padding: 50px 20px !important;
    text-align: center !important;
  }
  .alm-sa-cta-h2 {
    font-size: clamp(1.6rem, 6vw, 2.5rem) !important;
  }
  .alm-sa-cta-btns {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .alm-sa-cta-btns .alm-sa-btn-primary,
  .alm-sa-cta-btns .alm-sa-btn-secondary {
    width: 100% !important;
    max-width: 340px !important;
  }
  
  /* Badge/chip at top */
  .alm-sa-badge {
    font-size: 0.75rem !important;
    padding: 6px 14px !important;
  }
  
  /* Section headers */
  .alm-sa-h2 {
    font-size: clamp(1.6rem, 6vw, 2.4rem) !important;
  }
}

/* Extra small phones (iPhone SE, Android small) */
@media (max-width: 390px) {
  .alm-sa-h1 {
    font-size: 1.8rem !important;
  }
  .alm-sa-h2 {
    font-size: 1.5rem !important;
  }
  .alm-sa-intro {
    font-size: 0.95rem !important;
  }
  .alm-sa-btn-primary,
  .alm-sa-btn-secondary {
    font-size: 0.95rem !important;
    padding: 13px 16px !important;
  }
}

/* =====================================================
   SERVICE PAGES - Mobile Responsive Fixes
   ===================================================== */

@media (max-width: 768px) {
  /* General page sections */
  .alm-page {
    padding: 20px !important;
  }
  
  /* Ensure images don't overflow */
  img {
    max-width: 100% !important;
    height: auto !important;
  }
  
  /* Tables - make scrollable on mobile */
  table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  
  /* Navigation - ensure proper stacking */
  .alm-page-hero {
    padding: 60px 20px 40px !important;
    text-align: left !important;
  }
  .alm-page-hero h1 {
    font-size: clamp(1.8rem, 7vw, 3rem) !important;
    line-height: 1.2 !important;
  }
  
  /* FAQ mobile */
  .faq-pg {
    padding: 20px !important;
  }
  .faq-question {
    font-size: 1rem !important;
    padding: 16px !important;
  }
  .faq-answer {
    padding: 16px !important;
    font-size: 0.95rem !important;
  }
}

/* =====================================================
   HOME PAGE - Mobile Responsive Fixes  
   ===================================================== */

@media (max-width: 768px) {
  /* Why Aspen section - service list */
  .alm-wa-rows {
    gap: 16px !important;
  }
  .alm-wa-row {
    flex-direction: column !important;
    gap: 8px !important;
  }
  
  /* Subsoil mulching section */
  .alm-home-subsoil {
    padding: 40px 20px !important;
    text-align: center !important;
  }
  
  /* Process steps on home */
  .alm-why-aspen {
    padding: 40px 20px !important;
  }
}

/* =====================================================
   FOOTER - Mobile Fixes
   ===================================================== */

@media (max-width: 768px) {
  /* Footer columns */
  .wp-block-columns.footer-cols {
    flex-direction: column !important;
    gap: 24px !important;
  }
  
  /* Footer text sizing */
  .wp-block-group footer p,
  footer p,
  footer li,
  footer a {
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
  }
}

/* =====================================================
   NAVIGATION - Mobile Fixes
   ===================================================== */

@media (max-width: 768px) {
  /* Ensure nav hamburger works */
  .wp-block-navigation__responsive-container-open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }
  
  /* Mobile menu items touch targets */
  .wp-block-navigation-item__content {
    padding: 12px 16px !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }
  
  /* Ticker bar mobile */
  .alm-ticker-wrap {
    font-size: 0.78rem !important;
    padding: 6px 0 !important;
  }
}

/* =====================================================
   TOUCH TARGET SIZES - WCAG 2.5.5
   ===================================================== */

/* All interactive elements should be at least 44x44px */
a.alm-sa-btn-primary,
a.alm-sa-btn-secondary,
.alm-sa-btn-primary,
.alm-sa-btn-secondary {
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Service card links */
.alm-sa-sarrow {
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* Chip/nearby area links */
.alm-sa-area-chip {
  min-height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
}


/* =====================================================
   ADDITIONAL CONTRAST FIXES - Phase 3 (2026-06-22)
   ===================================================== */

/* FIX: .faq-btn - white on medium green (same issue as .alm-sa-btn-primary) */
.faq-btn,
.faq-cta-btn {
  color: #0a1f0e !important;
}
.faq-btn:hover,
.faq-cta-btn:hover {
  color: #0a1f0e !important;
}

/* FIX: Sticky mobile CTA bar buttons */
.alm-sticky-cta-quote,
.alm-sticky-quote,
.alm-sticky-cta .btn-quote {
  color: #0a1f0e !important;
}

/* GLOBAL: Any element with green bg rgb(61,184,95) - ensure readable text */
/* Force dark text on all bright green backgrounds site-wide */
[style*="background: rgb(61, 184, 95)"],
[style*="background-color: rgb(61, 184, 95)"] {
  color: #0a1f0e !important;
}

/* =====================================================
   MOBILE FORM FIXES - Prevent iOS Zoom
   ===================================================== */
@media (max-width: 768px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="search"],
  input[type="url"],
  textarea,
  select {
    font-size: 16px !important;
  }
  
  /* WPForms specific */
  .wpforms-field input,
  .wpforms-field textarea,
  .wpforms-field select {
    font-size: 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* =====================================================
   ABOUT PAGE - Mobile Fixes
   ===================================================== */
@media (max-width: 768px) {
  /* Ensure Elementor columns stack on mobile */
  .elementor-section .elementor-container {
    flex-direction: column !important;
  }
  
  .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  /* About hero text sizing */
  .elementor-widget-container h1 {
    font-size: clamp(1.8rem, 7vw, 3rem) !important;
  }
}

/* =====================================================
   CONTACT PAGE - Mobile Fixes  
   ===================================================== */
@media (max-width: 768px) {
  /* Contact form full width */
  .wpforms-container,
  .wpforms-form {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}


/* =====================================================
   CONTACT PAGE - Contrast Fixes (2026-06-22)
   ===================================================== */

/* FIX: .h1-kicker "Request your" text - rgba(255,255,255,0.3) on black = 2.48:1 FAIL */
.h1-kicker {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* FIX: .alm-advanced-hint form helper text - rgb(102,102,102) on black = 3.66:1 FAIL */
.alm-advanced-hint {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* =====================================================
   MOBILE: Contact page layout
   ===================================================== */

@media (max-width: 768px) {
  /* Contact page grid stacks on mobile */
  .alm-contact-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    padding: 30px 20px !important;
  }
  
  .alm-contact-aside {
    display: none !important; /* Hide decorative aside on mobile for cleaner UX */
  }
  
  .alm-contact-form-wrap {
    padding: 0 !important;
  }
  
  /* Fix FREE QUOTE hero on contact page mobile */
  .page-id-14 .alm-page-hero,
  .page-id-14 .alm-contact-hero {
    padding: 40px 20px 30px !important;
    min-height: auto !important;
  }
  
  .page-id-14 .alm-page-hero h1,
  .page-id-14 .alm-contact-hero h1 {
    font-size: clamp(2rem, 10vw, 5rem) !important;
  }
}


/* =====================================================
   CONTACT PAGE - High-Specificity Kicker Fix
   2026-06-22
   ===================================================== */

/* The inline <style> uses ".page-id-14 .alm-page-hero h1 .h1-kicker" with !important
   We need to match that specificity exactly */
.page-id-14 .alm-page-hero h1 .h1-kicker {
  color: rgba(255, 255, 255, 0.80) !important;
  opacity: 1 !important;
}

/* More specific hint text */
.page-id-14 .alm-advanced-hint {
  color: rgba(255, 255, 255, 0.72) !important;
}


/* Contact page kicker fix high specificity */
.page-id-14 .alm-page-hero h1 .h1-kicker { color: rgba(255,255,255,0.80) !important; }
.page-id-14 .alm-advanced-hint { color: rgba(255,255,255,0.72) !important; }


/* Fix .alm-btn white on green (service pages) */
.alm-btn:not(.alm-btn-o) { color: #0a1f0e !important; }
.alm-btn:not(.alm-btn-o):hover { color: #0a1f0e !important; }
