
/* styles.css — Radius Marketing site */
:root{--bg:#f8fafc;--surface:#fff;--ink:#0f172a;--text:#1f2937;--muted:#6b7280;--brand:#0b5bd3;--accent:#f97316;--line:#e5e7eb;--shadow:0 6px 24px rgba(2,8,23,.06);--radius:16px}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.container{max-width:1180px;margin:0 auto;padding:28px}
h1,h2,h3,h4{color:var(--ink);margin-top:0}
.sub{color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border-radius:999px;background:linear-gradient(180deg,var(--brand),#0a4db2);color:#fff;font-weight:700;text-decoration:none;box-shadow:var(--shadow);border:1px solid rgba(2,8,23,.05);transition:background .2s}
.btn:hover{background:linear-gradient(180deg,#0c63e4,#0946a1)}
.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn.secondary:hover{background:#f8fafc}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#f1f5f9;border:1px solid var(--line)}
.divider{height:1px;background:var(--line);margin:24px 0}
.grid{display:grid;gap:22px}
.hero{padding:64px 0 42px}
.hero h1{font-size:clamp(32px,5vw,54px);line-height:1.05}
.section{padding:48px 0;border-top:1px solid var(--line)}
.center{text-align:center}
.cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kpi{padding:18px;border-radius:14px;border:1px dashed var(--line);background:#fff}
.kpi b{font-size:28px;color:var(--ink)}
.programs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.program{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.program h4{margin:.2rem 0 .6rem;color:var(--ink)}
.program h4 a,.program h4 a:visited{color:var(--ink);text-decoration:none}
.program h4 a:hover{color:var(--brand);text-decoration:underline}
.program p{margin:.2rem 0 0}
.list{margin:0;padding-left:18px}
footer{padding:26px 0;color:var(--muted);border-top:1px solid var(--line)}
.cols-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;background:#fff}
/* ==== Form layout & controls ==== */

/* 2-column responsive grid for the form */
.cols-2 { display:grid; gap:22px; grid-template-columns: repeat(2, minmax(260px, 1fr)); }
@media (max-width: 900px) { .cols-2 { grid-template-columns: 1fr; } }

/* Labels */
label {
  display:block;
  font-weight:600;
  color:var(--ink);
  margin-bottom:6px;
}

/* Inputs & textareas */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font:inherit;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}

/* Placeholder color */
input::placeholder,
textarea::placeholder { color:#9aa3af; }

/* Focus state */
input:focus,
textarea:focus {
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(59,130,246,.15);
}

/* Make big fields span both columns when you set style="grid-column:1 / -1" in HTML */
.cols-2 > [style*="grid-column:1 / -1"] { grid-column: 1 / -1; }

/* Button row alignment */
#quote .cta { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }

/* Optional: make the panel a touch roomier on large screens */
#quote .panel { padding:28px; }

/* Form validation styles */
.form-group { position: relative; }
.form-group input.error,
.form-group textarea.error { border-color: #dc3545 !important; }
.field-error {
  display: block;
  color: #dc3545;
  font-size: 0.875em;
  margin-top: 4px;
}
.error-message {
  color: #721c24;
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  padding: 12px;
  border-radius: 4px;
  margin-bottom: 16px;
}
input:focus, textarea:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}
input.error:focus, textarea.error:focus {
  outline-color: #dc3545;
}
