@charset "UTF-8";
/*
Theme Name: Cocoon Child
Theme URI: https://wp-cocoon.com/
Description: Cocoon専用の子テーマ
Author: わいひら
Author URI: https://nelog.jp/
Template: cocoon-master
Version: 1.1.3
*/

/************************************
** 0. 変数・ブレイクポイント
************************************/
/* mobile: <=768px / pc: >=769px */
:root{
  --gs-gold: #c6a32d;
}

/************************************
** 1. 共通レイアウト
************************************/
.logo-text { display: none; }
.page .entry-title { text-align: center; }
.page .date-tags { display: none; }

/* 背景表示を阻害している各レイヤーを透明にする */
#content,
#main,
#main .container,
.article,
.entry-content,
.content,
.wrapper,
.wrap,
.container {
  background: transparent !important;
}

/* サイト全体の背景 */
body {
  background: url("https://genso-serenade.com/wp-content/uploads/2025/11/haikei.webp") no-repeat center center fixed;
  background-size: cover;
}

/* 特定ページの背景（IDは差し替え） */
body.page-id-●●● {
  background: url("https://genso-serenade.com/wp-content/uploads/2025/07/rugira02.webp") no-repeat center center fixed;
  background-size: cover;
}

/************************************
** 2. リンクエフェクト
************************************/
a {
  position: relative;
  color: #202124;
  text-decoration: underline;
  transition: all 0.3s ease;
}
a::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.3);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  z-index: 1;
}
a:hover::after { opacity: 1; }
a span, a p, a strong, a em {
  position: relative;
  z-index: 2;
}

/************************************
** 3. ローディング画面
************************************/
#loading-screen {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 1s ease;
}
#loading-logo {
  width: 200px;
  opacity: 1;
  transition: opacity 1s ease;
}
.loaded #loading-screen {
  opacity: 0;
  pointer-events: none;
}

/************************************
** 4. キャラクター一覧（横スクロール）
************************************/
.character-wrapper {
  width: 100%;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

.character-carousel {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  scroll-behavior: smooth;
  gap: 20px;
  padding: 20px;
  margin: 0 auto;
  box-sizing: border-box;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  justify-content: flex-start;
  scrollbar-width: none;
  -ms-overflow-style: none;
  will-change: scroll-position;
}
.character-carousel::-webkit-scrollbar { display: none; }

.character-item {
  flex: 0 0 auto;
  width: 120px;
  text-align: center;
  scroll-snap-align: center;
  position: relative;
}

.character-item a {
  display: block;
  width: 120px;
  height: 120px;
  position: relative;
  text-decoration: none !important;
  border-bottom: none !important;
}

.character-item img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 2px solid #fff;
  transition: all 0.3s ease;
  z-index: 1;
}

.character-item .hover-img {
  position: absolute;
  inset: 0;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  z-index: 2;
}
.character-item:hover .hover-img { opacity: 1; }

.character-item p {
  margin-top: 6px;
  color: #fff;
  font-size: 14px;
  font-family: "Noto Sans JP", sans-serif;
}

/************************************
** 5. キャラクター紹介（共通）
************************************/
.character-section {
  min-height: 100vh;
  min-height: 100svh;          /* iOS対策 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  box-sizing: border-box;
  font-family: "Noto Serif JP", serif;
  position: relative;          /* 絶対配置の基準 */
  overflow: hidden;
}

.character-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  width: 100%;
  gap: 40px;
  position: relative;
  box-sizing: border-box;
}

.character-text {
  flex: 1;
  z-index: 2;
  box-sizing: border-box;
}

