/*
Theme Name: Lightning Child
Theme URI:
Template: lightning
Description:
Author:
Tags:
Version: 0.0.1
*/

/************************************
 * 横スクロールスライダー（無限ループ）
 ************************************/
.slider1 {
  display: flex;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  height: 200px;
  overflow: hidden;
}
.slider1 ul { display:flex; padding:0; margin:0; }
.slider1 li { width:300px; list-style:none; }
.slider1 ul:first-child { animation: slide1 150s -75s linear infinite; }
.slider1 ul:last-child  { animation: slide2 150s linear infinite; }

@keyframes slide1 {
  0% { transform: translateX(100%); }
  to  { transform: translateX(-100%); }
}
@keyframes slide2 {
  0% { transform: translateX(0); }
  to  { transform: translateX(-200%); }
}

/************************************
 * ヒーロースライドショーのタイトル調整
 ************************************/
.ltg-slide-text-title{
  font-size: 3rem !important;
  line-height: 1.3;
  font-weight: 700;
  text-shadow:
    0 0 5px rgba(0,0,0,.9),
    0 0 10px rgba(0,0,0,.7),
    0 0 15px rgba(0,0,0,.5) !important;
}
@media (max-width: 767px){
  .ltg-slide-text-title{ font-size: 2rem !important; }
}

/************************************
 * ハンバーガーメニュー
 ************************************/
