@charset "UTF-8";
/* =======================================
   index.css（HERO：確定 / モバイル優先）
======================================= */

/* header固定分の余白 */
#main{
  padding-top: 70px;
}


/* =======================================
   HERO：土台（青い箱）
======================================= */
.section_hero{
    position: relative;
    background: var(--blue);
    position: relative; /* 位置の親要素 */
    z-index: 0; /* hero全体を基準レイヤーに */
    /*下がラウンド*/
    border-bottom-left-radius: 100% 12%;
    border-bottom-right-radius: 100% 3%;
    /* [disabled]padding-top: 21px; */
    /* [disabled]margin-bottom: 30px; */
    padding-bottom: 50px;
}



/* =======================================
   HERO：背景（動く文字だけ）
======================================= */
.hero_bg{
  position: absolute;
  inset: 0;
  overflow: hidden;      /* マルキーの見切れ対策 */
  pointer-events:none;
  z-index: 0;            /* ★一番うしろ */
}

/* 動く文字（背景） */
.hero_moji{
    padding-top: 5px;
    padding-right: 0;
    padding-left: 0;
    padding-bottom: 10px;
    white-space: nowrap;
    width: max-content;
    font-size: 100px;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
    color: rgba(255,255,255,0.5);
    animation: hero-marquee 14s linear infinite;
    will-change: transform;
}

