/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain: Avada
*/

/* =========================================================
   Global（SP gaps：用途別に分離）
   - フッター ＆ Prev/Next：固定で揃える
   - 投稿本文：あとで自由に調整
   ========================================================= */
@media (max-width: 640px){
  :root{
    --sp-footer-gap: 38px; /* フッター＆Prev/Nextの基準線 */
    --sp-post-gap: 8px;    /* 投稿本文だけ別管理 */
  }
}

/* =========================================================
   info ヒーロー高さ固定（page-id-16）
   ========================================================= */
body.page-id-16 .fusion-slider-container,
body.page-id-16 .fusion-slider-container .tfs-slider,
body.page-id-16 .fusion-slider-container .flexslider,
body.page-id-16 .fusion-slider-container .flexslider .slides,
body.page-id-16 .fusion-slider-container .flexslider .slides > li{
  height: 70vh !important;
  max-height: 760px !important;
  min-height: 520px !important;
}

body.page-id-16 .fusion-slider-container img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.windows body.page-id-16 .fusion-slider-container,
.windows body.page-id-16 .fusion-slider-container .tfs-slider{ height: 75vh !important; }

.is-mac body.page-id-16 .fusion-slider-container,
.is-mac body.page-id-16 .fusion-slider-container .tfs-slider{ height: 71vh !important; }

@supports (-webkit-touch-callout: none){
  body.page-id-16 .fusion-slider-container,
  body.page-id-16 .fusion-slider-container .tfs-slider{ height: 72vh !important; }
}

/* =========================================================
   News block (tmp_news) : Information
   ========================================================= */
.tmp-news{
  margin-top: 12px;
  --h2_typography-margin-bottom: 0px;
}

.tmp-news__title{
  margin: 0 0 12px 0;
  font-size: 16px;
  font-family: inherit;
  font-weight: inherit;
  text-transform: none;
  letter-spacing: .06em;
}

.tmp-news__list{ list-style: none; margin: 0; padding: 0; }

.tmp-news__item{
  padding: 26px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.tmp-news__date{
  display: inline-block;
  margin-right: 20px;
  font-size: 13px;
  opacity: .6;
  letter-spacing: .04em;
  white-space: nowrap;
}

.tmp-news__link{ text-decoration: none; }
.tmp-news__link:hover{ text-decoration: underline; }

@media (max-width: 640px){
  .tmp-news__item{ padding: 14px 0; }
  .tmp-news__date{ display: block; margin: 0 0 6px 0; }
}

.tmp-news .fusion-title h2{ font-size: 20px !important; }

/* =========================================================
   Blog grid thumbnail ratio : 5:4
   ========================================================= */
.fusion-post-grid .fusion-image-wrapper,
.fusion-blog-layout-grid .fusion-image-wrapper{
  aspect-ratio: 5 / 4;
  overflow: hidden;
}

.fusion-post-grid .fusion-image-wrapper img,
.fusion-blog-layout-grid .fusion-image-wrapper img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.fusion-post-wrapper,
.products li.product{
  padding: 12px;
  box-sizing: border-box;
}

.fusion-post-wrapper img,
.products li.product img{ display: block; }

/* =========================================================
   Divider line（フッター／サイドバー）※線だけ
   ========================================================= */
.fusion-footer-widget-area .widget ul li,
.fusion-widget-area .widget ul li{
  border-bottom: 1px solid rgba(0,0,0,0.18) !important;
}

.fusion-footer-widget-area .widget ul li a,
.fusion-widget-area .widget ul li a{
  border-bottom: none !important;
  box-shadow: none !important;
}

.fusion-footer-widget-area .widget ul li a:after,
.fusion-footer-widget-area .widget ul li:after,
.fusion-widget-area .widget ul li a:after,
.fusion-widget-area .widget ul li:after{
  background-color: rgba(0,0,0,0.18) !important;
  border-color: rgba(0,0,0,0.18) !important;
}

/* Blog meta (date / category) */
.fusion-post-meta,
.fusion-meta-info{
  border-bottom: 1px solid rgba(0,0,0,0.18) !important;
  padding-bottom: 8px;
  margin-bottom: 16px;
}

/* =========================================================
   Blog Single：本文 / タイトル / 記事下 / PrevNext
   - PC：1024px + 2vw
   - Tablet：980px + 9vw（本文ライン統一）
   - SP：本文=sp-post-gap / PrevNext＆フッター=sp-footer-gap
   ========================================================= */

/* --- 本文 --- */
body.single-post #content .post-content,
body.single-post #content .fusion-post-content,
body.single-post #content .fusion-post-content-container,
body.single-post #content .fusion-post-content-wrapper{
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2vw;
  padding-right: 2vw;
  box-sizing: border-box;
}

