/*
Theme Name: Lightning Child
Template: lightning
Description: 埼玉県レスリング協会
Version: 0.6.0
*/
/* ========================================
   コンテンツが少ないページでも背景を全体表示
======================================== */
html {
  min-height: 100%;
}

body {
  min-height: 100vh;
}

.site-body {
  min-height: calc(100vh - 200px); /* ヘッダー・フッター分を引く */
}

/* ========================================
   1. カラー変数
======================================== */
:root {
  --color-white: #fff;
  --color-white-rgb: rgb(255,255,255);
  --color-black: #252525;
  --color-gray: #f0f4f6;
  --color-primary: #013477;
  --color-primary-rgb: RGB(1, 52, 119);
  --color-primary-rgba: RGBA(1, 52, 119, 0.6);
  --color-secondary: #d37254;
  --color-secondary-rgb: rgba(211,114,84);
  --color-secondary-rgba: rgba(211,114,84,0.6);
  --color-tertiary: #f8c39c;
  --color-tertiary-rgb: rgba(248,195,156);
  --color-tertiary-rgba: rgba(248,195,156,0.6);
}

/* ========================================
   2. 基本スタイル・背景パターン
======================================== */
body {
  font-family: 'Hiragino UD Sans W3 JIS2004', YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif;
  line-height: 2;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: .1em;
  color: var(--color-primary);
  background-color: #fafbfc;
  background-image:
    repeating-linear-gradient(
      45deg,
      rgba(1,52,119,0.1),
      rgba(1,52,119,0.1) 1px,
      transparent 1px,
      transparent 100px
    ),
    repeating-linear-gradient(
      -45deg,
      rgba(211,114,84,0.1),
      rgba(211,114,84,0.1) 1px,
      transparent 1px,
      transparent 100px
    );
  background-attachment: fixed;
}

.text-white,
.text-white a {
  color: #fff !important;
}

.entry-body > .veu_autoEyeCatchBox {
  display: none;
}

.bg-blue {
  background-color: #0a3d91;
}

.accent {
  font-family: "Anton", sans-serif;
  font-weight: 900;
}

section.accent p {
  line-height: 180px !important;
  margin-block-end: 0px !important;
}

/* パンくずリスト */
.breadcrumb,
.vk-breadcrumb,
.breadcrumb-wrapper,
#breadcrumb {
  background-color: #fff !important;
}

/* パララックス背景 */
.wp-block-cover.has-parallax,
.wp-block-cover__image-background.has-parallax {
  background-attachment: fixed !important;
}

@supports (-webkit-touch-callout: inherit) {
  .wp-block-cover.has-parallax,
  .wp-block-cover__image-background.has-parallax {
    background-attachment: fixed !important;
  }
}

/* ========================================
   3. ヘッダー
======================================== */
.site-header .site-header-logo {
  display: none;
}

.site-header {
  background: var(--color-white);
  border-bottom: 1px solid #e5e5e5;
  transition: all 0.3s ease;
}

body:not(.header_scrolled) .global-nav--layout--float-right {
  margin: 0 auto;
}

/* ナビゲーション */
.global-nav {
  display: flex;
  justify-content: center;
}

.global-nav .menu-item {
  margin: 0;
}

.global-nav .menu-item > a {
  color: var(--color-primary);
  font-size: 0.875rem;
  font-weight: 500;
  padding: 22px 28px;
  letter-spacing: 0.03em;
  position: relative;
  transition: all 0.25s ease;
  border-bottom: none;
}

.global-nav .menu-item > a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 3px;
  background: var(--color-secondary);
  transition: width 0.25s ease;
}

.global-nav .menu-item > a:hover {
  background: rgba(1, 52, 119, 0.04);
  color: var(--color-primary);
}

.global-nav .menu-item > a:hover::before {
  width: 100%;
}

.global-nav .menu-item.current-menu-item > a::before,
.global-nav .menu-item.current_page_item > a::before {
  width: 100%;
}

