/* CA Leads Form — Spartan Wall Repair */
/* Colors: #B6905F gold, #CEC8B2 sand, #FFFFFF, #1A1B1F dark */

.ca-lead-form{
  max-width:720px;
  width:100%;
  background:#FFFFFF;
  border:1px solid rgba(0,0,0,.05);
  border-radius:16px;
  padding:24px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
  font-family:"DM Sans","Work Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

.ca-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ca-field--full{grid-column:1 / -1;}
.ca-field label{position:absolute;left:-9999px;}

/* Inputs */
.ca-field input,
.ca-field textarea{
  width:100%;
  background:#FFFFFF;
  border:2px solid #CEC8B2;
  border-radius:12px;
  padding:14px 16px;
  font-size:16px;
  line-height:1.5;
  color:#1A1B1F;               /* entered text color */
  caret-color:#1A1B1F;
}

/* Placeholders — darker and readable */
.ca-field input::placeholder,
.ca-field textarea::placeholder{
  color:#323232;               /* strong dark placeholder */
  font-weight:500;
  opacity:1;
}

.ca-field input:focus,
.ca-field textarea:focus{
  outline:none;
  border-color:#B6905F;
  box-shadow:0 0 0 2px rgba(182,144,95,.25);
}

/* Honeypot (hidden for humans) */
.ca-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Button + status */
.ca-actions{
  margin-top:16px;
  display:flex;
  flex-direction:column;  
  align-items:stretch;
  gap:10px;
}

.ca-btn{
  width:100%;
  border:0;
  border-radius:999px;
  padding:16px 20px;
  font-weight:700;
  font-size:14px;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:#FFFFFF;
  background:#B6905F;
  cursor:pointer;
  transition:filter .2s, opacity .2s;
}
.ca-btn:hover{filter:brightness(.95);}
.ca-btn:disabled{opacity:.6;cursor:not-allowed}

/* loading state with spinner */
.ca-btn.is-loading{ position:relative; opacity:.9; pointer-events:none; }
.ca-btn.is-loading::after{
  content:"";
  position:absolute; right:20px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; border-radius:50%;
  border:2px solid #fff; border-top-color:transparent;
  animation:ca-spin .8s linear infinite;
}
@keyframes ca-spin{ to { transform:translateY(-50%) rotate(360deg); } }

/* status message under button */
.ca-status{
  display:block;
  min-height:18px;
  font-size:14px;
  line-height:1.4;
  color:#1A1B1F;
}
.ca-status.is-error{ color:#b00020; }
.ca-status.is-success{ color:#1A1B1F; }

/* Responsive */
@media (max-width:640px){
  .ca-grid{grid-template-columns:1fr;}
  .ca-lead-form{padding:20px;}
}