.vk-mobile-nav-menu-btn{
  right: 5px;
  left: inherit;
  border: none;
  background-image: url(https://p-ce.com/img/2025/09/humb.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.vk-mobile-nav-menu-btn.menu-open{
  background-image: url(https://p-ce.com/img/2025/09/humb-open.png);
}

/************************************
 * コピーライトのクレジット非表示
 ************************************/
.site-footer-copyright p:nth-child(2){ display:none; }

/************************************
 * Swiper ヒーロー下端に均等な波を流す
 ************************************/
.swiper{ position:relative; z-index:1; overflow:visible; }
.swiper::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-1px;
  height:120px; z-index:1000; pointer-events:none;
  background-repeat:repeat-x;
  background-position:0 bottom;
  background-size:600px 100%;
  animation: waveSlide 10s linear infinite;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20120%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%23dd3333%27%20d%3D%27M0%2C75%20C75%2C35%20150%2C115%20225%2C75%20S375%2C35%20450%2C75%20S525%2C115%20600%2C75%20L600%2C120%20L0%2C120%20Z%27%2F%3E%3C%2Fsvg%3E");
}
@keyframes waveSlide{
  from{ background-position: 0 bottom; }
  to  { background-position:-600px bottom; }
}
@media (max-width:767px){ .swiper::after{ height:80px; bottom:0; } }
@media (prefers-reduced-motion:reduce){ .swiper::after{ animation:none !important; } }

/************************************
 * タイトルデザイン（特定の h3）
 ************************************/
h3.wp-block-heading.deco-heading{
  position: relative;
  padding: .5rem 0;
  margin-bottom: .2rem;
  border-bottom: 5px solid #404048;
  color: #000;
  font-weight: 700;
  font-size: 20px;
}
h3.wp-block-heading.deco-heading::before,
h3.wp-block-heading.deco-heading::after{
  position: absolute; top:100%; left:50%;
  content:""; height:0; width:0;
}
h3.wp-block-heading.deco-heading::before{
  border:16px solid transparent;
  border-top-color:#404048;
  margin-left:-16px;
}
h3.wp-block-heading.deco-heading::after{
  border:10px solid transparent;
  border-top-color:#fff;
  margin-left:-10px;
}

/************************************
 * FAQ デザイン
 ************************************/
.faq-item{
  border:1px solid #e5e5e5;
  border-radius:10px;
  background:#fff;
  padding:.5rem .75rem;
}
.faq-item > summary{
  list-style:none; cursor:pointer;
  font-weight:700; color:#222;
  padding-right:2rem; position:relative; outline:none;
}
.faq-item > summary::-webkit-details-marker{ display:none; }
.faq-item > summary::after{
  content:"+"; position:absolute; right:.25rem; top:.25rem;
  font-size:1.25rem; line-height:1; color:#dd3333;
  transition:transform .2s ease, opacity .2s ease;
}
.faq-item[open] > summary::after{ content:"−"; }
.faq-item .faq-a{
  color:#444; margin-top:.5rem; padding-top:.5rem;
  border-top:1px dashed #e5e5e5;
}
.faq-item:hover{ border-color:#ddd; }
.faq-item > summary:focus{ box-shadow:0 0 0 3px rgba(221,51,51,.2); border-radius:6px; }

/************************************
 * 料金表（カードタイプ）
 ************************************/
.price-cards{ display:grid; gap:14px; }
@media (min-width:960px){ .price-cards{ grid-template-columns: repeat(3,1fr); } }

.price-card{
  border-radius:6px; background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  overflow:hidden; padding-bottom:10px;
}
.price-head{
  all:unset; display:block;
  margin:0; padding:10px; text-align:center;
  font-weight:800; color:#222;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255,255,255,.4), rgba(255,255,255,.4) 10px,
    transparent 10px, transparent 20px
  );
  background-blend-mode: overlay;
}
.price-head.is-weekday{ background-color:#D2F0FF; }
.price-head.is-holiday{ background-color:#FFD6D2; }
.price-head.is-socks  { background-color:#f6c25a; }
.price-card ul{ margin:0; padding:12px; list-style:none; }
.price-card li{
  display:flex; justify-content:space-between; align-items:center;
  gap:8px; padding:8px 0;
}
.price-card strong{ font-weight:800; color:#111; font-size:20px; }
.price-big{
  font-size:28px; font-weight:900; text-align:center;
  padding:24px 8px; color:#111;
}

/************************************
 * お知らせ（一覧）配色調整
 ************************************/
body.blog .vk_post_title,
body.blog .vk_post_title a,
body.blog .vk_post_title a:link,
body.blog .vk_post_title a:visited,
body.blog .vk_post_title a:hover,
body.blog .vk_post_title a:active{
  color:#fff !important; text-decoration:none; font-weight:700;
}
body.blog .vk_post_date{ color:#fff !important; }
body.blog .vk_post_excerpt,
body.blog .vk_post_excerpt.media-text{ color:#fff !important; }
body.blog .vk_post_title_new{ color:#ffff00 !important; font-weight:800; }
body.blog .sub-section-title{ color:#fff !important; }

/************************************
 * 個別記事ページだけ白文字に
 ************************************/
body.single-post .entry-title{ color:#fff !important; }
body.single-post .entry-header .entry-meta,
body.single-post .entry-header .entry-meta *{ color:#fff !important; }

body.single-post .entry-body,
body.single-post .entry-body p,
body.single-post .entry-body li,
body.single-post .entry-body dt,
body.single-post .entry-body dd,
body.single-post .entry-body th,
body.single-post .entry-body td,
body.single-post .entry-body blockquote,
body.single-post .entry-body figcaption{ color:#fff !important; }

body.single-post .entry-body a{
  color:#ffeb99 !important; text-decoration:underline;
}
body.single-post .entry-body a:hover{ color:#fff !important; }

body.single-post .next-prev .vk_post_title,
body.single-post .next-prev .vk_post_title a,
body.single-post .next-prev .vk_post_date{ color:#fff !important; }

body.single-post .sub-section-title{ color:#fff !important; }
body.single-post .vk_posts .vk_post_title a,
body.single-post .vk_posts .vk_post_date{ color:#fff !important; }
body.single-post .vk_post_title_new{ color:#ffff00 !important; font-weight:800; }

/************************************
 * 区切り線を点線に変更
 ************************************/
.wp-block-separator {
  border: none !important;
  border-top: 1px dotted #999 !important;
  margin: 1.5rem 0 !important;
  width: 100%;
}

/************************************
 * 画面下部 予約バー
 ************************************/
.reserve-bar {
  position: fixed;
  bottom: 20px;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 20px;
  background-color: #ffeb3b;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.15);
  z-index: 1000;
  flex-wrap: nowrap;
}
.reserve-bar__text {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin-right: 16px;
  white-space: nowrap;
}
.reserve-bar__btn {
  display: inline-block;
  padding: 8px 18px;
  background-color: #fff;
  color: #dd3333;
  font-weight: 700;
  font-size: 15px;
  border-radius: 20px;
  text-decoration: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transition: background-color .3s, color .3s;
  white-space: nowrap;
}
.reserve-bar__btn:hover {
  background-color: #dd3333;
  color: #fff;
}
@media (max-width: 480px) {
  .reserve-bar__text {
    font-size: 14px;
    margin-right: 10px;
  }
  .reserve-bar__btn {
    font-size: 14px;
    padding: 6px 14px;
  }
}

/************************************
 * 「PAGE TOPボタン」を上にずらす
 ************************************/
#page_top { bottom: 80px !important; }

/************************************
 * MAP比率固定
 ************************************/
.map-wrap{
  position: relative;
  width: 100%;
  padding-top: 75%;
  border-radius: 7px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
}
.map-wrap iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/************************************
 * ダウンロードボタン色
 ************************************/
.wp-block-file a.wp-block-file__button{
  background-color: #ff6900;
}

/************************************
 * ページヘッダー部分
 ************************************/
.page-header {
  background: repeating-linear-gradient(
    135deg,
  #e53935,
  #e53935 12px,
  #ef5350 12px,
  #ef5350 24px
  );
  color: #fff;
  text-align: center;
  padding: 30px 10px;
  margin-bottom: 20px;
}
.page-header .entry-title {
  font-size: 1.8rem;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  max-width: 100%;
}

/************************************
 * パンくずリストの文字色調整
 ************************************/
.breadcrumb,
.breadcrumb a {
  color: #fff !important;
  font-size: 0.85rem;
}
.breadcrumb a:hover {
  color: #ffeb3b !important;
}

/************************************
 * 画像ドラッグ右クリック禁止 → 上書きで解除
 ************************************/
img {
  -webkit-user-drag: auto !important;
  -khtml-user-drag: auto !important;
  -moz-user-drag: auto !important;
  -o-user-drag: auto !important;
  user-drag: auto !important;
  pointer-events: auto !important;
}

/************************************
 * H2/H3/H4 共通：背景ずらし
 ************************************/
:is(h2, h3, h4).wp-block-heading {
  border-bottom: none;
  text-decoration: none;
  box-shadow: none;
}
:is(h2, h3, h4).wp-block-heading.is-style-bg-shift {
  position: relative;
  margin-bottom: 0.2rem;
  padding: 1rem;
  font-weight: bold;
  text-align: center;
  color: #353535;
  background-color: #ddcfb3;
}
:is(h2, h3, h4).wp-block-heading.is-style-bg-shift::before {
  content: "";
  position: absolute;
  inset: -5px 5px 5px -5px;
  border: 3px solid #353535;
  pointer-events: none;
}
h3.wp-block-heading.is-style-bg-shift,
h3.wp-block-heading.is-style-bg-shift a {
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
h3.wp-block-heading.is-style-bg-shift::after {
  content: none !important;
}
h3.wp-block-heading.is-style-bg-shift.closed::before {
  border: 3px solid #353535 !important;
  inset: -5px 5px 5px -5px !important;
}

/************************************
 * ▼ パフォーマンス調整（A/B/C）
 ************************************/
/* A) モバイル波を遅く */
@media (max-width: 768px) {
  .swiper::after {
    animation: waveSlide 24s linear infinite !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .swiper::after { animation: none !important; }
}

/* B) コピー許可は上書き済み */

/* C) ヒーロータイトルの軽量シャドウ */
.ltg-slide-text-title {
  text-shadow: 0 0 8px rgba(0,0,0,.6) !important;
}

/************************************
 * 固定ページだけ右サイドバーを隠して1カラム化（応急処置）
 ************************************/
body.page .sub-section { display: none; }
body.page .main-section { width: 100%; }

/************************************
 * お知らせのデザイン
 ************************************/
/* ===== 共通ラッパ ===== */
.p-newsCards {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 10px;
}

/* ===== PC横スクロール ===== */
.news-PC {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
}
@media (max-width: 767px){
  .news-PC { display: none; } /* SPでは非表示 */
}

.newsTrackWrap {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory; /* カードでピタッと止まる */
}
.newsTrack {
  display: flex;
  gap: 16px;
  padding: 6px 2px 12px;
  /* ヒーローの波が干渉しないよう透明背景 */
  background: transparent !important;
}

.newsCard {
  flex: 0 0 calc((100% - 32px) / 3); /* 3枚見せ（gap 16px*2 を差し引き） */
  min-width: 260px;                  /* 縮み過ぎ防止 */
  scroll-snap-align: start;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  overflow: hidden;
  transition: transform .2s ease;
}
.newsCard:hover { transform: translateY(-2px); }

.newsCard__link { display: block; color: inherit; text-decoration: none; }

.newsCard__thumb img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}

.newsCard__body { padding: 10px 12px 14px; }
.newsCard__date { font-size: 12px; color: #666; display: block; margin-bottom: 6px; }
.newsCard__title {
  font-size: 15px;
  font-weight: 700;
  color: #222;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 2行で省略 */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 左右ナビ */
.newsNav {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: none;
  color: #fff;
  background: #dd3333;
  display: grid; place-items: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.newsNav:hover { filter: brightness(1.05); }

/* ===== SP：縦3件 + もっと見る ===== */
.news-SP { display: none; }
@media (max-width: 767px){
  .news-SP { display: block; }
}

.newsListItem {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}
.newsListItem:last-child { border-bottom: none; }

.newsListItem__link { display: contents; color: inherit; text-decoration: none; }

.newsListItem__thumb img {
  width: 120px; height: 80px; object-fit: cover; border-radius: 6px;
}
.newsListItem__date { font-size: 12px; color: #666; display: block; margin-bottom: 4px; }
.newsListItem__title {
  font-size: 15px; font-weight: 700; color: #222; line-height: 1.5;
}

.newsMore { text-align: right; margin-top: 8px; }
.newsMore__btn {
  display: inline-block;
  padding: 8px 14px;
  background: #fff;
  color: #dd3333;
  border: 1px solid #dd3333;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
}
.newsMore__btn:hover { background: #dd3333; color: #fff; }

/* （保険）ヒーローの波をこの領域では出さない */
.p-newsCards .swiper::after { content: none !important; }