/* THE THOR用：地域6ボタン・デザインカンプ対応 */
.office-map-wrap {
  --office-accent:#60b970;
  --office-line:#dce0e5;
  --office-navy:#0d2b52;
  box-sizing:border-box;
  width:calc(100% - 32px);
  max-width:1280px;
  margin:24px auto;
  padding:28px 22px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 3px 18px rgb(24 45 68 / 9%);
  color:#252525;
  font-family:Meiryo,"メイリオ",sans-serif;
}
.office-map-wrap .office-map-heading {margin:0 0 24px;padding:0;text-align:center;}
.office-map-wrap .office-map-heading .office-map-title {
  display:block;position:static;margin:0 0 10px;padding:0;border:0;
  background:none;box-shadow:none;color:var(--office-navy);
  font-family:"Yu Gothic","游ゴシック",YuGothic,sans-serif;
  font-size:clamp(24px,3vw,38px);font-weight:700;line-height:1.5;letter-spacing:.08em;
}
.office-map-wrap .office-map-heading .office-map-title::before,
.office-map-wrap .office-map-heading .office-map-title::after {content:none;display:none;}
.office-map-wrap .office-map-heading .office-map-description {margin:0;padding:0;font-size:18px;line-height:1.8;color:#555;}
.office-map-wrap #office-map-tabs {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;max-width:1060px;margin:0 auto 12px;padding:0;border:0;}
.office-map-wrap .tab-btn {
  box-sizing:border-box;position:relative;appearance:none;display:block;width:100%;
  margin:0;padding:12px 8px;border:1px solid var(--office-line);border-radius:11px;
  background:#fff;color:#444;box-shadow:0 0 0 1px rgb(20 40 60 / 3%);
  font:inherit;font-size:20px;font-weight:500;line-height:1.5;text-align:center;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.office-map-wrap .tab-btn:hover {background:#f0f8f1;border-color:var(--office-accent);}
.office-map-wrap .tab-btn.active {background:var(--office-accent);border-color:var(--office-accent);color:#fff;font-weight:700;box-shadow:none;}
.office-map-wrap .tab-btn.active::after {content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:8px solid transparent;border-top-color:var(--office-accent);border-bottom:0;}
.office-map-wrap #office-google-map {box-sizing:border-box;width:100%;height:420px;margin-top:0;border:1px solid #e3e8ec;border-radius:18px;background:#f2f6f4;overflow:hidden;scroll-margin-top:120px;}
.office-map-wrap #office-map-legend {display:none;}
.office-map-wrap #office-list {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 16px;margin:34px 0 0;padding:0;}
.office-map-wrap .office-item {box-sizing:border-box;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:0;padding:24px 20px 18px;border:1px solid var(--office-line);border-radius:10px;background:#fff;scroll-margin-top:120px;overflow-wrap:anywhere;transition:border-color .15s,box-shadow .15s;}
.office-map-wrap .office-item:hover {border-color:#99cda3;}
.office-map-wrap .office-item.selected {border-color:var(--office-accent);background:#f2faf3;box-shadow:0 0 0 2px var(--office-accent);}
.office-map-wrap .office-item p {margin:0;padding:0;}
.office-map-wrap .office-card-heading {display:flex;align-items:center;gap:14px;width:100%;min-height:48px;margin:0 0 3px;}
.office-map-wrap .office-card-title {min-width:0;margin:0;}
.office-map-wrap .office-name-prefix {font-size:10px;font-weight:500;line-height:1.5;}
.office-map-wrap .office-name {font-size:20px;font-weight:700;line-height:1.45;}
.office-map-wrap .office-card-pin {position:relative;display:block;flex:none;width:28px;height:39px;background:var(--pin-color,var(--office-accent));clip-path:path('M14 0C6.3 0 0 6.3 0 14C0 24 14 39 14 39S28 24 28 14C28 6.3 21.7 0 14 0Z');}
.office-map-wrap .office-card-pin::after {content:"";position:absolute;left:9px;top:9px;width:10px;height:10px;border-radius:50%;background:#fff;}
.office-map-wrap .office-item>.office-addr,
.office-map-wrap .office-item>.office-phone {margin-left:42px;max-width:calc(100% - 42px);}
.office-map-wrap .office-addr-row {display:flex;align-items:flex-start;gap:14px;width:100%;margin:0;}
.office-map-wrap .office-addr-row>.office-type-icon {display:block;flex:none;width:28px;height:28px;max-width:none;margin:-3px 0 0;padding:0;border:0;border-radius:50%;box-shadow:none;}
.office-map-wrap .office-addr-row>.office-type-none {height:1px;}
.office-map-wrap .office-addr-text {min-width:0;margin:0;}
.office-map-wrap .office-type {display:inline-block;margin:0 0 2px;padding:0 8px;border:1px solid #99cda3;border-radius:999px;background:#f2faf3;color:#357044;font-size:11px;line-height:1.6;white-space:nowrap;}
.office-map-wrap .office-addr {font-size:12px;line-height:1.7;}
.office-map-wrap .office-phone {font-size:12px;line-height:1.6;color:#555;text-decoration:none;}
.office-map-wrap .office-phone:hover {text-decoration:underline;}
.office-map-wrap .office-actions {display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin: auto 0 0 42px;padding-top:7px;}
.office-map-wrap .office-map-button {appearance:none;margin:0;padding:0 0 2px;border:0;border-bottom:1px solid #99cda3;border-radius:0;background:none;box-shadow:none;color:#357044;font:inherit;font-size:12px;line-height:1.6;cursor:pointer;}
.office-map-wrap .office-map-button:disabled {display:none;}
.office-map-wrap .office-detail {font-size:12px;color:#357044;text-decoration:none;border-bottom:1px solid #99cda3;}
.office-map-wrap button:focus-visible,.office-map-wrap a:focus-visible,.office-map-wrap .office-item:focus-visible {outline:3px solid #1d4ed8;outline-offset:4px;}
.office-map-wrap .office-marker {position:relative;display:block;width:38px;height:48px;filter:drop-shadow(0 2px 2px #0003);}
.office-map-wrap .office-marker::before {content:"";position:absolute;inset:0;background:var(--pin-color);clip-path:path('M19 0C8.5 0 0 8.5 0 19C0 31 19 48 19 48S38 31 38 19C38 8.5 29.5 0 19 0Z');}
.office-map-wrap .office-marker::after {content:"";position:absolute;left:13px;top:13px;width:12px;height:12px;border-radius:50%;background:#fff;}
.office-map-wrap .office-empty {grid-column:1/-1;margin:0;padding:24px 0;text-align:center;font-size:14px;color:#777;}
.office-map-wrap .office-popup {font-size:14px;color:#222;max-width:260px;}
.office-map-wrap .office-popup p {margin:6px 0 0;}
@media(max-width:1000px) {.office-map-wrap .office-item {padding:18px 12px;}.office-map-wrap .office-name {font-size:18px;}.office-map-wrap #office-map-tabs {gap:10px;}}
@media(max-width:900px) {.office-map-wrap #office-list {grid-template-columns:repeat(2,minmax(0,1fr));}.office-map-wrap .office-item {padding:22px;}.office-map-wrap .tab-btn {font-size:17px;}.office-map-wrap .office-map-heading .office-map-description {font-size:16px;}}
@media(max-width:600px) {.office-map-wrap {padding:24px 14px;margin:16px auto;border-radius:14px;}.office-map-wrap #office-map-tabs {grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;}.office-map-wrap #office-google-map {height:340px;border-radius:12px;}.office-map-wrap .office-map-heading .office-map-description {font-size:14px;}}
@media(max-width:520px) {.office-map-wrap #office-list {grid-template-columns:1fr;gap:14px;}.office-map-wrap .office-item {padding:22px;}.office-map-wrap .office-name {font-size:20px;}}
@media(prefers-reduced-motion:reduce) {.office-map-wrap .tab-btn,.office-map-wrap .office-item {transition:none;}}

/* 見出し以外のウィジェット内テキスト */
.office-map-wrap .office-map-description,
.office-map-wrap .tab-btn,
.office-map-wrap .office-type,
.office-map-wrap .office-name-prefix,
.office-map-wrap .office-name,
.office-map-wrap .office-addr,
.office-map-wrap .office-phone,
.office-map-wrap .office-map-button,
.office-map-wrap .office-detail,
.office-map-wrap .office-popup,
.office-map-wrap .office-popup p,
.office-map-wrap .office-popup strong {
  font-family:Meiryo,"メイリオ",sans-serif;
}

/* THE THORの .content div { margin-top:2rem; } が地図内部に干渉するのを防ぐ。
   Google Maps自身がインラインで指定するコントロールの余白は維持する。 */
.office-map-wrap #office-google-map div {
  margin-top:0;
}