.global-nav .menu-item.current-menu-item > a,
.global-nav .menu-item.current_page_item > a {
  background: rgba(1, 52, 119, 0.04);
}

/* スクロール後 */
.header_scrolled .site-header {
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  border-bottom-color: transparent;
}

.header_scrolled .global-nav .menu-item > a {
  padding: 18px 24px;
}

/* ドロップダウン */
.global-nav .sub-menu {
  background: var(--color-white);
  border: 1px solid #e5e5e5;
  border-top: 3px solid var(--color-secondary);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  min-width: 220px;
}

.global-nav .sub-menu .menu-item > a {
  padding: 14px 20px;
  font-size: 0.8125rem;
  border-bottom: 1px solid #f0f0f0;
}

.global-nav .sub-menu .menu-item:last-child > a {
  border-bottom: none;
}

.global-nav .sub-menu .menu-item > a:hover {
  background: rgba(1, 52, 119, 0.04);
  padding-left: 24px;
}

.global-nav .sub-menu .menu-item > a::before {
  display: none;
}

/* ========================================
   4. ページヘッダー・スライド
======================================== */
.page-header { 
  display: none; 
}

.top-slide {
  display: none; 
}

body .is-layout-constrained > .slide-logo {
  position: fixed;
  left: 7vw;
}

body .is-layout-constrained > .slide-text {
  position: fixed;
  top: 250px;
  left: 18vw;
  text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #fff, 0 0 40px #fff;
}

/* ========================================
   5. サイトボディ
======================================== */
.site-body {
  padding: 0;
}

.single .site-body {
  padding: 3.5rem 0 4rem;
}

/* ========================================
   6. フッター
======================================== */
.site-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #fff;
  box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
  border-top: 0px;
}

.site-footer-copyright {
  border-top: 0px;
  max-width: unset;
  background-color: var(--color-white);
  color: var(--color-primary);
}

.site-footer-copyright p {
  font-size: 14px;
  font-style: italic;
}

.site-footer-copyright p:nth-child(3) {
  display: none;
}

.site-body-bottom {
  background-color: var(--color-gray);
}

.site-body-bottom .widget {
  margin-bottom: 0px;
  padding-bottom: 10px;
}

.site-body-bottom .widget .vk_button_link_txt {
  font-size: 16px;
}

/* フッターメニュー */
.widget.widget_nav_menu .menu-footer-menu-container > ul#menu-footer-menu.menu {
  column-count: 6;
}

.widget.widget_nav_menu .menu-footer-menu-container > ul#menu-footer-menu.menu li a {
  border-bottom: none;
  padding-bottom: 0.3em;
}

.widget.widget_nav_menu .menu-footer-menu-container > ul#menu-footer-menu.menu li {
  font-size: 14px;
}

/* ========================================
   7. テーブル
======================================== */

.wp-block-table table td {
  vertical-align: top;
}

/* ========================================
   8. 吹き出し
======================================== */
.bubble-top {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #555;
  box-sizing: border-box;
}

.bubble-top:before {
  content: "";
  position: absolute;
  top: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-bottom: 12px solid #FFF;
  z-index: 2;
}

.bubble-top:after {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-bottom: 14px solid #555;
  z-index: 1;
}

.bubble-top p {
  margin: 0;
  padding: 0;
}

/* ========================================
   9. お知らせ一覧（トップページ リスト型）
======================================== */
.wp-block-latest-posts__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  background: var(--color-white);
  border-radius: 8px;
  overflow: hidden;
}

.wp-block-latest-posts__list li {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "image date arrow"
    "image title arrow"
    "image excerpt arrow";
  gap: 0 24px;
  align-items: start;
  padding: 24px;
  border-bottom: 1px solid #eee;
  transition: background 0.25s ease;
}

.wp-block-latest-posts__list li:last-child {
  border-bottom: none;
}

.wp-block-latest-posts__list li:hover {
  background: #f8f9fa;
}

