/* access.css - 交通アクセスページ専用スタイル */
/* common.cssのCSS変数(:root)は再定義しない */

/* ============================================================
   ページ全体
   ============================================================ */
.access-page-main {
  background-color: var(--color-bg-gray-03);
  padding-top: 190.845px; /* ヘッダー高さ分 */
}

/* ============================================================
   パンくずリスト
   ============================================================ */
.access-breadcrumb {
  padding: 8px var(--container-medium);
}

.access-breadcrumb__inner {
  display: flex;
  align-items: center;
  gap: 8px;
}

.access-breadcrumb__link {
  font-family: var(--font-heading);
  font-size: var(--fontsize-text-small);
  color: var(--color-font-black-01);
  text-decoration: underline;
  letter-spacing: 0.28px;
  line-height: 1.6;
  transition: color 0.2s;
}

.access-breadcrumb__link:hover {
  color: var(--color-font-keycolor);
}

.access-breadcrumb__arrow {
  width: 3px;
  height: 5px;
  flex-shrink: 0;
  max-width: none; /* common.cssのimg{max-width:100%}を上書き */
}

.access-breadcrumb__current {
  font-family: var(--font-heading);
  font-size: var(--fontsize-text-small);
  color: var(--color-font-black-01);
  text-decoration: underline;
  letter-spacing: 0.28px;
  line-height: 1.6;
}

/* ============================================================
   コンテンツ全体ラッパー
   ============================================================ */
.access-page-content {
  padding: var(--margin-block-03) var(--container-small) var(--margin-block-04);
}

/* ============================================================
   ページタイトル
   ============================================================ */
.access-page-ttl {
  display: flex;
  flex-direction: column;
  gap: 8px;
	max-width:1280px;
	margin:0 auto;
}

.access-page-ttl__en {
  font-family: var(--font-accent);
  font-weight: 500;
  font-size: 20px;
  color: var(--color-font-keycolor);
  letter-spacing: 2px;
  line-height: normal;
}

.access-page-ttl__ja {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 48px;
  color: var(--color-font-black-01);
  letter-spacing: 2.4px;
  line-height: 1.7;
}

/* ============================================================
   セクション共通
   ============================================================ */
.access-section {
  padding-top: var(--margin-block-02);
	max-width:1280px;
	margin:0 auto;
}

/* セクションタイトル（左揃え2行） */
.access-section__ttl {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.access-section__ttl-en {
  font-family: var(--font-accent);
  font-weight: 700;
  font-size: var(--fontsize-text-medium); /* 18px */
  color: var(--color-font-keycolor);
  letter-spacing: 1.8px;
  line-height: normal;
  white-space: nowrap;
}

.access-section__ttl-ja {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: var(--fontsize-heading-section); /* 32px */
  color: var(--color-font-black-01);
  letter-spacing: 2.24px;
  line-height: 1.7;
}

/* リード文 */
.access-section__lead {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--fontsize-text-normal); /* 16px */
  color: var(--color-font-black-01);
  letter-spacing: 0.16px;
  line-height: 2;
  padding-top: var(--space-03); /* 30px */
}

/* ============================================================
   ロケーション セクション
   ============================================================ */
.access-map-wrap {
  padding-top: var(--margin-block-01); /* 40px */
  padding-left: var(--container-medium);  /* 80px */
  padding-right: var(--container-medium); /* 80px */
}

.access-map-box {
  background-color: var(--color-bg-white);
  border-radius: var(--radius-nml); /* 10px */
  padding: 15px;
	max-width:900px;
	margin:0 auto;
}

.access-map-box__img {
  width: 100%;
  aspect-ratio: 980 / 878;
  overflow: hidden;
}

.access-map-box__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  max-width: none; /* common.cssのimg{max-width:100%}を上書き */
}

/* ============================================================
   交通アクセス セクション
   ============================================================ */

/* ルートブロック */
.access-routes__block {
  padding-top: var(--margin-block-01); /* 40px */
}

.access-routes__block--second {
  padding-top: var(--margin-block-02); /* 60px */
}

/* サブタイトル（破線付き） */
.access-routes__ttl {
  border-bottom: 1px dashed var(--color-border-black-01);
  padding-bottom: 15px;
  margin-bottom: var(--space-03); /* 30px */
}

.access-routes__ttl-text {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 24px;
  color: var(--color-font-black-01);
  letter-spacing: 1.2px;
  line-height: 1.5;
  white-space: nowrap;
}

/* リスト */
.access-routes__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-01); /* 15px */
}

.access-routes__item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.access-routes__icon {
  width: 10px;
  height: 13.615px;
  flex-shrink: 0;
  display: block;
  max-width: none; /* max-width:100%トラップ回避 */
}

.access-routes__text {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: var(--fontsize-text-normal); /* 16px */
  color: var(--color-font-black-01);
  letter-spacing: 0.16px;
  line-height: 2;
  flex: 1 0 0;
}

/* ============================================================
   各交通機関 セクション
   ============================================================ */

/* カテゴリーブロック */
.access-transport__block {
  padding-top: var(--margin-block-01); /* 40px */
}

.access-transport__block--second {
  padding-top: var(--margin-block-02); /* 60px */
}

/* カテゴリータイトル（破線付き） */
.access-transport__cat-ttl {
  border-bottom: 1px dashed var(--color-border-black-01);
  padding-bottom: 15px;
  margin-bottom: var(--space-03); /* 30px */
}

.access-transport__cat-text {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 24px;
  color: var(--color-font-black-01);
  letter-spacing: 1.2px;
  line-height: 1.5;
  white-space: nowrap;
}

/* リンクカードリスト */
.access-transport__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-02); /* 20px */
}

.access-transport__card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--color-border-gray-01);
  padding: 0 15px 20px;
}

.access-transport__name {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: var(--fontsize-text-medium); /* 18px */
  color: var(--color-font-black-01);
  line-height: 1.6;
  flex: 1 0 0;
  padding-right: 30px;
}

.access-transport__link-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 320px;
  flex-shrink: 0;
}

.access-transport__link {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: var(--fontsize-text-small); /* 14px */
  color: var(--color-font-keycolor-dark); /* #405315 */
  text-decoration: underline;
  line-height: 1.6;
  word-break: break-all;
  flex: 1 0 0;
  transition: color 0.2s;
}

.access-transport__link:hover {
  color: var(--color-font-keycolor);
}

.access-transport__blank-icon {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  display: block;
  max-width: none; /* max-width:100%トラップ回避 */
}

/* ============================================================
   レスポンシブ（モバイル）
   ============================================================ */
@media (max-width: 767px) {
  .access-page-main {
    padding-top: 92px; /* SP ヘッダー高さ */
  }

  .access-page-content {
    padding: var(--margin-block-02) var(--container-medium) var(--margin-block-03);
    /* container-mediumはモバイルで20pxに自動変更（common.css） */
  }

  .access-page-ttl__ja {
    font-size: 32px;
  }

  .access-section {
    padding-top: var(--margin-block-02); /* 60px */
  }

  .access-map-wrap {
    padding-left: 0;
    padding-right: 0;
  }

  .access-routes__ttl-text {
    font-size: var(--fontsize-text-medium);
    white-space: normal;
  }

  .access-transport__card {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 0 0 15px;
  }

  .access-transport__name {
    padding-right: 0;
    flex: none;
    width: 100%;
  }

  .access-transport__link-wrap {
    max-width: 100%;
    width: 100%;
  }

  .access-transport__cat-text {
    white-space: normal;
  }
}
