/* グローバルスタイル */
body {
  font-family: 'poppins', 'zen-kaku-gothic-new', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #474646;
  background-image: url("../image/background.jpg");
  background-size: 70%;
  overflow-x: hidden;
}

/* 基本要素 */
img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

/* 基本フォント定義 */
.japanese-text,
.business-hours p,
.sp-info p {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.business-hours p span.number,
.sp-info p span.number {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
}

/* Zen Kaku Gothic New フォント */
.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

/* Poppins フォント - 通常スタイル */
.poppins-thin {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: normal;
}

.poppins-extralight {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: normal;
}

.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.poppins-black {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: normal;
}

/* Poppins フォント - イタリックスタイル */
.poppins-thin-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: italic;
}

.poppins-extralight-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: italic;
}

.poppins-light-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.poppins-extrabold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: italic;
}

.poppins-black-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: italic;
}

/* レイアウト */
.wrapper-1272 {
  width: 90%;
  max-width: 1272px;
  margin: auto;
}

.wrapper-1172 {
  width: 90%;
  max-width: 1172px;
  margin: auto;
}

.wrapper-790 {
  width: 90%;
  max-width: 790px;
  margin: auto;
}

.wrapper-716 {
  width: 90%;
  max-width: 716px;
  margin: auto;
}

/* フッタースタイル */
.site-footer {
  width: 100%;
  padding: 70px 0 30px;
  position: relative;
}

@media screen and (max-width: 834px) {
  .site-footer {
    padding: 45px 0 60px;
  }
}

@media screen and (max-width: 480px) {
  .site-footer {
    padding: 35px 0 45px;
  }
}

/* 波線装飾 */
.wave-decoration {
  width: 100%;
  height: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wave-img {
  display: block;
  flex-shrink: 0;
}

/* フッターロゴ */
.footer-logo {
  display: flex;
  justify-content: center;
  margin: 28px auto 0;
}

@media screen and (max-width: 834px) {
  .footer-logo {
    margin: 55px auto 0;
  }
}

.footer-logo img {
  width: 229px;
  height: 229px;
}

/* SP表示用の調整 */
@media screen and (max-width: 480px) {
  .wave-decoration {
    height: 10px;
  }

  .footer-logo img {
    width: 160px;
    height: 160px;
  }

  .footer-logo {
    margin: 40px auto 0;
  }
}

/* フッターナビゲーション */
.footer-nav {
  width: 100%;
  margin-top: 30px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

/* 共通のリストスタイル */
.footer-nav-list {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
  gap: 34px;
  width: 90%;
}

/* フッターナビのアイテム - 中央揃え強化 */
.footer-nav-item {
  padding: 0;
  margin: 0;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* アンカーとイメージの完全中央揃え */
.footer-nav-item a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.footer-nav-item img {
  display: block;
  vertical-align: middle;
}

/* PC表示（870px以上）- 1行に統合 */
@media screen and (min-width: 870px) {
  .footer-nav-list {
    display: inline-flex;
    vertical-align: middle;
    gap: 34px;
  }

  /* 下段を上段の横に配置 */
  .footer-nav-bottom {
    margin-left: 34px;
  }
}

/* ナビアイテム別の高さ指定 */
.footer-nav-item:nth-child(1) img,
.footer-nav-item:nth-child(2) img,
.footer-nav-item:nth-child(4) img {
  height: 14px;
  width: auto;
}

.footer-nav-item:nth-child(3) img,
.footer-nav-item:nth-child(5) img,
.footer-nav-item:nth-child(6) img {
  height: 16px;
  width: auto;
}

.footer-nav-item:nth-child(7) img:first-child {
  height: 15px;
  width: auto;
}

/* 外部リンクアイコンの調整 */
.footer-nav-item a.outlink {
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-nav-item .outlink-icon {
  margin-left: 8px;
  vertical-align: middle;
}

/* SPタブレット表示（834px以下） */
@media screen and (max-width: 834px) {

  /* フッターナビゲーション全体の調整 */
  .footer-nav {
    flex-direction: column;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    margin-top: 45px;
  }

  /* フッターナビリストの調整 */
  .footer-nav-list {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 0;
    margin: 0;
  }

  /* 各ナビアイテムの調整 */
  .footer-nav-item {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
  }

  /* SP表示での外部リンクアイコンの位置調整 */
  .footer-nav-item .outlink-icon {
    margin-left: 8px;
  }
}

/* フッターナビゲーション全体の調整SP */
@media screen and (max-width: 480px) {
  .footer-nav {
    flex-direction: column;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    margin-top: 35px;
  }
}

/* PCフッターのホバーエフェクト - 834px以上 */
@media screen and (min-width: 835px) {

  /* フッターアイテムのホバー設定 */
  .footer-nav-item a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding-bottom: 15px;
    min-height: 30px;
  }

  /* ホバー用アンダーライン */
  .footer-nav-item a::after {
    content: '';
    position: absolute;
    left: -0.5px;
    bottom: 5px;
    width: 100%;
    height: 5px;
    background-image: url('../image/navline.png');
    background-repeat: no-repeat;
    background-size: 0% 4.5px;
    background-position: 0% center;
    opacity: 0;
    transition: background-size 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
  }

  /* ホバー時のアンダーライン表示 */
  .footer-nav-item a:hover::after {
    background-size: 100% 4.5px;
    background-position: 0% center;
    opacity: 1;
  }

  /* 外部リンク（LINE）のアンダーライン調整 */
  .footer-nav-item:nth-child(7) a.outlink::after {
    width: calc(91% + 18px);
    left: -2px;
    bottom: 3px;
  }

  /* 外部リンクアイコンのホバーエフェクト */
  .footer-nav-item:nth-child(7) a.outlink .outlink-icon {
    transition: transform 0.3s ease;
  }

  .footer-nav-item:nth-child(7) a.outlink:hover .outlink-icon {
    transform: translateY(-1px);
  }
}

/* SNSアイコンコンテナ */
.footer-sns-icons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  margin-top: 10px;
  margin-bottom: 30px;
}

@media screen and (max-width: 834px) {
  .footer-sns-icons {
    margin-top: 30px;
    margin-bottom: 30px;
  }
}

/* 個別SNSアイコン */
.footer-sns-icon {
  display: block;
  transition: transform 0.3s ease;
}

/* SNSアイコンホバーエフェクト */
.footer-sns-icon:hover {
  transform: translateY(-2px);
}

/* タブレット以下ではホバー効果なし */
@media screen and (max-width: 834px) {
  .footer-sns-icon:hover {
    transform: none;
  }

  /* アイコン画像サイズ */
  .footer-sns-icon img {
    display: block;
  }

  .footer-sns-icon:nth-child(1) img,
  .footer-sns-icon:nth-child(2) img {
    width: 25px;
    height: auto;
  }

  .footer-sns-icon:nth-child(3) img {
    width: 22px;
    height: auto;
  }

  /* フッターコピーライト */
  .footer-copyright {
    margin-top: 10px;
    text-align: center;
  }
}

.footer-copyright {
  margin-bottom: 5px;
}

.footer-copyright p {
  font-size: 12px;
  font-weight: 700;
  margin: 0;
  padding: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

/* タブレット表示（834px以下）のコピーライト調整 */
@media screen and (max-width: 834px) {
  .footer-copyright {
    margin-top: 15px;
    width: 100%;
  }
}

/* SP表示（480px以下）のコピーライト調整 */
@media screen and (max-width: 480px) {
  .footer-copyright {
    margin-top: 5px;
    width: 100%;
  }
}