/*
Theme Name: GeneratePress
Theme URI: https://generatepress.com
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Version: 3.6.1
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: generatepress
Tags: two-columns, three-columns, one-column, right-sidebar, left-sidebar, footer-widgets, blog, e-commerce, flexible-header, full-width-template, buddypress, custom-header, custom-background, custom-menu, custom-colors, sticky-post, threaded-comments, translation-ready, rtl-language-support, featured-images, theme-options

GeneratePress, Copyright 2014-2025 EDGE22 Studios LTD.
GeneratePress is distributed under the terms of the GNU GPL

GeneratePress is based on Underscores http://underscores.me/, (C) 2012-2025 Automattic, Inc.

Actual CSS can be found in /assets/css/ folder.
*/

/* ===== 上段 ===== */
.et-header {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: #fff;
}

.et-header-top {
  background: #fff;
  border-bottom: 1px solid #e0e0e0;
}

.et-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  gap: 20px;
}

/* ロゴ */
.et-logo img {
  height: 90px;   /* ← まずは90pxで */
  width: auto;
}
/* SNS */
.et-sns {
  display: flex;
  gap: 12px;
}

/* SNS共通 */
.et-sns a {
  width: 36px;
  height: 36px;
  display: inline-block;
  background-size: cover;
  background-position: center;
}

/* 各アイコン */
.sns-line {
  background-image: url("https://upload.wikimedia.org/wikipedia/commons/4/41/LINE_logo.svg");
}

.sns-instagram {
  background-image: url("https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png");
}

.sns-mail {
  background-image: url("https://upload.wikimedia.org/wikipedia/commons/4/4e/Mail_%28iOS%29.svg");
}


/* 右側 */
.et-header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.et-tel {
  background: #77a9dd;
  color: #fff;
  padding: 10px 18px;
  font-weight: bold;
}

.et-cta {
  border: 2px solid #2b6cb0;
  padding: 10px 16px;
  color: #2b6cb0;
  text-decoration: none;
  font-weight: bold;
}

/* ===== 下段メニュー（強調） ===== */
.et-header-nav {
  border-top: 1.2px solid #333;
  border-bottom: 1.2px solid #333;
}

/* 縦区切り線 */
.et-nav-menu li {
  border-left: 1px solid #333;
}

.et-nav-menu li:last-child {
  border-right: 1px solid #333;
}

.et-nav-menu {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.et-nav-menu a {
  display: block;
  padding: 16px 6px;
  color: #000;
  text-decoration: none;
  font-weight: 600;
}

/* メニュー hover */
.et-nav-menu a {
  transition: background-color 0.2s ease, color 0.2s ease;
}

.et-nav-menu a:hover {
  background-color: #f2f6fb;   /* うっすら青 */
  color: #2b6cb0;
}

/* ===== ハンバーガー ===== */
/* PC：非表示 */
.et-hamburger {
  display: none;
  background: #f2f4f8;
  border: none;
  cursor: pointer;
}

/* 押してる一瞬だけ */
.et-hamburger:active {
  background: #ddd;
}

/* focusは色を変えない */
.et-hamburger:focus {
  outline: none;
  background: #f2f4f8;
}

/* メニューが開いているとき */
.et-hamburger.is-open {
  background: #f2f4f8;
}


.et-hamburger span {
  display: block;
  width: 26px;
  height: 3px;
  background: #000;
  margin: 5px 0;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {
  .et-sns,
  .et-header-right {
    display: none;
  }

  .et-hamburger {
    display: block;
  }

  .et-header-nav {
    display: none;
  }

  .et-header-nav.is-open {
    display: block;
  }

  .et-nav-menu {
    flex-direction: column;
  }

  .et-nav-menu li {
    border: none;
    border-bottom: 1px solid #ddd;
  }
}

/* ===== ヒーローバナー ===== */
.et-hero-banner {
  position: relative;
  height: 420px;
  overflow: hidden;
}

/* スライダー */
.et-hero-slider {
  position: absolute;
  inset: 0;
}

.et-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.05);
  transition: opacity 1.5s ease, transform 8s ease;
}

