/* ====== ベース ====== */
:root { --ink:#222; --muted:#666; --line:#d9d9d9; --paper:#fff; }
html,body { height:100% }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"游明朝","Yu Mincho","Noto Serif JP",serif;
  font-size:14px; line-height:1.9; letter-spacing:.02em;
}

/* レイアウト */
.wrap{ max-width:1000px; margin:0 auto; padding:60px 140px 100px }

/* 見出し */
.title{ font-size:20px; font-weight:700; margin:0 0 14px }
.lead{ color:#444; margin:0 0 26px }

/* パネル（細線・角丸なし） */
.panel{ border:1px solid var(--line); background:#fff; padding:0 40px; margin:40px 0 }
.panel.slim{ padding:0 24px }
.panel h2{ margin:0; padding:12px 0; font-size:16px; font-weight:700; border-bottom:1px solid var(--line) }

/* 所在地・電話 */
.callout .columns{ display:grid; grid-template-columns: 1fr 340px; gap:24px; align-items:start; }
.addr{ font-style:normal; line-height:1.9; }
.tel{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:2px; font-weight:800 }
.tel:hover{ border-bottom-color:#aaa }

/* 地図リンク/埋め込み */
.maplinks p{ margin:10px 0 0 }
.map-embed{ border:1px solid var(--line); }
.map-embed iframe{ width:100%; height:260px; border:0; display:block }

/* 交通手段 */
.transport{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:18px 24px; padding:10px 0 18px }
.transport .block{ border-bottom:1px solid var(--line); padding:8px 0 }
.transport h3{ font-size:14px; margin:0 0 6px }
.list{ margin:0; padding-left:1.2em }
.list li{ margin:0 0 4px }

/* FAQ */
.faq{ margin:0; padding:12px 0 18px }
.qa{ border-bottom:1px solid var(--line); padding:6px 0 }
.qa dt{ font-weight:700 }
.qa dd{ margin:4px 0 0 }

/* 細文 */
.small{ font-size:12px }
.muted{ color:var(--muted) }
.ref{ margin-top:12px }
/* ===== 地図を幅80％で中央寄せ表示 ===== */
.map-embed {
  width: 80%;
  margin: 20px auto;  /* 中央寄せ */
  border: 1px solid var(--line);
}

.map-embed iframe {
  width: 100%;
  height: 400px;  /* 少し大きめで見やすく */
  border: 0;
  display: block;
}

/* モバイルでは100%幅に戻す */
@media (max-width:680px){
  .map-embed {
    width: 100%;
    margin: 12px 0;
  }
  .map-embed iframe {
    height: 300px;
  }
}

/* レスポンシブ */
@media (max-width:900px){
  .wrap{ padding:28px 16px 56px; max-width:none }
  .panel{ padding:0 14px; margin:28px 0 }
  .panel.slim{ padding:0 12px }

  .callout .columns{ grid-template-columns: 1fr; }
  .transport{ grid-template-columns: 1fr; }
  .map-embed iframe{ height:220px }
}
