@charset "UTF-8";
/* ========== 新トップ専用CSS（重複統合・最終） ========== */

/* ---- 汎用 / 既存UI ---- */
.program-swiper{ width:100%; height:auto; }
.program-swiper .swiper-slide img{ width:100%; height:auto; display:block; }
.voice-one{ margin-bottom:2rem; }
.thumb-item img{ max-width:100%; height:auto; }

/* 余白ユーティリティ */
.mt-24{ margin-top:24px; } .mb-24{ margin-bottom:24px; } .px-16{ padding-left:16px; padding-right:16px; }
.drawer-is-open{ overflow:hidden; }

/* ========== HERO（トップ） ========== */
html, body{ margin:0; padding:0; }
.top-hero{ position:relative; z-index:0; margin:0!important; padding:0!important; line-height:0; }
.header + .top-hero, .container > .top-hero:first-child, .sec_w:first-child{ margin-top:0!important; }
.sec_w:first-child{ padding-top:0!important; }

/* テーマ側の上余白打ち消し（必要範囲のみ） */
body, #content, .container{ padding-top:0!important; }

/* スライダー本体 */
.top-swiper, .top-swiper .swiper-slide, .top-swiper .swiper-slide picture, .top-swiper .swiper-slide img{
  width:100%; height:100%; display:block;
}
.top-swiper{ width:100%; }
@media (max-width:767px){ .top-swiper{ height:100svh; } .top-swiper .swiper-slide img{ object-fit:cover; } }
@media (min-width:768px){
  .top-swiper{ height:100vh; }
  .top-swiper .swiper-slide img{ object-fit:cover; background-color:transparent; }
}

/* 左上ロゴ / 右下CTA */
.top-hero__logo{ position:absolute; top:12px; left:16px; z-index:20; line-height:0; }
.top-hero__logo img{ width:min(120px,12vw); height:auto; display:block; }
.top-hero__cta{ position:absolute; right:16px; bottom:16px; z-index:20; }

/* スマホ：トップ以外の横幅ガター復活 */
@media (max-width:767px){
  .sec_w,.container,.contents{ max-width:100%; margin-left:auto; margin-right:auto; padding-left:20px!important; padding-right:20px!important; box-sizing:border-box; }
  .row{ margin-left:0; margin-right:0; }
}

