.contact-hero {
  background: #F4FAF8;
  padding: 4rem 2rem 3rem;
  border-bottom: 1px solid #C8E6D5;
  text-align: center;
}
.contact-hero-inner { max-width: 700px; margin: 0 auto; }
.contact-hero-title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; color: #0A2E22; letter-spacing: -0.03em; margin-bottom: 0.5rem; }
.contact-hero-sub { font-size: 1.05rem; color: #4A6655; }

.contact-main { max-width: 1100px; margin: 0 auto; padding: 2.5rem 2rem 5rem; }

.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: start; }

.contact-info { display: flex; flex-direction: column; gap: 1.5rem; }

.info-block { background: #fff; border: 1px solid #C8E6D5; border-radius: 12px; padding: 1.5rem; }

.info-block-title { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4A6655; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid #E8F5EE; display: block; }

.info-row { display: flex; flex-direction: row; align-items: center; gap: 0.875rem; padding: 0.75rem 0; border-bottom: 1px solid #F4FAF8; }
.info-row:last-child { border-bottom: none; padding-bottom: 0; }

.info-icon { width: 36px; height: 36px; min-width: 36px; max-width: 36px; background: #E8F5EE; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.info-content { display: flex; flex-direction: column; gap: 0.1rem; flex: 1; }

.info-label { font-size: 0.68rem; font-weight: 600; color: #4A6655; text-transform: uppercase; letter-spacing: 0.06em; }

.info-value { font-size: 0.875rem; color: #0A2E22; font-weight: 500; line-height: 1.4; }

.info-link { color: #0D7A45; text-decoration: none; font-size: 0.875rem; font-weight: 500; }
.info-link:hover { text-decoration: underline; }

.map-wrap { border-radius: 12px; overflow: hidden; border: 1px solid #C8E6D5; }

.contact-form-wrap { background: #fff; border: 1px solid #C8E6D5; border-radius: 12px; padding: 1.75rem; position: sticky; top: calc(var(--nav-height, 64px) + 1.5rem); }

.form-section-title { font-size: 1.25rem; font-weight: 700; color: #0A2E22; margin-bottom: 0.4rem; }
.form-section-sub { font-size: 0.875rem; color: #4A6655; margin-bottom: 1.75rem; }

.contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form .form-field { margin-bottom: 1rem; }
.contact-form label { display: block; font-size: 0.8rem; font-weight: 600; color: #0A2E22; margin-bottom: 0.4rem; }
.required { color: #0D7A45; }
.contact-form input,
.contact-form select,
.contact-form textarea { width: 100%; padding: 0.7rem 0.875rem; border: 1.5px solid #C8E6D5; border-radius: 6px; font-family: var(--font); font-size: 0.9rem; color: #0A2E22; background: #fff; outline: none; transition: border-color 0.2s, box-shadow 0.2s; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus { border-color: #0D7A45; box-shadow: 0 0 0 3px rgba(13,122,69,0.08); }
.contact-form input::placeholder,
.contact-form textarea::placeholder { color: rgba(10,46,34,0.3); }

@media (max-width: 860px) {
  .contact-grid { grid-template-columns: 1fr; gap: 2rem; }
  .contact-form .form-row { grid-template-columns: 1fr; }
  .contact-form-wrap { position: static; }
}