.et-slide.active {
  opacity: 1;
  transform: scale(1);
}

/* ロゴオーバーレイ */
.et-hero-overlay {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.et-hero-logo {
  height: 120px;
  max-width: 90%;
}

/* スマホ */
@media (max-width: 768px) {
  .et-hero-banner {
    height: 260px;
  }
  .et-hero-logo {
    height: 80px;
  }
}

/* ===== お知らせ ===== */
.et-news {
  background: #f5f6fb;
  padding: 60px 0;
}

.et-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

.et-section-title {
  text-align: center;
  font-size: 32px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  letter-spacing: 0.1em;
  margin-bottom: 30px;
}

.et-news-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 720px;
}

.et-news-list li {
  display: flex;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid #ddd;
}

.et-news-date {
  color: #e55454;
  font-weight: bold;
  min-width: 110px;
}

.et-news-list a {
  text-decoration: none;
  color: #333;
}

.et-news-list a:hover {
  text-decoration: underline;
}

/* ===== スクール理念 ===== */
.et-philosophy {
  background: #f2f3ff;
  padding: 80px 0;
  text-align: center;
}

.et-philosophy-head .en {
  display: block;
  font-size: 48px;
  font-weight: 700;
  color: rgba(0,0,0,0.15);
  letter-spacing: 0.15em;
}

.et-philosophy-head h2 {
  font-size: 22px;
  color: #355c9a;
  margin-top: -5px;
  margin-bottom: 40px;
}

.et-philosophy-box {
  background: #eee;
  padding: 50px 30px;
  border-radius: 6px;
  max-width: 760px;
  margin: 0 auto;
}

.et-philosophy-box .main {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 20px;
}

.et-philosophy-box .sub {
  font-size: 16px;
  line-height: 1.9;
  color: #555;
}

/* スマホ */
@media (max-width: 768px) {
  .et-philosophy-head .en {
    font-size: 36px;
  }
  .et-philosophy-box .main {
    font-size: 20px;
  }
}

/* ===== 選ばれる理由 ===== */
.et-reason {
  background: #fff;
  padding: 80px 0;
}

.et-reason-item {
  text-align: center;
  margin-bottom: 80px;
}

/* POINT バッジ */
.et-point {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  margin: 0 auto 20px;
  background: #3569a8;
  color: #fff;
  font-weight: bold;
  border-radius: 50%;
  font-size: 18px;
}

/* 見出し */
.et-reason-title {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 25px;
  line-height: 1.6;
}

/* 説明ボックス */
.et-reason-box {
  background: repeating-linear-gradient(
    45deg,
    #f2f2f2,
    #f2f2f2 5px,
    #eaeaea 5px,
    #eaeaea 10px
  );
  padding: 30px 40px;
  max-width: 820px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 2;
  color: #444;
}

/* ===== スマホ対応 ===== */
@media (max-width: 768px) {

  .et-reason {
    padding: 60px 0;
  }

  .et-point {
    width: 90px;
    height: 90px;
    font-size: 14px;
  }

  .et-reason-title {
    font-size: 20px;
    padding: 0 10px;
  }

  .et-reason-box {
    padding: 20px;
    font-size: 14px;
    line-height: 1.8;
  }

  .et-reason-item {
    margin-bottom: 60px;
  }
}

/* ===== コーチ紹介 ===== */
.et-coach {
  background: #f3f4ff;
  padding: 80px 0;
}

.et-coach-head {
  text-align: center;
  margin-bottom: 50px;
}

.et-coach-head .en {
  display: block;
  font-size: 48px;
  font-weight: 700;
  color: rgba(0,0,0,0.15);
  letter-spacing: 0.15em;
}

.et-coach-head h2 {
  font-size: 22px;
  color: #355c9a;
  margin-top: -18px;
}

/* 本体 */
.et-coach-body {
  display: flex;
  gap: 50px;
  align-items: flex-start;
}