.character-text p {
  font-size: 18px;
  font-weight: normal;
  margin: 4px 0;
  font-family: "Noto Serif JP", serif;
  line-break: loose;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.character-name {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 8px;
  color: #fff;
}
.char-quote {
  font-size: 13px;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 0;
}

.character-text p,
.character-name,
.char-quote {
  color: #fff;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
}

/************************************
** 6. キャラ背景（クラス別）
************************************/
/* TOP */
.character-section.toprugira-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/toprugira.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topfuzisawa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/tophuzisawa.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topminaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topminaduki.webp") no-repeat center center fixed; background-size: cover; }
.character-section.toprikoris-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/tophigan.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topliam-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topliam.webp") no-repeat center center fixed; background-size: cover; }
.character-section.tophakase-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/tophakase.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topkannagi-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topkannagi.webp") no-repeat center center fixed; background-size: cover; }
.character-section.toppalsia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/toppalsia.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topkannaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topkannaduki.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topsofia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topsofia.webp") no-repeat center center fixed; background-size: cover; }
.character-section.tophowai-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/tophowai.webp") no-repeat center center fixed; background-size: cover; }
.character-section.topviora-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/topviora.webp") no-repeat center center fixed; background-size: cover; }
.character-section.toptouma-bg { background: url("https://genso-serenade.com/wp-content/uploads/2026/01/toptouma.webp") no-repeat center center fixed; background-size: cover; }

/* こちら彼岸花撲滅委員会 */
.character-section.kotirazeninhiganbana-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/zeninhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.meika-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/01meikahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.minaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/02minadukitatie.webp") no-repeat center center fixed; background-size: cover; }
.character-section.viola-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/03viora-2.webp") no-repeat center center fixed; background-size: cover; }

/* 暗殺グループ */
.character-section.ansatugurupu-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/zentaihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.rugira-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/rugira02-1.webp") no-repeat center center fixed; background-size: cover; }
.character-section.fuzisawa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/02-2huzisawa.webp") no-repeat center center fixed; background-size: cover; }
.character-section.liam-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/03-2liam.webp") no-repeat center center fixed; background-size: cover; }
.character-section.hakase-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/04-2hakase.webp") no-repeat center center fixed; background-size: cover; }
.character-section.kannnaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/05-2kannnaduki.webp") no-repeat center center fixed; background-size: cover; }
.character-section.sofia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/06sofia.webp") no-repeat center center fixed; background-size: cover; }
.character-section.palsia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/07palsia.webp") no-repeat center center fixed; background-size: cover; }
.character-section.takane-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0takanehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.azuno-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/08azunohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.ran-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/09ranhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.kasumi-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/10kasumihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.yuduru-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/11yuduru-2.webp") no-repeat center center fixed; background-size: cover; }
.character-section.howaito-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/12howaitohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.asuna-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/20asuna-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.gasumasukutaisa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/27gasumasukutaisa-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.kuro-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/23kuro-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.balaena-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/13belaenahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.kurai-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/26kurai-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.ruberutonaitomea-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/14ruberutohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.kannagi-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/15kannagihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.texino-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/24texino-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.satiko-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/16satikohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.rai-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0raihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.kurage-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/21kurage-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.foresto-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/22huxoresuto.png") no-repeat center center fixed; background-size: cover; }

/* 目玉の魔女 */
.character-section.medama-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/medamanomazyohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.sinseihaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/24texino-1.jpg") no-repeat center center fixed; background-size: cover; }

/* 此岸の魔術師 */
.character-section.iva-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/21kurage-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.vadon-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/27gasumasukutaisa-1.jpg") no-repeat center center fixed; background-size: cover; }
.character-section.charlotte-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/3sya-roxuttohaikei.webp") no-repeat center center fixed; background-size: cover; }

/* DEMOND教 */
.character-section.lily-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0liliehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mui-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/natumeguhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mutunozaki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0mutunozakihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.iduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/idukihaikei.webp") no-repeat center center fixed; background-size: cover; }

/* 悲願の魔術師 */
.character-section.licokis-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/20asuna.jpg") no-repeat center center fixed; background-size: cover; }

/* 咲来編暗殺グループ */
.character-section.hrugira-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/yousyoukirugirahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.hfuzisawa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hfuzisawahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.hkannaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hkannadukihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.htakane-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/htakanehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.hliam-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hliamhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.hazuno-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hazunohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.sriauxei-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/27gasumasukutaisa.jpg") no-repeat center center fixed; background-size: cover; }

/* No.0編 */
.character-section.nrugira-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0rugirahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nsofia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0sofiahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nfuzisawa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0fuzisawahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nliam-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0liamhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nhakase-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0hakasehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nkannagi-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0kannagihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nno007-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0no007.webp") no-repeat center center fixed; background-size: cover; }
.character-section.ntakane-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0takanehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nyuduru-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0yuduruhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nazuno-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hazunohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nkannaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/hkannadukihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nrai-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0raihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nlily-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0liliehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nmui-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/natumeguhaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nmutunozaki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/0mutunozakihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.niduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/idukihaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.nsyaroxtuto-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/3sya-roxuttohaikei.webp") no-repeat center center fixed; background-size: cover; }

/* 崩壊都市編 */
.character-section.mminaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/02minadukitatie.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mmeika-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/01meikahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mviola-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/03viora-2.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mtouma-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/toumahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mhakase-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/mhakasehaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mfuzisawa-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/mfuzisawahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mkannaduki-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/05-2kannnaduki.webp") no-repeat center center fixed; background-size: cover; }
.character-section.msofia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/msofiahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mhowai-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/12howaitohaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mpalsia-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/mpalsiahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mberaena-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/13belaenahaikei.webp") no-repeat center center fixed; background-size: cover; }
.character-section.mrubelt-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/07/14ruberutohaikei.webp") no-repeat center center fixed; background-size: cover; }

/* 始めての方：煌成世立ち絵 */
.character-section.hkuruse-bg { background: url("https://genso-serenade.com/wp-content/uploads/2025/08/kurusehaikei.webp") no-repeat center center fixed; background-size: cover; }

/************************************
** 7. 立ち絵エリア（画像）
************************************/
.character-image {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  opacity: 0;
  transform: translateX(100px);
  animation: fadeInRight 1.2s ease forwards;
  z-index: 1;
}

.character-image img {
  max-height: 90vh;
  max-height: 90svh;
  height: auto;
  width: auto;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

/* スケールクラス（PC想定） */
.character-image.scale-80 img { transform: scale(1.0); }
.character-image.scale-90 img { transform: scale(1.1); }
.character-image.scale-100 img { transform: translateY(15px) scale(1.0); }
.character-image.scale-110 img { transform: translateY(15px) scale(1.5); }
.character-image.scale-120 img {
  transform: scale(1.5);
  transform-origin: center center;
  margin-left: -25%;
}

/************************************
** 8. アニメーション・特殊演出
************************************/
@keyframes fadeInRight {
  to { opacity: 1; transform: translateX(0); }
}

.glitch {
  background: #000 no-repeat center;
  background-size: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  position: relative;
}

/************************************
** 9. レスポンシブ（汎用）
************************************/
@media screen and (max-width: 768px) {
  .character-content {
    position: relative;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  /* 汎用：重ね表示 */
  .character-text {
    position: absolute;
    left: 5%;
    right: 5%;
    bottom: 5%;
    text-align: left;
    padding: 10px;
    width: auto;
    box-sizing: border-box;
  }

  .character-text p,
  .character-text li,
  .char-quote,
  .character-name {
    font-size: 14px;
    line-height: 1.4;
  }

  .character-image { justify-content: center !important; }

  /* 立ち絵：既定（必要に応じて微調整） */
  .character-image img {
    max-width: 150% !important;             /* 180% → 安定側 */
    transform: translateX(60px) !important; /* 200px → 弱める */
  }

  .character-item { width: 80px; }
  .character-item a,
  .character-item img,
  .character-item .hover-img {
    width: 80px;
    height: 80px;
  }
  .character-item p { font-size: 11px; }

  /* すべての段落テキスト */
  .wp-block-paragraph,
  .wp-block-group p,
  .entry-content p {
    font-size: 14px;
    line-height: 1.4;
    word-break: keep-all;
  }

  p.mobile-small-text { font-size: 13px !important; }
}

/************************************
** 10. モバイルメニュー（表示）
************************************/
.mobile-menu-visible {
  display: block;
  text-align: center;
  margin-top: 10px;
}
.mobile-menu-visible ul {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.mobile-menu-visible li {
  flex: 0 0 40%;
  max-width: 45%;
}
.mobile-menu-visible li a {
  color: var(--gs-gold);
  text-decoration: none;
  font-size: 13px;
  display: block;
  padding: 5px 0;
}
@media screen and (min-width: 769px) {
  .mobile-menu-visible { display: none !important; }
}

/************************************
** 11. PCヘッダー修正（中央寄せ・背景）
************************************/
@media screen and (min-width: 769px) {
  .logo { display: none !important; }

  #navi {
    display: flex;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.6);
  }
  #navi ul {
    display: flex;
    justify-content: center;
    gap: 20px;
  }
  #navi ul li { float: none !important; }
}

.character-list-wrapper {
  display: flex;
  justify-content: center;
}

/************************************
** 12. キャラ表示UI（グリッド）
************************************/
.character-display {
  text-align: center;
  margin-top: 30px;
}
.character-display h2 {
  font-size: 2rem;
  margin-bottom: 5px;
}
.character-display p {
  font-size: 1.2rem;
  color: #777;
  margin-bottom: 15px;
}
.main-character-image {
  width: 240px;
  height: 240px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  transition: 0.3s;
}
.character-selector {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}
.character-grid {
  display: grid;
  grid-template-columns: repeat(3, 80px);
  gap: 15px;
}
.character-grid img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  cursor: pointer;
  border-radius: 0;
  transition: transform 0.2s ease;
  border: 2px solid transparent;
}
.character-grid img:hover {
  transform: scale(1.05);
  border-color: #999;
}
.character-grid img.active { border-color: #333; }

/************************************
** 13. TOPの横スクロール選択（カルーセル）
************************************/
.custom-carousel {
  position: relative;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}
@media screen and (min-width: 769px) {
  .custom-carousel { max-width: min(900px, 70%); margin: 0 auto; }
}

.carousel-track{
  display: flex;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.carousel-track::-webkit-scrollbar{
  display: none;
  height: 0;
}
.carousel-slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
  box-sizing: border-box;
}
.carousel-slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  border: none;
}

