/* Contact Page */
.quick-contact {
  background-color: var(--forest);
  padding: var(--space-8) 0;
  border-bottom: 1px solid rgba(247,242,233,.08);
}
.quick-contact__grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-4);
}
.quick-contact__item {
  display: flex; gap: var(--space-3); align-items: flex-start;
  text-decoration: none; color: var(--ivory);
  padding: var(--space-4); border-radius: 2px;
  transition: background-color var(--duration-fast);
}
a.quick-contact__item:hover { background: rgba(247,242,233,.06); }
.quick-contact__item svg { color: var(--gold); flex-shrink: 0; margin-top: 3px; }
.quick-contact__item strong { display: block; font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; font-family: var(--font-body); font-weight: 600; }
.quick-contact__item p { font-size: var(--text-sm); color: rgba(247,242,233,.75); line-height: 1.6; }
.quick-contact__item a { color: rgba(247,242,233,.75); transition: color var(--duration-fast); }
.quick-contact__item a:hover { color: var(--gold); }
@media(max-width:900px){ .quick-contact__grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .quick-contact__grid{ grid-template-columns:1fr; } }

.contact-main__grid {
  display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-14);
}
.contact-form-wrap h2 { margin-bottom: 0; }

/* Form styles */
.contact-form { display: flex; flex-direction: column; gap: var(--space-3); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.form-group { display: flex; flex-direction: column; gap: .5rem; }
.form-group label {
  font-family: var(--font-body); font-size: var(--text-sm);
  font-weight: 500; color: var(--walnut);
}
.form-group input,
.form-group select,
.form-group textarea {
  font-family: var(--font-body); font-size: var(--text-base);
  padding: .9rem 1.1rem; border: 1.5px solid var(--stone-mid);
  border-radius: 2px; background: var(--white); color: var(--walnut);
  transition: border-color var(--duration-fast), box-shadow var(--duration-fast);
  outline: none; min-height: 52px; width: 100%;
}
.form-group input::placeholder,
.form-group textarea::placeholder { color: var(--stone-mid); }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(184,137,59,.12);
}
.form-group input:invalid:not(:placeholder-shown),
.form-group textarea:invalid:not(:placeholder-shown) { border-color: #C0392B; }
.form-group textarea { min-height: 140px; resize: vertical; }
.form-group select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6259' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.form-submit { align-self: flex-start; min-width: 160px; }
.form-submit[hidden] { display: none; }

/* field labels: req / optional */
.form-group label .req { color: #C0392B; font-weight: 600; }
.form-group label .optional { font-size: 0.8em; font-weight: 400; color: #999; }

/* note below fields */
.form-note { font-size: 0.78rem; color: #999; margin-top: -.5rem; }

/* validation error state */
.form-group input.input-error,
.form-group textarea.input-error {
  border-color: #C0392B;
  box-shadow: 0 0 0 3px rgba(192,57,43,.1);
}

/* success / error banners */
.form-success,
.form-error {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: var(--space-3) var(--space-4);
  border-radius: 2px; font-size: var(--text-sm);
}
.form-success[hidden],
.form-error[hidden] { display: none; }

.form-success {
  background: rgba(94,126,94,.1); border: 1px solid var(--sage); color: var(--sage);
}
.form-success svg { color: var(--sage); flex-shrink: 0; margin-top: 2px; }
.form-success strong { display: block; margin-bottom: 2px; }
.form-success p { margin: 0; opacity: .85; }

.form-error {
  background: rgba(192,57,43,.07); border: 1px solid rgba(192,57,43,.4); color: #C0392B;
}
.form-error svg { flex-shrink: 0; margin-top: 2px; }
.form-error strong { display: block; margin-bottom: 2px; }
.form-error p { margin: 0; opacity: .85; }
.form-error a { color: #C0392B; text-decoration: underline; }

@media(max-width:600px){ .form-row{ grid-template-columns:1fr; } .form-submit{ align-self: stretch; } }

/* Map */
.contact-map { border-radius: 2px; overflow: hidden; border: 1px solid var(--stone); }
.contact-map iframe { display: block; }
.contact-info-block { margin-top: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.contact-info-block h3 { font-size: var(--text-xl); margin-bottom: var(--space-3); }
.contact-info-block__item { display: flex; gap: var(--space-3); align-items: flex-start; }
.contact-info-block__item svg { color: var(--gold); flex-shrink: 0; margin-top: 3px; }
.contact-info-block__item strong { display: block; font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; font-family: var(--font-body); font-weight: 600; }
.contact-info-block__item p { font-size: var(--text-sm); color: #6B6259; line-height: 1.7; }
.contact-info-block__item a { color: #6B6259; transition: color var(--duration-fast); }
.contact-info-block__item a:hover { color: var(--gold); }

@media(max-width:900px){
  .contact-main__grid { grid-template-columns: 1fr; }
  .contact-map-wrap { order: -1; }
}
