/*
Theme Name: Lightning Child
Template: lightning
Version: 1.0
*/

/* ------------------------------
   全体のフォント指定（A1明朝）
------------------------------ */
body.page .entry-body p,
body.page .entry-body h2 {
  font-family: "A1明朝", "A1Mincho", serif !important;
}

/* ------------------------------
   本文レイアウトと背景色
------------------------------ */
body.page .entry-body {
  background-color: #eef5f9 !important;
  padding: 40px 1.5em !important;
  max-width: 900px !important;
  margin: 0 auto !important;
  box-sizing: border-box;
}

/* ------------------------------
   本文テキストのスタイル
------------------------------ */
body.page .entry-body p {
  font-size: 0.9rem !important;
  line-height: 1.8 !important;
  margin-bottom: 1.4em !important;
  letter-spacing: 0.01em;
  color: #2a2a2a;
}

/* ------------------------------
   h2見出しのスタイル
------------------------------ */
body.page .entry-body h2.wp-block-heading {
  text-align: center;
  font-size: 1.25rem !important;
  font-weight: 500 !important;
  color: #2a2a2a !important;
  background: #fdfdfd !important;
  border-left: 6px solid #5fa8d3 !important;
  padding: 0.6em 1em !important;
  margin: 1.8em auto 1.2em auto !important;
  border-radius: 4px !important;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.04);
  max-width: 100%;
  box-sizing: border-box;
}

/* ------------------------------
   紹介用（キャラクター交互レイアウト対応）
------------------------------ */
.character-profile {
  display: flex;
  align-items: center;   gap: 2rem;
  max-width: 900px;
  margin: 2em auto;
  flex-wrap: wrap;
}
/* 偶数番目（2個目・4個目…）は画像を右に */
.character-profile:nth-of-type(even) {
  flex-direction: row-reverse;
}

.character-image img {
  max-width: 180px;
  height: auto;
  display: block;
  margin: 0 auto;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  box-shadow: none !important;
  background: none !important;
  border-radius: 0 !important;
}

.character-text {
  flex: 1;
  font-size: 0.95rem;
  line-height: 1.7;
  padding-top: 0.5em;
  text-align: left;
}

/* ------------------------------
   スマホ対応（768px以下）
------------------------------ */
@media screen and (max-width: 768px) {
  .character-profile {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .character-text {
    padding: 0 1em;
    text-align: left !important;
  }

  .character-image img {
    max-width: 220px;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  .character-profile figure {
    margin: 0 auto !important;
    display: block !important;
    width: auto !important;
  }
}

/* ------------------------------
   汎用調整
------------------------------ */
hr {
  margin-bottom: 1.5em;
}

/* ------------------------------
   h1非表示（自動生成されるタイトル）
------------------------------ */
.page-header {
  display: none !important;
}

.site-body {
  padding: 0.8rem 0 0.5rem !important;
}

/* ------------------------------
   改行コントロール
------------------------------ */
.br-pc {
  display: inline;
}
@media screen and (max-width: 768px) {
  .br-pc {
    display: none;
  }
}

.br-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .br-sp {
    display: inline;
  }
}

/* ------------------------------
   スライダー調整（トップページのみ）
------------------------------ */
.page-id-25 .wpcf7 {
  display: block;
  max-width: 600px;
  margin: 10px auto 40px auto;
  padding: 40px 30px;
  background-color: #f1f1f1;
  border-radius: 12px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
}

.swiper-3d {
  max-width: 840px !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 auto !important;
}

.slider img {
  max-height: 1080px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* ------------------------------
  Pを中に入れる
------------------------------ */
p.typesquare_option {
  max-width: 95%;
  margin: 0 auto;
  text-align: left; /* 必要に応じて */
}

/* ------------------------------
  スライド
------------------------------ */

.custom-slider {
  max-width: 100%;
}
.slide {
  position: relative;
  max-height: 400px;
  overflow: hidden;
  margin-bottom: 10px;
}
.slide img {
  width: 100%;
  height: auto;
  display: block;
}
.caption {
  position: absolute;
  bottom: 20px;
  left: 30px;
  color: white;
  font-size: 1.8rem;
  background: rgba(0, 0, 0, 0.5);
  padding: 10px 15px;
  border-radius: 8px;
}

.swiper {
  width: 100%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
}
.swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* ------------------------------
  TOP About
------------------------------ */

/* Aboutセクション全体のラッパー */
.about-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  background-color: #eef5f9;
  padding: 2rem 1rem;
  max-width: 1000px;
  margin: 0 auto;
  flex-wrap: wrap;
}

/* キャラ画像 */
.about-image img {
  width: 250px;
  height: auto;
  display: block;
}

/* メッセージエリア */
.about-message {
  max-width: 500px;
  font-size: 1rem;
  line-height: 1.8;
  color: #333;
}

.about-message p {
  margin-bottom: 1rem;
}

/* ボタン */
.btn-about {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  background-color: #409bd3;
  color: white;
  border-radius: 6px;
  text-decoration: none;
  transition: background-color 0.3s;
}

.btn-about:hover {
  background-color: #307bb0;
}

/* スマホ対応 */

  .about-message {
    max-width: 100%;
  }

  .about-image img {
    margin: 0 auto;
  }
}

