@charset "UTF-8";
/* ==========================================================
   新デザイン 共通CSS（全ページで読み込み）
   ヘッダー・スマホメニュー・お問い合わせ帯・アクセス・フッター
   クラスはすべて .tp- で始める
   ブレークポイント：1100px（ヘッダー切替）／ 767px（スマホ）
========================================================== */

/* ----------------------------------------------------------
   共通設定
---------------------------------------------------------- */
:root {
  --tp-navy: #1d3557;
  --tp-navy-dark: #14273f;
  --tp-wine: #7a2232;
  --tp-gold: #c8a24a;
  --tp-gold-light: #e2c77d;
  --tp-gold-dark: #a8842f;
  --tp-teal: #2c5058;
  --tp-text: #2b2b2b;
  --tp-text-sub: #555;
  --tp-bg: #ffffff;
  --tp-bg-cream: #faf8f3;
  --tp-line: #e6dcc4;

  /* 基本書体：游明朝（DemiBold相当の600） */
  --tp-serif: "游明朝", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  --tp-weight: 600;
  /* ヒラギノ角ゴ（W6相当）を使う箇所用 */
  --tp-gothic: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Hiragino Sans", "游ゴシック体", YuGothic, "Yu Gothic", "メイリオ", Meiryo, sans-serif;
  /* ヒラギノ角ゴ W3（細め）を使う箇所用。Windowsは游ゴシック Medium で代用 */
  --tp-gothic-w3: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Sans", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, sans-serif;
  /* 游ゴシックを使う箇所用（Windowsで細くなりすぎないようMediumを優先） */
  --tp-yugothic: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "メイリオ", sans-serif;
  /* ゴシック体にしたい箇所用（現在は游明朝に統一。戻す場合は "Noto Sans JP", "メイリオ", sans-serif に） */
  --tp-sans: var(--tp-serif);

  --tp-header-h: 100px;      /* 通常時のヘッダー高さ */
  --tp-header-h-min: 70px;   /* スクロール後のヘッダー高さ */
}
@media screen and (max-width: 1100px) {
  :root {
    --tp-header-h: 64px;
    --tp-header-h-min: 64px;
  }
}


/* 新デザイン内の基本書体・太さ */
.tp-header,
.tp-drawer,
.tp-main,
.tp-cta,
.tp-access,
.tp-footer {
  font-family: var(--tp-serif);
  font-weight: var(--tp-weight);
}

/* base.css のリンク半透明ホバーを新デザイン内では無効化 */
html body :where(.tp-header, .tp-drawer, .tp-main, .tp-cta, .tp-access, .tp-footer) a:hover {
  opacity: 1;
}

/* base.css の p（18px）を新デザイン内ではリセット
   ※ :where() で優先度を下げ、各クラスの指定が必ず勝つようにしています */
html body :where(.tp-header, .tp-drawer, .tp-main, .tp-cta, .tp-access, .tp-footer) p {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}


/* キーボード操作時のフォーカス表示 */
:where(.tp-header, .tp-drawer, .tp-main, .tp-cta, .tp-access, .tp-footer) a:focus-visible,
:where(.tp-header, .tp-drawer, .tp-main, .tp-cta, .tp-access, .tp-footer) button:focus-visible {
  outline: 2px solid var(--tp-gold);
  outline-offset: 2px;
}

/* ----------------------------------------------------------
   ヘッダー
---------------------------------------------------------- */
.tp-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--tp-header-h);
  background-color: #fff;
  z-index: 900;
  transition: height 0.3s ease, box-shadow 0.3s ease;
}
.tp-header.is-scrolled {
  height: var(--tp-header-h-min);
  box-shadow: 0 2px 10px rgba(29, 53, 87, 0.08);
}

/* ログイン時の管理バー分ずらす */
.admin-bar .tp-header { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .tp-header { top: 46px; }
}
@media screen and (max-width: 600px) {
  /* WordPressの仕様で600px以下は管理バーがスクロールで消えるため */
  .admin-bar .tp-header { top: 0; }
}

.tp-header-spacer {
  height: var(--tp-header-h);
}

