@charset "UTF-8";
/* DTP-Plus SP フッターは PC では非表示（メディアクエリ外 → Step E-4 ①） */
.site-footer { display: none; }
/*--------------------banner--footer-------------------------------------------------
------------------------------------------------------------------------------------*/
.banner-content{float:left;clear:both;width:100%;background-size:auto 100%!important;background-position:center center;background-repeat:repeat-x;position: relative;z-index: 0;overflow: hidden;}
.banner-content:before{content: '';background: inherit;filter: blur(1px);position: absolute;top: -5px;left: -5px;right: -5px;bottom: -5px;z-index: -1;}

.bc-back-c{background-color: rgba(0,0,0,0.75);float:left;clear:both;width:100%;}
.bc-back-c > div{clear:both;width:100%;max-width:900px;padding:5%;margin:0 auto;color:#FFF;}
.bc-com{font-size: 24px;text-align: center;margin-bottom: 5%;}
.bc-linkimg{text-align: center;}
.bc-linkimg img{width:60%;max-width:250px;}


.ter-banner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 2%;float:left;clear:both;width:100%;padding:4% 2%;box-sizing:border-box;}
.ter-banner div{width:100%;max-width:240px;box-sizing:border-box;}
.ter-banner div img{width:100%;height:auto;display:block;}


/*----------------------footer-------------------------------------------------
------------------------------------------------------------------------------------*/
.foot-main{float:left;clear:both;width:100%;border-bottom:solid 1px var(--foot-back);border-top:solid 1px var(--foot-back);background:var(--foot-back);padding:5% 0;}

.foot-main-in{margin:0 auto;clear:both;width:100%;max-width: var(--site-width);color:var(--foot-font);}
.foot-main-back{display: flex;flex-wrap:nowrap;justify-content:space-around;align-items:center;float:left;clear:both;width:100%;}

.foot-logo-box{width:12%;text-align: center;}
.foot-logo-box a img{width:90%;}

.footer-cont{width:65%;padding:20px 1%;float:left;clear:both;}
.ter-contbox{float:left;clear:both;width:100%;}
.footer-nav{display: flex;flex-wrap:nowrap;align-items:center;float:left;clear:both;width:100%;padding:0;}
.footer-nav-tit{width:15%;background:var(--main-c);color:var(--foot-font); text-align: center;padding:1%;font-size:21px;}
.footer-nav-list{padding:0;width:100%;}
.menu-footer-container{float:left;clear:both;width:100%;}
.menu-footer-container ul{display: flex;justify-content:space-around;flex-wrap:nowrap;width:100%;padding:0;}
.menu-footer-container ul li{padding:0;}
.menu-footer-container ul li a{color:var(--foot-font);text-align: center;font-size:18px;font-weight: bold;padding:1% ;float:left;clear:both;width:100%;white-space: nowrap;}
.menu-footer-container ul li a::after{position:absolute;bottom:-4px;left:0;content:'';width:100%;height:2px;background:var(--main-c);transform:scale(0, 1);transform-origin:left top;transition:transform .3s;}
.menu-footer-container ul li a:hover::after{transform:scale(1, 1);}
.menu-footer-container ul li a span{float:left;clear:both;width:100%;white-space: nowrap;font-weight:normal;font-size:14px;}

.foo-ad{color:var(--foot-font);padding:5px 0 0;float:left;clear:both;width:100%;}
.foo-ad > div{display: flex;justify-content:center;align-items:center;}
.foo-ad > div > div{padding:5% 5% 0;}
.corname{font-size: 21px;font-weight:600;padding:0 1% 0;}


.pm-box{padding:1% 2%;float:left;clear:both;width:100%;}
.pm-box img{height: 80px;}

.footer-adcont{width:23%;}
.footer-adcont ul{float:left;clear:both;width:100%;}
.footer-adcont ul li{width:100%;float:left;clear:both;background:var(--sub-c);border-radius:25px;}
.footer-adcont ul li:nth-child(2){margin:5% 0 0;}
.foot-tel{float:left;clear:both;width:100%;padding:30px 10% 5px;text-align:center;line-height:110%;white-space:pre-wrap; }
.foot-ma{padding:0 2% 3%;}