/* --- タイトル＋メタ --- */
.single-post .fusion-post-title-meta-wrap{
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2vw;
  padding-right: 2vw;
  box-sizing: border-box;
}
.single-post .fusion-post-title,
.single-post .fusion-post-title-meta{
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  text-align: left;
}

/* --- 記事下ウィジット（#main 内 / footer除外） --- */
body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area){
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2vw;
  padding-right: 2vw;
  box-sizing: border-box;
}

/* PC：3カラム */
body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .fusion-columns{
  display: flex !important;
  gap: 40px;
  align-items: flex-start;
}
body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .fusion-column{
  float: none !important;
  width: 33.333% !important;
  margin: 0 !important;
}
body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .widget-title{
  margin: 0 0 18px 0 !important;
}
body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .widget ul{
  margin-top: 0 !important;
}

/* 〜1024px：記事下は1カラム */
@media (max-width: 1024px){
  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .fusion-columns{
    display: block !important;
  }
  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .fusion-column{
    width: 100% !important;
  }
  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .widget{
    margin-bottom: 28px !important;
  }
  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area) .widget:last-child{
    margin-bottom: 0 !important;
  }
}

/* --- Avada標準 Prev/Next 無効化 --- */
.single-post .fusion-post-navigation{ display: none !important; }
.single-post .fusion-page-title-bar .fusion-post-navigation,
.single-post .fusion-page-title-bar .fusion-post-nav,
.single-post .fusion-page-title-bar .fusion-post-navigation-wrapper,
.single-post .fusion-page-title-bar .fusion-next-prev,
.single-post .fusion-page-title-bar .fusion-post-nav-links{ display: none !important; }

/* --- custom Prev/Next（tmp-post-nav） --- */
.single-post .tmp-post-nav{
  display: flex;
  justify-content: space-between;
  align-items: center;

  max-width: 1024px;
  margin: 40px auto 40px;
  padding: 32px 2vw 20px;

  position: relative;
  box-sizing: border-box;
}
.single-post .tmp-post-nav::before{
  content: "";
  position: absolute;
  top: 0;
  left: 2vw;
  right: 2vw;
  height: 1px;
  background: rgba(0,0,0,.12);
}

/* 表示テキスト（擬似要素のみ） */
.single-post .tmp-post-nav a{
  display: inline-block;
  padding: 10px 0;
  font-size: 0;
  line-height: 1;
  text-decoration: none;
}
.single-post .tmp-post-nav a *{ font-size: 0; }
.single-post .tmp-post-nav .prev a::before,
.single-post .tmp-post-nav .next a::after{
  font-size: 14px;
  white-space: nowrap;
  display: inline-block;
}
.single-post .tmp-post-nav .prev a::before{ content: "< 前の記事"; }
.single-post .tmp-post-nav .next a::after{ content: "次の記事 >"; }
.single-post .tmp-post-nav a:hover::before,
.single-post .tmp-post-nav a:hover::after{ text-decoration: underline; }

/* --- Tablet（スマホ横〜タブ縦）：本文ラインに統一 --- */
@media (min-width: 641px) and (max-width: 1024px){

  body.single-post #content .post-content,
  body.single-post #content .fusion-post-content,
  body.single-post #content .fusion-post-content-container,
  body.single-post #content .fusion-post-content-wrapper{
    max-width: 980px;
    padding-left: 6vw;
    padding-right: 6vw;
  }

  .single-post .fusion-post-title-meta-wrap{
    max-width: 980px;
    padding-left: 6vw;
    padding-right: 6vw;
  }

  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area){
    max-width: 980px;
    padding-left: 9vw;
    padding-right: 9vw;
  }

  .single-post .tmp-post-nav{
    max-width: 980px;
    padding-left: 9vw;
    padding-right: 9vw;
  }

  .single-post .tmp-post-nav::before{
    left: 9vw;
    right: 9vw;
  }
}