.tp-header__inner {
  display: flex;
  align-items: center;
  height: 100%;
  padding-left: 36px;
}

/* ロゴ */
.tp-header__logo {
  flex-shrink: 0;
  width: 550px; /* ロゴ画像の原寸（100%） */
  margin: 0;
  line-height: 1;
  transition: width 0.3s ease;
}
.tp-header.is-scrolled .tp-header__logo {
  width: 385px; /* スクロール後は70% */
}
.tp-header__logo a {
  display: block;
}
.tp-header__logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* グローバルメニュー */
.tp-gnav {
  margin-left: auto;
  padding-right: 24px;
}
.tp-gnav__list {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tp-gnav__list > li {
  position: relative;
}
.tp-gnav__list > li > a {
  display: block;
  padding: 12px 22px;
  font-family: var(--tp-serif);
  font-size: 16px;
  letter-spacing: 0.08em;
  color: var(--tp-text);
  text-decoration: none;
  white-space: nowrap;
  position: relative;
}
/* ホバー時の金の下線 */
.tp-gnav__list > li > a::after {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 6px;
  height: 1px;
  background-color: var(--tp-gold);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}
.tp-gnav__list > li > a:hover::after,
.tp-gnav__list > li.current-menu-item > a::after {
  transform: scaleX(1);
}

/* サブメニュー（ある場合のみ表示） */
.tp-gnav__list .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  min-width: 220px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background-color: #fff;
  border-top: 2px solid var(--tp-gold);
  box-shadow: 0 6px 16px rgba(29, 53, 87, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.tp-gnav__list > li:hover > .sub-menu,
.tp-gnav__list > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.tp-gnav__list .sub-menu a {
  display: block;
  padding: 10px 20px;
  font-family: var(--tp-serif);
  font-size: 14px;
  color: var(--tp-text);
  text-decoration: none;
  white-space: nowrap;
}
.tp-gnav__list .sub-menu a:hover {
  background-color: var(--tp-bg-cream);
  color: var(--tp-navy);
}

/* 右側：バナー・ボタン */
.tp-header__actions {
  position: relative;
  flex-shrink: 0;
  align-self: stretch;
  width: 240px;
  margin-right: 0;
}

/* 税務顧問サービスバナー（通常時） */
.tp-header__advisor {
  position: absolute;
  top: 0;
  right: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 226px;
  height: 66px;
  padding: 6px 12px;
  background-color: var(--tp-teal);
  color: #fff;
  font-family: var(--tp-serif);
  text-decoration: none;
  line-height: 1.4;
  letter-spacing: 0;
  white-space: nowrap; /* 文字の折り返しを防ぐ */
  transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}
.tp-header__advisor::before {
  /* 内側の細い枠線 */
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  pointer-events: none;
}
.tp-header__advisor:hover {
  background-color: #23434a;
}
.tp-header__advisor-sub {
  display: block;
  font-size: 11px;
  letter-spacing: 0.08em;
}
.tp-header__advisor-main {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  font-size: 15px;
  letter-spacing: 0.02em;
}
.tp-header__advisor-main small {
  flex-shrink: 0;
  font-size: 11px;
}
.tp-header__advisor-arrow {
  position: relative;
  display: inline-block;
  width: 22px;
  height: 1px;
  flex-shrink: 0;
  margin-left: 8px;
  background-color: #fff;
}
.tp-header__advisor-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 7px;
  height: 1px;
  background-color: #fff;
  transform: rotate(35deg);
  transform-origin: right bottom;
}

/* お問い合わせボタン（スクロール後） */
.tp-header__contact {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 172px;
  height: 100%;
  background: linear-gradient(180deg, var(--tp-gold-light) 0%, var(--tp-gold) 55%, var(--tp-gold-dark) 100%);
  color: #fff;
  font-family: var(--tp-serif);
  font-size: 15px;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s, filter 0.3s ease;
}
.tp-header__contact:hover {
  filter: brightness(1.06);
}
.tp-header__contact-icon {
  width: 16px;
  height: 16px;
}

/* スクロール後の切り替え */
.tp-header.is-scrolled .tp-header__advisor {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
}
.tp-header.is-scrolled .tp-header__contact {
  opacity: 1;
  visibility: visible;
}

/* 画面が少し狭いPC（メニューが入りきるようロゴを段階的に縮小） */
@media screen and (max-width: 1700px) {
  .tp-header__logo { width: 460px; }
  .tp-header.is-scrolled .tp-header__logo { width: 360px; }
  .tp-gnav__list > li > a { padding: 12px 16px; }
  .tp-gnav__list > li > a::after { left: 16px; right: 16px; }
}
@media screen and (max-width: 1500px) {
  .tp-header__inner { padding-left: 24px; }
  .tp-header__logo { width: 380px; }
  .tp-header.is-scrolled .tp-header__logo { width: 320px; }
  .tp-gnav { padding-right: 12px; }
  .tp-gnav__list > li > a { padding: 12px 12px; font-size: 15px; letter-spacing: 0.04em; }
  .tp-gnav__list > li > a::after { left: 12px; right: 12px; }
}
@media screen and (max-width: 1300px) {
  .tp-header__logo { width: 320px; }
  .tp-header.is-scrolled .tp-header__logo { width: 280px; }
  .tp-gnav__list > li > a { padding: 12px 9px; font-size: 14px; letter-spacing: 0; }
  .tp-gnav__list > li > a::after { left: 9px; right: 9px; }
  .tp-header__actions { width: 210px; }
  .tp-header__advisor { right: 12px; width: 196px; padding: 6px 8px; }
  .tp-header__advisor-main { font-size: 13px; }
  .tp-header__contact { width: 150px; font-size: 14px; }
}
@media screen and (max-width: 1200px) {
  .tp-header__logo,
  .tp-header.is-scrolled .tp-header__logo { width: 260px; }
  .tp-gnav__list > li > a { padding: 12px 7px; font-size: 13px; }
  .tp-gnav__list > li > a::after { left: 7px; right: 7px; }
}

/* ----------------------------------------------------------
   スマホ用メニューボタン・ドロワー
---------------------------------------------------------- */
.tp-menu-btn,
.tp-drawer,
.tp-drawer-overlay {
  display: none;
}

@media screen and (max-width: 1100px) {
  .tp-header {
    box-shadow: 0 1px 6px rgba(29, 53, 87, 0.08);
  }
  .tp-header__inner {
    padding-left: 16px;
  }
  .tp-header__logo,
  .tp-header.is-scrolled .tp-header__logo {
    width: 250px;
  }
  .tp-gnav,
  .tp-header__actions {
    display: none;
  }

  /* メニューボタン */
  .tp-menu-btn {
    display: block;
    position: relative;
    width: 64px;
    height: 64px;
    margin-left: auto;
    padding: 0;
    border: none;
    background-color: var(--tp-navy);
    cursor: pointer;
  }
  .tp-menu-btn__line {
    position: absolute;
    left: 20px;
    width: 24px;
    height: 2px;
    background-color: #fff;
    transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
  }
  .tp-menu-btn__line:nth-child(1) { top: 18px; }
  .tp-menu-btn__line:nth-child(2) { top: 25px; }
  .tp-menu-btn__line:nth-child(3) { top: 32px; }
  .tp-menu-btn__text {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    font-size: 10px;
    color: #fff;
    letter-spacing: 0.05em;
    text-align: center;
  }
  .tp-menu-btn.is-open .tp-menu-btn__line:nth-child(1) { top: 25px; transform: rotate(45deg); }
  .tp-menu-btn.is-open .tp-menu-btn__line:nth-child(2) { opacity: 0; }
  .tp-menu-btn.is-open .tp-menu-btn__line:nth-child(3) { top: 25px; transform: rotate(-45deg); }

  /* ドロワー本体 */
  .tp-drawer {
    display: block;
    position: fixed;
    top: var(--tp-header-h);
    right: 0;
    width: min(360px, 86%);
    height: calc(100% - var(--tp-header-h));
    padding: 10px 24px 40px;
    background-color: #fff;
    overflow-y: auto;
    z-index: 899;
    transform: translateX(100%);
    transition: transform 0.35s ease;
  }
  .tp-drawer.is-open {
    transform: translateX(0);
  }
  .admin-bar .tp-drawer {
    top: calc(var(--tp-header-h) + 46px);
    height: calc(100% - var(--tp-header-h) - 46px);
  }

  .tp-drawer-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background-color: rgba(20, 39, 63, 0.45);
    z-index: 898;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s;
  }
  .tp-drawer-overlay.is-open {
    opacity: 1;
    visibility: visible;
  }

  .tp-drawer__list,
  .tp-drawer__list .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .tp-drawer__list > li {
    border-bottom: 1px solid var(--tp-line);
  }
  .tp-drawer__list a {
    display: block;
    padding: 16px 4px;
    font-family: var(--tp-serif);
    font-size: 16px;
    color: var(--tp-text);
    text-decoration: none;
  }
  .tp-drawer__list .sub-menu a {
    padding: 10px 4px 10px 20px;
    font-size: 14px;
    color: var(--tp-text-sub);
  }
  .tp-drawer__list .sub-menu a::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 1px;
    margin-right: 8px;
    vertical-align: middle;
    background-color: var(--tp-gold);
  }

  .tp-drawer__cta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 28px;
  }
  .tp-drawer__tel,
  .tp-drawer__contact,
  .tp-drawer__advisor {
    display: block;
    padding: 14px 10px;
    text-align: center;
    text-decoration: none;
    font-family: var(--tp-serif);
  }
  .tp-drawer__tel {
    border: 1px solid var(--tp-navy);
    color: var(--tp-navy);
    font-size: 22px;
    letter-spacing: 0.05em;
    line-height: 1.3;
  }
  .tp-drawer__tel span {
    display: block;
    font-size: 12px;
    letter-spacing: 0.1em;
  }
  .tp-drawer__contact {
    background: linear-gradient(180deg, var(--tp-gold-light) 0%, var(--tp-gold) 55%, var(--tp-gold-dark) 100%);
    color: #fff;
    font-size: 15px;
  }
  .tp-drawer__advisor {
    background-color: var(--tp-teal);
    color: #fff;
    font-size: 13px;
  }

  /* メニューを開いている間は背景をスクロールさせない */
  body.is-drawer-open {
    overflow: hidden;
  }
}

