@charset "UTF-8";
/*
    Template: swell
    Theme Name: Be-sport_theme
    Description: Beスポーツの子テーマ
    Author: Shou Aoi
*/ 
                                       /*.@@@@@@@@@@@@@@@@@@@.                                       
                                 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                 
                             %@@@@@@@@@@@@@@+          +@@@@@@@@@@@@@@%                             
                         :@@@@@@@@@@                            @@@@@@@@@@:                         
                       @@@@@@@@@                                    @@@@@@@@@                       
                    #@@@@@@@                                            @@@@@@@#                    
                  %@@@@@@+                                                +@@@@@@%                  
                +@@@@@@                                                      @@@@@@+                
               @@@@@@:                                                        :@@@@@@               
             =@@@@@.                                                            .@@@@@=             
            @@@@@@                             @@@@@@%                            @@@@@@            
           @@@@@#                            @@@@@@@@@@@                           #@@@@@           
          @@@@@                             @@@@@@@@@@@@@                            @@@@@          
         @@@@@:                            -@@@@@@@@@@@@@*                           :@@@@@         
        @@@@@*                              @@@@@@@@@@@@@                             *@@@@@        
       .@@@@@               +@@@@@@@@*       @@@@@@@@@@@      +@@@@@@@@#               @@@@@.       
       @@@@@              +@@@@@@@@@@@@        @@@@@@@       @@@@@@@@@@@@#              @@@@@       
      *@@@@:             @@@@@@@@@@@@@@@@-                -@@@@@@@@@@@@@@@@             :@@@@*      
      %@@@@             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@             @@@@%      
      @@@@@            @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@            @@@@@      
     .@@@@:           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           :@@@@.     
     :@@@@:          :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:          :@@@@:     
     :@@@@:          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          :@@@@:     
     .@@@@:          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          :@@@@.     
      @@@@@         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         @@@@@      
      %@@@@         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         @@@@%      
      *@@@@:       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       :@@@@*      
       @@@@@       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@       
       .@@@@@      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@@.       
        @@@@@*     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     *@@@@@        
         @@@@@:     @@@@@@@@@@@@@@@@@@@                      @@@@@@@@@@@@@@@@@@@     :@@@@@         
          @@@@@      +@@@@@@@@@@@@@@                            @@@@@@@@@@@@@@*      @@@@@          
           @@@@@#       @@@@@@@@@@                                @@@@@@@@@@.      #@@@@@           
            @@@@@@                                                                @@@@@@            
             =@@@@@.                                                            .@@@@@=             
               @@@@@@:                                                        :@@@@@@               
                +@@@@@@                                                      @@@@@@+                
                  %@@@@@@+                                                +@@@@@@%                  
                    #@@@@@@@                                            @@@@@@@#                    
                       @@@@@@@@@                                    @@@@@@@@@                       
                         :@@@@@@@@@@                            @@@@@@@@@@:                         
                             %@@@@@@@@@@@@@@+          +@@@@@@@@@@@@@@%                             
                                 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                 
                                       .@@@@@@@@@@@@@@@@@@@@*/                                       
                                                                                                    

/*===========================================▼オブジェクトモーション▼================================================*/

