/* =====================================================================
   22 · CONTACT
   ===================================================================== */
.contact__grid{
  display:grid;gap:clamp(2.5rem,5vw,4.5rem);
}
@media (min-width:960px){ .contact__grid{grid-template-columns:.85fr 1.15fr} }

.form{display:grid;gap:1.1rem}
.form__row{display:grid;gap:1.1rem}
@media (min-width:640px){ .form__row--2{grid-template-columns:1fr 1fr} }

.field{position:relative;display:flex;flex-direction:column;gap:.5rem}
.field label{
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-3);font-weight:500;
  transition:color .35s;
}
.field:focus-within label{color:var(--accent)}
.field input,.field textarea{
  width:100%;
  padding:.95rem 0 .95rem;
  background:transparent;
  border:0;border-bottom:1px solid var(--line-2);
  border-radius:0;
  font-size:.98rem;font-weight:350;
  color:var(--text);
  outline:none;
  transition:border-color .4s var(--ease), padding .4s var(--ease);
  resize:vertical;
}
.field textarea{min-height:130px;line-height:1.65}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3);opacity:.65}
.field input:focus,.field textarea:focus{border-bottom-color:var(--text);padding-left:.25rem}
.field.has-error input,.field.has-error textarea{border-bottom-color:#E5484D}
.field__err{
  font-size:.72rem;color:#E5484D;letter-spacing:.02em;
  opacity:0;transform:translateY(-4px);
  transition:.35s var(--ease);
  min-height:0;
}
.field.has-error .field__err{opacity:1;transform:translateY(0)}

.form__note{
  font-size:.76rem;color:var(--text-3);line-height:1.6;
}
.form__status{
  padding:.95rem 1.15rem;border-radius:12px;
  font-size:.87rem;
  display:none;
  border:1px solid transparent;
}
.form__status.is-visible{display:block}
.form__status.is-ok{background:rgba(57,217,138,.1);border-color:rgba(57,217,138,.35);color:#39D98A}
.form__status.is-err{background:rgba(229,72,77,.1);border-color:rgba(229,72,77,.35);color:#E5484D}

/* Contact info list */
.cinfo{display:grid;gap:1.6rem}
.cinfo__block{display:grid;gap:.35rem}
.cinfo__label{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-3);font-weight:500;
}
.cinfo__value{
  font-size:1.02rem;font-weight:350;color:var(--text);
}
.cinfo__value a{position:relative}
.cinfo__value a::after{
  content:'';position:absolute;left:0;bottom:-2px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease);
}
.cinfo__value a:hover::after{transform:scaleX(1)}
.avail{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.55rem .95rem;border-radius:99px;
  border:1px solid var(--line);
  font-size:.8rem;color:var(--text-2);
  width:fit-content;
}

/* Map */
.map{
  margin-top:clamp(3rem,6vw,5rem);
  position:relative;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  height:clamp(300px,44vw,460px);
  background:var(--surface-2);
}
.map iframe{
  width:100%;height:100%;border:0;
  filter:grayscale(.4) contrast(1.05);
  transition:filter .6s var(--ease);
}
[data-theme="dark"] .map iframe{
  filter:invert(.92) hue-rotate(180deg) saturate(.5) brightness(.9) contrast(1.05);
}
.map__badge{
  position:absolute;left:1.2rem;bottom:1.2rem;
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.65rem 1rem;border-radius:99px;
  background:var(--nav-bg);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid var(--line-2);
  font-size:.78rem;font-weight:450;
  pointer-events:none;
}
.map__badge i{color:var(--accent);font-size:.8rem}