/* 矢印 */
.arrow-btn{
  display: block;
  font-size: 1.4rem;
  padding: 0.3em 0.5em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.4);
  color: #fff;
  border: none;
  cursor: pointer;
  z-index: 10;
  user-select: none;
  border-radius: 0.3em;
}
.prev-btn { left: -2.2em; }
.next-btn { right: -2.2em; }
.arrow-btn:hover { background-color: rgba(0, 0, 0, 0.6); }
@media screen and (max-width: 768px) {
  .arrow-btn { display: none; }
}

/* 角丸（画像 or 枠） */
.custom-carousel .carousel-slide img{
  border-radius: 16px;
}
.custom-carousel .carousel-track{
  border-radius: 16px;
  overflow: hidden;
}
/* PCでも矢印を消す（no-arrows を付けた時だけ） */
.custom-carousel.no-arrows .arrow-btn{
  display: none !important;
}

/* TOPページ疑似背景：PC/スマホで画像切替 */
body.page-id-12::before{
  content:"";
  display:block;
  width:100%;
  background-image:url("https://genso-serenade.com/wp-content/uploads/2026/01/TOPgasumaho.webp"); /* スマホ用 */
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  height:550px;
}
@media screen and (min-width: 769px){
  body.page-id-12::before{
    background-image:url("https://genso-serenade.com/wp-content/uploads/2026/01/TOPgaPC.webp"); /* PC用 */
    height:800px;
  }
}