[class*="anim-"] {opacity: 0;will-change: opacity, transform;}
[class*="anim-"].is-active {opacity: 1; transition: opacity 0.4s ease-out, transform 0.4s ease-out; }
.anim-slide-left.is-active  { animation: slideInLeft 2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.anim-slide-right.is-active { animation: slideInRight 2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.anim-slide-up.is-active    { animation: slideInUp 2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.anim-slide-down.is-active  { animation: slideInDown 2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

@keyframes slideInLeft {
  0%   { transform: translateX(-110vw); opacity: 1; }
  100% { transform: translateX(0);      opacity: 1; }
}
@keyframes slideInRight {
  0%   { transform: translateX(110vw); opacity: 1; }
  100% { transform: translateX(0);      opacity: 1; }
}
@keyframes slideInUp {
  0%   { transform: translateY(110vh); opacity: 1; }
  100% { transform: translateY(0);      opacity: 1; }
}
@keyframes slideInDown {
  0%   { transform: translateY(-110vh); opacity: 1; }
  100% { transform: translateY(0);      opacity: 1; }
}
.anim-fade-left  { transform: translateX(-30px); }
.anim-fade-right { transform: translateX(30px); }
.anim-fade-up    { transform: translateY(30px); }
.anim-fade-down  { transform: translateY(-30px); }
.anim-fade-left.is-active,
.anim-fade-right.is-active,
.anim-fade-up.is-active,
.anim-fade-down.is-active {transform: translate(0, 0);}
.anim-flip-up.is-active {animation: flipInX 1s forwards;backface-visibility: visible !important;}
.anim-flip-down.is-active {animation: flipInXReverse 1s forwards;backface-visibility: visible !important;}
@keyframes flipInX {
  0%   { transform: perspective(600px) rotateX(90deg); opacity: 0; }
  100% { transform: perspective(600px) rotateX(0deg);  opacity: 1; }
}
@keyframes flipInXReverse {
  0%   { transform: perspective(600px) rotateX(-90deg); opacity: 0; }
  100% { transform: perspective(600px) rotateX(0deg);   opacity: 1; }
}

/*===========================================▲オブジェクトモーション▲================================================*/

/*===========================================▼ローディング▼================================================*/

.neon-loader-wrap{
  position: fixed;
  inset: 0;
  z-index: 999999;
  background:#000;
  display:grid;
  place-items:center;
  pointer-events:none;
  animation: loaderOut .6s ease-out 2.4s forwards;
}
@keyframes loaderOut{ to{ opacity:0; visibility:hidden; } }
.neon-loader-wrap.is-dead{ display:none !important; }

.neon-content{
  width:min(360px,78vw);
  padding:16px;
  display: grid;
  place-items: center;
}

.neon-logo{
  width:230px; height:auto; overflow:visible; display:block;
  opacity:0; animation: bootIn .5s linear forwards;
	
  /* ===== チューニング ===== */
  --lap: .6s;
  --cycle: .9s;
  --dash: 1650;
  --gap:  480;
  --w: 40;
  --chaseLife: 2.30s;
  --glowW: 80;
  --glowBlur: 200px;
  --glowAlpha: .6;
}
@keyframes bootIn{ to{ opacity:1; } }
.chasePath,
.glowPath{
  pathLength:1000;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray: var(--dash) var(--gap);
  animation: chaseMove var(--lap) linear infinite !important;
  will-change: stroke-dashoffset, opacity;
}
.chasePath{
  stroke-width: var(--w);
}
.glowPath{
  stroke-width: var(--glowW);
  filter: blur(var(--glowBlur));
  opacity: var(--glowAlpha);
	mix-blend-mode: screen; 
}
@keyframes chaseMove{
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: -1900; }
}
.blue   .chasePath{ stroke: #ffffff; }
.purple .chasePath{ stroke: #ffffff; }
.blue   .glowPath{ stroke: rgba(120, 220, 255, 1); }
.purple .glowPath{ stroke: rgba(190, 140, 255, 1); }
.blue{
  filter: drop-shadow(0 0 8px rgba(100, 210, 255, 0.4))
          drop-shadow(0 0 20px rgba(80, 190, 255, 0.2));
}
.purple{
  filter: drop-shadow(0 0 8px rgba(190, 150, 255, 0.4))
          drop-shadow(0 0 20px rgba(160, 120, 255, 0.2));
}
.blue .chasePath{
  filter:
    drop-shadow(0 0 4px rgba(100, 235, 255, 1))
    drop-shadow(0 0 12px rgba(50, 200, 255, 0.8));
}
.purple .chasePath{
  filter:
    drop-shadow(0 0 4px rgba(210, 160, 255, 1))
    drop-shadow(0 0 12px rgba(180, 100, 255, 0.8));
}
.blue .glowPath{
  filter:
    blur(var(--glowBlur))
    drop-shadow(0 0 20px rgba(0, 180, 255, 0.6))
    drop-shadow(0 0 60px rgba(0, 100, 255, 0.4));
}
.purple .glowPath{
  filter:
    blur(var(--glowBlur))
    drop-shadow(0 0 20px rgba(180, 100, 255, 0.6))
    drop-shadow(0 0 60px rgba(120, 50, 255, 0.4));
}
.blue .chasePath{
  filter:
    drop-shadow(0 0 6px rgba(170,235,255,.35))
    drop-shadow(0 0 14px rgba(120,210,255,.18));
}
.purple .chasePath{
  filter:
    drop-shadow(0 0 6px rgba(210,175,255,.32))
    drop-shadow(0 0 14px rgba(190,150,255,.18));
}
@keyframes blueSmooth{
  0%    { opacity: 1; }
  52%   { opacity: 1; }
  62%   { opacity: .35; }
  78%   { opacity: .0; }
  100%  { opacity: 0; }
}
@keyframes purpleSmooth{
  0%    { opacity: 0; }
  52%   { opacity: 0; }
  62%   { opacity: .65; }
  76%   { opacity: 1; }
  100%  { opacity: 0; }
}
.chaseBlue{
  animation: blueSmooth var(--chaseLife) ease-out 1 forwards;
}
.chasePurple{
  animation: purpleSmooth var(--chaseLife) ease-out 1 forwards;
}
.logoFinal{
  opacity:0;
  transform: translateY(4px);
  animation: logoIn .6s ease-out 1 forwards;
  animation-delay: 1.5s; 
}
.logoText{
  opacity: 0;
  transform: translateY(6px);
  animation: logoIn .8s ease-out 1 forwards;
  animation-delay: 1.7s; 
}
@keyframes logoIn{ to{ opacity:1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .neon-loader-wrap{ animation:none !important; }
  .neon-logo{ opacity:1 !important; animation:none !important; }
  .chaseBlue,.chasePurple{ animation:none !important; opacity:0 !important; }
  .chasePath,.glowPath{ animation:none !important; }
  .logoFinal{ opacity:1 !important; animation:none !important; transform:none !important; }
	 .logoText{ opacity:1 !important; animation:none !important; transform:none !important; }
}
@media screen and (max-width: 959px) {
    .neon-logo{width: 160px;}
}

/*===========================================▲ローディング▲================================================*/


/*===========================================▼ループスライダー▼================================================*/
.loop-slider {
    display: flex;
    overflow: hidden;
    gap: 0rem;
}

.loop-slider .wp-block-group__inner-container,
.loop-slider .swell-block-columns {
    display: contents;
}

.loop-slider .swell-block-columns__inner {
    flex-wrap: nowrap;
    animation: infinity-scroll-left 40s infinite linear;
}

.loop-slider .swell-block-column figure {
    width: 500px; 
    position: relative;
}

.loop-slider .swell-block-column figure::before {
    padding-top: 70%;
    display: block;
    content: "";
}

.loop-slider .swell-block-column figure img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
}

@media screen and (max-width: 959px) {
    .loop-slider .swell-block-column figure {
        width: 200px;
    }
}

@keyframes infinity-scroll-left {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

/*===========================================▲ループスライダー▲================================================*/

/*===========================================▼ネオンボックス枠線▼================================================*/

.neon-inner-crisp{
  position: relative;
  background: #000; 
  padding: 5px;
  box-shadow:
    inset 0 0 0 5px #9d7dc5,
    inset 0 0 16px rgba(159,61,255,.9),
    inset 0 0 32px rgba(159,61,255,.6);
}

/*===========================================▲ネオンボックス枠線▲================================================*/
/*===========================================▼テキストインモーション（左→右）▼================================================*/

    .lead-anim{
      --easing: cubic-bezier(.2,.8,.2,1);
      --step: calc(var(--bg-dur) + var(--gap) + var(--text-dur) + var(--between));
    }

    .lead-anim .commonLead{
      position:relative; display:inline-block;
      line-height:1.35; font-weight:700;
      font-size: var(--font-size, clamp(1.5rem, 4.5vw, 3.5rem));
      color: var(--font-color, #ffffff);
		margin-bottom:0!important;
    }

    .lead-anim .commonLead .line{
      position:relative; display:block;
      padding:.5em .8em; margin:.5em; z-index:0;
      width:max-content;
      width:fit-content;
    }

    .lead-anim .commonLead .line:nth-child(2){
      margin-left: var(--indent-2, 0);
    }

    .lead-anim .commonLead .line::before{
      content:""; position:absolute; inset:0; z-index:-1;
      background:var(--bg-color); border-radius:0;
      transform:scaleX(0); transform-origin:left center;
      transition: transform var(--bg-dur) var(--easing);
      transition-delay: calc(var(--i) * var(--step));
    }

    .lead-anim .commonLead .text{
      display:inline-block;
      -webkit-mask-image:linear-gradient(#000 0 0);
              mask-image:linear-gradient(#000 0 0);
      -webkit-mask-size:0% 100%; mask-size:0% 100%;
      -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
      transition:
        -webkit-mask-size var(--text-dur) var(--easing),
                mask-size var(--text-dur) var(--easing);
      transition-delay: calc(var(--i) * var(--step) + var(--bg-dur) + var(--gap));
    }

    .lead-anim .commonLead.onAnim .line::before{ transform:scaleX(1); }
    .lead-anim .commonLead.onAnim .text{
      -webkit-mask-size:100% 100%; mask-size:100% 100%;
    }

    .lead-anim .commonLead.leaving .line::before,
    .lead-anim .commonLead.leaving .text{
      transition: none !important;
    }

    @media (prefers-reduced-motion: reduce){
      .lead-anim .commonLead .line::before,
      .lead-anim .commonLead .text{ transition:none !important; }
      .lead-anim .commonLead .line::before{ transform:none; }
      .lead-anim .commonLead .text{
        -webkit-mask-size:100% 100%; mask-size:100% 100%;
      }
    }

    @supports not (mask-size: 100% 100%){
      .lead-anim .commonLead .text{
        clip-path: inset(0 100% 0 0);
        transition: clip-path var(--text-dur) var(--easing);
        transition-delay: calc(var(--i) * var(--step) + var(--bg-dur) + var(--gap));
      }
      .lead-anim .commonLead.onAnim .text{ clip-path: inset(0 0 0 0); }
      .lead-anim .commonLead.leaving .text{ transition:none !important; }
    }

/*===========================================▲テキストインモーション（左→右）▲================================================*/


/*===========================================▼左右インモーション画像用▼================================================*/
.right_in_pl{
  width: 100%;
  padding-right:5px;
}

.right_in_pl img{
  width: 100%;
  height:clamp(300px,50vw,600px)!important;
  display: block;
  object-fit: cover;
  object-position: right center;
  clip-path: inset(0 0 0 0 round 80px 0 0 80px);
}

.left_in_pl{
  width: 100%;
}

.left_in_pl img{
  width: 100%;
  height:clamp(300px,50vw,600px)!important;
  display: block;
  object-fit: cover;
  object-position: left center;
  clip-path: inset(0 0 0 0 round 0 80px 80px 0);
}

.left_in_pl .wp-block-image .alignright {margin-left:0!important;}

/*===========================================▲左右インモーション画像用▲================================================*/
/*===========================================▼タイトル裏タイトル▼================================================*/
.title_wrap {
  position: relative;
  display: inline-block;
  margin-bottom:0!important;   
}

.title_back {
  position: absolute;
  top: 20%;
  left: 100%;
  transform: translate(-5%, 0%);
  font-size: 120px;
  font-weight: 900;
  color: transparent;                 
  -webkit-text-stroke: 1px #0071bc; 
  z-index: -10;
  opacity:.8;
  white-space: nowrap;
}

.title_front {
  position: relative;
  font-size: 70px;
  font-weight: 900;
  background: linear-gradient(to right, #1f4ebd, #9d7dc5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  z-index: 1;
}

.title_wrap2 {
  position: relative;
  display: grid;
  place-items: end center;  
  width: 100%;          
  margin-bottom: 1em!important;
  /* 必要に応じて高さを付ける（背景とのバランス用）
  min-height: 220px;
  */
}

.title_back2,
.title_front2 {
  grid-area: 1 / 1;
    line-height: 1;
}

.title_back2 {
  font-size: clamp(100px,5vw,120px);
  font-weight: 900;
  color: transparent;
  -webkit-text-stroke: 1px #0071bc;
  opacity: .8;
  white-space: nowrap;
  z-index: 0;           
  pointer-events: none;
}

.title_front2 {
  font-size:clamp(60px,5vw,70px);
  font-weight: 900;
  background: linear-gradient(to right, #1f4ebd, #9d7dc5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  z-index: 1;
}

.title_wrap2_2 {
  position: relative;
  display: grid;
  place-items: end center;  
  width: 100%; 
  margin-bottom: 1em!important;
  /* 必要に応じて高さを付ける（背景とのバランス用）
  min-height: 220px;
  */
}

.title_back2_2,
.title_front2_2 {
  grid-area: 1 / 1;
    line-height: 1;
}
.title_back2_2 {
  font-size: clamp(45px,5vw,120px);
  font-weight: 900;
  color: transparent;
  -webkit-text-stroke: 1px #0071bc;
  opacity: .8;
  white-space: nowrap;
  z-index: 0;             
  pointer-events: none;
}

.title_front2_2 {
  font-size: clamp(35px,5vw,70px);
  font-weight: 900;
  background: linear-gradient(to right, #1f4ebd, #9d7dc5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  z-index: 1;
}
.title_wrap2_3 {
  position: relative;
  display: grid;
  place-items: end center;   
  width: 100%;       
  margin-bottom: 1em!important;
  /* 必要に応じて高さを付ける（背景とのバランス用）
  min-height: 220px;
  */
}

.title_back2_3,
.title_front2_3 {
  grid-area: 1 / 1;
    line-height: 1;
}
.title_back2_3 {
  font-size: clamp(80px,5vw,120px);
  font-weight: 900;
  color: transparent;
  -webkit-text-stroke: 1px #0071bc;
  opacity: .8;
  white-space: nowrap;
  z-index: 0;            
  pointer-events: none;
}

.title_front2_3 {
  font-size: clamp(60px,5vw,70px);
  font-weight: 900;
  background: linear-gradient(to right, #1f4ebd, #9d7dc5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  z-index: 1;
}

/*===========================================▲タイトル裏タイトル▲================================================*/

/*===========================================▼swiperカルーセル①▼================================================*/
/* SWELLとの互換性対策
   .swiperクラスだけでなく、.swiper-containerクラスも並記して
   SWELL内蔵版(v4系)と最新版(v11系)の両方でCSSが効くようにする
*/

.coverflow3 { padding: 40px 0;}
.swiper-3d { overflow: visible!important; }

.coverflow3 .swiper-slide{
  aspect-ratio: 3 / 4;          
  border-radius: 18px;
  overflow: hidden;
  background: #000;              
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.coverflow3 .swiper-slide img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}

.coverflow3 .swiper-pagination{ position: relative; margin-top: 16px; }

/* 両方のクラス名に対応 */
.swiper.coverflow-card,
.swiper-container.coverflow-card { 
    padding: 40px 0 80px 0; 
    position: relative;
  --bullet-color: #c084fc; 
}

.coverflow-card .swiper-slide{
  position: relative;
  aspect-ratio: 3 / 4;          
  border-radius: 18px;
  overflow: hidden;
  background: #000;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.coverflow-card .swiper-slide img{
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}

.coverflow-card .swiper-slide::before{
  content:""; position:absolute; left:0; right:0; bottom:0; height:42%;
  background: linear-gradient(to top, rgba(0,0,0,.48), rgba(0,0,0,0));
  z-index: 1; pointer-events:none;
}

.coverflow-card .slide-caption.card{
  position:absolute; left:16px; right:16px; bottom:16px; z-index: 2;
  background: rgba(39,0,58,.72); color:#fff;
  padding: 16px 18px; border-radius:14px; backdrop-filter: blur(6px);
  pointer-events: none;
}
.coverflow-card .slide-caption.card h3{
  margin:1rem!important; font-weight:700; font-size: clamp(16px,2.2vw,22px);
}
.coverflow-card .slide-caption.card p{
  margin:0; font-size: clamp(12px,1.6vw,14px); opacity:.95;
}

.coverview-card .swiper-pagination, 
.coverflow-card .swiper-pagination{
  position: absolute;
  left: 0;
  right: 0;
  bottom: -40px!important;
  text-align: center;
  z-index: 5;
}

.coverflow-card .swiper-pagination-bullet{
  width: 10px;
  height: 10px;
  opacity: 1; 
  background: rgba(255,255,255,.65);
  border: 0;
  box-shadow: 0 0 8px rgba(255,255,255,.35);
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.coverflow-card .swiper-pagination-bullet:hover{
  transform: scale(1.1);
}

.coverflow-card .swiper-pagination-bullet-active{
  background: var(--bullet-color);
  transform: scale(1.2);
  box-shadow:
    0 0 10px var(--bullet-color),
    0 0 22px rgba(192,132,252,.55),
    0 0 36px rgba(192,132,252,.35);
  animation: bulletPulse 1.6s ease-in-out infinite;
}

@keyframes bulletPulse{
  0%,100%{ transform: scale(1.18); }
  50%    { transform: scale(1.28); }
}

.coverflow-card .swiper-button-prev,
.coverflow-card .swiper-button-next{
  width: 44px;
  height: 44px;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 9999px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
  z-index: 6; 
}

.coverflow-card .swiper-button-prev{ left: 8px; }
.coverflow-card .swiper-button-next{ right: 8px; }

@media (min-width: 768px){
  .coverflow-card .swiper-button-prev{ left: 12px; }
  .coverflow-card .swiper-button-next{ right: 12px; }
}

.coverflow-card .swiper-button-prev::after,
.coverflow-card .swiper-button-next::after{
  font-family: 'swiper-icons' !important;
  font-weight: normal;
  font-size: var(--swiper-navigation-size, 18px);
  text-transform: none;
  letter-spacing: 0;
  line-height: 1;
}

.coverflow-card .swiper-button-prev:hover,
.coverflow-card .swiper-button-next:hover{
  transform: translateY(-50%) scale(1.06);
  background: rgba(255,255,255,.12);
  box-shadow: 0 10px 28px rgba(0,0,0,.36), 0 0 14px rgba(192,132,252,.35);
}
.coverflow-card .swiper-button-disabled{
  opacity: .4;
  cursor: default;
  box-shadow: none;
}

.coverflow-card .slide-caption.card{ z-index: 2; }
.coverflow-card .swiper-button-prev,
.coverflow-card .swiper-button-next,
.coverflow-card .swiper-pagination{ z-index: 6; }


@media (min-width:1280px){
  .coverflow-card .slide-caption.card{
    left:24px; right:24px; bottom:20px; padding:18px 22px;
  }
}

.coverflow-card .slide-caption.card a{ pointer-events:auto; }


/*===========================================▲swiperカルーセル①▲================================================*/

/* ======================================▼swiperカルーセル②（ゲームタイトル）▼============================================== */

/* クラス名互換対応 */
.swiper.game-swiper,
.swiper-container.game-swiper { 
    overflow: visible!important;
    padding: 10px 0; 
    margin-bottom:4em;
}

.game-swiper .swiper-slide {
  width: 75vw; max-width: 1000px;
  position: relative; border-radius: 18px; overflow: hidden;
}
@media (min-width: 900px){ .game-swiper .swiper-slide { width: 70vw; } .game-swiper .swiper-pagination{ bottom: -36px !important; }}

.game-swiper .swiper-slide img {
  width: 100%; height: 56vw; max-height: 520px; object-fit: cover; display: block;
}

.game-swiper .swiper-slide::after{
  content:""; position:absolute; inset:0;
  outline:4px solid #a020f0; outline-offset:-4px; border-radius:18px; pointer-events:none;
}

.game-swiper .card{
  position:absolute; left:24px; bottom:24px; max-width: 520px;
  background: rgba(39,0,58,.75); color:#fff;
  padding: 20px 24px; border-radius:16px; backdrop-filter: blur(6px);
}
.game-swiper .card h3{ margin:0 0 .25rem; font-size: clamp(18px,2.1vw,28px); font-weight:700; }
.game-swiper .card p{ margin:0; font-size: clamp(12px,1.5vw,15px); opacity:.9; }

.game-swiper .swiper-pagination{ bottom: -35px !important; }
.game-swiper .swiper-button-prev,
.game-swiper .swiper-button-next{ color:#FFF; background-color:rgb(0,0,0,.5);padding:1.5em; border:solid 2px #a020f0;box-shadow: 0px 0px 10px #FFF;}

.game-swiper .swiper-pagination-bullet{
  width: 12px; height: 12px;
  opacity: 1;                           
  background: rgba(255,255,255,.95);   
  border: 2px solid #a020f0;            
  box-shadow:
    0 0 0 2px rgba(0,0,0,.45),     
    0 2px 8px rgba(0,0,0,.4);      
  margin: 0 6px !important;  
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.game-swiper .swiper-pagination-bullet-active{
  background: #a020f0;     
  border-color: #fff;    
  box-shadow:
    0 0 0 2px rgba(0,0,0,.6),
    0 0 14px rgba(160,32,240,.8);
  transform: scale(1.2);
}

@media (max-width: 781px){
    .game-swiper .card p{display:none;}
}

/* ======================================▲swiperカルーセル②（ゲームタイトル）▲============================================== */

/*===========================================▼ゲームCTAエリア▼================================================*/

.game_cta img{
    width:clamp(50%,50vw,100%)!important;
    margin-top:1em;
}
.hun_txt1{
    font-size: clamp(20px, 3vw, 40px);
    padding:0 1em;
    margin-top:2em;
}

@media (max-width: 781px){
.right_img {
    display: flex;
  justify-content: flex-end;
  align-items: center; 
}
}
/*===========================================▲ゲームCTAエリア▲================================================*/

/*===========================================▼ネオンフレーム4▼================================================*/

.corner-frame{
  --corner-w: clamp(50px, 3.8vw, 80px);
  --corner-h: clamp(50px, 3.8vw, 80px);
  --corner-gap: 3px;
  --corner-out: 0px;  
  --glow-color:#7fe2ff; --glow-outer:18px; --glow-inner:10px;

  --corner-url: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'><path fill='%23fff' d='M37.82,245.03L245.41,37.44h253.71v-14.33l-106.79-.05L380.04.5h-203.24v1.57L.88,177.18v203.24l22.56,12.29.05,106.79h14.33v-254.47Z'/></svg>");

  position: relative; isolation:isolate;
  padding: clamp(20px, 4vw, 48px);
  background:#0b1a27; border-radius:0px;
  box-shadow:
    inset 0 0 0 2px rgba(127,226,255,.7),
    inset 0 0 24px color-mix(in srgb, var(--glow-color) 45%, transparent);
}

.corner-frame__body{ position:relative; z-index:3; }

.corner-frame::before,
.corner-frame::after,
.corner-frame__overlay::before,
.corner-frame__overlay::after{
  content:""; position:absolute; width:var(--corner-w); height:var(--corner-h);
  background-image:var(--corner-url); background-repeat:no-repeat; background-size:contain;
  filter: drop-shadow(0 0 var(--glow-inner) var(--glow-color))
          drop-shadow(0 0 var(--glow-outer) color-mix(in srgb, var(--glow-color) 70%, transparent));
  pointer-events:none;
}

.corner-frame::before{ top:calc(var(--corner-gap)*-1 - var(--corner-out)); left:calc(var(--corner-gap)*-1 - var(--corner-out)); }
.corner-frame::after { top:calc(var(--corner-gap)*-1 - var(--corner-out)); right:calc(var(--corner-gap)*-1 - var(--corner-out)); transform:scaleX(-1); }

.corner-frame__overlay{
  position:absolute; top:0; left:0; right:0;
  bottom: calc(-1 * var(--corner-out));
  z-index:2; pointer-events:none;
}
.corner-frame__overlay::before{ bottom:calc(var(--corner-gap)*-1 - var(--corner-out)); left:calc(var(--corner-gap)*-1 - var(--corner-out)); transform:scaleY(-1); }
.corner-frame__overlay::after { bottom:calc(var(--corner-gap)*-1 - var(--corner-out)); right:calc(var(--corner-gap)*-1 - var(--corner-out)); transform:scale(-1,-1); }

.corner-frame.corner-frame--outside{ overflow:visible; }
.wp-block-columns.corner-frame{ display:block; }
/* ======================================▲ネオンフレーム4▲============================================== */

/* ======================================▼おススメフレーム▼============================================== */

.recommend{
  border: 2px solid rgba(255,255,255,.65);
  border-radius: 6px;
  padding: 20px 24px;         
  margin-bottom: 2em;
}

.recommend > legend{
  padding: 0 .6em;
  margin-inline-start: 16px;    
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .03em;
  white-space: nowrap;
}

.recommend-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px 28px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.recommend-list li{
  position: relative;
  padding-left: 26px;
  line-height: 1.6;
}
.recommend-list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(.1em);
  font-weight: 900;
  color: #25c4ad;
}

@media (max-width: 520px){
  .recommend-list{ grid-template-columns: 1fr; }
}
/* ======================================▲おススメフレーム▲============================================== */

/*===========================================▼一日のスケジュールスライダー▼================================================*/

.c-scrollHint{
    margin-top:0em!important;
}
.schedule-wrap{
  padding: 28px 0 36px;
}
.schedule-swiper .swiper-slide{
  width: clamp(260px, 30vw, 350px); 
  height: auto;
}

.scard{
  display:flex; flex-direction:column; gap:12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  color:#fff; border-radius: 16px; padding: 14px;
  box-shadow: 0 10px 28px rgba(0,0,0,.25);
}

.scard .thumb{ position:relative; border-radius: 12px; overflow:hidden; }
.scard .thumb img, .scard .thumb .ph{
  width:100%; aspect-ratio: 16/9; display:block; object-fit:cover;
  background:#b7b7b7;  
}

.scard .time-badge{
  position:absolute; left:50%; bottom:12px; transform:translateX(-50%);
  background:#fff; color:#111; border-radius:8px;
  padding:6px 15px; font-weight:700; letter-spacing:.02em;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
  font-size:clamp(12px, 1vw, 16px);
}
.scard .time-badge .dash{ margin:0 .4em; opacity:.7; }

.scard-title{ margin:1.5rem 0!important; font-size:1.2rem!important; font-weight:800; border-left: 2px solid #4cb2bd;padding-left:.5em;}
.scard-text{
  margin: .1rem 0 0; font-size:.95rem; line-height:1.7; opacity:.9;
  display:-webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow:hidden;
}

.schedule-swiper .swiper-button-prev,
.schedule-swiper .swiper-button-next{ color:#fff; opacity:.85; }
.schedule-swiper .swiper-button-prev:hover,
.schedule-swiper .swiper-button-next:hover{ opacity:1; }
.schedule-swiper .swiper-pagination-bullet{ background:#fff; opacity:.35; }
.schedule-swiper .swiper-pagination-bullet-active{ opacity:1; }

.schedule-swiper{
  padding-bottom: 40px !important; 
}
.schedule-swiper .swiper-pagination{
  bottom: 10px !important;
}

.schedule-swiper .swiper-button-prev,
.schedule-swiper .swiper-button-next{
  --sched-nav-size: 44px;       
  width: var(--sched-nav-size);
  height: var(--sched-nav-size);
  top: 50%;
  transform: translateY(-50%);
  border-radius: 9999px;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease, width .25s ease, opacity .2s;
  z-index: 6;
}
.schedule-swiper .swiper-button-prev{ left: 8px; }
.schedule-swiper .swiper-button-next{ right: 8px; }
@media (min-width: 768px){
  .schedule-swiper .swiper-button-prev{ left: 12px; }
  .schedule-swiper .swiper-button-next{ right: 12px; }
}

.schedule-swiper .swiper-button-prev::after,
.schedule-swiper .swiper-button-next::after{
  font-family: 'swiper-icons' !important;
  font-weight: normal;
  font-size: var(--swiper-navigation-size, 18px);
  text-transform: none;
  letter-spacing: 0;
  line-height: 1;
}

.schedule-swiper .swiper-button-disabled{
  opacity: .35 !important;
  cursor: default !important;
  box-shadow: none !important;
}

.schedule-swiper .swiper-button-prev:focus-visible,
.schedule-swiper .swiper-button-next:focus-visible{
  outline: 2px solid #A78BFA; outline-offset: 2px;
}

.schedule-swiper .swiper-button-prev.sched-nav-glass,
.schedule-swiper .swiper-button-next.sched-nav-glass{
  background: linear-gradient(180deg, rgba(157,125,197,.12), rgba(255,255,255,.06));
  border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 10px 28px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.12);
}
.schedule-swiper .swiper-button-prev.sched-nav-glass:hover,
.schedule-swiper .swiper-button-next.sched-nav-glass:hover{
  transform: translateY(-50%) scale(1.06);
  background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.08));
  box-shadow: 0 12px 32px rgba(0,0,0,.42), 0 0 0 2px rgba(167,139,250,.5);
}

@media (max-width: 480px){
  .schedule-swiper .swiper-slide{ width: min(88vw, 350px); }
  .schedule-swiper{ padding-bottom: 64px; }
  .schedule-swiper .swiper-pagination{ bottom: 8px !important; }
}

/*===========================================▲一日のスケジュールスライダー▲================================================*/

/*===========================================▼フロー部分▼================================================*/

.flow-clm{
    max-height:600px;
}

.flow_step .swell-block-step__title{
  --accent: #50c2c2;
  --line-h: 1px;  
  --dot: 12px;   

  position: relative;
  padding-bottom: 16px;
  font-weight: 700;
  color: #fff;      
}
.flow_step .swell-block-step__title::after {
  content: "";
  position: absolute;
  left: 0;
  right: var(--dot);  
  bottom: 0;
  height: var(--line-h);
  background: var(--accent);
  border-radius: 999px;
}
.flow_step .swell-block-step__title::before {
  content: "";
  position: absolute;
  right: 0;
  width: var(--dot);
  height: var(--dot);
  bottom: calc((var(--line-h) - var(--dot)) / 2); 
  border: var(--line-h) solid var(--accent);
  border-radius: 50%;
  background: transparent; 
}
.flow_step .swell-block-step__number{
  border:solid 1px #50c2c2;
  box-shadow: 0px 0px 6px #50c2c2;
}
/*===========================================▲フロー部分▲================================================*/

/*===========================================▼ラインサンド▼================================================*/


.point-band{
  --person-w: clamp(140px, 22vw, 270px); 
  --badge-w : 96px;                  
  --pad     : 20px;                  
  --line-h  : 2px;                      
  --line    : 0, 240, 255;           

  position: relative;
  padding: 20px calc(var(--person-w) + var(--pad)) 20px calc(var(--badge-w) + var(--pad) + 8px);
  color: #eaf6ff;
  background: #0b1118;
  border-radius: 8px;
  line-height: 1.9;
  isolation: isolate;
}

.point-band::before,
.point-band::after{
  content:"";
  position:absolute;
  left: 12px;
  right: 12px;
  height: var(--line-h);
  background: linear-gradient(
    to right,
    rgba(var(--line), 0) 0%,
    rgba(var(--line), .65) 20%,
    rgba(var(--line), .65) 80%,
    rgba(var(--line), 0) 100%
  );
  z-index: 0;
}
.point-band::before{ top: 0; }
.point-band::after { bottom: 0; }

.point-band__badge{
  position: absolute;
  left: var(--pad);
  top: 50%;
  transform: translateY(-50%);
  width: var(--badge-w);
  height: auto;
  z-index: 1;
}

.point-band__text{
  margin: 0;
  font-size: clamp(14px, 1.6vw, 16px);
  z-index: 1;
}

.point-band__person{
  position: absolute;
  right: 0;
  top: -40px;                   
  width: var(--person-w);
  height: auto;
  object-fit: contain;
  z-index: 2;                   
  pointer-events: none;         
}

@media (max-width: 560px){
  .point-band{
    --person-w: 5vw;
    --badge-w : 72px;
    padding: 16px calc(var(--person-w) + 12px) 16px calc(var(--badge-w) + 14px);
  }
  .point-band__person{ display:none; }
}

/*===========================================▲ラインサンド▲================================================*/

/*===========================================▼事業所一覧エリア▼================================================*/

.post_content {
}
.place_clm .wp-block-columns{
          box-shadow: 0px 0px 20px #50c2c2;
}
.place_clm .wp-block-columns .wp-block-column{
        padding:0 0 1.5em 0!important;
}
.pls_inner{
    margin:1.5em!important;
}

/*===========================================▲事業所一覧エリア▲================================================*/

/*===========================================▼FCエリア▼================================================*/

.fc_area{
      background-image: linear-gradient(90deg, #9d7dc5, #50c2c2 50%, #1f4ebd);
}
.fc_area .fc_btn{
    border:solid 2px #0071bc;
    border-radius:40px;
    /* グラデーションを広めにして背景を動かす */
    background-image: linear-gradient(90deg, #101723, #0f315f 50%, #101723);

    padding:clamp(15px, 2vw, 30px);

    /* 通常時：弱い外側＋内側の光 */
    box-shadow:
        0 0 6px  rgba(80,194,194,.25),
        0 0 12px rgba(80,194,194,.15),
        0 0 20px rgba(80,194,194,.1),
        inset 0 0 6px rgba(80,194,194,.18),
        inset 0 0 12px rgba(80,194,194,.1);

    position: relative;
    overflow: hidden;
    z-index: 1;

    transition:
        background-position .8s cubic-bezier(.22,.61,.36,1),
        box-shadow .65s cubic-bezier(.22,.61,.36,1),
        transform .25s ease;
}

/* 内側光彩オーバーレイ */
.fc_area .fc_btn::before{
    content: "";
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    background: radial-gradient(120% 100% at 50% 50%,
        rgba(80,194,194,.28) 0%,
        rgba(80,194,194,.16) 35%,
        rgba(80,194,194,0) 65%);
    mix-blend-mode: screen;
    opacity: 0;
    transform: scale(1);
    pointer-events: none;
    transition: opacity .55s ease, transform .8s cubic-bezier(.22,.61,.36,1);
    z-index: 0;
}

/* ホバー時：背景色スライド＋光彩がぶわん */
.fc_area .fc_btn:hover{
    transform: translateY(-2px);
    background-position: 100% 50%;
    box-shadow:
        0 0 10px rgba(80,194,194,.70),
        0 0 22px rgba(80,194,194,.50),
        0 0 40px rgba(80,194,194,.30),
        inset 0 0 10px rgba(80,194,194,.50),
        inset 0 0 22px rgba(80,194,194,.30);
}
.fc_area .fc_btn:hover::before{
    opacity: 1;
    transform: scale(1.03);
}

.fc_area .fc_btn p{
    font-size:clamp(15px, 2vw, 30px);
    font-weight:bold;
    color:#fff;
    text-shadow: 0 0 6px rgba(80,194,194,.6);
}

:root{
  --laser-purple: #FFF;
  --laser-cyan:   #50c2c2;
  --laser-blue:   #FFF;
  --laser-thickness: 3px;   
  --laser-speed: 1.8s;      
}

.fc_area{
  position: relative;
  isolation: isolate;   
  overflow: hidden;    
}

.fc_area::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 120vw;                      
  height: var(--laser-thickness);
  background: linear-gradient(90deg,
              var(--laser-purple),
              var(--laser-cyan) 50%,
              var(--laser-blue));
  box-shadow:
    0 0 10px var(--laser-cyan),
    0 0 28px var(--laser-cyan);
  pointer-events: none;
  z-index: 0;
}

.fc_area::after{
  content: "";
  position: absolute;
  top: 50%;
  left: -25vw;
  transform: translateY(-50%);
  width: 22vw;
  height: var(--laser-thickness);
  background: linear-gradient(90deg, transparent, #fff, transparent);
  filter: drop-shadow(0 0 8px var(--laser-cyan))
          drop-shadow(0 0 22px var(--laser-cyan));
  mix-blend-mode: screen;
  animation: fc-sweep var(--laser-speed) linear infinite;
  pointer-events: none;
  z-index: 0;
}
.fc_area a {
    color:#FFF!important;
}
.fc_area .wp-block-column {
  position: relative;
}
.fc_area .block-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none; /* 下線消し */
}

@keyframes fc-sweep{
  to { left: 110vw; }
}

@media (prefers-reduced-motion: reduce){
  .fc_area::after{ animation: none; }
}

/*===========================================▲FCエリア▲================================================*/

/*===========================================▼問い合わせフォーム▼================================================*/
.cf7-onecol {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.cf7-modern {
  --bg: #0f0f14;
  --card: #151720;
  --muted: #8b91a1;
  --text: #e9ecf1;
  --border: #2a2e3a;
  --accent: #5b8cff;
  --accent-2: #7ee0d2;
  --danger: #ff6b6b;
  --success: #34d399;
  background: var(--bg);
  color: var(--text);
  padding: 40px 35px;
  border-radius: 18px;
  box-shadow: 0px 0px 20px #50c2c2;
}

.cf7-title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 12px;
}

.label-top {
  font-size: 14px;
  margin-bottom: 6px;
  display: block;
  color: var(--text);
}

.field.floating {
  position: relative;
}

.field.floating > label {
  position: absolute;
  left: 14px;
  top: 14px;
  font-size: 14px;
  color: var(--muted);
  transition: all .2s ease;
  pointer-events: none;
  background: var(--bg);
  padding: 0 6px;
}

.cf7-modern .input-modern,
.cf7-modern .textarea-modern,
.cf7-modern .select-modern {
  width: 100%;
  padding: 16px 14px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  border-radius: 12px;
  font-size: 15px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.cf7-modern .input-modern::placeholder,
.cf7-modern .textarea-modern::placeholder {
  color: var(--muted);
}

.cf7-modern .input-modern:focus,
.cf7-modern .textarea-modern:focus,
.cf7-modern .select-modern:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(91,140,255,.25);
}

.field.floating :is(.input-modern, .textarea-modern):focus + label,
.field.floating :is(.input-modern, .textarea-modern):not(:placeholder-shown) + label {
  top: -8px;
  font-size: 12px;
  color: var(--accent);
}

.cf7-modern .select-modern {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) center,
    calc(100% - 12px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.req {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 12px;
  color: #fff;
  margin-left: 6px;
}

.terms {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  color: var(--muted);
}
.terms input[type="checkbox"] {
  accent-color: var(--accent);
  margin-top: 3px;
}

.btn-modern {
  display: block;
  width: 80%;
  margin: 0 auto;
  padding: 14px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #1f4ebd,#9d7dc5);
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  transition: all .3s ease;
}

.btn-modern:hover {
  filter: brightness(1.1);
  box-shadow: 0 0 12px rgba(157,125,197,0.7), 0 0 24px rgba(31,78,189,0.6);
}

.btn-modern:active {
  transform: translateY(1px);
}

.cf7-modern .wpcf7-not-valid-tip {
  font-size: 12px;
  color: var(--danger);
  margin-top: 4px;
}
.cf7-modern .wpcf7-response-output {
  margin-top: 12px;
  font-size: 14px;
  border-radius: 10px;
  padding: 10px 12px;
}

.wpcf7 form.sent .wpcf7-response-output{
  background-color:#000;
  text-align:center;
  border-color:#a582c9!important;
  box-shadow: 0 0 0 5px #9d7dc5;
}

/* ===== 確認画面 ===== */
.cf7-modern.confirm .cf7-title {
  margin-bottom: 16px;
}

.cf7-modern.confirm .field {
  margin-bottom: 14px;
}

.cf7-modern.confirm .field.floating {
  padding: 16px 16px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
}

.cf7-modern.confirm .field.floating > label {
  position: static;
  background: transparent;
  padding: 0;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 13px;
  opacity: .95;
}

.cf7-modern.confirm .field.floating .input-modern,
.cf7-modern.confirm .field.floating .textarea-modern {
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
  pointer-events: none;
  user-select: text;
  caret-color: transparent;
  color: var(--text);
  font-size: 16px;
  line-height: 1.8;
}

.cf7-modern.confirm .input-modern:focus,
.cf7-modern.confirm .textarea-modern:focus {
  border-color: var(--border);
  box-shadow: none;
  outline: none;
}

.cf7-modern.confirm .field.floating .textarea-modern {
  white-space: pre-wrap;
  resize: none;
  min-height: 0;
}

.cf7-modern.confirm .req {
  vertical-align: middle;
}

.cf7-modern.confirm .actions {
  display: flex;
  gap: 14px;
  margin-top: 22px;
  justify-content: center;
  align-items: stretch;
  flex-wrap: nowrap;
}
.cf7-modern.confirm .actions > p { display: contents; margin: 0; }
.cf7-modern.confirm .actions > p br { display: none; }

.cf7-modern.confirm .actions .btn-modern,
.cf7-modern.confirm .actions .wpcf7-submit {
  width: auto !important;
  margin: 0 !important;
  min-width: 220px;
  padding: 12px 18px;
  border-radius: 12px;
}

.cf7-modern.confirm .actions .btn-outline,
.cf7-modern.confirm .actions .previous-475 {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 180px;
  padding: 12px 18px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  transition: box-shadow .25s ease, border-color .25s ease, transform .1s ease;
}

.cf7-modern.confirm .actions .btn-outline:hover,
.cf7-modern.confirm .actions .previous-475:hover {
  border-color: var(--accent);
  box-shadow: 0 0 12px rgba(91,140,255,0.35);
}

.cf7-modern.confirm .actions .btn-outline:active,
.cf7-modern.confirm .actions .previous-475:active {
  transform: translateY(1px);
}

.cf7-modern.confirm .actions .wpcf7-spinner { 
  align-self: center; 
  margin-left: 8px; 
}

.cf7-modern.confirm .wpcf7-response-output {
  background: #0c0f19;
  border: 1px solid var(--border);
  color: #e9ecf1;
}

@media (max-width: 640px) {
  .cf7-modern.confirm .input-modern,
  .cf7-modern.confirm .textarea-modern { font-size: 14px; }
  .cf7-modern.confirm .actions { flex-direction: column; }
  .cf7-modern.confirm .actions .btn-modern,
  .cf7-modern.confirm .actions .wpcf7-submit,
  .cf7-modern.confirm .actions .btn-outline,
  .cf7-modern.confirm .actions .previous-475 {
    width: 100% !important;
    min-width: 0;
  }
  .cf7-modern.confirm .actions .btn-outline { margin-bottom: .5em; }
}
/*===========================================▲問い合わせフォーム▲================================================*/


/*===========================================▼メインビジュアルコンテナ▼================================================*/
.p-mainVisual__slideText {
    margin: 1em 0 0;
    text-align: left;
	width:100vw!important;
}
.center {
  display: grid;
  place-items: center;   
}

.center img{
    width:clamp(520px, 100vh, 1200px); 
}


.p-mainVisual__textLayer{
  display: grid;
  place-items: center;                
  text-align: center;
  min-height: clamp(520px, 75vh, 900px);  
}

:root{
  --mv-shift: 10vh; 
}
@media (max-width: 781px){
      :root{ --mv-shift: 15vh; } 
    .taiken_btn > img{  width: 90%!important;margin: 0 auto !important; }
    .taiken_btn{
    margin-left: auto !important;
    margin-right: auto !important;
    transform: translateX(0);   
  }
}

.p-mainVisual__slideTitle{
  display: block;
  margin-inline: auto;                    
  width: min(95vw, 1400px);
  transform: translateY(var(--mv-shift));
}

.taiken_btn{
  display:block;
  width:min(80%, 500px);
  margin-bottom:2em;
  margin-left:auto;
  margin-right:3em;
}

.taiken_btn > img{
  display:block;
  width:100%;
  height:auto;

  filter:
    drop-shadow(0 0 2px rgba(255, 140, 0, 0.25))
    drop-shadow(0 0 4px rgba(255, 140, 0, 0.15))
    drop-shadow(0 0 8px rgba(255, 140, 0, 0.08)); 
  transition: filter .6s cubic-bezier(.22,.61,.36,1), -webkit-filter .6s cubic-bezier(.22,.61,.36,1);
  will-change: filter;
}

.taiken_btn:hover > img{
  filter:
    drop-shadow(0 0 6px  rgba(255, 165, 0, 0.75))
    drop-shadow(0 0 14px rgba(255, 165, 0, 0.55))
    drop-shadow(0 0 28px rgba(255, 165, 0, 0.35));
}

.taiken_btn:hover > img{
  animation: neonPulse 1.6s ease-in-out infinite alternate .6s;
}

@keyframes neonPulse{
  from{
    filter:
      drop-shadow(0 0 6px  rgba(255, 165, 0, 0.75))
      drop-shadow(0 0 14px rgba(255, 165, 0, 0.55))
      drop-shadow(0 0 28px rgba(255, 165, 0, 0.35));
  }
  to{
    filter:
      drop-shadow(0 0 10px rgba(255, 180, 50, 0.95))
      drop-shadow(0 0 22px rgba(255, 180, 50, 0.75))
      drop-shadow(0 0 40px rgba(255, 180, 50, 0.55));
  }
}

@media (prefers-reduced-motion: reduce){
  .taiken_btn > img{ animation:none !important; }
}
.p-mainVisual{
	min-height:500px;
}
.p-mainVisual .swiper{
	min-height:500px;
}


/*===========================================▲メインビジュアルコンテナ▲================================================*/

/*===========================================▼ハンバーガー▼================================================*/
.p-spMenu{
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
}

.l-header{background-color:#000!important;}
.-menuBtn .c-iconBtn__icon {
    width: 24px;
    height: 2px;
    background-color: #A782CB;
    display: grid;
    place-items: center;
    transition: transform .3s;
    
    &::before,
    &::after {
        grid-area: 1 / 1;
        content: '';
        display: block;
        inset: 0;
        width: 24px;
        height: 2px;
        background-color: #FFF;
        transition: transform .3s;
    }
    
    &::before {
        transform: translateY(-8px);
    }
    
    &::after {
        transform: translateY(8px);
    }
}

[data-spmenu=opened] {
    
    .-menuBtn .c-iconBtn__icon::before {
            transform: rotate(45deg);
    }
    
    .-menuBtn .c-iconBtn__icon {
        background-color: transparent;
    }
    
    .-menuBtn .c-iconBtn__icon::after {
        transform: rotate(-45deg);
    }
}

.l-header__menuBtn .c-iconBtn::after,
.p-spMenu__closeBtn .c-iconBtn::after {
    font-size: 10px;
    line-height: 10px;
    transform: translateY(12px);
}

.l-header__menuBtn .c-iconBtn::after {
/* content: 'MENU'; */
}

.p-spMenu__closeBtn .c-iconBtn::after {
/* content: 'CLOSE'; */
}

.p-spMenu__inner {
  width: 100%;
  height: 100%;
  transform: translateX(0)!important;
  opacity: 0;
  transition: opacity .5s ease-out!important;
}

[data-spmenu="opened"] .p-spMenu__inner {
  opacity: 1;
}

.p-spMenu__inner::before {
    background: rgb(0 0 0 / .5);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.p-spMenu__body {
    opacity: 0;
    transform: translateY(20px);
}
.p-spMenu__body img{
    display: block;
  margin: 0 auto;
    width:60%;
}
[data-spmenu="opened"] .p-spMenu__body {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 1s ease-in, transform .7s ease-out;
}
html[data-spmenu="opened"],
body[data-spmenu="opened"]{
  overflow: hidden !important;
  height: 100% !important;
}
html[data-spmenu="opened"] body,
body[data-spmenu="opened"]{
  overflow: hidden !important;
  height: 100% !important;
}
.p-spMenu__body .swell-block-linkList {
    gap: 1.7em;
	margin:2.8em auto!important;
}

.p-spMenu__body .swell-block-linkList__text {
    margin-inline: auto;
    color:#FFF;
}
.c-widget__title.-spmenu,
.p-spMenu__nav {
      display:none;

}
/*===========================================▲ハンバーガー▲================================================*/

/*===========================================▼虫眼鏡検索▼================================================*/

#pagefind-overlay{
  position:fixed; inset:0;
  background:rgba(0,0,0,.45);
  display:none;
  z-index:99999;
  opacity:0;
  transition: opacity .18s ease;
}

#pagefind-overlay.is-open{
  display:block;
  opacity:0;
}

#pagefind-overlay.is-open.is-visible{
  opacity:1;
}

#pagefind-overlay .pagefind-box{
  position:absolute;
  left:50%; top:12px;
  transform:translateX(-50%);
  width:min(92vw,520px);
  background:#fff;
  border-radius:12px;
  padding:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}

#pagefind-overlay .pagefind-row{
  display:grid;
  grid-template-columns:1fr 44px 44px 44px;
  gap:8px; align-items:center;
}

#pagefind-overlay input{
  width:100%;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,.2);
  border-radius:10px;
  font-size:16px; 
}

#pagefind-overlay button{
  height:42px;
  border:1px solid rgba(0,0,0,.2);
  background:#f7f7f7;
  border-radius:10px;
  font-size:18px;
}

#pagefind-overlay .pagefind-note{
  margin-top:8px;
  font-size:12px;
  opacity:.75;
}

mark.pagefind-mark{
  background:#ffeb3b;
  color:inherit;
  padding:0 .08em;
  border-radius:.2em;
}

mark.pagefind-current{
  background:#ffc107;
  color:inherit;
  padding:0 .08em;
  border-radius:.2em;
  outline:2px solid rgba(0,0,0,.15);
}
/*===========================================▲虫眼鏡検索▲================================================*/


/*===========================================▼その他コンテンツ▼================================================*/
.c-gnav > li:hover > a, .c-gnav > .-current > a {
text-shadow:0px 0px 8px #FFF;  
transition: all .3s;
}
.l-content{ margin-bottom:0!important;}
.wide_btn a{width:100%;}
.top #content {padding-top: 0;}

.khp02{
    font-size:clamp(20px, 5vw,25px);
}
.khp03{
    font-size:clamp(30px,9vw,50px);
}
.msg_rotate{                    
    transform: rotate(-8deg);
    font-size:clamp(15px, 3vw, 25px);
}

.zen-kurenaido-regular {
  font-family: "Zen Kurenaido", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.w-footer__box .widget_media_image{
    text-align: center;
}

@media (max-width: 781px){
    .q_icon{width:30%;margin:0 auto;}
    .q_title{gap:0!important;}
}

.place_clm .is-style-btn_line a{color:#48494c;}


/*===========================================▼修正パッチ▼================================================*/
.swell-block-fullWide { position: relative; isolation: isolate; }
.title_wrap { display: grid; place-items: end start; margin-bottom: .5em !important; }
.title_wrap > .title_back,
.title_wrap > .title_front { grid-area: 1 / 1; line-height: 1; }
.title_wrap .title_back{
  position: static;
  font-size: clamp(48px, 18vw, 120px);
  -webkit-text-stroke: 1px #0071bc;
  color: transparent; opacity: .8;
  z-index: 0; pointer-events: none; 
}
.title_wrap .title_front{
  position: relative;
  font-size: clamp(28px, 9vw, 70px);
  background: linear-gradient(to right, #1f4ebd, #9d7dc5);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  z-index: 1;
}
.ms1_clm{
    margin-right:1em!important;
    margin-left:1em!important;
}
.ms2_clm{
    margin-right:2em!important;
    margin-left:2em!important;
}

.dank{
    box-shadow: 12px 12px 2px 1px rgba(17, 37, 89, 1)!important;
    width:80%;
}

.flow-clm { max-height: none; }

@media (max-width: 781px){
  .wp-block-image.alignright,
  .wp-block-image.alignleft { float: none !important; margin: 0 auto 16px !important; }
}

.wp-block-image img { display: block; width: 100%; height: auto; }

@media (max-width: 959px){
  .has-bg-img.-fixbg { background-attachment: scroll !important; }
}

.right_in_pl, .left_in_pl { height: auto; }

.title_back, .title_back2 { pointer-events: none; }

.center img{
  width: 100%;
  max-width: 1200px;
  height: auto;
}
.loading{
  left: 0; right: 0; top: 0; bottom: 0; 
  width: auto; 
  height: auto;
  min-height: 100dvh;
}
@supports not (min-height: 100dvh){
  .loading{ min-height: 100vh; }
}
@media (max-width: 781px){
  .swiper-3d,
  .game-swiper{
    overflow: hidden !important;
  }
  .game-swiper .swiper-slide{
    max-width: 100%;
  }
}
html, body{
  overflow-x: hidden;
	background-color: #000!important; 
}
html { -webkit-text-size-adjust: 100%; }
input, select, textarea { font-size: 16px; }

/* ======================================
   LCP対策：Swiper初期化前でも1枚目を表示（見た目維持）
   ====================================== */

/* 初期化前にスライダーが隠されている場合でも、1枚目だけは見せる */
.p-mainVisual .swiper:not(.swiper-initialized) .swiper-slide:first-child,
.p-mainVisual .swiper:not(.swiper-initialized) .p-mainVisual__slide:first-child{
  opacity: 1 !important;
  visibility: visible !important;
}

/* ラッパーがtransformでどこかに飛ばされているケースを戻す */
.p-mainVisual .swiper:not(.swiper-initialized) .swiper-wrapper{
  transform: none !important;
}

/* 初期化前に全体が透明化されているケースがあるので親も保険 */
.p-mainVisual .swiper:not(.swiper-initialized){
  opacity: 1 !important;
  visibility: visible !important;
}
/* LCP対策：Swiper初期化前でもメインビジュアルの1枚目だけ表示する */
.p-mainVisual .swiper:not(.swiper-initialized),
.p-mainVisual .swiper-container:not(.swiper-initialized){
  opacity: 1 !important;
  visibility: visible !important;
}

/* 初期化前は1枚目だけ表示（見た目は通常と同じ1枚目） */
.p-mainVisual .swiper:not(.swiper-initialized) .swiper-slide,
.p-mainVisual .swiper-container:not(.swiper-initialized) .swiper-slide{
  display: none !important;
}
.p-mainVisual .swiper:not(.swiper-initialized) .swiper-slide:first-child,
.p-mainVisual .swiper-container:not(.swiper-initialized) .swiper-slide:first-child{
  display: block !important;
}