.wp-block-latest-posts__featured-image {
  grid-area: image;
  width: 220px;
  height: 140px;
  margin: 0 !important;
  float: none !important;
  border-radius: 8px;
  overflow: hidden;
}

.wp-block-latest-posts__featured-image a {
  display: block;
  width: 100%;
  height: 100%;
}

.wp-block-latest-posts__featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.wp-block-latest-posts__list li:hover .wp-block-latest-posts__featured-image img {
  transform: scale(1.05);
}

.wp-block-latest-posts__post-date {
  grid-area: date;
  font-size: 0.85rem;
  color: #666;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.wp-block-latest-posts__post-title {
  grid-area: title;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-primary);
  text-decoration: none;
  margin-bottom: 8px;
  transition: color 0.25s ease;
}

.wp-block-latest-posts__post-title:hover {
  color: var(--color-secondary);
}

.wp-block-latest-posts__post-excerpt {
  grid-area: excerpt;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #666;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wp-block-latest-posts__read-more {
  display: none;
}

.wp-block-latest-posts__list li::after {
  content: '→';
  grid-area: arrow;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 2px solid #ddd;
  border-radius: 50%;
  font-size: 1.2rem;
  color: #999;
  transition: all 0.25s ease;
}

.wp-block-latest-posts__list li:hover::after {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
}

/* 旧スタイル互換 */
.wp-block-latest-posts.wp-block-latest-posts__list.news li {
  display: flex;
  flex-flow: row nowrap; 
}

.wp-block-latest-posts.wp-block-latest-posts__list.news li a {
  flex: 1 1 80%;
  order: 2;
}

.wp-block-latest-posts.wp-block-latest-posts__list.news li time {
  flex: 1 1 20%;
}

/* VIEW MORE ボタン */
.vk_button.vk_button-align-wide {
  margin-top: 40px;
}

.vk_button.vk_button-align-wide .vk_button_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 48px;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  border-radius: 50px;
  transition: all 0.3s ease;
}

.vk_button.vk_button-align-wide .vk_button_link:hover {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(211, 114, 84, 0.4);
}

.vk_button.vk_button-align-wide .vk_button_link_subCaption {
  display: none;
}