@media screen and (max-width: 767px) {
  .tp-header__inner {
    padding-left: 12px;
  }
  .tp-header__logo,
  .tp-header.is-scrolled .tp-header__logo {
    width: 220px;
  }
}
@media screen and (max-width: 360px) {
  .tp-header__logo,
  .tp-header.is-scrolled .tp-header__logo {
    width: 190px;
  }
}

/* 動きを減らす設定の方向け */
@media (prefers-reduced-motion: reduce) {
  .tp-header,
  .tp-header *,
  .tp-drawer,
  .tp-drawer-overlay {
    transition: none !important;
  }
}

/* ----------------------------------------------------------
   お問い合わせ帯
---------------------------------------------------------- */
.tp-cta {
  background: linear-gradient(90deg, #6e1f2b 0%, #8a2f3c 50%, #6b1c28 100%);
  color: #fff;
}
.tp-cta__inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  width: 1900px;
  max-width: 100%;
  min-height: 190px;
  margin: 0 auto;
  padding: 20px 20px;
}
.tp-cta__item {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 110px;
  padding: 0 30px;
  color: #fff;
  text-decoration: none;
}
.tp-cta__item + .tp-cta__item {
  border-left: 1px solid rgba(255, 255, 255, 0.7);
}

.tp-cta__badge {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 134px;
  height: 134px;
  border: 3px solid #fff;
  border-radius: 50%;
  background-color: #1d3052;
  font-size: 64px;
  line-height: 1;
}
.tp-cta__badge small {
  margin-top: 4px;
  font-family: Arial, sans-serif;
  font-size: 22px;
}
.tp-cta__sat {
  margin: 0;
  text-align: center;
}
.tp-cta__sat-main {
  display: block;
  font-size: 30px;
  letter-spacing: 0.02em;
}
.tp-cta__sat-sub {
  display: block;
  margin-top: 8px;
  font-family: var(--tp-yugothic);
  font-size: 16px;
  font-weight: 500;
}

