/*
Theme Name: No Stress Turf
Theme URI: https://nostressturf.com
Author: No Stress Turf
Description: A lightweight native WordPress block theme for No Stress Turf. No page builder required.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: no-stress-turf
*/

:root {
  --nst-green: #1d8f3a;
  --nst-green-dark: #0f5f2b;
  --nst-lime: #80c342;
  --nst-ink: #101815;
  --nst-muted: #59645f;
  --nst-sand: #f5f6f1;
  --nst-white: #ffffff;
  --nst-border: #dfe5df;
  --nst-shadow: 0 16px 40px rgba(16, 24, 21, .10);
  --nst-radius: 18px;
}

html { scroll-behavior: smooth; }
body { margin: 0; }
a { text-underline-offset: 3px; }

.nst-topbar { font-size: .92rem; }
.nst-site-header { position: sticky; top: 0; z-index: 100; backdrop-filter: blur(12px); background: rgba(255,255,255,.94); border-bottom: 1px solid var(--nst-border); }
.nst-site-logo img { max-height: 74px; width: auto; }
.nst-header-actions { white-space: nowrap; }

.nst-hero {
  min-height: 680px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(7,20,13,.89) 0%, rgba(7,20,13,.70) 50%, rgba(7,20,13,.18) 100%),
    radial-gradient(circle at 75% 25%, rgba(128,195,66,.45), transparent 35%),
    linear-gradient(135deg, #153a26, #4f8f51);
  color: white;
}
.nst-hero .wp-block-heading { max-width: 800px; }
.nst-eyebrow { letter-spacing: .12em; text-transform: uppercase; font-weight: 700; font-size: .82rem; }
.nst-hero-card { background: rgba(255,255,255,.94); color: var(--nst-ink); border-radius: var(--nst-radius); box-shadow: var(--nst-shadow); }
.nst-glass { background: rgba(255,255,255,.86); border: 1px solid rgba(255,255,255,.55); backdrop-filter: blur(14px); }

.nst-section { padding-top: clamp(58px, 8vw, 105px); padding-bottom: clamp(58px, 8vw, 105px); }
.nst-section-tight { padding-top: 48px; padding-bottom: 48px; }
.nst-card { height: 100%; border: 1px solid var(--nst-border); border-radius: var(--nst-radius); padding: 28px; background: var(--nst-white); box-shadow: 0 8px 24px rgba(16,24,21,.06); }
.nst-card:hover { transform: translateY(-3px); transition: .2s ease; box-shadow: var(--nst-shadow); }
.nst-icon { font-size: 2rem; line-height: 1; }
.nst-checklist { list-style: none; padding-left: 0; }
.nst-checklist li { margin: .55rem 0; padding-left: 1.6rem; position: relative; }
.nst-checklist li::before { content: '✓'; color: var(--nst-green); font-weight: 800; position: absolute; left: 0; }

.nst-estimator-shell { border-radius: 24px; box-shadow: var(--nst-shadow); overflow: hidden; border: 1px solid var(--nst-border); }
.nst-estimator-intro { background: linear-gradient(145deg, var(--nst-green-dark), var(--nst-green)); color: white; }
.nst-estimator-form label { font-weight: 700; display: block; margin-bottom: 6px; }
.nst-estimator-form input, .nst-estimator-form select, .nst-estimator-form textarea,
.nst-lead-form input, .nst-lead-form select, .nst-lead-form textarea {
  width: 100%; box-sizing: border-box; border: 1px solid #cdd6cf; border-radius: 10px; padding: 12px 13px; font: inherit; background: white;
}
.nst-estimator-grid, .nst-lead-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.nst-field-full { grid-column: 1 / -1; }
.nst-estimator-result { margin-top: 22px; padding: 22px; border-radius: 14px; background: #edf8ef; border: 1px solid #b8dfbf; }
.nst-estimator-result strong { font-size: clamp(1.6rem, 3vw, 2.5rem); color: var(--nst-green-dark); display: block; }
.nst-smallprint { font-size: .84rem; color: var(--nst-muted); }

.nst-page-hero { background: linear-gradient(135deg, #0f2d1c, #266c3c); color: white; padding-top: 90px; padding-bottom: 90px; }
.nst-callout { border-left: 5px solid var(--nst-lime); background: #f2f8ee; padding: 26px; border-radius: 0 14px 14px 0; }
.nst-placeholder { min-height: 300px; border-radius: var(--nst-radius); background: linear-gradient(145deg, #dcefd9, #7fb56e); display:flex; align-items:center; justify-content:center; color:#143c24; font-weight:700; text-align:center; padding: 30px; }
.nst-gallery-grid figure { border-radius: 14px; overflow: hidden; }
.nst-footer { background: #0d1712; color: #dbe7df; }
.nst-footer a { color: white; }
.nst-sticky-mobile { display:none; }

@media (max-width: 900px) {
  .nst-hero { min-height: 610px; background: linear-gradient(180deg, rgba(7,20,13,.88), rgba(7,20,13,.72)), linear-gradient(135deg,#153a26,#4f8f51); }
  .nst-estimator-grid, .nst-lead-grid { grid-template-columns: 1fr; }
  .nst-field-full { grid-column: auto; }
}

@media (max-width: 700px) {
  .nst-header-actions { display:none; }
  .nst-site-logo img { max-height: 58px; }
  body { padding-bottom: 68px; }
  .nst-sticky-mobile { position: fixed; left:0; right:0; bottom:0; z-index:999; display:grid; grid-template-columns:1fr 1fr; box-shadow: 0 -8px 25px rgba(0,0,0,.18); }
  .nst-sticky-mobile a { padding: 15px 10px; text-align:center; text-decoration:none; font-weight:800; }
  .nst-sticky-mobile a:first-child { background:#101815; color:#fff; }
  .nst-sticky-mobile a:last-child { background:var(--nst-lime); color:#10210f; }
}