/* セクション見出し */
.vk_heading.vk_heading-style-plain .vk_heading_title {
  font-family: 'Oswald', 'Noto Sans JP', sans-serif;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.vk_heading.vk_heading-style-plain .vk_heading_subtext {
  font-size: 0.9rem;
  opacity: 0.85;
  margin-top: 8px;
}


/* ========================================
   10. お知らせ一覧 リスト形式（固定ページ用）
======================================== */

/* グリッドを1列に変更 */
.wp-block-post-template.columns-3 {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  background: var(--color-white);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

/* 各投稿アイテム */
.wp-block-post-template.columns-3 > .wp-block-post {
  display: grid !important;
  grid-template-columns: 180px 1fr auto;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "image title arrow"
    "image excerpt arrow"
    "image category arrow";
  gap: 4px 24px;
  align-items: start;
  padding: 24px;
  border-bottom: 1px solid #eee;
  transition: background 0.25s ease;
}

.wp-block-post-template.columns-3 > .wp-block-post:last-child {
  border-bottom: none;
}

.wp-block-post-template.columns-3 > .wp-block-post:hover {
  background: #f8f9fa;
}

/* サムネイル画像 */
.wp-block-post-template.columns-3 .wp-block-post-featured-image {
  grid-area: image;
  width: 180px !important;
  height: 120px !important;
  margin: 0 !important;
  border-radius: 8px;
  overflow: hidden;
  align-self: center;
}

.wp-block-post-template.columns-3 .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* スペーサーを非表示 */
.wp-block-post-template.columns-3 .vk_spacer {
  display: none !important;
}

/* タイトル */
.wp-block-post-template.columns-3 .wp-block-post-title {
  grid-area: title;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 1.1rem !important;
  font-weight: 700;
  line-height: 1.5;
}

.wp-block-post-template.columns-3 .wp-block-post-title a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color 0.25s ease;
}

.wp-block-post-template.columns-3 .wp-block-post-title a:hover {
  color: var(--color-secondary);
}

/* 抜粋 */
.wp-block-post-template.columns-3 .wp-block-post-excerpt {
  grid-area: excerpt;
  padding: 0 !important;
  margin: 0 !important;
}

.wp-block-post-template.columns-3 .wp-block-post-excerpt__excerpt {
  font-size: 0.875rem !important;
  color: #666;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 !important;
}

/* カテゴリーエリア */
.wp-block-post-template.columns-3 .wp-block-columns {
  grid-area: category;
  margin: 8px 0 0 0 !important;
  padding: 0 !important;
  gap: 8px !important;
  align-items: center;
}

.wp-block-post-template.columns-3 .wp-block-columns .wp-block-column:first-child {
  display: none !important;
}

.wp-block-post-template.columns-3 .wp-block-post-terms a {
  display: inline-block;
  padding: 4px 12px;
  font-size: 0.75rem !important;
  font-weight: 500;
  color: var(--color-primary);
  background: rgba(1, 52, 119, 0.08);
  border-radius: 20px;
  text-decoration: none;
  transition: all 0.25s ease;
}

.wp-block-post-template.columns-3 .wp-block-post-terms a:hover {
  background: var(--color-secondary);
  color: var(--color-white);
}

/* 矢印アイコン */
.wp-block-post-template.columns-3 > .wp-block-post::after {
  content: '→';
  grid-area: arrow;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 2px solid #ddd;
  border-radius: 50%;
  font-size: 1.1rem;
  color: #999;
  transition: all 0.25s ease;
}

.wp-block-post-template.columns-3 > .wp-block-post:hover::after {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
}

/* レスポンシブ（タブレット） */
@media (max-width: 768px) {
  .wp-block-post-template.columns-3 > .wp-block-post {
    grid-template-columns: 140px 1fr auto;
    gap: 4px 16px;
    padding: 20px;
  }

  .wp-block-post-template.columns-3 .wp-block-post-featured-image {
    width: 140px !important;
    height: 90px !important;
  }

  .wp-block-post-template.columns-3 .wp-block-post-title {
    font-size: 1rem !important;
  }

  .wp-block-post-template.columns-3 .wp-block-post-excerpt__excerpt {
    font-size: 0.8rem !important;
    -webkit-line-clamp: 2;
  }
}

/* レスポンシブ（スマホ） */
@media (max-width: 575px) {
  .wp-block-post-template.columns-3 > .wp-block-post {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "image image"
      "title arrow"
      "excerpt arrow"
      "category arrow";
    gap: 8px 16px;
    padding: 16px;
  }

  .wp-block-post-template.columns-3 .wp-block-post-featured-image {
    width: 100% !important;
    height: 160px !important;
    margin-bottom: 8px !important;
  }

  .wp-block-post-template.columns-3 > .wp-block-post::after {
    grid-row: 2 / 5;
    align-self: center;
  }
}

/* ========================================
   ページネーション
======================================== */
.wp-block-query-pagination {
  margin-top: 48px !important;
  gap: 12px !important;
  justify-content: center;
}

.wp-block-query-pagination-numbers {
  display: flex;
  gap: 8px;
}

.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 16px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary);
  background: var(--color-white);
  border: 2px solid #ddd;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.25s ease;
}

.wp-block-query-pagination .page-numbers:hover,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.wp-block-query-pagination .page-numbers.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
  gap: 6px;
}

.wp-block-query-pagination-next-arrow,
.wp-block-query-pagination-previous-arrow {
  font-size: 0.8rem;
}

/* レスポンシブ（スマホ） */
@media (max-width: 575px) {
  .wp-block-query-pagination {
    flex-wrap: wrap;
    gap: 8px !important;
  }

  .wp-block-query-pagination .page-numbers,
  .wp-block-query-pagination-next,
  .wp-block-query-pagination-previous {
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    font-size: 0.85rem;
  }
}

