.access {
  padding: 2rem;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  border: 1px solid #ddd;
  margin-bottom: 2rem;
}

.access h2 {
  margin: 0 0 1.2rem 0;
  font-weight: bold;
}

/* 情報ブロック */

.access-paragraph {
  display: block;
  border-left: 4px solid #228b22;
  padding-left: 0.6rem;
  margin-bottom: 0.3rem;
  margin: 2rem 0;
  line-height: 1.8;
}

.access-lead {
  margin-bottom: 2rem;
}

.access-info-block {
  margin-bottom: 2.5rem;
}

.access-phone {
  font-size: 1.4rem;
  font-weight: bold;
  margin: 0.5rem 0;
}

/* PDFリンク */

.pdf-link {
  margin: 1.2rem 0;
}

/* Googleマップ */

.map-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin: 2rem 0;
  border-radius: 12px;
  overflow: hidden;
  /* はみ出した部分を隠す */
}

.map-wrapper iframe {
  position: absolute;
  /* 希望の位置に固定して配置する */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.googlemap-image {
  display: none;
  /* 印刷時用の地図画像を通常は非表示にする */
}

/* 交通案内 */

.access-route {
  margin-top: 1.5rem;
}

.access-route h3 {
  margin-bottom: 0.8rem;
}

.access-route-item {
  display: block;
  border-left: 4px solid #228b22;
  padding-left: 0.6rem;
  margin: 2rem 0;
  line-height: 1.8;
}


.route-list {
  margin: 0.3rem 0 0 1.2rem;
  padding: 0;
}

.route-list li {
  margin-bottom: 0.3rem;
  line-height: 1.6;
}



/* =========================
   スマホ表示用
   ========================= */

@media (max-width: 768px) {
  .access {
    padding: 1rem;
  }
}

/* =========================
   印刷用
   ========================= */

@media print {
  .googlemap-iframe {
    display: none;
  }

  .googlemap-image {
    display: block;
  }

  .map-wrapper,
  .googlemap-image {
    margin: 0;
    padding: 0;
  }

  img {
    page-break-inside: avoid;
    /* 印刷時に要素が途中で分断されないようにする */
  }
}