/* --- SP：本文は sp-post-gap / PrevNext＆ウィジット＆フッターは sp-footer-gap --- */
@media (max-width: 640px){

  body.single-post #content .post-content,
  body.single-post #content .fusion-post-content,
  body.single-post #content .fusion-post-content-container,
  body.single-post #content .fusion-post-content-wrapper{
    padding-left: var(--sp-post-gap);
    padding-right: var(--sp-post-gap);
  }

  .single-post .fusion-post-title-meta-wrap{
    padding-left: var(--sp-post-gap) !important;
    padding-right: var(--sp-post-gap) !important;
  }

  body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area){
    padding-left: var(--sp-footer-gap);
    padding-right: var(--sp-footer-gap);
  }

  .single-post .tmp-post-nav{
    padding-left: var(--sp-footer-gap);
    padding-right: var(--sp-footer-gap);
  }
  .single-post .tmp-post-nav::before{
    left: var(--sp-footer-gap);
    right: var(--sp-footer-gap);
  }
  .single-post .tmp-post-nav .prev a::before,
  .single-post .tmp-post-nav .next a::after{
    font-size: 13px;
  }
}

/* =========================================================
   Footer（SP縦のみ余白調整）※レイアウト触らない
   ========================================================= */
@media (max-width: 640px){
  .fusion-footer-widget-area{
    padding-left: var(--sp-footer-gap) !important;
    padding-right: var(--sp-footer-gap) !important;
  }
}

/* =========================================================
   Archive：ページネーション（一覧）※SPだけ幅合わせ
   ========================================================= */
@media (max-width: 640px){
  body.blog .pagination,
  body.archive .pagination,
  body.category .pagination,
  body.tag .pagination,
  body.search .pagination,
  body.blog .nav-links,
  body.archive .nav-links,
  body.category .nav-links,
  body.tag .nav-links,
  body.search .nav-links{
    max-width: 980px;
    margin: 0 auto !important;
    padding: 0 var(--sp-footer-gap) !important;
    box-sizing: border-box;
  }
}

/* =========================================================
   Header：SP / Tablet ロゴ＆ハンバーガー位置（最小）
   ========================================================= */

/* SP：ロゴを小さく */
@media (max-width: 640px){
  .fusion-logo img{
    max-width: 160px !important;
    height: auto !important;
    display: block !important;
  }
}

/* SP：ロゴとハンバーガーの縦センター */
@media (max-width: 640px){
  .fusion-header-has-flyout-menu-content{
    align-items: center !important;
  }
  .fusion-logo{
    --logo_margin-top: 0px !important;
    --logo_margin-bottom: 0px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: translateY(-1px);
  }
  .fusion-flyout-menu-icons{
    padding-right: 4px;
  }
}

/* Tablet帯 */
@media (min-width: 641px) and (max-width: 1024px){
  .fusion-header-has-flyout-menu-content{
    align-items: center !important;
  }
  .fusion-logo{
    --logo_margin-top: 0px !important;
    --logo_margin-bottom: 0px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: translateY(-1px);
  }
  .fusion-logo img{ display: block !important; }
  .fusion-flyout-menu-icons{ padding-right: 4px; }
}

/* 保険：スマホ横〜タブ縦 */
@media (min-width: 568px) and (max-width: 1024px){
  .fusion-logo{ transform: translateY(-1px); }
}

/* =========================================================
   Single：Footer Widget の中身だけ本文幅に揃える（背景はフル幅のまま）
   ========================================================= */
.single-post .fusion-footer-widget-area .fusion-row{
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2vw;
  padding-right: 2vw;
  box-sizing: border-box;
}

/* Tablet：本文ライン（980 + 6vw）に合わせる */
@media (min-width: 641px) and (max-width: 1024px){
  .single-post .fusion-footer-widget-area .fusion-row{
    max-width: 980px;
    padding-left: 6vw;
    padding-right: 6vw;
  }
}

/* SP：フッター基準線 */
@media (max-width: 640px){
  .single-post .fusion-footer-widget-area .fusion-row{
    padding-left: var(--sp-footer-gap);
    padding-right: var(--sp-footer-gap);
  }
}

/* =========================================================
   SP（〜640）：single のフッターウィジット右寄り対策
   ========================================================= */
@media (max-width: 640px){
  .single-post .fusion-footer-widget-area{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .single-post .fusion-footer-widget-area .fusion-row{
    max-width: 1024px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-footer-gap) !important;
    padding-right: var(--sp-footer-gap) !important;
    box-sizing: border-box;
  }
}

