@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

/* =============================================
   フォント設定
============================================= */
body {
  font-family: 'Shippori Mincho', serif;
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
}

h1, h2, h3, h4, h5, h6,
.c-headLogo__link {
  font-family: 'EB Garamond', 'Shippori Mincho', serif;
}


/* =============================================
   サイト幅設定
   ▼ サイト全体の幅を変更したい場合はここを変更
============================================= */
:root {
  --site-width: 480px;
}


/* =============================================
   白カード構造
============================================= */
#body_wrap {
  max-width: var(--site-width);
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.18);
  min-height: 100vh;
  position: relative;
}


/* =============================================
   ヘッダー全体
============================================= */
.l-header {
  background: var(--color_header_bg) !important;
  box-shadow: none !important;
  border-bottom: none !important;
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.l-header__inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 60px 24px !important;
  box-sizing: border-box !important;
  min-height: 100vh !important;
  gap: 0 !important;
  text-align: center !important;
}


/* =============================================
   サイトタイトル
   ▼ タイトルの文字サイズを変更したい場合は font-size を変更
============================================= */
.l-header__logo,
.-series-right .l-header__logo {
  margin: 0 0 3px 0 !important;
  text-align: center !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
}

.c-headLogo {
  margin: 0 !important;
  text-align: center !important;
  width: 100% !important;
}

.c-headLogo.-txt {
  width: 100% !important;
  text-align: center !important;
  margin: 0 0 0 5px !important;
}

.c-headLogo__link {
  font-size: 2rem !important;        /* ▼ タイトルサイズ変更 */
  letter-spacing: 0.25em !important;
  color: #333 !important;
  font-family: 'EB Garamond', serif !important;
  display: flex !important;
  justify-content: center !important;
  text-decoration: none !important;
  text-align: center !important;
  width: 100% !important;
}


/* =============================================
   ナビゲーション・メニューボタン非表示
============================================= */
.l-header__gnav,
.c-gnavWrap,
#gnav,
.l-header__menuBtn,
.l-header__customBtn,
#fix_header,
.l-fixHeader {
  display: none !important;
}


/* =============================================
   ヘッダー内ウィジェット(PC・スマホ両方表示)
============================================= */
.w-header.pc_ {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

.w-header.pc_ .w-header__inner {
  display: block !important;
  text-align: center !important;
}


/* =============================================
   MV INFO 全体構造
============================================= */
.ohana-mv-info {
  text-align: center !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}


/* =============================================
   MV INFO - ロゴ画像
   ▼ 画像サイズを変更したい場合は width を変更
============================================= */
.ohana-mv-info__logo {
  margin: 0 0 20px 0 !important;
}

/* PCでは余白を小さく */
@media screen and (min-width: 960px) {
  .ohana-mv-info__logo {
    margin: 0 0 1px 0 !important;
  }
}

.ohana-mv-info__logo-img {
  width: 150px !important;          /* ▼ ロゴ画像サイズ */
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}


/* =============================================
   MV INFO - 営業時間・定休日
============================================= */
.ohana-mv-info__hours {
  font-family: 'Shippori Mincho', serif !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.15em !important;
  color: #555 !important;
  margin: 0 0 6px !important;
  background: none !important;
  display: block !important;
}

.ohana-mv-info__holiday {
  font-family: 'Shippori Mincho', serif !important;
  font-size: 0.78rem !important;
  color: #888 !important;
  margin: 0 0 24px !important;
  background: none !important;
  display: block !important;
}


/* =============================================
   MV INFO - SNSボタン(Instagram 2つ)
============================================= */
.ohana-mv-info__sns {
  display: flex !important;
  justify-content: center !important;
  gap: 12px !important;
  margin-bottom: 20px !important;
}

/* SNSボタン共通スタイル */
.ohana-mv-info__sns-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'EB Garamond', serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  color: #555 !important;
  border: 1px solid #aaa !important;
  border-radius: 6px !important;
  padding: 8px 20px !important;
  text-decoration: none !important;
  background: #fff !important;
  transition: background 0.3s, color 0.3s !important;
  min-width: 140px !important;      /* ▼ 両方のボタン幅を統一 */
}

.ohana-mv-info__sns-btn:hover {
  background: #eee !important;
  color: #333 !important;
  border-color: #888 !important;
}

/* 左のInstagram - OHANAラベル付き */
.ohana-mv-info__sns-btn--ohana-ig {
  position: relative !important;
  padding-left: 50px !important;    /* ▼ ラベル分のスペース */
}

.ohana-mv-info__sns-label {
  position: absolute !important;
  left: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: #555 !important;
  letter-spacing: 0.05em !important;
}

/* 右のInstagram - BALOONボタン */
.ohana-mv-info__sns-btn--baloon-ig {
  /* 共通スタイルのみ適用 */
}


/* =============================================
   MV INFO - LINEボタン
============================================= */
.ohana-mv-info__line {
  width: 100% !important;
  max-width: 320px !important;      /* ▼ LINEボタンの最大幅 */
  margin: 0 auto 40px !important;
}

.ohana-mv-info__line-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 10px 24px !important;
  background: #ffffff !important;
  border: 1px solid #aaa !important;
  border-radius: 30px !important;
  font-family: 'EB Garamond', serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #555 !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
}

.ohana-mv-info__line-btn:hover {
  background: #eee !important;
  color: #333 !important;
  border-color: #888 !important;
}

.ohana-mv-info__line-btn svg {
  flex-shrink: 0 !important;
}


