/* ============================================
   CONTACT LAYOUT
   ============================================ */
.contact-grid{
  display:grid; grid-template-columns:1fr 1.15fr; gap:var(--sp-5); align-items:flex-start;
}
@media(max-width:980px){ .contact-grid{ grid-template-columns:1fr; } }

.info-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-l);
  padding:var(--sp-3) var(--sp-3); display:flex; gap:1rem; align-items:flex-start;
  margin-bottom:1rem;
  transition:box-shadow var(--dur-1), transform var(--dur-1);
}
.info-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.info-card .ico{
  width:48px; height:48px; border-radius:14px; flex-shrink:0;
  background:var(--blue-100); color:var(--blue-700);
  display:flex; align-items:center; justify-content:center;
}
.info-card h4{ font-size:.98rem; margin-bottom:.3rem; }
.info-card p{ font-size:.88rem; color:var(--ink-soft); }
.info-card a{ color:var(--blue-700); font-weight:600; }

/* ---- Form ---- */
.form-card{
  background:#fff; border-radius:var(--radius-l); border:1px solid var(--line);
  padding:var(--sp-4); box-shadow:var(--shadow-md); position:relative; overflow:hidden;
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:1.1rem; position:relative; }
.field label{ display:block; font-size:.82rem; font-weight:700; margin-bottom:.45rem; color:var(--blue-900); }
.field input, .field textarea, .field select{
  width:100%; padding:13px 16px; border-radius:var(--radius-s);
  border:1.5px solid var(--line); background:var(--soft-white);
  transition:border-color var(--dur-1), box-shadow var(--dur-1), background var(--dur-1);
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none; border-color:var(--blue-500); background:#fff;
  box-shadow:0 0 0 4px var(--blue-100);
}
.field textarea{ resize:vertical; min-height:130px; }
.form-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:1rem; }
.form-note{ font-size:.78rem; color:var(--ink-soft); }
.form-success{
  display:none; align-items:center; gap:.8rem; background:var(--blue-100); color:var(--blue-800);
  padding:14px 18px; border-radius:var(--radius-s); margin-top:1rem; font-size:.88rem; font-weight:600;
}
.form-success.show{ display:flex; }

/* ---- Map ---- */
.map-wrap{
  margin-top:var(--sp-5); border-radius:var(--radius-l); overflow:hidden;
  box-shadow:var(--shadow-md); border:1px solid var(--line);
}
.map-wrap iframe{ width:100%; height:420px; border:0; display:block; filter:saturate(.9); }

/* ---- Locations ---- */
.loc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-3); margin-top:var(--sp-4); }
@media(max-width:880px){ .loc-grid{ grid-template-columns:1fr; } }
.loc-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-l); padding:var(--sp-3); }
.loc-card .tag{ margin-bottom:.9rem; }
.loc-card h4{ font-size:1.05rem; margin-bottom:.5rem; }
.loc-card p{ font-size:.88rem; color:var(--ink-soft); }

/* ---- FAQ ---- */
.faq-list{ max-width:840px; margin-inline:auto; margin-top:var(--sp-4); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; text-align:start;
  padding:1.4rem 0; font-family:var(--font-display); font-size:1.05rem; color:var(--blue-900);
}
.faq-q .plus{
  width:32px; height:32px; border-radius:50%; border:1.5px solid var(--line); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; transition:transform var(--dur-1), background var(--dur-1);
  margin-inline-start:1rem;
}
.faq-item[open] .faq-q .plus{ transform:rotate(45deg); background:var(--blue-700); color:#fff; border-color:var(--blue-700); }
.faq-a{ padding-bottom:1.4rem; color:var(--ink-soft); font-size:.92rem; max-width:70ch; }
.faq-item summary{ list-style:none; cursor:pointer; }
.faq-item summary::-webkit-details-marker{ display:none; }