/* =========================================================
   Single：幅の基準を1本化（本文・タイトル・PrevNext・記事下・フッター中身）
   ========================================================= */
body.single-post{
  --single-max: 1024px;
  --single-pad: 2vw;
}

@media (min-width: 641px) and (max-width: 1024px){
  body.single-post{
    --single-max: 980px;
    --single-pad: 6vw;
  }
}

@media (max-width: 640px){
  body.single-post{
    --single-max: 1024px;
    --single-pad: var(--sp-post-gap);
  }
}

body.single-post #content .post-content,
body.single-post #content .fusion-post-content,
body.single-post #content .fusion-post-content-container,
body.single-post #content .fusion-post-content-wrapper{
  max-width: var(--single-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--single-pad);
  padding-right: var(--single-pad);
  box-sizing: border-box;
}

body.single-post .fusion-post-title-meta-wrap{
  max-width: var(--single-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--single-pad);
  padding-right: var(--single-pad);
  box-sizing: border-box;
}

body.single-post #main .fusion-widget-area:not(.fusion-footer-widget-area){
  max-width: var(--single-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--single-pad);
  padding-right: var(--single-pad);
  box-sizing: border-box;
}

body.single-post .tmp-post-nav{
  max-width: var(--single-max);
  margin: 40px auto;
  padding: 32px var(--single-pad) 20px;
  position: relative;
  box-sizing: border-box;
}

body.single-post .tmp-post-nav::before{
  left: var(--single-pad);
  right: var(--single-pad);
}

body.single-post .fusion-footer-widget-area .fusion-row{
  max-width: var(--single-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--single-pad);
  padding-right: var(--single-pad);
  box-sizing: border-box;
}

/* =================================
   NEWS（CPT）single：テキスト専用
   ================================= */
body.single-news .fusion-sidebar,
body.single-news #sidebar{
  display: none !important;
}

body.single-news #content{
  width: 100% !important;
}

body.single-news #main .fusion-row{
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

body.single-news .fusion-footer-widget-area{
  display: none !important;
}

body.single-news #main{
  min-height: calc(100vh - 260px);
}

/* JSが動かない環境でも2秒後に必ず本文を出す保険 */
@media (prefers-reduced-motion: reduce){
  body.page-id-16 .fusion-page-wrapper{ opacity: 1 !important; }
}


/* =========================================================
   info splash（page-id-16）SAFE（HTML対応版）
   ========================================================= */

/* 本体は存在させたまま透明に（slider計算を殺さない） */
body.page-id-16 .fusion-page-wrapper{
  opacity: 0;
  transition: opacity .6s ease;
}
body.page-id-16.tmp-info-ready .fusion-page-wrapper{
  opacity: 1;
}

/* splash overlay */
body.page-id-16 #tmp-info-splash.tmp-info-splash{
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 2147483647;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transition: opacity .8s ease, visibility 0s linear 0s;
}

/* 中身の中央寄せ */
body.page-id-16 .tmp-info-splash__inner{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(4px);
}

/* =========================================================
   ② スプラッシュ中だけヘッダーを隠す（/info のみ）
   ========================================================= */
body.page-id-16:not(.tmp-info-ready) .fusion-header-wrapper,
body.page-id-16:not(.tmp-info-ready) #main-header,
body.page-id-16:not(.tmp-info-ready) .fusion-header,
body.page-id-16:not(.tmp-info-ready) .fusion-header-v1,
body.page-id-16:not(.tmp-info-ready) .fusion-header-v2{
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ===============================
 ロゴだけフェードアウト（透け防止）
   =============================== */

/* スプラッシュ自体は白のまま残す */
body.page-id-16 #tmp-info-splash.tmp-info-splash.is-hide{
  opacity: 1;                 /* ← 透明にしない */
  pointer-events: none;
  visibility: visible;
}

/* ロゴだけをフェードアウト */
body.page-id-16 .tmp-info-splash__logo{
  opacity: 1;
  transition: opacity .8s ease;
}

body.page-id-16 #tmp-info-splash.tmp-info-splash.is-hide .tmp-info-splash__logo{
  opacity: 0;
}


/* ロゴサイズ（srcset + sizes と整合） */
body.page-id-16 .tmp-info-splash__logo{
  width: 220px;
  height: auto;
  display: block;
}

@media (max-width: 640px){
  body.page-id-16 .tmp-info-splash__logo{
    width: 180px;
  }
}