/* =============================================
   MV INFO 全体構造
============================================= */
.ohana-mv-info {
  text-align: center !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}


/* =============================================
   MV INFO - ロゴ画像
   ▼ 画像サイズを変更したい場合は width を変更
============================================= */
.ohana-mv-info__logo {
  margin: 0 0 20px 0 !important;
}

/* PCでは余白を小さく */
@media screen and (min-width: 960px) {
  .ohana-mv-info__logo {
    margin: 0 0 1px 0 !important;
  }
}

.ohana-mv-info__logo-img {
  width: 150px !important;          /* ▼ ロゴ画像サイズ */
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}


/* =============================================
   MV INFO - 営業時間・定休日
============================================= */
.ohana-mv-info__hours {
  font-family: 'Shippori Mincho', serif !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.15em !important;
  color: #555 !important;
  margin: 0 0 6px !important;
  background: none !important;
  display: block !important;
}

.ohana-mv-info__holiday {
  font-family: 'Shippori Mincho', serif !important;
  font-size: 0.78rem !important;
  color: #888 !important;
  margin: 0 0 24px !important;
  background: none !important;
  display: block !important;
}


/* =============================================
   MV INFO - SNSセクション(Instagram 2つ)
============================================= */
.ohana-mv-info__sns {
  display: flex !important;
  justify-content: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
  width: 80% !important;
  max-width: 250px !important;
}

/* 各SNSアイテム(タイトル+ボタン) */
.ohana-mv-info__sns-item {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0px !important;
}

/* SNSタイトル(OHANA / BALOON) */
.ohana-mv-info__sns-title {
  font-family: 'EB Garamond', serif !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.15em !important;
  color: #333 !important;
  font-weight: 400 !important;
  text-align: center !important;
}

/* SNSボタン共通スタイル */
.ohana-mv-info__sns-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  font-family: 'EB Garamond', serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.05em !important;
  color: #333 !important;
  border: 1px solid #aaa !important;
  border-radius: 6px !important;       /* ▼ インスタと同じ角丸 */
  padding: 8px 8px !important;
  text-decoration: none !important;
  background: #fff !important;
  transition: background 0.3s, color 0.3s !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.ohana-mv-info__sns-btn:hover {
  background: #eee !important;
  color: #333 !important;
  border-color: #888 !important;
}

.ohana-mv-info__sns-btn svg {
  flex-shrink: 0 !important;
}


/* =============================================
   MV INFO - LINEボタン
============================================= */
.ohana-mv-info__line {
  width: 100% !important;
  max-width: 200px !important;      /* ▼ インスタ2つの合計より小さく */
  margin: 0 auto 40px !important;
}

.ohana-mv-info__line-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 6px 15px !important;
  background: #ffffff !important;
  border: 1px solid #aaa !important;
  border-radius: 6px !important;    /* ▼ インスタと同じ角丸 */
  font-family: 'EB Garamond', serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #333 !important;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
}

.ohana-mv-info__line-btn:hover {
  background: #eee !important;
  color: #333 !important;
  border-color: #888 !important;
}

/* =============================================
   MV INFO - スクロールアニメーション
============================================= */
.ohana-mv-scroll {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
}

.ohana-mv-scroll__text {
  font-family: 'EB Garamond', serif !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.3em !important;
  color: #fff !important;
  animation: scrollTextFade 1.8s ease-in-out infinite !important;
}

.ohana-mv-scroll__bar {
  position: relative !important;
  width: 1px !important;
  height: 60px !important;           /* ▼ スクロール線の長さ */
  background: rgba(180,160,140,0.2) !important;
  overflow: hidden !important;
}

.ohana-mv-scroll__bar::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    #fff 40%,                        /* ▼ スクロール線の色 */
    #fff 60%,
    transparent 100%
  ) !important;
  animation: scrollLine 1.8s ease-in-out infinite !important;
}

/* スクロールアニメーション定義 */
@keyframes scrollLine {
  0%   { transform: translateY(-100%); }
  100% { transform: translateY(200%); }
}

@keyframes scrollTextFade {
  0%, 100% { opacity: 0.4; }
  50%       { opacity: 1; }
}

/* =============================================
   レスポンシブ: スマホでのヘッダー順序修正
============================================= */
@media screen and (max-width: 959px) {
  .l-header__inner {
    flex-direction: column !important;
  }

  .l-header__logo {
    order: 0 !important;
  }

  .w-header.pc_ {
    order: 1 !important;
  }
}


/* =============================================
   レスポンシブ: PC幅でのヘッダー中央揃え
============================================= */
@media screen and (min-width: 960px) {
  .-series-right .l-header__inner {
    justify-content: center !important;
    align-items: center !important;
    flex-direction: column !important;
  }

  .-series-right .l-header__logo {
    margin-right: 0 !important;
    justify-content: center !important;
  }

  .-series-right .w-header {
    margin-left: 0 !important;
  }
}


/* =============================================
   コンテンツエリア
============================================= */
#content,
.l-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.l-mainContent,
.l-mainContent__inner,
.post_content,
.l-article {
  padding: 0 !important;
  margin: 0 !important;
}


/* =============================================
   フッター
============================================= */
.l-footer {
  background: #fff !important;
  margin: 0 !important;
  padding: 0 !important;
}

.l-footer__inner,
.l-footer__foot {
  padding: 16px !important;
  margin: 0 !important;
  text-align: center !important;
}

.l-footer .l-container {
  max-width: 100% !important;
  padding: 0 !important;
}