/* 「文字を2回書いてる」前提で -50% まで流す */
@keyframes hero-marquee{
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* =======================================
   HERO：背景ラケット
======================================= */
.hero_racket{
    position: absolute;
    left: 50%;  
    top: 10px;
	
    transform: translateX(-50%);
    width: 95%;                  /* ←％指定で追従 */
    height: auto;
	
    opacity: 0.2;               /* うっすら*/
    z-index: 2;  
    pointer-events: none;
}


/* =======================================
   HERO：前面レイヤー（写真・ボタン・テキスト）
======================================= */
.hero_stage{
  position: relative;
  z-index: 3;
  padding-top: 70px;
}


/* =========================
   HERO：写真レイアウト（モバイル）
   HTMLはそのままでOK
========================= */

/* 写真＆ボタンの土台 */
.hero_photos{
    position: absolute;
    top: 0px;
    
    left: 50%;
  	transform: translateX(-50%);
	
	width: 100%;
    height: 300px;          /* ←ここが“配置のキャンバス” */
    min-width: 0px;
    max-width: 500px;
}

/* 写真 共通 */
.hero_photo{
  position: absolute;
  object-fit: cover;
  display: block;
  border-radius: 58% 42% 65% 35% / 45% 55% 40% 60%;

  /* 通常はくっきり（重要） */
  opacity: 1;
  transform: none;
  filter: blur(0);
  -webkit-filter: blur(0);

  /* 登場アニメ */
  animation: hero-photo-in 1.1s ease-out both;
  will-change: opacity, transform, filter;
}


/* ふわっと出る動き */
@keyframes hero-photo-in{
  0%{
    opacity: 0;
    transform: translateY(18px) scale(0.985);
  }
  100%{
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}


/* 子供笑顔写真 */
.hero_photo--big{
	width: 35%;
    height: auto;
	
    left: -10px;
    top: 170px;
    right: auto;
	
	animation-delay: 0.56s;
    
}

/* 若者集合写真 */
.hero_photo--pc{
	width: 46%;
    height: auto;
	
    left: 23%;
    top: 60px;
    right: auto;
    
	animation-delay: 0.10s;
}

/* スマッシュしてる写真 */
.hero_photo--small{
    width: 28%;
	height: auto;
	
    right: 3px;
    top: 85px;
    left: auto;
	
	animation-delay: 0.38s;
}

/* 黄色の「大会概要」ボタン */
.attend{
    position: absolute;
    left: 87%;
    top: 200px;
	
	z-index: 3;  
	
	/* 動き */
    transform: translateX(-50%);
	animation: float 3s ease-in-out infinite;
	
    width: clamp(66px, 18vw, 84px);
    height: clamp(66px, 18vw, 84px);

	background: var(--yellow);
    color: #fff;
	
    /* ★横並び */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
	
    font-weight: 700;
    font-size: 16px;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
	
    padding-left: 9px;
    padding-right: 3px;
    padding-top: 0px;
	
    /* 変形丸 */
    border-radius: 58% 42% 65% 35% /
    45% 55% 40% 60%; 
 }

/* 中身：拡大担当 */
.attend-inner{
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  transition: transform 0.25s ease; /* ←こっちに置く */
}

/* 動き制御 */
@keyframes float{
  0%   { transform: translate(-50%, 0); }
  50%  { transform: translate(-50%, -8px); }
  100% { transform: translate(-50%, 0); }
}

/* hoverで止まる＋拡大 */
.attend:hover{
  animation-play-state: paused;
}
.attend:hover .attend-inner{
  transform: scale(1.08);
}

/* スマホ：タップ中（拡大だけ） */
.attend:active .attend-inner{
  transform: scale(1.08);
}


.attend img{
    width: 11px;
    height: 11px;
    filter: brightness(0) invert(1);
    margin-top: 0;          /* ←いまの6pxを消す */
    flex: 0 0 auto;
}




/* =======================================
   HERO：テキスト
======================================= */
.hero_txt{
    position: relative;
    z-index: 4;
    color: #fff;
    top: auto;
    margin-top: clamp(170px, 55vw, 330px);
}

.hero_txt .catch{
    text-align: center;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 20px;
}

.hero_txt .catch h1{
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
}

/* シャトル：白 + ぽよぽよ */
.hero_txt .catch img{
  width: 40px;
  display: block;
  margin: 0 auto 8px;

  filter: brightness(0) invert(1);

  /* ここがポイント：登場→ふわふわ の2連 */
  animation:
    shuttle-drop 0.9s cubic-bezier(.2,.9,.2,1) 0.1s both,
    shuttle-fuwa 2.6s ease-in-out 1.05s infinite;

  will-change: transform, opacity;
  transform-origin: center;
}

/* 左上からシュッと入ってくる（登場） */
@keyframes shuttle-drop{
  0%{
    opacity: 0;
    transform: translate(-200px, -140px) rotate(-35deg) scale(0.85);
  }
  60%{
    opacity: 1;
    transform: translate(6px, 6px) rotate(6deg) scale(1.03);
  }
  100%{
    opacity: 1;
    transform: translate(0, 0) rotate(0deg) scale(1);
  }
}

/* ふわふわ漂う（ずっと） */
@keyframes shuttle-fuwa{
  0%   { transform: translate(0, 0) rotate(0deg); }
  50%  { transform: translate(0, -8px) rotate(-5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}



/* 本文（太さ500） */
.hero_txt .section-inner p{
    margin: 0;
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: 0.04em;
    font-weight: 500;
    text-align: justify;
    color: white;
}



/* ===== SECTION: 共通（シャトルとタイトル） ===== */

/* シャトルアイコン */
.section-inner .title img {
    width: 40px;
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 10px;
    display: block;
    animation: shuttle-poyo 2.4s ease-in-out infinite;
/*ぽよぽよ動く*/
  transform-origin: center;
}
@keyframes shuttle-poyo{
  0%   { transform: translateY(0) rotate(0deg); }
  40%  { transform: translateY(-6px) rotate(-6deg); }
  60%  { transform: translateY(-4px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}


/*タイトル*/
.section-inner .title{
  text-align: center;
}

.section-inner .title h2 {
    display: inline-block;      /* ボーダーの幅を文字数と合わせるために必要 */
    text-align: center;
    letter-spacing: 0.08em;
    color: var(--blue);
    border-bottom: 2px solid var(--blue);
    padding-bottom: 1px;
    line-height: 1.0;  /* 文字と線の距離 */
    margin-bottom: 30px;
    font-size: 20px;
}

/*本文*/
.section-inner .title p {
    text-align: justify;
    font-size: 16px;
    line-height: 1.6;
}

/* ===== SECTION: お知らせ ===== */

#info {
    margin-top: 100px;
    position: relative; /* ←これ必須z-indexのため */
    z-index: 5;
}
ul .list-item {
    border-bottom: 1px dashed var(--blue);
    align-items: center;
    padding-top: 5px;
    padding-bottom: 5px;
}
ul .list-item:first-child {
	border-top: 1px dashed var(--blue);
}

/* 一番上のお知らせだけ NEW をタイトル前に表示 */
#info ul .list-item:first-child .title::before {
  content: "｜NEW｜";
  color: #e60000;
  font-size: 11px;
  font-weight: bold;
  margin-right: 6px;
  white-space: nowrap;
}

ul li .info-link {
  font-size: 14px;
  display: flex;
  align-items: center;              /* 縦中央揃え */
  justify-content: space-between;
  gap: 12px;
}

/* ラベル＋タイトルをまとめる */
ul li .info-link .frame {
    border: 1px solid currentColor;
    border-radius: 5px;
    padding: 2px 6px;
    flex-shrink: 0;                   /* ←潰れ防止 */
    font-size: 12px;
}

ul li .info-link .title {
    flex: 1;                          /* ←ここ重要 */
    margin-left: 8px;
    line-height: 1.4;
    text-align: left;
}

	
/*矢印*/
li .info-link img {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: var(--yellow);

  display: inline-block;          /* ★超重要 */
  flex-shrink: 0;                 /* ★潰され防止 */
  transform-origin: center center;/* ★回転軸 */

  transition: transform 0.4s ease;
}
/*矢印回す*/
li .info-link:hover img {
  transform: rotate(360deg);
}


/* ===== SECTION: 活動内容 ===== */

#activity {
    margin-top: 100px;
    position: relative; /* ←これ必須z-indexのため */
    z-index: 5;
}


/* カード（重ねの基準） */
.activity-cards .card{
  position: relative;
  padding-bottom: 20px;
  display: flex;
  justify-content: center; /* ←これが効く */
}


/* キャプション（画像の上に乗せる） */
.activity-cards .card-media{
    position: relative;
    display: inline-block; /* ←画像の幅＝基準になる */
}

.activity-cards .card-media img{
    display: block;
    width: 100%;
    height: auto;
    border-top-left-radius: 30px 30px;
}

/* ラベル */

.activity-cards .card h3{
    position: absolute;
    right: 0px;        /* ← 右端に揃える */
    bottom: -5px;       /* ← 画像から少しはみ出す */
    margin: 0;
    padding-top: 20px;
    padding-right: 16px;
    padding-left: 20px;
    padding-bottom: 20px;
    font-weight: normal;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
    background: #fff;
    z-index: 2;
    border-top-left-radius: 30px 30px;
}



/* ===== SECTION: インスタグラム ===== */

#instagram {
    margin-top: 100px;
    margin-bottom: 50px;
}

.section_instagram .section-inner .title p {
    text-align: center;
}

/*インスタ読み込みフレーム*/
.section-inner .insta iframe {
    border: 1px solid var(--blue);
    margin-top: 10px;
    padding-left: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-top: 10px;
}


/* LINEリンク */
.section_instagram .line_link{
  display: flex;
  align-items: center;      /* ← 縦中央 */
  justify-content: space-between;
  gap: 16px;
  margin-top: 24px;
}

/* テキストは自然に折り返す */
.section_instagram .line_link p{
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

/* LINEアイコン */
.section_instagram .line_link a{
  flex-shrink: 0;           /* ← 縮まらない */
}


/*区切り線*/
#main hr {
    width: 90%;
    background-color: var(--blue);
    border-style: none;
    height: 1px;
}
