:root {
  color-scheme: light;
  --forest: #114d35;
  --pine: #1f6b4b;
  --mist: #f3f6f4;
  --soil: #2f2b24;
  --accent: #c88b2a;
  --danger: #b42318;
  --success: #0f7b4a;
  --border: #d4ddd7;
  --shadow: 0 18px 45px rgba(12, 33, 22, 0.12);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "DM Sans", "Verdana", sans-serif;
  background: radial-gradient(circle at top, #f9fbfa, #edf2ee 45%, #e4ebe5 100%);
  color: var(--soil);
}

.estimate-page {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  padding: 48px 16px 72px;
}

.estimate-container {
  width: min(100%, 760px);
  background: #ffffff;
  border-radius: 18px;
  padding: 36px 32px 40px;
  box-shadow: var(--shadow);
  border: 1px solid rgba(17, 77, 53, 0.08);
}

.estimate-header h1 {
  margin: 0 0 6px;
  font-size: clamp(2rem, 3vw, 2.6rem);
  color: var(--forest);
  letter-spacing: -0.02em;
}

.estimate-subtitle {
  display: inline-block;
  font-size: 0.95rem;
  color: #4c5f55;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.form-status {
  margin: 18px 0 10px;
  padding: 12px 14px;
  border-radius: 10px;
  font-weight: 600;
  display: none;
}

.form-status.success {
  display: block;
  background: rgba(15, 123, 74, 0.12);
  color: var(--success);
  border: 1px solid rgba(15, 123, 74, 0.2);
}

.form-status.error {
  display: block;
  background: rgba(180, 35, 24, 0.08);
  color: var(--danger);
  border: 1px solid rgba(180, 35, 24, 0.2);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fieldset {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px 12px;
}

.fieldset legend {
  padding: 0 6px;
  font-weight: 600;
  color: var(--pine);
}

label {
  font-weight: 600;
  color: var(--pine);
}

.required {
  color: var(--accent);
  margin-left: 4px;
}

input,
select,
textarea,
button {
  font: inherit;
}

input,
select,
textarea {
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--soil);
  transition: border 0.2s ease, box-shadow 0.2s ease;
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(200, 139, 42, 0.2);
}

textarea {
  resize: vertical;
}

.radio-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.radio-group input {
  margin-right: 6px;
}

.full-width {
  grid-column: 1 / -1;
}

.address-section,
.upload-section {
  margin-top: 28px;
}

.address-section h2 {
  margin: 0 0 16px;
  font-size: 1.1rem;
  color: var(--forest);
}

.file-meta {
  font-size: 0.9rem;
  color: #56665d;
}

.checkbox-field {
  margin-top: 20px;
}

.checkbox-label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-weight: 600;
  color: #2b3b33;
}

.form-actions {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
}

button {
  background: linear-gradient(135deg, #1f6b4b, #14503a);
  color: #fff;
  border: none;
  padding: 12px 22px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(17, 77, 53, 0.3);
}

button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 20px rgba(17, 77, 53, 0.18);
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
  transform: none;
  box-shadow: none;
}

.field-error {
  min-height: 16px;
  font-size: 0.85rem;
  color: var(--danger);
}

input.error,
select.error,
textarea.error {
  border-color: var(--danger);
  box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.18);
}

@media (max-width: 720px) {
  .estimate-container {
    padding: 28px 20px 32px;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .form-actions {
    justify-content: center;
  }
}
/* Match the existing Nichols Tree Care website. */
body{background:#0c100c;color:#f3f5ef;font-family:'Work Sans',system-ui,sans-serif;letter-spacing:0}.estimate-nav{max-width:1000px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:22px 24px;gap:24px}.estimate-nav a{color:#ecf1e6;text-decoration:none;display:flex;gap:12px;align-items:center;font-weight:600;font-size:13px}.estimate-nav img{height:44px;width:40px;object-fit:contain}.estimate-container{background:#162018;border:1px solid #34432f;color:#f3f5ef;box-shadow:none}.estimate-header h1{font-family:'Work Sans',system-ui,sans-serif;letter-spacing:-1px;line-height:1.2;font-size:clamp(28px,5vw,40px)}.estimate-subtitle,.file-meta,.photo-help{color:#b9c4b5;line-height:1.6;font-size:13px}label,legend{color:#e7eee1}input,select,textarea{background:#101710!important;color:#f3f5ef!important;border-color:#58644f!important;font-family:inherit}input[type=checkbox],input[type=radio]{accent-color:#bce67e}.address-section h2{color:#e8f0df;font-family:inherit;font-size:20px}.required{color:#c4e993}.form-actions button{background:#c8ff6a;color:#18260c;border:0;font-family:inherit;font-weight:700}.form-actions button:hover{background:#b8ee59}.form-status.success{background:#243c27;border-color:#6f965b;color:#e0f8ce}.form-status.error,.field-error{color:#ffb8a4}.site-footer-credit{color:#a9b6a2}.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.hero-actions{flex-wrap:wrap;justify-content:center}
.estimate-header h1,.fieldset legend{color:#e8f2dc}.estimate-subtitle{display:block;text-transform:none;letter-spacing:0;margin:12px 0 24px}.estimate-container>.field{margin-bottom:20px}.fieldset{border-color:#58644f}