/************************************
** 14. フッター
************************************/
.footer-bottom {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.footer-bottom-logo {
  margin: 0 auto;
  float: none;
  text-align: center;
}
.footer-bottom-menu {
  display: inline-block;
  float: none;
  text-align: center;
  margin: 0 auto;
}
.footer-bottom-content {
  text-align: center;
  float: none;
  margin: 0 auto;
}
.footer-bottom-logo a img { transition: filter 0.3s ease; }
.footer-bottom-logo a:hover img { filter: brightness(1.15); }

/* モバイル時：標準フッターのロゴを非表示（ウィジェット側で出す前提） */
@media (max-width: 834px){
  .footer-bottom-logo{ display: none !important; }
  .footer-bottom-menu{ margin-top: 10px !important; }
}

/************************************
** 15. TOP（page-id-12）YouTube埋め込み：スマホでも確実に表示
************************************/
body.page-id-12 .entry-content figure.wp-block-embed,
body.page-id-12 .entry-content figure.wp-block-embed-youtube,
body.page-id-12 .entry-content figure.wp-block-embed.is-type-video {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
body.page-id-12 .entry-content .wp-block-embed__wrapper {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  position: relative;
}
body.page-id-12 .entry-content .wp-block-embed__wrapper::before {
  content: "";
  display: block;
  padding-top: 56.25%; /* 16:9 */
}
body.page-id-12 .entry-content .wp-block-embed__wrapper iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block;
}
body.page-id-12 .entry-content iframe[src*="youtube.com"],
body.page-id-12 .entry-content iframe[src*="youtu.be"] {
  height: 100% !important;
}

/************************************
** 16. 追加CSS：メニューアイコン固定
************************************/
.menu-toggle {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 9999;
  background: none !important;
  box-shadow: none !important;
  padding: 0;
}
.menu-toggle span { display: none; }
.menu-toggle::before { font-size: 24px; }
@media screen and (min-width: 769px) {
  .menu-toggle { display: none; }
}

/************************************
** 17. ユーティリティ
************************************/
.text-fix {
  line-break: loose;
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: keep-all;
}
.video-contaner,
.video-container {
  margin: 0 auto;
}

/************************************
** 18. GS キャラクターページ統合（B運用）
************************************/
/* 横スクロールUI（character-slider / character-carousel 共通） */
body.gs-character-page .character-slider,
body.gs-character-page .character-carousel {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  gap: 12px;
  padding: 10px 0;
  scrollbar-width: none;
}
body.gs-character-page .character-slider::-webkit-scrollbar,
body.gs-character-page .character-carousel::-webkit-scrollbar {
  display: none;
}

/* ドラッグ中の誤動作対策 */
body.gs-character-page .character-slider img,
body.gs-character-page .character-carousel img {
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
}

/* STORY等：テキスト縁取りOFF */
body.gs-character-page.gs-no-outline .character-text p,
body.gs-character-page.gs-no-outline .character-name,
body.gs-character-page.gs-no-outline .char-quote {
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}

/* キャラスライダーのアイコンサイズ（90px） */
body.gs-character-page .character-slider .character-item img {
  width: 90px;
  height: 90px;
  object-fit: cover;
  border-radius: 50%;
  transition: transform 0.2s ease;
}
body.gs-character-page .character-slider .character-item:hover img {
  transform: scale(1.05);
}

/* PC時のテキスト位置（GSだけ） */
@media screen and (min-width: 769px) {
  body.gs-character-page .character-text {
    padding-left: 60px;
    max-width: 600px;
    box-sizing: border-box;
  }
}

/************************************
** 19. 本文禁則：標準に戻しつつ、リンクだけ折る
************************************/
.entry-content,
.entry-content p,
.entry-content li,
.wp-block-paragraph,
.wp-block-group p {
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  white-space: normal;
}

/* 長いURL/英数字だけ折る */
.entry-content a,
.entry-content code,
.entry-content pre {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ユーティリティ（強制改行）を本文から外す */
.character-text p,
.text-fix {
  overflow-wrap: normal !important;
  word-break: normal !important;
  line-break: strict !important;
}

/************************************
** 20. TOP + 初めての方へ：スマホで fixed を殺して安定させる
************************************/
body.page-id-12 .character-section.toprugira-bg,
body.page-id-12 .character-section.topfuzisawa-bg,
body.page-id-12 .character-section.topminaduki-bg,
body.page-id-12 .character-section.toprikoris-bg,
body.page-id-12 .character-section.topliam-bg,
body.page-id-12 .character-section.tophakase-bg,
body.page-id-12 .character-section.topkannagi-bg,
body.page-id-12 .character-section.toppalsia-bg,
body.page-id-12 .character-section.topkannaduki-bg,
body.page-id-12 .character-section.topsofia-bg,
body.page-id-12 .character-section.tophowai-bg,
body.page-id-12 .character-section.topviora-bg,
body.page-id-12 .character-section.toptouma-bg,

body.page-id-887 .character-section.toprugira-bg,
body.page-id-887 .character-section.topfuzisawa-bg,
body.page-id-887 .character-section.topminaduki-bg,
body.page-id-887 .character-section.toprikoris-bg,
body.page-id-887 .character-section.topliam-bg,
body.page-id-887 .character-section.tophakase-bg,
body.page-id-887 .character-section.topkannagi-bg,
body.page-id-887 .character-section.toppalsia-bg,
body.page-id-887 .character-section.topkannaduki-bg,
body.page-id-887 .character-section.topsofia-bg,
body.page-id-887 .character-section.tophowai-bg,
body.page-id-887 .character-section.topviora-bg,
body.page-id-887 .character-section.toptouma-bg{
  background-attachment: scroll !important;
  background-size: contain !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
}


/************************************
** 21. スライダー：選択/ハイライト無効（横スクロール快適化）
************************************/
.character-slider,
.character-slider *{
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

/* スマホ：中央寄せ幅制限（必要最小限） */
@media screen and (max-width: 768px){
  .character-content{
    width: min(92vw, 520px);
    margin: 0 auto;
  }
  .character-slider{
    width: min(92vw, 520px);
    margin: 0 auto;
  }
}

/************************************
** 22. GS STRIP（STORY / Short） 横スクロール帯（TOP + 初めての方へ限定）
************************************/

/* ====== この2ページだけに効かせる ====== */
body.page-id-12 .gs-strip,
body.page-id-887 .gs-strip{
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  padding-left: clamp(12px, 3vw, 36px);
  padding-right: clamp(12px, 3vw, 36px);
  box-sizing: border-box;

  margin-top: 28px;
  margin-bottom: 28px;
}

body.page-id-12 .gs-strip-title,
body.page-id-887 .gs-strip-title{
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: .06em;
  text-align: center;
}

body.page-id-12 .gs-strip-track,
body.page-id-887 .gs-strip-track{
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 18px;

  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;

  width: 100%;
  padding: 10px 14px;
  box-sizing: border-box;

  scrollbar-width: none;
  -ms-overflow-style: none;

  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
body.page-id-12 .gs-strip-track::-webkit-scrollbar,
body.page-id-887 .gs-strip-track::-webkit-scrollbar{ display:none; }

body.page-id-12 .gs-card,
body.page-id-887 .gs-card{
  flex: 0 0 auto;
  text-decoration: none !important;
  color: inherit;

  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

body.page-id-12 .gs-media,
body.page-id-887 .gs-media{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(0,0,0,.08);
}

body.page-id-12 .gs-thumb,
body.page-id-887 .gs-thumb{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

body.page-id-12 .gs-meta,
body.page-id-887 .gs-meta{
  margin-top: 8px;
  display: grid;
  gap: 2px;
  text-align: center;
}
body.page-id-12 .gs-label,
body.page-id-887 .gs-label{ font-size: 11px; opacity: .8; letter-spacing: .08em; }
body.page-id-12 .gs-caption,
body.page-id-887 .gs-caption{ font-size: 13px; line-height: 1.35; }

/* サイズ */
body.page-id-12 .gs-strip--story .gs-card,
body.page-id-887 .gs-strip--story .gs-card{ width: clamp(260px, 34vw, 540px); }
body.page-id-12 .gs-strip--story .gs-media,
body.page-id-887 .gs-strip--story .gs-media{ aspect-ratio: 16 / 9; }

body.page-id-12 .gs-strip--short .gs-card,
body.page-id-887 .gs-strip--short .gs-card{ width: clamp(160px, 18vw, 260px); }
body.page-id-12 .gs-strip--short .gs-media,
body.page-id-887 .gs-strip--short .gs-media{ aspect-ratio: 9 / 16; }

@media screen and (max-width: 768px){
  body.page-id-12 .gs-strip-track,
	body.page-id-887 .gs-strip-track{ padding: 8px 10px; }

  body.page-id-12 .gs-strip--story .gs-card,
  body.page-id-887 .gs-strip--story .gs-card{ width: 80vw; max-width: 360px; }

  body.page-id-12 .gs-strip--short .gs-card,
  body.page-id-887 .gs-strip--short .gs-card{ width: 46vw; max-width: 210px; }
}
/* ====== GS STRIP：長文キャプションでカードが膨張するのを止める（最重要） ====== */
body.page-id-12 .gs-strip-track > .gs-card,
body.page-id-887 .gs-strip-track > .gs-card{
  min-width: 0;              /* flexの“内容幅が最小”を解除 */
}

/* カード幅を確定（内容に引っ張られない） */
body.page-id-12 .gs-strip--story .gs-card,
body.page-id-887 .gs-strip--story .gs-card{
  flex: 0 0 clamp(260px, 34vw, 540px); /* widthではなくflex-basisで固定 */
  width: clamp(260px, 34vw, 540px);
  max-width: clamp(260px, 34vw, 540px);
}

/* メタ領域も縮められるように */
body.page-id-12 .gs-meta,
body.page-id-887 .gs-meta{
  min-width: 0;
}

/* 長い英数字・記号を必ず折る（ここがないとまた膨張する） */
body.page-id-12 .gs-caption,
body.page-id-887 .gs-caption{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 見た目を揃える：2行で打ち止め（任意だが商用なら推奨） */
body.page-id-12 .gs-caption,
body.page-id-887 .gs-caption{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
body.page-id-12 .gs-card::after,
body.page-id-887 .gs-card::after{
  content: none !important;
}

/************************************
** 23. Cocoon SNSフォローボタン：幻想Serenadeゴールド統一 + 横一列
************************************/
/* 個別SNSカラーを殺す */
.sns-follow-buttons a,
.sns-follow a,
.footer .sns-follow-buttons a,
.footer .sns-follow a{
  background: transparent !important;
  border: 1px solid var(--gs-gold) !important;
  color: var(--gs-gold) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
.sns-follow-buttons a i,
.sns-follow a i,
.sns-follow-buttons a svg,
.sns-follow a svg{
  color: var(--gs-gold) !important;
  fill: var(--gs-gold) !important;
}
/* img保険（完全単色化は限界があるので“寄せる”） */
.sns-follow-buttons a img,
.sns-follow a img{
  filter: grayscale(1) brightness(0.8) sepia(1) saturate(6) hue-rotate(5deg) !important;
}
.sns-follow-buttons a:hover,
.sns-follow a:hover{
  background: var(--gs-gold) !important;
  color: #fff !important;
}
.sns-follow-buttons a:hover i,
.sns-follow a:hover i,
.sns-follow-buttons a:hover svg,
.sns-follow a:hover svg{
  color: #fff !important;
  fill: #fff !important;
}

/* フッターウィジェットのタイトル非表示 */
.footer .widget_sns_follow_buttons .widget-title,
.footer .widget_sns-follow-buttons .widget-title{
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 横一列（ul/li想定） */
.footer .widget_sns_follow_buttons .sns-follow-buttons ul,
.footer .widget_sns-follow-buttons .sns-follow-buttons ul{
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.footer .widget_sns_follow_buttons .sns-follow-buttons li,
.footer .widget_sns-follow-buttons .sns-follow-buttons li{
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}

/* 正方形ボタン寄せ */
.footer .widget_sns_follow_buttons .sns-follow-buttons a,
.footer .widget_sns-follow-buttons .sns-follow-buttons a{
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 0 !important;
  border-radius: 10px !important;
}

/* =========================
   TOP + 初めての方へ：キャラ一覧（横スクロール）強制復旧
   ========================= */
body.page-id-12 .character-carousel,
body.page-id-12 .character-slider,
body.page-id-887 .character-carousel,
body.page-id-887 .character-slider{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  align-items: center !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-x !important;

  gap: 20px !important;
  width: 100% !important;
  max-width: min(1100px, 92vw) !important;
  margin: 0 auto !important;

  scrollbar-width: none;
  -ms-overflow-style: none;
}

body.page-id-12 .character-carousel::-webkit-scrollbar,
body.page-id-12 .character-slider::-webkit-scrollbar,
body.page-id-887 .character-carousel::-webkit-scrollbar,
body.page-id-887 .character-slider::-webkit-scrollbar{
  display: none;
}

/* 各アイテムを横並びの“固定幅”にして縦落ちを防止 */
body.page-id-12 .character-item,
body.page-id-887 .character-item{
  flex: 0 0 auto !important;
}

/* 横スクロール本体（TOP + 887 だけ面倒を見る） */
body.page-id-12 .character-carousel,
body.page-id-12 .character-slider,
body.page-id-887 .character-carousel,
body.page-id-887 .character-slider{
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-x !important;               /* 横スワイプ優先 */
  scroll-snap-type: none !important;            /* 引っ掛かりの主犯になりやすいので切る */
}

/* “選択される”を徹底的に殺す（長押し問題の本丸） */
body.page-id-12 .character-carousel,
body.page-id-12 .character-carousel * ,
body.page-id-12 .character-slider,
body.page-id-12 .character-slider *,

body.page-id-887 .character-carousel,
body.page-id-887 .character-carousel * ,
body.page-id-887 .character-slider,
body.page-id-887 .character-slider *{
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-touch-callout: none !important;       /* iOS長押しメニュー対策 */
  -webkit-tap-highlight-color: transparent !important;
}

/* 画像ドラッグを無効化（ドラッグ＝画像D&D化する事故を防ぐ） */
body.page-id-12 .character-carousel img,
body.page-id-12 .character-slider img,
body.page-id-887 .character-carousel img,
body.page-id-887 .character-slider img{
  -webkit-user-drag: none !important;
  user-drag: none !important;
  pointer-events: none !important;              /* 画像がタップを奪わない */
}

/* リンクはタップできるように保つ（画像はpointer-events:noneでもOK） */
body.page-id-12 .character-carousel a,
body.page-id-12 .character-slider a,
body.page-id-887 .character-carousel a,
body.page-id-887 .character-slider a{
  pointer-events: auto !important;
}

/* マウス操作の体験も良くする（PCで掴んでスクロールしやすい） */
body.page-id-12 .character-carousel,
body.page-id-12 .character-slider,
body.page-id-887 .character-carousel,
body.page-id-887 .character-slider{
  cursor: grab;
}
body.page-id-12 .character-carousel:active,
body.page-id-12 .character-slider:active,
body.page-id-887 .character-carousel:active,
body.page-id-887 .character-slider:active{
  cursor: grabbing;
}

/************************************
** Scroll Fade-in（下から出現）
************************************/

/* 初期状態：見えない＋少し下 */
.gs-reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .65s ease, transform .65s ease;
  will-change: opacity, transform;
}

/* 表示状態 */
.gs-reveal.is-in{
  opacity: 1;
  transform: translateY(0);
}

/* 連続ブロックを少しだけ段差で出す（任意） */
.gs-reveal[data-delay]{
  transition-delay: var(--gs-delay, 0ms);
}

/* 体調・環境配慮：動きを減らす設定の人にはアニメ無し */
@media (prefers-reduced-motion: reduce){
  .gs-reveal{
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
.contact-consent-text{
  font-size: 14px;
  line-height: 1.7;
  margin: 18px 0 8px;
}
.wpcf7-form .wpcf7-list-item{
  margin: 0;
}
/* =========================
   CF7 送信ボタン：VIEW ALL風
========================= */
.wpcf7 .gs-btn{
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: fit-content;
  min-width: 180px;
  padding: 14px 26px;

  border: 0;
  border-radius: 999px;
  background: #c6a32d;
  color: #fff;

  font-weight: 700;
  letter-spacing: .06em;
  cursor: pointer;
  transition: transform .12s ease, filter .12s ease;
}

.wpcf7 .gs-btn:hover{
  filter: brightness(1.05);
  transform: translateY(-1px);
}
.wpcf7 .gs-btn:active{
  transform: translateY(0);
}
.wpcf7 .gs-btn:focus-visible{
  outline: 2px solid rgba(198,163,45,.45);
  outline-offset: 3px;
}

/* =========================
   同意ブロック：中央寄せ（確定版）
   ※フォーム側で .gs-consent-wrap を使用している前提
========================= */
.wpcf7 form .gs-consent-wrap{
  text-align: center;
  margin: 18px auto 0;
}

/* 同意テキスト */
.wpcf7 form .gs-consent-wrap .contact-consent-text{
  text-align: center;
  margin: 18px auto 10px;
}

/* チェック行：テーマの左寄せ強制を潰して中央固定 */
.wpcf7 form .gs-consent-wrap .wpcf7-form-control-wrap{
  display: flex !important;
  justify-content: center !important;
  padding-left: 0 !important;
}

/* checkbox + 文字をひとかたまりに */
.wpcf7 form .gs-consent-wrap .wpcf7-list-item{
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
}

/* チェックと文字の間隔 */
.wpcf7 form .gs-consent-wrap input[type="checkbox"]{
  margin-right: 8px !important;
}

/* 念のため：ラベルの余計な余白を除去 */
.wpcf7 form .gs-consent-wrap label,
.wpcf7 form .gs-consent-wrap .wpcf7-list-item-label{
  margin: 0 !important;
}

/* 送信ボタンの上余白（見栄え） */
.wpcf7 form input.gs-btn{
  margin-top: 18px;
}
/* 送信ボタンを確実に中央へ（テーマの指定に勝つ） */
.wpcf7 form input.gs-btn{
  display: block !important;
  width: fit-content !important;
  margin: 18px auto 0 !important;
}
.wpcf7 form .gs-consent-wrap{
  display: block !important;
  width: 100%;
  text-align: center !important;
}
/* 同意文：中央寄せのまま“塊”として整える */
.wpcf7 form .gs-consent-wrap .contact-consent-text{
  max-width: 32em;         /* 行の長さを揃えて見た目を整える */
  margin-left: auto;
  margin-right: auto;
  line-height: 1.9;
  letter-spacing: .03em;
}
@media (max-width: 480px){
  .wpcf7 form .gs-consent-wrap .contact-consent-text{
    font-size: 14px;
  }
}
.gs-contact-lead{ text-align:center; line-height:2.1; letter-spacing:.03em; margin:0 auto 18px; }

/* デフォルト：PC改行ON */
.gs-contact-lead .pc-br{ display:inline; }

/* スマホ：PC改行OFF（自然折り）にするなら */
@media (max-width: 768px){
  .gs-contact-lead .pc-br{ display:none; }
}
.gs-guide-fab{
  position: fixed;
  right: 18px;
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 9999;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  padding: 10px 12px 10px 14px;
  border-radius: 999px;
  text-decoration: none;

  background: rgba(10,10,12,.82);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}

.gs-guide-fab__label{ display:flex; flex-direction:column; line-height:1.05; }
.gs-guide-fab__label .en{ font-size: 12px; letter-spacing:.18em; opacity:.9; }
.gs-guide-fab__label .jp{ font-size: 11px; opacity:.75; }

.gs-guide-fab__close{
  appearance:none;
  border:0;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
}

@media (max-width: 768px){
  .gs-guide-fab{ right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
  .gs-guide-fab__label .jp{ display:none; } /* モバイルは英字だけでスッキリ */
}

@media (prefers-reduced-motion: reduce){
  .gs-guide-fab{ transition:none !important; }
}
.gs-guide-fab{
  position: fixed;
  right: 18px;
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 9999;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  padding: 10px 12px 10px 14px;
  border-radius: 999px;
  text-decoration: none;

  background: rgba(10,10,12,.82);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}

.gs-guide-fab__label{ display:flex; flex-direction:column; line-height:1.05; }
.gs-guide-fab__label .en{ font-size: 12px; letter-spacing:.18em; opacity:.9; }
.gs-guide-fab__label .jp{ font-size: 11px; opacity:.75; }

.gs-guide-fab__close{
  appearance:none;
  border:0;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
}

@media (max-width: 768px){
  .gs-guide-fab{ right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
  .gs-guide-fab__label .jp{ display:none; } /* モバイルは英字だけでスッキリ */
}

@media (prefers-reduced-motion: reduce){
  .gs-guide-fab{ transition:none !important; }
}
/* Floating CTA（TOP only） */
body.home .gs-float-cta{
  position: fixed;
  right: 18px;
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 9999;

  display: block;
  width: min(180px, 42vw);
  border-radius: 12px;
  overflow: hidden;

  box-shadow: 0 10px 30px rgba(0,0,0,.45);
  transition: transform .18s ease, filter .18s ease, opacity .18s ease;
}

body.home .gs-float-cta img{
  display: block;
  width: 100%;
  height: auto;
}

body.home .gs-float-cta:hover{
  transform: translateY(-2px);
  filter: brightness(1.03);
}

/* TOP以外は非表示 */
body:not(.home) .gs-float-cta{ display:none; }

/* 右下UI干渉を避けてスマホは少し小さく */
@media (max-width: 768px){
  body.home .gs-float-cta{
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: min(160px, 46vw);
  }
}

/* 動きが苦手な人への配慮 */
@media (prefers-reduced-motion: reduce){
  body.home .gs-float-cta{ transition:none; }
}
/* ===== Floating CTA（TOPのみ） ===== */
body.home .gs-float-cta{
  position: fixed;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 99999;

  display: block;
  width: clamp(92px, 22vw, 140px); /* ←スマホでも暴れない */
  height: auto;

  padding: 0 !important;
  margin: 0 !important;
}
body.home .gs-float-cta img{
  display: block;
  width: 100%;
  height: auto;
}

/* TOP以外は非表示 */
body:not(.home) .gs-float-cta{ display:none !important; }
/* 白い角丸の箱を完全除去（テーマ側上書き） */
body.home a.gs-float-cta{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

body.home .gs-float-cta img{
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* 告知ニュース：読みやすい幅へ */
body.category-news #content,
body.category-news #main,
body.category-news .content-in{
  max-width: 1100px;
  margin: 0 auto;
}

/* 一覧カード化 */
body.category-news .entry-card,
body.category-news .archive-entry,
body.category-news .list-entry{
  background: rgba(255,255,255,0.78);
  border-radius: 16px;
  padding: 18px;
  margin: 18px 0;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
}

/* タイトルとメタを近づける */
body.category-news .entry-title,
body.category-news .archive-entry-title{
  margin: 0 0 6px;
  line-height: 1.35;
}

/* 日付などメタ情報の視認性アップ */
body.category-news .post-date,
body.category-news .date{
  opacity: .85;
  font-size: .92em;
}

/* 抜粋を3行で統一して、情報密度を揃える */
body.category-news .entry-content,
body.category-news .archive-entry-content,
body.category-news .list-entry-content{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 「続きを読む」系のリンクをボタンっぽく */
body.category-news .more-link,
body.category-news a.btn,
body.category-news .read-more a{
  display: inline-block;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(198,163,45,0.55);
  text-decoration: none;
}
/* 強制表示：右上の×（テーマCSSに潰されないように） */
#gsLightbox .gs-lightbox__close--floating{
  position: fixed !important;
  top: max(12px, env(safe-area-inset-top)) !important;
  right: max(12px, env(safe-area-inset-right)) !important;
  z-index: 1000000 !important;

  display: grid !important;
  place-items: center !important;

  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;

  border: 0 !important;
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;

  cursor: pointer !important;
  font-size: 22px !important;
  line-height: 1 !important;
}
/* =========================
   GS STRIP：ページIDに依存しない膨張防止パッチ（最優先）
========================= */
.gs-strip .gs-strip-track{
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.gs-strip .gs-strip-track::-webkit-scrollbar{ display:none; }

/* flexアイテム膨張の主犯を殺す */
.gs-strip .gs-strip-track > .gs-card{
  min-width: 0;          /* ←これが無いと“内容幅”で巨大化します */
  flex: 0 0 auto;
  text-decoration: none !important;
  color: inherit;
}

/* STORYカード：幅を確定（どのページでも効く） */
.gs-strip.gs-strip--story .gs-card{
  flex: 0 0 clamp(260px, 34vw, 540px);
  width: clamp(260px, 34vw, 540px);
  max-width: clamp(260px, 34vw, 540px);
}

/* Shortカード（使うなら） */
.gs-strip.gs-strip--short .gs-card{
  flex: 0 0 clamp(160px, 18vw, 260px);
  width: clamp(160px, 18vw, 260px);
  max-width: clamp(160px, 18vw, 260px);
}

/* メディア比率 */
.gs-strip.gs-strip--story .gs-media{ aspect-ratio: 16 / 9; }
.gs-strip.gs-strip--short .gs-media{ aspect-ratio: 9 / 16; }

.gs-strip .gs-media{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(0,0,0,.08);
}
.gs-strip .gs-thumb{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

/* 長文キャプションでカードが広がるのを確実に止める */
.gs-strip .gs-meta{ min-width: 0; }
.gs-strip .gs-caption{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 2行で打ち止め（任意だが見た目が揃う） */
.gs-strip .gs-caption{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* あなたの全リンク共通a::afterを、このカードだけ無効化 */
.gs-strip a.gs-card::after{
  content: none !important;
}
