:root{
  --ct-bg:#f6f7f9;
  --ct-card:#ffffff;
  --ct-border:#e5e7eb;
  --ct-text:#111827;
  --ct-muted:#6b7280;
  --ct-accent:#127b12;
  --ct-shadow:0 10px 30px rgba(0,0,0,.08);
  --ct-radius:16px;
  --ct-radius-sm:12px;
}

*,:before,:after{box-sizing:border-box}

.contact-section{background:var(--ct-bg); padding:32px 0 64px}

/* alerts */
.rate-limit-message{
  background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;
  padding:20px;border-radius:var(--ct-radius);text-align:center;margin-bottom:20px;
}
.success-message{
  background:#d4edda;border:1px solid #c3e6cb;color:#155724;
  padding:20px;border-radius:var(--ct-radius);text-align:center;margin-bottom:20px;
}

/* contact info card */
.contact-info{
  max-width:1100px;margin:14px auto 26px;padding:18px 22px 18px 20px;
  background:linear-gradient(180deg,#f4fbf5 0%,#fff 100%);
  border:1px solid var(--ct-border);border-radius:var(--ct-radius);
  box-shadow:var(--ct-shadow);
  display:flex;align-items:flex-start;gap:14px;position:relative;
  color:var(--ct-text);font-size:1.05rem;text-align:left;
}
.contact-info::before{
  content:"";position:absolute;inset:0 auto 0 0;width:6px;
  background:var(--ct-accent);border-radius:var(--ct-radius) 0 0 var(--ct-radius);
}
.contact-info__icon{
  flex:0 0 auto;width:36px;height:36px;border-radius:9999px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(18,123,18,.10);color:var(--ct-accent);margin-left:6px;
}
.contact-info p{margin:0;line-height:1.55}
.contact-info a{color:var(--ct-accent);font-weight:700;text-decoration:none;border-bottom:1px dashed rgba(18,123,18,.35)}
.contact-info a:hover{border-bottom-color:transparent}

/* form */
.contact-container{max-width:1100px;margin:0 auto;padding:0 18px}
.contact-card{
  background:var(--ct-card);border:1px solid var(--ct-border);
  box-shadow:var(--ct-shadow);border-radius:var(--ct-radius);padding:32px;
}
.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:32px;
  row-gap:26px;
}
.form-group{display:flex;flex-direction:column;gap:10px;min-width:0}
.form-group.full-width{grid-column:1 / -1}
.form-group label{font-size:.95rem;color:var(--ct-muted);font-weight:600;letter-spacing:.2px}
.input-base{
  width:100%;min-height:52px;border:1px solid var(--ct-border);
  border-radius:var(--ct-radius-sm);padding:14px 14px;font-size:1rem;
  background:#fff;color:var(--ct-text);
  transition:box-shadow .15s ease,border-color .15s ease;
}
.input-base:focus{outline:none;border-color:var(--ct-accent);box-shadow:0 0 0 4px rgba(18,123,18,.12)}
select.input-base{appearance:none}
textarea.input-base{min-height:200px;resize:vertical}

.contact-button-primary{
  width:100%;appearance:none;border:none;border-radius:var(--ct-radius-sm);
  padding:14px 18px;background:var(--ct-accent);color:#fff;font-weight:700;
  cursor:pointer;box-shadow:0 6px 16px rgba(18,123,18,.22);
  transition:transform .05s ease,box-shadow .15s ease,opacity .15s;
}
.contact-button-primary:hover{box-shadow:0 10px 24px rgba(18,123,18,.28)}
.contact-button-primary:active{transform:translateY(1px)}

@media (max-width:980px){
  .contact-info{margin:12px 18px 24px}
  .contact-grid{grid-template-columns:1fr;column-gap:0;row-gap:18px}
}