.sns-icon{font-size:64px;color:var(--foot-font);}


address{float:left;clear:both;width:100%;padding:15px 0;font-size:12px;text-align:center;letter-spacing:3px;margin:0 0;background:var(--copyright-back, var(--main-c));color:var(--copyright-color, var(--foot-font));}

/*----------------------------------Map--------------------------------------
------------------------------------------------------------------------------------------------- */
.map{float:left;width:100%;padding:0;margin:0;}
.acf-map{width:100%;clear:both;float:left;height:450px;margin:0;padding:0;}

/*----------------------topへ戻る-------------------------------------------------
------------------------------------------------------------------------------------*/
#page-top {position: fixed;bottom: 20px;right: 20px;font-size: 14px;line-height: 1;z-index: 99;}
#page-top a {background:var(--main-c);text-decoration: none;color:var(--sub-c);border-radius: 90px;opacity: 0.9;transition: all .3s ease;font-size:24px;border:1px solid var(--main-c);}
#page-top a:hover {text-decoration: none;background:var(--sub-c);color:var(--main-c);transform: translateY(-3px);}

/* ==========================================================================
   【PC版専用】CSSのみで動くトップ戻りボタン（JS完全廃止）
   ========================================================================== */
@media screen and (min-width: 768px) {

  #page-top {
    position: fixed;
    right: 30px;
    bottom: 30px;
    margin: 0;
    z-index: 99;

    /* 【超重要】初期状態は透明・クリック不可にしておく */
    opacity: 0;
    visibility: hidden;

    /* スクロール連動アニメーションの設定 */
    animation: pc-fade-in linear both;
    animation-timeline: scroll();
    animation-range: 0px 300px; /* 0pxから300pxスクロールする間にフワッと出る */
  }

  /* ボタン内のリンク・アイコン装飾（デザインはお好みで調整してください） */
  #page-top a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
  }

  /* 画面が上部にある時は非表示、スクロールしたら表示させるアニメーション */
  @keyframes pc-fade-in {
    to {
      opacity: 1;
      visibility: visible;
    }
  }

}

@media only screen and (max-width:767px){
#page-top{display:none!important;}
address{font-size:10px;letter-spacing:1px;}
body.has-sp-footer .foot-main{display: none;}

/*フッター*/
.foot-logo{float:left;clear:both;width:100%;padding:3% 10%; }
address{float:left;clear:both;width:100%;padding:10px 0 60px;font-size:12px;text-align:center;font-weight:400;letter-spacing:0.5px;background:var(--main-c);}

/* ==========================================================================
   スマホ用固定フッターナビ（ポップアップメニュー復活版）
   ========================================================================== */
.site-footer {
  display: block;
}

.site-footer .bottom-menu-wrap {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background: var(--sfoot-back);
  border-top: 2px solid var(--popup-border-01, var(--sfoot-font));
  z-index: 999;
}

.site-footer .bottom-menu {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
  position: relative;
}

.site-footer .bottom-menu > li {
  flex: 1;
  text-align: center;
}

.site-footer .bottom-menu > li > a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 8px 0;
  color: var(--sfoot-font);
  text-decoration: none;
  font-size:14px;
  line-height: 1.2;
}

.site-footer .bottom-menu i {
  font-size: 20px;
}


/* ==========================================================================
   上に浮き上がるポップアップメニューの共通設定
   ========================================================================== */
.has-popup-menu {
  position: relative;
}

/* 初期状態：フッターの後ろに隠しておく */
.footer-popup-box {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 48px; /* JS で上書きされる */
  background: var(--popup-back, var(--sfoot-back));
  border-bottom: 1px solid var(--popup-border-01, var(--popup-font, var(--sfoot-font)));
  visibility: hidden;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
  z-index: 1000;
}