.tp-cta__circle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 104px;
  height: 104px;
  border-radius: 50%;
}
.tp-cta__circle svg {
  width: 52px;
  height: 52px;
}
.tp-cta__circle--tel {
  border: 1.5px solid #fff;
  color: #fff;
}
.tp-cta__circle--mail {
  background: radial-gradient(circle at 35% 30%, #c79a45 0%, #9a7428 100%);
  color: #fff;
}
.tp-cta__tel-note {
  display: block;
  font-family: var(--tp-yugothic);
  font-size: 16px;
  font-weight: 500;
}
.tp-cta__tel-note span {
  margin-left: 0.6em;
  font-size: 14px;
}
.tp-cta__tel-num {
  display: block;
  margin-top: 4px;
  font-size: 46px;
  line-height: 1.1;
  letter-spacing: 0.02em;
}
.tp-cta__mail {
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.tp-cta__arrow {
  width: 12px;
  height: 12px;
  margin-left: auto;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(45deg);
}
.tp-cta__item--mail:hover,
.tp-cta__item--tel:hover {
  background-color: rgba(255, 255, 255, 0.06);
}

@media screen and (max-width: 1300px) {
  .tp-cta__inner { grid-template-columns: 1fr 1fr; }
  .tp-cta__item--sat { grid-column: 1 / -1; justify-content: center; border-bottom: 1px solid rgba(255,255,255,0.5); padding-bottom: 16px; }
  .tp-cta__item--tel { border-left: none; }
  .tp-cta__badge { width: 96px; height: 96px; font-size: 46px; }
  .tp-cta__badge small { font-size: 16px; }
  .tp-cta__circle { width: 80px; height: 80px; }
  .tp-cta__circle svg { width: 40px; height: 40px; }
  .tp-cta__tel-num { font-size: 36px; }
  .tp-cta__mail { font-size: 18px; }
}
@media screen and (max-width: 767px) {
  .tp-cta__inner { grid-template-columns: 1fr; padding: 16px 16px 20px; }
  .tp-cta__item { gap: 14px; min-height: 0; padding: 14px 4px; }
  .tp-cta__item + .tp-cta__item { border-left: none; border-top: 1px solid rgba(255,255,255,0.5); }
  .tp-cta__item--sat { border-bottom: none; padding-bottom: 14px; }
  .tp-cta__badge { width: 70px; height: 70px; font-size: 32px; border-width: 2px; }
  .tp-cta__badge small { font-size: 12px; }
  .tp-cta__sat { text-align: left; }
  .tp-cta__sat-main { font-size: 19px; }
  .tp-cta__sat-sub { font-size: 13px; }
  .tp-cta__circle { width: 62px; height: 62px; }
  .tp-cta__circle svg { width: 30px; height: 30px; }
  .tp-cta__tel-note { font-size: 12px; }
  .tp-cta__tel-note span { display: block; margin: 0; font-size: 12px; }
  .tp-cta__tel-num { font-size: 28px; }
  .tp-cta__mail { font-size: 16px; }
}

/* ----------------------------------------------------------
   アクセス
---------------------------------------------------------- */
.tp-access {
  padding: 42px 20px 36px;
  background-color: var(--tp-bg-cream);
}
.tp-access__inner {
  display: grid;
  grid-template-columns: 410px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  width: 1480px;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 20px;
}
.tp-access__title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 12px 0 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #cdb067;
  font-size: 28px;
  letter-spacing: 0.1em;
  color: #333;
}
.tp-access__title small {
  font-size: 18px;
  letter-spacing: 0.04em;
}
.tp-access__title-icon {
  align-self: center;
  width: 18px;
  height: 24px;
  color: #a8842f;
}
.tp-access__name {
  margin: 18px 0 0;
  font-size: 28px;
  line-height: 1.4;
  color: #333;
}
.tp-access__name small {
  display: block;
  margin-top: 4px;
  font-size: 16px;
  letter-spacing: 0.06em;
}
.tp-access__address {
  margin: 22px 0 0;
  font-size: 16px;
  line-height: 1.95;
  color: #333;
}
.tp-access__address span {
  margin-left: 0.5em;
}
.tp-access__contact {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  margin-top: 26px;
  font-size: 18px;
  color: #333;
}
.tp-access__tel,
.tp-access__hours {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  color: #333;
  text-decoration: none;
  white-space: nowrap;
}
.tp-access__tel svg,
.tp-access__hours svg {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  color: #1d3052;
}
.tp-access__hours small {
  display: block;
  padding-left: 0.5em;
  font-size: 16px;
}
.tp-access__train {
  margin: 34px 0 0;
  padding: 0;
  list-style: none;
  font-size: 18px;
  color: #333;
}
.tp-access__train li {
  position: relative;
  padding-left: 30px;
  line-height: 2.1;
}
.tp-access__train li::before {
  /* 電車アイコン */
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 18px;
  height: 22px;
  margin-top: -11px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 22'%3E%3Cpath d='M3 1h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2z' fill='%231d3052'/%3E%3Cpath d='M3 4h12v5H3z' fill='%23fff'/%3E%3Ccircle cx='5' cy='13' r='1.4' fill='%23fff'/%3E%3Ccircle cx='13' cy='13' r='1.4' fill='%23fff'/%3E%3Cpath d='M4 17l-2 4M14 17l2 4M3 20h12' stroke='%231d3052' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center / contain;
}
.tp-access__map {
  padding: 8px;
  background-color: #fff;
}
.tp-access__map iframe {
  display: block;
  width: 100%;
  height: 466px;
  border: 0;
}

/* ----------------------------------------------------------
   フッター
---------------------------------------------------------- */
.tp-footer {
  background-color: #1d3052;
  color: #fff;
}
.tp-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 1480px;
  max-width: 100%;
  min-height: 114px;
  margin: 0 auto;
  padding: 20px 40px;
}
.tp-footer__logo {
  margin: 0;
}
.tp-footer__logo a {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 20px;
  font-size: 28px;
  letter-spacing: 0.04em;
  color: #fff;
  text-decoration: none;
}
.tp-footer__logo small {
  font-size: 18px;
}
.tp-footer__right {
  display: flex;
  align-items: center;
  gap: 50px;
  font-size: 16px;
}
.tp-footer__copy {
  font-size: 16px;
}
.tp-footer__privacy {
  color: #fff;
  text-decoration: none;
}
.tp-footer__privacy:hover {
  color: #fff;
  text-decoration: underline;
}