/* 見出しカラー補助 */
.highlight-title{ font-size:1.6em; color:#ff5810; font-weight:bold; }

/* new-2025 だけ PageTop を消す */
.page-template-new-2025-php #PageTopBtn,
.page-template-new-2025 #PageTopBtn{ display:none!important; }

/* Heroスライダー：ページネーション（左下／オレンジ） */
.top-swiper .swiper-pagination{
  position:absolute; left:16px; bottom:16px; text-align:left; z-index:25;
}
.top-swiper .swiper-pagination-bullet{
  width:10px; height:10px; margin:0 4px!important;
  background:rgba(255,88,16,.4); opacity:1;
}
.top-swiper .swiper-pagination-bullet-active{ background:#ff5810; }

/* ===== ヒーロー：キャッチ（フォント読込＆位置） ===== */
@font-face{
  font-family:'CineCaption';
  src:url('/wp-content/themes/default/assets/fonts/cinecaption226.ttf') format('truetype');
  font-display:swap;
}
.top-hero__catch{
  font-family:'CineCaption',"Noto Sans JP",sans-serif;
  position:absolute; left:50%; transform:translateX(-50%);
  top:22vh!important; /* PC */
  margin:0; padding:.4em .9em; color:#fff; font-weight:800;
  font-size:clamp(22px,3.2vw,56px); letter-spacing:.06em; line-height:1.25; text-align:center;
  text-shadow:0 6px 16px rgba(0,0,0,.65), 0 0 8px rgba(0,0,0,.8);
  z-index:30; pointer-events:none;
}
@media (max-width:991px){
  .top-hero__catch{ top:36vh!important; font-size:clamp(16px,5.2vw,22px); white-space:nowrap; }
}

/* Ken Burns（アクティブのみ） */
.top-swiper .swiper-slide img{ transform:scale(1); transform-origin:center; backface-visibility:hidden; will-change:transform; }
@media (prefers-reduced-motion:no-preference){
  .top-swiper .swiper-slide-active img,
  .top-swiper .swiper-slide-duplicate-active img{ animation:kenburns 8s ease-in-out forwards; }
}
@keyframes kenburns{ 0%{transform:scale(1);} 100%{transform:scale(1.1);} }

/* ヒーローを完全全幅に（親の余白を殺す） */
.top-hero, .top-swiper, .top-swiper .swiper-wrapper, .top-swiper .swiper-slide,
.top-swiper .swiper-slide picture, .top-swiper .swiper-slide img{
  width:100%!important; max-width:100%!important; margin:0!important; padding:0!important; display:block;
}
body .top-hero, body .top-swiper{ margin-left:0!important; margin-right:0!important; }
body .wrapper, body .container{ padding-left:0!important; padding-right:0!important; }

/* ================================
   Swiper 矢印：共通ベース
================================ */
.swiper-button-prev, .swiper-button-next{
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,88,16,.25);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
  transition:background .2s ease, transform .15s ease;
}
.swiper-button-prev::after, .swiper-button-next::after{
  font-size:20px; color:#FF5810; font-weight:800;
}
.swiper-button-prev:hover, .swiper-button-next:hover{ background:rgba(255,88,16,.38); transform:translateY(-1px); }
.swiper-button-disabled{ opacity:.35!important; }
/* SPは白矢印のみ＆丸消す */
@media (max-width:767px){
  .swiper-button-prev, .swiper-button-next{ background:none!important; box-shadow:none!important; width:40px; height:40px; }
  .swiper-button-prev::after, .swiper-button-next::after{ font-size:22px; color:#fff!important; font-weight:800; }
}

/* ================================
   PROGRAM：ドット／矢印
================================ */
.program-swiper .swiper-pagination-bullet{ background:rgba(255,140,50,.4); opacity:1; }
.program-swiper .swiper-pagination-bullet-active{ background:rgba(255,140,50,.9); }
/* PC（>=992px）：サイズ拡大＆オレンジのまま */
@media (min-width:992px){
  .program-swiper .swiper-button-prev, .program-swiper .swiper-button-next{ width:88px; height:88px; }
  .program-swiper .swiper-button-prev::after, .program-swiper .swiper-button-next::after{ font-size:36px; color:#FF5810; }
}

/* ================================
   GALLERY：PCは画像上に白矢印／2倍
================================ */
@media (min-width:992px){
  .gallery-main{ position:relative; max-width:1000px; margin:0 auto; }
  .gallery-main .swiper-button-prev, .gallery-main .swiper-button-next{
    position:absolute; top:50%; transform:translateY(-50%);
    width:88px; height:88px; z-index:5;
  }
  .gallery-main .swiper-button-prev{ left:12px; }
  .gallery-main .swiper-button-next{ right:12px; }
  .gallery-main .swiper-button-prev::after, .gallery-main .swiper-button-next::after{ font-size:36px; color:#fff; }
}

/* 既存の色指定の影響を無効化（保険） */
.program-swiper .swiper-button-prev, .program-swiper .swiper-button-next{ color:inherit; }

/* =============================
   選ばれる理由
============================= */
.reason-icon{ max-width:200px; height:auto; display:block; margin:0 auto 16px; }
@media (max-width:767px){ .reason-icon{ max-width:120px; margin:0 auto 12px; } }
.reason .highlight-title{ margin-top:0; margin-bottom:.5rem; }
.reason .row{ align-items:center; }
.reasons_box.no-border{ border:none; }
/* 下線削除（common.cssの装飾を打ち消し） */
.reasons_box a::before, .reasons_box a::after{ content:none!important; display:none!important; }
/* SPのボタン中央寄せ */
@media (max-width:767px){
  .reasons_box .brt{ display:block; margin:16px auto; text-align:center; }
}
/* PCだけ：理由アイコンをやや右寄せ＆サイズ150pxに調整 */
@media (min-width: 768px) {
  .reason-icon {
    max-width: 150px !important;
    margin-right: 60px; /* ← 好みで30〜80pxあたりを調整してOK */
  }
}


/* === 参加の流れ HOW TO JOIN =============================== */
.howtojoin{ margin:60px auto 80px; }
.howtojoin__head{ text-align:center; margin-bottom:30px; }
.howtojoin__head .sub{ font-size:.8em; color:#ff5810; margin-left:8px; }
.howtojoin__flow{ display:flex; justify-content:center; flex-wrap:wrap; gap:30px 50px; text-align:center; margin:40px auto; max-width:1100px; }
.howtojoin__item{ position:relative; max-width:180px; flex:1 1 140px; opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; will-change:opacity, transform; }
.howtojoin__item.is-visible{ opacity:1; transform:translateY(0); }
.howtojoin__iconwrap{ width:96px; height:96px; margin:0 auto 10px; display:flex; align-items:center; justify-content:center; }
.howtojoin__icon{ max-width:80px; height:auto; display:block; }
.howtojoin__step{ font-family:"Poppins",sans-serif; font-weight:700; color:#ff5810; margin:6px 0; letter-spacing:.03em; }
.howtojoin__text{ color:#ff5810; font-size:1.15rem; font-weight:700; margin:0; }
/* →（PC） */
.howtojoin__item:not(:last-child)::after{
  content:""; position:absolute; right:-35px; top:40%; transform:translateY(-50%);
  width:22px; height:22px; background:url("/wp-content/themes/default/assets/img/top-2025/icon-arrow.png") no-repeat center / contain;
}
/* ↓（SP） */
@media (max-width:767px){
  .howtojoin__flow{ flex-direction:column; align-items:center; gap:20px; }
  .howtojoin__item{ max-width:100%; }
  .howtojoin__iconwrap{ width:72px; height:72px; }
  .howtojoin__text{ font-size:1.05rem; }
  .howtojoin__item:not(:last-child)::after{
    position:static; display:block; margin:8px auto 0; width:18px; height:18px;
    background:url("/wp-content/themes/default/assets/img/top-2025/icon-arrow.png") no-repeat center / contain;
    transform:rotate(90deg);
    content:"";
  }
}

/* ================================
   VOICE（レイアウト＋フェード）
================================ */
:root{ --voice-fade-distance:18px; --voice-fade-duration:.7s; --voice-fade-ease:ease; }
.hsr-voice{ max-width:1520px; margin:0 auto; padding:24px 16px; }
.hsr-voice__header{ margin-bottom:24px; text-align:center; color:#ff5810; }
.hsr-voice__eyebrow{ margin:0; font-weight:800; letter-spacing:.06em; }
.hsr-voice__title{ margin:.4em 0 1.5em; font-size:1.25rem; color:#000; }
.hsr-voice__grid{ display:grid; grid-template-columns:1fr; gap:32px; margin-bottom:32px; }
@media (min-width:768px){ .hsr-voice__grid{ grid-template-columns:repeat(2,1fr); } }
.hsr-voice__thumb{ display:block; width:100%; }
.hsr-voice__thumb img{ display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; background:#f2f2f2; }
.hsr-voice__card-title{ margin:.6em 0 .3em; font-size:1.125rem; color:#000; }
.hsr-voice__excerpt{ margin:0 0 1em; font-size:1rem; line-height:1.8; color:#000; }
.hsr-voice__link{ position:relative; text-decoration:none; font-weight:600; color:#ff5810; }
.hsr-voice__link::after{ position:absolute; left:0; bottom:-2px; content:""; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.hsr-voice__link:hover::after{ transform:scaleX(1); }
.hsr-voice__cta{ text-align:center; margin-top:8px; }
.hsr-voice__button{ display:inline-block; min-width:220px; padding:14px 32px; border-radius:6px; font-weight:700; text-decoration:none; background:linear-gradient(135deg,#ff5e13,#ff7c1a); color:#fff; transition:transform .2s, opacity .2s; }
.hsr-voice__button:hover{ transform:translateY(-2px); opacity:.9; }
/* フェード */
.js-observe.fadeup{ transform:translateY(var(--voice-fade-distance)); opacity:0; transition:opacity var(--voice-fade-duration) var(--voice-fade-ease), transform var(--voice-fade-duration) var(--voice-fade-ease); will-change:opacity,transform; }
.js-observe.fadeup.animate{ transform:translateY(0); opacity:1; }

/* ================================
   写真でみる（SP余白・はみ出し防止）
================================ */
.photos-wrap{ max-width:1520px; margin:0 auto; padding:0 16px; }
.photos-wrap .row{ margin-left:0; margin-right:0; }
.photos__img{ display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; background:#f2f2f2; border-radius:8px; }
.photos__txt{ margin:12px 0 0; line-height:1.75; }
@media (min-width:768px){ .photos-wrap{ padding:0 24px; } }

/* ================================
   CTA DUO（フルブリード＋背景アイコン）
================================ */
.cta-duo-area{
  position:relative; padding-top:96px; overflow:hidden;
  background-color:#f9f9f8;
  --bg:url("/wp-content/themes/default/assets/img/top-2025/icon-background.png");
  /* フルブリード */
  width:100vw; margin-left:50%; transform:translateX(-50%);
}
.cta-duo{ display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:0 20px 64px; max-width:1120px; margin:0 auto; }
.cta-card{ text-align:center; color:#003366; }
.cta-lead{ color:#003366; font-weight:700; font-size:18px; margin:0 0 8px; line-height:1.45; }
.cta-note{ margin:10px 0 0; font-size:14px; color:#003366; }
.cta-btn{
  position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:12px;
  width:100%; max-width:660px; min-height:86px; padding:16px 24px; border-radius:9999px; color:#fff; text-decoration:none;
  box-shadow:0 6px 0 rgba(0,0,0,.55), 0 14px 22px rgba(0,0,0,.25); font-weight:800; font-size:26px; letter-spacing:.02em;
  transition:transform .15s, box-shadow .2s, filter .2s;
}
.cta-btn:hover{ transform:translateY(-3px); box-shadow:0 8px 0 rgba(0,0,0,.55), 0 18px 26px rgba(0,0,0,.28); filter:saturate(1.06); }
.cta-btn:active{ transform:translateY(0); box-shadow:0 6px 0 rgba(0,0,0,.55), 0 14px 22px rgba(0,0,0,.25); }
.cta-btn .cta-icon{ width:46px; height:auto; flex:0 0 auto; }
/* LINE / セミナー */
.cta-btn--line{ background:linear-gradient(90deg,#00ae32 0%,#00c346 30%,#1fd760 60%,#5ef29a 100%); background-size:200% 100%; animation:grad-move 4s linear infinite; }
.cta-btn--seminar{ background:linear-gradient(135deg,#ffd08a 0%,#ffb347 18%,#ff9b2a 35%,#ff881c 52%,#ff7a12 70%,#eb6100 100%); background-size:200% 100%; animation:grad-move-seminar 6s ease-in-out infinite alternate; }
@keyframes grad-move{ 0%{background-position:0% 50%} 100%{background-position:100% 50%} }
@keyframes grad-move-seminar{ 0%{background-position:0% 50%} 100%{background-position:100% 50%} }
/* きらーん */
.cta-btn::after{
  content:""; position:absolute; top:-120%; left:-30%; width:60%; height:340%; transform:rotate(25deg);
  background:linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,.35), rgba(255,255,255,0)); opacity:0; pointer-events:none;
}
.cta-btn:hover::after{ animation:shine .8s ease; }
.cta-btn.shine-once::after{ animation:shine .8s ease 0s 1 both; }
@keyframes shine{ 0%{left:-30%;opacity:0} 10%{opacity:.9} 100%{left:130%;opacity:0} }
@media (prefers-reduced-motion:reduce){ .cta-btn, .cta-btn *{ animation:none!important; transition:none!important; } }
/* 背景アイコンバリアント */
.cta-duo-area.bg-single-left{
  background-image:var(--bg); background-repeat:no-repeat;
  background-position:left -20px bottom -20px; background-size:60px auto;
}
.cta-duo-area.bg-double-grad{
  background-image:var(--bg), var(--bg);
  background-repeat:no-repeat,no-repeat;
  background-position:left -20px bottom -20px, right -30px top -30px;
  background-size:80px auto, 200px auto;
}
/* モバイル調整 */
@media (max-width:991px){
  .cta-duo{ grid-template-columns:1fr; gap:26px; padding:0 16px 56px; }
  .cta-btn{ font-size:22px; min-height:78px; }
  .cta-btn .cta-icon{ width:38px; }
  .cta-lead{ font-size:16px; margin-bottom:6px; }
  .cta-note{ font-size:13px; }
  .cta-duo-area.bg-single-left{ background-size:100px auto; background-position:left -12px bottom -12px; }
  .cta-duo-area.bg-double-grad{
    background-position:left -12px bottom -12px, right -18px top -18px;
    background-size:100px auto, 160px auto;
  }
}
/* CTAが1個だけのとき中央寄せ */
.cta-duo:has(> .cta-card:only-child){ display:flex; justify-content:center; }
.cta-duo:has(> .cta-card:only-child) .cta-card{ max-width:660px; flex:1 1 auto; }
/* SP最適化（極小幅） */
@media (max-width:480px){
  .cta-btn{ font-size:19px; min-height:68px; padding:14px 16px; gap:10px; white-space:normal; }
  .cta-btn .cta-icon{ width:32px; }
  .cta-btn .cta-btn__text{ line-height:1.25; overflow-wrap:anywhere; }
}

/* ========== 数字でみる 旅ぼら（2025） ========== */
@supports (background:conic-gradient(#000 0 0)){
  @property --p{ syntax:'<number>'; initial-value:0; inherits:false; }
}
.stats2025{ padding:40px 0; background:transparent; }
.stats2025__title{ font-size:clamp(22px,3.6vw,28px); margin:0 0 20px; color:#E56500; letter-spacing:.04em; }
.stats2025__hdg{ font-size:clamp(16px,2.6vw,18px); margin:0 0 10px; color:#DD6000; text-align:center; }
/* 色統一 */
.stats2025, .stats2025 *{ color:#E56500; } .stats2025 .pie, .stats2025 .pie *{ color:#fff; }
/* カード装飾OFF */
.stats2025__card{ background:transparent; border:0; padding:0; margin:0; }
/* レイアウト */
.stats2025__inner{ max-width:1120px; margin:0 auto; padding:0 16px; }
.stats2025__left, .stats2025__right{ display:grid; gap:16px; }
@media (min-width:960px){
  .stats2025__inner{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
  .stats2025__left{ order:1; } .stats2025__right{ order:2; }
}
/* パネル背景 */
.stats2025__left, .stats2025__right{
  border:0; border-radius:0!important; padding:24px; box-sizing:border-box; overflow:hidden;
}
.stats2025__left{ background:#fff; }
.stats2025__right{ background:#FFF5ED!important; }
/* 内側カードリセット */
.stats2025__left .stats2025__card, .stats2025__right .stats2025__card{
  background:transparent!important; border:0!important; padding:0!important; margin:0 0 24px!important;
}
.stats2025__left .stats2025__card:last-child, .stats2025__right .stats2025__card:last-child{ margin-bottom:0!important; }

/* Pie */
.pie{ --p:0; --goal:0; --fg:#E56500; --bg:#F6EFEA; width:220px; max-width:100%; aspect-ratio:1; border-radius:50%;
  margin-inline:auto; background:conic-gradient(var(--fg) calc(var(--p)*1%), var(--bg) 0); display:grid; place-items:center; font-weight:700; }
.pie.animate{ animation:pie-fill 1.2s ease-out forwards; }
@keyframes pie-fill{ to{ --p:var(--goal); } }
.pie figcaption{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:60%; text-align:center; transform:translateY(20%); }
.pie .t{ font-size:1.2em; margin-bottom:6px; font-weight:600; } .pie .v{ font-size:2.8em; font-weight:900; line-height:1; }

/* 基本ブロック */
.ratio{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ratio__item{ display:flex; align-items:center; gap:8px; } .ratio__label{ font-weight:700; } .ratio__val{ font-size:20px; }
.attr{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:0; list-style:none; }
.attr__li{ display:grid; place-items:center; text-align:center; gap:6px; }
.kpi{ display:grid; gap:16px; }
.kpi__item{ background:#FFF; border:1px dashed #F0D9C9; border-radius:12px; padding:12px; }
.kpi__num{ font-size:36px; line-height:1; color:#E56500; } .kpi__num--big{ font-size:40px; }
.kpi__txt{ display:block; font-size:14px; }

/* 棒グラフ */
.bars{ display:grid; grid-auto-flow:column; gap:8px; align-items:end; height:140px; margin:8px 0 0; padding:12px; list-style:none; background:#FFEFE4; border-radius:12px; overflow:hidden; }
.bars li{ width:16px; height:0; background:#E56500; border-radius:4px 4px 0 0; transition:height .8s ease-out; }
.bars.animate li{ height:calc(var(--v)*1%); }
.bars.animate li:nth-child(1){ transition-delay:.05s; } .bars.animate li:nth-child(2){ transition-delay:.10s; }
.bars.animate li:nth-child(3){ transition-delay:.15s; } .bars.animate li:nth-child(4){ transition-delay:.20s; }
.bars.animate li:nth-child(5){ transition-delay:.25s; } .bars.animate li:nth-child(6){ transition-delay:.30s; }
.bars.animate li:nth-child(7){ transition-delay:.35s; } .bars.animate li:nth-child(8){ transition-delay:.40s; }
.bars.animate li:nth-child(9){ transition-delay:.45s; } .bars.animate li:nth-child(10){ transition-delay:.50s; }

/* 学校 */
.school{ display:flex; align-items:center; gap:16px; }
.school__num{ font-size:40px; color:#E56500; line-height:1; }
.school__txt{ font-size:16px; }

/* 男女比（アイコンマトリクス） */
.ratio2__header{ display:grid; grid-template-columns:1fr 1fr; max-width:360px; margin:0 auto 4px; }
.ratio2__col{ text-align:center; }
.ratio2__label{ font-size:22px; font-weight:800; color:#E56500; }
.ratio2__val{ font-size:48px; font-weight:900; color:#E56500; }
.ratio2__label--male, .ratio2__val--male{ color:#003366; }
.ratio2__grid{ display:grid; grid-template-columns:repeat(5,58px); grid-auto-rows:58px; gap:14px; justify-content:center; margin:20px auto 0; padding:0; list-style:none; }
.ratio2__grid img{ width:100%; height:auto; display:block; }
.ratio2__grid li{ opacity:0; transform:scale(.5); }
.ratio2__grid.animate li{ animation:icon-pop .4s ease forwards; }
.ratio2__grid.animate li:nth-child(1){ animation-delay:.1s; } .ratio2__grid.animate li:nth-child(2){ animation-delay:.2s; }
.ratio2__grid.animate li:nth-child(3){ animation-delay:.3s; } .ratio2__grid.animate li:nth-child(4){ animation-delay:.4s; }
.ratio2__grid.animate li:nth-child(5){ animation-delay:.5s; } .ratio2__grid.animate li:nth-child(6){ animation-delay:.6s; }
.ratio2__grid.animate li:nth-child(7){ animation-delay:.7s; } .ratio2__grid.animate li:nth-child(8){ animation-delay:.8s; }
.ratio2__grid.animate li:nth-child(9){ animation-delay:.9s; } .ratio2__grid.animate li:nth-child(10){ animation-delay:1.0s; }
@keyframes icon-pop{ to{ opacity:1; transform:scale(1); } }
/* スマホ縮小 */
@media (max-width:480px){
  .ratio2__grid{ width:min(100%,300px); margin-left:auto; margin-right:auto; grid-template-columns:repeat(5,1fr); grid-auto-rows:auto; gap:8px; }
  .ratio2__grid li{ overflow:hidden; }
  .ratio2__label{ font-size:16px; } .ratio2__val{ font-size:28px; }
}

/* 属性（大学生ぶち抜き） */
.attr-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:auto; gap:24px 28px;
  width:min(100%,520px); margin-inline:auto; justify-items:center; box-sizing:border-box;
}
.attr-item, .attr-item.big{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.attr-item.big{ grid-column:1 / -1; }
.attr-item img{ width:114px; height:auto; display:block; }
.attr-item.big img{ width:156px; height:auto; }
.attr-item span{ font-size:1.2em; font-weight:700; margin-top:6px; }
.attr-item.big span{ font-size:1.4em; font-weight:800; margin-top:8px; }
@media (max-width:480px){
  .attr-grid{ width:min(100%,360px); gap:18px 20px; }
  .attr-item img{ width:94px; } .attr-item.big img{ width:130px; }
}

/* ぽよっとポップ共通 */
.js-pop{ opacity:0; transform:translateY(12px) scale(.92); will-change:transform,opacity; }
.js-pop.is-animate{ animation:popIn .45s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes popIn{ 60%{ opacity:1; transform:translateY(-2px) scale(1.02); } 100%{ opacity:1; transform:translateY(0) scale(1); } }
/* ディレイ例 */
.attr-grid .attr-item.big.js-pop.is-animate{ animation-delay:.06s; }
.attr-grid .attr-item:nth-of-type(2).js-pop.is-animate{ animation-delay:.14s; }
.attr-grid .attr-item:nth-of-type(3).js-pop.is-animate{ animation-delay:.22s; }
.ratio2__grid li.js-pop.is-animate:nth-child(1){ animation-delay:.06s; }
.ratio2__grid li.js-pop.is-animate:nth-child(10){ animation-delay:.60s; }
.stats2025__hdg.js-pop.is-animate{ animation-delay:.04s; }
/* 動き最小化 */
@media (prefers-reduced-motion:reduce){
  .js-pop, .js-pop.is-animate, .ratio2__grid li, .ratio2__grid.animate li{ animation:none!important; opacity:1!important; transform:none!important; }
}

/* PCで左右等高＆右カラムの内側ギャップ増やす */
@media (min-width:960px){
  .stats2025__inner{ display:grid!important; grid-template-columns:1fr 1fr!important; gap:24px!important; align-items:stretch!important; }
  .stats2025__left, .stats2025__right{ align-self:stretch!important; height:auto!important; }
  .stats2025__right{
    background:#FFF5ED!important; border:0!important; border-radius:0!important; padding:32px!important;
    display:grid!important; gap:32px!important;
  }
  .stats2025__right .kpi{ display:grid; gap:24px; }
  .stats2025__right .kpi__item{ margin:0!important; }
}

/* 右カラムの数字やアイコンを特大に */
.stats2025__right .kpi__num, .stats2025__right .school__num{
  font-size:72px; font-weight:900; line-height:1.1; text-align:center; display:block; margin-bottom:8px;
}
.stats2025__right .school img{ width:160px; height:auto; display:block; margin:0 auto 12px; }
.stats2025__right, .stats2025__right *{ font-weight:800; text-align:center; }
.kpi__label{ font-size:20px; font-weight:700; margin-bottom:4px; color:#E56500; text-align:center; }
.stats2025__right .kpi__item{ display:block; margin-bottom:24px; text-align:center; }
.kpi--row{ display:flex!important; align-items:center; justify-content:center; gap:16px; }
.kpi__icon-big{ width:72px; height:auto; flex-shrink:0; }
.stats2025__right .kpi__txt{ display:block; font-size:18px; font-weight:700; margin-top:4px; }
.kpi__block{ text-align:left; }

/* ==== SPみきれ総合対策（≤480px） ==== */
@media (max-width:480px){
  .stats2025__inner{ padding-left:12px; padding-right:12px; }
  .stats2025__right{ padding:20px!important; }
  .stats2025__right .kpi__num, .stats2025__right .school__num{ font-size:44px; line-height:1.1; }
  .stats2025__right .kpi__txt{ font-size:15px; }
  .stats2025__right .kpi__item{ margin-bottom:18px; }
  .kpi__icon-big{ width:54px; }
  .kpi--row{ flex-wrap:wrap; gap:10px; text-align:center; }
  .kpi__block{ text-align:center; }
  .school{ flex-wrap:wrap; justify-content:center; gap:10px; text-align:center; }
  .stats2025__right .school img{ width:120px; margin:0 auto 6px; }
  /* 属性（一般アイコン）右端切れ対策 */
  .attr-grid{ width:min(100%,340px); margin-inline:auto; padding:0 4px; gap:16px 16px; box-sizing:border-box; }
  .attr-item img{ width:92px; } .attr-item.big img{ width:126px; }
  /* 棒グラフの内側詰め＆棒を細く */
  .bars{ box-sizing:border-box; width:100%; max-width:100%; padding:8px; gap:6px; margin-right:0; }
  .bars li{ width:12px; }
}
/* 〜360pxさらに圧縮 */
@media (max-width:360px){
  .ratio2__grid{ width:min(100%,260px); gap:6px; }
  .stats2025__right .kpi__num, .stats2025__right .school__num{ font-size:38px; }
  .attr-grid{ width:min(100%,300px); gap:14px 14px; }
  .attr-item img{ width:84px; } .attr-item.big img{ width:112px; }
  .bars{ padding:6px; gap:4px; } .bars li{ width:10px; }
}

/* ==============================
   写真ギャラリー基礎
============================== */
.gallery-main, .gallery-thumb{ width:100%; }
.gallery-main .swiper-wrapper, .gallery-thumb .swiper-wrapper{ align-items:center; }
.gallery-main .swiper-slide{ display:flex; justify-content:center; }
.gallery-main .swiper-slide img{ display:block; width:100%; height:auto; max-width:1000px; }
.gallery-thumb{ padding-top:8px; }
.gallery-thumb .swiper-slide{ width:auto; opacity:.6; cursor:pointer; }
.gallery-thumb .swiper-slide-thumb-active{ opacity:1; }
.gallery-thumb .swiper-slide img{ display:block; height:64px; width:auto; }
@media (min-width:576px){ .gallery-thumb .swiper-slide img{ height:72px; } }
@media (min-width:992px){ .gallery-thumb .swiper-slide img{ height:80px; } }

/* ==============================
   トップスワイプ
============================== */

/* --- Swiper の土台を強制復活（ヒーロー）--- */
.top-swiper { position: relative; overflow: hidden; }
.top-swiper .swiper-wrapper { display: flex !important; width: 100%; height: 100%; }
.top-swiper .swiper-slide { flex-shrink: 0; width: 100%; height: 100%; }

/* fadeエフェクトを使っている場合の保険（なくても動くが念のため） */
.swiper-fade .swiper-slide { transition-property: opacity; pointer-events: none; }
.swiper-fade .swiper-slide-active,
.swiper-fade .swiper-slide-duplicate-active { pointer-events: auto; }
