/* NIJIRO main.css — モバイルファースト／BEM／ブレークポイント 768px・1024px */

:root {
	--c-ink: #26354a;
	--c-text: #3d4a5c;
	--c-mute: #6b7686;
	--c-blue: #5577a1;
	--c-blue-deep: #3c5a82;
	--c-sky: #eef3f8;
	--c-cream: #faf6ef;
	--c-sand: #f1e9dc;
	--c-white: #fff;
	--c-line: #dfe5ec;
	--c-coral: #e07a62;
	--c-coral-deep: #c9624b;
	/* 虹（ロゴのアーチから。やわらかいトーンでまとめる） */
	--r1: #e8a294;
	--r2: #efc58a;
	--r3: #a8c9a0;
	--r4: #8fb3d6;
	--r5: #b4a6d3;
	--c-junior: #efc58a;
	--c-senior: #a8c9a0;
	--c-yoga: #8fb3d6;
	--c-pilates: #e8a294;
	--c-dance: #b4a6d3;
	--c-jump: #8cc5bd;
	--f-base: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	--f-head: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
	--f-en: "Jost", "Noto Sans JP", sans-serif;
	--sp-sec: 72px;
	--radius: 20px;
	--shadow: 0 18px 40px rgba(38, 53, 74, .08);
	--header-h: 64px;
}

@media (min-width: 768px) {
	:root { --sp-sec: 104px; --header-h: 76px; }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--f-base); font-size: 15px; line-height: 1.9; color: var(--c-text); background: var(--c-white); letter-spacing: .03em; overflow-wrap: anywhere; }