/* 写真 */
.et-coach-photo img {
  width: 320px;
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

/* 名前 */
.et-coach-name {
  font-size: 26px;
  margin-bottom: 25px;
}

.et-coach-name span {
  font-size: 14px;
  color: #777;
  margin-left: 10px;
  letter-spacing: 0.1em;
}

/* ブロック */
.et-coach-block {
  margin-bottom: 25px;
}

.et-coach-block h4 {
  font-size: 16px;
  color: #355c9a;
  border-left: 4px solid #355c9a;
  padding-left: 10px;
  margin-bottom: 10px;
}

.et-coach-block ul {
  padding-left: 20px;
  margin: 0;
}

.et-coach-block li {
  line-height: 1.8;
  font-size: 15px;
  color: #444;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {

  .et-coach-body {
    flex-direction: column;
    align-items: center;
  }

  .et-coach-photo img {
    width: 100%;
    max-width: 320px;
  }

  .et-coach-profile {
    width: 100%;
  }

  .et-coach-name {
    text-align: center;
  }
}

/* ===== クラス紹介 ===== */
.et-class {
  background: #fff;
  padding: 80px 0;
}

.et-class-head {
  text-align: center;
  margin-bottom: 50px;
}

.et-class-head .en {
  display: block;
  font-size: 48px;
  font-weight: 700;
  color: rgba(0,0,0,0.15);
  letter-spacing: 0.15em;
}

.et-class-head h2 {
  font-size: 22px;
  color: #355c9a;
  margin-top: -18px;
}

/* 一覧 */
.et-class-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
}

/* カード */
.et-class-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  overflow: hidden;
  text-align: center;
}

/* タイトル */
.et-class-title {
  font-size: 18px;
  padding: 20px;
  background: #f3f4ff;
  margin: 0;
}

/* 画像 */
.et-class-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* 説明 */
.et-class-text {
  padding: 20px;
  font-size: 15px;
  line-height: 1.8;
  color: #444;
}

/* リンク */
.et-class-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 25px;
  color: #355c9a;
  text-decoration: none;
  font-weight: bold;
}