.has-popup-menu.is-open .footer-popup-box {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

/* サブメニュー・トグルボタンはポップアップ内で非表示（トップレベルのみ表示） */
.footer-popup-list .menu__second,
.footer-popup-list .fs-sub-toggle {
  display: none;
}

/* ポップアップ内のリストスタイル */
.footer-popup-list {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.footer-popup-list li {
  border-top: 1px solid var(--popup-border-02, var(--popup-font, var(--sfoot-font)));
}

.footer-popup-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  color: var(--popup-font, var(--sfoot-font));
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
}

/* Font Awesomeアイコン・サブテキスト（custom_walker_nav_menu出力） */
.footer-popup-list li a .nav__col-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  flex-shrink: 0;
  font-size: 20px;
}
.footer-popup-list li a .nav__attr-title {
  margin-left: 20px;
  font-size: 11px;
  font-weight: normal;
  opacity: 0.7;
  white-space: nowrap;
}
/* 矢印を右端に寄せる */
.footer-popup-list li a::after { margin-left: auto; }

/* 矢印アイコン（>）を右端に自動付与（→T25：旧 li a::after の position:absolute/left:0 を必ず打ち消す） */
.footer-popup-list li a::after {
  position: static;
  content: "";
  width: 6px;
  height: 6px;
  background: transparent;
  border-top: 2px solid var(--popup-font, var(--sfoot-font, #fff));
  border-right: 2px solid var(--popup-font, var(--sfoot-font, #fff));
  transform: rotate(45deg);
  margin-left: auto; /* 右端に寄せる */
  flex-shrink: 0;
  bottom: auto; left: auto; transition: none;
}

/* ==========================================================================
   スマホ用固定フッターナビ（スクロール連動表示・非表示）
   ========================================================================== */
.site-footer .bottom-menu-wrap {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background: var(--sfoot-back);
  border-top: 2px solid var(--popup-border-01, var(--sfoot-font));
  z-index: 999;

  /* transform を使うと position:fixed の子が viewport 基準にならないので opacity/visibility で制御 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s;
}

.site-footer .bottom-menu-wrap.is-show {
  opacity: 1;
  visibility: visible;
}

/* 4つのボタンを横並びで均等に配置（ここは前回のままでOK） */
.site-footer .bottom-menu {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
}
} /* end @media max-width:768px */

/* Googleマップ（フッター下）：全幅表示。iframe は width:100% / 高さ px 固定の素直な形。
   clear:both で直前の float(.foot-main) の影響を除去。overflow:hidden は Safari 幅補正の横はみ出しクリップ用。 */
.g-Map{clear:both;width:100%;overflow:hidden;line-height:0;font-size:0;}
.g-Map iframe{width:100% !important;height:400px;border:0;display:block;}

/* ★Safari 固有：html{zoom} 下で iframe(置換要素) の width:100% が親でなく viewport 基準で解決され、
   実測が 0.88 倍に縮んで右に余白が出る（Chrome/Blink は正常なので触らない）。幅だけ 1/zoom 倍に補正。
   高さは px 固定（height:400px）＝% ではないので補正不要。overflow:hidden は横方向の 13.6% はみ出し
   （冗長な地図端）をクリップしてページ横スクロールを防ぐだけ＝縦は切らない（＝旧版の高さ補正＋縦切り取りは撤去）。
   Safari 判定は header.php の userAgent 判定で html.is-safari を付与。 */
html.is-safari .g-Map iframe{ width: calc(100% / var(--fhd-zoom, 1)) !important; }

/* 本文中に埋め込まれた全幅 iframe（Googleマップ等 width="100%"）も同じ Safari 幅ズレが起きるため一律補正。
   固定幅の埋め込み（width="340" の Facebook 等）は対象外＝壊さない。高さは各埋め込みの height 属性(px)依存で % ではないため無補正。
   ※ Safari のみ適用（html.is-safari）＝113.6%が Safari の×0.88描画で結果100%になり、コンテナからはみ出さない。 */
html.is-safari iframe[width="100%"]{ width: calc(100% / var(--fhd-zoom, 1)) !important; }