/* ========================================
   11. 協会概要ページ
======================================== */
.officer-table table {
  width: 100%;
  border-collapse: collapse;
  background: var(--color-white);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.officer-table table tr {
  border-bottom: 1px solid #eee;
}

.officer-table table tr:last-child {
  border-bottom: none;
}

.officer-table table tr:hover {
  background: rgba(1, 52, 119, 0.02);
}

.officer-table table td {
  padding: 16px 20px;
  vertical-align: top;
  line-height: 1.8;
}

.officer-table table td:first-child {
  width: 140px;
  background: rgba(1, 52, 119, 0.04);
  color: var(--color-primary);
  font-weight: 600;
  white-space: nowrap;
  border-right: 3px solid var(--color-secondary);
}

.officer-table table td:last-child {
  color: #333;
}

.wp-block-image figcaption {
  text-align: center;
  font-size: 0.875rem;
  color: #666;
  margin-top: 12px;
}

.wp-block-separator.has-secondary-background-color,
.wp-block-separator.is-style-wide {
  width: 60px;
  height: 3px;
  border: none;
  opacity: 1;
}

/* ========================================
   12. 加盟団体ページ
======================================== */
/* カテゴリー見出し */
.team-category .category-title {
  position: relative;
  margin-bottom: 24px !important;
  padding-bottom: 0 !important;
  padding-left: 20px;
  border: none !important;
}

.team-category .category-title::after {
  display: none !important;
  content: none !important;
  border: none !important;
}

.team-category .category-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 70%;
  background: var(--color-secondary);
  border-radius: 2px;
  display: block !important;
}

.team-category .category-title .category-label {
  color: var(--color-primary);
}

/* チームカードグリッド（社会人・高校用） */
.team-grid {
  margin-bottom: 24px !important;
}

.team-grid:last-child {
  margin-bottom: 0 !important;
}

.team-grid.wp-block-columns {
  gap: 24px !important;
}

/* チームカード */
.team-card {
  background: var(--color-white);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  padding: 0 !important;
  margin: 0 !important;
}

.team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}

.team-card-empty {
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none;
}

.team-card-empty:hover {
  transform: none;
  box-shadow: none;
}

.team-card .team-image {
  margin: 0 !important;
  overflow: hidden;
}

.team-card .team-image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.team-card:hover .team-image img {
  transform: scale(1.05);
}

.team-card .team-name {
  margin: 0 !important;
  padding: 16px 20px;
  font-size: 1rem !important;
  font-weight: 600;
  color: var(--color-primary);
  text-align: center;
  background: var(--color-white);
  border-top: 1px solid #f0f0f0;
}

/* キッズチーム リストスタイル */
.kids-team-list {
  background: var(--color-white);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.kids-team-list li {
  display: flex;
  align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
  transition: background 0.25s ease;
  margin: 0 !important;
}

.kids-team-list li:last-child {
  border-bottom: none;
}

.kids-team-list li:hover {
  background: rgba(1, 52, 119, 0.02);
}

.kids-team-list li::before {
  content: '' !important;
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  background: var(--color-secondary) !important;
  border-radius: 50% !important;
  margin-right: 16px !important;
  flex-shrink: 0;
}

.kids-team-list .kids-team-name,
.kids-team-list .kids-team-name a{
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-primary);
  margin: 0;
}