@media (min-width: 768px) { body { font-size: 16px; } }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-blue-deep); }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
table { border-collapse: collapse; width: 100%; }
address { font-style: normal; }
.container { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.container--narrow { max-width: 880px; }
.u-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.u-sp { display: inline; }
.u-pc { display: none; }
@media (min-width: 768px) { .u-sp { display: none; } .u-pc { display: inline; } }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: 8px 16px; background: var(--c-ink); color: #fff; }
.skip-link:focus { left: 8px; top: 8px; }

/* ボタン */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: 12px 26px; border-radius: 999px; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-decoration: none; line-height: 1.4; transition: background-color .25s, color .25s, transform .25s, box-shadow .25s; border: 1.5px solid transparent; }
.btn--lg { padding: 16px 32px; font-size: 15px; }
.btn--primary { background: var(--c-coral); color: #fff; box-shadow: 0 10px 22px rgba(224, 122, 98, .3); }
.btn--primary:hover { background: var(--c-coral-deep); transform: translateY(-2px); }
.btn--ghost { border-color: var(--c-blue); color: var(--c-blue-deep); background: rgba(255, 255, 255, .7); }
.btn--ghost:hover { background: var(--c-blue); color: #fff; }
.btn--light { border-color: rgba(255, 255, 255, .8); color: #fff; }
.btn--light:hover { background: #fff; color: var(--c-blue-deep); }

/* セクション共通 */
.section { padding: var(--sp-sec) 0; position: relative; }
.section--sky { background: var(--c-sky); }
.section--cream { background: var(--c-cream); }
.sec-head { text-align: center; margin-bottom: 40px; }
@media (min-width: 768px) { .sec-head { margin-bottom: 56px; } }
.sec-head--left { text-align: left; }
.sec-head__en { font-family: var(--f-en); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; color: var(--c-blue); display: inline-flex; align-items: center; gap: 10px; }
.sec-head__en::before { content: ""; width: 22px; height: 11px; border: 2px solid var(--r2); border-bottom: 0; border-radius: 22px 22px 0 0; }
.sec-head__title { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 24px; line-height: 1.5; margin-top: 6px; letter-spacing: .06em; }
@media (min-width: 768px) { .sec-head__title { font-size: 32px; } }
.sec-head__lead { margin-top: 14px; color: var(--c-mute); }

/* 虹のアーチ（装飾） */
.arcs { fill: none; stroke-width: 6; stroke-linecap: round; }
.arcs path:nth-child(1) { stroke: var(--r1); }
.arcs path:nth-child(2) { stroke: var(--r2); }
.arcs path:nth-child(3) { stroke: var(--r3); }
.arcs path:nth-child(4) { stroke: var(--r4); }

/* ヘッダー */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .94); border-bottom: 1px solid rgba(223, 229, 236, .7); }
.site-header__inner { display: flex; align-items: center; height: var(--header-h); max-width: 1320px; margin: 0 auto; padding: 0 16px; gap: 16px; }
.site-header__brand { display: flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.site-header__logo { height: 34px; width: auto; }
@media (min-width: 768px) { .site-header__logo { height: 40px; } }
.site-header__desc { font-size: 10px; line-height: 1.5; color: var(--c-mute); letter-spacing: .04em; border-left: 1px solid var(--c-line); padding-left: 12px; }
.site-header__toggle { width: 44px; height: 44px; border: 0; background: var(--c-blue); border-radius: 50%; display: grid; place-content: center; gap: 5px; cursor: pointer; }
.site-header__toggle span { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s, opacity .3s; }
.is-nav-open .site-header__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.is-nav-open .site-header__toggle span:nth-child(2) { opacity: 0; }
.is-nav-open .site-header__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.site-nav { position: fixed; inset: var(--header-h) 0 0; background: var(--c-cream); padding: 24px 24px 120px; overflow-y: auto; visibility: hidden; opacity: 0; transition: opacity .3s, visibility .3s; }
.is-nav-open .site-nav { visibility: visible; opacity: 1; }
.site-nav__list li { border-bottom: 1px solid var(--c-line); }
.site-nav__list a { display: flex; align-items: baseline; gap: 14px; padding: 16px 4px; color: var(--c-ink); text-decoration: none; font-weight: 500; }
.site-nav__list a span { font-family: var(--f-en); font-size: 11px; letter-spacing: .18em; color: var(--c-blue); width: 72px; text-transform: uppercase; }
.site-nav__cta { display: flex; align-items: center; gap: 12px; margin-top: 28px; }
.site-nav__cta .btn { flex: 1; padding: 14px; }
.site-nav__ig, .site-footer__ig svg, .sp-cta__ig svg { flex: none; }
.site-nav__ig { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--c-blue); color: var(--c-blue); }
.site-nav__ig svg, .site-footer__ig svg, .sp-cta__ig svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-nav__ig svg circle:last-child, .site-footer__ig svg circle:last-child, .sp-cta__ig svg circle:last-child { fill: currentColor; stroke: none; }

@media (max-width: 1023px) {
	.site-header__desc { display: none; }
}
@media (min-width: 560px) and (max-width: 1023px) {
	.site-header__desc { display: block; }
}
@media (min-width: 1024px) {
	.site-header__toggle { display: none; }
	.site-nav { position: static; visibility: visible; opacity: 1; background: none; padding: 0; overflow: visible; display: flex; align-items: center; gap: 18px; }
	.site-nav__list { display: flex; gap: 2px; }
	.site-nav__list li { border: 0; }
	.site-nav__list a { flex-direction: column; align-items: center; gap: 0; padding: 6px 10px; font-size: 13.5px; line-height: 1.5; border-radius: 10px; transition: background-color .2s; }
	.site-nav__list a:hover { background: var(--c-sky); }
	.site-nav__list a span { width: auto; font-size: 10px; order: -1; }
	.site-nav__cta { margin: 0; }
	.site-nav__cta .btn { padding: 12px 22px; }
	.site-nav__ig { width: 42px; height: 42px; }
}
@media (min-width: 1024px) and (max-width: 1180px) {
	.site-header__desc { display: none; }
	.site-nav__list a { padding: 6px 7px; font-size: 13px; }
}

/* ヒーロー */
.hero { position: relative; background: linear-gradient(180deg, var(--c-cream) 0%, #fff 100%); padding: 28px 0 56px; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(143, 179, 214, .22), transparent 70%); right: -160px; top: -160px; }
.hero__inner { display: grid; gap: 28px; position: relative; }
.hero__visual { position: relative; order: -1; padding: 0 6px; }
.hero__photo { border-radius: 999px 999px 24px 24px; overflow: hidden; position: relative; z-index: 1; box-shadow: var(--shadow); }
.hero__photo img { width: 100%; height: 280px; object-fit: cover; object-position: 50% 40%; }
.hero__rainbow { position: absolute; left: 50%; top: -14px; width: calc(100% + 16px); transform: translateX(-50%); height: 100%; z-index: 0; }
.hero__rainbow span { position: absolute; inset: 0; border: 3px solid; border-bottom: 0; border-radius: 999px 999px 0 0; height: 60%; }
.hero__rainbow span:nth-child(1) { border-color: var(--r1); inset: 0 0 auto 0; }
.hero__rainbow span:nth-child(2) { border-color: var(--r2); inset: 6px 6px auto 6px; }
.hero__rainbow span:nth-child(3) { border-color: var(--r3); inset: 12px 12px auto 12px; }
.hero__rainbow span:nth-child(4) { border-color: var(--r4); inset: 18px 18px auto 18px; }
.hero__rainbow span:nth-child(5) { border-color: var(--r5); inset: 24px 24px auto 24px; }
@media (prefers-reduced-motion: no-preference) {
	.hero__rainbow span { animation: nijiro-arc 1.4s cubic-bezier(.22, .8, .3, 1) both; }
	.hero__rainbow span:nth-child(2) { animation-delay: .12s; }
	.hero__rainbow span:nth-child(3) { animation-delay: .24s; }
	.hero__rainbow span:nth-child(4) { animation-delay: .36s; }
	.hero__rainbow span:nth-child(5) { animation-delay: .48s; }
	.hero__photo img { animation: nijiro-fade 1.2s ease both; }
}
@keyframes nijiro-arc { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes nijiro-fade { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: none; } }
.hero__badge { position: absolute; z-index: 2; right: 6px; bottom: -18px; width: 96px; height: 96px; border-radius: 50%; background: var(--c-blue); color: #fff; display: grid; place-content: center; text-align: center; font-family: var(--f-head); font-weight: 700; font-size: 13px; line-height: 1.5; box-shadow: 0 10px 24px rgba(60, 90, 130, .3); }
.hero__en { font-family: var(--f-en); letter-spacing: .3em; color: var(--c-blue); font-size: 13px; }
.hero__catch { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 34px; line-height: 1.45; letter-spacing: .08em; margin-top: 6px; }
.hero__title { font-size: 14px; font-weight: 500; color: var(--c-text); line-height: 1.7; margin-top: 16px; padding-left: 14px; border-left: 3px solid var(--r2); }
.hero__title span { font-family: var(--f-en); letter-spacing: .1em; color: var(--c-blue-deep); }
.hero__lead { margin-top: 16px; color: var(--c-mute); font-size: 14px; }
.hero__dates { display: flex; gap: 10px; margin-top: 22px; }
.hero__date { flex: 1; background: #fff; border-radius: 14px; padding: 10px 12px; box-shadow: 0 6px 18px rgba(38, 53, 74, .06); border: 1px solid var(--c-line); }
.hero__date--open { background: var(--c-blue); border-color: var(--c-blue); color: #fff; }
.hero__date-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.hero__date-num { font-family: var(--f-en); font-size: 15px; letter-spacing: .04em; }
.hero__date-num b { font-size: 26px; font-weight: 500; margin-left: 2px; }
.hero__btns { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; }
@media (min-width: 768px) {
	.hero { padding: 48px 0 88px; }
	.hero__photo img { height: 420px; }
	.hero__catch { font-size: 46px; }
	.hero__title { font-size: 15px; }
	.hero__lead { font-size: 15px; }
	.hero__btns { flex-direction: row; }
	.hero__badge { width: 124px; height: 124px; font-size: 16px; right: 20px; bottom: -24px; }
	.hero__dates { max-width: 420px; }
}
@media (min-width: 1024px) {
	.hero { padding: 64px 0 104px; }
	.hero__inner { grid-template-columns: 1fr 1.08fr; align-items: center; gap: 56px; }
	.hero__visual { order: 0; padding: 0; }
	.hero__photo img { height: 560px; }
	.hero__catch { font-size: 50px; }
	.hero__rainbow { top: -22px; width: calc(100% + 44px); }
	.hero__rainbow span { border-width: 4px; }
	.hero__rainbow span:nth-child(2) { inset: 9px 9px auto 9px; }
	.hero__rainbow span:nth-child(3) { inset: 18px 18px auto 18px; }
	.hero__rainbow span:nth-child(4) { inset: 27px 27px auto 27px; }
	.hero__rainbow span:nth-child(5) { inset: 36px 36px auto 36px; }
}

/* グランドオープンのチラシ */
.flyer { background: #fff; padding: 8px 0 32px; }
.flyer__list { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 560px; }
.flyer__item:first-child { grid-column: 1 / -1; }
.flyer__link { display: block; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
.flyer__item:first-child .flyer__link { border-radius: 16px; }
.flyer__img { display: block; width: 100%; height: auto; }
.flyer__note { margin-top: 10px; text-align: center; font-size: 12px; color: var(--c-mute); }
@media (min-width: 768px) {
	.flyer { padding: 8px 0 48px; }
	.flyer__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 960px; }
	.flyer__item:first-child { grid-column: auto; }
	.flyer__link, .flyer__item:first-child .flyer__link { border-radius: 16px; }
	.flyer__note { font-size: 13px; }
}

/* オープン情報 */
.openbar { background: var(--c-blue); color: #fff; }
.openbar__inner { display: grid; grid-template-columns: 1fr 1fr; }
.openbar__item { padding: 16px 8px; text-align: center; border-right: 1px solid rgba(255, 255, 255, .2); border-bottom: 1px solid rgba(255, 255, 255, .2); line-height: 1.5; }
.openbar__item:nth-child(2n) { border-right: 0; }
.openbar__item--hl { background: var(--c-coral); }
.openbar__k { display: block; font-size: 11px; opacity: .9; letter-spacing: .08em; }
.openbar__v { display: block; font-family: var(--f-head); font-weight: 700; font-size: 14px; margin-top: 2px; }
@media (min-width: 768px) {
	.openbar__inner { grid-template-columns: repeat(4, 1fr); }
	.openbar__item { border-bottom: 0; padding: 22px 12px; }
	.openbar__item:nth-child(2n) { border-right: 1px solid rgba(255, 255, 255, .2); }
	.openbar__item:last-child { border-right: 0; }
	.openbar__v { font-size: 18px; }
}

/* コンセプト */
.concept__inner { display: grid; gap: 48px; }
.concept__line { color: var(--c-text); margin-top: 10px; }
.concept__line--lg { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 18px; line-height: 1.8; margin-top: 4px; }
.concept__line--lg + .concept__line:not(.concept__line--lg) { margin-top: 22px; }
.concept__name { margin-top: 26px; padding: 22px 24px; background: var(--c-cream); border-radius: var(--radius); font-size: 14px; }
.concept__name span { font-family: var(--f-en); color: var(--c-blue-deep); letter-spacing: .08em; font-weight: 500; }
.concept__photos { position: relative; padding-bottom: 40px; }
.concept__photo { border-radius: var(--radius); box-shadow: var(--shadow); object-fit: cover; }
.concept__photo--a { width: 82%; height: 240px; border-radius: 160px 160px var(--radius) var(--radius); }
.concept__photo--b { position: absolute; width: 52%; height: 150px; right: 0; bottom: 0; border: 5px solid #fff; }
.concept__photos .arcs { position: absolute; width: 90px; right: 6%; top: 10px; }
@media (min-width: 768px) {
	.concept__line--lg { font-size: 22px; }
	.concept__photo--a { height: 380px; }
	.concept__photo--b { height: 220px; }
}
@media (min-width: 1024px) {
	.concept__inner { grid-template-columns: 1.05fr 1fr; align-items: center; gap: 72px; }
	.concept__photo--a { height: 460px; }
	.concept__photos .arcs { width: 120px; }
}

/* 大切にしていること */
.features__list { display: grid; gap: 16px; }
.feature { background: #fff; border-radius: var(--radius); padding: 28px 24px 26px; position: relative; box-shadow: var(--shadow); }
.feature__num { font-family: var(--f-en); font-size: 34px; line-height: 1; color: var(--r4); font-weight: 500; }
.feature:nth-child(1) .feature__num { color: var(--r1); }
.feature:nth-child(2) .feature__num { color: var(--r2); }
.feature:nth-child(3) .feature__num { color: var(--r3); }
.feature:nth-child(5) .feature__num { color: var(--r5); }
.feature__title { font-family: var(--f-head); font-size: 18px; color: var(--c-ink); margin: 12px 0 8px; line-height: 1.5; }
.feature__text { font-size: 14px; }
@media (min-width: 768px) {
	.features__list { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (min-width: 1024px) {
	.features__list { grid-template-columns: repeat(6, 1fr); }
	.feature { grid-column: span 2; }
	.feature:nth-child(4) { grid-column: 2 / span 2; }
}

/* 基本情報 */
.basics__list { border-top: 2px solid var(--c-ink); }
.basics__list > div { display: grid; gap: 4px; padding: 16px 4px; border-bottom: 1px solid var(--c-line); }
.basics__list dt { font-weight: 700; color: var(--c-ink); font-size: 14px; }
.basics__list dd { font-size: 14.5px; }
@media (min-width: 768px) {
	.basics__list > div { grid-template-columns: 200px 1fr; gap: 24px; padding: 18px 8px; }
}

/* 世代別 */
.gen__list { display: grid; gap: 16px; }
.gen__item { background: #fff; border-radius: var(--radius); padding: 28px 24px; border-top: 6px solid var(--c-junior); box-shadow: var(--shadow); }
.gen__item--2 { border-top-color: var(--c-yoga); }
.gen__item--3 { border-top-color: var(--c-senior); }
.gen__age { font-size: 12px; font-weight: 700; color: var(--c-mute); letter-spacing: .08em; }
.gen__title { font-family: var(--f-head); font-size: 22px; color: var(--c-ink); line-height: 1.5; margin: 2px 0 12px; }
.gen__lessons { font-size: 14px; }
.gen__price { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--c-line); font-size: 13px; font-weight: 700; color: var(--c-blue-deep); }
.gen__price small { font-weight: 400; color: var(--c-mute); }
@media (min-width: 768px) { .gen__list { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

/* レッスン */
.lessons__main { display: grid; gap: 48px; }
.lesson { display: grid; gap: 22px; }
.lesson__photo { border-radius: var(--radius); overflow: hidden; }
.lesson__photo img { width: 100%; height: 240px; object-fit: cover; }
.lesson__en { font-family: var(--f-en); font-size: 12px; letter-spacing: .24em; color: var(--c-blue); }
.lesson__title { font-family: var(--f-head); font-size: 26px; color: var(--c-ink); line-height: 1.4; margin-top: 2px; }
.lesson__title span { display: block; font-size: 14px; color: var(--c-mute); font-weight: 500; margin-top: 4px; }
.lesson__target { display: inline-block; margin-top: 12px; padding: 3px 14px; border-radius: 999px; background: var(--c-sky); font-size: 13px; font-weight: 700; color: var(--c-blue-deep); }
.lesson__lead { margin-top: 14px; }
.lesson__aims { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.lesson__aims li { font-size: 13px; padding: 4px 12px 4px 26px; border-radius: 999px; background: var(--c-cream); position: relative; }
.lesson__aims li::before { content: ""; position: absolute; left: 10px; top: 50%; width: 9px; height: 5px; margin-top: -4px; border-left: 2px solid var(--c-coral); border-bottom: 2px solid var(--c-coral); transform: rotate(-45deg); }
/* ジュニアのジャンル */
.genres { margin-top: 18px; padding: 16px 16px 14px; border-radius: 16px; background: linear-gradient(135deg, #fdf1ec 0%, #fbf5e9 30%, #eef6ec 55%, #eaf2f9 78%, #f2eef9 100%); }
.genres__title { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 15px; line-height: 1.5; }
.genres__title b { font-family: var(--f-en); font-size: 26px; color: var(--c-coral); margin-right: 2px; vertical-align: -2px; }
.genres__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.genres__item { --g-bg: #edf3fa; --g-bd: #d3e2f0; display: flex; align-items: center; gap: 8px; background: var(--g-bg); border: 1px solid var(--g-bd); border-radius: 10px; padding: 8px 10px; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--c-ink); }
.genres__num { flex: none; font-family: var(--f-en); font-size: 11px; color: #fff; width: 24px; height: 24px; border-radius: 50%; display: grid; place-content: center; background: var(--r4); }
.genres__item:nth-child(5n+1) { --g-bg: #fcefeb; --g-bd: #f4d3cb; }
.genres__item:nth-child(5n+2) { --g-bg: #fdf5e9; --g-bd: #f5e0c1; }
.genres__item:nth-child(5n+3) { --g-bg: #eff6ed; --g-bd: #d4e6cf; }
.genres__item:nth-child(5n+5) { --g-bg: #f3f0f9; --g-bd: #ddd5ec; }
.genres__item:nth-child(5n+1) .genres__num { background: var(--r1); }
.genres__item:nth-child(5n+2) .genres__num { background: var(--r2); }
.genres__item:nth-child(5n+3) .genres__num { background: var(--r3); }
.genres__item:nth-child(5n+5) .genres__num { background: var(--r5); }
.genres__name span { display: inline-block; }
.genres__title span { display: inline-block; }
@media (max-width: 359px) { .genres { padding: 14px 12px 12px; } .genres__item { padding: 8px; gap: 6px; font-size: 12px; } }
.genres__note { margin-top: 8px; font-size: 11px; color: var(--c-text); }
.lesson__meta { margin-top: 18px; font-size: 14px; border-top: 1px solid var(--c-line); }
.lesson__meta > div { display: flex; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--c-line); }
.lesson__meta dt { flex: none; width: 4.5em; font-weight: 700; color: var(--c-ink); }
.lesson__meta small { color: var(--c-mute); }
.lesson__more { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; font-weight: 700; font-size: 14px; text-decoration: none; color: var(--c-blue-deep); }
.lesson__more::after { content: ""; width: 28px; height: 28px; border-radius: 50%; background: var(--c-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center / 14px no-repeat; transition: transform .25s; }
.lesson__more:hover::after { transform: translateX(4px); }
.lesson--junior .lesson__target { background: #fbf0dc; }
.lessons__sub { display: grid; gap: 16px; margin-top: 48px; }
.lesson-mini { background: var(--c-sky); border-radius: var(--radius); padding: 28px 24px; }
.lesson-mini__en { font-family: var(--f-en); font-size: 12px; letter-spacing: .24em; color: var(--c-blue); }
.lesson-mini__title { font-family: var(--f-head); font-size: 22px; color: var(--c-ink); line-height: 1.4; }
.lesson-mini__title span { display: block; font-size: 13px; color: var(--c-mute); font-weight: 500; margin-top: 2px; }
.lesson-mini__lead { margin-top: 12px; font-size: 14px; }
.lesson-mini__price { margin-top: 10px; font-weight: 700; color: var(--c-ink); font-size: 14px; }
.lesson-mini__price small { font-weight: 400; color: var(--c-mute); }
.gallery { display: flex; gap: 12px; overflow-x: auto; margin-top: 40px; padding-bottom: 6px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.gallery li { flex: 0 0 62%; scroll-snap-align: start; }
.gallery img { width: 100%; height: 180px; object-fit: cover; object-position: 50% 20%; border-radius: 16px; }
@media (min-width: 768px) { .gallery { overflow: visible; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } .gallery img { height: 220px; } }
.schedule__notice { display: inline-block; margin-top: 12px; padding: 4px 16px; border-radius: 999px; background: #fff; color: var(--c-coral-deep); font-weight: 700; font-size: 14px; }
.lessons__note { margin-top: 28px; font-size: 12px; color: var(--c-mute); }
@media (min-width: 768px) {
	.lesson__photo img { height: 360px; }
	.lessons__sub { grid-template-columns: 1fr 1fr; gap: 24px; }
}
@media (min-width: 1024px) {
	.lessons__sub { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.lessons__main { gap: 80px; }
	.lesson { grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
	.lesson--rev .lesson__photo { order: 2; }
	.lesson__photo img { height: 400px; }
	.lesson__photo { border-radius: 200px 200px var(--radius) var(--radius); }
	.lesson--rev .lesson__photo { border-radius: var(--radius) 200px 200px var(--radius); }
}

/* 時間割 */
.schedule__filter { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 18px; }
.chip { border: 1.5px solid var(--c-line); background: #fff; border-radius: 999px; padding: 6px 16px; font: inherit; font-size: 13px; font-weight: 700; color: var(--c-ink); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.chip::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c-line); }
.chip--junior::before { background: var(--c-junior); }
.chip--senior::before { background: var(--c-senior); }
.chip--yoga::before { background: var(--c-yoga); }
.chip--pilates::before { background: var(--c-pilates); }
.chip--dance::before { background: var(--c-dance); }
.chip.is-active { border-color: var(--c-blue); background: var(--c-blue); color: #fff; }
.schedule__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.timetable { min-width: 780px; font-size: 13px; line-height: 1.5; table-layout: fixed; }
.timetable th, .timetable td { border: 1px solid var(--c-line); padding: 10px 6px; text-align: center; vertical-align: middle; }
.timetable thead th { background: var(--c-ink); color: #fff; font-weight: 700; letter-spacing: .1em; border-color: var(--c-ink); }
.timetable thead th:first-child, .timetable tbody th { width: 96px; }
.timetable tbody th { font-family: var(--f-en); font-weight: 500; color: var(--c-ink); background: #fbfcfd; font-size: 12.5px; }
.timetable__cell { font-weight: 500; color: var(--c-ink); transition: opacity .25s, background-color .25s; }
.timetable__cell.is-junior { background: #fdf3e2; box-shadow: inset 4px 0 0 var(--c-junior); }
.timetable__cell.is-senior { background: #eef6ec; box-shadow: inset 4px 0 0 var(--c-senior); }
.timetable__cell.is-yoga { background: #ebf2f9; box-shadow: inset 4px 0 0 var(--c-yoga); }
.timetable__cell.is-pilates { background: #fcefeb; box-shadow: inset 4px 0 0 var(--c-pilates); }
.timetable__cell.is-dance { background: #f1eef8; box-shadow: inset 4px 0 0 var(--c-dance); }
.timetable__cell.is-jump { background: #eaf5f3; box-shadow: inset 4px 0 0 var(--c-jump); }
.timetable__cell.is-tbd { color: var(--c-mute); }
.timetable__empty { color: #c3cad3; }
.timetable.is-filtered .timetable__cell.is-dim { opacity: .18; }
.schedule__note { margin-top: 14px; font-size: 12px; color: var(--c-mute); }
.schedule__wrap::after { content: none; }
/* スマホは曜日タブ、タブレット以上は週の表 */
.schedule__wrap { display: none; }
.daytabs__tabs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; margin-bottom: 14px; }
.daytabs__tab { border: 0; border-radius: 12px; background: #fff; padding: 10px 0; font: inherit; font-weight: 700; color: var(--c-ink); cursor: pointer; box-shadow: 0 4px 10px rgba(38, 53, 74, .05); }
.daytabs__tab.is-active { background: var(--c-ink); color: #fff; }
.daytabs__panel { background: #fff; border-radius: var(--radius); padding: 6px 16px; box-shadow: var(--shadow); }
.daytabs__item { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--c-line); transition: opacity .25s; }
.daytabs__item:last-child { border-bottom: 0; }
.daytabs__time { flex: none; width: 104px; font-family: var(--f-en); font-size: 13px; color: var(--c-mute); }
.daytabs__name { font-weight: 700; color: var(--c-ink); font-size: 14px; padding-left: 12px; border-left: 4px solid var(--c-line); line-height: 1.5; }
.daytabs__item.is-junior .daytabs__name { border-color: var(--c-junior); }
.daytabs__item.is-senior .daytabs__name { border-color: var(--c-senior); }
.daytabs__item.is-yoga .daytabs__name { border-color: var(--c-yoga); }
.daytabs__item.is-pilates .daytabs__name { border-color: var(--c-pilates); }
.daytabs__item.is-dance .daytabs__name { border-color: var(--c-dance); }
.daytabs__item.is-jump .daytabs__name { border-color: var(--c-jump); }
.daytabs__item.is-tbd .daytabs__name { color: var(--c-mute); font-weight: 500; }
.daytabs.is-filtered .daytabs__item.is-dim { opacity: .2; }
@media (min-width: 768px) {
	.schedule__wrap { display: block; }
	.daytabs { display: none; }
}

/* 料金 */
.campaign { text-align: center; background: linear-gradient(120deg, #fff4ee, #fff8ea); border: 2px solid #f3cdbf; border-radius: var(--radius); padding: 28px 20px; margin-bottom: 32px; position: relative; overflow: hidden; }
.campaign__label { font-family: var(--f-en); color: var(--c-coral); letter-spacing: .3em; font-size: 12px; }
.campaign__title { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 20px; line-height: 1.6; margin-top: 4px; }
.campaign__title strong { color: var(--c-coral-deep); font-size: 1.35em; margin-left: .3em; }
.campaign__note { font-size: 12px; color: var(--c-mute); margin-top: 6px; }
.campaign__sub { margin-top: 14px; font-size: 14px; padding-top: 14px; border-top: 1px dashed #f0c3b4; }
.campaign__sub strong { color: var(--c-coral-deep); }
.price__grid { display: grid; gap: 20px; }
.price-card { background: #fff; border-radius: var(--radius); border: 1px solid var(--c-line); padding: 24px 20px; }
.price-card--main { border: 2px solid var(--c-blue); }
.price-card__title { font-family: var(--f-head); font-size: 18px; color: var(--c-ink); padding-bottom: 10px; margin-bottom: 4px; border-bottom: 2px solid var(--c-sky); }
.price-card__table th, .price-card__table td { padding: 12px 0; border-bottom: 1px solid var(--c-line); vertical-align: top; }
.price-card__table tr:last-child th, .price-card__table tr:last-child td { border-bottom: 0; }
.price-card__table th { text-align: left; font-weight: 500; color: var(--c-ink); font-size: 14px; }
.price-card__table th small { display: block; font-size: 12px; color: var(--c-mute); font-weight: 400; }
.price-card__table td { text-align: right; font-family: var(--f-en); font-size: 18px; font-weight: 500; color: var(--c-ink); white-space: nowrap; padding-left: 12px; }
.perk { margin-top: 28px; display: grid; gap: 6px; background: var(--c-ink); color: #fff; border-radius: var(--radius); padding: 22px 24px; }
.perk__title { font-family: var(--f-head); font-weight: 700; color: var(--r2); }
.perk__text { font-size: 14px; }
@media (min-width: 768px) {
	.campaign { padding: 36px 32px; }
	.campaign__title { font-size: 26px; }
	.price__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
	.price-card { padding: 28px 30px; }
	.perk { grid-template-columns: auto 1fr; gap: 24px; align-items: center; padding: 22px 32px; }
}

/* ご利用ルール */
.rules__list { display: grid; gap: 14px; }
.rules__item { background: #fff; border-radius: 16px; padding: 20px 22px; }
.rules__title { font-family: var(--f-head); font-size: 16px; color: var(--c-blue-deep); margin-bottom: 6px; }
.rules__item p { font-size: 14px; }
@media (min-width: 768px) { .rules__list { grid-template-columns: repeat(2, 1fr); gap: 18px; } }
@media (min-width: 1024px) { .rules__list { grid-template-columns: repeat(3, 1fr); } }

/* トレーナー */
.trainers__list { display: grid; gap: 28px; }
.trainer { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.trainer__photo { background: var(--c-sky); }
.trainer__photo img { width: 100%; height: 320px; object-fit: cover; object-position: 50% 20%; }
.trainer__body { padding: 24px 24px 28px; flex: 1; display: flex; flex-direction: column; }
.trainer__name { font-family: var(--f-en); font-size: 28px; font-weight: 500; letter-spacing: .12em; color: var(--c-ink); line-height: 1.2; }
.trainer__name span { display: block; font-family: var(--f-base); font-size: 12px; letter-spacing: .06em; color: var(--c-blue); font-weight: 700; margin-top: 6px; }
.trainer__msg { margin-top: 14px; font-size: 14px; padding: 14px 16px; background: var(--c-cream); border-radius: 14px; position: relative; }
.trainer__lessons { margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--c-blue-deep); }
.trainer__qh { margin-top: 16px; font-size: 12px; font-weight: 700; color: var(--c-mute); letter-spacing: .1em; }
.trainer__quals li { font-size: 13px; line-height: 1.7; padding-left: 14px; position: relative; margin-top: 4px; }
.trainer__quals li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: var(--r4); }
.trainer__sns { margin-top: auto; padding-top: 16px; font-size: 13px; font-weight: 700; }
@media (min-width: 768px) {
	.trainers__list { grid-template-columns: repeat(3, 1fr); gap: 24px; }
	.trainer__photo img { height: 340px; }
}

/* 体験 */
.trial__steps { display: grid; gap: 14px; counter-reset: step; }
.trial__step { background: #fff; border-radius: var(--radius); padding: 24px; position: relative; }
.trial__num { font-family: var(--f-en); color: var(--c-coral); font-size: 12px; letter-spacing: .16em; }
.trial__num b { font-size: 28px; font-weight: 500; margin-left: 4px; }
.trial__title { font-family: var(--f-head); font-size: 18px; color: var(--c-ink); margin: 4px 0 8px; }
.trial__step p { font-size: 14px; }
.trial__price { display: grid; gap: 10px; margin-top: 28px; }
.trial__price > div { background: var(--c-blue); color: #fff; border-radius: 16px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.trial__price span { font-size: 14px; font-weight: 700; }
.trial__price b { font-family: var(--f-en); font-size: 26px; font-weight: 500; white-space: nowrap; }
.trial__price b small { font-family: var(--f-base); font-size: 12px; }
.trial__note { margin-top: 12px; font-size: 12px; color: var(--c-mute); }
@media (min-width: 768px) {
	.trial__steps { grid-template-columns: repeat(2, 1fr); gap: 18px; }
	.trial__price { grid-template-columns: repeat(3, 1fr); }
	.trial__price > div { flex-direction: column; text-align: center; }
}
@media (min-width: 1024px) {
	.trial__steps { grid-template-columns: repeat(4, 1fr); }
	.trial__step:not(:last-child)::after { content: ""; position: absolute; right: -14px; top: 50%; width: 10px; height: 10px; border-top: 2px solid var(--c-blue); border-right: 2px solid var(--c-blue); transform: translateY(-50%) rotate(45deg); }
}

/* FAQ */
.faq__list { display: grid; gap: 12px; }
.faq__item { background: var(--c-cream); border-radius: 16px; }
.faq__q { list-style: none; cursor: pointer; padding: 18px 52px 18px 52px; font-weight: 700; color: var(--c-ink); position: relative; line-height: 1.7; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::before { content: "Q"; position: absolute; left: 18px; top: 16px; font-family: var(--f-en); color: var(--c-blue); font-size: 20px; line-height: 1.4; }
.faq__q::after { content: ""; position: absolute; right: 22px; top: 50%; width: 10px; height: 10px; margin-top: -7px; border-right: 2px solid var(--c-blue); border-bottom: 2px solid var(--c-blue); transform: rotate(45deg); transition: transform .25s; }
.faq__item[open] .faq__q::after { transform: rotate(-135deg); margin-top: -2px; }
.faq__a { padding: 0 22px 20px 52px; position: relative; font-size: 14.5px; }
.faq__a::before { content: "A"; position: absolute; left: 18px; top: -4px; font-family: var(--f-en); color: var(--c-coral); font-size: 20px; }

/* アクセス */
.access__inner { display: grid; gap: 32px; }
.access__table { margin-bottom: 22px; border-top: 2px solid var(--c-ink); }
.access__table th, .access__table td { padding: 14px 4px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; font-size: 14px; }
.access__table th { width: 7.5em; color: var(--c-ink); font-weight: 700; }
.access__map { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); background: var(--c-sky); }
.access__map iframe { display: block; width: 100%; height: 300px; border: 0; }
@media (min-width: 1024px) {
	.access__inner { grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
	.access__map iframe { height: 440px; }
}

/* 最後のCTA */
.cta { background: linear-gradient(135deg, var(--c-blue-deep), var(--c-blue)); color: #fff; padding: 72px 0 80px; text-align: center; position: relative; overflow: hidden; }
.cta__inner { position: relative; }
.cta .arcs { width: 120px; margin: 0 auto 10px; stroke-width: 7; }
.cta__en { font-family: var(--f-en); letter-spacing: .2em; font-size: 13px; opacity: .85; }
.cta__title { font-family: var(--f-head); font-size: 24px; line-height: 1.6; margin-top: 8px; }
.cta__text { margin-top: 14px; font-size: 14px; opacity: .92; }
.cta__btns { display: flex; flex-direction: column; gap: 12px; align-items: center; margin-top: 28px; }
@media (min-width: 768px) {
	.cta { padding: 96px 0 104px; }
	.cta__title { font-size: 32px; }
	.cta__btns { flex-direction: row; justify-content: center; }
}

/* フッター */
.site-footer { background: var(--c-ink); color: rgba(255, 255, 255, .85); position: relative; padding-bottom: 76px; }
.site-footer__arc { display: none; }
.site-footer__inner { display: grid; gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.site-footer__brand img { width: 110px; }
.site-footer__catch { font-family: var(--f-head); margin-top: 14px; color: #fff; }
.site-footer__address { font-size: 13px; margin-top: 12px; line-height: 1.9; }
.site-footer__ig { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; color: #fff; text-decoration: none; font-size: 13px; font-family: var(--f-en); letter-spacing: .06em; }
.site-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 20px; }
.site-footer__heading { font-family: var(--f-en); font-size: 12px; letter-spacing: .2em; color: var(--r2); margin-bottom: 10px; }
.site-footer__nav a { color: rgba(255, 255, 255, .85); text-decoration: none; font-size: 13px; line-height: 2.1; }
.site-footer__nav a:hover { color: #fff; text-decoration: underline; }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); padding: 18px 0; text-align: center; font-size: 12px; font-family: var(--f-en); letter-spacing: .1em; }
@media (min-width: 768px) {
	.site-footer__nav { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.site-footer { padding-bottom: 0; }
	.site-footer__inner { grid-template-columns: 300px 1fr; gap: 64px; padding-top: 72px; padding-bottom: 56px; }
}

/* スマホ固定CTA */
.sp-cta { position: fixed; z-index: 90; left: 0; right: 0; bottom: 0; display: flex; gap: 8px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96); box-shadow: 0 -6px 18px rgba(38, 53, 74, .1); }
.sp-cta__main { flex: 1; background: var(--c-coral); color: #fff; text-decoration: none; border-radius: 999px; text-align: center; font-weight: 700; padding: 8px 12px; line-height: 1.35; font-size: 15px; }
.sp-cta__sub { display: block; font-size: 11px; font-weight: 500; opacity: .95; }
.sp-cta__ig { flex: none; width: 52px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--c-blue); color: var(--c-blue); }
@media (min-width: 1024px) { .sp-cta { display: none; } }

/* 汎用（下層の仮表示） */
.page-plain { padding: 80px 0 120px; }
.entry__title { font-family: var(--f-head); color: var(--c-ink); font-size: 26px; margin-bottom: 20px; }
.page-plain p + p { margin-top: 16px; }

/* スクロール表示（JSが .reveal を付けたときだけ隠す） */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal { opacity: 1; transform: none; transition: none; }
}

/* ===== 淡い色 ===== */
/* セクション背景：虹の5色を淡くして、順に変化させる */
.features { background: linear-gradient(180deg, #edf4fb 0%, #f3f0fa 100%); }
.gen { background: #fdf1ec; }
.schedule { background: #eff6ec; }
.rules { background: #fdf6e7; }
.trial { background: #f3f0fa; }
.access { background: #eaf3fa; }
.concept__name { background: linear-gradient(120deg, #fdf1ec, #fdf6e7); }
/* カード類に虹色のアクセント */
.feature { border-top: 5px solid var(--r4); }
.feature:nth-child(1) { border-top-color: var(--r1); }
.feature:nth-child(2) { border-top-color: var(--r2); }
.feature:nth-child(3) { border-top-color: var(--r3); }
.feature:nth-child(5) { border-top-color: var(--r5); }
.rules__item { border-left: 4px solid var(--r4); }
.rules__item:nth-child(5n+1) { border-left-color: var(--r1); }
.rules__item:nth-child(5n+2) { border-left-color: var(--r2); }
.rules__item:nth-child(5n+3) { border-left-color: var(--r3); }
.rules__item:nth-child(5n+5) { border-left-color: var(--r5); }
.trial__step { border-top: 5px solid var(--r4); }
.trial__step:nth-child(1) { border-top-color: var(--r1); }
.trial__step:nth-child(2) { border-top-color: var(--r2); }
.trial__step:nth-child(3) { border-top-color: var(--r3); }
.lesson-mini { background: #eaf2f9; }
.lesson-mini:nth-child(5n+1) { background: #fdf1ec; }
.lesson-mini:nth-child(5n+2) { background: #fdf6e7; }
.lesson-mini:nth-child(5n+3) { background: #eff6ec; }
.lesson-mini:nth-child(5n+5) { background: #f3f0fa; }
.trainer:nth-child(3n+1) .trainer__msg { background: #fdf1ec; }
.trainer:nth-child(3n+2) .trainer__msg { background: #eff6ec; }
.trainer:nth-child(3n) .trainer__msg { background: #eaf2f9; }
.faq__item:nth-child(5n+1) { background: #fdf1ec; }
.faq__item:nth-child(5n+2) { background: #fdf6e7; }
.faq__item:nth-child(5n+3) { background: #eff6ec; }
.faq__item:nth-child(5n+4) { background: #eaf2f9; }
.faq__item:nth-child(5n+5) { background: #f3f0fa; }
.price-card:not(.price-card--main) { border-top: 5px solid var(--r3); }

/* ===== 下層ページ ===== */
.section--tint { background: linear-gradient(180deg, #f6f9fc 0%, #f8f5fb 100%); }
.sub-hero { position: relative; overflow: hidden; background: linear-gradient(120deg, #fdf1ec 0%, #fdf6e7 35%, #eff6ec 65%, #eaf2f9 100%); padding: 22px 0 48px; }
.sub-hero .container { position: relative; z-index: 1; }
.sub-hero__en { font-family: var(--f-en); font-size: 13px; letter-spacing: .26em; text-transform: uppercase; color: var(--c-blue); margin-top: 28px; }
.sub-hero__title { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 26px; line-height: 1.5; margin-top: 6px; letter-spacing: .05em; }
.sub-hero__lead { margin-top: 12px; font-size: 14.5px; max-width: 640px; }
.sub-hero__rainbow { position: absolute; right: -60px; bottom: -150px; width: 300px; height: 300px; opacity: .55; }
.sub-hero__rainbow span { position: absolute; inset: 0; border: 3px solid; border-radius: 50%; }
.sub-hero__rainbow span:nth-child(1) { border-color: var(--r1); }
.sub-hero__rainbow span:nth-child(2) { border-color: var(--r2); inset: 12px; }
.sub-hero__rainbow span:nth-child(3) { border-color: var(--r3); inset: 24px; }
.sub-hero__rainbow span:nth-child(4) { border-color: var(--r4); inset: 36px; }
.sub-hero__rainbow span:nth-child(5) { border-color: var(--r5); inset: 48px; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 12px; color: var(--c-mute); }
.crumbs li + li::before { content: "›"; margin: 0 8px; color: var(--c-mute); }
.crumbs a { color: var(--c-blue-deep); }
@media (min-width: 768px) {
	.sub-hero { padding: 26px 0 72px; }
	.sub-hero__title { font-size: 36px; }
	.sub-hero__lead { font-size: 16px; }
	.sub-hero__rainbow { width: 440px; height: 440px; right: 40px; bottom: -240px; }
}

/* レッスン別 */
.lp-intro__inner { display: grid; gap: 28px; }
.lp-intro__photo { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.lp-intro__photo img { width: 100%; height: 260px; object-fit: cover; }
.lp-intro__photo--none { min-height: 200px; display: grid; place-items: center; background: linear-gradient(135deg, #fdf1ec, #f3f0fa); }
.lp--r2 .lp-intro__photo--none { background: linear-gradient(135deg, #fdf6e7, #fdf1ec); }
.lp--r3 .lp-intro__photo--none { background: linear-gradient(135deg, #eff6ec, #eaf2f9); }
.lp--r4 .lp-intro__photo--none { background: linear-gradient(135deg, #eaf2f9, #f3f0fa); }
.lp--r5 .lp-intro__photo--none { background: linear-gradient(135deg, #f3f0fa, #fdf1ec); }
.lp-intro__mark { font-family: var(--f-en); font-size: 28px; letter-spacing: .2em; color: var(--c-blue); opacity: .55; text-align: center; padding: 0 20px; }
.lp-intro__title { font-family: var(--f-head); font-size: 24px; color: var(--c-ink); line-height: 1.5; margin-bottom: 14px; }
.lp-intro__title span { display: block; font-size: 14px; color: var(--c-blue); font-family: var(--f-base); font-weight: 700; margin-top: 2px; }
.lp-intro__body p + p { margin-top: 14px; }
.lp-intro__meta { margin-top: 20px; border-top: 1px solid var(--c-line); font-size: 14px; }
.lp-intro__meta > div { display: grid; grid-template-columns: 84px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--c-line); }
.lp-intro__meta dt { font-weight: 700; color: var(--c-ink); }
@media (min-width: 1024px) {
	.lp-intro__inner { grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
	.lp-intro__photo { border-radius: 200px 200px var(--radius) var(--radius); }
	.lp-intro__photo img { height: 420px; }
	.lp-intro__photo--none { min-height: 360px; }
}
.genres--lg { padding: 22px 20px 18px; }
@media (min-width: 768px) { .genres--lg .genres__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } .genres--lg .genres__item { font-size: 14px; padding: 12px; } }
.lp-points__grid { display: grid; gap: 40px; }
@media (min-width: 1024px) { .lp-points__grid { grid-template-columns: 1fr 1.2fr; gap: 56px; } }
.lp-h2 { font-family: var(--f-head); font-size: 22px; color: var(--c-ink); line-height: 1.5; margin-bottom: 18px; }
.lp-h2 span { color: var(--c-coral); }
.lp-h2--center { text-align: center; }
.lp-h3 { font-family: var(--f-head); font-size: 16px; color: var(--c-ink); margin-top: 28px; }
.lp-for__list { display: grid; gap: 10px; }
.lp-for__list li { position: relative; padding: 12px 16px 12px 46px; border-radius: 14px; background: #fdf6e7; font-weight: 500; color: var(--c-ink); font-size: 14.5px; }
.lp-for__list li:nth-child(4n+2) { background: #eff6ec; }
.lp-for__list li:nth-child(4n+3) { background: #eaf2f9; }
.lp-for__list li:nth-child(4n) { background: #fdf1ec; }
.lp-for__list li::before { content: ""; position: absolute; left: 18px; top: 50%; width: 12px; height: 7px; margin-top: -6px; border-left: 2.5px solid var(--c-coral); border-bottom: 2.5px solid var(--c-coral); transform: rotate(-45deg); }
.lp-feat__list { display: grid; gap: 14px; }
.lp-feat__item { position: relative; background: #fff; border-radius: 16px; padding: 18px 20px 18px 70px; box-shadow: var(--shadow); border-left: 4px solid var(--r4); }
.lp-feat__item:nth-child(5n+1) { border-left-color: var(--r1); }
.lp-feat__item:nth-child(5n+2) { border-left-color: var(--r2); }
.lp-feat__item:nth-child(5n+3) { border-left-color: var(--r3); }
.lp-feat__num { position: absolute; left: 20px; top: 16px; font-family: var(--f-en); font-size: 26px; color: var(--c-blue); line-height: 1; }
.lp-feat__title { font-family: var(--f-head); font-size: 17px; color: var(--c-ink); line-height: 1.5; }
.lp-feat__item p { font-size: 14px; margin-top: 4px; }
.lp-note { margin-top: 28px; font-size: 13px; padding: 14px 18px; border-radius: 12px; background: #fdf6e7; }
.lp-table { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); font-size: 14.5px; }
.lp-table th, .lp-table td { padding: 12px 16px; border-bottom: 1px solid var(--c-line); text-align: left; }
.lp-table thead th { background: var(--c-blue); color: #fff; font-size: 13px; letter-spacing: .1em; }
.lp-table tbody tr:last-child th, .lp-table tbody tr:last-child td { border-bottom: 0; }
.lp-table tbody th { width: 64px; color: var(--c-ink); }
.lp-table--price tbody th { width: auto; font-weight: 500; }
.lp-table--price th small { display: block; font-size: 12px; color: var(--c-mute); font-weight: 400; }
.lp-table--price td { text-align: right; font-family: var(--f-en); font-size: 18px; font-weight: 500; color: var(--c-ink); white-space: nowrap; }
.lp-time .schedule__notice { display: table; margin: 0 auto 16px; }
.lp-small { margin-top: 10px; font-size: 12px; color: var(--c-mute); text-align: right; }
.lp-center { text-align: center; margin-top: 24px; }
.lp-campaign { margin-top: 18px; padding: 16px 18px; border-radius: 14px; background: linear-gradient(120deg, #fff4ee, #fff8ea); border: 1.5px solid #f3cdbf; font-size: 13.5px; }
.lp-campaign strong { display: block; color: var(--c-coral-deep); font-family: var(--f-head); font-size: 15px; margin-bottom: 2px; }
.lp-other__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lp-other__list a { display: block; padding: 14px 16px; border-radius: 14px; background: var(--c-sky); text-decoration: none; color: var(--c-ink); font-weight: 700; font-size: 14px; line-height: 1.5; }
.lp-other__list li:nth-child(5n+1) a { background: #fdf1ec; }
.lp-other__list li:nth-child(5n+2) a { background: #fdf6e7; }
.lp-other__list li:nth-child(5n+3) a { background: #eff6ec; }
.lp-other__list li:nth-child(5n+5) a { background: #f3f0fa; }
.lp-other__list a span { display: block; font-family: var(--f-en); font-size: 10.5px; letter-spacing: .18em; color: var(--c-blue); font-weight: 500; }
.lp-other__list a:hover { box-shadow: inset 0 0 0 2px var(--c-blue); }
@media (min-width: 768px) { .lp-other__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* レッスン一覧 */
.li-intro__text { font-size: 15px; }
.li-cards { display: grid; gap: 20px; }
.li-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); text-decoration: none; color: var(--c-text); border-top: 5px solid var(--r4); transition: transform .25s; }
.li-card:hover { transform: translateY(-3px); }
.li-card--1 { border-top-color: var(--r1); }
.li-card--2 { border-top-color: var(--r2); }
.li-card--3 { border-top-color: var(--r3); }
.li-card--5 { border-top-color: var(--r5); }
.li-card__photo img { width: 100%; height: 190px; object-fit: cover; }
.li-card__photo--none { height: 190px; display: grid; place-items: center; background: linear-gradient(135deg, #fdf1ec, #eaf2f9); font-family: var(--f-en); letter-spacing: .2em; color: var(--c-blue); opacity: .8; font-size: 18px; text-align: center; padding: 0 16px; }
.li-card--2 .li-card__photo--none { background: linear-gradient(135deg, #fdf6e7, #eff6ec); }
.li-card--3 .li-card__photo--none { background: linear-gradient(135deg, #eff6ec, #eaf2f9); }
.li-card--5 .li-card__photo--none { background: linear-gradient(135deg, #f3f0fa, #fdf1ec); }
.li-card__body { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px 22px; flex: 1; }
.li-card__en { font-family: var(--f-en); font-size: 11px; letter-spacing: .22em; color: var(--c-blue); }
.li-card__title { font-family: var(--f-head); font-weight: 700; font-size: 20px; color: var(--c-ink); line-height: 1.4; }
.li-card__sub { font-size: 12.5px; color: var(--c-blue-deep); font-weight: 700; }
.li-card__lead { font-size: 14px; margin-top: 6px; }
.li-card__meta { font-size: 12.5px; color: var(--c-mute); }
.li-card__more { margin-top: auto; padding-top: 12px; font-weight: 700; font-size: 13px; color: var(--c-blue-deep); }
.li-card__more::after { content: " →"; }
@media (min-width: 768px) { .li-cards { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (min-width: 1024px) { .li-cards { grid-template-columns: repeat(3, 1fr); } }
.li-basics { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 8px 22px; }
.li-basics > div { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--c-line); font-size: 14.5px; }
.li-basics > div:last-child { border-bottom: 0; }
.li-basics dt { font-weight: 700; color: var(--c-ink); }
@media (min-width: 768px) { .li-basics > div { grid-template-columns: 160px 1fr; gap: 20px; } }
.lp-table tbody td:nth-child(2) { white-space: nowrap; font-family: var(--f-en); }
@media (max-width: 767px) { .lp-table th, .lp-table td { padding: 10px 10px; font-size: 13.5px; } .lp-table tbody th { width: 44px; } .lp-table--price tbody th { width: auto; } }

/* SEO・AIO：H1の場所・冒頭の概要 */
.sub-hero__pre { display: block; font-size: 13px; letter-spacing: .08em; color: var(--c-blue-deep); font-weight: 700; margin-bottom: 2px; }
@media (min-width: 768px) { .sub-hero__pre { font-size: 15px; } }
.lp-summary { padding: 32px 0 48px; }
.lp-summary__lead { font-size: 15px; color: var(--c-ink); }
.lp-summary__lead strong { color: var(--c-blue-deep); }
.lp-summary__list { margin-top: 14px; display: grid; gap: 0; background: #fff; border-radius: 16px; box-shadow: var(--shadow); padding: 6px 18px; border-top: 4px solid var(--r3); }
.lp-summary__list > div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--c-line); font-size: 14px; }
.lp-summary__list > div:last-child { border-bottom: 0; }
.lp-summary__list dt { font-weight: 700; color: var(--c-ink); }
@media (min-width: 768px) { .lp-summary { padding-top: 48px; padding-bottom: 64px; } .lp-summary__list { padding: 8px 28px; } .lp-summary__list > div { grid-template-columns: 110px 1fr; font-size: 15px; } }
.lp-intro__photo { position: relative; }
.lp-intro__cap { position: absolute; right: 10px; bottom: 8px; font-size: 11px; color: #fff; background: rgba(38, 53, 74, .55); padding: 2px 10px; border-radius: 999px; }
.sec-head__title small { display: block; font-size: .6em; color: var(--c-blue-deep); margin-top: 4px; }
.lp-intro__photo img[height="800"][width="534"] { object-position: 50% 22%; }

/* ご案内・NIJIROページ */
.sch-list { display: grid; gap: 12px; }
.sch-list__item { background: #fff; border-radius: 16px; padding: 16px 20px; box-shadow: var(--shadow); border-left: 4px solid var(--r4); }
.sch-list__item:nth-child(5n+1) { border-left-color: var(--r1); }
.sch-list__item:nth-child(5n+2) { border-left-color: var(--r2); }
.sch-list__item:nth-child(5n+3) { border-left-color: var(--r3); }
.sch-list__item:nth-child(5n+5) { border-left-color: var(--r5); }
.sch-list__title { font-family: var(--f-head); font-size: 17px; }
.sch-list__title a { color: var(--c-ink); text-decoration: none; }
.sch-list__title a::after { content: " →"; color: var(--c-blue); font-size: 14px; }
.sch-list__slots { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 8px; }
.sch-list__slots li { font-size: 13px; background: var(--c-sky); border-radius: 999px; padding: 3px 12px; }
.sch-list__slots b { color: var(--c-blue-deep); margin-right: 6px; }
.sch-list__none { font-size: 13.5px; color: var(--c-mute); margin-top: 6px; }
.schedule .sec-head .schedule__notice { margin-top: 12px; }
.gen__list--stack { grid-template-columns: 1fr !important; }
.faq-group + .faq-group { margin-top: 44px; }
.contact-cards { display: grid; gap: 14px; }
@media (min-width: 768px) { .contact-cards { grid-template-columns: 1fr 1fr; gap: 18px; } }
.contact-card { display: flex; flex-direction: column; gap: 4px; padding: 22px 22px 20px; border-radius: var(--radius); text-decoration: none; color: var(--c-text); background: #fdf1ec; transition: transform .25s; }
.contact-card:hover { transform: translateY(-3px); }
.contact-card--2 { background: #fdf6e7; }
.contact-card--3 { background: #eff6ec; }
.contact-card--4 { background: #eaf2f9; }
.contact-card__en { font-family: var(--f-en); font-size: 11px; letter-spacing: .22em; color: var(--c-blue); }
.contact-card__title { font-family: var(--f-head); font-weight: 700; font-size: 19px; color: var(--c-ink); }
.contact-card__title::after { content: " →"; color: var(--c-coral); }
.contact-card__text { font-size: 13.5px; }
.concept-text { display: grid; gap: 16px; font-size: 15.5px; }
.concept-text__strong { font-family: var(--f-head); font-weight: 700; font-size: 20px; color: var(--c-ink); line-height: 1.6; }
@media (min-width: 768px) { .concept-text__strong { font-size: 24px; } }
.policy h2 { font-family: var(--f-head); font-size: 18px; color: var(--c-ink); margin: 36px 0 10px; padding-left: 12px; border-left: 4px solid var(--r3); line-height: 1.5; }
.policy p + p { margin-top: 12px; }
.policy ul { margin-top: 10px; display: grid; gap: 6px; }
.policy li { position: relative; padding-left: 16px; font-size: 14.5px; }
.policy li::before { content: ""; position: absolute; left: 2px; top: .75em; width: 6px; height: 6px; border-radius: 50%; background: var(--r4); }
.policy__date { margin-top: 36px; text-align: right; font-size: 13px; color: var(--c-mute); }

/* 反応ライト（ジュニア・シニアのレッスンページ） */
.rlight__h { margin-top: 36px; font-size: 18px; font-weight: 700; color: var(--c-ink); text-align: center; }
.rlight__steps { margin-top: 16px; display: grid; gap: 12px; }
.rlight__step { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: var(--radius); padding: 16px 20px; box-shadow: var(--shadow); font-size: 15px; }
.rlight__num { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--c-blue-deep); color: #fff; font-family: var(--f-en); font-weight: 500; display: grid; place-items: center; }
.rlight__skills { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rlight__skills li { background: var(--c-sky); border-radius: 14px; padding: 14px 10px; text-align: center; font-weight: 700; font-size: 14px; color: var(--c-blue-deep); }
.rlight__levels { margin-top: 16px; display: grid; gap: 12px; }
.rlight__level { background: #fff; border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow); border-left: 6px solid var(--c-senior); font-size: 14.5px; }
.rlight__level--middle { border-left-color: var(--c-yoga); }
.rlight__level--high { border-left-color: var(--c-pilates); }
.rlight__lvname { font-weight: 700; font-size: 16px; color: var(--c-ink); margin-bottom: 4px; }
.rlight__lvname small { margin-left: 10px; font-size: 12px; font-weight: 500; color: var(--c-mute); }
.rlight__use { margin: 16px auto 0; max-width: 560px; display: grid; gap: 8px; }
.rlight__use li { position: relative; padding: 12px 16px 12px 44px; background: var(--c-cream); border-radius: 14px; font-size: 15px; }
.rlight__use li::before { content: ""; position: absolute; left: 18px; top: 50%; width: 14px; height: 8px; border-left: 3px solid var(--c-coral); border-bottom: 3px solid var(--c-coral); transform: translateY(-70%) rotate(-45deg); }
.rlight__note { margin-top: 16px; text-align: center; font-size: 12.5px; color: var(--c-mute); }
@media (min-width: 768px) {
	.rlight__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rlight__step { flex-direction: column; text-align: center; padding: 22px 18px; }
	.rlight__skills { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rlight__levels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 予約・LINEの動線 */
.btn--line { background: #00873c; color: #fff; box-shadow: 0 10px 22px rgba(0, 135, 60, .25); }
.btn--line:hover { background: #006e31; transform: translateY(-2px); }
.cta .btn--line { border-color: transparent; }
.cta__tel { margin-top: 18px; font-size: 14px; }
.cta__tel a { color: #fff; font-weight: 700; font-family: var(--f-en); font-size: 17px; letter-spacing: .04em; }
.trial__btns { margin-top: 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
@media (min-width: 768px) { .trial__btns { flex-direction: row; justify-content: center; } }
.sp-cta__line { flex: none; min-width: 88px; border-radius: 999px; background: #00873c; color: #fff; text-decoration: none; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; line-height: 1.2; padding: 6px 12px; }
.sp-cta__line small { font-size: 10px; font-weight: 500; }
@media (min-width: 1024px) {
	.site-nav__cta { gap: 8px; }
	.site-nav__cta .btn--line { padding: 12px 18px; }
}
@media (min-width: 1024px) {
	.site-nav__cta .btn { white-space: nowrap; }
	.site-nav__list a { white-space: nowrap; }
}
@media (min-width: 1024px) and (max-width: 1360px) {
	.site-header__desc { display: none; }
}
@media (min-width: 1024px) and (max-width: 1180px) {
	.site-nav { gap: 10px; }
	.site-nav__list a { padding: 6px 5px; font-size: 12.5px; }
	.site-nav__cta .btn { padding: 11px 14px; font-size: 13px; }
}

/* TikTok・X */
.site-nav__ig.is-fill svg, .site-footer__ig.is-fill svg, .sns-links .is-fill svg { fill: currentColor; stroke: none; width: 18px; height: 18px; }
.site-footer__sns { display: flex; flex-wrap: wrap; gap: 4px 18px; margin-top: 14px; }
.site-footer__sns .site-footer__ig { margin-top: 0; }
.sns-links { list-style: none; margin: 22px 0 8px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.sns-links a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--c-blue); color: var(--c-blue); text-decoration: none; font-size: 14px; font-weight: 600; }
.sns-links svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; }
.sns-links svg circle:last-child { fill: currentColor; stroke: none; }
@media (min-width: 1024px) and (max-width: 1360px) {
	.site-nav__ig { width: 38px; height: 38px; }
	.site-nav__ig svg { width: 19px; height: 19px; }
	.site-nav__ig.is-fill svg { width: 16px; height: 16px; }
}

/* 11-10 見た目点検：紺の帯の上のリンク（フッターの電話・LINE・運営・関連施設、料金の特典帯）が読めなかったので白＋下線に */
.site-footer__address a, .perk__text a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
/* 11-10 見た目点検：スマホで見出しの最後の1〜2文字だけが次の行に落ちるのを防ぐ（行の長さをそろえる・Chromeは文節で改行） */
.sec-head__title, .lp-h2 { text-wrap: balance; word-break: auto-phrase; }

/* ===== コラム（inc/blog.php） ===== */
.col__title { font-family: var(--f-head); font-weight: 700; color: var(--c-ink); font-size: 24px; line-height: 1.55; margin-top: 6px; text-wrap: balance; word-break: auto-phrase; }
.col__meta { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13px; color: var(--c-mute); }
.col__cat, .col-card__cat { display: inline-block; padding: 2px 12px; border-radius: 999px; background: var(--c-sky); color: var(--c-blue-deep); font-size: 12px; font-weight: 700; text-decoration: none; }
.col__section { padding-top: 40px; }
.col-body { font-size: 16px; line-height: 2; color: var(--c-text); }
.col-body > * + * { margin-top: 1.2em; }
.col-body__eyecatch img { width: 100%; height: auto; border-radius: var(--radius); }
.col-body h2 { margin-top: 2.4em; padding: 14px 18px; border-left: 6px solid var(--c-blue); background: var(--c-sky); border-radius: 0 12px 12px 0; font-family: var(--f-head); font-size: 21px; line-height: 1.5; color: var(--c-ink); scroll-margin-top: 90px; }
.col-body h3 { margin-top: 2em; padding-bottom: 8px; border-bottom: 2px solid var(--c-line); font-family: var(--f-head); font-size: 18px; line-height: 1.5; color: var(--c-ink); scroll-margin-top: 90px; }
.col-body ul, .col-body ol { padding-left: 1.4em; }
.col-body li + li { margin-top: .4em; }
.col-body strong { color: var(--c-ink); background: linear-gradient(transparent 62%, #fbe3c4 62%); }
.col-body a { text-underline-offset: 3px; }
.col-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.col-body table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.7; }
.col-body th, .col-body td { border: 1px solid var(--c-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.col-body th { background: var(--c-sky); color: var(--c-ink); white-space: nowrap; }
.col-toc { background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 18px 22px; }
.col-toc__ttl { font-weight: 700; color: var(--c-ink); }
.col-toc ol { margin-top: 8px; padding-left: 1.3em; font-size: 14.5px; line-height: 1.8; }
.col-toc li.is-sub { list-style: none; margin-left: 1em; font-size: 13.5px; }
.col-toc a { color: var(--c-blue-deep); }
.col-cta { margin-top: 48px; padding: 28px 24px; border-radius: var(--radius); background: var(--c-cream); text-align: center; }
.col-cta__ttl { font-family: var(--f-head); font-weight: 700; font-size: 19px; color: var(--c-ink); line-height: 1.6; text-wrap: balance; }
.col-cta__txt { margin-top: 10px; font-size: 14.5px; }
.col-cta__btns { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.col-faq { margin-top: 48px; }
.col-faq__ttl, .col-related__ttl { font-family: var(--f-head); font-size: 21px; color: var(--c-ink); margin-bottom: 16px; }
.col-about { margin-top: 48px; padding: 22px 24px; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; }
.col-about__role { font-size: 12px; color: var(--c-mute); letter-spacing: .1em; }
.col-about__name { margin-top: 4px; font-weight: 700; color: var(--c-ink); }
.col-about__txt { margin-top: 8px; font-size: 14px; }
.col-about__link { display: inline-block; margin-top: 10px; font-size: 14px; font-weight: 700; }
.col-related { margin-top: 56px; }
.col-grid { display: grid; gap: 20px; }
.col-card__link { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); text-decoration: none; color: var(--c-text); }
.col-card__img { display: block; aspect-ratio: 16 / 9; background: var(--c-sky); overflow: hidden; }
.col-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.col-card__img.is-none { display: grid; place-items: center; font-family: var(--f-en); letter-spacing: .2em; color: var(--c-blue); }
.col-card__body { display: block; padding: 16px 18px 20px; }
.col-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12.5px; color: var(--c-mute); }
.col-card__title { display: block; margin-top: 8px; font-weight: 700; color: var(--c-ink); line-height: 1.6; }
.col-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.col-cats__item { padding: 6px 16px; border-radius: 999px; border: 1px solid var(--c-line); background: #fff; font-size: 13.5px; text-decoration: none; color: var(--c-ink); }
.col-cats__item.is-current { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.col-pager { margin-top: 32px; text-align: center; }
.col-pager .page-numbers { display: inline-block; min-width: 40px; padding: 8px 12px; margin: 0 2px; border-radius: 10px; text-decoration: none; }
.col-pager .page-numbers.current { background: var(--c-ink); color: #fff; }
.col-empty { padding: 40px 0; text-align: center; color: var(--c-mute); }
.col__back { margin-top: 40px; text-align: center; }
.col-body .post-password-form { padding: 24px; background: var(--c-sky); border-radius: 16px; }
.col-body .post-password-form input[type="password"] { padding: 10px 12px; border: 1px solid var(--c-line); border-radius: 8px; font-size: 16px; }
@media (min-width: 768px) {
	.col__title { font-size: 30px; }
	.col-grid { grid-template-columns: repeat(2, 1fr); }
	.col-body h2 { font-size: 23px; }
}
@media (min-width: 1024px) {
	.col-grid { grid-template-columns: repeat(3, 1fr); }
}