@media screen and (max-width: 1100px) {
  .tp-access__inner { grid-template-columns: 1fr; gap: 28px; }
  .tp-access__map iframe { height: 380px; }
  .tp-footer__inner { flex-direction: column; justify-content: center; text-align: center; padding: 24px 20px; }
  .tp-footer__logo a { justify-content: center; }
}
@media screen and (max-width: 767px) {
  .tp-access { padding: 30px 12px 24px; }
  .tp-access__inner { padding: 0; }
  .tp-access__title { font-size: 22px; }
  .tp-access__title small { font-size: 14px; }
  .tp-access__name { font-size: 22px; }
  .tp-access__name small { font-size: 14px; }
  .tp-access__address { font-size: 14px; }
  .tp-access__contact { flex-direction: column; gap: 10px; font-size: 16px; }
  .tp-access__hours small { font-size: 14px; }
  .tp-access__train { margin-top: 20px; font-size: 15px; }
  .tp-access__map { padding: 5px; }
  .tp-access__map iframe { height: 280px; }
  .tp-footer__logo a { flex-direction: column; align-items: center; font-size: 21px; }
  .tp-footer__logo small { font-size: 13px; }
  .tp-footer__right { flex-direction: column; gap: 6px; font-size: 13px; }
  .tp-footer__copy { font-size: 12px; }
}