/* ========================================
   13. レスポンシブ（モバイル 〜575px）
======================================== */
@media (max-width: 575.98px) {
  .accent p {
    font-size: 2.9rem !important;
    line-height: 1 !important;
  }

  section.accent p {
    line-height: 2 !important;
  }

  .top-cover .wp-block-cover__image-background.has-parallax {
    background-size: 500px;
    background-position: 100% 80% !important;
  }

  .ltg-slide-text-title {
    font-size: 14px;
    text-shadow: 0px 0px 10px #ffffff;
  }

  .ltg-slide-text-caption {
    font-size: 9px;
    text-shadow: 0px 0px 10px #ffffff;
  }

  .mobile-nav {
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 100;
    width: 100%;
    border-radius: 7px 7px 0px 0px;
    opacity: 0.8;
  }

  .mobile-nav a {
    white-space: nowrap;
  }

  .site-footer-copyright {
    padding-bottom: 10px;
  }

  .widget.widget_nav_menu .menu-footer-menu-container > ul#menu-footer-menu.menu {
    column-count: 2;
  }

  .wp-block-latest-posts.wp-block-latest-posts__list.news li {
    display: flex;
    flex-flow: column nowrap;
  }

  .wp-block-latest-posts__list li {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "image image"
      "date arrow"
      "title arrow"
      "excerpt arrow";
    gap: 8px 16px;
    padding: 16px;
  }

  .wp-block-latest-posts__featured-image {
    width: 100%;
    height: 180px;
    margin-bottom: 8px !important;
  }

  .wp-block-latest-posts__post-date {
    margin-bottom: 0;
  }

  .wp-block-latest-posts__post-title {
    font-size: 0.95rem;
    margin-bottom: 4px;
  }

  .wp-block-latest-posts__post-excerpt {
    font-size: 0.8rem;
    -webkit-line-clamp: 2;
  }

  .wp-block-latest-posts__list li::after {
    grid-row: 2 / 5;
    align-self: center;
  }

  .wp-block-post-template.is-layout-grid {
    grid-template-columns: 1fr !important;
    gap: 20px;
  }

  .officer-table table td:first-child {
    width: 80px;
    padding: 10px 12px;
    font-size: 0.8rem;
  }

  .officer-table table td:last-child {
    padding: 10px 12px;
    font-size: 0.8rem;
    line-height: 1.7;
  }

  .kids-team-list li {
    padding: 14px 16px;
  }

  .kids-team-list .kids-team-name {
    font-size: 0.9rem;
  }
}

/* ========================================
   14. レスポンシブ（タブレット 〜781px）
======================================== */
@media (max-width: 781px) {
  .wp-block-columns {
    flex-direction: column;
  }

  .wp-block-column[style*="flex-basis:240px"] {
    flex-basis: 100% !important;
    margin-bottom: 24px;
    text-align: center;
  }

  .wp-block-column[style*="flex-basis:240px"] .wp-block-image {
    max-width: 200px;
    margin: 0 auto;
  }

  .officer-table table td:first-child {
    width: 100px;
    padding: 12px 14px;
    font-size: 0.875rem;
  }

  .officer-table table td:last-child {
    padding: 12px 14px;
    font-size: 0.875rem;
  }

  .team-grid.wp-block-columns {
    flex-direction: column;
    gap: 20px !important;
  }

  .team-card {
    flex-basis: 100% !important;
  }

  .team-card-empty {
    display: none;
  }

  .team-card .team-image img {
    height: 200px;
  }

  .wp-block-post-template.is-layout-grid {
    gap: 24px;
  }

  .wp-block-post-template .wp-block-post {
    padding-bottom: 16px;
  }

  .wp-block-post-template .wp-block-post-title {
    font-size: 0.95rem !important;
    padding: 0 16px;
  }

  .wp-block-post-template .wp-block-post .wp-block-columns {
    padding: 0 16px;
  }

  .wp-block-post-template .wp-block-post .vk_block-margin-xs--margin-top {
    margin-top: 10px !important;
  }
}

/* ========================================
   15. レスポンシブ（タブレット 782px〜1023px）
======================================== */
@media (min-width: 782px) and (max-width: 1023px) {
  .team-grid.wp-block-columns {
    flex-wrap: wrap;
    gap: 20px !important;
  }

  .team-grid .team-card {
    flex: 0 0 calc(50% - 10px) !important;
    max-width: calc(50% - 10px);
  }

  .team-card-empty {
    display: none;
  }
}

