@charset "UTF-8";

/*
Theme Name: reject様
Theme URI: /wp-content/themes/reject_ver1
Author URI:
Version: 1.0
*/

html{
    letter-spacing: 0;
    font-family: "Funnel Display" ,"Zen Kaku Gothic New", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
    background-color: #000000;
}

footer{
    background: #000;
}

body.is-loading {
    overflow: hidden;
}

.is-error{
    color: red;
    font-size: 14px;
}

.funnel-display {
    font-family: "Funnel Display", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
}

.zen-kaku-gothic-new-regular {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.zen-kaku-gothic-new-bold {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

main.page{
    padding-top: min(max(85 / var(--main-w) * 100vw,60px),85px);
}


a{
    color: inherit;
    text-decoration: none;
}

img:not(.news__content img){
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

:root{
    --main-w: 1360;
    --sp-w: 375;
    --main-color:#C90000;
}

.header{
    height: min(max(85 / var(--main-w) * 100vw, 60px), 85px);;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.7);
    padding: min(max(23 / var(--main-w) * 100vw,14px),23px) min(max(50 / var(--main-w) * 100vw,25px),50px);
    z-index: 9999;
}

.header__inner{
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.header__logo{
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: block;
    width: min(max(150 / var(--main-w) * 100vw,100px), 150px);
    height: auto;
}

.header__nav__list{
    display: flex;
    align-items: center;
    gap: min(max(33 / var(--main-w) * 100vw,16px), 33px);
}

.header__nav__list li{
    list-style: none;
}

.header__nav__list__item{
    font-size: min(max(15 / var(--main-w) * 100vw,13px),15px);
    color: #fff;
    font-weight: 600;
}

.header__shop{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    display: flex;
    border-radius: 2px;
    gap: 20px;
    font-size: min(max(15 / var(--main-w) * 100vw,13px),15px);
    color: #fff;
    font-weight: 600;
    padding: min(max(10 / var(--main-w) * 100vw,8px),10px) min(max(40 / var(--main-w) * 100vw,20px),40px);
    background-color: var(--main-color);
}

.header__shop::after{
    content: "";
    background: url(./assets/img/shoplogo.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    width: 11.46px;
    height: auto;
    aspect-ratio: 11/16;
}

/* fv */

.fv{
    height: 100svh;
    width: 100%;
    position: relative;
}

.fv__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation: fade 25s infinite;
  animation-play-state: paused;
}

.fv.is-loaded .fv__bg {
  animation-play-state: running;
}

/* 画像指定 */
.bg1 {
  background-image: url(./assets/img/fv_RCSFL26_1.webp);
  animation-delay: 0s;
}
.bg2 {
  background-image: url(./assets/img/fv_RCSFL26_2.webp);
  animation-delay: 5s;
}
.bg3 {
  background-image: url(./assets/img/fv_RCSFL26_3.webp);
  animation-delay: 10s;
}
.bg4 {
  background-image: url(./assets/img/fv_RCSFL26_4.webp);
  animation-delay: 15s;
}
.bg5 {
  background-image: url(./assets/img/fv_RCSFL26_5.webp);
  animation-delay: 20s;
}

@keyframes fade {
  0%   { opacity: 0; }
  10%  { opacity: 1; }
  25%  { opacity: 1; }
  35%  { opacity: 0; }
  100% { opacity: 0; }
}

.fv__inner{
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    height: 100%;
}

.fv__logo{
    width: 48.8px;
    max-width: 100%;
    z-index: 2;
}

.fv__bigtxt{
    text-align: center;
    font-size: min(max(70 / var(--main-w) * 100vw,40px),70px);
    font-weight: 500;
    color: #fff;
    line-height: 1.2;
    margin-top: 14px;
    z-index: 2;
}

.fv__txt{
    text-align: center;
    color: #fff;
    font-size: min(max(12 / var(--main-w) * 100vw,10px),12px);
    line-height: 1.3;
    margin-top: 12px;
    z-index: 2;
}

.fv__bottom{
    padding-top: min(max(30 / var(--main-w) * 100vw,20px),30px);
    padding-bottom: min(max(74 / var(--main-w) * 100vw,50px),74px);
}

.fv__bottom__roll{
    position: relative;
    animation: bg-slider 90s linear infinite;
    background: url(./assets/img/scroll_banner_ver4.webp) repeat-x 50%;
    background-size: auto 35px;
    height: 35px;
    width: 100%;
}

.fv__bottom__roll::after{
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    width: 30%;
    background: linear-gradient(to left,rgba(0,0,0,0.8) 0%,rgba(0,0,0,0) 100%);
}

.fv__bottom__roll::before{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 30%;
    background: linear-gradient(to right,rgba(0,0,0,0.8) 0%,rgba(0,0,0,0) 100%);
}

@keyframes bg-slider{0%{background-position:0 0}to{background-position:-3770px 0}}

.line__wrap{
    max-width: 1260px;
    width: calc(100% - 30px);
    margin: 0 auto;
}

.w-100{
    width: 100%;
    max-width: unset;
}

.top-news{
    max-width: 1260px;
    width: calc(100% - 30px);
    margin: 0 auto;
}

.line__item{
    display: flex;
    height: 1px;
    overflow: hidden;
    clip-path: inset(0 100% 0 0); 
    transition: clip-path 2s cubic-bezier(.25, .8, .25, 1);
}

.line__item.active{
    clip-path: inset(0 0 0 0);
}

.line__item__gray{
    width: 40%;
    background-color: #777777;
    height: 100%;
}

.line__item__white{
    width: 40%;
    background-color: #fff;
    height: 100%;
}

.line__item__red{
    width: 20%;
    background-color: var(--main-color);
    height: 100%;
}

.news__top__more{
    display: flex;
    flex: 1;
    gap: 30px;
    align-items: center;
    justify-content: right;
    font-size: min(max(24 / var(--main-w) * 100vw,20px),24px);
    color: #fff;
    line-height: 1.3;
}

.crosshair{
    content: '';
    min-width: min(max(30 / var(--main-w) * 100vw,20px),30px);
    height: auto;
    aspect-ratio: 1/1;
    background: url(./assets/img/cross.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transition: .25s cubic-bezier(.07,.74,.24,1);
}

.crosshair--back{
    background: url(./assets/img/cross_min.webp);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.news__top__more:hover .crosshair{
    background: url(./assets/img/cross_open.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: drop-shadow(0 0 8px rgba(255,0,0,.6));
}

.news__top__more:hover{
    color: var(--main-color);
}

.top-news{
    padding: min(max(54 / var(--main-w) * 100vw,30px),54px) 0 min(max(80 / var(--main-w) * 100vw,50px),80px) 0;
}

.top-section__ttl{
    display: flex;
    gap: min(max(30 / var(--main-w) * 100vw,10px),30px);
    font-size: min(max(36 / var(--main-w) * 100vw,24px),36px);
    color: #fff;
    flex: 1;
    line-height: 1.5;
}

.top-section__ttl--news{
    display: block;
    font-size: min(max(24 / var(--main-w) * 100vw,20px),24px);
}

.top-section__ttl--contact{
    display: block;
    font-size: min(max(48 / var(--main-w) * 100vw,36px),48px);
}

.top-section__ttl--fotter{
    font-size: min(max(24 / var(--main-w) * 100vw,20px),24px);
    white-space: nowrap;
}

.top-section__ttl--partnercon{
    font-size: min(max(24 / var(--main-w) * 100vw,16px),24px);
    white-space: nowrap;
}

.top-section__ttl:hover{
    color: var(--main-color);
}

.top-section__ttl--news:hover{
    color: #fff;
}

.news__top{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.news__top__list{
    display: flex;
    gap: min(max(40 / var(--main-w) * 100vw,30px),40px);
}

.news__top__list__item{
    cursor: pointer;
    font-size: min(max(14 / var(--main-w) * 100vw,12px),14px);
    color: #fff;
    padding: 5px 10px;
}

.news__top__list__item--gol{
    cursor: none;
}

.news__top__list__item--gol{
    color: #777777;
}

.news__top__list__item--active{
    color: var(--main-color);
    text-decoration: underline;
}

.top-news__wrap{
    display: flex;
    flex-wrap: wrap;
    gap: min(max(50 / var(--main-w) * 100vw,30px),50px) min(max(33 / var(--main-w) * 100vw,21px),33px);
    margin-top: min(max(50 / var(--main-w) * 100vw,25px),50px);
}

.top-news__item{
    width: calc(33.333% - min(max(22 / var(--main-w) * 100vw,14px),22px));
}
/* =========================================================
   画像コンテナ：グリッチレイヤー用
   ========================================================= */
.top-news__item__image{
    border-radius: 5px;
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
}

/* =========================================================
   ベース画像：グレー → カラー
   ========================================================= */
.top-news__item__image img{
    display: block;
    width: 100%;
    filter: grayscale(1);
    transition: filter .35s ease .45s; 
}

.top-news__item:hover .top-news__item__image img{
    filter: grayscale(0);
}

/* =========================================================
   グリッチ用 RGBズレ（画像コピー）
   ========================================================= */

/* before：レッド寄り / after：シアン寄り */
.top-news__item__image::before,
.top-news__item__image::after{
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--news-img);
    background-size: cover;
    background-position: center;
    opacity: 0;
    visibility: hidden;
    mix-blend-mode: screen;
    pointer-events: none;
    z-index: 1;
}

.top-news__item__image::before{
    filter: hue-rotate(10deg) saturate(2.5);
}

.top-news__item__image::after{
    filter: hue-rotate(-20deg) saturate(2.5);
}

/* ホバー時 → グリッチ（画像スライス）発動 */
.top-news__item:hover .top-news__item__image::before,
.top-news__item:hover .top-news__item__image::after{
    visibility: visible;
    opacity: 1;
    animation: news-image-glitch .45s steps(4) 1 forwards;
}

/* グリッチ本体 */
@keyframes news-image-glitch {
    0% {
        opacity: 0;
        visibility: visible;
        clip-path: inset(0 0 0 0);
        transform: translate(0, 0);
    }
    10% {
        opacity: 1;
        clip-path: inset(0 0 70% 0);
        transform: translate(-2px, -1px);
    }
    25% {
        clip-path: inset(35% 0 35% 0);
        transform: translate(2px, 1px);
    }
    40% {
        clip-path: inset(65% 0 10% 0);
        transform: translate(-1px, 0);
    }
    60% {
        clip-path: inset(15% 0 55% 0);
        transform: translate(1px, -1px);
    }
    80% {
        clip-path: inset(45% 0 20% 0);
        transform: translate(-1px, 1px);
    }
    100% {
        opacity: 0;
        visibility: hidden; /* ← これで完全消滅 */
        clip-path: inset(0 0 0 0);
        transform: translate(0, 0);
    }
}


/* =========================================================
   RGBボーダー用レイヤー（※画像コピーとは別レイヤー）
   ========================================================= */
.top-news__item__image::after{
    /* ここに background-image を指定すると画像レイヤーと衝突するため、
       枠線専用の疑似要素を追加します */
}

.top-news__item__image::before,
.top-news__item__image::after { z-index: 1; }

.top-news__item__image::after-border {
    content: "";
}
.top-news__item__image::before-border,
.top-news__item__image::after-border{
    content: "";
}


/* =========================================================
   ★ 正しい border layer の実装（div追加版）
   ========================================================= */

/* グリッチ枠線レイヤー */
.glitch-border{
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    visibility: hidden;

    /* 内側RGBボーダー */
    box-shadow:
        inset 2px 0 0 rgba(255,0,0,0.7),
        inset -2px 0 0 rgba(0,255,255,0.7),
        inset 0 2px 0 rgba(255,0,0,0.5),
        inset 0 -2px 0 rgba(0,255,255,0.5);

    transition: opacity .12s ease;
}

/* ホバー時：枠線グリッチ */
.top-news__item:hover .glitch-border{
    visibility: visible;
    opacity: 1;
    animation: news-border-glitch .4s steps(5) 1 forwards;
}

/* ボーダーのグリッチ */
@keyframes news-border-glitch {
    0%   { transform: translate(0,0); }
    20%  { transform: translate(-1px,0); }
    40%  { transform: translate(1px,-1px); }
    60%  { transform: translate(0,1px); }
    80%  { transform: translate(-1px,0); }
    100% {
        transform: translate(0,0);
        opacity: 0;
        visibility: hidden; /* ← 完全に消える */
    }
}


/* =========================================================
   タイトル・crosshair の遅延ホバー演出
   ========================================================= */
.top-news__item__ttl{
    transition: color .3s ease .35s;
}

.top-news__item:hover .top-news__item__ttl{
    color: var(--main-color);
}

.crosshair--newsitem{
    transition:
        transform .3s ease .35s,
        filter .3s ease .35s,
        background .3s ease .35s;
}

.top-news__item:hover .crosshair--newsitem{
    background: url(./assets/img/cross_open.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: drop-shadow(0 0 8px rgba(255,0,0,.6));
}

.top-news__item__ttl{
    position: relative;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: min(max(16 / var(--main-w) * 100vw, 15px), 16px);
    color: #fff;
    padding-right: min(max(30 / var(--main-w) * 100vw, 30px), 30px);
    margin-top: min(max(22 / var(--main-w) * 100vw,14px),22px);
    display: -webkit-box; /* 必須 */
    -webkit-box-orient: vertical; /* 必須 */
    -webkit-line-clamp: 1; /* 行数を制限 */
    overflow: hidden; /* はみ出た部分を非表示 */
}

.top-news__item__info{
    display: flex;
    gap: min(max(30 / var(--main-w) * 100vw,20px),30px);
    margin-top: min(max(11 / var(--main-w) * 100vw,5px),11px);
}

.top-news__item__info__date,.top-news__item__info__label{
    font-size: min(max(14 / var(--main-w) * 100vw,12px),14px);
    color: #777777;
}

.crosshair--newsitem{
    position: absolute;
    min-width: 20px;
    right: 0;
    top: calc(50% - 10px);
}

.crosshair--secttl{
    min-width: min(max(20 / var(--main-w) * 100vw,16px),20px);
}

.crosshair--teamsdetail{
    margin-top: min(max(3 / var(--main-w) * 100vw,1px),3px);
}

.top-teams{
    width: calc(100% - 30px);
    max-width: 1260px;
    margin: 0 auto;
    padding: min(max(54 / var(--main-w) * 100vw,30px),54px) 0 min(max(80 / var(--main-w) * 100vw,50px),80px) 0;
}

.top-teams__top{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-teams__top__right{
    display: flex;
    gap: min(max(30 / var(--main-w) * 100vw,15px),30px);
}

.top-teams__top__right__list{
    display: flex;
    align-items: center;
    gap: min(max(21 / var(--main-w) * 100vw,7px),21px);
}

.top-teams__top__right__ttl{
    font-size: min(max(14 / var(--main-w) * 100vw,12px),14px);
    color: #777777;
}

.top-teams__top__right__list__item{
    cursor: pointer;
    transition: 0.3s;
}

.top-teams__top__right__list__item{
    width: 18px;
    height: auto;
    aspect-ratio: 1/1;
}

.top-teams__top__right__list__item img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.top-teams__top__right__list__item:hover{
    transition: 0.3s;
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}

.top-teams__top__right__list__item.is-active{
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}

.top-teams__wrap{
    display: block;
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1265/361;
    background: url(./assets/img/top_teams.webp);
    background-position: center;
    background-size: cover;
    margin-top: 20px;
}

.top-teams__wrap__inner{
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

/* ================================
    top-teams：ベース
   ================================ */
.top-teams__wrap{
    position: relative;
    overflow: hidden;
    border-radius: 6px;

    /* 背景画像はCSS変数で保持（HTML側で --teams-bg を指定） */
    background: var(--teams-bg) center/cover no-repeat;
    transition: background-color .25s ease .40s; /* グリッチ後に赤が乗る */
}

/* ================================
    グリッチ用：画像コピー（RGBずらし）
   ================================ */
.top-teams__wrap::before,
.top-teams__wrap::after{
    content:"";
    position:absolute;
    inset:0;
    background: var(--teams-bg) center/cover no-repeat;
    opacity:0;
    visibility:hidden;
    mix-blend-mode:screen;
    pointer-events:none;
    z-index:1;
}

/* before = 赤寄り */
.top-teams__wrap::before{
    filter:hue-rotate(10deg) saturate(2.5);
}

/* after = シアン寄り */
.top-teams__wrap::after{
    filter:hue-rotate(-20deg) saturate(2.5);
}

/* ホバー時：画像グリッチ発動 */
.top-teams__wrap:hover::before,
.top-teams__wrap:hover::after{
    visibility:visible;
    opacity:1;
    animation: teams-image-glitch .45s steps(4) 1 forwards;
}

/* スライスグリッチ（newsと同系統） */
@keyframes teams-image-glitch{
    0%   {opacity:0;visibility:visible;clip-path:inset(0 0 0 0);transform:translate(0,0);}
    10%  {opacity:1;clip-path:inset(0 0 70% 0);transform:translate(-2px,-1px);}
    25%  {clip-path:inset(35% 0 35% 0);transform:translate(2px,1px);}
    40%  {clip-path:inset(65% 0 10% 0);transform:translate(-1px,0);}
    60%  {clip-path:inset(15% 0 55% 0);transform:translate(1px,-1px);}
    80%  {clip-path:inset(45% 0 20% 0);transform:translate(-1px,1px);}
    100% {opacity:0;visibility:hidden;clip-path:inset(0 0 0 0);transform:translate(0,0);}
}

/* ================================
    RGBボーダー用レイヤー
   ================================ */
.glitch-border{
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    z-index:2;
    opacity:0;
    visibility:hidden;

    box-shadow:
        inset 2px 0 0 rgba(255,0,0,0.7),
        inset -2px 0 0 rgba(0,255,255,0.7),
        inset 0 2px 0 rgba(255,0,0,0.5),
        inset 0 -2px 0 rgba(0,255,255,0.5);

    transition:opacity .12s ease;
}

/* ボーダーグリッチ */
.top-teams__wrap:hover .glitch-border{
    visibility:visible;
    opacity:1;
    animation: teams-border-glitch .4s steps(5) 1 forwards;
}

@keyframes teams-border-glitch{
    0%   {transform:translate(0,0);}
    20%  {transform:translate(-1px,0);}
    40%  {transform:translate(1px,-1px);}
    60%  {transform:translate(0,1px);}
    80%  {transform:translate(-1px,0);}
    100% {transform:translate(0,0);opacity:0;visibility:hidden;}
}

/* ================================
    グリッチ後：背景を赤く
   ================================ */
.top-teams__wrap:hover{
    background-color: var(--main-color);
    background-blend-mode: multiply; /* 画像＋赤をいい感じにブレンド */
}

/* ================================
    テキスト & クロスの表示アニメ
   ================================ */
.top-teams__wrap__inner{
    position: relative;
    z-index:3;
}

/* 基本状態：遅延なし（hover解除時はここに戻るため即消える） */
.top-teams__txt,
.top-teams__cross{
    opacity:0;
    transform:translateY(8px);
    transition:
        opacity .25s ease,
        transform .25s ease;
    pointer-events:none;
}

/* hover時：ここでだけ delay を付ける（ゆっくり出現させる） */
.top-teams__wrap:hover .top-teams__txt,
.top-teams__wrap:hover .top-teams__cross{
    opacity:1;
    transform:translateY(0);
    transition-delay: .40s; /* ← 出現時だけ delay */
}

.top-teams__txt{
    opacity: 0;
    text-align: center;
    color: #fff;
    font-size: min(max(36 / var(--main-w) * 100vw,28px),36px);
}

.top-teams__cross{
    position: absolute;
    width: min(max(80 / var(--main-w) * 100vw,40px),80px);
    height: min(max(80 / var(--main-w) * 100vw,40px),80px);
    right: min(max(70 / var(--main-w) * 100vw,15px),70px);
    bottom: min(max(38 / var(--main-w) * 100vw,15px),38px);
}

.top-grid{
    display: flex;
    gap: min(max(25 / var(--main-w) * 100vw,10px),25px);
    width: calc(100% - 30px);
    max-width: 1260px;
    margin: 0 auto;
    padding: min(max(54 / var(--main-w) * 100vw,30px),54px) 0 min(max(80 / var(--main-w) * 100vw,50px),80px) 0;
}

.top-grid__item{
    width: 50%;
}

.top-grid__item__link{
    display: block;
}

.top-history__image,.top-shop__image{
    margin-top: min(max(22 / var(--main-w) * 100vw,12px),22px);
    width: 100%;
    height: auto;
    aspect-ratio: 620/361;
}

/* ベース画像 */
.top-history__image,
.top-shop__image{
    position: relative;
    overflow: hidden;
    background-position: center;
    background-size: cover;
}

/* ▼ 通常画像 */
.top-history__image,
.top-shop__image{
    position: relative;
    overflow: hidden;
    background-position: center;
    background-size: cover;
}

/* 通常時の背景 */
.top-history__image{
    background-image: url(./assets/img/top_history.webp);
}

.top-shop__image{
    background-image: url(./assets/img/top_shop.webp);
}

/* ▼ hover 後に最終的に切り替わる背景（グリッチ後に発火させる） */
.top-grid__item__link:hover .top-history__image{
    animation: top-bg-swap-history .45s steps(1, end) forwards;
}

.top-grid__item__link:hover .top-shop__image{
    animation: top-bg-swap-shop .45s steps(1, end) forwards;
}

@keyframes top-bg-swap-history {
    0% {
        background-image: url(./assets/img/top_history.webp);
    }
    100% {
        background-image: url(./assets/img/history_hover.webp);
    }
}

@keyframes top-bg-swap-shop {
    0% {
        background-image: url(./assets/img/top_shop.webp);
    }
    100% {
        background-image: url(./assets/img/shop_hover.webp);
    }
}

/* ▼ グリッチ用疑似要素：ここを「元画像」に変更 */
.top-history__image::before,
.top-history__image::after{
    background-image: url(./assets/img/top_history.webp);
}

.top-shop__image::before,
.top-shop__image::after{
    background-image: url(./assets/img/top_shop.webp);
}

/* 疑似要素の共通設定 */
.top-history__image::before,
.top-history__image::after,
.top-shop__image::before,
.top-shop__image::after{
    content: "";
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    opacity: 0;
    visibility: hidden;
    mix-blend-mode: screen;
    pointer-events: none;
    z-index: 1;
}

/* before（赤寄り） */
.top-history__image::before,
.top-shop__image::before{
    filter: hue-rotate(10deg) saturate(2.5);
}

/* after（シアン寄り） */
.top-history__image::after,
.top-shop__image::after{
    filter: hue-rotate(-20deg) saturate(2.5);
}

/* ▼ hover：グリッチ発動（元画像で 0.45s） */
.top-grid__item__link:hover .top-history__image::before,
.top-grid__item__link:hover .top-history__image::after,
.top-grid__item__link:hover .top-shop__image::before,
.top-grid__item__link:hover .top-shop__image::after{
    visibility: visible;
    opacity: 1;
    animation: top-image-glitch .45s steps(4) 1 forwards;
}

/* ▼ グリッチアニメーション本体（元画像で実施） */
@keyframes top-image-glitch {
    0% {
        opacity: 0;
        visibility: visible;
        clip-path: inset(0 0 0 0);
        transform: translate(0, 0);
    }
    10% {
        opacity: 1;
        clip-path: inset(0 0 70% 0);
        transform: translate(-2px, -1px);
    }
    25% {
        clip-path: inset(35% 0 35% 0);
        transform: translate(2px, 1px);
    }
    40% {
        clip-path: inset(65% 0 10% 0);
        transform: translate(-1px, 0);
    }
    60% {
        clip-path: inset(15% 0 55% 0);
        transform: translate(1px, -1px);
    }
    80% {
        clip-path: inset(45% 0 20% 0);
        transform: translate(-1px, 1px);
    }
    100% {
        opacity: 0;
        visibility: hidden;
        clip-path: inset(0 0 0 0);
        transform: translate(0, 0);
    }
}

.top-contact{
    max-width: 1260px;
    width: calc(100% - 30px);
    margin: 0 auto;
}

.top-contact__inner{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:min(max(70 / var(--main-w) * 100vw,50px),70px) 0;
    background:#000000;
    position:relative;
    overflow:hidden;
    transition:background .3s ease;
}

/* 最終状態（ホバー中ずっと適用）：ここは変更しない */
.top-contact__inner:hover{
    background: linear-gradient(
        to right,
        var(--main-color) 0%,
        #000 40%,
        #000 60%,
        var(--main-color) 100%
    );
}

/* 擬似要素で光を走らせる */
.top-contact__inner::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to right,
        transparent 0%,
        rgba(255,0,0,0.7) 50%,
        transparent 100%
    );
    transform:translateX(-120%);
    opacity:0;
    pointer-events:none;
    z-index:1;
}

/* ホバー時：光アニメ（1回だけ） */
.top-contact__inner:hover::before{
    opacity:1;
    animation: contact-alert-light 0.5s ease-out 1;
}

/* 光がスキャンのように通り過ぎるアニメ */
@keyframes contact-alert-light {
    0%   { transform:translateX(-120%); opacity:0; }
    20%  { opacity:1; }
    50%  { opacity:0.8; transform:translateX(0%); }
    80%  { opacity:0; }
    100% { transform:translateX(120%); opacity:0; }
}

.top-contact__box{
    display: flex;
    align-items: center;
    gap: min(max(15 / var(--main-w) * 100vw,10px),15px);
}

.top-contact__txt{
    color: #fff;
    font-size: min(max(18 / var(--main-w) * 100vw,14px),18px);
    margin-right: min(max(15 / var(--main-w) * 100vw,10px),15px);
    font-weight: 700;
    font-style: normal;
}

.top-contact__inner:hover .top-contact__txt,.top-contact__inner:hover .top-section__ttl{
    color: var(--main-color);
}

.top-section__ttl--team:hover .crosshair,.top-grid__item__link:hover .crosshair,.top-contact__inner:hover .crosshair,.top-section__ttl--fotter:hover .crosshair,.top-section__ttl--sponser:hover .crosshair,.teams-detail__relation__list__item:hover .crosshair,.top-section__ttl--partnercon:hover .crosshair{
    background: url(./assets/img/cross_open.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: drop-shadow(0 0 8px rgba(255,0,0,.6));
}

.top-section__ttl--partnercon .crosshair{
    filter: brightness(0) saturate(100%) invert(100%) sepia(1%) saturate(0%) hue-rotate(1deg) brightness(102%) contrast(100%)!important;
}

.top-grid__item__link:hover h2{
    color: var(--main-color);
}

.teams-detail__relation__list__item:hover p{
    color: var(--main-color);
}

.top-section__ttl--partnercon:hover{
    color: #fff;
}

.footer__wrap{
    width: calc(100% - 30px);
    max-width: 1260px;
    margin: 0 auto;
    padding: min(max(85 / var(--main-w) * 100vw,50px),85px) 0;
    display: flex;
    justify-content: space-between;
}

.footer__left{
    display: flex;
    align-items: center;
    gap: min(max(170 / var(--main-w) * 100vw,50px),170px);
}

.footer__logo{
    display: block;
    width: min(max(150 / var(--main-w) * 100vw,100px),150px);
}

.footer__sns{
    display: flex;
    align-items: center;
    gap: min(max(30 / var(--main-w) * 100vw,20px),30px);
}

.footer__sns__ttl{
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    color: #777777;
    white-space: nowrap;
}

.footer__sns__list{
    display: flex;
    align-items: center;
    gap: min(max(15 / var(--main-w) * 100vw,5px),15px);
}

.footer__menu{
    display: flex;
    align-items: center;
    gap: min(max(70 / var(--main-w) * 100vw,30px),70px);
}

.footer__sns__list__item{
    transition: 0.3s;
    display: flex;
}

.footer__sns__list__item:hover{
    transition: 0.3s;
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}

.footer__bottom{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: calc(100% - 30px);
    margin: 0 auto;
    max-width: 1260px;
    margin-top: 21px;
    padding-bottom: min(max(38 / var(--main-w) * 100vw,22px),38px);
}

.footer__bottom__copy{
    display: inline-block;
    font-size: 14px;
    color: #fff;
}

.footer__bottom__copy--red{
    color: var(--main-color);
}

.footer__bottom__left{
    display: flex;
    gap: min(max(100 / var(--main-w) * 100vw,50px),100px);
}

.inner{
    max-width: 1260px;
    width: calc(100% - 30px);
    margin: 0 auto;
}

.pagetop{
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1260px;
    width: calc(100% - 30px);
    margin: 0 auto;
}

.page__ttl{
    color: #fff;
    font-size: min(max(56 / var(--main-w) * 100vw,30px),56px);
}

.page__breadcrumbs{
    display: flex;
    gap: 10px;
    justify-content: right;
    font-size: min(max(12 / var(--main-w) * 100vw,10px),12px);
    color: #777777;
}

.page__breadcrumbs li{
    position: relative;
    list-style: none;
}

.page__breadcrumbs li::after{
    content: '/';
    position: absolute;
    left: calc(100% + 3px);
    top: 0;
    font-size: min(max(12 / var(--main-w) * 100vw, 10px), 12px);
    color: #777777;
}

.page__breadcrumbs li:last-child::after{
    display: none;
}

.page__allwrap{
    padding-top: min(max(90 / var(--main-w) * 100vw,50px),90px);
    position: relative;
}

.page_deco{
    position: fixed;
    left: 0;
    top: 0;
    background: url(./assets/img/bg.webp);
    background-position: center;
    background-size: cover;
    width: 100%;
    height: 100%;
    z-index: -1;
}

/* about */

.about__fv{
    display: flex;
    gap: min(max(168 / var(--main-w) * 100vw,80px),168px);
    margin-top: min(max(70 / var(--main-w) * 100vw,46px),70px);
    padding-bottom: min(max(128 / var(--main-w) * 100vw,70px),128px);
}

.about__fv__left{
    width: 42%;
}

.about__fv__right{
    width: 45%;
    max-width: 553px;
}

.about__fv__left__ttl{
    font-size: min(max(70 / var(--main-w) * 100vw,46px),70px);
    color: #fff;
}

.about__fv__left__txt{
    color: #fff;
    font-size: min(max(20 / var(--main-w) * 100vw,18px),20px);
    margin-top: min(max(30 / var(--main-w) * 100vw,20px),30px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.about__fv__right{
    color: #fff;
    font-size: min(max(16 / var(--main-w) * 100vw,14px),16px);
    line-height: 1.8;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.about__price{
    padding: min(max(100 / var(--main-w) * 100vw,70px),100px) 0;
}

.about__price__logo{
    width: 48px;
    margin: 0 auto;
}

.about__price__txt{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: center;
    color: #fff;
    font-size: min(max(20 / var(--main-w) * 100vw,16px),20px);
    margin-top: min(max(20 / var(--main-w) * 100vw,10px),20px);
}

/* === 初期状態 === */
.about__price__main{
    position: relative;
    opacity: 1;
    visibility: hidden;
    text-align: center;
    color: #fff;
    font-size: min(max(70 / var(--main-w) * 100vw,40px),70px);
    margin-top: min(max(20 / var(--main-w) * 100vw,10px),20px);
    transition: opacity .25s ease;
}

/* === 表示時 === */
.about__price__main.active{
    opacity: 1;
    visibility: visible;
}

/* ==== RGBずらし用の疑似要素（2枚） ==== */
.about__price__main::before,
.about__price__main::after{
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
    opacity: 0;
    mix-blend-mode: screen;
    white-space: nowrap;
    font-size: inherit;
    transform: translate(0,0);
}

/* 赤寄り */
.about__price__main::before{
    filter: hue-rotate(10deg) saturate(2.5);
}

/* シアン寄り */
.about__price__main::after{
    filter: hue-rotate(-20deg) saturate(2.5);
}

/* active 時：グリッチ開始 */
.about__price__main.active::before,
.about__price__main.active::after{
    opacity: 1;
    animation: price-text-glitch 0.9s steps(5) 1 forwards;
}

@keyframes price-text-glitch {
    0% {
        opacity: 0;
        transform: translate(0,0);
        clip-path: inset(0 0 0 0);
    }
    8% {
        opacity: 1;
        clip-path: inset(0 0 65% 0);
        transform: translate(-2px, -1px);
    }
    18% {
        clip-path: inset(35% 0 35% 0);
        transform: translate(2px, 1px);
    }
    30% {
        clip-path: inset(65% 0 10% 0);
        transform: translate(-1px, 0px);
    }
    40% {
        clip-path: inset(25% 0 50% 0);
        transform: translate(1px, -1px);
        opacity: .8;
    }
    55% {
        clip-path: inset(45% 0 20% 0);
        transform: translate(-2px, 1px);
        opacity: 1;
    }
    70% {
        clip-path: inset(15% 0 55% 0);
        transform: translate(1px, 0px);
        opacity: .7;
    }
    85% {
        clip-path: inset(40% 0 30% 0);
        transform: translate(-1px, -1px);
        opacity: .5;
    }
    100% {
        opacity: 0;
        transform: translate(0,0);
        clip-path: inset(0 0 0 0);
    }
}

.about__grade{
    display: flex;
    padding: min(max(100 / var(--main-w) * 100vw,70px),100px) 0;
    gap: min(max(110 / var(--main-w) * 100vw,30px),110px);
}

.about__grade__ttl{
    color: #fff;
    font-size: min(max(56 / var(--main-w) * 100vw, 30px), 56px);
}

.about__grade__txt{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    color: #fff;
    font-size: min(max(20 / var(--main-w) * 100vw, 18px), 20px);
    margin-top: min(max(30 / var(--main-w) * 100vw, 10px), 30px);
}

.about__grade__box{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.about__grade__box__item{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: min(calc(23 * 100vw / var(--main-w)), 23px);
    width: calc(50% - 5px);
    padding: min(calc(38 * 100vw / var(--main-w)), 38px) min(calc(40 * 100vw / var(--main-w)), 40px);
    background-color: #777777;
}

.about__grade__box__item__logo{
    height: 100%;
    width: auto;
    aspect-ratio: 1 / 1;
}

.about__grade__box__item__logo img{
    object-fit: contain;
    object-position: center;
    width: 100%;
    height: 100%;
}

.about__grade__box__item__info{
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

.about__grade__box__item__info__ttl{
    font-size: min(max(18 / var(--main-w) * 100vw,10px),18px);
    color: #fff;
}

.about__grade__box__item__info__date{
    font-size: min(max(12 / var(--main-w) * 100vw,9px),12px);
    color: #fff;
    margin-top: min(calc(7 * 100vw / var(--main-w)), 7px);
}

.about__grade__box__item__info__num{
    color: #fff;
    font-size: min(max(49 / var(--main-w) * 100vw,28px),49px);
    height: -webkit-fill-available;
    display: flex;
    align-items: flex-end;
}

.about__grade__more{
    margin-top: min(calc(30 * 100vw / var(--main-w)), 30px);
}

.about__manage{
    padding: min(max(100 / var(--main-w) * 100vw,70px),100px) 0;
}

.about__manage__ttl{
    text-align: center;
    color: #fff;
    font-size: min(max(56 / var(--main-w) * 100vw, 28px), 56px);
}

.about__manage__flex{
    display: flex;
    margin: 0 auto;
    max-width: 900px;
    gap: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    margin-top: min(max(50 / var(--main-w) * 100vw, 25px), 50px);
}

.about__manage__item{
    width: 50%;
}

.about__manage__item__image{
    width: 100%;
}

.about__manage__item__info{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
}

.about__manage__item__info__name{
    color: var(--main-color);
    font-size: min(max(16 / var(--main-w) * 100vw, 12px), 16px);
}

.about__manage__item__info__sns{
    display: block;
    width: 22px;
    transition: 0.3s;
}

.about__manage__item__info__sns:hover{
    transition: 0.3s;
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}

.about__manage__item__enname{
    color: #fff;
    font-size: min(max(24 / var(--main-w) * 100vw, 20px), 24px);
    margin-top: min(max(20 / var(--main-w) * 100vw, 12px), 20px);
}

.about__manage__item__janame{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    color: #777777;
    font-size: min(max(16 / var(--main-w) * 100vw, 12px), 16px);
    margin-top: min(max(12 / var(--main-w) * 100vw, 10px), 12px);
}

.about__manage__item__txt{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    color: #fff;
    font-size: min(max(14 / var(--main-w) * 100vw, 14px), 14px);
    margin-top: min(max(20 / var(--main-w) * 100vw, 12px), 20px);
    line-height: 1.85;
}

.about__company{
    display: flex;
    align-items: flex-end;
    padding: min(max(100 / var(--main-w) * 100vw,70px),100px) 0;
    gap: min(max(100 / var(--main-w) * 100vw, 80px), 100px);
}

.about__company__left{
    width: 46%;
}

.about__company__right{
    width: 54%;
}

.about__company__map{
    margin-top:  min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    width: 100%;
    height: auto;
    aspect-ratio: 531/201;
}

.about__company__map iframe{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about__company__right{
    display: flex;
    flex-direction: column;
}

.about__company__item{
    display: flex;
    gap: 30px;
    width: 100%;
    padding: min(max(26 / var(--main-w) * 100vw, 14px), 26px) 0;
    border-bottom: 1px solid #fff;
}

.about__company__right .about__company__item:first-child{
    padding-top: 0;
}

.about__company__right .about__company__item:last-child{
    padding-bottom: 0;
    border-bottom: unset;
}

.about__company__item__ttl{
    color: #777777;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    min-width: 85px;
    line-height: 1.8;
}

.about__company__item__content{
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: min(max(18 / var(--main-w) * 100vw, 16px), 18px);
}

.about__sponcer{
    padding: min(max(100 / var(--main-w) * 100vw,70px),100px) 0;
}

.top-section__ttl--sponser{
    justify-content: center;
    align-items: baseline;
    font-size: min(max(56 / var(--main-w) * 100vw, 28px), 56px);
}

.fv__bottom--about{
    margin-top: 50px;
    padding-bottom: 0;
}

.teams-detail{
    display: flex;
    gap: min(max(80 / var(--main-w) * 100vw, 35px), 80px);
    margin-top: min(max(70 / var(--main-w) * 100vw, 20px), 70px);
    padding-bottom: min(max(60 / var(--main-w) * 100vw, 30px), 60px);
}

.teams-detail__image{
    width: 50%;
}

.teams-detail__right{
    width: 50%;
}

.teams-detail__info{
    display: flex;
    flex-direction: column;
}

.teams-detail__info__item{
    position: relative;
    display: flex;
    gap: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
    padding: min(max(18 / var(--main-w) * 100vw, 12px), 18px) 0;
    border-bottom: 1px solid #fff;
}

.teams-detail__info .teams-detail__info__item:first-child{
    justify-content: space-between;
    padding-top: 0;
}

.teams-detail__info .teams-detail__info__item:last-child{
    padding-bottom: 0;
    border-bottom: unset;
}

.teams-detail__info__item__box{
    display: flex;
    gap: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
}

.teams-detail__info__item__logo{
    width: min(max(47 / var(--main-w) * 100vw, 30px), 47px);
}

.detail__info .detail__info__item:first-child {
    padding-top: 0;
}

.detail__info .detail__info__item:last-child {
    padding-bottom: 0;
}

.teams-detail__info__item__ttl{
    color: #777777;
    min-width: 45px;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    min-width: 40px;
    line-height: 1.8;
}

.teams-detail__info__item__content{
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: min(max(20 / var(--main-w) * 100vw, 16px), 20px);
    line-height: 1.1;
}

.teams-detail__sns{
    display: flex;
    gap: 20px;
    margin-top: min(max(72 / var(--main-w) * 100vw, 40px), 72px);
}

.teams-detail__sns__item{
    display: block;
    width: 24px;
}

.teams-detail__profile{
    padding: min(max(30 / var(--main-w) * 100vw, 20px), 30px) 0 min(max(80 / var(--main-w) * 100vw, 40px), 80px) 0;
}

.teams-detail__profile__ttl{
    text-align: center;
    color: #fff;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
}

.teams-detail__profile__txt{
    margin: 0 auto;
    text-align: center;
    color: #fff;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin-top: 20px;
    line-height: 1.8;
    max-width: 564px;
}

.teams-detail__relation{
    padding: min(max(80 / var(--main-w) * 100vw, 70px), 80px) 0 min(max(150 / var(--main-w) * 100vw, 70px), 150px) 0;
}

.teams-detail__relation__ttl{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.teams-detail__relation__ttl__image{
    width: 50px;
    margin: 0 auto;
}

.teams-detail__relation__ttl__txt{
    text-align: center;
    color: #fff;
    font-size: min(max(48 / var(--main-w) * 100vw, 28px), 48px);
}

.teams-detail__relation__list{
    display: flex;
    flex-wrap: wrap;
    gap: 50px 18px;
    max-width: 640px;
    margin: 0 auto;
    margin-top: min(max(70 / var(--main-w) * 100vw, 40px), 70px);
}

.teams-detail__relation__list--all{
    gap: 40px 18px;
    max-width: unset;
    margin-top: 0;
    width: 65%;
}

.teams-detail__relation__list__item{
    width: calc(33.333% - 12px);
}

.teams-detail__relation__list__item--all{
    width: calc(25% - 13.5px);
}

.teams-detail__relation__list__item--all .teams-detail__relation__list__item__info__name{
    font-size: min(max(14 / var(--main-w) * 100vw, 13px), 14px);
}

.teams-detail__relation__list__item__info__name{
    color: #fff;
    font-size: min(max(18 / var(--main-w) * 100vw, 13px), 18px);
}

.teams-detail__relation__list__item__info{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 15px;
    gap: 15px;
}

.loading{
    width: 100vw;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999999;
    background-color: #000;
    background-image: url(./assets/img/loading_bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.loading__inner{
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 575px;
    width: calc(100% - 30px);
    margin: 0 auto;
    padding-top: 70px;
}

.loading__logo{
    width: min(max(60 / var(--main-w) * 100vw, 50px), 60px);
    margin: 0 auto;
}

.loading__state{
    margin-top: 24px;
}

.loading__state__txt{
    color: #fff;
    text-align: right;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    margin-bottom: 6px;
}

.loading__ttl{
    color: #fff;
    text-align: center;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    margin-top: min(max(48 / var(--main-w) * 100vw, 30px), 48px);
}

.loading__txt{
    color: #fff;
    text-align: center;
    font-size: min(max(12 / var(--main-w) * 100vw, 10px), 12px);
    margin-top: min(max(30 / var(--main-w) * 100vw, 20px), 30px);
}

.loading__copy{
    text-align: center;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    margin-top: min(max(50 / var(--main-w) * 100vw, 30px), 50px);
    color: var(--main-color);
}

/* .loading__state__bar{
    position: relative;
    width: 100%;
    height: 2px;
    background-color: #777777;
    z-index: 0;
}

.loading__state__bar::after{
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    height: 100%;
    background-color: #fff;
    z-index: 1;
} */

/* =========================
    ローディング全体
   ========================= */
.loading {
    inset: 0;
    overflow: hidden;
}

/* 中身レイアウト（既存で組んでいれば調整・削除OK） */
.loading__inner {
    position: relative;
    width: 100%;
    height: 100%;
  /* ここはflex等で中央寄せしているなら既存を優先でOK */
}

/* ローディング退場用 */
.loading.is-hide {
    opacity: 0;
    pointer-events: none;
    transition: opacity .8s ease;
}

/* =========================
    ロードバー
   ========================= */

/* 土台ライン */
.loading__state__bar {
    position: relative;
    width: 100%;
    height: 2px;
    background: rgba(255,255,255,0.25);
    overflow: visible;
}

/* 0〜100% の白バー（ベース） */
.loading__state__bar__base {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    background: #fff;
    transform-origin: left center;
    transform: scaleX(0);
}

/* 100%超えてから伸びるバー（はみ出し部分も含む） */
.loading__state__bar__overflow {
    position: absolute;
    left: 100%;        /* ベースの右端からスタート */
    top: 0;
    height: 100%;
    width: calc(50vw - 282.5px);
    transform-origin: left center;
    transform: scaleX(0);
    background: var(--main-color);
    box-shadow:
    -2px 0 0 var(--main-color),   /* 左に赤 */
     2px 0 0 #00FFFF;  /* 右にシアン */
}

/* We have no limits.（overflowバーの中で中央寄せ） */
.loading__state__bar__copy {
    color: #fff;
    position: absolute;
    bottom: 25px;        /* バーの少し上に。topでもOK、お好みで調整 */
    left: calc(50% - 72px);
    transform: translateX(-50%);
    font-size: 12px;
    letter-spacing: .08em;
    opacity: 0;
    transition: opacity .3s ease, transform .3s ease;
}

.loading__state__bar__copy.is-show {
    opacity: 1;
}

/* =========================
    グリッチ・オーバーレイ
   ========================= */

/* ノイズ＋スキャンライン（.loading に is-glitch が付いている間だけ効く） */
.loading.is-glitch::before {
    content: "";
    position: absolute;
    inset: -20px;
    background:
        repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.12),
        rgba(255,255,255,0.12) 1px,
        transparent 1px,
        transparent 3px
        );
    mix-blend-mode: screen;
    opacity: 0.0;
    pointer-events: none;
    animation: glitch-scan 0.35s infinite;
}

/* 色ノイズ */
.loading.is-glitch::after {
    content: "";
    position: absolute;
    inset: -10px;
    background:
        radial-gradient(circle at 10% 20%, rgba(255,0,0,0.15), transparent 40%),
        radial-gradient(circle at 80% 60%, rgba(0,255,255,0.18), transparent 45%);
    mix-blend-mode: screen;
    opacity: 0.0;
    pointer-events: none;
    animation: glitch-noise 0.6s infinite;
}

@keyframes glitch-scan {
    0%   { opacity: 0.0; transform: translateY(-10%); }
    20%  { opacity: 0.35; }
    50%  { opacity: 0.15; transform: translateY(40%); }
    80%  { opacity: 0.4;  }
    100% { opacity: 0.0; transform: translateY(110%); }
}

@keyframes glitch-noise {
    0%   { opacity: 0.0; }
    30%  { opacity: 0.35; }
    60%  { opacity: 0.15; }
    100% { opacity: 0.3; }
}

/* =========================
RGB ずらし（テキスト）
   ========================= */

.glitch-rgb {
    position: relative;
}

/* グリッチ中だけ色ズレON */
.loading.is-glitch .glitch-rgb {
    animation: glitch-rgb-text 0.12s steps(2, end) infinite;
}

@keyframes glitch-rgb-text {
    0% {
        text-shadow:
        -1px 0 var(--main-color),
        1px 0 #00FFFF;
    }
    50% {
        text-shadow:
        -2px 0 var(--main-color),
        2px 0 #00FFFF,
        0   2px #7dff00;
    }
    100% {
        text-shadow:
        -1px 0 var(--main-color),
        1px 0 #00FFFF;
    }
}

/* =========================
    RGB ずらし（ロゴ画像）
   ========================= */

.glitch-rgb-img img {
    display: block;
}

.loading.is-glitch .glitch-rgb-img img {
    filter:
    drop-shadow(-1px 0 var(--main-color))
    drop-shadow( 1px 0 #00FFFF);
    animation: glitch-rgb-img 0.12s steps(2, end) infinite;
}

@keyframes glitch-rgb-img {
    0% {
        filter:
        drop-shadow(-1px 0 var(--main-color))
        drop-shadow( 1px 0 #00FFFF);
    }
    50% {
        filter:
        drop-shadow(-2px 0 var(--main-color))
        drop-shadow( 2px 0 #00FFFF)
        drop-shadow( 0   2px #7dff00);
    }
    100% {
        filter:
        drop-shadow(-1px 0 var(--main-color))
        drop-shadow( 1px 0 #00FFFF);
    }
}
html.skip-loading .loading {
    display: none !important;
}

.teams{
    display: flex;
    gap: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
    padding-bottom:  min(max(90 / var(--main-w) * 100vw, 40px), 90px);
    margin-top: 50px;
}

.teams__menu{
    width: 35%;
    height: fit-content;
    position: sticky;
    top: min(max(100 / var(--main-w) * 100vw, 80px), 100px);
    left: 0;
}

.teams__menu__ttl{
    font-size: min(max(12 / var(--main-w) * 100vw, 10px), 12px);
    color: #777777;
    margin-bottom: 17px;
}

.teams__menu__item{
    position: relative;
    display: flex;
    align-items: center;
    gap: min(max(10 / var(--main-w) * 100vw, 5px), 10px);
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    color: #fff;
    width: calc(50% - 20px);
    cursor: pointer;
}

.teams__menu__item:hover{
    color: var(--main-color);
}

.teams__menu__item:hover img{
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}


.teams__menu__item.active{
    color: var(--main-color);
}

.teams__menu__item.active img{
    filter: brightness(0) saturate(100%) invert(18%) sepia(52%) saturate(5839%) hue-rotate(357deg) brightness(78%) contrast(126%);
}

.teams__menu__item span{
    min-width: 20px;
    max-width: 20px;
    min-height: 20px;
    max-height: 20px;
    width: 20px;
    height: 20px;
}

.teams__menu__item span img{
    object-fit: contain;
    width: 100%;
    height: 100%;
}

.teams__menu__flex{
    display: flex;
    flex-wrap: wrap;
    gap: 17px 40px;
    margin-top: 17px;
}

.news{
    padding: min(max(75 / var(--main-w) * 100vw, 40px), 75px) 0;
}

.news__category{
    display: flex;
    align-items: center;
    gap: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
}

.news__category__item{
    color: #fff;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    padding: 5px 10px;
}

.news__category__item--ttl{
    color: #777777;
}

.news__category__item--active{
    color: var(--main-color);
    text-decoration: underline;
}

.news__pager{
    margin-top: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
    display: flex;
    justify-content: center;
    gap: 12px;
    align-items: center;
}

.news__pager__item{
    font-size: min(max(20 / var(--main-w) * 100vw, 16px), 20px);
    color: #777777;
}

.news__pager__item--current{
    color: var(--main-color);
}

.news__detail{
    max-width: 1000px;
    width: 100%;
    margin: min(max(100 / var(--main-w) * 100vw, 50px), 100px) auto;
}

.news__ttl{
    color: #fff;
    font-size: min(max(26 / var(--main-w) * 100vw, 18px), 26px);
}

.news__info{
    display: flex;
    margin-top: 20px;
    gap: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    color: #777777;
}

.news__thumbnail{
    margin-top: 20px;
    width: 100%;
}

.news__content{
    color: #fff;
    margin-top: 60px;
}

.news__content p{
    line-height: 1.9;
    margin: 16px 0;
    font-size: min(max(18 / var(--main-w) * 100vw, 16px), 18px);
}

.news__content h2{
margin: 32px 0 16px 0;
}

.news__content h3{
    line-height: 1.9;
    margin: 32px 0 16px 0;
    font-size: min(max(24 / var(--main-w) * 100vw, 21px), 24px);
}

.news__content > :first-child {
    margin-top: 0;
}

.news__content > :last-child {
    margin-bottom: 0;
}

.news__prev{
    margin-top: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
}

.news__prev .top-section__ttl,.partners__number__box__look .top-section__ttl{
    justify-content: center;
}

.crosshair--ab{
    display: none;
}

.teams__menu__flex__year{
    width: 100%;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    color: #fff;
    cursor: pointer;
}

.teams__menu__flex__year--current{
    color: var(--main-color);
}

.history{
    display: flex;
    gap: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
    padding-bottom: min(max(90 / var(--main-w) * 100vw, 40px), 90px);
    margin-top: 50px;
}

.history__left{
    width: 35%;
}

.history__right{
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 65%;
}

.history__right__item{
    display: flex;
}

.about__grade__box__item--list{
    width: 62%;
}

.history__right__thumbnail{
    width: 38%;
    height: -webkit-fill-available;
    aspect-ratio: 327 / 145;
}

.history__right__thumbnail img{
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.history__sortbox--team{
    margin-top: 40px;
}

.partner__think{
    margin-top: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
    padding: min(max(75 / var(--main-w) * 100vw, 38px), 75px) 10px;
    width: 100%;
    border: 1px solid var(--main-color);
}

.partners__intro__think__ttl{
    text-align: center;
    font-weight: 700;
    font-size: min(max(28 / var(--main-w) * 100vw, 20px), 28px);
    color: var(--main-color);
}

.partners__intro__think__txt{
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
    text-align: center;
    font-weight: 700;
    margin-top: min(max(35 / var(--main-w) * 100vw, 20px), 35px);
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    line-height: 1.8;
    color: #fff;
}

.partners__special{
    margin-top: min(max(90 / var(--main-w) * 100vw, 50px), 90px);
    margin-bottom: min(max(100 / var(--main-w) * 100vw, 50px), 100px);
}

.partners__special__ttl{
    font-size: min(max(40 / var(--main-w) * 100vw, 18px), 40px);
    font-weight: bold;
    color: #fff;
}

.partners__special__list__item__num{
    color: var(--main-color);
    font-size: min(max(16 / var(--main-w) * 100vw, 12px), 16px);
}

.partners__special__list__item__ttl{
    font-size: min(max(22 / var(--main-w) * 100vw, 16px), 22px);
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
    min-height: min(max(61.6 / var(--main-w) * 100vw, 44.8px), 61.6px);
    color: #fff;
    line-height: 1.4;
}

.partners__special__list__item__image{
    margin-top: min(max(27 / var(--main-w) * 100vw, 20px), 27px);
    border: 1px solid var(--main-color);
}

.partners__special__list__item__txt{
    color: #fff;
    margin-top: min(max(25 / var(--main-w) * 100vw, 10px), 25px);
    letter-spacing: -0.02em;
    font-size: min(max(12 / var(--main-w) * 100vw, 12px), 12px);
    line-height: 1.8;
}

.partners__special__list{
    display: flex;
    margin-top: min(max(45 / var(--main-w) * 100vw, 30px), 45px);
    gap: 30px;
}

.partners__special__list__item{
    width: calc(33.333% - 20px);
}

.partners__number{
    margin-top: min(max(120 / var(--main-w) * 100vw, 60px), 120px);
    margin-bottom: min(max(80 / var(--main-w) * 100vw, 40px), 80px);
}

.partners__number__ttl{
    color: #fff;
    text-align: center;
    font-size: min(max(56 / var(--main-w) * 100vw, 26px), 56px);
}

.partners__number__subttl{
    color: #fff;
    text-align: center;
    font-size: min(max(24 / var(--main-w) * 100vw, 16px), 24px);
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.partners__number__txt{
    color: #fff;
    text-align: center;
    margin: 0 auto;
    font-size: min(max(18 / var(--main-w) * 100vw, 12px), 18px);
    margin-top: min(max(40 / var(--main-w) * 100vw, 24px), 40px);
    max-width: 720px;
    line-height: 1.9;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.partners__number__box{
    padding: min(max(40 / var(--main-w) * 100vw, 30px),40px) min(max(29 / var(--main-w) * 100vw, 15px), 29px);
    border: 1px solid var(--main-color);
}

.partners__number__box__up{
    padding-bottom:  min(max(40 / var(--main-w) * 100vw, 30px),40px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-bottom: 1px solid #777777;
}

.partners__number--follower{
    margin-top: min(max(55 / var(--main-w) * 100vw, 30px),55px);
    margin-bottom: min(max(50 / var(--main-w) * 100vw, 30px),50px);
}

.partners__number__box__up__ttl{
    text-align: center;
    color: var(--main-color);
    font-size: min(max(56 / var(--main-w) * 100vw, 28px),56px);
}

.partners__number__box__up__txt{
    text-align: center;
    color: #fff;
    font-size: min(max(24 / var(--main-w) * 100vw, 16px),24px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.partners__number__box__bottom{
    display: flex;
    flex-direction: column;
    padding-top:  min(max(40 / var(--main-w) * 100vw, 30px),40px);
    gap: 7px;
}

.partners__number__box__bottom__ttl{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: center;
    color: #fff;
    font-size: min(max(24 / var(--main-w) * 100vw, 14px),24px);
}

.partners__number__box__bottom__txt{
    color: #fff;
    text-align: center;
    font-size: min(max(60 / var(--main-w) * 100vw, 42px),60px);
}

.partners__number__box__bottom__cap{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 300;
    margin-top: 5px;
    color: #fff;
    font-size: min(max(14 / var(--main-w) * 100vw, 11px), 14px);
    text-align: center;
}

.partners__number__box__flex{
    display: flex;
    padding: min(max(35 / var(--main-w) * 100vw, 20px),35px) 0;
}

.partners__number__box__flex__item{
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.partners__number__box__flex .partners__number__box__flex__item:first-child{
    border-right: 0.5px solid #777777;
}

.partners__number__box__flex .partners__number__box__flex__item:last-child{
    border-left: 0.5px solid #777777;
}

.partners__number__box__flex__item__ttl{
    text-align: center;
    font-size: min(max(24 / var(--main-w) * 100vw, 14px),24px);
    color: var(--main-color);
}

.partners__number__box__flex__item__txt{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    text-align: center;
    color: #fff;
    font-size: min(max(50 / var(--main-w) * 100vw, 30px),50px);
}

.partners__number__box__look{
    padding-top: min(max(35 / var(--main-w) * 100vw, 20px), 35px);
    border-top: 1px solid #777777;
}

.partners__archive{
    margin: min(max(120 / var(--main-w) * 100vw, 80px), 120px) 0;
}

.partners__archive__list{
    display: flex;
    flex-wrap: wrap;
    gap: min(max(50 / var(--main-w) * 100vw, 25px), 50px) min(max(30 / var(--main-w) * 100vw, 21px), 30px);
    margin-top: min(max(56 / var(--main-w) * 100vw, 40px), 56px);
}

.partners__archive__list__item{
    display: block;
    width: calc(33.3333% - min(max(20 / var(--main-w) * 100vw, 14px), 20px));
}

.partners__archive__list__item__image{
    border: 1px solid var(--main-color);
}

.partners__archive__list__item__ttl{
    font-size: min(max(26 / var(--main-w) * 100vw, 14px), 26px);
    color: #fff;
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
}

.partners__archive__list__item__txt{
    font-size: min(max(14 / var(--main-w) * 100vw, 10px), 14px);
    margin-top: min(max(18 / var(--main-w) * 100vw, 10px), 18px);
    color: #fff;
    font-weight: 400;
    line-height: 1.7;
}

.partners__archive__subttl{
    text-align: center;
    font-size: min(max(24 / var(--main-w) * 100vw, 18px), 24px);
    margin-top: min(max(80 / var(--main-w) * 100vw, 56px), 80px);
    font-weight: bold;
    color: #fff;
}

.partners__archive__list__item__look{
    font-size: min(max(14 / var(--main-w) * 100vw, 10px), 14px);
    font-weight: 400;
    color: #fff;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: flex-start;
    margin-top: 7px;
}

.partners__archive__list__item__look::after{
    content: "";
    width: 4.12px;
    height: 7.01px;
    background: url(./assets/img/right-arrow.webp);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.partners__list{
    margin: min(max(120 / var(--main-w) * 100vw, 80px), 120px) 0;
}

.partners__partner__list{
    margin-top: min(max(60 / var(--main-w) * 100vw, 50px), 60px);
    display: flex;
    flex-wrap: wrap;
    gap: min(max(60 / var(--main-w) * 100vw, 40px), 60px);
}

.partners__partner__list__item{
    display: block;
    width: calc(50% - min(max(30 / var(--main-w) * 100vw, 20px), 30px));
}

.partners__partner__list__item__txt{
    position: relative;
    letter-spacing: -0.02em;
    width: 100%;
    margin-top: 20px;
    font-size: min(max(14 / var(--main-w) * 100vw, 14px), 14px);
    line-height: 2;
    font-weight: 400;
    margin-bottom: 16px;
    color: #fff;
}

.partners__partner__list__item__txtmore{
    color: var(--main-color);
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
}

.partners__partner__list__item__txtmore__button{
    color: var(--main-color);
    display: inline-block;
    position: relative;
    padding-right: 13px;
    cursor: pointer;
}

.js-txt-inner{
    overflow: hidden;
    /* display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3; */
}

.partners__partner__list__item__more{
    color: #777777;
    display: inline-block;
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    margin-top: 20px;
}

.partners__contact{
    margin-top: min(max(50 / var(--main-w) * 100vw, 30px), 50px);
    margin-bottom: min(max(100 / var(--main-w) * 100vw, 80px), 100px);
}

.partners__contact__button{
    max-width: 635px;
    width: 100%;
    margin: 0 auto;
    margin-top: min(max(50 / var(--main-w) * 100vw, 30px), 50px);
    background-color: var(--main-color);
    border-radius: 5px;
    color: #fff;
}

.partners__contact__button .top-section__ttl{
    justify-content: center;
    line-height: min(max(80 / var(--main-w) * 100vw, 60px), 80px);
}

.partners__contact__button--suppurt{
    margin-top: 0;
    margin-bottom: 60px;
}

.partner__fv{
    display: flex;
    gap: min(max(90 / var(--main-w) * 100vw, 40px), 90px);
    margin-top: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
    margin-bottom: min(max(85 / var(--main-w) * 100vw, 50px), 85px);
}

.partner__fv__txt{
    font-size: min(max(16 / var(--main-w) * 100vw, 11px), 16px);
    color: #fff;
    line-height: 1.7;
    width: 43%;
    height: fit-content;
    position: sticky;
    top: min(max(100 / var(--main-w) * 100vw, 80px), 100px);
    left: 0;
}

.partner__fv__txt--partner{
    width: 47%;
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    position: static;
    top: 0;
    left: 0;
}

.sticky__item{
    width: 45%;
    height: fit-content;
    position: sticky;
    top: min(max(100 / var(--main-w) * 100vw, 80px), 100px);
    left: 0;
    display: flex;
    flex-wrap: wrap;
    gap: min(max(70 / var(--main-w) * 100vw, 46px), 70px);
}

.partner__fv__bland--sticky{
    width: 55%;
    display: flex;
    flex-direction: column;
    gap: min(max(70 / var(--main-w) * 100vw, 46px), 70px);
}

.partner__fv__bland--sticky .page__breadcrumbs{
    height: min(max(70 / var(--main-w) * 100vw, 40px), 70px);
    align-items: center;
}

.sticky__item .partner__fv__txt{
    width: 100%;
    position: static;
    top: unset;
    left: unset;
}

.partner__fv__bland{
    width: 57%;
}

.partner__fv__bland--partner{
    width: 53%;
    display: flex;
    flex-wrap: wrap;
    gap: min(max(30 / var(--main-w) * 100vw, 15px), 30px) min(max(27 / var(--main-w) * 100vw, 12px), 27px);
}

.partner__fv__bland__item{
    display: block;
    width: calc(33.333% - min(max(18 / var(--main-w) * 100vw, 8px), 18px));
}

.fanlleter{
    display: flex;
    gap: min(max(90 / var(--main-w) * 100vw, 40px), 90px);
    margin-bottom: min(max(85 / var(--main-w) * 100vw, 50px), 85px);
}

.privacypolicy{
    color: #fff;
    font-size: min(max(16 / var(--main-w) * 100vw, 12px), 16px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin-top: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
    margin-bottom: min(max(85 / var(--main-w) * 100vw, 50px), 85px);
}

.privacypolicy p{
    margin: 10px 0 20px 0;
}

.privacypolicy ol{
    margin: 10px 0 20px 0;
}

.privacypolicy li{
    margin: 10px 0 20px 0;
    list-style-position: inside;
}

.privacypolicy > :first-child {
    margin-top: 0;
}

.privacypolicy > :last-child {
    margin-bottom: 0;
}

.fanlleter__ex{
    width: 100%;
    padding: 20px;
    background-color: #777777;
    color: #fff;
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    line-height: 1.4;
    border-radius: 5px;
    text-align: center;
}

.fanlleter__cap{
    width: 100%;
    margin-top: 35px;
    color: var(--main-color);
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.fanlleter__caution{
    margin-top: 15px;
    color: #fff;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.contact{
    display: flex;
    gap: min(max(90 / var(--main-w) * 100vw, 40px), 90px);
    margin-bottom: min(max(85 / var(--main-w) * 100vw, 50px), 85px);
}

.contact__form__wrap{
    width: 57%;
}

.contact__form{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contact__form__item{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact__form__title{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 14px;
    color: #fff;
}

.contact__form__input__wrap{
    width: 100%;
    position: relative;
}

.contact__form__input__wrap--select::after{
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width:0;
    height:0;
    border-style:solid;
    border-width: 10px 5.5px 0 5.5px;
    border-color: var(--main-color) transparent transparent transparent;
}

.contact__form__input{
    width: 100%;
    padding: 10px 15px;
    background-color: #fff;
    border-radius: 5px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 14px;
    line-height: 1.4;
}

.contact__form__input__wrap select{
    color: #000;
}

.contact__form__input--txtarea{
    min-height: 180px;
}

.contact__terms{
    border-radius: 5px;
    background-color: #777777;
    padding: 20px;
    margin-top: 20px;
}

.contact__terms__text{
    height: 180px;
    color: #fff;
    padding-right: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 14px;
    line-height: 1.4;
    overflow-y: scroll;
}

.contact__terms__text::-webkit-scrollbar{
    width: 2px;
}

.contact__terms__text::-webkit-scrollbar-thumb {
  background: var(--main-color); /* ハンドルの色 */
}

.contact__terms__text::-webkit-scrollbar-track {
  background: #000000; /* 背景色 */
}

.contact__form__item--agree{
    flex-direction: row;
    flex-wrap: wrap;
    gap: 5px 20px;
    justify-content: center;
    align-items: center;
}

.contact__form__item--agree .is-error{
    width: 100%;
    text-align: center;
}

.contact__form__input--agree,.contact__form__input__wrap--agree{
    width: auto;
}

.protect{
    font-size: 10px;
    text-align: center;
    color: #fff;
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 300;
    margin-top: 10px;
}

.contact__form__submit{
    display: block;
    text-align: center;
    max-width: 200px;
    width: 100%;
    background-color: var(--main-color);
    margin: 0 auto;
    color: #fff;
    font-size: 15px;
    line-height: 40px;
    border-radius: 2px;
}

.header__icon{
    display: none;
}

@keyframes fadeInUpSoft {
    0% {
        opacity: 0;
        transform: translateY(20px); /* ここで”下から” */
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.fadeInUpSoft {
    animation-name: fadeInUpSoft;
    animation-duration: 1.2s; /* 少し長め */
    animation-timing-function: cubic-bezier(.19,.84,.44,1); /* ふわっと */
    animation-fill-mode: both;
    will-change: transform, opacity;
}

.partner__fv__bland--cg{
    color: #fff;
}

.cg__ttl{
    line-height: 1.3;
    font-size: min(max(34 / var(--main-w) * 100vw, 21px), 34px);
    margin-top: min(max(70 / var(--main-w) * 100vw, 40px), 70px);
    margin-bottom: min(max(14 / var(--main-w) * 100vw, 10px), 14px);
}

.cg__subttl{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: bold;
    font-size: min(max(14 / var(--main-w) * 100vw, 12px), 14px);
    margin-top: min(max(14 / var(--main-w) * 100vw, 10px), 14px);
    margin-bottom: min(max(40 / var(--main-w) * 100vw, 30px), 40px);
}

.cg__image{
    width: 100%;
    margin-top: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    margin-bottom: min(max(60 / var(--main-w) * 100vw, 40px), 60px);
}

.cg__band{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: bold;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    text-align: center;
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
    margin-bottom: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    display: block;
    width: 100%;
    line-height: 1.8;
    background-color: #777777;
    border-radius: 5px;
    padding: 13px 5px;
}

.cg__band.cg__band--button{
    background-color: var(--main-color);
}

.cg__txt{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: bold;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    margin-top: min(max(20 / var(--main-w) * 100vw, 10px), 20px);
    margin-bottom: min(max(40 / var(--main-w) * 100vw, 20px), 40px);
    line-height: 1.8;
}

.cg__txt a{
    color: var(--main-color);
}

.partner__fv__bland--cg > :first-child {
    margin-top: 0;
}

.partner__fv__bland--cg > :last-child {
    margin-bottom: 0;
}

.inner-full{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.maintenance__ttl{
    margin-top: min(max(120 / var(--main-w) * 100vw, 80px), 120px);
    color: var(--main-color);
    text-align: center;
    font-size: min(max(30 / var(--main-w) * 100vw, 24px), 30px);
}

.maintenance__txt{
    color: var(--main-color);
    text-align: center;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    line-height: 1.5;
    margin-top: min(max(10 / var(--main-w) * 100vw, 5px), 10px);
    margin-bottom: min(max(260 / var(--main-w) * 100vw, 180px), 260px);
}

.maintenance__txt--con{
    color: #fff;
    margin-bottom: 0;
    margin-top: min(max(120 / var(--main-w) * 100vw, 80px), 120px);
}

.news__prev--con{
    margin-bottom: min(max(200 / var(--main-w) * 100vw, 120px), 200px);
}

.contact__form__title a{
    text-decoration: underline;
}

.teams__menu__item__allwrap{
    display: flex;
    align-items: center;
}

/* support */

.page__allwrap.page__allwrap--nopadding{
    padding: 0;
}

.supporter__fv{
    padding-bottom: min(max(70 / var(--main-w) * 100vw, 40px), 70px);
}

.supporter__about,.supporter__grade,.supporter__menu,.supporter__plan,.supporter__all{
    margin: min(max(120 / var(--main-w) * 100vw, 70px), 120px) 0;
}

.supporter__section__colorttl{
    text-align: center;
    color: #C90000;
    font-size: min(max(24 / var(--main-w) * 100vw, 20px), 24px);
    margin-bottom: 15px;
}

.supporter__section__subttl{
    text-align: center;
    color: #fff;
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    margin-top: 15px;
    font-weight: 700;
}

.supporter__about__list{
    display: flex;
    gap: min(max(30 / var(--main-w) * 100vw, 20px), 30px);
    margin-top: min(max(80 / var(--main-w) * 100vw, 64px), 80px);
}

.supporter__about__list__item{
    width: 33.333%;
}

.supporter__about__list__item__ttl{
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    font-size: min(max(20 / var(--main-w) * 100vw, 16px), 20px);
}

.supporter__about__list__item__ttl::before{
    content: "#";
    color: #C90000;
}

.supporter__about__list__item__image{
    width: 100%;
    margin-top: 20px;
}

.supporter__about__txt{
    text-align: center;
    margin-top: min(max(80 / var(--main-w) * 100vw, 64px), 80px);
    color: #fff;
    font-weight: 700;
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    line-height: 1.9;
}

.supporter__grade__image{
    margin-top: min(max(80 / var(--main-w) * 100vw, 40px), 80px);
}

.supporter__menu__list{
    display: flex;
    flex-wrap: wrap;
    gap: min(max(80 / var(--main-w) * 100vw, 50px), 80px) 30px;
    margin-top: min(max(80 / var(--main-w) * 100vw, 40px), 80px);
}

.supporter__menu__list__item{
    width: calc(33.333% - 20px);
}

.supporter__menu__list__item__num{
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    color: #C90000;
}

.supporter__menu__list__item__image{
    width: 100%;
    margin-top: min(max(10 / var(--main-w) * 100vw, 8px), 10px);
    margin-bottom: min(max(20 / var(--main-w) * 100vw, 15px), 20px);
}

.supporter__menu__list__item__ttl{
    color: #fff;
    font-size: min(max(22 / var(--main-w) * 100vw, 18px), 22px);
    font-weight: 700;
}

.supporter__menu__list__item__budge{
    margin-top: 10px;
    display: flex;
    gap: 10px;
}

.supporter__menu__list__item__budge__item{
    width: 33.33%;
    max-width: 100px;
}

.supporter__plan__content{
    max-width: 1000px;
    margin: 0 auto;
    margin-top: min(max(80 / var(--main-w) * 100vw, 40px), 80px);
}

.supporter__menu__list__item__txt{
    color: #fff;
    font-size: min(max(12 / var(--main-w) * 100vw, 12px), 12px);
    letter-spacing: 0;
    margin-top: 15px;
    line-height: 1.8;
}

.supporter__plan__caution{
    margin-top: min(max(40 / var(--main-w) * 100vw, 30px), 40px);
    font-size: min(max(14 / var(--main-w) * 100vw, 14px), 14px);
    color: #fff;
    font-weight: 700;
    line-height: 1.9;
}

.supporter__plan__banner{
    margin-top: min(max(120 / var(--main-w) * 100vw, 70px), 120px);
}

.supporter__all__txt{
    font-size: min(max(18 / var(--main-w) * 100vw, 14px), 18px);
    color: #fff;
    font-weight: 700;
    text-align: center;
    margin-top: min(max(80 / var(--main-w) * 100vw, 40px), 80px);
}

.supporter__all__list{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    margin-top: min(max(40 / var(--main-w) * 100vw, 30px), 40px);
}

.supporter__all__list__item{
    width: calc(33.333% - 20px);
}

.partner__banner{
    max-width: 865px;
    width: 100%;
    margin: 0 auto;
    margin-top: min(max(80 / var(--main-w) * 100vw, 50px), 80px);
}

.partner__banner__inner{
    display: flex;
    background-color: #C90000;
    border-radius: 4px;
}

.partner__banner__info{
    padding: min(max(35 / var(--main-w) * 100vw, 25px), 35px) min(max(30 / var(--main-w) * 100vw, 15px), 30px) min(max(35 / var(--main-w) * 100vw, 25px), 35px) min(max(50 / var(--main-w) * 100vw, 15px), 50px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 61%;
}

.partner__banner__image{
    width: 39%;
}

.partner__banner .partner__banner__image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.partner__banner__info__en{
    font-size: min(max(15 / var(--main-w) * 100vw, 10px), 15px);
    font-weight: 700;
    color: #fff;
}

.partner__banner__info__subttl{
    font-size: min(max(18 / var(--main-w) * 100vw, 11px), 18px);
    color: #fff;
    font-weight: 700;
    margin-top: min(max(30 / var(--main-w) * 100vw, 15px), 30px);
}

.partner__banner__info__subttl::first-letter{
    margin-left: -0.6em;
}

.partner__banner__info__ttl{
    font-size: min(max(26 / var(--main-w) * 100vw, 14px), 26px);
    color: #fff;
    font-weight: 700;
    margin-top: 5px;
}

.partner__banner__info__more{
    margin-top: min(max(30 / var(--main-w) * 100vw, 15px), 30px);
    font-size: min(max(15 / var(--main-w) * 100vw, 11px), 15px);
    font-weight: 700;
    color: #fff;
    display: flex;
    gap: 10px;
}

.crosshair.partner__banner__info__more__crosshair{
    background: url(./assets/img/fat_minicross.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    min-width: 12px;
    width: 12px;
}

.partner__banner__inner:hover .crosshair.partner__banner__info__more__crosshair{
    background: url(./assets/img/open_fat_minicross.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: drop-shadow(0 0 8px rgba(255, 0, 0, .6));
}

.crosshair.partner__support__button__crosshair{
    background: url(./assets/img/fat_cross.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    min-width: 16px;
    width: 16px;
}

.partner__support__button:hover .crosshair.partner__support__button__crosshair{
    background: url(./assets/img/open_fat_cross.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: drop-shadow(0 0 8px rgba(255, 0, 0, .6));
}

.partner__support{
    max-width: 865px;
    width: 100%;
    margin: 0 auto;
    margin-top: min(max(80 / var(--main-w) * 100vw, 50px), 80px);
    background: url(./assets/img/partner_banner_image02.webp);
    background-position: center;
    background-size: cover;
    border-radius: 4px;
    border: 1px solid #C90000;
    padding: min(max(60 / var(--main-w) * 100vw, 40px), 60px) 20px min(max(40 / var(--main-w) * 100vw, 30px), 40px) 20px;
}

.partner__support__logo{
    width: min(max(43 / var(--main-w) * 100vw, 35px), 43px);
    height: auto;
    margin: 0 auto;
}

.partner__support__ttl{
    text-align: center;
    font-size: min(max(36 / var(--main-w) * 100vw, 32px), 36px);
    color: #fff;
    font-weight: 700;
    margin-top: 10px;
}

.partner__support__txt{
    text-align: center;
    color: #fff;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    line-height: 1.8;
    margin-top: 30px;
    font-weight: 700;
}

.partner__support__button{
    display: flex;
    justify-content: center;
    gap: 20px;
    background-color: #C90000;
    border-radius: 5px;
    width: 300px;
    max-width: 100%;
    margin: 0 auto;
    color: #fff;
    font-size: min(max(16 / var(--main-w) * 100vw, 14px), 16px);
    line-height: 1.8;
    font-weight: 700;
    line-height: min(max(50 / var(--main-w) * 100vw, 40px), 50px);
    margin-top: 30px;
}

.scroll__hint{
    width: 130px;
    position: fixed;
    left: 0;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: 99;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility 0s linear .25s;
}

.scroll__hint.is-visible{
    opacity: 1;                 /* ←ここが重要（0じゃなく1） */
    visibility: visible;
    transition: opacity .25s ease; /* hide時だけ遅延が効けばOK */
}

.scroll__hint.is-animate{
    animation: scrollHintWiggle 1.2s ease-out 1;
}

@keyframes scrollHintWiggle{
    0%   { transform: translate(-50%, -50%) translateX(0);   opacity: 0; }
    15%  { opacity: 1; }
    35%  { transform: translate(-50%, -50%) translateX(-12px); }
    65%  { transform: translate(-50%, -50%) translateX(12px); }
    100% { transform: translate(-50%, -50%) translateX(0); }
}

.scroll__hint.is-abs{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.scroll__hint.is-fixed{
    position: fixed;
}

.spicon,.spmenu{
    display: none;
}

.sp768_only{
    display: none;
}

.sp490_only{
    display: none;
}

.pagetop__sp{
    display: none;
}

.grecaptcha-badge { visibility: hidden; }

@media (max-width: 768px){

    .pc768_only{
        display: none;
    }

    .sp768_only{
        display: block;
    }

    body.is-locked{
        overflow: hidden;
    }

    .header__logo{
        width: 35px;
        position: static;
        transform: unset;
    }

    .news__top__more{
        justify-content: center;
        margin-top: 40px;
    }

    .teams__menu__item .teams__menu__flex__year{
        margin-right: 30px;
    }

    .history__sortbox--team{
        border-top: 1px solid #777777;
    }

    .history__sortbox--team{
        margin-top: 30px;
    }

    .top-news__item{
        width: calc(50% - min(max(16.5 / var(--main-w) * 100vw,10.5px),16.5px));
    }

    .header{
        height: 60px;
    }

    .header.active{
        background: rgba(0, 0, 0, 0.55);
        -webkit-backdrop-filter: blur(42px) brightness(92%) opacity(62%);
        backdrop-filter: blur(42px) brightness(92%) opacity(62%);
    }
    
    .spicon {
        --spicon-color: #fff;

        position: relative;
        display: flex;
        gap: 3px;
        flex-wrap: wrap;
        cursor: pointer;
        width: 23px;
        aspect-ratio: 1/1;
    }

    /* ベースの四角 */
    .spicon__b {
        display: block;
        width: calc(33.333% - 2px);
        aspect-ratio: 1/1;
        background-color: var(--spicon-color);
        opacity: 1;
        transform: scale(1);
        transition:
            opacity .24s ease-out,
            transform .24s cubic-bezier(.16,.8,.35,1);
    }
    .spicon__b:nth-child(2) { transition-delay: 0.00s; }
    .spicon__b:nth-child(6) { transition-delay: 0.28s; }
    .spicon__b:nth-child(4) { transition-delay: 0.18s; }
    .spicon__b:nth-child(8) { transition-delay: 0.10s; }

    .spicon.active .spicon__b:nth-child(2),
    .spicon.active .spicon__b:nth-child(4),
    .spicon.active .spicon__b:nth-child(6),
    .spicon.active .spicon__b:nth-child(8) {
        opacity: 0;
        transform: scale(0.2);
    }

    .spicon.active .spicon__b:nth-child(1),
    .spicon.active .spicon__b:nth-child(3),
    .spicon.active .spicon__b:nth-child(5),
    .spicon.active .spicon__b:nth-child(7),
    .spicon.active .spicon__b:nth-child(9) {
        opacity: 1;
        transform: scale(1);
    }

    .spmenu{
        position: fixed;
        z-index: 9999;
        width: 100%;
        top: 60px;
        left: 0;
        background: rgba(0, 0, 0, 0.55);
        -webkit-backdrop-filter: blur(42px) brightness(92%) opacity(62%);
        backdrop-filter: blur(42px) brightness(92%) opacity(62%);
        padding: 0 15px;

        opacity: 0;
        transform: translateX(30px);
        pointer-events: none;

        transition:
            transform .35s cubic-bezier(.1,.7,.3,1),
            opacity .35s cubic-bezier(.1,.7,.3,1);
    }

    .spmenu.active{
        opacity: 1;
        transform: translateX(0);
        pointer-events: auto;
    }

    .spmenu__inner{
        position: relative;
        padding: 40px 15px;
    }

    .spmenu__list{
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .spmenu__list__ttl{
        width: 100%;
        color: #777777;
        font-size: 14px;
    }

    .spmenu__list__nav__list{
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .spmenu__list__nav__list li{
        list-style: none;
    }

    .spmenu__list__nav__list__item{
        color: #fff;
        font-size: 26px;
    }

    .header__shop{
        position: static;
        transform: unset;
        font-size: 24px;
        justify-content: center;
        padding: 16px 0;
    }

    .spmenu__close{
        cursor: pointer;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #fff;
        font-size: 16px;
        gap: 6px;
    }

    .spmenu__close::before{
        content: "";
        width: 16px;
        height: 1px;
        background-color: var(--main-color);
    }

    .header__shop__wrap{
        margin: 30px 0 15px 0;
    }

    .header__shop::after{
        width: 13px;
    }

    .spmenu .line__wrap{
        width: 100%;
    }

    .spmenu,.spmenu{
        display: block;
    }

    .top-teams__top__right{
        display: none;
    }

    .top-teams{
        padding-bottom: 30px;
    }

    .top-grid{
        flex-wrap: wrap;
        gap: 45px;
        padding-top: 15px;
    }

    .top-grid__item{
        width: 100%;
    }

    .top-history__image, .top-shop__image{
        aspect-ratio: 345 / 200;
    }

    .top-history__image{
        background: url(./assets/img/top_history_sp.webp);
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .top-shop__image{
        background: url(./assets/img/top_shop_sp.webp);
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .top-teams__wrap{
        pointer-events: none;
        aspect-ratio: 345 / 200;
    }

    .top-teams__wrap{
        background: url(./assets/img/top_teams_sp.webp);
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .footer__wrap{
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .footer__menu{
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }

    .footer__logo{
        width: 140px;
    }

    .footer__sns__ttl{
        text-align: center;
    }

    .footer__sns__list{
        margin-top: 20px;
        gap: min(max(19 / var(--sp-w) * 100vw,18px),19px);
    }

    .footer__bottom{
        flex-direction: column;
        gap: 32px;
    }

    .footer__bottom__left{
        width: 100%;
        justify-content: space-between;
    }

    .fv{
        background-position: left;
    }

    .footer__bottom__copy.footer__bottom__copy{
        font-size: 12px;
    }

    .spmenu__copy{
        position: absolute;
        right: 0;
        top: 40px;
        color: var(--main-color);
        font-size: min(max(14 / var(--sp-w) * 100vw,14px),16px);
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        text-orientation: sideways;
    }

    .about__fv{
        flex-direction: column;
        gap: min(max(70 / var(--sp-w) * 100vw,70px),75px);
    }

    .about__fv__left,.about__fv__right{
        width: 100%;
        max-width: unset;
    }

    .about__grade{
        flex-direction: column;
    }

    .about__company{
        flex-direction: column;
        gap: 30px;
    }

    .about__company__left,.about__company__right{
        width: 100%;
    }

    .about__company__map{
        margin-top: 0;
        aspect-ratio: 325/201;
    }

    .teams{
        flex-direction: column;
    }

    .teams__menu,.teams-detail__relation__list--all{
        width: 100%;
    }

    .teams__menu__item{
        width: calc(50% - 10px);
    }

    .teams__menu__item--single{
        width: 100%;
    }

    .teams__menu__flex{
        margin-top: 30px;
        margin-bottom: 30px;
    }

    .teams__menu__flex--year{
        margin-top: 15px;
        margin-bottom: 20px;
    }

    .teams-detail__relation__list__item--all{
        width: calc(50% - 9px);
    }

    .history{
        flex-direction: column;
    }

    .history__left,.history__right{
        width: 100%;
    }

    .teams__menu__item__allwrap{
        margin-bottom: 21px;
    }

    .crosshair--ab{
        display: block;
        transition: 0.3s;
    }

    .teams__menu__flex__all.is-open{
        display: block;
    }

    .crosshair--ab.is-active{
        transition: 0.3s;
        background: url(./assets/img/cross_open.svg);
        background-position: center;
        background-size: cover;
        transform: rotate(-90deg);
    }

    .teams__menu__flex{
        gap: 15px 20px;
    }

    .teams__menu__flex__year{
        width: auto;
    }

    .partners__special__list{
        flex-direction: column;
        gap: 40px;
    }

    .partners__special__list__item{
        width: 100%;
    }

    .partner__fv{
        flex-direction: column;
    }

    .partner__fv__txt,.partner__fv__bland{
        width: 100%;
    }

    .partner__fv__txt{
        position: static;
    }

    .fanlleter{
        margin-top: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
        flex-direction: column;
    }

    .contact{
        margin-top: min(max(70 / var(--main-w) * 100vw, 30px), 70px);
        flex-direction: column;
    }

    .contact__form__wrap{
        width: 100%;
    }


    .loading__inner{
        max-width: 220px;
    }

    .loading__state__bar__overflow{
        width: calc(50vw - 110px);
    }

    .loading__state__bar__copy{
        font-size: 10px;
    }

    /* ========= NEWS 上部 more ========= */
    .news__top__more:hover {
        color: #fff; /* 通常時と同じに */
    }

    .news__top__more:hover .crosshair {
        background: url(./assets/img/cross.svg) center/contain no-repeat;
        transform: none;
        filter: none;
    }

    /* ========= セクションタイトル関連 ========= */
    .top-section__ttl:hover {
        color: #fff;
    }
    .top-section__ttl--news:hover {
        color: #fff;
    }
    .top-section__ttl--fotter:hover {
        color: #fff;
    }
    .top-section__ttl--sponser:hover {
        color: #fff;
    }
    .top-section__ttl--partnercon:hover {
        color: #fff;
    }

    /* crosshair 系の hover 変化打ち消し */
    .top-section__ttl--team:hover .crosshair,
    .top-grid__item__link:hover .crosshair,
    .top-contact__inner:hover .crosshair,
    .top-section__ttl--fotter:hover .crosshair,
    .top-section__ttl--sponser:hover .crosshair,
    .teams-detail__relation__list__item:hover .crosshair,
    .top-section__ttl--partnercon:hover .crosshair,
    .news__top__more:hover .crosshair,
    .top-news__item:hover .crosshair--newsitem {
        background: url(./assets/img/cross.svg) center/contain no-repeat;
        transform: none;
        filter: none;
    }

    /* ========= TOP NEWS カード ========= */
    .top-news__item:hover .top-news__item__image img {
        filter: grayscale(1); /* デフォルト状態に戻す */
    }

    .top-news__item:hover .top-news__item__image::before,
    .top-news__item:hover .top-news__item__image::after {
        opacity: 0;
        visibility: hidden;
        animation: none;
    }

    .top-news__item:hover .glitch-border {
        opacity: 0;
        visibility: hidden;
        animation: none;
    }

    .top-news__item:hover .top-news__item__ttl {
        color: #fff;
    }

    .crosshair--newsitem {
        /* SP では遅延トランジションも切る */
        transition: none;
    }

    /* ========= TEAMS 上部フィルター ========= */
    .top-teams__top__right__list__item:hover {
        filter: none;
    }

    /* ========= TOP TEAMS 大きいバナー ========= */
    .top-teams__wrap:hover {
        background: var(--teams-bg) center/cover no-repeat;
        background-color: transparent;
        background-blend-mode: normal;
    }

    .top-teams__wrap:hover::before,
    .top-teams__wrap:hover::after {
        opacity: 0;
        visibility: hidden;
        animation: none;
    }

    .top-teams__wrap:hover .glitch-border {
        opacity: 0;
        visibility: hidden;
        animation: none;
    }

    .top-teams__wrap:hover .top-teams__txt,
    .top-teams__wrap:hover .top-teams__cross {
        opacity: 0;
        transform: translateY(8px);
        transition: none;
    }

    /* ========= GRID（History / Shop） ========= */
    .top-grid__item__link:hover .top-history__image {
        background-image: url(./assets/img/top_history.webp);
    }
    .top-grid__item__link:hover .top-shop__image {
        background-image: url(./assets/img/top_shop.webp);
    }

    .top-grid__item__link:hover .top-history__image::before,
    .top-grid__item__link:hover .top-history__image::after,
    .top-grid__item__link:hover .top-shop__image::before,
    .top-grid__item__link:hover .top-shop__image::after {
        opacity: 0;
        visibility: hidden;
        animation: none;
    }

    .top-grid__item__link:hover h2 {
        color: #fff;
    }

    /* ========= CONTACT セクション ========= */
    .top-contact__inner:hover {
        background: #000000;
    }

    .top-contact__inner:hover::before {
        opacity: 0;
        animation: none;
    }

    .top-contact__inner:hover .top-contact__txt,
    .top-contact__inner:hover .top-section__ttl {
        color: #fff;
    }

    /* ========= Relation リスト ========= */
    .teams-detail__relation__list__item:hover p {
        color: #fff;
    }

    /* ========= Footer SNS ========= */
    .footer__sns__list__item:hover {
        filter: none;
    }

    .header__inner{
        justify-content: space-between;
    }

    .teams__menu{
        position: static;
    }

    .sticky__item{
        width: 100%;
        position: unset;
    }

    .pagetop__sp{
        display: flex;
    }

    .pagetop{
        gap: 40px;
    }

    .page__breadcrumbswrap{
        min-width: 0;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .page__breadcrumbs{
        justify-content: left;
        white-space: nowrap;
    }

    .supporter__about__list{
        flex-direction: column;
        gap: 40px;
    }

    .supporter__about__txt{
        text-align: left;
    }

    .supporter__about__list__item{
        width: 100%;
    }

    .supporter__menu__list{
        flex-direction: column;
    }

    .supporter__menu__list__item{
        width: 100%;
    }

    .supporter__plan__image{
        overflow: auto;
    }

    .supporter__plan__image .figure{
        min-width: 616px;
    }

    .supporter__all__list{
        flex-direction: column;
        gap: 12px;
    }

    .supporter__all__list__item{
        width: 100%;
    }



}

@media (max-width: 490px){

/* 画像指定 */
    .bg1 {
       background-image: url(./assets/img/fv_RCSFL26_sp_1.webp);
       animation-delay: 0s;
    }

    .sp490_only{
        display: block;
    }

    .pc490_only{
        display: none;
    }

    .top-news__item{
        width: 100%;
    }

    .top-contact__box{
        flex-wrap: wrap;
        justify-content: center;
    }

    .top-contact__txt{
        width: 100%;
    }

    .top-section__ttl--contact{
        display: inline-block;
        flex: 0;
    }
    
    .top-contact__txt{
        text-align: center;
        margin: 0;
    }

    .news__top{
        align-items: flex-start;
    }

    .news__top__list{
        flex-wrap: wrap;
        gap: 12px 9.5px;
        max-width: 220px;
    }

    .news__top__list .news__top__list__item:first-child,.news__top__list .news__top__list__item:nth-child(2){
        width: calc(50% - 5px);
    }

    .news__top__list .news__top__list__item:nth-child(2){
        text-align: right;
    }

    .fv__bigtxt{
        font-size: min(max(49 / var(--sp-w) * 100vw,40px),54px);
    }

    .fv__txt{
        font-size: min(max(8 / var(--sp-w) * 100vw,8px),10px);
    }

    .top-news__item__ttl{
        font-size: min(max(14 / var(--sp-w) * 100vw,14px),16px);
    }

    .top-news__item__info__date, .top-news__item__info__label{
        font-size: min(max(11 / var(--sp-w) * 100vw,11px),13px);
    }

    .news__top__more{
        font-size: min(max(22 / var(--sp-w) * 100vw,22px),24px);
    }

    .top-section__ttl--contact{
        font-size: min(max(30 / var(--sp-w) * 100vw,30px),34px);
    }

    .about__grade__box__item{
        width: 100%;
        padding: 25px 30px;
        gap: 13px;
    }

    .about__grade__box__item__info__ttl{
        font-size: min(max(14 / var(--sp-w) * 100vw,14px),16px);
    }

    .about__grade__box__item__info__date{
        font-size: min(max(12 / var(--sp-w) * 100vw,12px),14px);
    }

    .about__grade__box__item__info__num{
        font-size: min(max(35 / var(--sp-w) * 100vw,35px),37px);
    }

    .about__manage__flex{
        flex-direction: column;
        gap: 50px;
    }

    .about__manage__item{
        width: 100%;
    }

    .teams-detail{
        flex-direction: column;
    }

    .teams-detail__image,.teams-detail__right{
        width: 100%;
    }

    .teams-detail__relation__list{
        gap: 20px 15px;
    }

    .teams-detail__relation__list__item{
        width: calc(50% - 7.5px);
    }

    .teams-detail__sns{
        justify-content: center;
    }

    .history__right__item{
        flex-direction: column;
    }
    
    .history__right__thumbnail{
        width: 100%;
        height: auto;
    }

    .about__grade__box__item__logo{
        min-width: 50px;
    }

    .partners__number__box__flex{
        flex-direction: column;
        padding: 0;
    }

    .partners__number__box__flex__item{
        width: 100%;
        padding: min(max(28 / var(--sp-w) * 100vw, 28px),30px);
    }

    .partners__number__box__flex .partners__number__box__flex__item:first-child{
        border: unset;
        border-bottom: 1px solid #777777;
    }
    .partners__number__box__flex .partners__number__box__flex__item:last-child{
        border: unset;
        border-bottom: 1px solid #777777;
    }

    .partners__archive__list__item{
        width: calc(50% - 15px);
    }

    .partners__partner__list__item{
        text-align: center;
        width: 100%;
    }

    .partners__partner__list__item__txt{
        text-align: left;
    }

    .partners__partner__list__item__txtmore{
        text-align: right;
    }

    .loading__state__bar__copy{
        display: none;
    }

    .news__category{
        flex-wrap: wrap;
        gap: 12px 9.5px;
    }

    .news__category__item--ttl{
        width: 100%;
    }

    .partner__banner__image{
        width: 100%;
        height: 140px;
    }

    .partner__banner__info{
        width: 100%;
        padding: 15px;
    }

    .partner__banner__inner{
        flex-direction: column-reverse;
    }

    .supporter__fv__image{
        width: 100%;
        height: 95svh;
    }

    .supporter__fv .supporter__fv__image img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: bottom;
    }
}