:root{
  --blue:#005BAC;          /* メインブルー */
  --blue-dark:#003F7E;
  --blue-deep:#082B4E;     /* フッター等の深い紺 */
  --blue-bright:#00A0E9;   /* 明るいアクセントブルー */
  --blue-pale:#EEF6FC;     /* 薄い背景ブルー */
  --yellow:#FFD23C;        /* 体験ボタン用アクセント */
  --ink:#26313D;
  --muted:#6B7A89;
  --line:#E1ECF6;
  --radius:14px;
  --shadow-sm:0 2px 10px rgba(8,43,78,.06);
  --shadow-md:0 10px 30px rgba(8,43,78,.12);
  --grad:linear-gradient(120deg,var(--blue) 0%,var(--blue-bright) 100%);
  --en:'Montserrat','Noto Sans JP',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:#fff;line-height:2;font-size:15px;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}

/* ===== scroll reveal ===== */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
.rv.vis{opacity:1;transform:none;}

/* ===== header ===== */
.sns-ico{width:14px;height:14px;flex:none;}
.h-sns{display:flex;align-items:center;gap:14px;}
.h-sns a{display:inline-flex;color:#fff;transition:color .2s;}
.h-sns a:hover{color:var(--yellow);}
.h-sns .sns-ico{width:19px;height:19px;}
header.main{background:var(--blue-deep);border-bottom:1px solid rgba(255,255,255,.12);position:sticky;top:0;z-index:100;}
.h-in{max-width:1140px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:20px;}
.logo{display:flex;align-items:center;gap:11px;font-weight:900;color:#fff;font-size:1.12rem;line-height:1.3;letter-spacing:.02em;}
.logo img{width:44px;height:44px;border-radius:10px;object-fit:cover;}
.logo small{display:block;font-size:.58rem;font-weight:700;color:var(--blue-bright);letter-spacing:.16em;font-family:var(--en);}
nav.g{margin-left:auto;display:flex;gap:2px;}
nav.g a{position:relative;font-size:.8rem;font-weight:700;padding:10px 12px;color:#C6D9EA;white-space:nowrap;}
nav.g a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
nav.g a:hover,nav.g a.on{color:#fff;}
nav.g a:hover::after,nav.g a.on::after{transform:scaleX(1);}
.h-btn{background:var(--grad);color:#fff;font-weight:700;font-size:.82rem;padding:12px 26px;border-radius:999px;white-space:nowrap;box-shadow:0 6px 16px rgba(0,91,172,.28);transition:transform .2s ease,box-shadow .2s ease;}
.h-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,91,172,.35);}
.menu-toggle{display:none;background:none;border:0;font-size:1.7rem;color:#fff;cursor:pointer;margin-left:auto;}

/* ===== hero slider (top page) ===== */
.hero{position:relative;}
.hero .slides{overflow:hidden;}
.hero .slide .cap{top:0;display:flex;align-items:center;background:linear-gradient(rgba(8,43,78,.18),rgba(8,43,78,.6));padding:20px;}
.hero .slide .cap h1{width:fit-content;max-width:100%;margin:0 auto;font-size:clamp(1.4rem,3.4vw,2.4rem);line-height:1.85;text-shadow:0 3px 20px rgba(8,43,78,.6);}
.hero .slide .cap p{max-width:1100px;margin:4px auto 0;}
.slides{display:flex;transition:transform .7s cubic-bezier(.6,.05,.25,1);}
.slide{min-width:100%;position:relative;}
.slide img{width:100%;height:480px;object-fit:cover;background:var(--blue-pale);}
.slide .cap{
  position:absolute;left:0;bottom:0;right:0;
  background:linear-gradient(transparent,rgba(8,43,78,.88));
  color:#fff;padding:90px 36px 30px;
}
.slide .cap h1{font-size:clamp(1.3rem,3.2vw,2.1rem);font-weight:900;line-height:1.6;letter-spacing:.02em;text-shadow:0 2px 12px rgba(8,43,78,.4);}
.slide .cap p{font-size:.88rem;font-weight:500;opacity:.92;margin-top:4px;}
/* ヒーロー表示演出（トップページ）: 画像が出たあと文字がじんわりフェードイン */
.hero .slide img{animation:heroImgIn 1.2s ease-out both;}
.hero .slide .cap{animation:heroCapIn 1s ease-out .6s both;}
.hero .slide .cap .cap-part{display:inline-block;animation:heroTextIn 2s ease-out 1s both;}
/* 2行目「諦めない気持ちから」だけ1.2倍で強調する */
/* 2行目は全角1文字下げ（1.2倍のため1/1.2≒.83em）、3行目は2行目の「い」の位置（1+3×1.2＝4.6em）まで段下げ */
.hero .slide .cap .cap-part:nth-of-type(2){font-size:1.2em;padding-left:.83em;animation-delay:2.2s;}
.hero .slide .cap .cap-part:nth-of-type(3){padding-left:4.6em;animation-delay:3.4s;}
@keyframes heroImgIn{from{opacity:0;transform:scale(1.06);}to{opacity:1;transform:scale(1);}}
@keyframes heroCapIn{from{opacity:0;}to{opacity:1;}}
@keyframes heroTextIn{from{opacity:0;transform:translateY(18px);filter:blur(8px);}to{opacity:1;transform:translateY(0);filter:blur(0);}}
.dots{position:absolute;bottom:18px;right:40px;display:flex;gap:8px;}
.dots button{width:22px;height:5px;border-radius:999px;border:0;background:rgba(255,255,255,.45);cursor:pointer;padding:0;transition:background .3s,width .3s;}
.dots button.on{background:var(--yellow);width:34px;}

/* ===== page hero (sub pages) ===== */
.page-hero{position:relative;background:var(--blue-deep) center/cover no-repeat;overflow:hidden;}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,91,172,.7) 0%,rgba(0,160,233,.35) 55%,#fff 95%);}
/* 直後が薄青背景（.bg-pale）のページはグラデーションの終端色も薄青にして境目をなくす */
.page-hero:has(+ .bg-pale)::before{background:linear-gradient(180deg,rgba(0,91,172,.7) 0%,rgba(0,160,233,.35) 55%,var(--blue-pale) 95%);}
/* ヒーロー直後のセクションは上余白なしで、画像の終わりのすぐ下から本文を始める */
.page-hero + section,.page-hero + .bg-pale section{padding-top:0;}
.page-hero .in{position:relative;max-width:1140px;margin:0 auto;padding:0 20px;height:380px;display:flex;flex-direction:column;justify-content:center;color:#fff;}
.page-hero h1,.page-hero p{text-shadow:0 2px 12px rgba(8,43,78,.45);}
.page-hero .en{display:block;font-family:var(--en);font-size:.72rem;font-weight:700;letter-spacing:.34em;color:var(--yellow);margin-bottom:10px;}
.page-hero h1{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900;line-height:1.4;letter-spacing:.02em;}
.page-hero p{font-size:.9rem;margin-top:10px;opacity:.9;}

/* ===== campaign slider (top page / microCMS) — 3枚ずつ表示して横に流れる ===== */
.camp-slider{--camp-per:3;--camp-gap:0px;position:relative;max-width:1140px;margin:24px auto 0;padding:0 20px;}
.camp-track{display:flex;align-items:flex-start;gap:var(--camp-gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:6px 0 10px;}
.camp-track::-webkit-scrollbar{display:none;}
.camp-card{flex:0 0 calc((100% - var(--camp-gap) * (var(--camp-per) - 1)) / var(--camp-per));scroll-snap-align:start;display:block;overflow:hidden;transition:opacity .2s;}
a.camp-card:hover{opacity:.85;}
/* 画像は縦横比を固定せず元の比率のまま表示する（縦長バナーもトリミングされない） */
.camp-card img{display:block;width:100%;height:auto;}
.camp-arrow{position:absolute;top:50%;transform:translateY(-60%);width:42px;height:42px;border-radius:50%;border:0;background:#fff;color:var(--blue);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(8,43,78,.22);transition:background .2s,color .2s;}
.camp-arrow:hover{background:var(--blue);color:#fff;}
.camp-arrow.prev{left:0;}
.camp-arrow.next{right:0;}
.camp-dots{display:flex;justify-content:center;gap:8px;margin-top:4px;min-height:6px;}
.camp-dots button{width:22px;height:6px;border-radius:999px;border:0;background:rgba(0,91,172,.25);cursor:pointer;padding:0;transition:background .3s,width .3s;}
.camp-dots button.on{background:var(--blue);width:34px;}

/* ===== sections ===== */
section{max-width:1140px;margin:0 auto;padding:84px 20px;}
h2.sec{font-size:clamp(1.45rem,3vw,1.95rem);font-weight:900;color:var(--blue-dark);letter-spacing:.02em;line-height:1.5;margin-bottom:44px;}
h2.sec small{display:block;font-family:var(--en);font-size:.72rem;color:var(--blue-bright);letter-spacing:.3em;font-weight:700;margin-bottom:6px;}
h2.sec::after{content:"";display:block;width:52px;height:4px;border-radius:4px;background:var(--grad);margin-top:14px;}
h3.sub{font-size:1.1rem;font-weight:900;color:var(--blue-dark);margin:40px 0 22px;padding-left:14px;border-left:4px solid var(--blue-bright);line-height:1.6;}
.bg-pale{background:linear-gradient(180deg,var(--blue-pale),#F7FBFE);}
.bg-pale section{background:transparent;}
.link-btn{display:inline-block;background:#fff;border:2px solid var(--blue);color:var(--blue);font-weight:700;font-size:.85rem;padding:11px 34px;border-radius:999px;transition:all .2s;}
.link-btn:hover{background:var(--blue);color:#fff;box-shadow:0 8px 18px rgba(0,91,172,.25);transform:translateY(-2px);}
.note{font-size:.78rem;color:var(--muted);}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;}
.about-grid .imgs{display:grid;gap:16px;}
.about-grid .imgs img{border-radius:var(--radius);height:300px;width:100%;object-fit:cover;background:var(--blue-pale);box-shadow:var(--shadow-sm);}
.about-grid .txt p{margin-bottom:18px;font-size:.95rem;}
.about-grid .catch{font-size:clamp(1.1rem,2.4vw,1.4rem);font-weight:900;color:var(--blue);margin-bottom:16px;line-height:1.7;}

/* policy / notice item */
.policy-lead{display:grid;grid-template-columns:1fr 360px;gap:36px;align-items:center;margin-bottom:36px;}
.policy-lead img{border-radius:var(--radius);width:100%;height:240px;object-fit:cover;background:#fff;box-shadow:var(--shadow-sm);}
.policy-lead .head{font-size:1.25rem;font-weight:900;color:var(--blue-dark);margin-bottom:10px;}
.policy-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px;margin-bottom:18px;box-shadow:var(--shadow-sm);}
.policy-item h3{display:flex;align-items:center;color:var(--blue-dark);font-size:1.05rem;font-weight:900;margin-bottom:12px;line-height:1.6;}
.policy-item h3 .num{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;font-size:.85rem;margin-right:12px;font-family:var(--en);}
.policy-item p{font-size:.9rem;}
.notice-list li{padding-left:1.4em;position:relative;font-size:.88rem;margin-bottom:8px;}
.notice-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue-bright);position:absolute;left:2px;top:.85em;}
.notice-list li.warn{color:#C0392B;font-weight:700;}
.notice-list li.warn::before{background:#C0392B;}

/* news */
.news-list li{border-bottom:1px solid var(--line);}
.news-list a{display:flex;gap:18px;align-items:baseline;padding:18px 10px;font-size:.9rem;flex-wrap:wrap;border-radius:10px;transition:background .2s;}
.news-list a:hover{background:var(--blue-pale);}
.news-list .date{color:var(--muted);font-size:.78rem;white-space:nowrap;font-family:var(--en);letter-spacing:.04em;}
.news-list .cat{background:var(--blue);color:#fff;font-size:.66rem;padding:3px 14px;border-radius:999px;white-space:nowrap;}
.news-list .cat.rep{background:var(--blue-bright);}

/* instructor featured */
.inst{display:grid;grid-template-columns:340px 1fr;gap:40px;align-items:start;}
.inst img{border-radius:var(--radius);width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--blue-pale);box-shadow:var(--shadow-md);}
.inst.compact{grid-template-columns:200px 1fr;align-items:center;}
.inst.compact img{max-width:200px;margin-inline:auto;}
.inst .name{font-size:1.4rem;font-weight:900;color:var(--blue-dark);line-height:1.5;}
.inst .role{font-size:.82rem;color:var(--blue-bright);font-weight:700;margin-bottom:16px;}
.inst dl{border-top:1px solid var(--line);}
.inst dt{background:var(--blue-pale);color:var(--blue-dark);font-weight:700;font-size:.85rem;padding:10px 16px;margin-top:16px;border-radius:8px;}
.inst dd{padding:12px 16px;font-size:.9rem;}
.badge{display:inline-block;background:var(--blue-deep);color:#fff;font-size:.66rem;font-weight:700;padding:4px 14px;border-radius:999px;margin-bottom:8px;letter-spacing:.06em;}
.ruby{font-size:.68rem;color:var(--blue-bright);font-weight:700;letter-spacing:.22em;}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;}
.chip{background:var(--blue-pale);color:var(--blue);font-size:.72rem;font-weight:700;padding:3px 14px;border-radius:999px;}
.works{background:var(--blue-pale);border-radius:12px;padding:18px 20px;margin-top:20px;}
.works h4{font-size:.8rem;color:var(--blue-dark);font-weight:900;margin-bottom:6px;letter-spacing:.04em;}
.works li{font-size:.8rem;padding-left:1em;position:relative;line-height:1.9;}
.works li::before{content:"・";position:absolute;left:0;color:var(--blue-bright);}
.quote{margin-top:14px;font-size:.82rem;color:var(--muted);border-left:3px solid var(--yellow);padding-left:12px;line-height:1.9;}

/* instructor cards（写真と名前のみ。<button> でタップするとプロフィールをモーダル表示） */
.inst-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.inst-card{display:block;width:100%;padding:0;font:inherit;color:inherit;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;}
.inst-card[data-inst]{cursor:pointer;} /* プロフィールがある講師だけタップ可能（浮き上がりも同様） */
.inst-card[data-inst]:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.inst-card>img{display:block;width:200px;max-width:calc(100% - 32px);aspect-ratio:1/1;object-fit:cover;background:var(--blue-pale);border-radius:var(--radius);margin:24px auto 0;box-shadow:var(--shadow-md);}
.inst-card .bd{padding:18px 16px 22px;}
.inst-card h3{font-size:1.15rem;color:var(--blue-dark);font-weight:900;}
.inst-card .more{display:inline-block;margin-top:10px;color:var(--blue-bright);font-size:.76rem;font-weight:700;}
.inst-card .more::after{content:" ›";}
/* instructor profile modal（.modal は共通） */
.inst-modal-img{display:block;width:200px;aspect-ratio:1/1;object-fit:cover;background:var(--blue-pale);border-radius:var(--radius);margin:32px auto 0;box-shadow:var(--shadow-md);}
.inst-modal-inner{padding:20px 28px 30px;}
.inst-modal-inner h2{font-size:1.3rem;color:var(--blue-dark);font-weight:900;margin-bottom:10px;line-height:1.5;}
.inst-modal-inner .bio{font-size:.88rem;line-height:1.9;}

/* lineup（トップ・レッスン内容ページ共通。LessonLineup.astro） */
.lineup{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.lineup a,.lineup .lineup-cat{display:block;width:100%;padding:0;font:inherit;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-align:center;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;}
/* 同じ段でタイルの高さがそろうとき、<button> は中身を上下中央に寄せて白い余白が出るため、
   縦並びのflexにして写真を上端に固定し、名前の欄で残りの高さを埋める */
.lineup .lineup-cat{display:flex;flex-direction:column;}
.lineup .lineup-cat img{flex:none;}
.lineup .lineup-cat .nm{flex:1;}
.lineup a:hover,.lineup .lineup-cat:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.lineup img{height:130px;width:100%;object-fit:cover;background:var(--blue-pale);transition:transform .4s ease;}
.lineup a:hover img,.lineup .lineup-cat:hover img{transform:scale(1.06);}
.lineup .lineup-cat.active{border-color:var(--blue-bright);box-shadow:var(--shadow-md);}
.lineup .lineup-cat.active .nm{color:#fff;background:var(--blue);}
.lineup .lineup-cat.active .nm small{color:rgba(255,255,255,.85);}
.lineup .lineup-cat .nm::after{content:"▼";display:block;font-size:.6rem;margin-top:6px;color:var(--blue-bright);}
.lineup .lineup-cat.active .nm::after{content:"▲";color:#fff;}
.cat-panel{margin-top:24px;padding:24px;background:var(--blue-pale);border-radius:var(--radius);}
.lineup .nm{font-weight:900;color:var(--blue);font-size:.9rem;padding:14px 8px;display:block;position:relative;background:#fff;word-break:keep-all;overflow-wrap:anywhere;} /* keep-all：スマホで「…クラ／ス」のように1文字だけ次の行に落ちるのを防ぐ */
.lineup .nm small{display:block;font-weight:500;color:var(--muted);font-size:.7rem;}

/* lesson cards */
.l-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.l-grid.two{grid-template-columns:repeat(2,1fr);max-width:760px;} /* カード2枚だけのカテゴリ（コアラーズ紹介ページ） */
.l-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;}
.l-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.l-card img{height:160px;width:100%;object-fit:cover;background:var(--blue-pale);transition:transform .4s ease;}
.l-card:hover img{transform:scale(1.06);}
.l-card .bd{padding:16px 18px 18px;background:#fff;position:relative;}
.l-card h3{color:var(--blue-dark);font-size:1rem;font-weight:900;margin:8px 0 4px;line-height:1.6;}
.l-card .more{color:var(--blue-bright);font-size:.78rem;font-weight:700;}
.tagchip{display:inline-block;background:var(--blue);color:#fff;font-size:.68rem;font-weight:700;padding:3px 12px;border-radius:999px;}
.tagchip.dark{background:var(--blue-deep);}
.tagchip.pink{background:#D6337F;}   /* 女性限定など */
.tagchip + .tagchip{margin-left:6px;}

/* modal */
.modal{position:fixed;inset:0;background:rgba(8,43,78,.66);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:none;align-items:center;justify-content:center;padding:20px;}
.modal.open{display:flex;}
.modal-panel{position:relative;background:#fff;border-radius:18px;max-width:640px;width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(8,43,78,.4);}
.modal-close{position:absolute;top:12px;right:12px;z-index:2;background:rgba(8,43,78,.75);color:#fff;border:0;width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;transition:background .2s;}
.modal-close:hover{background:var(--blue-bright);}
.modal-body{overflow-y:auto;}
.modal-foot{padding:14px 24px 20px;border-top:1px solid var(--line);text-align:center;}
.modal-foot .h-btn{display:inline-block;}
.lesson-hero-img{width:100%;height:230px;object-fit:cover;background:var(--blue-pale);}
.lesson-modal-inner{padding:22px 26px 28px;}
.lesson-modal-class-head h2{color:var(--blue-dark);font-size:1.3rem;font-weight:900;margin-top:8px;line-height:1.5;}
.lesson-info-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--blue-pale);border-radius:12px;padding:14px 16px;margin:16px 0;}
.lesson-info-label{display:block;font-family:var(--en);font-size:.6rem;color:var(--blue-bright);font-weight:700;letter-spacing:.18em;}
.lesson-info-value{font-size:.8rem;font-weight:700;color:var(--blue-dark);}
.lesson-lead{font-size:.9rem;margin-bottom:16px;}
.lesson-points{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:18px;background:#FAFCFE;}
.lesson-points h4{color:var(--blue);font-size:.85rem;font-weight:900;margin-bottom:6px;}
.lesson-points li{font-size:.85rem;padding-left:1.5em;position:relative;line-height:1.9;}
.lesson-points li::before{content:"✔";color:var(--blue-bright);font-weight:900;position:absolute;left:0;}
.nb{display:inline-block;}  /* 途中で改行させたくない語句のかたまり */
.lesson-price-section h3{font-size:.95rem;font-weight:900;color:var(--blue-dark);border-left:4px solid var(--blue-bright);padding-left:10px;margin-bottom:12px;line-height:1.6;}
.lesson-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.lp-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:.8rem;gap:8px;}
.lp-item .lp-val{font-weight:900;color:var(--blue-dark);white-space:nowrap;}
.lp-item.accent{background:var(--blue-pale);border-color:var(--blue-bright);}

/* plans */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.plan{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;}
.plan:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.plan .num{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-family:var(--en);margin-bottom:12px;}
.plan h4{color:var(--blue-dark);font-weight:900;margin-bottom:8px;font-size:1rem;}
.plan p{font-size:.82rem;line-height:1.9;}

/* price table */
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
table.price{width:100%;min-width:820px;border-collapse:collapse;font-size:.85rem;}
table.price th{background:var(--blue-dark);color:#fff;padding:14px 8px;font-size:.78rem;font-weight:700;border:1px solid rgba(255,255,255,.15);}
table.price td{border:1px solid var(--line);padding:12px 10px;text-align:center;}
table.price td:first-child{text-align:left;font-weight:700;color:var(--blue-dark);}
table.price tbody tr:nth-child(odd) td{background:#F8FBFE;}
.price-notes{background:var(--blue-pale);border-radius:var(--radius);padding:20px 26px;margin-top:24px;}
.price-notes p{font-size:.85rem;}
.price-notes .alert{color:#C0392B;font-weight:700;}

/* steps */
.steps{counter-reset:st;max-width:780px;margin:0 auto;}
.steps li{counter-increment:st;position:relative;padding:20px 22px 20px 76px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;font-size:.9rem;box-shadow:var(--shadow-sm);}
.steps li::before{content:counter(st);position:absolute;left:18px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-family:var(--en);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,91,172,.3);}

/* faq */
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow-sm);}
.faq summary{padding:18px 48px 18px 20px;font-weight:700;color:var(--blue-dark);cursor:pointer;list-style:none;position:relative;transition:background .2s;}
.faq summary:hover{background:var(--blue-pale);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q.";font-family:var(--en);color:var(--blue-bright);font-weight:700;margin-right:10px;}
.faq summary::after{content:"＋";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--blue-bright);font-weight:900;transition:transform .2s;}
.faq details[open] summary{border-bottom:1px dashed var(--line);}
.faq details[open] summary::after{content:"−";}
.faq details p{padding:16px 20px;font-size:.88rem;}

/* access */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch;}
.access-dl{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.access-dl>div{display:grid;grid-template-columns:135px 1fr;border-bottom:1px solid var(--line);}
.access-dl>div:last-child{border-bottom:0;}
.access-dl dt{background:var(--blue-pale);color:var(--blue-dark);font-weight:700;font-size:.85rem;padding:14px 16px;}
.access-dl dd{padding:14px 16px;font-size:.88rem;}
.map-embed{border-radius:var(--radius);overflow:hidden;min-height:300px;height:100%;background:var(--blue-pale);box-shadow:var(--shadow-sm);}
.map-embed iframe{display:block;width:100%;height:100%;min-height:300px;border:0;}
.tel-link{color:var(--blue);font-weight:700;font-family:var(--en);font-size:1.05rem;letter-spacing:.04em;}
.tel-box{max-width:780px;margin:36px auto 0;padding:26px 22px;text-align:center;background:var(--blue-pale);border:2px solid var(--blue-bright);border-radius:var(--radius);}
.tel-box-ttl{font-weight:900;color:var(--blue-dark);font-size:1rem;margin-bottom:6px;}
.tel-box-num{display:inline-block;color:var(--blue);font-family:var(--en);font-weight:700;font-size:clamp(1.6rem,5vw,2.1rem);letter-spacing:.06em;line-height:1.4;}
.tel-box-num::before{content:"TEL";font-size:.5em;margin-right:.5em;vertical-align:middle;color:var(--blue-bright);letter-spacing:.2em;}
.tel-box-note{font-size:.8rem;color:var(--muted);margin-top:4px;}

/* features (about) */
.feature{display:grid;grid-template-columns:1fr 400px;gap:36px;align-items:center;margin-bottom:56px;}
.feature.rev{grid-template-columns:400px 1fr;}
.feature.rev .txt{order:2;}
.feature img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius);background:var(--blue-pale);box-shadow:var(--shadow-md);}
.f-lead{display:flex;align-items:flex-start;font-size:clamp(1.05rem,2.2vw,1.3rem);font-weight:900;color:var(--blue-dark);margin-bottom:14px;line-height:1.7;}
.f-num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--grad);color:#fff;border-radius:50%;margin-right:12px;font-size:.9rem;font-family:var(--en);flex:none;margin-top:2px;}
.feature .txt p{font-size:.9rem;margin-bottom:12px;}

/* schedule */
.poster{max-width:620px;margin:0 auto 38px;text-align:center;}
#annual .poster{margin-bottom:0;}
/* 年間スケジュール（画像）。schedule/index.astro。画像自体は .poster を流用 */
.annual-lead{max-width:820px;margin:-8px auto 24px;font-size:.9rem;line-height:1.9;white-space:pre-line;} /* microCMSの補足（note）は改行をそのまま活かす */
.plan-link{margin-top:10px;font-size:.82rem;}
.plan-link a{color:var(--blue);font-weight:700;text-decoration:underline;}
.poster img{height:auto;border:1px solid var(--line);border-radius:var(--radius);margin:0 auto;box-shadow:var(--shadow-sm);} /* height:auto … width/height属性つきの画像が縦に引き伸ばされないように */
.sched-hint{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;background:var(--blue-pale);border-left:4px solid var(--blue);border-radius:10px;font-size:.95rem;font-weight:700;color:var(--blue-dark);line-height:1.5;}
.sched-hint .tap{flex:none;padding:3px 10px;border-radius:999px;background:var(--blue);color:#fff;font-family:var(--en);font-size:.7rem;font-weight:700;letter-spacing:.12em;}
.sched-tabs{display:none;gap:6px;margin-bottom:16px;}
.sched-tab-btn{flex:1;padding:10px 0;border:1px solid var(--line);background:#fff;border-radius:10px;font-weight:900;cursor:pointer;color:var(--ink);font-size:.9rem;transition:all .2s;}
.sched-tab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 10px rgba(0,91,172,.3);}
.sched-tab-btn.sat.active{background:var(--blue-bright);border-color:var(--blue-bright);}
.sched-tab-btn.sun.active{background:#E0554D;border-color:#E0554D;}
.sched-outer{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow-sm);}
.sched-wrap{display:flex;}
.sched-time-col{width:44px;flex:none;position:relative;}
.sched-time-label{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:#000;font-weight:700;font-family:var(--en);}
.sched-days{display:flex;flex:1;min-width:0;gap:6px;}
.sched-day-col{flex:1;min-width:0;position:relative;}
/* 曜日は黒丸に白文字、各曜日の列は黒枠（スケジュール表ポスターに合わせた配色） */
.sched-day-hdr{width:28px;height:28px;margin:4px auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.85rem;background:#000;color:#fff;}
.sched-hours{position:absolute;top:36px;left:0;right:0;bottom:0;pointer-events:none;box-shadow:inset 0 0 0 3px #000;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hpx) - 1px),var(--line) calc(var(--hpx) - 1px),var(--line) var(--hpx));}
.sched-block{position:absolute;border-radius:12px;color:#fff;padding:4px 6px;overflow:hidden;font-size:10px;line-height:1.25;text-align:center;display:flex;flex-direction:column;align-items:center;
  --ol-white:1px 0 #fff,-1px 0 #fff,0 1px #fff,0 -1px #fff,1px 1px #fff,-1px -1px #fff,1px -1px #fff,-1px 1px #fff,0 0 3px #fff;
  --ol-black:1px 0 #000,-1px 0 #000,0 1px #000,0 -1px #000,1px 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;}
.sched-block.clickable{cursor:pointer;transition:filter .15s,transform .15s;}
.sched-block.clickable:hover{filter:brightness(1.12);}
/* 時間は上端、クラス名は残りの高さの中央に置く。文字サイズは列幅に合わせて可変 */
.sb-time{display:block;flex:none;font-size:clamp(10px,1.05vw,12px);font-weight:700;font-family:var(--en);}
.sb-name{font-weight:900;font-size:clamp(12px,1.3vw,15px);display:block;margin:auto 0;}
.sb-ol{color:#000;text-shadow:var(--ol-white);}                 /* 黒文字＋白フチ */
/* クラス別の背景・枠・文字色 */
.c-bakuten{background:#ED5A29;}
.c-elementary{background:#96F661;border:2px solid #000;color:#000;}
.c-toddler{background:#5ABA3A;color:#000;}
.c-cheer{background:#EA55AE;border:2px solid #000;color:#000;}
.c-cheer-team{background:#DD3122;border:1px solid #000;}
.c-sp{background:#C2B13A;border:2px solid #000;color:#000;}
.c-tumbling-sp{background:#A180C5;border:2px solid #000;}
.c-tumbling-sp .sb-time{color:#000;}
.c-aerial{background:#56C1B2;border:2px solid #000;color:#000;}
.c-kids{background:#83A4D9;border:2px solid #000;color:#000;}
.c-kids .sb-name{color:#F03CC4;text-shadow:var(--ol-black);}
.c-adult{background:#521D88;}
.c-private,.c-mantoman{background:#B5B1AF;border:2px solid #F4F292;color:#000;}
.c-mantoman .sb-time{color:#fff;}
.c-elementary .sb-name,.c-toddler .sb-name,.c-aerial .sb-name,.c-adult .sb-name{color:#000;text-shadow:var(--ol-white);}

/* trial banner */
.trial{position:relative;overflow:hidden;background:linear-gradient(130deg,var(--blue-dark) 0%,var(--blue) 45%,var(--blue-bright) 100%);border-radius:22px;color:#fff;text-align:center;padding:64px 28px;box-shadow:var(--shadow-md);}
.trial::before{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.07);top:-160px;left:-110px;}
.trial::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.06);bottom:-130px;right:-80px;}
.trial>*{position:relative;z-index:1;}
.trial h2{font-size:clamp(1.35rem,3.2vw,2rem);font-weight:900;margin-bottom:10px;letter-spacing:.02em;}
.trial p{font-size:.92rem;margin-bottom:30px;opacity:.92;}
.trial .btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.trial .big{background:var(--yellow);color:var(--blue-dark);font-weight:900;font-size:1.05rem;padding:17px 48px;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.22);display:inline-block;transition:transform .2s,box-shadow .2s;}
.trial .big:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.28);}
.trial .ghost{border:2px solid rgba(255,255,255,.85);color:#fff;font-weight:700;font-size:.9rem;padding:16px 34px;border-radius:999px;display:inline-block;transition:background .2s;}
.trial .ghost:hover{background:rgba(255,255,255,.15);}

/* footer */
footer{background:var(--blue-deep);color:#AFC8DE;margin-top:64px;font-size:.82rem;}
.f-in{max-width:1140px;margin:0 auto;padding:48px 20px 30px;}
.f-nav{display:flex;flex-wrap:wrap;gap:6px 26px;margin-bottom:22px;}
.f-nav a{font-weight:500;transition:color .2s;}
.f-nav a:hover{color:#fff;}
.f-sns a{display:inline-flex;align-items:center;gap:6px;margin-right:20px;font-weight:700;color:#fff;font-family:var(--en);letter-spacing:.04em;}
.f-sns .sns-ico{width:16px;height:16px;}
.f-sns a:hover{color:var(--yellow);}
.f-info{margin-top:20px;line-height:1.9;}
.f-tel a{color:#fff;font-weight:700;font-family:var(--en);letter-spacing:.04em;margin-left:.4em;}
.f-btm{border-top:1px solid rgba(255,255,255,.14);margin-top:24px;padding-top:18px;font-size:.75rem;opacity:.85;}

/* fixed bottom CTA（体験申し込み・当日予約電話・アクセス） */
body{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
.fixed-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(3,1fr);background:var(--blue-deep);box-shadow:0 -4px 16px rgba(8,43,78,.2);padding-bottom:env(safe-area-inset-bottom);}
.fixed-cta a{display:flex;align-items:center;justify-content:center;gap:8px;height:64px;color:#fff;font-weight:700;font-size:.9rem;line-height:1.3;text-align:center;transition:background .2s;}
.fixed-cta a+a{border-left:1px solid rgba(255,255,255,.14);}
.fixed-cta a:hover{background:var(--blue);}
.fixed-cta a.fc-trial{background:var(--yellow);color:var(--blue-dark);}
.fixed-cta a.fc-trial:hover{background:#FFC400;}
.fixed-cta a.fc-tel{background:var(--blue);}
.fixed-cta a.fc-tel:hover{background:var(--blue-dark);}
.fixed-cta svg{width:20px;height:20px;flex:none;}

/* ===== responsive ===== */
@media(max-width:960px){
  nav.g{display:none;position:absolute;top:100%;left:0;right:0;background:var(--blue-deep);flex-direction:column;border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 20px 30px rgba(8,43,78,.3);gap:0;}
  nav.g.open{display:flex;}
  nav.g a{border-top:1px solid rgba(255,255,255,.12);padding:15px 22px;}
  nav.g a::after{display:none;}
  nav.g a.on{background:rgba(255,255,255,.1);color:#fff;}
  .menu-toggle{display:block;margin-left:0;}
  .h-in .h-btn{display:none;}
  .h-sns{margin-left:auto;gap:12px;}
  .camp-slider{--camp-per:2;padding:0 12px;}
  .camp-arrow{display:none;}
  .slide img{height:320px;}
  .slide .cap{padding:60px 22px 22px;}
  .hero .slide .cap{padding:20px;}
  .dots{right:28px;}
  .page-hero .in{height:250px;}
  .about-grid,.policy-lead,.inst,.inst.compact,.access-grid{grid-template-columns:1fr;}
  .about-grid .imgs img{height:auto;aspect-ratio:3/2;max-height:420px;}
  .feature,.feature.rev{grid-template-columns:1fr;}
  .feature.rev .txt{order:0;}
  .feature img{height:220px;}
  .lineup{grid-template-columns:repeat(2,1fr);}
  .l-grid{grid-template-columns:repeat(2,1fr);}
  .inst-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .plans{grid-template-columns:repeat(2,1fr);}
  section{padding:56px 16px;}
  .fixed-cta a{flex-direction:column;gap:2px;font-size:.74rem;}
  .fixed-cta svg{width:18px;height:18px;}
}
@media(max-width:899px){
  .sched-tabs{display:flex;}
  .sched-day-col{display:none;}
  .sched-day-col.active{display:block;}
  .sb-time{font-size:13px;}
  .sb-name{font-size:17px;}
}
@media(max-width:600px){
  /* ヒーロー見出し3行のうち最長行（3行目：段下げ込みで全角約14文字分）が必ず1行に収まる文字サイズにする */
  .hero .slide .cap h1{font-size:min(1.35rem,calc((100vw - 48px)/15));}
  .l-grid,.l-grid.two{grid-template-columns:1fr;}
  .plans{grid-template-columns:1fr;}
  .lesson-price-grid{grid-template-columns:1fr;}
  .lesson-info-bar{grid-template-columns:1fr 1fr;}
  .access-dl>div{grid-template-columns:105px 1fr;}
  .trial{padding:48px 20px;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;}
  .slides{transition:none;}
  .rv{opacity:1;transform:none;}
}

/* ===== news（お知らせ一覧・記事詳細） ===== */
.news-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.news-card{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;transition:box-shadow .2s,transform .2s;}
.news-card:hover{box-shadow:0 10px 28px rgba(0,91,172,.15);transform:translateY(-3px);}
.news-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;}
.news-card-noimg{width:100%;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--blue-pale);color:var(--blue);font-family:var(--en);font-weight:700;letter-spacing:.2em;font-size:.8rem;}
.news-card .date{display:block;padding:14px 16px 0;color:var(--muted);font-size:.76rem;font-family:var(--en);letter-spacing:.04em;}
.news-card .ttl{display:block;padding:6px 16px 18px;font-size:.92rem;font-weight:700;line-height:1.6;}
.news-article{max-width:800px;margin:0 auto;padding:56px 20px 40px;}
.news-article .date{color:var(--muted);font-size:.82rem;font-family:var(--en);letter-spacing:.04em;}
.news-article h1{font-size:clamp(1.4rem,3.4vw,1.9rem);font-weight:900;line-height:1.5;margin:8px 0 26px;}
.news-article-thumb{width:100%;border-radius:14px;margin-bottom:30px;display:block;}
.news-body{line-height:2;font-size:.95rem;}
.news-body p{margin-bottom:1.2em;}
.news-body h2{font-size:1.2rem;font-weight:700;margin:1.8em 0 .8em;padding-left:12px;border-left:4px solid var(--blue);}
.news-body h3{font-size:1.05rem;font-weight:700;margin:1.5em 0 .6em;}
.news-body img{max-width:100%;height:auto;border-radius:12px;margin:10px 0;}
.news-body a{color:var(--blue);font-weight:700;text-decoration:underline;}
.news-body ul,.news-body ol{padding-left:1.5em;margin-bottom:1.2em;}
.news-back{text-align:center;margin-top:44px;}
@media(max-width:900px){
  .news-cards{grid-template-columns:repeat(2,1fr);gap:16px;}
}
@media(max-width:600px){
  .news-cards{grid-template-columns:1fr;}
}

/* ===== koalas（チアチーム紹介ページ専用・.k- 接頭辞） ===== */
.k-page{--k-navy:#0F305A;--k-gold:#F7BC14;--k-pink:#FF6FA8;--k-en:'Jost','Montserrat',sans-serif;overflow:hidden;margin-bottom:-64px;}
.k-sp{display:none;}
.k-link{color:var(--blue);font-weight:700;text-decoration:underline;}
.k-narrow{max-width:820px;margin:0 auto;}
/* 大きな英字タイトル＋日本語サブタイトル */
.k-ttl{margin-bottom:44px;line-height:1.2;}
.k-ttl.center{text-align:center;}
.k-ttl .en{display:block;font-family:var(--k-en);font-style:italic;font-weight:700;font-size:clamp(2.7rem,8.5vw,5.4rem);line-height:1;letter-spacing:.01em;color:var(--blue);text-shadow:.05em .05em 0 var(--yellow);}
.k-ttl .ja{display:inline-block;margin-top:14px;font-size:1rem;font-weight:900;color:var(--blue-dark);letter-spacing:.12em;padding:2px 18px;border-radius:999px;background:var(--yellow);}
.k-ttl.onblue .en{color:#fff;text-shadow:.05em .05em 0 var(--k-pink);}
.k-head{font-size:clamp(1.25rem,2.8vw,1.7rem);font-weight:900;color:var(--blue-dark);line-height:1.6;margin-bottom:16px;}
.k-note{font-size:.8rem;color:var(--muted);margin-top:10px;}
/* 飾り（星・ポンポン） */
.k-star{position:absolute;width:44px;height:44px;background:var(--yellow);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);pointer-events:none;}
.k-pom{position:absolute;width:150px;height:150px;border-radius:50%;background:repeating-conic-gradient(var(--yellow) 0 9deg,transparent 9deg 18deg);opacity:.9;pointer-events:none;-webkit-mask:radial-gradient(circle,#000 35%,transparent 71%);mask:radial-gradient(circle,#000 35%,transparent 71%);animation:kSpin 40s linear infinite;}
@keyframes kSpin{to{transform:rotate(360deg);}}
/* team badge（右上固定のロゴ＋キャラクター。外側の白を透過したPNGを使用） */
.k-badge{position:fixed;z-index:95;top:124px;right:22px;display:block;animation:kUp .9s ease-out .3s both;}
.k-badge-in{position:relative;display:flex;align-items:flex-start;justify-content:center;width:150px;height:150px;border-radius:50%;background:#fff;border:4px solid var(--k-gold);box-shadow:0 8px 22px rgba(8,43,78,.28);transform-origin:100% 0;transition:transform .35s ease;}
.k-badge .ch{width:66%;height:auto;margin-top:3%;}
.k-badge .lg{position:absolute;left:50%;bottom:-34%;width:108%;max-width:none;height:auto;transform:translateX(-50%) rotate(-4deg);filter:drop-shadow(0 3px 6px rgba(8,43,78,.3));}
/* 縮小は内側に掛ける（外側は登場アニメーションが transform を保持するため） */
.k-badge.small .k-badge-in{transform:scale(.56);}
.k-badge:hover .k-badge-in{border-color:var(--k-navy);}
/* hero slider */
.k-hero{position:relative;height:min(62vw,600px);background:var(--blue-pale);}
.k-hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease;}
.k-hero-slides img.on{opacity:1;}
.k-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,91,172,.12) 0%,rgba(0,91,172,0) 45%,rgba(255,255,255,.0) 70%,#fff 100%);pointer-events:none;}
.k-hero-dots{position:absolute;right:28px;bottom:26%;z-index:2;display:flex;flex-direction:column;gap:8px;}
.k-hero-dots button{width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(8,43,78,.35);}
.k-hero-dots button.on{background:var(--yellow);border-color:var(--yellow);}
/* title banner（ヒーロー下端に重ねる） */
.k-banner{position:relative;z-index:2;max-width:1140px;margin:-13% auto 0;padding:0 20px;}
.k-banner-en{font-family:var(--k-en);font-style:italic;font-weight:700;line-height:.95;}
/* ロゴ（Koalas CHEER）と同じ配色: 白文字＋紺のフチ＋ゴールドの外フチ。フチは text-shadow を円状に重ねて作る（先に書いた影ほど手前） */
.k-banner-en span{display:block;font-size:clamp(3.6rem,15vw,11rem);letter-spacing:.03em;color:#fff;text-shadow:0.040em 0.000em 0 var(--k-navy),0.039em 0.010em 0 var(--k-navy),0.035em 0.020em 0 var(--k-navy),0.028em 0.028em 0 var(--k-navy),0.020em 0.035em 0 var(--k-navy),0.010em 0.039em 0 var(--k-navy),0.000em 0.040em 0 var(--k-navy),-0.010em 0.039em 0 var(--k-navy),-0.020em 0.035em 0 var(--k-navy),-0.028em 0.028em 0 var(--k-navy),-0.035em 0.020em 0 var(--k-navy),-0.039em 0.010em 0 var(--k-navy),-0.040em 0.000em 0 var(--k-navy),-0.039em -0.010em 0 var(--k-navy),-0.035em -0.020em 0 var(--k-navy),-0.028em -0.028em 0 var(--k-navy),-0.020em -0.035em 0 var(--k-navy),-0.010em -0.039em 0 var(--k-navy),-0.000em -0.040em 0 var(--k-navy),0.010em -0.039em 0 var(--k-navy),0.020em -0.035em 0 var(--k-navy),0.028em -0.028em 0 var(--k-navy),0.035em -0.020em 0 var(--k-navy),0.039em -0.010em 0 var(--k-navy),0.022em 0.000em 0 var(--k-navy),0.019em 0.011em 0 var(--k-navy),0.011em 0.019em 0 var(--k-navy),0.000em 0.022em 0 var(--k-navy),-0.011em 0.019em 0 var(--k-navy),-0.019em 0.011em 0 var(--k-navy),-0.022em 0.000em 0 var(--k-navy),-0.019em -0.011em 0 var(--k-navy),-0.011em -0.019em 0 var(--k-navy),-0.000em -0.022em 0 var(--k-navy),0.011em -0.019em 0 var(--k-navy),0.019em -0.011em 0 var(--k-navy),0.078em 0.000em 0 var(--k-gold),0.075em 0.020em 0 var(--k-gold),0.068em 0.039em 0 var(--k-gold),0.055em 0.055em 0 var(--k-gold),0.039em 0.068em 0 var(--k-gold),0.020em 0.075em 0 var(--k-gold),0.000em 0.078em 0 var(--k-gold),-0.020em 0.075em 0 var(--k-gold),-0.039em 0.068em 0 var(--k-gold),-0.055em 0.055em 0 var(--k-gold),-0.068em 0.039em 0 var(--k-gold),-0.075em 0.020em 0 var(--k-gold),-0.078em 0.000em 0 var(--k-gold),-0.075em -0.020em 0 var(--k-gold),-0.068em -0.039em 0 var(--k-gold),-0.055em -0.055em 0 var(--k-gold),-0.039em -0.068em 0 var(--k-gold),-0.020em -0.075em 0 var(--k-gold),-0.000em -0.078em 0 var(--k-gold),0.020em -0.075em 0 var(--k-gold),0.039em -0.068em 0 var(--k-gold),0.055em -0.055em 0 var(--k-gold),0.068em -0.039em 0 var(--k-gold),0.075em -0.020em 0 var(--k-gold),0.060em 0.000em 0 var(--k-gold),0.058em 0.016em 0 var(--k-gold),0.052em 0.030em 0 var(--k-gold),0.042em 0.042em 0 var(--k-gold),0.030em 0.052em 0 var(--k-gold),0.016em 0.058em 0 var(--k-gold),0.000em 0.060em 0 var(--k-gold),-0.016em 0.058em 0 var(--k-gold),-0.030em 0.052em 0 var(--k-gold),-0.042em 0.042em 0 var(--k-gold),-0.052em 0.030em 0 var(--k-gold),-0.058em 0.016em 0 var(--k-gold),-0.060em 0.000em 0 var(--k-gold),-0.058em -0.016em 0 var(--k-gold),-0.052em -0.030em 0 var(--k-gold),-0.042em -0.042em 0 var(--k-gold),-0.030em -0.052em 0 var(--k-gold),-0.016em -0.058em 0 var(--k-gold),-0.000em -0.060em 0 var(--k-gold),0.016em -0.058em 0 var(--k-gold),0.030em -0.052em 0 var(--k-gold),0.042em -0.042em 0 var(--k-gold),0.052em -0.030em 0 var(--k-gold),0.058em -0.016em 0 var(--k-gold),.1em .12em .06em rgba(15,48,90,.22);animation:kUp 1s ease-out both;}
.k-banner-en .sm{font-size:clamp(1.5rem,5.6vw,4rem);letter-spacing:.04em;color:var(--k-gold);text-shadow:0.075em 0.000em 0 var(--k-navy),0.072em 0.019em 0 var(--k-navy),0.065em 0.037em 0 var(--k-navy),0.053em 0.053em 0 var(--k-navy),0.038em 0.065em 0 var(--k-navy),0.019em 0.072em 0 var(--k-navy),0.000em 0.075em 0 var(--k-navy),-0.019em 0.072em 0 var(--k-navy),-0.037em 0.065em 0 var(--k-navy),-0.053em 0.053em 0 var(--k-navy),-0.065em 0.037em 0 var(--k-navy),-0.072em 0.019em 0 var(--k-navy),-0.075em 0.000em 0 var(--k-navy),-0.072em -0.019em 0 var(--k-navy),-0.065em -0.037em 0 var(--k-navy),-0.053em -0.053em 0 var(--k-navy),-0.038em -0.065em 0 var(--k-navy),-0.019em -0.072em 0 var(--k-navy),-0.000em -0.075em 0 var(--k-navy),0.019em -0.072em 0 var(--k-navy),0.038em -0.065em 0 var(--k-navy),0.053em -0.053em 0 var(--k-navy),0.065em -0.038em 0 var(--k-navy),0.072em -0.019em 0 var(--k-navy),0.040em 0.000em 0 var(--k-navy),0.035em 0.020em 0 var(--k-navy),0.020em 0.035em 0 var(--k-navy),0.000em 0.040em 0 var(--k-navy),-0.020em 0.035em 0 var(--k-navy),-0.035em 0.020em 0 var(--k-navy),-0.040em 0.000em 0 var(--k-navy),-0.035em -0.020em 0 var(--k-navy),-0.020em -0.035em 0 var(--k-navy),-0.000em -0.040em 0 var(--k-navy),0.020em -0.035em 0 var(--k-navy),0.035em -0.020em 0 var(--k-navy);margin-top:.28em;animation-delay:.25s;}
.k-banner h1{margin-top:18px;font-size:clamp(1rem,2.2vw,1.35rem);font-weight:900;color:var(--k-navy);line-height:1.6;letter-spacing:.04em;animation:kUp 1s ease-out .45s both;}
@keyframes kUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
.k-star.s1{right:8%;top:6%;width:64px;height:64px;background:var(--k-gold);transform:rotate(14deg);}
.k-star.s2{right:22%;bottom:4%;width:34px;height:34px;background:var(--k-navy);transform:rotate(-12deg);}
/* cta buttons */
.k-cta{background:linear-gradient(180deg,#fff 0%,var(--blue-pale) 100%);padding:44px 20px 60px;}
.k-cta-in{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.k-btn{display:flex;align-items:center;gap:16px;padding:18px 26px;border-radius:999px;font-weight:900;font-size:clamp(1rem,2.2vw,1.3rem);line-height:1.35;position:relative;box-shadow:0 6px 0 rgba(8,43,78,.22);transition:transform .15s,box-shadow .15s;}
.k-btn:hover{transform:translateY(3px);box-shadow:0 3px 0 rgba(8,43,78,.22);}
.k-btn::after{content:"→";margin-left:auto;font-family:var(--k-en);font-size:1.3em;}
.k-btn .ico{flex:none;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;}
.k-btn .ico svg{width:28px;height:28px;}
.k-btn .tx{text-align:left;}
.k-btn small{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;opacity:.85;}
.k-btn.yellow{background:var(--yellow);color:var(--blue-dark);}
.k-btn.yellow .ico{color:var(--k-pink);}
.k-btn.blue{background:var(--blue);color:#fff;}
.k-btn.blue .ico,.k-btn.white .ico{color:var(--blue);}
.k-btn.white{background:#fff;color:var(--blue-dark);}
.k-btn.white .ico{background:var(--blue-pale);}
/* about */
.k-about{text-align:center;}
.k-about-img{position:relative;max-width:800px;margin:0 auto 40px;}
.k-about-img::before{content:"";position:absolute;inset:0;border-radius:24px;background:var(--yellow);transform:rotate(-3deg) scale(1.02);}
.k-about-img img{position:relative;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:24px;border:6px solid #fff;box-shadow:var(--shadow-md);}
.k-lead{font-size:clamp(.98rem,1.8vw,1.15rem);font-weight:700;line-height:2.3;color:var(--ink);}
.k-about-body{max-width:780px;margin:28px auto 0;text-align:left;}
.k-about-body p{font-size:.98rem;line-height:2.2;margin-bottom:18px;}
.k-about-body mark{background:linear-gradient(transparent 62%,var(--yellow) 62%);color:var(--blue-dark);font-weight:900;padding:0 2px;}
/* 「コアラーズ」の由来カード */
.k-origin{max-width:780px;margin:34px auto 0;display:flex;align-items:center;gap:26px;text-align:left;background:#fff;border:3px solid var(--k-gold);border-radius:24px;padding:24px 32px;box-shadow:6px 6px 0 var(--blue-pale);}
.k-origin img{flex:none;width:120px;height:auto;}
.k-origin h3{font-size:1.15rem;font-weight:900;color:var(--k-navy);line-height:1.6;margin-bottom:6px;}
.k-origin p{font-size:.95rem;line-height:2;}
.k-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:30px;}
.k-chips span{background:#fff;border:2px solid var(--blue);color:var(--blue);font-weight:900;font-size:.82rem;padding:4px 18px;border-radius:999px;}
/* bands（全幅の背景帯） */
.k-band{position:relative;}
.k-band.pale{background:var(--blue-pale);}
.k-band.blue{background:linear-gradient(160deg,var(--blue) 0%,var(--blue-bright) 100%);clip-path:polygon(0 5vw,100% 0,100% calc(100% - 5vw),0 100%);padding:5vw 0;margin:20px 0;}
.k-band.blue::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.16) 2px,transparent 2.5px);background-size:26px 26px;pointer-events:none;}
.k-band section{position:relative;}
.k-star.s3{left:6%;top:14%;width:54px;height:54px;transform:rotate(-14deg);}
.k-star.s4{right:7%;bottom:12%;width:40px;height:40px;background:var(--k-pink);transform:rotate(10deg);}
.k-pom.p1{right:-40px;top:9%;}
/* activities */
.k-act{display:grid;grid-template-columns:1.7fr 1fr;gap:0;align-items:center;margin-bottom:64px;}
.k-act:last-child{margin-bottom:0;}
.k-act-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.k-act-photos img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;border:4px solid #fff;box-shadow:0 8px 22px rgba(8,43,78,.25);}
.k-act-detail{position:relative;z-index:1;background:#fff;border-radius:24px;padding:34px 30px;margin-left:-36px;box-shadow:0 14px 34px rgba(8,43,78,.28);border-bottom:8px solid var(--yellow);}
.k-act-detail h3{font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:900;color:var(--blue);line-height:1.5;margin-bottom:14px;}
.k-act-detail p{font-size:.9rem;line-height:2;}
.k-act.rev{grid-template-columns:1fr 1.7fr;}
.k-act.rev .k-act-photos{order:2;}
.k-act.rev .k-act-detail{margin-left:0;margin-right:-36px;border-bottom-color:var(--k-pink);}
/* class */
.k-class{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:center;}
.k-class-cards{display:grid;gap:18px;}
.k-class-card{display:grid;grid-template-columns:190px 1fr;background:#fff;border:3px solid var(--blue);border-radius:20px;overflow:hidden;cursor:pointer;box-shadow:6px 6px 0 var(--yellow);transition:transform .15s,box-shadow .15s;}
.k-class-card:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--yellow);}
.k-class-card h3{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--blue);color:#fff;font-size:1.15rem;font-weight:900;line-height:1.5;padding:18px 10px;}
.k-class-card ul{padding:12px 22px;}
.k-class-card li{font-size:.9rem;font-weight:700;line-height:1.7;padding:9px 0;border-bottom:2px dotted var(--line);}
.k-class-card li:first-child{color:var(--blue);font-weight:900;}
.k-class-card li:last-child{border-bottom:0;}
.k-class-card li.more{color:var(--blue-bright);font-size:.8rem;}
.k-class-txt p:not(.k-head):not(.k-note){font-size:.92rem;}
.k-class-txt .k-ttl{margin-bottom:26px;}
.k-arrow-btn{display:inline-flex;align-items:center;gap:26px;margin-top:26px;background:var(--blue);color:#fff;font-weight:900;font-size:.95rem;padding:14px 22px 14px 32px;border-radius:999px;box-shadow:0 5px 0 var(--blue-dark);transition:transform .15s,box-shadow .15s;}
.k-arrow-btn::after{content:"→";display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--yellow);color:var(--blue-dark);font-family:var(--k-en);}
.k-arrow-btn:hover{transform:translateY(3px);box-shadow:0 2px 0 var(--blue-dark);}
/* access */
/* join us */
.k-join{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--blue-dark) 0%,var(--blue) 50%,var(--blue-bright) 100%);color:#fff;text-align:center;padding:90px 20px 110px;margin-top:40px;clip-path:polygon(0 5vw,100% 0,100% 100%,0 100%);}
.k-join-in{position:relative;z-index:1;}
.k-join-en{font-family:var(--k-en);font-style:italic;font-weight:700;font-size:clamp(4rem,16vw,11rem);line-height:1;color:#fff;text-shadow:.045em .045em 0 var(--k-pink);}
.k-join h2{font-size:clamp(1.12rem,2.7vw,1.75rem);font-weight:900;line-height:1.8;margin:18px 0 36px;letter-spacing:.04em;}
.k-pom.p2{left:-50px;top:30%;width:220px;height:220px;}
.k-pom.p3{right:-60px;bottom:-40px;width:260px;height:260px;background:repeating-conic-gradient(var(--k-pink) 0 9deg,transparent 9deg 18deg);}
.k-star.s5{left:14%;bottom:16%;transform:rotate(-16deg);}
.k-star.s6{right:16%;top:24%;width:56px;height:56px;transform:rotate(12deg);}
@media(max-width:960px){
  .k-badge{top:84px;right:14px;}
  .k-badge-in{width:112px;height:112px;border-width:3px;}
  .k-sp{display:inline;}
  .k-pc{display:none;}
  .k-act,.k-act.rev,.k-class{grid-template-columns:1fr;}
  .k-act-detail,.k-act.rev .k-act-detail{margin:-26px 14px 0;}
  .k-act.rev .k-act-photos{order:0;}
  .k-class{gap:36px;}
  .k-class-txt{order:-1;}
  .k-band.blue{padding:9vw 0;}
}
@media(max-width:600px){
  .k-badge{right:10px;}
  .k-badge-in{width:92px;height:92px;}
  .k-hero{height:78vw;}
  .k-lead{font-size:.95rem;}
  .k-origin{flex-direction:column;text-align:center;gap:12px;padding:22px 20px;}
  .k-origin img{width:96px;}
  .k-banner{margin-top:-17%;}
  .k-cta-in{grid-template-columns:1fr;gap:16px;}
  .k-btn{padding:14px 20px;}
  .k-btn .ico{width:44px;height:44px;}
  .k-class-card{grid-template-columns:112px 1fr;}
  .k-class-card h3{font-size:.95rem;}
  .k-class-card ul{padding:8px 16px;}
  .k-star.s1{width:44px;height:44px;right:5%;}
  .k-star.s2{display:none;}
  .k-star.s3{top:4%;left:4%;width:38px;height:38px;}
  .k-pom.p2,.k-pom.p3{width:150px;height:150px;}
  .k-pom.p2{top:-30px;left:-60px;}
  .k-star.s5,.k-star.s6{display:none;}
  .k-join{padding:70px 20px 90px;}
}