/* ========================================
   16. レスポンシブ（〜991px）
======================================== */
@media (max-width: 991px) {
  .wp-block-latest-posts__list li {
    grid-template-columns: 180px 1fr auto;
    gap: 0 20px;
    padding: 20px;
  }

  .wp-block-latest-posts__featured-image {
    width: 180px;
    height: 120px;
  }

  .wp-block-latest-posts__post-title {
    font-size: 1rem;
  }

  .wp-block-latest-posts__list li::after {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
}

@media (max-width: 991.98px) {
  .global-nav .menu-item > a {
    padding: 16px 20px;
    border-bottom: 1px solid #f0f0f0;
  }

  .global-nav .menu-item > a::before {
    display: none;
  }

  .global-nav .menu-item > a:hover {
    background: rgba(1, 52, 119, 0.04);
    padding-left: 28px;
  }

  .global-nav .menu-item.current-menu-item > a,
  .global-nav .menu-item.current_page_item > a {
    border-left: 3px solid var(--color-secondary);
    background: rgba(1, 52, 119, 0.04);
  }
}

/* ========================================
   17. レスポンシブ（PC 992px〜）
======================================== */
@media (min-width: 992px) {
  .lightning_swiper {
    display: none;
  }

  .top-slide {
    display: block;
  }

  .site-header-container {
    display: flex;
    justify-content: center;
  }

  .global-nav--layout--float-right {
    margin: 0 auto;
    float: none;
  }

  .wp-block-media-text-block {
    position: relative;
  }

  .wp-block-media-text-block .wp-block-media-text {
    position: relative;
    margin-bottom: 100px;
    min-height: 600px;
  }

  .wp-block-media-text-block .wp-block-media-text .wp-block-media-text__content {
    box-shadow: 0 0 20px #999;
    position: absolute;
    background-color: rgba(255,255,255,0.85);
    top: 35vh;
    z-index: 1;
  }

  .wp-block-media-text-block:nth-child(2n) .wp-block-media-text .wp-block-media-text__content {
    right: 0;
    margin-left: 0;
    min-width: 65vw;
  }

  .wp-block-media-text-block .wp-block-group {
    width: 100%;
    height: 520px;
    position: absolute;
    top: 200px;
    background-color: #e07987;
  }

  .wp-block-media-text-block .wp-block-media-text .wp-block-media-text__media {
    margin-top: -100px;
  }
}

@media (min-width: 1024px) {
  .team-grid.wp-block-columns {
    gap: 24px !important;
  }

  .team-grid .team-card {
    flex: 1 1 0 !important;
  }
}

/* ========================================
   お問い合わせページ用スタイル
======================================== */
.contact-card {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  max-width: 600px;
  margin: 0 auto;
}

.contact-card .contact-btn .wp-block-button__link {
  background: var(--color-primary);
  font-weight: 600;
  transition: all 0.3s ease;
}

.contact-card .contact-btn .wp-block-button__link:hover {
  background: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(211, 114, 84, 0.4);
}

/* ========================================
   協賛企業ページ用スタイル
======================================== */
.sponsor-list {
  max-width: 1000px;
  margin: 0 auto;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px !important;
  align-items: stretch;
}

.sponsor-list > .wp-block-group.sponsor-card {
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}

.sponsor-card {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
}

.sponsor-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

/* 会社名の高さを固定（3行分確保） */
.sponsor-card h3.wp-block-heading {
  min-height: 3.6em !important;
  height: 3.6em !important;
  display: flex !important;
  align-items: flex-start !important;
  line-height: 1.4 !important;
  margin-bottom: 12px !important;
}

/* 説明文を伸縮させて高さを揃える */
.sponsor-card > p {
  flex-grow: 1;
}

.sponsor-card .wp-block-buttons {
  justify-content: center !important;
  margin-top: auto !important;
}

.sponsor-site-btn .wp-block-button__link {
  border: 2px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
  background: transparent !important;
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.3s ease;
}

.sponsor-site-btn .wp-block-button__link:hover {
  background: var(--color-primary) !important;
  color: #fff !important;
}

/* タブレット：2列 */
@media (max-width: 900px) {
  .sponsor-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ：1列 */
@media (max-width: 600px) {
  .sponsor-list {
    grid-template-columns: 1fr;
  }
  
  .sponsor-card h3.wp-block-heading {
    min-height: auto !important;
    height: auto !important;
  }
}

/* ========================================
   スマホ対応修正
======================================== */

/* ① スマホでヘッダーメニューを非表示 */
@media (max-width: 991.98px) {
  .global-nav {
    display: none !important;
  }
}

/* ② iOS Safari でカバー画像の固定背景対応 */
@supports (-webkit-touch-callout: none) {
  /* iOS Safari 検出 */
  .wp-block-cover.has-parallax,
  .wp-block-cover__image-background.has-parallax {
    background-attachment: scroll !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

/* iOS Safari 追加対応（タッチデバイス） */
@media (hover: none) and (pointer: coarse) {
  .wp-block-cover.has-parallax,
  .wp-block-cover__image-background.has-parallax {
    background-attachment: scroll !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

/* ========================================
   お知らせ一覧 リスト全体クリック対応
======================================== */

/* トップページ リスト */
.wp-block-latest-posts__list li {
  cursor: pointer;
  position: relative;
}

.wp-block-latest-posts__list li:hover {
  background: #f8f9fa;
}

.wp-block-latest-posts__list li:hover .wp-block-latest-posts__post-title {
  color: var(--color-secondary);
}

.wp-block-latest-posts__post-title::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.wp-block-latest-posts__featured-image a {
  position: relative;
  z-index: 2;
}

/* 固定ページ お知らせ一覧 */
.wp-block-post-template.columns-3 > .wp-block-post {
  cursor: pointer;
  position: relative;
}

.wp-block-post-template.columns-3 > .wp-block-post:hover .wp-block-post-title a {
  color: var(--color-secondary);
}

.wp-block-post-template.columns-3 .wp-block-post-title a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.wp-block-post-template.columns-3 .wp-block-post-featured-image a {
  position: relative;
  z-index: 2;
}

.wp-block-post-template.columns-3 .wp-block-post-terms a {
  position: relative;
  z-index: 2;
}

/* ========================================
   モバイル表示 矢印非表示・コンテンツ拡大
======================================== */

/* トップページ お知らせ一覧 */
@media (max-width: 575px) {
  .wp-block-latest-posts__list li {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "image"
      "date"
      "title"
      "excerpt";
    gap: 8px 0;
    padding: 16px;
  }

  .wp-block-latest-posts__list li::after {
    display: none !important;
  }

  .wp-block-latest-posts__featured-image {
    width: 100% !important;
    height: 200px !important;
    margin-bottom: 8px !important;
  }

  .wp-block-latest-posts__post-date {
    margin-bottom: 4px;
  }

  .wp-block-latest-posts__post-title {
    margin-bottom: 4px;
  }
}

/* 固定ページ お知らせ一覧 */
@media (max-width: 575px) {
  .wp-block-post-template.columns-3 > .wp-block-post {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "image"
      "title"
      "excerpt"
      "category";
    gap: 8px 0;
    padding: 16px;
  }

  .wp-block-post-template.columns-3 > .wp-block-post::after {
    display: none !important;
  }

  .wp-block-post-template.columns-3 .wp-block-post-featured-image {
    width: 100% !important;
    height: 200px !important;
    margin-bottom: 8px !important;
  }

  .wp-block-post-template.columns-3 .wp-block-post-title {
    font-size: 1rem !important;
  }

  .wp-block-post-template.columns-3 .wp-block-post-excerpt__excerpt {
    -webkit-line-clamp: 3;
  }

  .wp-block-post-template.columns-3 .wp-block-columns {
    margin-top: 8px !important;
  }
}

/* ========================================
   所在地カード
======================================== */
.location-card {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.location-card p {
  color: var(--color-primary);
  font-weight: 500;
  margin: 0;
}







