.contact-page #info .contact-layout { display:flex; flex-direction:column; gap:26px; }
.contact-page #info .contact-card-mui { padding:26px 30px; }
.contact-page #info .contact-summary {
  display: grid;
  gap: 22px;
  padding: 28px 30px;
}
.contact-summary-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.contact-summary-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}
.contact-summary-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border-radius: 12px;
  background: #eef1ff;
  color: #0123b4;
  font-size: 24px;
}
.contact-summary h2 {
  color: #0123b4;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
  margin: 0 0 5px;
}
.contact-summary .contact-company {
  color: #1e293b;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.45;
  margin: 0 0 4px;
}
.contact-summary .contact-representative {
  color: #475569;
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
}
.contact-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding-top: 20px;
  border-top: 1px solid #e2e8f0;
  font-size: 16px;
  line-height: 1.65;
  color: #475569;
}
.contact-detail {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.contact-detail > i {
  flex: 0 0 20px;
  color: #0123b4;
  font-size: 18px;
  text-align: center;
}
.contact-detail > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.contact-details b {
  color: #1e293b;
}
.contact-details a {
  color: #0123b4;
  font-weight: 700;
}
.contact-summary .btn {
  flex-shrink: 0;
  background: #0123b4;
  color: #fff;
  border: 0;
}
/* 표시된 오피스가 2개이면 2열, 서울 카드의 주석을 풀면 3열로 배치 */
.contact-page #info .contact-office-grid {
  --office-columns: 2;
  display: grid !important;
  grid-template-columns: repeat(var(--office-columns), minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100%;
}
.contact-page #info .contact-office-grid:has(> .contact-office:nth-child(3)) {
  --office-columns: 3;
}
.contact-office { min-width:0; background:#fff; border:1px solid #CBD5E1; border-radius:var(--radius-box, 16px); overflow:hidden; display:flex; flex-direction:column; }
.contact-office-head { padding:23px 24px 20px; min-height:146px; }
.contact-office-head h3 { font-size:20px; color:#1E293B; margin:0 0 12px; display:flex; align-items:center; gap:9px; }
.contact-office-head h3 i { font-size:16px; color:#0123B4; }
.contact-office address { color:#475569; font-size:13px; font-style:normal; line-height:1.8; margin:0; word-break:keep-all; overflow-wrap:anywhere; }
.contact-office-map { width:100%; height:250px; min-height:250px; background:#F1F5F9; border-top:1px solid #E2E8F0; }
.contact-map-status { color:#64748B; font-size:13px; line-height:1.7; padding:24px; margin:0; }
.contact-map-link { display:flex; align-items:center; justify-content:center; gap:7px; color:#0123B4; font-weight:700; font-size:13px; padding:14px 18px; border-top:1px solid #E2E8F0; text-decoration:none; }
.contact-map-link:hover { background:#EEF1FF; }
.contact-page #info a:focus-visible { outline:2px solid #0123B4; outline-offset:3px; }
@media (max-width:1100px) {
  .contact-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-detail-email { grid-column:1 / -1; }
}
@media (max-width:900px) {
  .contact-page #info .contact-office-grid { grid-template-columns:minmax(0,1fr) !important; }
  .contact-office-head { min-height:0; }
  .contact-summary-top { align-items:flex-start; flex-direction:column; }
  .contact-summary .btn { width:100%; }
}
@media (max-width:620px) {
  .contact-page #info .contact-card-mui { padding:24px 22px; }
  .contact-page #info .contact-summary { padding:24px 22px; }
  .contact-summary-brand { gap:12px; }
  .contact-summary-icon { flex-basis:46px; width:46px; height:46px; font-size:21px; }
  .contact-summary .contact-company { font-size:20px; }
  .contact-office-head { padding:22px; }
  .contact-details { grid-template-columns:minmax(0,1fr); gap:14px; padding-top:18px; }
  .contact-detail-email { grid-column:auto; }
}
