/*
Theme Name: SOWA Group
Theme URI: https://sowa.kids/
Author: 株式会社 創和
Description: 創和グループ(創和学園・NOAH KIDS・Apple Kids・SOWA NEXT)のオリジナルテーマ。デザイン草案「sowa.kids トップページ草案」をもとに作成。
Version: 0.20.6
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: sowa
*/

/* ===== 基本 ===== */
:root {
	--sowa-green-deep: #2B5434;
	--sowa-green: #2A4A3F;
	--sowa-green-text: #327B32;
	--sowa-green-bright: #3F963F;
	--sowa-ink: #252525;
	--sowa-muted: #5E6A5F;
	--sowa-line: #D9E4D9;
	--sowa-cream: #F7F2E8;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: #FFFFFF;
	font-family: 'Manrope', 'Noto Sans JP', sans-serif;
	color: var(--sowa-ink);
	font-size: 16px;
	line-height: 1.8;
}
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: 'Zen Kaku Gothic New', sans-serif; }
a { color: var(--sowa-green-text); text-decoration: none; }
a:hover { color: var(--sowa-green-deep); }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--sowa-green-bright); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ===== デザイン草案のインタラクション ===== */
.sk-card { transition: transform .25s ease, box-shadow .25s ease; }
.sk-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(36,69,42,.14); }
.sk-zoom { transition: transform .6s ease; }
.sk-card:hover .sk-zoom { transform: scale(1.05); }
.sk-btn { transition: transform .12s ease; }
.sk-btn:hover { transform: scale(1.04); }
.sk-row:hover { background: #F4F9F4; }
.sk-app:hover { background: rgba(255,255,255,.08); }
details summary { cursor: pointer; list-style: none; }
details summary::-webkit-details-marker { display: none; }
@media (prefers-reduced-motion: reduce) {
	.sk-card, .sk-zoom, .sk-btn { transition: none; }
}

/* ===== ヘッダー ===== */
.sowa-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 20;
	background: rgba(255,255,255,0.97);
	border-bottom: 1px solid #E3EBE3;
}
.sowa-header__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px clamp(20px, 4vw, 48px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px 32px;
}
.sowa-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 30px;
	font-size: 14px;
	font-weight: 700;
	font-family: 'Noto Sans JP', sans-serif;
}
.sowa-nav a { color: var(--sowa-ink); }
.sowa-nav a:hover { color: var(--sowa-green-text); }
.sowa-header__actions { display: flex; align-items: center; gap: 20px; }
.sowa-menu { display: none; position: relative; }
.sowa-menu summary {
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 12px; color: var(--sowa-green-deep);
	border: 1px solid var(--sowa-line);
}
.sowa-menu__panel {
	position: absolute; right: 0; top: 54px;
	width: min(280px, calc(100vw - 32px));
	background: #FFFFFF;
	border: 1px solid var(--sowa-line);
	border-radius: 16px;
	box-shadow: 0 20px 50px rgba(36,69,42,0.14);
	padding: 8px;
	display: flex; flex-direction: column;
	font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 15px;
}
.sowa-menu__panel a {
	color: var(--sowa-ink);
	padding: 12px 14px; min-height: 44px;
	border-radius: 10px;
	display: flex; align-items: center;
}
.sowa-menu__panel a:hover { background: #F4F9F4; }

@media (max-width: 1100px) {
	.sowa-nav { display: none; }
	.sowa-menu { display: block; }
}
@media (max-width: 640px) {
	.sowa-header__tel { display: none !important; }
	.sowa-header__cta { padding: 10px 16px !important; font-size: 13px !important; }
	.sowa-header__logo img { height: 32px !important; }
	.sowa-header__actions { gap: 10px; }
}

/* ===== グループ切替バー:スマホは1行・横スクロール ===== */
@media (max-width: 640px) {
	.sowa-group-bar > div { flex-wrap: nowrap !important; }
	.sowa-group-bar nav { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
	.sowa-group-bar nav::-webkit-scrollbar { display: none; }
	.sowa-group-bar > div > a { display: none !important; }
	.sowa-group-bar nav > span { white-space: nowrap; }
	.sowa-header__cta { white-space: nowrap; }
	.sowa-header__cta svg { display: none; }
}

/* ===== 各事業ページ(デザイン草案テンプレート):スマホ調整 ===== */
@media (max-width: 640px) {
	.sowa-design [style*="minmax("] { grid-template-columns: minmax(0, 1fr) !important; }
	.sowa-design [style*="display: flex"] > [style*="flex: 1 1"],
	.sowa-design [style*="display: flex"] > [style*="flex: 2 1"],
	.sowa-design [style*="display: flex"] > [style*="flex: 3 1"] { min-width: 0; flex-basis: 100% !important; }
	.sowa-design [style*="grid-template-columns: 1fr 1fr"] > * { min-width: 0; }
	.sowa-design img { max-width: 100%; }
	.sowa-design header nav { gap: 2px 16px !important; }
}

/* ===== お問い合わせフォーム(Contact Form 7) ===== */
.sowa-cf7 .sowa-cf7__form { display: flex; flex-direction: column; }
.sowa-cf7--noah .sowa-cf7__form { gap: 22px; }
.sowa-cf7--sowa .sowa-cf7__form { gap: 26px; }
.sowa-cf7 .wpcf7-form-control-wrap { display: block; }
.sowa-cf7 button[type="submit"] { align-self: center; }
.sowa-cf7 .wpcf7-not-valid-tip { color: #C42F5D; font-size: 13px; font-weight: 700; margin-top: 6px; display: block; }
.sowa-cf7 .wpcf7-response-output { margin: 0 !important; border-radius: 14px; padding: 14px 18px !important; font-size: 14px; }
.sowa-cf7 .wpcf7-spinner { margin: 8px auto 0; display: block; }
.sowa-cf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 10px; }
.sowa-cf7 .wpcf7-list-item { margin: 0; }
.sowa-cf7 .wpcf7-acceptance .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 10px; }
.sowa-cf7 .wpcf7-acceptance input { width: 20px; height: 20px; }
/* NOAH KIDS */
.sowa-cf7--noah .wpcf7-radio .wpcf7-list-item label {
	display: inline-flex; align-items: center; gap: 8px;
	background: #FFFBF3; border-radius: 999px; padding: 6px 16px;
	font-size: 14px; font-weight: 400; min-height: 40px; box-sizing: border-box; cursor: pointer;
}
.sowa-cf7--noah textarea.nk-in { min-height: 160px; }
.sowa-cf7--noah .wpcf7-acceptance input { accent-color: #F06BA8; }
@media (max-width: 640px) {
	.sowa-cf7 { padding: 28px 20px !important; border-radius: 28px !important; }
	.sowa-cf7 button[type="submit"] { padding-left: 32px !important; padding-right: 32px !important; }
}
/* Apple Kids */
.sowa-cf7--apple .sowa-cf7__form { gap: 22px; }
.sowa-cf7--apple .wpcf7-radio .wpcf7-list-item label {
	display: inline-flex; align-items: center; gap: 8px;
	background: #FFFAF5; border-radius: 999px; padding: 6px 16px;
	font-size: 14px; font-weight: 400; min-height: 40px; box-sizing: border-box; cursor: pointer;
}
.sowa-cf7--apple textarea.ak-in { min-height: 160px; }
.sowa-cf7--apple .wpcf7-radio input, .sowa-cf7--apple .wpcf7-acceptance input { accent-color: #E4007F; }
/* 創和学園 */
.sowa-cf7--sowa .sowa-in {
	width: 100%; box-sizing: border-box;
	border: 1px solid #C9D6CF; border-radius: 12px;
	padding: 14px 16px; font-size: 16px; font-family: inherit;
	background: #FFFFFF; min-height: 52px; color: #252525;
}
.sowa-cf7--sowa textarea.sowa-in { resize: vertical; }
.sowa-cf7--sowa .sowa-in:focus { outline: 3px solid #D0E8D1; border-color: #3F963F; }
.sowa-cf7--sowa .wpcf7-radio { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.sowa-cf7--sowa .wpcf7-radio .wpcf7-list-item label {
	display: flex; align-items: center; gap: 10px;
	border: 1px solid #C9D6CF; border-radius: 12px; padding: 12px 16px;
	background: #FFFFFF; min-height: 48px; box-sizing: border-box; cursor: pointer;
}
.sowa-cf7--sowa .wpcf7-radio input, .sowa-cf7--sowa .wpcf7-acceptance input { accent-color: #3F963F; width: 18px; height: 18px; }

/* ===== トップページ:スマホ調整 ===== */
@media (max-width: 640px) {
	.home main section > div[style*="min-height: 680px"] { min-height: 0 !important; }
	.home main section div[style*="min-height: 520px"] { min-height: 300px !important; }
	.home main section div[style*="padding-bottom: 14px; scroll-snap-type"] > a { flex-basis: 280px !important; }
	.home main section div[style*="grid-template-columns: repeat(auto-fit, minmax(340px"] { grid-template-columns: 1fr !important; }
	.home main section div[style*="grid-template-columns: repeat(auto-fit, minmax(300px"] { grid-template-columns: 1fr !important; }
	.home main section div[style*="grid-template-columns: repeat(2, minmax(0, 1fr))"] { grid-template-columns: 1fr !important; }
	.home main div[style*="width: 210px; border-radius: 34px"] { width: 150px !important; }
}

/* ===== 下層ページ共通 ===== */
.sowa-container { max-width: 1184px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); }
.sowa-container--narrow { max-width: 880px; }
.sowa-section { padding: clamp(48px, 7vw, 96px) 0; }
.sowa-eyebrow {
	margin: 0 0 8px;
	font-family: 'Manrope', sans-serif;
	font-size: 12px; font-weight: 800; letter-spacing: 0.3em;
	color: var(--sowa-green-text);
}
.sowa-pagehead { background: var(--sowa-cream); padding: clamp(48px, 7vw, 88px) 0 clamp(40px, 5vw, 64px); }
.sowa-pagehead__title {
	margin: 0;
	font-size: clamp(28px, 3.4vw, 42px);
	line-height: 1.35; font-weight: 700;
	color: var(--sowa-green-deep);
}

/* お知らせ一覧 */
.sowa-catnav {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin-bottom: 28px;
	font-family: 'Noto Sans JP', sans-serif; font-size: 14px; font-weight: 700;
}
.sowa-catnav a {
	border: 1px solid var(--sowa-line);
	border-radius: 999px;
	padding: 8px 18px; min-height: 40px;
	display: inline-flex; align-items: center;
	color: var(--sowa-green-deep);
}
.sowa-catnav a[aria-current="page"] { background: var(--sowa-green-deep); border-color: var(--sowa-green-deep); color: #FFFFFF; }
.sowa-newslist {
	list-style: none; margin: 0; padding: 0;
	border-top: 1px solid var(--sowa-line);
	font-family: 'Noto Sans JP', sans-serif;
}
.sowa-empty { color: var(--sowa-muted); }
.navigation.pagination { margin-top: 40px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; font-family: 'Manrope', 'Noto Sans JP', sans-serif; font-weight: 700; }
.nav-links .page-numbers {
	min-width: 44px; min-height: 44px; padding: 0 14px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--sowa-line); border-radius: 999px;
	color: var(--sowa-green-deep);
}
.nav-links .page-numbers.current { background: var(--sowa-green-deep); border-color: var(--sowa-green-deep); color: #FFFFFF; }

/* お知らせ詳細・固定ページ本文 */
.sowa-entry-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-family: 'Manrope', sans-serif; font-weight: 600; color: var(--sowa-muted); font-size: 14px; }
.sowa-entry-title { margin: 12px 0 32px; font-size: clamp(26px, 3vw, 36px); line-height: 1.45; color: var(--sowa-green-deep); }
.sowa-entry-thumb { margin: 0 0 32px; }
.sowa-entry-thumb img { border-radius: 20px; display: block; width: 100%; }
.sowa-entry { font-family: 'Noto Sans JP', sans-serif; line-height: 1.95; }
.sowa-entry > * + * { margin-top: 1.4em; }
.sowa-entry h2 { font-size: 24px; color: var(--sowa-green-deep); padding-bottom: 10px; border-bottom: 2px solid var(--sowa-line); margin-top: 2.2em; }
.sowa-entry h3 { font-size: 20px; color: var(--sowa-green-deep); margin-top: 1.8em; }
.sowa-entry img { border-radius: 14px; }
.sowa-entry a { text-decoration: underline; text-underline-offset: 3px; }
.sowa-entry table { width: 100%; border-collapse: collapse; }
.sowa-entry th, .sowa-entry td { border: 1px solid var(--sowa-line); padding: 12px 14px; text-align: left; }
.sowa-entry th { background: #F4F8F4; }
.sowa-back { margin-top: 56px; font-weight: 700; font-family: 'Noto Sans JP', sans-serif; }

/* WordPress 標準クラス */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text, figcaption { font-size: 13px; color: var(--sowa-muted); margin-top: 8px; }

/* =====================================================================
   スマホ用ナビゲーション(全ページ共通) v0.5
   ===================================================================== */
.sx-header { --sx-c: #3F963F; --sx-deep: #2B5434; --sx-tint: #F2F8F2; --sx-ink: #252525; --sx-on: #FFFFFF; }
.sx-header--noah  { --sx-c: #F06BA8; --sx-deep: #3A3F47; --sx-tint: #FFF3F8; --sx-ink: #3A3F47; --sx-c2: #2E86C8; }
.sx-header--apple { --sx-c: #E4007F; --sx-deep: #3A3335; --sx-tint: #FFF1F7; --sx-ink: #3A3335; }
.sx-header--next  { --sx-c: #1F3A5F; --sx-deep: #1F3A5F; --sx-tint: #EEF4FB; --sx-ink: #1F2D44; --sx-c2: #F2709C; }
.sx-header--corp  { --sx-c: #22252B; --sx-deep: #22252B; --sx-tint: #F3F2EE; --sx-ink: #22252B; }

.sx-header { top: var(--wp-admin--admin-bar--height, 0px) !important; transition: box-shadow .3s ease, background-color .3s ease; }
.sx-scrolled .sx-header { box-shadow: 0 6px 24px rgba(20, 30, 40, .08) !important; }

/* メニューボタン(PCでは非表示) */
.sx-toggle { display: none; }
.sx-drawer, .sx-dock { display: none; }

@media (max-width: 1100px) {
	/* ヘッダーはロゴ+メニューボタンだけのコンパクトな1行に */
	.sx-header:not(.sx-header--home) > div:first-child {
		flex-wrap: nowrap !important;
		padding-right: 76px !important;
		min-height: 64px;
		align-items: center !important;
	}
	.sx-header:not(.sx-header--home) > div:first-child > *:not(:first-child) { display: none !important; }
	.sx-header:not(.sx-header--home) > div:first-child > a:first-child { min-width: 0; }
	.sx-header--noah > div:first-child > a:first-child { padding: 8px 16px !important; gap: 10px !important; }
	.sx-header--noah > div:first-child > a:first-child img { width: 44px !important; height: 44px !important; }
	.sx-header--noah > div:first-child > a:first-child > span > span:first-child,
	.sx-header--apple > div:first-child > a:first-child > span > span:first-child { font-size: 10px !important; }
	.sx-header--noah > div:first-child > a:first-child > span > span:last-child { font-size: 16px !important; }
	.sx-header--apple > div:first-child > a:first-child img { height: 44px !important; }
	.sx-header--apple > div:first-child > a:first-child > span > span:last-child { font-size: 15px !important; }
	.sx-header--sowa:not(.sx-header--home) > div:first-child > a:first-child img { height: 34px !important; }
	.sx-header--next > div:first-child > a:first-child > span:first-child { font-size: 21px !important; }
	.sx-header--corp > div:first-child > a:first-child > span:first-child { font-size: 17px !important; }

	.sx-toggle {
		display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
		width: 52px; height: 52px; padding: 0; margin: 0;
		border: 0; border-radius: 16px; cursor: pointer;
		background: var(--sx-c); color: var(--sx-on);
		font: inherit; -webkit-tap-highlight-color: transparent;
		box-shadow: 0 6px 16px rgba(0,0,0,.12);
		transition: transform .15s ease, background-color .2s ease;
	}
	.sx-toggle:active { transform: scale(.94); }
	.sx-header:not(.sx-header--home) .sx-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }
	.sx-header:not(.sx-header--home) .sx-toggle:active { transform: translateY(-50%) scale(.94); }
	.sx-header--home .sx-toggle { width: 46px; height: 46px; border-radius: 14px; }
	.sx-toggle__bars { position: relative; width: 20px; height: 14px; display: block; }
	.sx-toggle__bars span {
		position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor;
		transition: transform .3s cubic-bezier(.6,.05,.3,1), opacity .2s ease, top .3s cubic-bezier(.6,.05,.3,1);
	}
	.sx-toggle__bars span:nth-child(1) { top: 0; }
	.sx-toggle__bars span:nth-child(2) { top: 6px; width: 70%; }
	.sx-toggle__bars span:nth-child(3) { top: 12px; }
	.sx-toggle[aria-expanded="true"] .sx-toggle__bars span:nth-child(1) { top: 6px; transform: rotate(45deg); }
	.sx-toggle[aria-expanded="true"] .sx-toggle__bars span:nth-child(2) { opacity: 0; }
	.sx-toggle[aria-expanded="true"] .sx-toggle__bars span:nth-child(3) { top: 6px; transform: rotate(-45deg); }
	.sx-toggle__label { font-family: 'Manrope', sans-serif; font-size: 8.5px; font-weight: 800; letter-spacing: .14em; line-height: 1; }

	/* メニュー本体:右からスライド */
	.sx-drawer { display: block; position: fixed; inset: 0; z-index: 100000; }
	.sx-drawer[hidden] { display: none; }
	.sx-drawer__scrim { position: absolute; inset: 0; background: rgba(20, 24, 28, .45); opacity: 0; transition: opacity .35s ease; backdrop-filter: blur(2px); }
	.sx-drawer__panel {
		position: absolute; top: 0; right: 0; bottom: 0;
		width: min(400px, 88vw);
		background: #FFFFFF; color: var(--sx-ink);
		display: flex; flex-direction: column;
		overflow-y: auto; overscroll-behavior: contain;
		padding: 0 0 calc(24px + env(safe-area-inset-bottom));
		transform: translateX(100%);
		transition: transform .38s cubic-bezier(.22,.8,.24,1);
		box-shadow: -20px 0 60px rgba(0,0,0,.18);
		font-family: 'Noto Sans JP', sans-serif;
	}
	.sx-drawer.is-open .sx-drawer__scrim { opacity: 1; }
	.sx-drawer.is-open .sx-drawer__panel { transform: none; }
	.sx-drawer__head {
		position: sticky; top: 0; z-index: 1;
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 14px 14px 14px 22px; min-height: 68px;
		background: var(--sx-c); color: var(--sx-on);
	}
	.sx-drawer__name { color: inherit !important; font-family: 'Zen Maru Gothic', 'Zen Kaku Gothic New', sans-serif; font-weight: 700; font-size: 17px; letter-spacing: .04em; }
	.sx-drawer__close {
		width: 44px; height: 44px; border: 0; border-radius: 12px; cursor: pointer;
		background: rgba(255,255,255,.18); color: inherit;
		display: inline-flex; align-items: center; justify-content: center;
	}
	.sx-drawer__nav { display: flex; flex-direction: column; padding: 10px 14px; }
	.sx-drawer__nav a {
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		min-height: 56px; padding: 0 10px 0 12px;
		border-bottom: 1px solid #EEF0F0;
		color: var(--sx-ink) !important; font-weight: 700; font-size: 16px;
		opacity: 0; transform: translateX(24px);
		transition: opacity .35s ease, transform .45s cubic-bezier(.22,.8,.24,1), background-color .2s ease;
		transition-delay: calc(80ms + var(--i, 0) * 45ms);
	}
	.sx-drawer.is-open .sx-drawer__nav a { opacity: 1; transform: none; }
	.sx-drawer__nav a svg { color: var(--sx-c); flex: 0 0 16px; transition: transform .2s ease; }
	.sx-drawer__nav a:active { background: var(--sx-tint); }
	.sx-drawer__nav a:active svg { transform: translateX(3px); }
	.sx-drawer__nav a[aria-current="page"] { color: var(--sx-c) !important; background: var(--sx-tint); border-radius: 12px; border-bottom-color: transparent; }
	.sx-drawer__nav a[aria-current="page"]::before { content: ''; width: 4px; align-self: stretch; margin: 14px 0; border-radius: 4px; background: var(--sx-c); order: -1; }
	.sx-drawer__nav a[aria-current="page"] span { flex: 1; }
	.sx-drawer__actions { display: grid; gap: 10px; padding: 14px 24px 6px; }
	.sx-btn {
		display: flex; align-items: center; justify-content: center; gap: 10px;
		min-height: 54px; border-radius: 999px; padding: 8px 20px;
		font-weight: 700; font-size: 15px; text-align: center; line-height: 1.3;
	}
	.sx-btn--primary { background: var(--sx-c2, var(--sx-c)); color: #FFFFFF !important; box-shadow: 0 10px 22px rgba(0,0,0,.12); }
	.sx-btn--line { border: 2px solid var(--sx-c); color: var(--sx-c) !important; background: #FFFFFF; }
	.sx-btn--line span { display: flex; flex-direction: column; font-family: 'Manrope', sans-serif; font-size: 18px; font-weight: 800; }
	.sx-btn--line small { font-family: 'Noto Sans JP', sans-serif; font-size: 11px; font-weight: 500; }
	.sx-drawer__group { margin-top: auto; padding: 22px 24px 0; }
	.sx-drawer__group-title { margin: 0 0 10px; font-family: 'Manrope', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .24em; color: #8A9094; }
	.sx-drawer__group-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.sx-g {
		display: flex; flex-direction: column; justify-content: center; gap: 2px;
		min-height: 64px; padding: 10px 12px; border-radius: 14px;
		background: #F5F6F6; color: #2A2E33 !important; border: 2px solid transparent;
		line-height: 1.3;
	}
	.sx-g strong { font-family: 'Manrope', 'Noto Sans JP', sans-serif; font-size: 14px; }
	.sx-g small { font-size: 11px; color: #6E757A; }
	.sx-g--sowa strong { color: #327B32; } .sx-g--noah strong { color: #E0559A; } .sx-g--apple strong { color: #D10074; } .sx-g--next strong { color: #1F3A5F; }
	.sx-g[aria-current="true"] { border-color: var(--sx-c); background: #FFFFFF; }
	.sx-drawer__corp { display: block; margin-top: 16px; font-size: 12px; color: #6E757A !important; }
	.sx-lock, .sx-lock body { overflow: hidden; }
}

/* 画面下の固定ボタン(スマホ) */
@media (max-width: 768px) {
	.sx-dock {
		display: flex; gap: 8px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		background: rgba(255,255,255,.96);
		box-shadow: 0 -6px 20px rgba(0,0,0,.08);
		backdrop-filter: blur(8px);
		transform: translateY(110%);
		transition: transform .35s cubic-bezier(.22,.8,.24,1);
		font-family: 'Noto Sans JP', sans-serif;
	}
	.sx-scrolled .sx-dock { transform: none; }
	.sx-lock .sx-dock { transform: translateY(110%); }
	.sx-dock a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border-radius: 999px; font-weight: 700; font-size: 15px; }
	.sx-dock__tel { flex: 0 0 38%; border: 2px solid var(--sx-c); color: var(--sx-c) !important; background: #FFFFFF; }
	.sx-dock__cta { flex: 1; background: var(--sx-c2, var(--sx-c)); color: #FFFFFF !important; }
	.sx-dock--sowa  { --sx-c: #3F963F; } .sx-dock--noah { --sx-c: #F06BA8; --sx-c2: #2E86C8; } .sx-dock--apple { --sx-c: #E4007F; } .sx-dock--next { --sx-c: #1F3A5F; --sx-c2: #F2709C; }
	body:has(.sx-dock) { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
}

/* =====================================================================
   表示アニメーション(JavaScriptで自動付与) v0.5
   ===================================================================== */
.sx-progress {
	position: fixed; left: 0; right: 0; top: 0; height: 3px; z-index: 100001;
	transform-origin: 0 50%; transform: scaleX(0);
	background: linear-gradient(90deg, #3F963F, #F2B13B, #F06BA8);
	pointer-events: none;
}
.sowa-design--noahkids-top .sx-progress, body[class*="sowa-design--noahkids"] .sx-progress { background: linear-gradient(90deg, #F06BA8, #FFC94D, #2E86C8); }
body[class*="sowa-design--applekids"] .sx-progress { background: linear-gradient(90deg, #E4007F, #FF9BC8); }
body[class*="sowa-design--next"] .sx-progress { background: linear-gradient(90deg, #1F3A5F, #F2709C); }

.sx-anim [data-sx] {
	--sx-ease: cubic-bezier(.2,.75,.2,1);
	opacity: 0;
	transition: opacity .8s var(--sx-ease), transform 1s var(--sx-ease), filter .9s var(--sx-ease), clip-path 1.1s var(--sx-ease);
	transition-delay: var(--sx-d, 0ms);
	will-change: opacity, transform;
}
.sx-anim [data-sx="rise"]   { transform: translate3d(0, 32px, 0); }
.sx-anim [data-sx="fade"]   { transform: translate3d(0, 10px, 0); }
.sx-anim [data-sx="left"]   { transform: translate3d(-48px, 0, 0); }
.sx-anim [data-sx="right"]  { transform: translate3d(48px, 0, 0); }
.sx-anim [data-sx="pop"]    { transform: translate3d(0, 18px, 0) scale(.92); }
.sx-anim [data-sx="tilt"]   { transform: translate3d(0, 36px, 0) rotate(-2.5deg); transform-origin: 0 100%; }
.sx-anim [data-sx="tilt"]:nth-child(even) { transform: translate3d(0, 36px, 0) rotate(2.5deg); transform-origin: 100% 100%; }
.sx-anim [data-sx="flip"]   { transform: perspective(900px) rotateX(22deg) translate3d(0, 24px, 0); transform-origin: 50% 0; }
.sx-anim [data-sx="blur"]   { transform: translate3d(0, 14px, 0); filter: blur(12px); letter-spacing: .06em; transition-property: opacity, transform, filter, letter-spacing; }
.sx-anim [data-sx="unveil"] { opacity: 1; clip-path: inset(0 0 100% 0 round 0); transform: scale(1.08); }
.sx-anim [data-sx="unveil"]:is(img) { transform-origin: 50% 30%; }
.sx-anim [data-sx].is-in {
	opacity: 1; transform: none; filter: none; letter-spacing: inherit;
}
.sx-anim [data-sx="unveil"].is-in { clip-path: inset(0 0 0 0); }
.sx-anim [data-sx="blur"].is-in { letter-spacing: normal; }

/* 先頭の写真:ゆっくりズームイン */
.sx-kb { animation: sx-kb 2.6s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sx-kb { from { transform: scale(1.12); filter: saturate(.8) brightness(1.05); } to { transform: none; filter: none; } }

/* 装飾の小さな画像:ふわふわ */
.sx-float { animation: sx-float 5.5s ease-in-out infinite; }
.sx-float:nth-of-type(2n) { animation-duration: 6.5s; animation-delay: -2s; }
.sx-float:nth-of-type(3n) { animation-duration: 7.5s; animation-delay: -4s; }
@keyframes sx-float { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 -10px; rotate: 2deg; } }

/* ボタン:光が走る */
.sk-btn, .nk-btn, .ak-btn, .sn-btn, .sx-btn--primary, .sx-dock__cta { position: relative; overflow: hidden; isolation: isolate; }
.sk-btn::after, .nk-btn::after, .ak-btn::after, .sn-btn::after, .sx-btn--primary::after, .sx-dock__cta::after {
	content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; z-index: -1; pointer-events: none;
	background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
	transform: skewX(-20deg); transition: left .7s ease;
}
.sk-btn:hover::after, .nk-btn:hover::after, .ak-btn:hover::after, .sn-btn:hover::after, .sx-btn--primary:hover::after { left: 130%; }
.sx-dock__cta::after { animation: sx-shine 4.5s ease-in-out 2s infinite; }
@keyframes sx-shine { 0%, 70% { left: -60%; } 100% { left: 130%; } }

/* カードのホバーをなめらかに */
.sk-card, [class*="-card"] { transition: transform .35s cubic-bezier(.2,.75,.2,1), box-shadow .35s ease; }

@media (prefers-reduced-motion: reduce) {
	.sx-kb, .sx-float, .sx-dock__cta::after { animation: none !important; }
	.sx-drawer__panel, .sx-drawer__scrim, .sx-drawer__nav a, .sx-dock { transition: none !important; }
	.sx-drawer__nav a { opacity: 1; transform: none; }
	.sx-progress { display: none; }
}
.sx-header:not([style*="sticky"]):not(.sowa-header) { position: relative; }
/* 左右から入る動きで横スクロールが出ないように */
.sowa-design > div, .home main, .sowa-site { overflow-x: clip !important; overflow-y: visible !important; }
@media (max-width: 1100px) {
	.sx-header--corp { position: sticky !important; z-index: 20; background: #FFFFFF; }
}

/* =====================================================================
   ページ上部へ戻るボタン v0.6
   ===================================================================== */
.sx-totop {
	--sx-c: #3F963F;
	position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: calc(22px + env(safe-area-inset-bottom)); z-index: 9991;
	width: 60px; height: 60px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
	background: #FFFFFF; color: var(--sx-c);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0;
	box-shadow: 0 10px 28px rgba(20, 30, 40, .16);
	opacity: 0; visibility: hidden; transform: translateY(16px) scale(.85);
	transition: opacity .35s ease, transform .45s cubic-bezier(.22,.8,.24,1), visibility 0s linear .45s, box-shadow .25s ease;
	-webkit-tap-highlight-color: transparent;
}
.sx-totop.is-show { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.sx-totop:hover { box-shadow: 0 14px 34px rgba(20, 30, 40, .22); }
.sx-totop:hover .sx-totop__arrow { transform: translateY(-3px); }
.sx-totop:focus-visible { outline: 3px solid var(--sx-c); outline-offset: 3px; }
.sx-totop__ring { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.sx-totop__ring circle { fill: none; stroke-width: 3; stroke: #EEF0F0; }
.sx-totop__ring .sx-totop__bar { stroke: var(--sx-c); stroke-linecap: round; transition: stroke-dashoffset .15s linear; }
.sx-totop__arrow { position: relative; transition: transform .3s cubic-bezier(.22,.8,.24,1); margin-top: 2px; }
.sx-totop__label { position: relative; font-family: 'Manrope', sans-serif; font-size: 9px; font-weight: 800; letter-spacing: .16em; line-height: 1; margin-top: 1px; }
.sx-totop.is-launch .sx-totop__arrow { animation: sx-launch .7s cubic-bezier(.3,.6,.3,1); }
@keyframes sx-launch { 0% { transform: none; } 40% { transform: translateY(-14px); opacity: 0; } 41% { transform: translateY(12px); opacity: 0; } 100% { transform: none; opacity: 1; } }
body[class*="sowa-design--noahkids"] .sx-totop { --sx-c: #F06BA8; }
body[class*="sowa-design--applekids"] .sx-totop { --sx-c: #E4007F; }
body[class*="sowa-design--next"] .sx-totop { --sx-c: #1F3A5F; }
body[class*="sowa-design--privacy"] .sx-totop { --sx-c: #22252B; }
@media (max-width: 768px) {
	.sx-totop { width: 52px; height: 52px; right: 14px; }
	/* 画面下の固定ボタンと重ならないように */
	body:has(.sx-dock) .sx-totop { bottom: calc(82px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
	.sx-totop, .sx-totop__arrow { transition: none; }
	.sx-totop.is-launch .sx-totop__arrow { animation: none; }
}
html { scroll-behavior: auto !important; }

/* =====================================================================
   v0.7 地図・Instagram・絞り込み・SOWA NEXT・影の調整
   ===================================================================== */
/* 地図 */
.sowa-map { position: relative; overflow: hidden; isolation: isolate; }
.sowa-map__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.sowa-mapbtn {
	align-self: flex-start;
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 46px; padding: 10px 18px 10px 16px; border-radius: 999px;
	background: #FFFFFF; color: var(--c, #2B5434) !important;
	border: 2px solid var(--c, #2B5434);
	font-weight: 700; font-size: 14px; line-height: 1.3; font-family: 'Noto Sans JP', sans-serif;
	transition: background-color .2s ease, color .2s ease, transform .15s ease;
}
.sowa-mapbtn:hover { background: var(--c, #2B5434); color: #FFFFFF !important; }
.sowa-mapbtn:active { transform: scale(.97); }
.sowa-mapbtn__ext { opacity: .7; }
@media (max-width: 640px) {
	.sowa-map { min-height: 260px !important; border-radius: 22px !important; }
	.sowa-mapbtn { align-self: stretch; justify-content: center; }
}

/* Instagram */
.sowa-igfeed { width: 100%; }
.sowa-igfeed #sb_instagram, .sowa-igfeed .sbi { padding: 0 !important; }
.sowa-igfeed #sb_instagram #sbi_images .sbi_item img, .sowa-igfeed .sbi_photo { border-radius: 14px; }
.sowa-igbtn svg { flex: 0 0 20px; }
@media (max-width: 640px) {
	.sowa-design .sowa-igfallback { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
	.sowa-igfallback img { border-radius: 12px !important; }
}

/* 創和学園トップ:学びを探す */
.sowa-finder { transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.sowa-finder:hover { border-color: #3F963F !important; background: #F2F8F2; transform: translateY(-2px); }
.sowa-finder span[aria-hidden] { transition: transform .2s ease; }
.sowa-finder:hover span[aria-hidden] { transform: translateX(4px); }

/* カテゴリーの絞り込み */
.sn-filter button { cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease; }
.sn-filter button:active { transform: scale(.95); }
.sn-filter button[aria-pressed="true"] { background: #1F3A5F !important; color: #FFFFFF !important; border-color: #1F3A5F !important; }
.sn-filter button[aria-pressed="false"] { background: #FFFFFF !important; color: #1F3A5F !important; border: 1.5px solid #D5E2EF !important; }
.sn-filter button[aria-pressed="false"]:hover { border-color: #F2709C !important; color: #D44F80 !important; }
.sx-filter-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sx-filter-empty { text-align: center; color: #6A7A90; padding: 40px 0; }
.sn-apps [data-cat][hidden] { display: none !important; }
.sx-pop-in { animation: sx-pop-in .55s cubic-bezier(.2,.9,.3,1.2) both; animation-delay: calc(var(--sx-n, 0) * 70ms); }
@keyframes sx-pop-in { from { opacity: 0; transform: translateY(18px) scale(.94); } to { opacity: 1; transform: none; } }

/* SOWA NEXT:スマホのファーストビュー(アイコンを小さく、かわいく) */
@media (max-width: 768px) {
	.sowa-design .sn-hero-icons {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 14px 16px !important;
		max-width: 320px !important;
		width: 100%;
		margin: 8px auto 0 !important;
		padding: 22px 22px 26px;
		background: rgba(255,255,255,.55);
		border-radius: 32px;
		box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
		backdrop-filter: blur(6px);
		flex: 0 1 320px !important;
	}
	.sowa-design .sn-hero-icons img {
		border-radius: 24% !important;
		margin-top: 0 !important;
		border: 3px solid #FFFFFF;
		box-shadow: 0 4px 10px rgba(31,58,95,.12) !important;
	}
	.sowa-design .sn-hero-icons > :nth-child(3n+2) img { margin-top: 14px !important; }
	.sowa-design .sn-hero-icons > :nth-child(odd) img { rotate: -4deg; }
	.sowa-design .sn-hero-icons > :nth-child(even) img { rotate: 3deg; }
	.sowa-design--next-top section:first-of-type > div { padding-top: 48px !important; padding-bottom: 56px !important; gap: 32px !important; }
	/* アプリカード:小さめのアイコンと控えめな影 */
	.sn-apps .sn-card img[style*="width: 84px"] { width: 64px !important; height: 64px !important; border-radius: 18px !important; box-shadow: 0 4px 10px rgba(31,58,95,.12) !important; }
	.sn-apps .sn-card > div { padding: 0 22px 24px !important; }
	.sn-apps .sn-card h3 { font-size: 20px !important; }
	.sn-apps { gap: 20px !important; }
	.sn-card { box-shadow: 0 2px 12px rgba(31,58,95,.06); }
	.sn-filter { gap: 6px !important; }
	.sn-filter button { padding: 6px 14px !important; min-height: 40px !important; }
}

/* スマホでの影:にじみが大きく見えるものを控えめに */
@media (max-width: 768px) {
	/* NOAH KIDS のカード(固い影)→ やわらかい影 */
	.sowa-design [style*="box-shadow: 0 4px 0 #F0EDE3"] { box-shadow: 0 6px 18px rgba(58,63,71,.07), 0 1px 3px rgba(58,63,71,.05) !important; }
	.sowa-design [style*="box-shadow: 0 2px 0 #F3EDE2"] { box-shadow: 0 1px 0 #F3EDE2 !important; }
	/* 色付きボタンの影を小さく */
	.sowa-design [style*="rgba(240,107,168,0.35)"] { box-shadow: 0 6px 14px rgba(240,107,168,.25) !important; }
	.sowa-design [style*="rgba(11,132,201,0.28)"] { box-shadow: 0 6px 14px rgba(11,132,201,.2) !important; }
	.sowa-design [style*="rgba(224,201,60,0.35)"] { box-shadow: 0 6px 14px rgba(224,201,60,.25) !important; }
	.sowa-design [style*="rgba(228,0,127,0.25)"] { box-shadow: 0 6px 14px rgba(228,0,127,.18) !important; }
	.sowa-design [style*="rgba(111,186,44,0.3)"] { box-shadow: 0 6px 14px rgba(111,186,44,.2) !important; }
	.sowa-design [style*="rgba(242,112,156,0.3)"] { box-shadow: 0 6px 14px rgba(242,112,156,.22) !important; }
	.sowa-design [style*="box-shadow: 0 20px 50px"] { box-shadow: 0 10px 26px rgba(36,69,42,.10) !important; }
	/* 影が切れないよう、影付き要素の親に余白 */
	.sowa-design [style*="box-shadow"] { -webkit-backface-visibility: hidden; }
}

/* v0.7.1 スマホ:お問い合わせ等の追従(sticky)サイドを解除し、普通に流れるように */
@media (max-width: 960px) {
	.sowa-design [style*="position: sticky"]:not(header) { position: static !important; top: auto !important; }
}

/* =====================================================================
   v0.8 お知らせ(事業別の一覧・詳細)
   ===================================================================== */
.sowa-newsx-wrap { max-width: 1040px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
.sowa-newsx-wrap--narrow { max-width: 860px; }
.sowa-newsx-head { background: var(--tint); padding: clamp(28px, 4vw, 44px) 0 clamp(36px, 5vw, 56px); }
.sowa-newsx-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 13px; color: #6B7176; margin-bottom: 18px; }
.sowa-newsx-crumbs a { color: var(--c) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.sowa-newsx-crumbs [aria-current] { color: #6B7176; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }
.sowa-newsx-eyebrow { margin: 0; display: flex; align-items: center; gap: 12px; font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: .3em; color: var(--c); }
.sowa-newsx-eyebrow span { font-family: 'Noto Sans JP', sans-serif; letter-spacing: .04em; font-size: 12px; background: #FFFFFF; border: 1px solid var(--c); border-radius: 999px; padding: 1px 12px; }
.sowa-newsx-title { margin: 10px 0 0; font-size: clamp(26px, 3.4vw, 38px); line-height: 1.35; color: var(--c); }
.sowa-newsx { padding: clamp(36px, 5vw, 64px) 0 clamp(64px, 8vw, 104px); font-family: 'Noto Sans JP', sans-serif; }
.sowa-newsx-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--c); background: #FFFFFF; border-radius: 0 0 20px 20px; }
.sowa-newsx-list li { border-bottom: 1px solid #E8EAEA; }
.sowa-newsx-row { display: flex; align-items: center; gap: 8px 28px; flex-wrap: wrap; padding: 22px 16px; color: #2A2E33 !important; transition: background-color .2s ease; }
.sowa-newsx-row:hover { background: var(--tint); }
.sowa-newsx-row time { font-family: 'Manrope', sans-serif; font-weight: 700; font-size: 14px; color: var(--c); width: 92px; }
.sowa-newsx-row__title { flex: 1 1 280px; font-weight: 500; line-height: 1.7; }
.sowa-newsx-row__arrow { color: var(--c); transition: transform .2s ease; }
.sowa-newsx-row:hover .sowa-newsx-row__arrow { transform: translateX(4px); }
.sowa-newsx-empty { padding: 40px 0; color: #6B7176; text-align: center; }
.sowa-newsx-pager ul { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.sowa-newsx-pager .page-numbers { min-width: 44px; min-height: 44px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #D8DDDD; border-radius: 999px; color: var(--c) !important; font-weight: 700; }
.sowa-newsx-pager .page-numbers.current { background: var(--c); border-color: var(--c); color: #FFFFFF !important; }
.sowa-newsx-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 24px; margin-top: 44px; }
.sowa-newsx-btn {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 52px; padding: 12px 28px; border-radius: 999px;
	background: var(--c); color: #FFFFFF !important; font-weight: 700; font-size: 15px;
	box-shadow: 0 6px 16px rgba(0,0,0,.10); transition: transform .15s ease, box-shadow .2s ease;
}
.sowa-newsx-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0,0,0,.14); }
.sowa-newsx-btn--line { background: #FFFFFF; color: var(--c) !important; border: 2px solid var(--c); box-shadow: none; }
.sowa-newsx-link { color: var(--c) !important; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.sowa-newsx-card { background: #FFFFFF; border-radius: 24px; padding: clamp(24px, 4vw, 48px); box-shadow: 0 2px 16px rgba(0,0,0,.05); }
.sowa-newsx--single .sowa-entry-title { color: #22262B; margin: 14px 0 28px; }
.sowa-newsx--single .sowa-entry-meta time { color: var(--c); font-weight: 800; }
.sowa-newsx--single .sowa-entry h2 { color: var(--c); }
.sowa-newsx-adjacent { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-top: 28px; }
.sowa-newsx-adjacent a { display: flex; flex-direction: column; gap: 2px; padding: 16px 20px; border-radius: 16px; background: #FFFFFF; border: 1px solid #E3E6E6; color: #2A2E33 !important; transition: border-color .2s ease; }
.sowa-newsx-adjacent a:hover { border-color: var(--c); }
.sowa-newsx-adjacent small { color: var(--c); font-weight: 700; font-size: 12px; }
.sowa-newsx-adjacent__next { text-align: right; }
.sowa-bnews-row { transition: color .2s ease, padding-left .2s ease; }
.sowa-bnews-row:hover { padding-left: 6px !important; }
@media (max-width: 640px) {
	.sowa-newsx-row { padding: 18px 8px; gap: 2px 12px; }
	.sowa-newsx-row time { width: 100%; font-size: 13px; }
	.sowa-newsx-row__arrow { display: none; }
	.sowa-newsx-actions { flex-direction: column; align-items: stretch; }
	.sowa-newsx-btn { justify-content: center; }
	.sowa-newsx-link { text-align: center; }
	.sowa-newsx-card { border-radius: 18px; }
}

/* =====================================================================
   v0.8.1 創和学園トップ:ファーストビュー(スマホ・タブレットは写真を一番上に)
   ===================================================================== */
@media (max-width: 1100px) {
	.home .sk-hero__inner { flex-direction: column !important; min-height: 0 !important; }
	.home .sk-hero__media {
		order: -1;
		flex: 0 0 auto !important;
		min-height: 0 !important;
		height: min(64svh, 520px);
		height: min(64vh, 520px);
		overflow: hidden;
	}
	.home .sk-hero__media img { object-position: 64% 26% !important; }
	/* 写真の下端を緑になじませる */
	.home .sk-hero__media::after {
		content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 38%;
		background: linear-gradient(180deg, rgba(43,84,52,0) 0%, rgba(43,84,52,.55) 60%, #2B5434 100%);
		pointer-events: none;
	}
	.home .sk-hero__media p { right: 16px !important; bottom: auto !important; top: 18px; font-size: 10px !important; opacity: .9; text-shadow: 0 1px 8px rgba(0,0,0,.25); }
	.home .sk-hero__text {
		position: relative; z-index: 1;
		flex: 0 0 auto !important;
		margin-top: -84px;
		padding: 0 22px 92px !important;
		gap: 18px !important;
		justify-content: flex-start !important;
	}
	.home .sk-hero__eyebrow {
		align-self: flex-start;
		font-size: 10px !important; letter-spacing: .26em !important;
		background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22);
		padding: 6px 12px; border-radius: 999px; color: #DCEBE2 !important;
		backdrop-filter: blur(6px);
	}
	.home .sk-hero__text h1 { font-size: clamp(44px, 13vw, 56px) !important; line-height: 1.12 !important; letter-spacing: .06em !important; text-shadow: 0 2px 24px rgba(0,0,0,.18); }
	.home .sk-hero__text > p:not(.sk-hero__eyebrow) { font-size: 15px !important; line-height: 1.9; color: #CFE2D7 !important; }
	.home .sk-hero__btns { flex-direction: column; gap: 10px !important; margin-top: 4px; }
	.home .sk-hero__btns .sk-btn { width: 100%; justify-content: center; min-height: 54px !important; padding: 14px 24px !important; }
	.home .sk-hero__btns .sk-btn svg { display: inline !important; }
	.home .sk-hero__stats {
		display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important;
		margin-top: 10px !important; padding: 18px 0 0 !important;
		border-top: 1px solid rgba(255,255,255,.16) !important;
	}
	.home .sk-hero__stats > div { align-items: center; text-align: center; padding: 0 4px; }
	.home .sk-hero__stats > div + div { border-left: 1px solid rgba(255,255,255,.14); }
	.home .sk-hero__stats > div > span:first-child { font-size: 24px !important; }
	.home .sk-hero__stats > div > span:last-child { font-size: 10.5px !important; line-height: 1.5; margin-top: 4px; }
}
@media (max-width: 380px) {
	.home .sk-hero__stats > div > span:last-child { font-size: 9.5px !important; letter-spacing: -.02em; }
}

/* v0.9 SOWA NEXT:アプリへのリンク */
.sn-hero-link { display: block; border-radius: 26%; -webkit-tap-highlight-color: transparent; }
.sn-hero-link img { display: block; transition: transform .25s cubic-bezier(.2,.8,.3,1.3), box-shadow .25s ease; }
.sn-hero-link:hover img, .sn-hero-link:focus-visible img { transform: translateY(-6px) scale(1.05); }
.sn-shot-link { display: block; overflow: hidden; }
.sn-shot-link > img, .sn-shot-link > div { transition: transform .6s cubic-bezier(.2,.75,.2,1); }
.sn-card:hover .sn-shot-link > img, .sn-card:hover .sn-shot-link > div { transform: scale(1.03); }
.sk-shot-link { text-decoration: none; }
.sk-shot-link > div { transition: transform .35s cubic-bezier(.2,.8,.3,1.2); }
.sk-shot-link:hover > div:last-child { transform: translateY(-6px); }
.sk-shot-link:hover > div:first-child { transform: translateY(22px); }

/* v0.10 App Store ボタン:光や矢印の動きをなくし、影でやさしく反応 */
.sn-btn.sn-store { overflow: visible; isolation: auto; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; box-shadow: 0 2px 0 rgba(31,58,95,.12); }
.sn-btn.sn-store::after { content: none !important; display: none !important; }
.sn-btn.sn-store:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(31,58,95,.22); background: #24456F !important; }
.sn-btn.sn-store:active { transform: translateY(0); box-shadow: 0 3px 8px rgba(31,58,95,.18); }

/* v0.10 「Googleマップで開く」を1行に */
.sowa-mapbtn { white-space: nowrap; }
.sowa-mapbtn span:not(.screen-reader-text) { white-space: nowrap; }
.home .sowa-map + div .sowa-mapbtn, .home div[style*="background: #F4F8F4; border-radius: 16px"] .sowa-mapbtn { width: 100%; justify-content: center; padding-left: 10px; padding-right: 10px; font-size: 13px; }
.home div[style*="background: #F4F8F4; border-radius: 16px"] .sowa-mapbtn__ext { display: none; }

/* v0.10 カード:ホバー時の影をやわらかく(枠の外まで自然に) */
.sk-card:hover { box-shadow: 0 14px 34px rgba(36,69,42,.12); }

/* =====================================================================
   v0.11 保育園メニュー/事業カードのロゴ/コースカード/特別講座
   ===================================================================== */
/* 保育園:NOAH KIDS・Apple Kids を選べるメニュー */
.sowa-navdrop { position: relative; display: inline-flex; align-items: center; }
.sowa-navdrop__top { display: inline-flex; align-items: center; gap: 5px; }
.sowa-navdrop__top svg { transition: transform .2s ease; opacity: .7; }
.sowa-navdrop__menu {
	position: absolute; top: calc(100% + 10px); left: 50%; z-index: 50;
	width: 240px; padding: 8px;
	background: #FFFFFF; border: 1px solid #E3EBE3; border-radius: 16px;
	box-shadow: 0 18px 40px rgba(43,84,52,.14);
	display: flex; flex-direction: column; gap: 2px;
	opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
	transition: opacity .2s ease, transform .25s ease, visibility 0s linear .25s;
}
.sowa-navdrop__menu::before { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.sowa-navdrop:hover .sowa-navdrop__menu, .sowa-navdrop:focus-within .sowa-navdrop__menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.sowa-navdrop:hover .sowa-navdrop__top svg, .sowa-navdrop:focus-within .sowa-navdrop__top svg { transform: rotate(180deg); }
.sowa-navdrop__menu a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; color: #252525 !important; border: 0 !important; transition: background-color .15s ease; }
.sowa-navdrop__menu a:hover { background: #F2F8F2; }
.sowa-navdrop__menu img { width: 36px; height: 36px; object-fit: contain; border-radius: 10px; background: #FFFFFF; flex: 0 0 36px; }
.sowa-navdrop__menu span { display: flex; flex-direction: column; line-height: 1.35; }
.sowa-navdrop__menu strong { font-size: 14px; }
.sowa-navdrop__menu small { font-size: 11px; color: #6B7176; font-weight: 500; }

/* トップ:3事業カードのロゴバッジ */
.sk-bizlogo {
	position: absolute; left: 14px; top: 14px; z-index: 1;
	display: inline-flex; align-items: center; gap: 10px;
	background: rgba(255,255,255,.96); border-radius: 14px; padding: 6px 12px 6px 8px;
	box-shadow: 0 6px 18px rgba(0,0,0,.12); backdrop-filter: blur(6px);
}
.sk-bizlogo img { display: block; height: 34px; width: auto; }
.sk-bizlogo--wide img { height: 22px; margin: 6px 2px; }
.sk-bizlogo--sq img { width: 34px; object-fit: contain; }
.sk-bizlogo__num { font-family: 'Manrope', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .12em; color: #8A9A94; border-left: 1px solid #E3EBE3; padding-left: 10px; }

/* トップ:年齢からコースを探す(写真に下からグラデーション) */
.sk-coursecard { isolation: isolate; }
.sk-coursecard::after {
	content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(to top, rgba(24,46,39,.94) 0%, rgba(24,46,39,.72) 26%, rgba(24,46,39,.22) 52%, rgba(24,46,39,0) 70%);
	transition: opacity .35s ease;
}
.sk-coursecard__body { z-index: 1; }
.sk-coursecard__body h3 { font-size: 22px !important; letter-spacing: .02em; text-shadow: 0 1px 12px rgba(0,0,0,.18); }
.sk-coursecard__body p { color: #DCEBE2 !important; }
.sk-coursecard__body::after {
	content: '詳しく見る →'; display: inline-block; margin-top: 12px;
	font-size: 12px; font-weight: 700; letter-spacing: .04em; color: #FFFFFF;
	border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 2px;
	transition: border-color .2s ease;
}
.sk-coursecard:hover .sk-coursecard__body::after { border-color: #FFFFFF; }

/* =====================================================================
   v0.12 SOWA NEXT:アプリのアイコンが隠れないように/ダウンロード教材
   ===================================================================== */
/* 写真の拡大でアイコンの上半分が隠れていたのを修正 */
.sn-card > div > div:first-child { position: relative; z-index: 2; }
.sn-card > div > div:first-child img { position: relative; }
.sn-card .sn-shot-link { position: relative; z-index: 0; }

/* ダウンロード教材 */
.sn-store-item {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(24px, 4vw, 56px);
	background: #FFFFFF; border-radius: 32px; padding: clamp(20px, 3vw, 36px);
	box-shadow: 0 10px 30px rgba(31,58,95,.07);
}
.sn-store-item + .sn-store-item { margin-top: 28px; }
.sn-store-item__main { display: block; border-radius: 22px; overflow: hidden; background: #F3F7FB; aspect-ratio: 1 / 1; }
.sn-store-item__main img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .25s ease, transform .6s cubic-bezier(.2,.75,.2,1); }
.sn-store-item__main:hover img { transform: scale(1.03); }
.sn-store-item__thumbs { display: flex; gap: 10px; margin-top: 12px; }
.sn-store-item__thumbs button { width: 72px; height: 72px; padding: 0; border-radius: 14px; overflow: hidden; border: 2px solid transparent; background: #F3F7FB; cursor: pointer; transition: border-color .2s ease, transform .15s ease; }
.sn-store-item__thumbs button[aria-pressed="true"] { border-color: #F2709C; }
.sn-store-item__thumbs button:hover { transform: translateY(-2px); }
.sn-store-item__thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sn-store-item__body { display: flex; flex-direction: column; gap: 12px; align-self: center; }
.sn-store-tag { font-size: 12px; font-weight: 700; color: #2C6FB7; background: #EAF3FC; padding: 3px 12px; border-radius: 999px; }
.sn-store-tag--cat { color: #FFFFFF; background: #F2709C; }
.sn-store-item__catch { margin: 4px 0 0; font-size: 14px; color: #D44F80; font-weight: 700; }
.sn-store-item__title { margin: 0; font-family: 'Zen Maru Gothic', sans-serif; font-weight: 700; font-size: clamp(24px, 2.4vw, 30px); color: #1F3A5F; line-height: 1.4; }
.sn-store-item__desc { margin: 0; color: #3E4F68; font-size: 14.5px; line-height: 1.9; }
.sn-store-item__points { list-style: none; margin: 4px 0 0; padding: 16px 20px; background: #F6FAFE; border-radius: 18px; display: grid; gap: 8px; font-size: 14px; color: #1F2D44; }
.sn-store-item__points li { display: flex; gap: 10px; align-items: flex-start; }
.sn-store-item__points li::before { content: ''; flex: 0 0 18px; height: 18px; margin-top: 4px; border-radius: 50%; background: #F2709C url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat; }
.sn-store-item__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 8px; }
.sn-store-item__price { margin: 0; font-family: 'Manrope', 'Noto Sans JP', sans-serif; font-weight: 800; font-size: 26px; color: #1F3A5F; }
.sn-store-buy { display: inline-flex; align-items: center; justify-content: center; background: #F2709C; color: #FFFFFF !important; padding: 14px 32px; border-radius: 999px; font-weight: 700; font-size: 15px; min-height: 52px; box-shadow: 0 8px 18px rgba(242,112,156,.28); transition: transform .2s ease, box-shadow .2s ease; }
.sn-store-buy::after, .sn-store-all::after { content: none !important; }
.sn-store-buy:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(242,112,156,.34); }
@media (max-width: 768px) {
	.sn-store-item { grid-template-columns: minmax(0, 1fr); border-radius: 24px; }
	.sn-store-item__buy { flex-direction: column; align-items: stretch; }
	.sn-store-buy { width: 100%; }
	.sn-store-item__thumbs button { width: 64px; height: 64px; }
}

/* ===== v0.13 旧サイトから取り込んだ記事 ===== */
.sowa-legacy-embed img { max-width: 100%; height: auto; }
.sowa-legacy-embed table { max-width: 100%; display: block; overflow-x: auto; }

/* ===== v0.15 ロボット教室 ===== */
.rb{font-family:'Noto Sans JP',sans-serif;color:#252525;line-height:1.9}
.rb h1,.rb h2,.rb h3{font-family:'Zen Kaku Gothic New',sans-serif}
.rb-wrap{max-width:1184px;margin:0 auto;padding:0 clamp(20px,4vw,48px);box-sizing:border-box}
.rb-sec{padding:clamp(72px,9vw,120px) 0;background:#fff}
.rb-sec--cream{background:#F7F2E8}
.rb-sec--green{background:#2B5434;color:#fff}
.rb-center{text-align:center}
.rb-eyebrow{margin:0 0 6px;font-family:'Manrope',sans-serif;font-size:12px;font-weight:800;letter-spacing:.3em;color:#327B32}
.rb-eyebrow--light{color:#A5D3A6}
.rb-h2{margin:0 0 20px;font-size:clamp(26px,3vw,38px);line-height:1.4;color:#2B5434;font-weight:700}
.rb-sec--green .rb-h2{color:#fff}
.rb-lead{margin:0 auto 36px;max-width:40em;color:#4D5A55}
.rb-note{font-size:12.5px;color:#6B7772;margin:14px 0 0}
.rb-note--light{color:#C1DBC2}
/* hero */
.rb-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 78% 40%,#2F6B38 0,#2B5434 62%)}
.rb-hero__dots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 2px,transparent 2px);background-size:26px 26px}
.rb-hero__inner{position:relative;max-width:1184px;margin:0 auto;padding:48px clamp(20px,4vw,48px) 72px;display:flex;align-items:center;gap:32px;box-sizing:border-box}
.rb-hero__text{flex:1 1 560px;min-width:0}
.rb-crumb{font-size:12px;color:#C1DBC2;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.rb-crumb a{color:#C1DBC2}.rb-crumb span:last-child{color:#fff}
.rb-tag{display:inline-block;margin:0;background:#F2B233;color:#2B5434;font-weight:900;border-radius:999px;padding:7px 18px;font-size:14px}
.rb-en{margin:22px 0 0;font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:.3em;color:#A5D3A6;font-size:13px}
.rb-hero h1{margin:4px 0 0;font-size:clamp(44px,6.4vw,84px);line-height:1.15;font-weight:700;letter-spacing:.04em}
.rb-hero__lead{margin:16px 0 0;font-weight:700;font-size:clamp(17px,1.8vw,22px);line-height:1.6;color:#E5F1EA}
.rb-hero__sub{margin:8px 0 0;color:#C1DBC2}
.rb-chips{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.rb-chips li{border:1.5px solid rgba(255,255,255,.5);border-radius:10px;padding:5px 14px;font-weight:700;font-size:14px}
.rb-hero__art{flex:0 1 380px;position:relative;align-self:stretch;min-height:340px}
.rb-hero__art .robot{position:absolute;right:6%;bottom:0;width:78%;max-width:320px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.28));animation:rb-bob 3.2s ease-in-out infinite}
.rb-gear{position:absolute}
.rb-gear--a{width:46%;right:-14%;top:-6%;animation:rb-spin 18s linear infinite}
.rb-gear--b{width:24%;left:4%;top:8%;opacity:.9;animation:rb-spin 12s linear infinite reverse}
@keyframes rb-spin{to{transform:rotate(360deg)}}
@keyframes rb-bob{50%{transform:translateY(-10px)}}
@media (prefers-reduced-motion:reduce){.rb-hero__art .robot,.rb-gear{animation:none}}
.rb-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.rb-actions.rb-center{justify-content:center}
.rb-btn{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 28px;border-radius:999px;font-weight:700;box-sizing:border-box;transition:transform .15s ease,box-shadow .2s ease}
.rb-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.18)}
.rb-btn--yellow{background:#F2B233;color:#2B5434}.rb-btn--yellow:hover{color:#2B5434}
.rb-btn--line{border:1.5px solid rgba(255,255,255,.7);color:#fff}.rb-btn--line:hover{color:#fff}
.rb-btn--green{background:#327B32;color:#fff}.rb-btn--green:hover{color:#fff}
.rb-btn--outline{border:1.5px solid #327B32;color:#327B32;background:#fff}
/* intro */
.rb-intro{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center}
.rb-intro__text{flex:1 1 440px}.rb-intro__text p{margin:0 0 14px}
.rb-intro__photo{flex:1 1 380px;margin:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3;background:#EAF4EA}
.rb-intro__photo img{width:100%;height:100%;object-fit:cover;display:block}
/* features */
.rb-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:36px}
.rb-feature{background:#fff;border-radius:20px;padding:28px 26px;position:relative}
.rb-feature h3{margin:6px 0 10px;font-size:19px;color:#2B5434;line-height:1.5}
.rb-feature p{margin:0;font-size:14.5px;color:#4D5A55}
.rb-num{font-family:'Manrope',sans-serif;font-weight:800;color:#F2B233;font-size:30px;line-height:1}
.rb-skills{margin-top:40px;background:#fff;border-radius:20px;padding:24px 28px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.rb-skills__title{margin:0;font-weight:700;color:#2B5434}
.rb-skills ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rb-skills li{background:#EEF6EE;color:#327B32;font-weight:700;border-radius:999px;padding:4px 14px;font-size:14px}
/* courses */
.rb-courses{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;counter-reset:rb}
.rb-courses li{position:relative;background:#F7F9F8;border:1px solid #E3EBE3;border-radius:18px;padding:22px 18px 20px;display:flex;flex-direction:column;gap:6px}
.rb-courses li:nth-child(n){border-top:5px solid var(--c,#327B32)}
.rb-courses li:nth-child(1){--c:#A5D3A6}.rb-courses li:nth-child(2){--c:#5DB57A}.rb-courses li:nth-child(3){--c:#327B32}.rb-courses li:nth-child(4){--c:#1F6B3A}.rb-courses li:nth-child(5){--c:#F2B233}
.rb-course__en{font-family:'Manrope',sans-serif;font-size:11px;font-weight:800;letter-spacing:.18em;color:#6B7772}
.rb-courses h3{margin:0;font-size:19px;color:#2B5434}
.rb-course__who{margin:0;font-weight:700;color:#327B32;font-size:13.5px}
.rb-courses p{margin:0;font-size:14px;color:#4D5A55;line-height:1.75}
.rb-courses .rb-course__meta{margin-top:auto;padding-top:8px;font-size:12.5px;color:#6B7772;font-weight:700}
.rb-flow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.rb-flow div{background:#EEF6EE;border-radius:16px;padding:18px 22px;display:flex;flex-direction:column}
.rb-flow strong{color:#2B5434}.rb-flow span{font-size:14px;color:#4D5A55}
/* schedule */
.rb-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px)}
.rb-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:15px}
.rb-table th,.rb-table td{padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.18);text-align:left}
.rb-table thead th{font-size:12.5px;color:#A5D3A6;letter-spacing:.08em}
.rb-table tbody th{font-weight:500;color:#D5E7D6;width:46%}
.rb-table td{font-weight:700}
/* trial */
.rb-dates{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;max-width:1040px}
.rb-dates li{border:1.5px solid #D9E4D9;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;align-items:center;background:#fff}
.rb-dates__day{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:21px;color:#2B5434}
.rb-dates__time{font-size:14px;color:#327B32;font-weight:700}
/* classroom */
.rb-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:32px}
.rb-photos figure{margin:0}
.rb-photos img,.rb-photo-ph{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:18px;display:block;background:#E6EEE9}
.rb-photos figcaption{font-size:13px;color:#4D5A55;margin-top:8px;text-align:center}
.rb-place{margin-top:32px;background:#fff;border-radius:20px;padding:26px 30px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.rb-place dl{margin:0;display:grid;gap:10px;flex:1 1 520px}
.rb-place dl div{display:grid;grid-template-columns:8em 1fr;gap:12px}
.rb-place dt{font-weight:700;color:#2B5434}.rb-place dd{margin:0}
/* cta */
.rb-cta{padding:0 clamp(20px,4vw,48px) clamp(72px,9vw,112px);background:#F7F2E8}
.rb-cta__inner{max-width:1184px;margin:0 auto;border-radius:28px;background:radial-gradient(circle at 85% 30%,#2F6B38 0,#2B5434 60%);color:#fff;padding:clamp(36px,5vw,64px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;box-sizing:border-box}
.rb-cta h2{margin:0 0 8px;font-size:clamp(26px,3vw,36px)}
.rb-cta p{margin:0;color:#D5E7D6}
.rb-cta .rb-actions{margin-top:0}
@media (max-width:1000px){.rb-courses{grid-template-columns:repeat(2,minmax(0,1fr))}.rb-courses li:last-child{grid-column:1/-1}}
@media (max-width:760px){
.rb-hero__inner{flex-direction:column;align-items:stretch;padding-bottom:48px}
.rb-hero__art{order:-1;min-height:260px;flex-basis:auto;max-width:300px;margin:0 auto;width:100%}
.rb-crumb{margin-bottom:16px}
.rb-two,.rb-flow{grid-template-columns:1fr}
.rb-courses{grid-template-columns:1fr}
.rb-photos{grid-template-columns:1fr 1fr}.rb-photos figure:first-child{grid-column:1/-1}.rb-photos figure:first-child img,.rb-photos figure:first-child .rb-photo-ph{aspect-ratio:4/3}
.rb-place dl div{grid-template-columns:1fr;gap:2px}
.rb-btn{width:100%;justify-content:center}
}
/* トップページのロボット教室バナー */
.sk-robot-banner{display:block;max-width:1184px;margin:0 auto;border-radius:24px;overflow:hidden;box-shadow:0 14px 34px rgba(43,84,52,.14);transition:transform .25s ease,box-shadow .25s ease}
.sk-robot-banner:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(43,84,52,.2)}
.sk-robot-banner img{display:block;width:100%;height:auto}
.sx-anim [data-sx="static"]{opacity:1;transform:none;filter:none;clip-path:none}

/* v0.15.4 タブレット(769〜1100px):写真を上、文字を下に。スマホと同じ並びで、幅に合わせてゆったり */
@media (min-width: 769px) and (max-width: 1100px) {
	.home .sk-hero__media { height: min(58vh, 560px); height: min(58svh, 560px); }
	.home .sk-hero__media img { object-position: 64% 28% !important; }
	.home .sk-hero__media p { right: 32px !important; top: 28px; font-size: 11px !important; }
	.home .sk-hero__text {
		margin-top: -120px;
		padding: 0 clamp(40px, 7vw, 72px) 120px !important;
		gap: 22px !important;
		max-width: 860px; width: 100%; box-sizing: border-box; margin-left: auto; margin-right: auto;
	}
	.home .sk-hero__eyebrow { font-size: 11px !important; padding: 7px 14px; }
	.home .sk-hero__text h1 { font-size: clamp(60px, 8.4vw, 80px) !important; }
	.home .sk-hero__text > p:not(.sk-hero__eyebrow) { font-size: 17px !important; max-width: 30em; }
	.home .sk-hero__btns { flex-direction: row; gap: 12px !important; }
	.home .sk-hero__btns .sk-btn { width: auto; flex: 1 1 0; min-height: 58px !important; }
	.home .sk-hero__stats { padding-top: 24px !important; margin-top: 14px !important; }
	.home .sk-hero__stats > div > span:first-child { font-size: 30px !important; }
	.home .sk-hero__stats > div > span:last-child { font-size: 12.5px !important; }
}

/* =====================================================================
   v0.15.5 NOAH KIDS/Apple Kids/SOWA NEXT トップ:スマホ・タブレットは写真(アイコン)を上、文字を下に
   ===================================================================== */
@media (max-width: 1100px) {
	.sx-fv { flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 32px !important; }
	.sx-fv > .sx-fv__media { order: -1; flex: 0 0 auto !important; width: 100%; }
	.sx-fv > .sx-fv__text { flex: 0 0 auto !important; width: 100%; }
	.sx-fv--noahkids, .sx-fv--applekids { padding-top: 28px !important; }
	.sx-fv--applekids > .sx-fv__media { padding: 0 0 28px 0 !important; }
	.sx-fv--next > .sx-fv__media { margin: 0 auto !important; }
	.sx-fv--applekids > .sx-fv__media > span { z-index: 2; bottom: 4px !important; right: 18px !important; }
}
@media (min-width: 769px) and (max-width: 1100px) {
	.sx-fv { max-width: 860px !important; padding-left: clamp(32px, 6vw, 56px) !important; padding-right: clamp(32px, 6vw, 56px) !important; gap: 40px !important; }
	.sx-fv--noahkids > .sx-fv__media img, .sx-fv--applekids > .sx-fv__media img[style*="aspect-ratio: 4 / 3"] { aspect-ratio: 16 / 10 !important; }
	.sx-fv > .sx-fv__text h1 { font-size: clamp(40px, 5.6vw, 54px) !important; }
	.sx-fv--next > .sx-fv__media { max-width: 560px !important; }
}
@media (max-width: 768px) {
	.sx-fv--noahkids, .sx-fv--applekids { padding-top: 20px !important; gap: 24px !important; }
	.sx-fv--next { gap: 28px !important; }
}

/* v0.15.10 トップ「特別講座・イベント」の横スクロール:縦には動かないように */
.sk-prog-scroller {
	overflow-x: auto !important; overflow-y: hidden !important;
	overscroll-behavior-x: contain; touch-action: pan-x pan-y;
	padding-top: 8px !important; /* カードが浮く動きの分 */
	-webkit-overflow-scrolling: touch;
}
.sk-prog-scroller > * { flex-shrink: 0; }
/* 表示アニメーションの傾き・回転で枠が縦に伸びないように */
.sx-anim .sk-prog-scroller > [data-sx] { transform: translate3d(0, 0, 0) !important; }
@media (max-width: 768px) {
	.sk-prog-scroller > .sowa-prog-card { flex-basis: min(300px, 82vw) !important; }
}

/* ===== v0.16 ロボット教室:ヒューマンアカデミージュニア ロボット教室のテイスト ===== */
.rb{--ro:#F39800;--ro-d:#D98600;--rr:#EC3E3E;--rr-d:#C52F2F;--rc:#FFFAF2;--rt:#333;color:var(--rt);font-family:'Noto Sans JP',sans-serif}
.rh{position:relative;background:#fff}
.rh-crumb{max-width:1280px;margin:0 auto;padding:12px clamp(16px,3vw,40px);font-size:12px;color:#888;display:flex;flex-wrap:wrap;gap:8px}
.rh-crumb a{color:#888}.rh-crumb span:last-child{color:var(--ro);font-weight:700}
.rh-visual{position:relative;overflow:hidden}
.rh-visual img{display:block;width:100%;height:auto;aspect-ratio:2000/634;object-fit:cover}
.rh-badges{position:absolute;right:clamp(16px,5vw,80px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.rh-badges p{margin:0}
.rh-mark{display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--ro);color:var(--ro);font-weight:900;font-size:clamp(16px,1.6vw,22px);padding:6px 16px;border-radius:4px;line-height:1.3}
.rh-mark svg{width:1.4em;height:1.4em}
.rh-ribbon{background:var(--ro);color:#fff;font-weight:700;font-size:clamp(15px,1.5vw,21px);line-height:1.2;padding:9px 18px 9px 26px;clip-path:polygon(12px 0,100% 0,100% 100%,12px 100%,0 50%);box-shadow:none;white-space:nowrap}
.rh-ribbon b{font-family:'Lato',sans-serif;font-weight:900;font-size:1.45em;letter-spacing:.02em;margin:0 2px}
.rh-body{text-align:center;padding:clamp(24px,3vw,40px) clamp(16px,3vw,40px) clamp(28px,3vw,44px)}
.rh-title{margin:0;color:var(--ro);font-weight:900;font-size:clamp(30px,4.2vw,52px);line-height:1.3;letter-spacing:.04em}
.rh-title small{display:block;font-size:.36em;color:var(--rt);font-weight:700;letter-spacing:.12em;margin-bottom:4px}
.rh-title span{display:inline-block;font-size:.6em;color:var(--rt);vertical-align:.15em}
.rh-sub{margin:10px 0 0;color:#555;font-size:15px}
.rh-catch{margin:20px 0 0;color:var(--rr);font-weight:700;font-size:clamp(18px,2vw,24px);letter-spacing:.06em}
.rh-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 18px;margin-top:12px}
.rh-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:300px;min-height:60px;padding:0 48px 0 32px;border-radius:5px;font-weight:700;font-size:clamp(17px,1.6vw,21px);box-sizing:border-box;transition:transform .12s ease,box-shadow .12s ease}
.rh-chev{position:absolute;right:20px;top:50%;transform:translateY(-54%);font-size:1.3em;font-weight:400}
.rh-btn--red{background:var(--rr);color:#fff;box-shadow:0 5px 0 var(--rr-d)}
.rh-btn--red:hover{color:#fff;transform:translateY(3px);box-shadow:0 2px 0 var(--rr-d)}
.rh-btn--white{background:#fff;color:var(--ro);border:2px solid var(--ro);box-shadow:0 5px 0 #F6C77A}
.rh-btn--white:hover{color:var(--ro);transform:translateY(3px);box-shadow:0 2px 0 #F6C77A}
.rh-band{position:relative;height:clamp(120px,14vw,200px);background:var(--ro) var(--band) center top/cover no-repeat;overflow:hidden}
.rh-band__hills{position:absolute;left:0;right:0;bottom:0;height:72%;background:var(--hills) center bottom/100% 100% no-repeat}
.rh-band__robots{position:absolute;left:0;right:0;bottom:8%;height:78%;background:var(--robots) 0 100%/auto 100% repeat-x;animation:rh-scroll 60s linear infinite}
@keyframes rh-scroll{to{background-position:-2300px 100%}}
@media (prefers-reduced-motion:reduce){.rh-band__robots{animation:none;background-position:center 100%}}
@media (max-width:768px){
.rh-visual img{aspect-ratio:16/9;object-position:30% 50%}
.rh-badges{position:static;transform:none;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:14px 12px 0}
.rh-mark{width:100%;justify-content:center;max-width:280px}
.rh-ribbon{font-size:13px;padding:7px 12px 7px 20px}
.rh-btn{min-width:0;width:100%}
.rh-band__robots{animation-duration:45s}
@keyframes rh-scroll{to{background-position:-1100px 100%}}
}
/* 見出し・セクション */
.rb .rb-eyebrow{font-family:'Lato',sans-serif;font-weight:900;font-size:clamp(30px,3.6vw,44px);letter-spacing:.06em;color:var(--ro);line-height:1.1;margin-bottom:6px}
.rb .rb-eyebrow--light{color:#fff}
.rb .rb-h2{color:var(--ro);font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(20px,2.3vw,28px)}
.rb .rb-lead{color:#555}
.rb .rb-sec--cream{background:var(--rc)}
.rb .rb-sec--parts{background:#fff var(--parts) center top/1400px auto no-repeat}
.rb .rb-sec--parts2{background:var(--rc) var(--parts) center top/1400px auto no-repeat}
@media (max-width:768px){.rb .rb-sec--parts,.rb .rb-sec--parts2{background-size:1000px auto}}
.rb .rb-intro__photo{border-radius:12px;background:#FDEBCF;box-shadow:12px 12px 0 #FDE3B5}
.rb .rb-feature{border-radius:12px;border:2px solid #FBDDAA}
.rb .rb-feature h3{color:var(--ro)}
.rb .rb-feature p,.rb .rb-courses p,.rb .rb-flow span{color:#555}
.rb .rb-num{color:#fff;background:var(--ro);display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;font-family:'Lato',sans-serif;font-size:19px;font-weight:900}
.rb .rb-skills{border-radius:12px;border:2px dashed #F6C77A}
.rb .rb-skills__title{color:var(--ro)}
.rb .rb-skills li{background:#FFF1DA;color:#B86E00}
.rb .rb-courses li{background:#fff;border:2px solid #F4E3C6;border-radius:12px;padding:0 0 18px;overflow:hidden}
.rb .rb-courses li:nth-child(n){border-top-width:2px}
.rb .rb-courses li:nth-child(1){--c:#F28DA8}.rb .rb-courses li:nth-child(2){--c:#EF6F8F}.rb .rb-courses li:nth-child(3){--c:#F2B400}.rb .rb-courses li:nth-child(4){--c:#5DB53A}.rb .rb-courses li:nth-child(5){--c:#2F8FD8}
.rb .rb-course__img{width:100%;aspect-ratio:250/200;object-fit:cover;display:block;border-bottom:5px solid var(--c);margin-bottom:10px}
.rb .rb-courses li>*:not(img){padding-left:16px;padding-right:16px}
.rb .rb-course__en{color:var(--c);font-family:'Lato',sans-serif;font-weight:900;letter-spacing:.08em;font-size:12px}
.rb .rb-courses h3{color:var(--rt)}
.rb .rb-course__who{color:var(--c)}
.rb .rb-flow div{background:#FFF1DA;border-radius:12px}
.rb .rb-flow strong{color:#B86E00}
.rb-strip{height:clamp(120px,15vw,200px);margin-top:clamp(48px,6vw,72px);background:var(--strip) 0 50%/auto 100% repeat-x;animation:rh-scroll2 80s linear infinite}
@keyframes rh-scroll2{to{background-position:-2875px 50%}}
@media (max-width:768px){@keyframes rh-scroll2{to{background-position:-1600px 50%}}}
@media (prefers-reduced-motion:reduce){.rb-strip{animation:none}}
.rb .rb-sec--green{background:var(--ro);color:#fff}
.rb .rb-sec--green .rb-h2{color:#fff}
.rb .rb-sec--green .rb-table{background:#fff;color:var(--rt);border-radius:10px;overflow:hidden}
.rb .rb-sec--green .rb-table th,.rb .rb-sec--green .rb-table td{border-bottom:1px solid #F4E3C6}
.rb .rb-sec--green .rb-table thead th{background:#FFF1DA;color:#B86E00}
.rb .rb-sec--green .rb-table tbody th{color:#555}
.rb .rb-note--light{color:#FFF4E0}
.rb .rb-dates li{border:2px solid #FBDDAA;border-radius:10px}
.rb .rb-dates__day{color:var(--ro);font-family:'Noto Sans JP',sans-serif}
.rb .rb-dates__time{color:var(--rt)}
.rb .rb-btn{border-radius:5px}
.rb .rb-btn--red{background:var(--rr);color:#fff;box-shadow:0 5px 0 var(--rr-d)}
.rb .rb-btn--red:hover{color:#fff;transform:translateY(3px);box-shadow:0 2px 0 var(--rr-d)}
.rb .rb-btn--outline{border:2px solid var(--ro);color:var(--ro)}
.rb .rb-btn--line{border:2px solid #fff;color:#fff}
.rb .rb-photos img,.rb .rb-photo-ph{border-radius:10px}
.rb .rb-place{border-radius:12px;border:2px solid #FBDDAA}
.rb .rb-place dt{color:var(--ro)}
.rb .rb-cta{background:var(--rc)}
.rb .rb-cta__inner{background:var(--ro);border-radius:16px}
.rb .rb-cta p{color:#FFF4E0}

/* ===== v0.18 会員限定 教材ダウンロード(/kyozai/) ===== */
.kz{--g:#3F963F;--ga:#327B32;--gd:#2B5434;--gt:#F2F8F2;--gl:#D9E4D9;--ink:#252525;--sub:#5E6A5F;font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:#fff;line-height:1.8;min-height:100vh;display:flex;flex-direction:column}
.kz a{color:var(--ga)}
.kz h1,.kz h2,.kz h3{font-family:'Zen Kaku Gothic New',sans-serif}
.kz-main{flex:1}
.kz-wrap{max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,40px);box-sizing:border-box}
.kz-head{background:#fff;border-bottom:1px solid var(--gl);position:sticky;top:0;z-index:20}
.admin-bar .kz-head{top:32px}
@media (max-width:782px){.admin-bar .kz-head{top:0}}
.kz-head__in{max-width:1120px;margin:0 auto;padding:12px clamp(16px,4vw,40px);display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box}
.kz-logo{display:flex;align-items:center;gap:14px;color:var(--gd)!important;font-weight:700;font-size:14px;min-height:44px}
.kz-logo img{height:34px;width:auto;display:block}
.kz-logo span{border-left:1px solid var(--gl);padding-left:14px;letter-spacing:.06em}
.kz-head__nav{display:flex;gap:6px 18px;font-size:14px;font-weight:700}
.kz-head__nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
.kz-head__out{color:var(--sub)!important;font-weight:500}
.kz-eyebrow{margin:0 0 4px;font-family:'Manrope',sans-serif;font-size:12px;font-weight:800;letter-spacing:.28em;color:var(--ga);display:block}
.kz-eyebrow--light{color:#BFE0BF}
.kz-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;background:var(--g);color:#fff!important;font-weight:700;font-size:15px;border:0;cursor:pointer;box-sizing:border-box;transition:background .2s,transform .12s;font-family:inherit}
.kz-btn:hover{background:var(--ga)}
.kz-btn:active{transform:translateY(1px)}
.kz-btn--line{background:#fff;color:var(--ga)!important;border:1.5px solid var(--g)}
.kz-btn--line:hover{background:var(--gt)}
.kz-empty{color:var(--sub);background:var(--gt);border-radius:14px;padding:22px;text-align:center}
/* 入口 */
.kz-gate{padding:clamp(48px,9vw,110px) 16px;background:linear-gradient(180deg,var(--gt),#fff)}
.kz-gate__card{max-width:460px;margin:0 auto;background:#fff;border:1px solid var(--gl);border-radius:22px;padding:clamp(28px,5vw,44px);box-shadow:0 18px 40px rgba(43,84,52,.08);text-align:center}
.kz-gate__title{margin:0;font-size:clamp(26px,4vw,32px);color:var(--gd)}
.kz-gate__lead{margin:10px 0 22px;color:var(--sub);font-size:14.5px}
.kz-gate__form{text-align:left}
.kz-gate__form label{font-weight:700;font-size:14px;color:var(--gd)}
.kz-gate__row{display:flex;gap:10px;margin-top:6px}
.kz-gate__row input{flex:1;min-width:0;min-height:48px;border:1.5px solid #C9D6C9;border-radius:12px;padding:0 14px;font-size:16px;font-family:inherit}
.kz-gate__row input:focus{outline:3px solid #D0E8D1;border-color:var(--g)}
.kz-gate__help{margin:22px 0 0;font-size:12.5px;color:var(--sub)}
.kz-alert{background:#FFF2F0;color:#A3321F;border-radius:10px;padding:10px 14px;font-size:14px;margin:0 0 16px}
/* トップ */
.kz-hero{background:var(--gd);color:#fff;padding:clamp(40px,6vw,72px) 0;position:relative;overflow:hidden}
.kz-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.06)}
.kz-hero__title{margin:0;font-size:clamp(30px,5vw,46px);line-height:1.3}
.kz-hero__lead{margin:12px 0 0;max-width:36em;color:#E2EEE2}
.kz-hero__facts{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kz-hero__facts li{background:rgba(255,255,255,.12);border-radius:999px;padding:5px 14px;font-size:13.5px;font-weight:700}
.kz-hero__facts strong{font-family:'Manrope',sans-serif;font-size:17px;margin-right:2px}
.kz-sec{padding:clamp(44px,6vw,72px) 0}
.kz-sec--tint{background:var(--gt)}
.kz-h2{margin:0 0 20px;font-size:clamp(21px,2.6vw,26px);color:var(--gd)}
.kz-h2--sub{margin-top:44px}
.kz-grades{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.kz-grades a{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 18px;border:1.5px solid var(--gl);border-radius:16px;color:var(--gd)!important;font-weight:700;background:#fff;transition:border-color .2s,transform .2s,box-shadow .2s}
.kz-grades a:hover{border-color:var(--g);transform:translateY(-2px);box-shadow:0 10px 22px rgba(43,84,52,.1)}
.kz-grades__name{font-size:18px;font-family:'Zen Kaku Gothic New',sans-serif}
.kz-grades__count{margin-left:auto;font-size:12.5px;color:var(--sub);font-weight:500}
.kz-grades svg{color:var(--g);flex:0 0 18px}
.kz-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kz-chips a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;background:var(--gt);color:var(--gd)!important;font-weight:700;font-size:14px}
.kz-chips a span{font-family:'Manrope',sans-serif;font-size:12px;color:var(--sub)}
.kz-chips a[aria-current]{background:var(--g);color:#fff!important}
.kz-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:kz}
.kz-steps li{background:#fff;border:1px solid var(--gl);border-radius:16px;padding:20px 20px 18px;display:flex;flex-direction:column;gap:4px;counter-increment:kz}
.kz-steps li:before{content:counter(kz,decimal-leading-zero);font-family:'Manrope',sans-serif;font-weight:800;color:var(--g);font-size:22px;line-height:1}
.kz-steps strong{color:var(--gd)}
.kz-steps span{font-size:14px;color:var(--sub)}
/* カード */
.kz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.kz-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gl);border-radius:14px;overflow:hidden;color:var(--ink)!important;transition:transform .2s,box-shadow .2s,border-color .2s}
.kz-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(43,84,52,.12);border-color:#B9CFB9}
.kz-card__thumb{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#F4F6F4;border-bottom:1px solid var(--gl)}
.kz-card__thumb img{width:100%;height:auto;display:block}
.kz-card__noimg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:160px;font-family:'Manrope',sans-serif;font-weight:800;color:#B9CFB9;font-size:22px;background:#F4F6F4}
.kz-card__count{position:absolute;right:8px;top:8px;background:var(--gd);color:#fff;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 10px}
.kz-card__body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}
.kz-card__title{font-weight:700;font-size:14.5px;line-height:1.55;color:var(--gd)}
.kz-card__point{font-size:12.5px;color:var(--sub);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* 学年・項目・教材ページ */
.kz-pagehead{background:var(--gt);padding:22px 0 30px;border-bottom:1px solid var(--gl)}
.kz-crumb{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:12.5px;color:var(--sub);margin-bottom:18px}
.kz-crumb a{color:var(--sub)}
.kz-title{margin:0;font-size:clamp(24px,3.6vw,34px);line-height:1.4;color:var(--gd)}
.kz-title small{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:var(--sub);font-weight:500;margin-left:12px}
.kz-pagehead__lead{margin:8px 0 0;color:var(--sub)}
.kz-unitname{margin:0 0 2px;font-weight:700;color:var(--ga);font-size:14px}
.kz-jump{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kz-jump a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--gl);font-size:13.5px;font-weight:700;color:var(--gd)!important}
.kz-tags{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.kz-tags li{background:#fff;border:1px solid #C9D6C9;color:var(--gd);border-radius:6px;padding:1px 10px;font-size:12.5px;font-weight:700}
.kz-body{padding-top:clamp(28px,4vw,44px);padding-bottom:clamp(48px,6vw,80px)}
.kz-group{margin-bottom:44px;scroll-margin-top:90px}
.kz-group__title{margin:0 0 18px;font-size:22px;color:var(--gd);display:flex;align-items:center;gap:12px}
.kz-group__title:before{content:"";width:6px;height:24px;border-radius:3px;background:var(--g)}
.kz-unit{margin-bottom:30px}
.kz-unit__title{margin:0 0 14px;font-size:17px;color:var(--ink);padding-bottom:8px;border-bottom:1px dashed var(--gl);display:flex;align-items:baseline;gap:10px}
.kz-unit__title span{font-family:'Noto Sans JP',sans-serif;font-size:12.5px;color:var(--sub);font-weight:500}
.kz-others{margin:40px 0 0;padding-top:24px;border-top:1px solid var(--gl)}
.kz-others p{margin:0 0 10px;font-weight:700;color:var(--gd)}
.kz-back{margin:36px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.kz-textlink{font-weight:700;font-size:14px}
.kz-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(24px,4vw,48px);align-items:start}
.kz-box{background:#fff;border:1px solid var(--gl);border-radius:18px;padding:22px 24px;margin-bottom:18px}
.kz-box--dl{background:var(--gt);border-color:transparent}
.kz-box__title{margin:0 0 12px;font-size:18px;color:var(--gd)}
.kz-box__lead{margin:0 0 14px;font-size:14px;color:var(--sub)}
.kz-points{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.kz-points li{position:relative;padding-left:26px;font-size:15px}
.kz-points li:before{content:"";position:absolute;left:4px;top:.55em;width:12px;height:12px;border-radius:50%;border:3px solid var(--g);box-sizing:border-box}
.kz-note{margin:14px 0 0;font-size:13px;color:var(--sub);background:var(--gt);border-radius:8px;padding:6px 12px;display:inline-block}
.kz-dl{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.kz-dl li{display:flex;flex-wrap:wrap;gap:8px}
.kz-dl .kz-btn:first-child{flex:1 1 220px}
.kz-pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.kz-pn a{display:flex;flex-direction:column;border:1px solid var(--gl);border-radius:14px;padding:12px 16px;color:var(--gd)!important;font-weight:700;font-size:14px;line-height:1.5}
.kz-pn a:hover{border-color:var(--g)}
.kz-pn small{font-weight:500;color:var(--sub);font-size:12px}
.kz-pn__next{text-align:right;grid-column:2}
.kz-sample{margin:0;position:sticky;top:90px}
.kz-sample img{width:100%;height:auto;display:block;border:1px solid var(--gl);border-radius:10px;box-shadow:0 12px 28px rgba(43,84,52,.12)}
.kz-sample figcaption{text-align:center;font-size:12.5px;color:var(--sub);margin-top:8px}
.kz-related{margin-top:40px}
.kz-foot{background:var(--gd);color:#D7E6D7;font-size:12.5px}
.kz-foot__in{max-width:1120px;margin:0 auto;padding:22px clamp(16px,4vw,40px);box-sizing:border-box}
.kz-foot p{margin:0}
.kz-foot__copy{margin-top:6px!important;opacity:.75}
@media (max-width:860px){
.kz-detail{grid-template-columns:1fr}
.kz-detail__side{order:-1;max-width:260px;margin:0 auto;width:100%}
.kz-sample{position:static}
.kz-steps{grid-template-columns:1fr}
}
@media (max-width:560px){
.kz-logo span{font-size:12.5px;padding-left:10px}
.kz-logo img{height:28px}
.kz-head__nav a:first-child{display:none}
.kz-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kz-grades{grid-template-columns:1fr 1fr}
.kz-grades a{min-height:56px;padding:10px 12px}
.kz-grades__name{font-size:16px}
.kz-pn{grid-template-columns:1fr}
.kz-pn__next{grid-column:auto}
.kz-gate__row{flex-direction:column}
}

/* ===== v0.19 アート教室:ヒューマンアカデミージュニア アート教室のテイスト ===== */
.at{--an:#464B81;--ay:#FFF100;--ar:#EC3E3E;--ar-d:#C52F2F;--ac:#FBF8EE;--at:#333;color:var(--at);font-family:'Noto Sans JP',sans-serif;overflow-x:hidden}
.at a{color:var(--an)}
.ah{position:relative;background:var(--ac)}
.ah-crumb{max-width:1280px;margin:0 auto;padding:12px clamp(16px,3vw,40px);font-size:12px;color:#888;display:flex;flex-wrap:wrap;gap:8px}
.ah-crumb a{color:#888!important}.ah-crumb span:last-child{color:var(--an);font-weight:700}
.ah-visual{position:relative}
.ah-visual img{display:block;width:100%;height:auto}
.ah-badges{position:absolute;right:clamp(12px,3.5vw,60px);top:8%;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.ah-badges p{margin:0}
.ah-mark{display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--an);color:var(--an);font-weight:900;font-size:clamp(15px,1.5vw,21px);padding:5px 14px;border-radius:4px;line-height:1.3}
.ah-mark svg{width:1.5em;height:1.5em}
.ah-ribbon{background:var(--an);color:#fff;font-weight:700;font-size:clamp(14px,1.4vw,20px);line-height:1.2;padding:8px 16px 8px 24px;clip-path:polygon(12px 0,100% 0,100% 100%,12px 100%,0 50%);white-space:nowrap}
.ah-ribbon b{font-family:'Lato',sans-serif;font-weight:900;font-size:1.4em;margin:0 2px;color:var(--ay)}
.ah-body{text-align:center;padding:clamp(18px,2.5vw,32px) clamp(16px,3vw,40px) clamp(26px,3vw,40px)}
.ah-title{margin:0;color:var(--an);font-weight:900;font-size:clamp(30px,4.2vw,52px);line-height:1.3;letter-spacing:.04em}
.ah-title small{display:block;font-size:.36em;color:var(--at);font-weight:700;letter-spacing:.12em;margin-bottom:4px}
.ah-title span{display:inline-block;font-size:.6em;color:var(--at);vertical-align:.15em}
.ah-sub{margin:10px 0 0;color:#555;font-size:15px}
.ah-catch{margin:20px 0 0;color:var(--ar);font-weight:700;font-size:clamp(18px,2vw,24px);letter-spacing:.06em}
.ah-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 18px;margin-top:12px}
.ah-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:300px;min-height:60px;padding:0 48px 0 32px;border-radius:5px;font-weight:700;font-size:clamp(16px,1.6vw,20px);box-sizing:border-box;transition:transform .12s ease,box-shadow .12s ease}
.ah-chev{position:absolute;right:20px;top:50%;transform:translateY(-54%);font-size:1.3em;font-weight:400}
.ah-btn--red{background:var(--ar);color:#fff!important;box-shadow:0 5px 0 var(--ar-d)}
.ah-btn--red:hover{transform:translateY(3px);box-shadow:0 2px 0 var(--ar-d)}
.ah-btn--yellow{background:var(--ay);color:var(--an)!important;box-shadow:0 5px 0 #D8CC00}
.ah-btn--yellow:hover{transform:translateY(3px);box-shadow:0 2px 0 #D8CC00}
.ah-btn--line{background:#fff;color:var(--an)!important;border:2px solid var(--an);box-shadow:0 5px 0 #C9CBE0}
.ah-btn--line:hover{transform:translateY(3px);box-shadow:0 2px 0 #C9CBE0}
.ah-band{position:relative;height:clamp(110px,12vw,180px);overflow:hidden;background:var(--band) center bottom/100% 100% no-repeat}
.ah-band__items{position:absolute;left:0;right:0;bottom:12%;height:68%;background:var(--items) 0 50%/auto 100% repeat-x;animation:ah-scroll 70s linear infinite}
@keyframes ah-scroll{to{background-position:-2440px 50%}}
@media (prefers-reduced-motion:reduce){.ah-band__items{animation:none}}
.at-sec{position:relative;padding:clamp(72px,9vw,120px) 0;background:#fff}
.at-sec--cream{background:var(--ac)}
.at-sec--yellow{background:var(--ay)}
.at-sec--navy{background:var(--an);color:#fff}
.at-wrap{position:relative;z-index:1;max-width:1184px;margin:0 auto;padding:0 clamp(20px,4vw,48px);box-sizing:border-box}
.at-narrow{max-width:860px}
.at-center{text-align:center}
.at-en{margin:0 0 6px;font-family:'Lato',sans-serif;font-weight:900;font-size:clamp(30px,3.6vw,44px);letter-spacing:.06em;color:var(--an);line-height:1.1}
.at-en--light{color:var(--ay)}.at-en--navy{color:var(--an)}
.at-h2{margin:0 0 20px;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(21px,2.4vw,30px);line-height:1.5;color:var(--an)}
.at-sec--navy .at-h2{color:#fff}
.at-lead{margin:0 auto 36px;max-width:44em;color:#555}
.at-note{font-size:12.5px;color:#777;margin:16px 0 0}
.at-note--light{color:#D7D9EE}.at-note--dark{color:#5A5A2A;padding:0 16px}
.at-paint{position:absolute;z-index:0;pointer-events:none;height:auto}
.at-paint--tl{width:clamp(100px,13vw,180px);left:-40px;top:auto;bottom:24px}
.at-paint--tr{width:clamp(160px,22vw,320px);right:-40px;top:20px}
.at-paint--tl2{width:clamp(140px,18vw,260px);left:-50px;top:40px}
.at-paint--tr2{width:clamp(120px,16vw,230px);right:-30px;top:30px}
.at-paint--cta{width:clamp(120px,14vw,200px);right:4%;top:-50px;z-index:2}
@media (max-width:768px){.at-paint{opacity:.55}}
.at-about{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center}
.at-about__text{flex:1 1 440px}.at-about__text p{margin:0 0 14px}
.at-about__photo{flex:1 1 380px;margin:0;border-radius:40% 60% 55% 45%/50% 45% 55% 50%;overflow:hidden;aspect-ratio:4/3;box-shadow:14px 14px 0 var(--ay)}
.at-about__photo img{width:100%;height:100%;object-fit:cover;display:block}
.at-points{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.at-points li{position:relative;background:#fff;border-radius:16px;padding:0 0 22px;overflow:hidden;box-shadow:0 4px 0 #E8E2CC}
.at-points img{width:100%;aspect-ratio:16/10;object-fit:contain;background:#fff;display:block;border-bottom:4px solid var(--ay)}
.at-points__no{position:absolute;left:14px;top:12px;background:var(--an);color:#fff;font-family:'Lato',sans-serif;font-weight:900;font-size:12px;letter-spacing:.1em;border-radius:6px;padding:3px 10px;z-index:1}
.at-points__no b{font-size:17px;color:var(--ay);margin-left:3px}
.at-points h3{margin:16px 20px 8px;font-size:18px;line-height:1.5;color:var(--an)}
.at-points p{margin:0 20px;font-size:14.5px;color:#555}
.at-learn{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.at-learn li{background:#fff;border:2px dashed #CFD1E6;border-radius:14px;padding:16px 18px;font-size:14px;color:#555}
.at-learn strong{display:block;color:var(--an);font-size:15.5px;margin-bottom:4px}
.at-cur{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.at-cur li{background:#fff;border:1px solid #ECE6D2;border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.at-cur img{width:100%;aspect-ratio:600/380;object-fit:cover;display:block}
.at-cur__body{padding:12px 14px 16px}
.at-cur__tag{display:inline-block;margin:0 0 6px!important;font-size:11.5px;font-weight:700;color:#fff;border-radius:999px;padding:1px 10px}
.at-cur__tag--paint{background:#2F6FC9}.at-cur__tag--shape{background:#D9433A}.at-cur__tag--illust{background:#2E9A55}.at-cur__tag--design{background:#E08A00}
.at-cur h3{margin:0 0 8px;font-size:15px;line-height:1.5;color:var(--an)}
.at-cur p{margin:0;font-size:13px;color:#555;line-height:1.6;display:flex;gap:6px}
.at-cur p span{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--an);background:#EEF0F8;border-radius:4px;padding:0 6px;height:1.7em;line-height:1.7em;margin-top:.1em}
.at-strip{overflow:hidden;margin-top:8px}
.at-strip__track{display:flex;gap:12px;width:max-content;animation:at-strip 70s linear infinite}
.at-strip__track img{width:clamp(220px,24vw,320px);height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;display:block;border:4px solid #fff}
@keyframes at-strip{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.at-strip__track{animation:none}}
.at-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px)}
.at-table{width:100%;border-collapse:collapse;background:#fff;color:var(--at);border-radius:12px;overflow:hidden;font-size:15px}
.at-table th,.at-table td{padding:14px 16px;border-bottom:1px solid #ECEDF5;text-align:left;vertical-align:top}
.at-table tr:last-child th,.at-table tr:last-child td{border-bottom:0}
.at-table th{width:38%;font-weight:500;color:#666;background:#F6F7FB}
.at-table td{font-weight:700}
.at-table small{font-weight:500;color:#666;font-size:12.5px}
.at-kit{position:relative;z-index:1;max-width:520px;margin:36px auto 0;padding:0 20px}
.at-kit img{width:100%;height:auto;display:block;border-radius:14px;border:5px solid #fff}
.at-dates{list-style:none;margin:0 auto 28px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;max-width:1000px}
.at-dates li{border:2px solid var(--an);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;align-items:center;background:#fff;gap:2px}
.at-dates__day{font-weight:700;font-size:21px;color:var(--an)}
.at-dates__time{font-size:15px;font-weight:700}
.at-dates__st{font-size:12px;font-weight:700;background:var(--ay);color:var(--an);border-radius:999px;padding:1px 12px;margin-top:4px}
.at-dates li.is-full{border-color:#CCC;background:#F5F5F5}
.at-dates li.is-full .at-dates__day,.at-dates li.is-full .at-dates__time{color:#999}
.at-dates li.is-full .at-dates__st{background:#DDD;color:#777}
.at-faq details{background:#fff;border-radius:12px;margin-bottom:10px;border:1px solid #ECE6D2}
.at-faq summary{position:relative;padding:16px 48px 16px 52px;font-weight:700;color:var(--an);min-height:24px}
.at-faq summary:before{content:"Q";position:absolute;left:18px;top:13px;font-family:'Lato',sans-serif;font-weight:900;font-size:20px;color:var(--ar)}
.at-faq summary:after{content:"+";position:absolute;right:20px;top:12px;font-size:22px;color:var(--an)}
.at-faq details[open] summary:after{content:"−"}
.at-faq details p{margin:0;padding:0 20px 18px 52px;color:#555;font-size:14.5px}
.at-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}
.at-photos figure{margin:0}
.at-photos img,.at-photos .rb-photo-ph{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block;background:#EEE}
.at-photos figcaption{font-size:13px;color:#555;margin-top:8px;text-align:center}
.at-place{margin-top:28px;background:var(--ac);border-radius:14px;padding:24px 28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.at-place dl{margin:0;display:grid;gap:10px;flex:1 1 520px}
.at-place dl div{display:grid;grid-template-columns:8em 1fr;gap:12px}
.at-place dt{font-weight:700;color:var(--an)}.at-place dd{margin:0}
.at-more{margin:22px 0 0;text-align:center;font-size:14px;font-weight:700}
.at-cta{position:relative;padding:0 clamp(20px,4vw,48px) clamp(72px,9vw,112px);background:#fff}
.at-cta__inner{position:relative;z-index:1;max-width:1184px;margin:0 auto;border-radius:18px;background:var(--ay);padding:clamp(36px,5vw,60px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.at-cta h2{margin:0 0 6px;font-size:clamp(24px,3vw,34px);color:var(--an)}
.at-cta p{margin:0;color:#4A4A2A}
.at-cta .ah-actions{margin-top:0}
@media (max-width:1000px){.at-cur{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:768px){
.ah-badges{position:static;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:12px 12px 0}
.ah-mark{width:100%;justify-content:center;max-width:280px}
.ah-ribbon{font-size:13px;padding:7px 12px 7px 20px}
.ah-btn{min-width:0;width:100%}
.at-points,.at-learn,.at-two{grid-template-columns:1fr}
.at-cur{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.at-cur h3{font-size:14px}
.at-photos{grid-template-columns:1fr 1fr}.at-photos figure:first-child{grid-column:1/-1}.at-photos figure:first-child img{aspect-ratio:4/3}
.at-place dl div{grid-template-columns:1fr;gap:2px}
.ah-band__items{animation-duration:50s}
}

/* ===== v0.20 職員用マニュアル(/manual/) ===== */
.mn{--g:#3F963F;--gd:#2B5434;--ink:#252525;--sub:#5E6A5F;--line:#DEE5DE;font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:#F6F8F6;line-height:1.75;min-height:100vh;display:flex;flex-direction:column}
.mn a{color:var(--oc)}
.mn h1,.mn h2,.mn h3{font-family:'Zen Kaku Gothic New',sans-serif}
.mn-main{flex:1}
.mn-wrap{max-width:1160px;margin:0 auto;padding:0 clamp(16px,3vw,32px);box-sizing:border-box}
.mn-head{background:#fff;border-bottom:3px solid var(--oc);position:sticky;top:0;z-index:20}
.admin-bar .mn-head{top:32px}@media (max-width:782px){.admin-bar .mn-head{top:0}}
.mn-head__in{max-width:1160px;margin:0 auto;padding:8px clamp(16px,3vw,32px);display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;box-sizing:border-box}
.mn-logo{display:flex;align-items:center;gap:12px;color:var(--gd)!important;font-weight:700;font-size:13.5px;min-height:44px}
.mn-logo img{height:28px;width:auto}
.mn-logo span{border-left:1px solid var(--line);padding-left:12px}
.mn-head__nav{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.mn-head__nav a{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:8px;font-size:13.5px;font-weight:700;color:var(--ink)!important}
.mn-head__nav a:hover{background:#F2F4F2}
.mn-head__nav a[aria-current]{background:var(--c);color:#fff!important}
.mn-head__user{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--sub)}
.mn-head__user a{color:var(--sub)!important;text-decoration:underline}
.mn-hero{background:var(--ot);border-bottom:1px solid var(--line);padding:22px 0 28px}
.mn-hero--doc{padding-bottom:22px}
.mn-crumb{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:12.5px;color:var(--sub);margin-bottom:12px}
.mn-crumb a{color:var(--sub)!important}
.mn-eyebrow{margin:0;font-family:'Manrope',sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.26em;color:var(--oc)}
.mn-title{margin:2px 0 0;font-size:clamp(23px,3.2vw,32px);line-height:1.4;color:var(--ink)}
.mn-lead{margin:8px 0 0;color:var(--sub)}
.mn-stats{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--sub)}
.mn-stats strong{font-family:'Manrope',sans-serif;font-size:20px;color:var(--oc);margin:0 2px}
.mn-stats a{font-weight:700}
.mn-search{position:relative;margin-top:16px;max-width:560px}
.mn-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--sub)}
.mn-search input{width:100%;min-height:48px;border:1.5px solid #CCD6CC;border-radius:12px;padding:0 14px 0 42px;font-size:15px;font-family:inherit;box-sizing:border-box;background:#fff}
.mn-search input:focus{outline:3px solid color-mix(in srgb,var(--oc) 25%,transparent);border-color:var(--oc)}
.mn-body{padding-top:28px;padding-bottom:64px}
.mn-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.mn-side{position:sticky;top:90px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.mn-side__title{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.1em}
.mn-side ul{list-style:none;margin:0;padding:0}
.mn-side a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;font-size:14px;font-weight:700;color:var(--ink)!important}
.mn-side a:hover{background:var(--ot)}
.mn-side a span{font-family:'Manrope',sans-serif;font-size:12px;color:var(--sub);background:#F2F4F2;border-radius:999px;padding:0 8px}
.mn-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin-bottom:18px}
.mn-box__title{margin:0 0 10px;font-size:16.5px;color:var(--ink)}
.mn-recent{list-style:none;margin:0;padding:0}
.mn-recent li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:8px 0;border-top:1px dashed var(--line);font-size:14px}
.mn-recent li:first-child{border-top:0}
.mn-recent span{font-size:12.5px;color:var(--sub);min-width:8.5em}
.mn-recent a{font-weight:700}
.mn-recent small{font-size:11.5px;color:var(--sub);border:1px solid var(--line);border-radius:4px;padding:0 6px}
.mn-cat{margin-bottom:26px;scroll-margin-top:96px}
.mn-cat.is-filtered{display:none}
.mn-cat__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:10px;padding-left:12px;border-left:5px solid var(--oc)}
.mn-cat__head h2{margin:0;font-size:19px}
.mn-cat__head p{margin:0;font-size:13px;color:var(--sub)}
.mn-list{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mn-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 18px;border-top:1px solid var(--line);color:var(--ink)!important;transition:background .15s}
.mn-row:first-child{border-top:0}
.mn-row:hover{background:var(--ot)}
.mn-row[hidden]{display:none}
.mn-row__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:52px;border-radius:6px;font-family:'Manrope',sans-serif;font-weight:800;font-size:11px;color:#fff;background:#8A948C;position:relative}
.mn-row__icon--pdf{background:#D9433A}.mn-row__icon--docx{background:#2B5DB8}.mn-row__icon--xlsx{background:#1F7A43}.mn-row__icon--pptx{background:#D0612A}.mn-row__icon--none{background:#C9CFC9}
.mn-row__main{display:flex;flex-direction:column;min-width:0}
.mn-row__title{font-weight:700;font-size:15px;line-height:1.5}
.mn-row__sum{font-size:13px;color:var(--sub);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.mn-row__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--sub);white-space:nowrap}
.mn-must{display:inline-block;font-style:normal;font-size:11px;font-weight:700;background:#D9433A;color:#fff;border-radius:4px;padding:0 6px;margin-right:8px;vertical-align:.15em}
.mn-empty{margin:0;background:#fff;border:1px dashed #CCD6CC;border-radius:12px;padding:16px 18px;color:var(--sub);font-size:14px}
.mn-offices{list-style:none;margin:0 0 36px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.mn-offices a{display:flex;flex-direction:column;gap:4px;min-height:130px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-top:6px solid var(--c);border-radius:14px;color:var(--ink)!important;transition:transform .2s,box-shadow .2s}
.mn-offices a:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.08);background:var(--t)}
.mn-offices__name{font-family:'Zen Kaku Gothic New',sans-serif;font-size:19px;font-weight:700}
.mn-offices__count{color:var(--sub);font-size:13.5px}
.mn-offices__count strong{font-family:'Manrope',sans-serif;font-size:24px;color:var(--c);margin-right:2px}
.mn-offices__go{margin-top:auto;font-size:13.5px;font-weight:700;color:var(--c)}
.mn-h2{margin:0 0 14px;font-size:20px}
.mn-h2 small{font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:500;color:var(--sub);margin-left:10px}
.mn-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:14px}
.mn-matrix{width:100%;border-collapse:collapse;min-width:720px;font-size:13.5px}
.mn-matrix th,.mn-matrix td{padding:12px 14px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);text-align:left;vertical-align:top}
.mn-matrix thead th{background:#F6F8F6;font-size:13px;border-top:4px solid var(--c,#9AA59C)}
.mn-matrix tbody th{width:180px;background:#FBFCFB;font-weight:700}
.mn-matrix tr>*:first-child{border-left:0}
.mn-matrix tbody tr:last-child>*{border-bottom:0}
.mn-matrix__n{font-weight:700}
.mn-matrix ul{margin:4px 0 0;padding-left:1.1em;color:var(--sub);font-size:12.5px}
.mn-matrix ul a{color:var(--ink)!important}
.mn-matrix__none{color:#B5BDB6}
.mn-note{font-size:12.5px;color:var(--sub);margin:10px 0 0}
.mn-tags{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mn-tags li{font-size:12px;font-weight:700;color:#fff;background:var(--c);border-radius:999px;padding:1px 10px}
.mn-doc{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}
.mn-pre{margin:0;white-space:pre-wrap}
.mn-box--dl{border-color:var(--oc);border-width:1.5px}
.mn-files{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mn-files li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;background:#FAFBFA;border-radius:10px}
.mn-files .mn-row__icon{width:36px;height:42px;font-size:10px}
.mn-files__name{flex:1 1 200px;font-size:13.5px;font-weight:700;word-break:break-all}
.mn-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 18px;border-radius:999px;background:var(--oc);color:#fff!important;font-weight:700;font-size:14px;border:0;box-sizing:border-box}
.mn-btn--line{background:#fff;color:var(--oc)!important;border:1.5px solid var(--oc)}
.mn-btn--block{width:100%}
.mn-hist{list-style:none;margin:0;padding:0;font-size:13.5px}
.mn-hist li{display:flex;flex-wrap:wrap;gap:4px 14px;padding:6px 0;border-top:1px dashed var(--line)}
.mn-hist li:first-child{border-top:0}
.mn-hist span{color:var(--sub)}
.mn-meta{margin:0 0 14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 18px}
.mn-meta div{display:grid;grid-template-columns:5em 1fr;gap:8px;padding:9px 0;border-top:1px dashed var(--line);font-size:14px}
.mn-meta div:first-child{border-top:0}
.mn-meta dt{color:var(--sub)}.mn-meta dd{margin:0;font-weight:700}
.mn-textlink{font-size:14px;font-weight:700}
.mn-denied{max-width:620px;margin:20px auto}
.mn-foot{background:#26302A;color:#C9D2CB;font-size:12.5px}
.mn-foot__in{max-width:1160px;margin:0 auto;padding:18px clamp(16px,3vw,32px)}
.mn-foot p{margin:0}.mn-foot__copy{margin-top:4px!important;opacity:.7}
@media (max-width:900px){
.mn-layout,.mn-doc{grid-template-columns:1fr}
.mn-side{position:static}
.mn-side ul{display:flex;flex-wrap:wrap;gap:4px}
.mn-side a{background:#F6F8F6}
}
@media (max-width:600px){
.mn-head__user span{display:none}
.mn-row{grid-template-columns:36px minmax(0,1fr);padding:12px 14px}
.mn-row__icon{width:36px;height:44px}
.mn-row__meta{grid-column:2;flex-direction:row;gap:10px;align-items:center}
}
/* v0.20.1 マニュアルのPDFプレビュー */
.mn-preview__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}
.mn-preview__head .mn-box__title{margin:0}
.mn-preview__tabs{display:flex;flex-wrap:wrap;gap:6px}
.mn-preview__tabs button{min-height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font:inherit;font-size:12.5px;cursor:pointer;color:var(--ink)}
.mn-preview__tabs button[aria-selected="true"]{background:var(--oc);border-color:var(--oc);color:#fff}
.mn-pv__status{margin:0 0 8px;font-size:12.5px;color:var(--sub)}
.mn-pv__pages{display:grid;gap:14px;max-height:80vh;overflow-y:auto;background:#EEF1EE;border-radius:10px;padding:14px}
.mn-pv__page{margin:0;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.mn-pv__page canvas{display:block}
.mn-pv__page figcaption{text-align:center;font-size:11.5px;color:var(--sub);padding:4px 0;background:#F7F8F7}
.mn-pv__fallback{margin:0;font-size:14px}
@media (max-width:600px){.mn-pv__pages{padding:8px;max-height:70vh}}
/* v0.20.3 マニュアルの共有パスワード入口 */
.mn-gate{padding:clamp(48px,9vw,110px) 16px}
.mn-gate__card{max-width:440px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(26px,5vw,40px);text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.06)}
.mn-gate__title{margin:2px 0 0;font-size:26px}
.mn-gate__lead{margin:8px 0 20px;color:var(--sub);font-size:14px}
.mn-gate__form{text-align:left}
.mn-gate__form label{font-weight:700;font-size:14px}
.mn-gate__row{display:flex;gap:10px;margin-top:6px}
.mn-gate__row input{flex:1;min-width:0;min-height:46px;border:1.5px solid #CCD6CC;border-radius:10px;padding:0 12px;font-size:16px;font-family:inherit}
.mn-gate__alt{margin:20px 0 0;font-size:13px}
.mn-alert{background:#FFF2F0;color:#A3321F;border-radius:10px;padding:10px 14px;font-size:14px;margin:0 0 14px}
@media (max-width:480px){.mn-gate__row{flex-direction:column}}
/* v0.20.5 マニュアルの注意書き(赤字) */
.mn-notice{margin:12px 0 0;color:#D0021B;font-weight:700;background:#FFF3F2;border-left:4px solid #D0021B;border-radius:6px;padding:10px 14px}
.mn-row__notice{font-size:12.5px;font-weight:700;color:#D0021B;line-height:1.5}
/* v0.20.6 マニュアル:スマホはハンバーガーメニュー */
.mn-burger,.mn-drawer__title,.mn-head__full,.mn-dot,.mn-scrim{display:none}
.mn-drawer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;flex:1}
.mn-head__home{display:none!important}
@media (max-width:768px){
.mn-head__in{flex-wrap:nowrap;justify-content:space-between;padding:6px 12px 6px 16px;min-height:56px}
.mn-logo span{font-size:12.5px}
.mn-burger{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:52px;height:46px;border:0;border-radius:10px;background:var(--oc);color:#fff;cursor:pointer;flex:0 0 auto;font-family:inherit}
.mn-burger__bars{display:flex;flex-direction:column;gap:4px}
.mn-burger__bars i{display:block;width:20px;height:2px;border-radius:2px;background:#fff;transition:transform .2s,opacity .2s}
.mn-burger__label{font-size:9px;font-weight:700;letter-spacing:.04em}
.mn-burger[aria-expanded="true"] .mn-burger__bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.mn-burger[aria-expanded="true"] .mn-burger__bars i:nth-child(2){opacity:0}
.mn-burger[aria-expanded="true"] .mn-burger__bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mn-drawer{display:none;position:fixed;left:0;right:0;top:var(--mn-top,62px);max-height:calc(100vh - var(--mn-top,62px));overflow-y:auto;background:#fff;border-bottom:3px solid var(--oc);box-shadow:0 18px 30px rgba(0,0,0,.12);flex-direction:column;align-items:stretch;gap:0;padding:14px 16px 18px;z-index:30}
.mn-drawer.is-open{display:flex}
.mn-drawer__title{display:block;margin:0 0 8px;font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.08em}
.mn-head__nav{flex-direction:column;gap:6px}
.mn-head__nav a{display:flex!important;align-items:center;gap:12px;min-height:54px;padding:0 16px;border:1px solid var(--line);border-radius:12px;font-size:15.5px;background:#fff}
.mn-head__nav a[aria-current]{background:var(--c,#2B5434);border-color:var(--c,#2B5434)}
.mn-head__nav a[aria-current] .mn-dot{background:#fff}
.mn-head__home{display:flex!important}
.mn-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);flex:0 0 10px}
.mn-head__full{display:inline}.mn-head__short{display:none}
.mn-head__user{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);justify-content:space-between}
.mn-head__user span{display:inline!important}
.mn-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:15}
.mn-scrim[hidden]{display:none}
html.mn-lock{overflow:hidden}
}