/* TOPセクションのボックスに枠と影を追加 */
.home .section-box {
  border: 2px solid #ccc;
  border-radius: 12px;
  background: #f9f9ff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 30px;
}

/* キャラ画像に軽い影と枠線を */
.home .section-box img {
  border-radius: 8px;
  border: 1px solid #ddd;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* CTAボタンを目立たせる */
.home .section-box .wp-block-button__link {
  background: linear-gradient(135deg, #59d, #37b);
  color: #fff;
  border-radius: 6px;
  padding: 12px 24px;
  font-size: 1.1em;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  transition: background 0.3s ease;
}

.home .section-box .wp-block-button__link:hover {
  background: linear-gradient(135deg, #37b, #59d);
}

/* 全体の囲いに枠線と影を追加 */
.about-wrapper {
  border: 2px solid #ccc;
  border-radius: 16px;
  padding: 32px;
  background: linear-gradient(to bottom, #f9f9ff, #e0eafc);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
}

/* キャラ画像にも軽く影を */
.about-image img {
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  max-width: 100%;
  height: auto;
}

/* メッセージ側の装飾（バランス調整） */
.about-message {
  font-size: 1.1em;
  line-height: 1.8;
  color: #333;
  flex: 1;
}

.about-section-title {
  font-size: 1.6em;
  font-weight: 700;
  color: #444;
  text-align: center;
  margin: 0 auto 24px auto;
  border-bottom: 2px solid #a0cfff;
  padding-bottom: 18px;
}

.about-wrapper {
  display: flex;
  flex-direction: column; /* デフォルトは縦並び */
  align-items: center;
  gap: 24px;
}

@media screen and (min-width: 768px) {
  .about-wrapper {
    flex-direction: row; /* 768px以上で横並び */
    justify-content: center;
    align-items: flex-start;
  }

  .about-image {
    max-width: 300px;
    margin: 38px 0 0 0;
  }

  .about-message {
    max-width: 500px;
    text-align: left;
  }
}

@media screen and (max-width: 767px) {
  .about-message .btn-about {
    display: inline-block;
    margin: 16px auto 0;
    text-align: center;
  }
  .about-message {
    text-align: center;
  }
}

/* ------------------------------
  footer
------------------------------ */
/* Lightningテーマのフッターコピーライトを強制的に非表示 */
.container.site-footer-copyright {
    display: none !important;
}


/* 自分用のコピーライトを表示 */
.custom-copyright {
    text-align: center;
    font-size: 14px;
    padding: 20px 0;
    color: #666;
}

/* レスポンシブにも対応（必要に応じて） */
@media (max-width: 768px) {
  .custom-copyright {
    font-size: 12px;
  }
}

.site-footer-content {
  padding-top: 1em !important;
  padding-bottom: 1em !important;
}

/* フッターの左右カラムを消す */
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:not(:nth-child(2)){
  display: none !important;
}

/* 残した真ん中をフル幅にする */
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:nth-child(2){
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  text-align: center;
}

/* フッターの真ん中ウィジェット内テキストを中央寄せに強制 */
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:nth-child(2) .widget,
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:nth-child(2) .widget_block,
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:nth-child(2) .widget_block p,
.site-footer .site-footer-content .row > .col-lg-4.col-md-6:nth-child(2) p.typesquare_option{
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100% !important;
}

/* ------------------------------
  contact
------------------------------ */
.contact-intro {
  background: #f7faff;
  border: 1px solid #dceaff;
  border-radius: 8px;
  padding: 1.5em;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
/* お問い合わせフォーム本体の灰色背景を白に変更 */
.wpcf7 { 
    background-color: #ffffff !important;
    box-shadow: none !important;
    border-radius: 0.5rem; /* オプション：角を少し丸める */
    padding: 2rem;
}
.wpcf7 input[type="submit"] {
  background-color: #60b6e3; /* 淡い水色 */
  color: white;
  padding: 12px 24px;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
}
.wpcf7 input[type="submit"]:hover {
  background-color: #3498db;
}

/* ------------------------------
  policy
------------------------------ */

.policy-wrapper {
  line-height: 1.8;
  font-size: 16px;
  color: #333;
  background: #f9f9f9;
  padding: 2em;
  border-radius: 10px;
}
.policy-wrapper h2 {
  font-size: 24px;
  border-bottom: 2px solid #ccc;
  margin-bottom: 1em;
}
.policy-wrapper h3 {
  font-size: 20px;
  margin-top: 1.5em;
  color: #555;
}
.policy-wrapper a {
  color: #0073aa;
  text-decoration: underline;
}

/* ------------------------------
  youtube
------------------------------ */
/* ===== セクション外側（背景は親に合わせて“浮かない”） ===== */
.youtube-section-wrapper{
  max-width: 920px;
  margin: 3rem auto;
  padding: 0 1rem;
}
.youtube-promo-box{
  background: inherit;                          /* 親背景を継承 */
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  padding: 1.75rem 1.25rem;
}
.section-title.in-box{
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  text-align: center;
  font-family: 'Yu Mincho','ヒラギノ明朝 ProN',serif;
  font-size: 1.6rem;
  color: #333;
  border-bottom: 1px solid rgba(0,0,0,.12);
}

/* ===== 共通カード（「このサイトについて」に寄せる） ===== */
.promo-card{
  max-width: 960px;
  margin: 2.5rem auto;
  padding: 2rem 1.5rem;
  border: 1px solid #dfe7ef;
  border-radius: 18px;
  background: linear-gradient(180deg,#f6fbff 0%,#eef5fb 100%);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
}

/* 見出し：上下ライン＋明朝体 */
.promo-title{
  position: relative;
  margin: 0 0 1.25rem;
  text-align: center;
  font-family: 'Yu Mincho','ヒラギノ明朝 ProN',serif;
  color: #2b2b2b;
}
.promo-title::before,
.promo-title::after{
  content:"";
  display:block;
  height:2px;
  background:#8fb6d6;
  opacity:.7;
}
.promo-title::before{ margin:.2rem 0 1rem; }
.promo-title::after{  margin:1rem 0 .2rem; }
.promo-title > span{
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  font-weight:700;
}

/* ===== 行レイアウト（キャラ＋吹き出し） ===== */
.promo-row{ display:flex; align-items:center; gap:.8rem; margin:1.25rem 0 1.5rem; }
.promo-row.-reverse{ flex-direction:row-reverse; text-align:right; }

/* 互換：古い .character-row を使ってても同等に動かす */
.character-row{ display:flex; align-items:center; gap:.8rem; margin:1.25rem 0 1.5rem; }
.character-row.reverse{ flex-direction:row-reverse; text-align:right; }

/* 立ち絵（透過PNG前提） */
.promo-chara{
  width:265px; height:auto; flex:0 0 auto;
  background:none !important; border:none !important; box-shadow:none !important;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.08));  /* うっすら足元影だけ */
}

/* 吹き出し（セリフ＋サムネ） */
.promo-bubble{
  background: linear-gradient(180deg,#f6fbff 0%,#eef5fb 100%);
  border:1px solid #e8eef4;
  border-radius:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  padding:1rem 1.25rem;
  max-width:620px;
  text-align:center;
  line-height:1.7; color:#444; font-size:.98rem;
}
.promo-bubble p{ margin:.6rem 0 0; font-size:.95rem; line-height:1.55; }

/* サムネ画像（リンク内） */
.thumb-img{
  width:100%; max-width:380px;
  margin-top:.5rem;
  border-radius:10px;
  box-shadow:0 4px 10px rgba(0,0,0,.1);
  transition: transform .25s ease;
}
.thumb-img:hover{ transform: scale(1.03); }

/* ボタン（使っている場合用） */
.promo-btn{
  display:inline-block; margin-top:.6rem; padding:.6rem 1.1rem;
  background:#2f79c7; color:#fff; text-decoration:none;
  border-radius:9px; font-weight:700; font-size:.95rem;
  transition: filter .2s ease;
}
.promo-btn:hover{ filter:brightness(.92); }

/* ===== レスポンシブ ===== */
@media (max-width: 1024px){
  .promo-chara{ width:180px; }
}
@media (max-width: 768px){
  .promo-card{ padding:1.5rem 1rem; }
  .promo-row,
  .character-row{ flex-direction:column !important; text-align:center !important; }
  .promo-chara{ width:110px; }
  .promo-bubble{ max-width:100%; }
}


/* ------------------------------
  dream
------------------------------ */

/* ヒーロー画像＆余白（据え置き） */
.dream-hero{ text-align:center; margin-bottom:2rem; }
.dream-hero img{
  max-width:100%; height:auto; display:block; margin:0 auto; border-radius:12px;
}

/* CTA 共通 */
.dream-cta{ margin-top:1rem; }

.dream-cta .btn{
  display:inline-block;
  padding:12px 22px;
  font-size:1rem;
  font-weight:700;
  border-radius:10px;
  text-decoration:none;
  line-height:1;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 6px 16px rgba(0,0,0,.10);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
  cursor:pointer;
  color:#fff; /* 基本は白文字 */
}
.dream-cta .btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.14);
}

/* 活動動画はこちら：やわらかいアプリコット系にトーンダウン */
.dream-cta .btn-primary{
  background:linear-gradient(180deg, #F7B37A 0%, #EAA36A 100%);
  /* 読みにくい環境向け、微妙に飽和を上げる */
  filter:saturate(.98);
}
.dream-cta .btn-primary:hover{
  filter:saturate(1.04);
}

/* ほしいものリスト：濁りを抑えた落ち着きグリーンに統一 */
.dream-cta .btn-support{
  /* 白文字のコントラストを確保するため、下側は少しだけ深めに */
  background:linear-gradient(180deg, #A6D3A0 0%, #78B773 100%);
  filter:saturate(.98);
}
.dream-cta .btn-support:hover{
  filter:saturate(1.04);
}

/* アクセシビリティ（キーボード操作時） */
.dream-cta .btn:focus-visible{
  outline:2px solid #223; outline-offset:2px;
}

/* ------------------------------
  video
------------------------------ */
.mv-title {
  font-size:clamp(28px,5.4vw,64px);
  font-weight:800;
  line-height:1.05;
}

.videos-gate{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px; margin-top:clamp(12px,3vw,24px);
}
.videos-gate--docked{ 
  margin-top: clamp(-28px, -4vw, -40px); /* MVの下に少し潜らせる */
  position: relative; z-index: 0;
  height: 162px;
}
/* ここを修正：背景は透明にして画像を見せる */
.gate-card{
  display:block; padding:clamp(16px,2.2vw,24px); border-radius:16px;
  background: transparent;            /* ← 元は #fff だったのを消す */
  color:#111; text-decoration:none;
  box-shadow:0 12px 26px rgba(0,0,0,.12);
  position:relative; overflow:hidden; isolation:isolate;
  transition:transform .15s ease, box-shadow .15s ease;
}

/* 画像と白グラデ（読みやすさ用） */
.gate-card::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background: var(--card-bg, #f7f7f7) center/cover no-repeat;
  filter:saturate(1.05);
}
.gate-card::after{
  content:""; position:absolute; inset:0; z-index:-1;
  /* ちょい薄めにして画像が見えるよう調整 */
  background: linear-gradient(180deg, rgba(255,255,255,.4), rgba(255,255,255,.6));

}

/* 仮の背景（あとで差し替え可） */
.gate-card--moto  { --card-bg: url("https://micaja.world/wp-content/uploads/2025/08/mot5.png"); }
.gate-card--games { --card-bg: url("https://micaja.world/wp-content/uploads/2025/08/game2.png"); }

/* 見出し・本文 */
.gate-card h2{ margin:0 0 .2em; font-weight:800; font-size:clamp(20px,2.6vw,28px); }
.gate-card p { margin:0; opacity:.85; font-size:clamp(14px,1.8vw,16px); }

.gate-card:hover{ transform:translateY(-2px); box-shadow:0 18px 36px rgba(0,0,0,.18); }