.et-class-link::after {
  content: "▶";
  font-size: 12px;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {

  .et-class {
    padding: 60px 0;
  }

  .et-class-list {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .et-class-text {
    font-size: 14px;
  }
}

/* ===== お客様の声 ===== */
.et-voice {
  background: #f3f4ff;
  padding: 80px 0;
}

.et-voice-head {
  text-align: center;
  margin-bottom: 60px;
}

.et-voice-head .en {
  display: block;
  font-size: 48px;
  font-weight: 700;
  color: rgba(0,0,0,0.15);
  letter-spacing: 0.15em;
}

.et-voice-head h2 {
  font-size: 22px;
  color: #355c9a;
  margin-top: -18px;
}

/* 各声 */
.et-voice-item {
  display: flex;
  gap: 40px;
  align-items: center;
  margin-bottom: 60px;
}

/* 交互 */
.et-voice-item.reverse {
  flex-direction: row-reverse;
}

/* 写真 */
.et-voice-photo img {
  width: 260px;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.12);
}

/* ボックス */
.et-voice-box {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
  overflow: hidden;
  max-width: 680px;
}

/* タイトル帯 */
.et-voice-title {
  background: #3f6fb1;
  color: #fff;
  padding: 14px 20px;
  font-weight: bold;
  font-size: 15px;
}

/* 本文 */
.et-voice-text {
  padding: 20px;
  font-size: 15px;
  line-height: 1.9;
  color: #444;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {

  .et-voice-item,
  .et-voice-item.reverse {
    flex-direction: column;
    text-align: center;
  }

  .et-voice-photo img {
    width: 100%;
    max-width: 280px;
  }

  .et-voice-box {
    width: 100%;
  }

  .et-voice-title {
    font-size: 14px;
  }

  .et-voice-text {
    font-size: 14px;
    text-align: left;
  }
}

/* ===== コート案内 ===== */
.et-court {
  background: #e9f4ff;
  padding: 80px 0;
}

.et-court-head {
  text-align: center;
  margin-bottom: 50px;
}

/* 上の丸ボタン */
.et-court-label {
  display: inline-block;
  background: #4a7ebb;
  color: #fff;
  padding: 12px 40px;
  border-radius: 999px;
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 30px;
}

/* 住所・営業時間 */
.et-court-info {
  font-size: 20px;
  line-height: 1.8;
  color: #4a7ebb;
  font-weight: 500;
}

/* 本体 */
.et-court-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

/* 写真 */
.et-court-photo img {
  width: 100%;
  border-radius: 6px;
}

.et-court-note {
  margin-top: 15px;
  font-size: 16px;
  line-height: 1.8;
  text-align: center;
}

/* マップ */
.et-court-map {
  width: 100%;
  height: 100%;
  min-height: 300px;
  border-radius: 6px;
  overflow: hidden;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {

  .et-court {
    padding: 60px 0;
  }

  .et-court-info {
    font-size: 16px;
  }

  .et-court-body {
    grid-template-columns: 1fr;
  }

  .et-court-map {
    height: 300px;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
}

/* ===== テニスをする10の理由 ===== */
.et-tennis-reason {
  background: #e9f4ff;
  padding: 80px 0;
  text-align: center;
}

.et-tennis-reason-head {
  margin-bottom: 40px;
}

/* 上の丸ボタン */
.et-tennis-reason-label {
  display: inline-block;
  background: #4a7ebb;
  color: #fff;
  padding: 12px 36px;
  border-radius: 999px;
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 20px;
}

.et-tennis-reason-head h2 {
  font-size: 22px;
  color: #4a7ebb;
  font-weight: 500;
}

/* バナー */
.et-tennis-reason-banner img {
  max-width: 100%;
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  margin: 40px 0 50px;
}

/* ギャラリー */    
.et-tennis-reason-gallery img {
  width: 100%;
  border-radius: 6px;
  object-fit: cover;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

/* ===== スマホ ===== */
@media (max-width: 768px) {

  .et-tennis-reason {
    padding: 60px 0;
  }

  .et-tennis-reason-label {
    font-size: 16px;
    padding: 10px 28px;
  }
　
  .et-tennis-reason-head h2 {
    font-size: 18px;
  }

  .et-tennis-reason-gallery {
    grid-template-columns: 1fr;
  }
}

/* ====== 基本 ====== */
.et-wrap { max-width: 1100px; margin: 0 auto; padding: 0 18px; }
.et-section { padding: 64px 0; }
.et-muted { color: #666; }
.et-center { text-align: center; }
.et-btn {
  display: inline-block; padding: 14px 22px; border-radius: 999px;
  text-decoration: none; font-weight: 700;
  border: 1px solid rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.12); color: #fff;
  backdrop-filter: blur(6px);
}
.et-btn:hover { opacity: .9; }

/* ====== HERO ====== */
.et-hero {
  position: relative; padding: 92px 0 84px;
  color: #fff; overflow: hidden;
  background: #111;
}
.et-hero::after{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.45)),
    url("<?php echo esc_url( get_template_directory_uri() . '/assets/images/hero-tennis.png' ); ?>");
  background-size: cover; background-position: center;
  transform: scale(1.02);
}
.et-hero .et-wrap { position: relative; z-index: 2; }
.et-hero h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.2; margin: 0 0 14px; }
.et-hero p { font-size: clamp(14px, 2.2vw, 18px); max-width: 760px; margin: 0 auto 22px; opacity: .95; }
.et-hero .et-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.et-btn-alt {
  display:inline-block; padding: 14px 22px; border-radius: 999px;
  text-decoration:none; font-weight:700;
  border: 1px solid rgba(255,255,255,.35);
  background: transparent; color:#fff;
}

/* ====== SECTION TITLES ====== */
.et-h2 { font-size: 28px; margin: 0 0 10px; }
.et-lead { margin: 0 auto; max-width: 860px; }

/* ====== FEATURES ====== */
.et-features { background: #f7f7f7; }
.et-grid3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.et-card {
  background: #fff; border-radius: 18px; padding: 22px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.et-card h3 { margin: 10px 0 8px; font-size: 18px; }
.et-icon {
  width: 44px; height: 44px; border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: #111; color: #fff; font-weight: 800;
}

/* ====== PROGRAMS ====== */
.et-gridCards { display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.et-linkcard { border-radius: 18px; overflow:hidden; background:#fff; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.et-linkcard a { display:block; color: inherit; text-decoration: none; }
.et-thumb { height: 160px; background:#ddd; background-size:cover; background-position:center; }
.et-body { padding: 18px 18px 20px; }
.et-meta { font-size: 13px; color:#666; margin-top: 6px; }
.et-more { margin-top: 12px; font-weight: 700; }

/* ====== EVENT CTA ====== */
.et-event {
  position: relative; color:#fff;
  background: #0f172a;
  overflow:hidden;
}
.et-event::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.12), transparent 45%),
              radial-gradient(circle at 80% 70%, rgba(255,255,255,.10), transparent 55%);
}
.et-event .et-wrap { position: relative; z-index:2; }

/* ====== POSTS ====== */
.et-posts { background:#fff; }
.et-postlist { display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; margin-top: 26px; }
.et-postitem { border-radius:18px; background:#fff; border:1px solid #eee; overflow:hidden; }
.et-postitem a{ text-decoration:none; color:inherit; display:block; }
.et-postitem .et-body{ padding:16px 16px 18px; }
.et-posttitle{ font-size:16px; margin: 0 0 6px; }
.et-date{ font-size:12px; color:#666; }

/* ====== FINAL CTA ====== */
.et-final { background:#f7f7f7; }
.et-final .et-btn { background:#111; border-color:#111; }

/* =========================
   ヘッダー全体の枠線を弱める
========================= */

/* 上段と下段の境界線 */
.et-header {
  border-bottom: 1px solid #e5e7eb; /* 薄いグレー */
}

/* メニュー全体の外枠を消す */
.et-header-nav {
  border-top: none;
  border-bottom: none;
}

/* メニュー項目の区切り線を細く・薄く */
.et-nav-menu > li {
  border-right: none;
}

.et-nav-menu > li:first-child {
  border-left: none;
}

/* 線が主張しすぎないように */
.et-nav-menu a {
  font-weight: 500;
}

.et-header-nav {
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.06);
}

.et-nav-menu > li:hover {
  box-shadow: inset 1px 0 0 rgba(0,0,0,0.12),
              inset -1px 0 0 rgba(0,0,0,0.12);
}

.et-nav-menu > li {
  padding: 0 12px;
}

.et-tel a {
  color: #ffffff;        /* 白文字 */
  text-decoration: none; /* 下線消す */
  font-weight: bold;
  display: block;
}

.et-tel a:hover {
  opacity: 0.85;
}
#kids-school {
  font-family: inherit;
}

.kids-hero {
  background: #3b6ea8;
  color: #fff;
  text-align: center;
  padding: 80px 20px;
}

.kids-section {
  max-width: 1000px;
  margin: 0 auto;
  padding: 60px 20px;
}

.bg-light {
  background: #f7f9fc;
}

.section-title {
  text-align: center;
  margin-bottom: 40px;
}

.feature-box,
.class-box {
  background: #fff;
  padding: 30px;
  margin-bottom: 30px;
  border-radius: 8px;
}

.note {
  font-size: 0.9em;
  color: #666;
}

.btn-primary {
  display: inline-block;
  padding: 14px 30px;
  background: #ffffff;
  color: #3b6ea8;
  border-radius: 30px;
  text-decoration: none;
  font-weight: bold;
}

.kids-cta {
  background: #3b6ea8;
  color: #fff;
  text-align: center;
  padding: 60px 20px;
}

.et-junior-photo {
  max-width: 900px;
  margin: 40px auto 60px;
  padding: 0 20px;
}

.et-junior-photo img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}

/* FEATURES 英字見出しをトップと同じ薄グレーに */
.section-title {
  color: #d3d3d3;   /* ← トップと同系の薄グレー */
  letter-spacing: 0.15em;
}

.section-title span {
  display: block;
  margin-top: 8px;
  color: #2f5f9e;   /* 日本語は濃いブルー */
  font-size: 0.9em;
  letter-spacing: normal;
}

/* ===== クラス紹介 全体 ===== */
.et-class-section {
  background: #fff;
}

/* 青帯見出し */
.et-class-header {
  background: #3b6ea8;
  color: #fff;
  text-align: center;
  font-size: 28px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: bold;
  padding: 30px 20px;
}

/* クラスブロック */
.et-class-block {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 20px;
  text-align: center;
}

/* クラス名 */
.et-class-title {
  color: #6fa4e6; /* ← スクショの水色 */
  font-size: 36px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  margin-bottom: 10px;
}

/* 対象・注釈 */
.et-class-sub {
  color: #6fa4e6;
  font-size: 16px;
  family: 'M PLUS Rounded 1c', sans-serif;
  margin-bottom: 40px;
}

.et-class-sub span {
  font-size: 14px;
}

/* 写真 */
.et-class-photo {
  margin-bottom: 30px;
}

.et-class-photo img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}

/* 説明文 */
.et-class-text {
  text-align: left;
  font-size: 16px;
  line-height: 1.8;
  color: #333;
}

/* ===== Q&A Section ===== */
/* ===== Q&A Section ===== */
.et-qa-section {
  background: #fff;
}

/* 青帯見出し */
.et-qa-header {
  background: #3b6ea8;
  color: #fff;
  text-align: center;
  font-size: 32px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: bold;
  padding: 30px 20px;
}

/* 内側 */
.et-qa-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 50px 20px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

/* Q&A item */
.et-qa-item {
  border-bottom: 1px solid #ddd;
}

/* 質問ボタン */
.et-qa-question {
  display: block;
  width: 100%;
  padding: 20px 50px 20px 20px;
  font-size: 16px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
  position: relative;
}

/* + / − */
.et-qa-question::after {
  content: "+";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 26px;
  color: #3b6ea8;
}

.et-qa-item.is-open .et-qa-question::after {
  content: "−";
}

/* 回答 */
.et-qa-answer {
  display: none;
  padding: 0 20px 20px;
  font-size: 15px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  line-height: 1.8;
  color: #333;
}

.et-qa-item.is-open .et-qa-answer {
  display: block;
}

/* ===== Schedule ===== */
.et-schedule-section {
  padding: 20px 20px;
  background: #fff;
}

.et-schedule-table-wrap {
  max-width: 1100px;
  margin: 0 auto;
}

.et-schedule-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.et-schedule-table th,
.et-schedule-table td {
  border: 1px solid #333;
  text-align: center;
  padding: 6px 2px;
  font-size: 13px;
  line-height: 1.4;
}

/* ヘッダー */
.et-schedule-table thead th {
  background: #bcd5f1;
  font-weight: bold;
}

/* 時間列 */
.et-schedule-table th.time th.sat-time {
  width: 70px;
  font-weight: bold;
  background: #eee;
}

/* クラス別カラー */
.beginner {
  background: #dff0c2;
}

.motion {
  background: #dff0c2;
}

.game {
  background: #d7e7f6;
}

.enjoy {
  background: #d7e7f6;
}

/* 注釈 */
.et-schedule-table small {
  font-size: 12px;
  color: #d33;
}

/* 下の注意書き */
.et-schedule-note {
  margin-top: 20px;
  font-size: 14px;
  color: #333;
  line-height: 1.8;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* ===== スマホ最適化 ===== */
@media (max-width: 768px) {
  .et-schedule-table th,
  .et-schedule-table td {
    font-size: 10px;
    padding: 8px 4px;
  }

  .et-schedule-table th.time th.sat-time{
    width: 40px !important;
    font-size: 11px;
    line-height: 1.2;
    background: #eee;
  }
}

/* ===== ふわっとCTA ===== */
.et-futon-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: -120px; /* 初期は隠す */
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.1);
  padding: 12px 10px;
  display: flex;
  gap: 10px;
  justify-content: center;
  transition: bottom 0.6s ease;
  z-index: 999;
}

/* 表示状態 */
.et-futon-cta.is-show {
  bottom: 0;
}

/* ボタン */
.et-futon-cta .cta-btn {
  flex: 1;
  text-align: center;
  padding: 12px 6px;
  border-radius: 8px;
  font-weight: bold;
  font-size: 14px;
  text-decoration: none;
  color: #fff;
}

/* Instagram */
.cta-btn.insta {
  background: linear-gradient(
    45deg,
    #f09433,
    #e6683c,
    #dc2743,
    #cc2366,
    #bc1888
  );
  color: #fff;
}

/* 色 */
.cta-btn.line { background: #06c755; }
.cta-btn.tel  { background: #4caf50; }
.cta-btn.mail { background: #3b6ea8; }

/* PCでは出さない */
@media (min-width: 769px) {
  .et-futon-cta {
    display: none;
  }
}
.et-section-title--red { color: #c00; }

.school-terms {
  background: #f4f6ff;
}

.rule-section {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 20px;
}

.rule-page-title {
  text-align: center;
  font-size: 32px;
  margin-bottom: 50px;
}

.rule-main-title {
  text-align: center;
  font-size: 24px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  color: #6b8fd6;
  margin: 60px 0 30px;
  padding-bottom: 15px;
  border-bottom: 4px dashed #8fb0f0;
}

.rule-box {
  background: #f0f3ff;
  border: 2px solid #7da2e8;
  border-radius: 6px;
  padding: 25px 30px;
  margin-bottom: 30px;
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

.rule-box h3 {
  font-size: 18px;
  color: #4f6fbf;
  margin-bottom: 15px;
  border-bottom: 1px solid #7da2e8;
  padding-bottom: 8px;
}

.rule-box ul {
  padding-left: 20px;
}

.rule-box li {
  margin-bottom: 8px;
  line-height: 1.7;
}

.rule-update {
  text-align: right;
  font-size: 14px;
  color: #666;
  margin-top: 40px;
}

.ticket-terms .rule-sub-title {
  text-align: center;
  font-size: 16px;
  color: #6b8fd6;
  margin-top: -30px;
  margin-bottom: 40px;
}

.terms-consent {
  max-width: 900px;
  margin: 80px auto;
}

.consent-title {
  font-size: 28px;
  text-align: center;
  color: #3f6fd1;
  margin-bottom: 30px;
}

.consent-box {
  background: #eaf0ff;
  padding: 40px;
  border-radius: 6px;
}

.consent-box input[type="text"],
.consent-box input[type="email"],
.consent-box input[type="tel"] {
  width: 100%;
  padding: 12px;
  margin-bottom: 20px;
}

.consent-box input[type="submit"] {
  background: #3f6fd1;
  color: #fff;
  padding: 14px 40px;
  border: none;
  cursor: pointer;
}

.terms-link {
  text-align: center;
  font-size: 20px;
  margin: 40px 0;
}

/* ===== TERMS HERO ===== */
.terms-hero {
  text-align: center;
  padding: 80px 20px 60px;
  border: 2px solid #7da2e8;
  margin-bottom: 60px;
}

.terms-en {
  display: block;
  font-size: 48px;
  font-weight: 700;
  color: rgba(0,0,0,0.15);
  letter-spacing: 0.15em;
}

.terms-ja {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 22px;
  color: #4f7fd1;
  margin-bottom: 30px;
}

.terms-lead {
  font-size: 14px;
  color: #666;
  line-height: 1.8;
}

/* 大会情報 */
.tb-tournament {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
}

.tb-event {
  border-bottom: 1px solid #ddd;
  padding: 16px 0;
}

.tb-event h3 {
  margin: 0 0 8px;
  font-size: 1.1rem;
}

.tb-link {
  display: inline-block;
  padding: 6px 14px;
  background: #1e88e5;
  color: #fff;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
}

.tb-link:hover {
  opacity: 0.85;
}
.tb-event {
  border-bottom: 1px solid #ddd;
  padding: 20px 0;
}
.tb-event.is-full {
  opacity: 0.45;
}
.tb-tags {
  margin: 6px 0;
}
.tb-tag {
  display: inline-block;
  background: #e0e0e0;
  font-size: 12px;
  padding: 2px 8px;
  margin-right: 6px;
  border-radius: 12px;
}

.tb-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}
.tb-table th,
.tb-table td {
  border-bottom: 1px solid #ddd;
  padding: 10px;
  font-size: 14px;
}
.tb-table th {
  background: #f5f5f5;
  text-align: left;
}
.tb-table tr.is-full {
  opacity: 0.4;
}
.tb-tag {
  display: inline-block;
  background: #e0e0e0;
  padding: 2px 8px;
  margin-right: 4px;
  border-radius: 12px;
  font-size: 11px;
}
.tb-link {
  background: #1e88e5;
  color: #fff;
  padding: 6px 10px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 12px;
}

.tb-table tr.is-full td:last-child {
  color: #d32f2f; /* 赤：満員 */
}

.tb-table tr.is-closed td:last-child {
  color: #555; /* グレー：締切 */
}

.contact-wrap {
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 20px;
}

.contact-title {
  font-size: 28px;
  text-align: center;
  margin-bottom: 10px;
}

.contact-lead {
  text-align: center;
  font-size: 15px;
  margin-bottom: 30px;
  line-height: 1.7;
}

.cf7-row {
  margin-bottom: 20px;
}

.cf7-row label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

.cf7-row input,
.cf7-row textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.cf7-row textarea {
  min-height: 160px;
}

.required {
  color: #d33;
  font-size: 12px;
  margin-left: 6px;
}

.cf7-consent {
  font-size: 13px;
  margin-bottom: 20px;
}

.cf7-submit {
  text-align: center;
}

.cf7-submit input {
  background: #2a7d6f;
  color: #fff;
  border: none;
  padding: 14px 40px;
  font-size: 16px;
  border-radius: 4px;
  cursor: pointer;
}

.cf7-submit input:hover {
  opacity: 0.85;
}

.tb-legend {
  margin: 12px 0 20px;
  font-size: 13px;
}

.tb-legend .legend-item {
  margin-right: 16px;
  display: inline-flex;
  align-items: center;
}

.tb-legend .place-badge {
  margin-right: 6px;
}

/* デフォルト（PC） */
.tb-place .place-badge {
  display: none;
}

/* スマホ表示 */
@media (max-width: 768px) {

  .tb-place .place-badge {
    display: inline-block;
    background: #e0e0e0;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    white-space: nowrap;
  }
}

/* =========================
  体験案内セクション
========================= */
.trial-info-section {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
  background: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

.trial-title {
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  color: #2f6fb2;
  line-height: 1.5;
}

.trial-title span {
  display: block;
  font-size: 22px;
  margin-top: 5px;
}

.trial-border {
  margin: 25px 0 35px;
  height: 6px;
  background: repeating-linear-gradient(
    90deg,
    #6aa2e6,
    #6aa2e6 16px,
    transparent 16px,
    transparent 26px
  );
}

.trial-list {
  display: grid;
  grid-template-columns: 120px 1fr;
  row-gap: 20px;
  column-gap: 20px;
  font-size: 16px;
  line-height: 1.8;
}

.trial-list dt {
  font-weight: 700;
  white-space: nowrap;
}

.trial-list dd {
  margin: 0;
}

.trial-list .note {
  font-size: 14px;
  color: #666;
}

/* ===== スマホ対応 ===== */
@media (max-width: 768px) {
  .trial-title {
    font-size: 22px;
  }

  .trial-title span {
    font-size: 18px;
  }

  .trial-list {
    grid-template-columns: 1fr;
  }

  .trial-list dt {
    margin-top: 10px;
  }
}

/* 欠席連絡フォーム */
.absence-wrapper {
  max-width: 600px;
  margin: 40px auto;
  padding: 20px;
}

.absence-title {
  text-align: center;
  margin-bottom: 20px;
}

.absence-note {
  font-size: 14px;
  color: #c00;
  margin-bottom: 20px;
}

.absence-form label {
  display: block;
  margin-bottom: 15px;
  font-size: 14px;
}

.absence-form input,
.absence-form select,
.absence-form textarea {
  width: 100%;
  padding: 8px;
  margin-top: 5px;
}

.absence-submit {
  width: 100%;
  padding: 12px;
  background: #0073aa;
  color: #fff;
  border: none;
  font-size: 16px;
  cursor: pointer;
}
