@charset "utf-8";

/* ************************************************
*	本文用コンポーネント（kg-）
*	色・文字・余白は下のトークン（CSS 変数）だけを使う。一覧は component-list.html
*	本文内の <style> と名前が衝突しないよう、必ず kg- を付ける
*	ブレイクポイント：1000px（Mobile Menu の切替幅）／640px
*	大きい画面：1921px 以上（ワイド）／2561px 以上（ウルトラワイド）は中身の幅と文字を一段ずつ大きくする
*	縦横比：横長（2:1 以上）と正方形に近い画面は、写真の高さを画面の高さに合わせて抑える（components.css）
* ************************************************ */


/* ************************************************
*	土台：トークン
* ************************************************ */

:root{
	--kg-blue:#005ead;
	--kg-blue-dark:#004785;
	--kg-blue-deep:#0b2f4f;
	--kg-blue-pale:#eef4fa;
	--kg-accent:#d9530d;
	--kg-accent-pale:#fdf1ea;
	--kg-line:#06c755;
	--kg-line-dark:#05a647;
	--kg-red:#d93025;
	--kg-red-pale:#fdf0ef;
	--kg-green:#2e7d4f;
	--kg-green-pale:#edf7f0;
	--kg-yellow-pale:#fff8e1;

	--kg-text:#1a1a1a;
	--kg-text-sub:#555;
	--kg-text-muted:#6b7785;
	--kg-border:#e3e8ee;
	--kg-border-strong:#c5ced8;
	--kg-bg:#f7f9fb;
	--kg-white:#fff;

	--kg-fs-xs:12px;
	--kg-fs-sm:14px;
	--kg-fs-base:16px;
	--kg-fs-md:18px;
	--kg-fs-lg:22px;
	--kg-fs-xl:28px;
	--kg-lh:1.8;
	--kg-lh-tight:1.4;
	--kg-ls:0.04em;

	--kg-sp-1:8px;
	--kg-sp-2:16px;
	--kg-sp-3:24px;
	--kg-sp-4:40px;
	--kg-sp-5:64px;

	--kg-radius:6px;
	--kg-radius-lg:12px;
	--kg-shadow:0 2px 8px rgba(0,30,60,0.06);
	--kg-shadow-hover:0 6px 16px rgba(0,30,60,0.14);
	--kg-tap:48px;
	--kg-sticky-top:0px;

	/* ヘッダー・ナビ・トップの各セクションの幅 */
	--kg-wrap:1200px;
	/* 下層ページの本文エリア（.area01・.kg-container）の幅 */
	--kg-content:1000px;
}

@media only screen and (max-width: 640px) {
	:root{
		--kg-fs-lg:20px;
		--kg-fs-xl:24px;
		--kg-sp-4:32px;
		--kg-sp-5:48px;
	}
}
@media only screen and (min-width: 1921px) {
	:root{
		--kg-wrap:1400px;
		--kg-content:1160px;
		--kg-fs-base:17px;
		--kg-fs-md:19px;
		--kg-fs-lg:24px;
		--kg-fs-xl:30px;
	}
}
@media only screen and (min-width: 2561px) {
	:root{
		--kg-wrap:1600px;
		--kg-content:1280px;
		--kg-fs-base:18px;
		--kg-fs-md:20px;
		--kg-fs-lg:26px;
		--kg-fs-xl:32px;
	}
}


/* ************************************************
*	土台：共通
* ************************************************ */

[class^="kg-"], [class*=" kg-"], [class^="kg-"] *, [class*=" kg-"] *{ box-sizing:border-box;}
/* cssreset-min.css が strong を normal にしている */
[class^="kg-"] strong, [class*=" kg-"] strong{ font-weight:bold;}
[class^="kg-"] :focus-visible, [class*=" kg-"]:focus-visible{ outline:3px solid var(--kg-blue); outline-offset:2px;}

.kg-sr-only{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.kg-icon{ display:inline-block; flex:none; width:1.2em; height:1.2em; fill:currentColor; vertical-align:-0.2em;}


/* ************************************************
*	土台：アイコン
*	<span class="kg-i is-calendar" aria-hidden="true"></span> と書くと、文字と同じ色・大きさで表示される
*	形は下の --i（SVG）をマスクにしている。追加するときは viewBox 0 0 24 24 の SVG を同じ書き方で足す
* ************************************************ */

.kg-i{
	display:inline-block; flex:none; width:1.25em; height:1.25em; vertical-align:-0.22em;
	background-color:currentColor;
	-webkit-mask:var(--i) center / contain no-repeat;
	mask:var(--i) center / contain no-repeat;
}
.kg-i.is-sm{ width:1em; height:1em; vertical-align:-0.12em;}
.kg-i.is-lg{ width:1.6em; height:1.6em; vertical-align:-0.4em;}
.kg-i.is-blue{ color:var(--kg-blue);}
.kg-i.is-accent{ color:var(--kg-accent);}
.kg-i.is-red{ color:var(--kg-red);}
.kg-i.is-green{ color:var(--kg-green);}

/* kg-icons:start */
.kg-i.is-phone{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z'/%3E%3C/svg%3E");}
.kg-i.is-mail{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");}
.kg-i.is-chat{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z'/%3E%3C/svg%3E");}
.kg-i.is-fax{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 8H5c-1.7 0-3 1.3-3 3v6h4v4h12v-4h4v-6c0-1.7-1.3-3-3-3zm-3 11H8v-5h8v5zm3-7c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm-1-9H6v4h12V3z'/%3E%3C/svg%3E");}
.kg-i.is-pen{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17.2V21h3.8l11-11-3.7-3.8L3 17.2zM20.7 7c.4-.4.4-1 0-1.4l-2.3-2.3c-.4-.4-1-.4-1.4 0l-1.8 1.8 3.7 3.8L20.7 7z'/%3E%3C/svg%3E");}
.kg-i.is-megaphone{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 11v2h4v-2h-4zm-2 6.6c1 .7 2.2 1.6 3.2 2.4l.8-1.1c-1-.7-2.2-1.6-3.2-2.4l-.8 1.1zM20 5.1 19.2 4c-1 .7-2.2 1.6-3.2 2.4l.8 1.1c1-.8 2.2-1.7 3.2-2.4zM4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.3-.6-2.5-1.5-3.4v6.7c.9-.8 1.5-2 1.5-3.3z'/%3E%3C/svg%3E");}
.kg-i.is-doc{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E");}
.kg-i.is-download{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z'/%3E%3C/svg%3E");}
.kg-i.is-external{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H5v12h12v-6h2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");}
.kg-i.is-license{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h4v5l4-2 4 2v-5h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z'/%3E%3C/svg%3E");}
.kg-i.is-calendar{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14v10zM7 12h5v5H7z'/%3E%3C/svg%3E");}
.kg-i.is-clock{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z'/%3E%3C/svg%3E");}
.kg-i.is-yen{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 3h2.4L12 8.6 15.1 3h2.4l-3.9 6.5H16v2h-3v1.5h3v2h-3V21h-2v-6H8v-2h3v-1.5H8v-2h2.4z'/%3E%3C/svg%3E");}
.kg-i.is-pin{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.3 7 13 7 13s7-7.7 7-13c0-3.9-3.1-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");}
.kg-i.is-train{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c-4 0-8 .5-8 4v9.5A3.5 3.5 0 0 0 7.5 19L6 20.5v.5h2.2l2-2h3.6l2 2H18v-.5L16.5 19a3.5 3.5 0 0 0 3.5-3.5V6c0-3.5-3.6-4-8-4zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z'/%3E%3C/svg%3E");}
.kg-i.is-bus{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 16c0 .9.4 1.7 1 2.2V20a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h8v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1.8c.6-.5 1-1.3 1-2.2V6c0-3.5-3.6-4-8-4S4 2.5 4 6v10zm3.5 1a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM18 11H6V6h12v5z'/%3E%3C/svg%3E");}
.kg-i.is-home{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E");}
.kg-i.is-boat{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 21c-1.4 0-2.8-.5-4-1.3-2.4 1.7-5.6 1.7-8 0-1.2.8-2.6 1.3-4 1.3H2v2h2c1.4 0 2.7-.3 4-1 2.5 1.3 5.5 1.3 8 0 1.3.7 2.6 1 4 1h2v-2h-2zM3.9 19H4c1.6 0 3-.9 4-2 1 1.1 2.4 2 4 2s3-.9 4-2c1 1.1 2.4 2 4 2h.1l1.9-6.7c.1-.3.1-.5-.1-.8-.1-.2-.4-.4-.7-.4L20 10.6V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.6l-1.3.4c-.3.1-.5.2-.7.4-.1.3-.2.5-.1.8L3.9 19zM6 6h12v4l-6-2-6 2V6z'/%3E%3C/svg%3E");}
.kg-i.is-anchor{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 15l1.6 1.6c-1 1.7-3.3 3-5.6 3.4V11h3V9h-3V7.8A3 3 0 0 0 12 2a3 3 0 0 0-1 5.8V9H8v2h3v9c-2.2-.4-4.6-1.7-5.6-3.4L7 15l-4-3v3c0 3.9 4.9 7 9 7s9-3.1 9-7v-3l-4 3zM12 4a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");}
.kg-i.is-school{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13.2v4L12 21l7-3.8v-4L12 17l-7-3.8zM12 3 1 9l11 6 9-4.9V17h2V9L12 3z'/%3E%3C/svg%3E");}
.kg-i.is-person{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-2.7 0-8 1.3-8 4v2h16v-2c0-2.7-5.3-4-8-4z'/%3E%3C/svg%3E");}
.kg-i.is-users{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-8 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 2c-2.3 0-7 1.2-7 3.5V19h14v-2.5C15 14.2 10.3 13 8 13zm8 0c-.3 0-.6 0-1 .1 1.2.8 2 1.9 2 3.4V19h6v-2.5c0-2.3-4.7-3.5-7-3.5z'/%3E%3C/svg%3E");}
.kg-i.is-lifebuoy{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/g%3E%3Cpath d='M5.6 4.2 10.3 8.9 8.9 10.3 4.2 5.6zM19.8 5.6l-4.7 4.7-1.4-1.4 4.7-4.7zM18.4 19.8l-4.7-4.7 1.4-1.4 4.7 4.7zM4.2 18.4l4.7-4.7 1.4 1.4-4.7 4.7z'/%3E%3C/svg%3E");}
.kg-i.is-shield{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 3 5v6c0 5.6 3.8 10.7 9 12 5.2-1.3 9-6.4 9-12V5l-9-4zm-2 16-4-4 1.4-1.4 2.6 2.6 6.6-6.6L18 9l-8 8z'/%3E%3C/svg%3E");}
.kg-i.is-star{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.3 18.2 21l-1.6-7L22 9.2l-7.2-.6L12 2 9.2 8.6 2 9.2 7.5 14l-1.7 7z'/%3E%3C/svg%3E");}
.kg-i.is-play{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 14.5v-9l6 4.5-6 4.5z'/%3E%3C/svg%3E");}
.kg-i.is-info{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/%3E%3C/svg%3E");}
.kg-i.is-check{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15-5-5 1.4-1.4L10 14.2l7.6-7.6L19 8l-9 9z'/%3E%3C/svg%3E");}
.kg-i.is-warning{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E");}
.kg-i.is-error{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");}
.kg-i.is-help{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 17h-2v-2h2v2zm2.1-7.8-.9.9C13.5 12.9 13 13.5 13 15h-2v-.5c0-1.1.5-2.1 1.2-2.8l1.2-1.3c.4-.4.6-.9.6-1.4a2 2 0 0 0-4 0H8a4 4 0 0 1 8 0c0 .9-.4 1.7-.9 2.2z'/%3E%3C/svg%3E");}
.kg-i.is-search{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");}
.kg-i.is-arrow{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.6 16.6 13.2 12 8.6 7.4 10 6l6 6-6 6z'/%3E%3C/svg%3E");}
.kg-i.is-left{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.4 16.6 10.8 12l4.6-4.6L14 6l-6 6 6 6z'/%3E%3C/svg%3E");}
.kg-i.is-down{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%3E%3C/svg%3E");}
.kg-i.is-up{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.4 15.4 12 10.8l4.6 4.6L18 14l-6-6-6 6z'/%3E%3C/svg%3E");}
.kg-i.is-menu{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z'/%3E%3C/svg%3E");}
.kg-i.is-close{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4 10.6 12 5 17.6 6.4 19 12 13.4 17.6 19 19 17.6 13.4 12z'/%3E%3C/svg%3E");}
.kg-i.is-zoom{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.8l-.3-.3A6.5 6.5 0 1 0 9.5 16c1.6 0 3.1-.6 4.2-1.6l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14zm2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z'/%3E%3C/svg%3E");}
.kg-i.is-share{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16.1c-.8 0-1.4.3-2 .8l-7.1-4.2c.1-.2.1-.5.1-.7s0-.5-.1-.7L16 7.2c.5.5 1.2.8 2 .8 1.7 0 3-1.3 3-3s-1.3-3-3-3-3 1.3-3 3c0 .2 0 .5.1.7L8 9.8C7.5 9.3 6.8 9 6 9c-1.7 0-3 1.3-3 3s1.3 3 3 3c.8 0 1.5-.3 2-.8l7.1 4.2c-.1.2-.1.4-.1.6 0 1.6 1.3 2.9 2.9 2.9s2.9-1.3 2.9-2.9-1.2-2.8-2.8-2.8z'/%3E%3C/svg%3E");}
.kg-i.is-link{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.9 12c0-1.7 1.4-3.1 3.1-3.1h4V7H7c-2.8 0-5 2.2-5 5s2.2 5 5 5h4v-1.9H7c-1.7 0-3.1-1.4-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.7 0 3.1 1.4 3.1 3.1s-1.4 3.1-3.1 3.1h-4V17h4c2.8 0 5-2.2 5-5s-2.2-5-5-5z'/%3E%3C/svg%3E");}
.kg-i.is-print{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M6 3h12v5h1a3 3 0 0 1 3 3v6h-4v4H6v-4H2v-6a3 3 0 0 1 3-3h1V3zm2 2v3h8V5H8zm0 10v4h8v-4H8zm10-3.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/svg%3E");}
.kg-i.is-tag{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.4 11.6l-9-9C12.1 2.2 11.6 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .6.2 1.1.6 1.4l9 9c.4.4.9.6 1.4.6s1.1-.2 1.4-.6l7-7c.4-.4.6-.9.6-1.4s-.2-1.1-.6-1.4zM5.5 7C4.7 7 4 6.3 4 5.5S4.7 4 5.5 4 7 4.7 7 5.5 6.3 7 5.5 7z'/%3E%3C/svg%3E");}
.kg-i.is-facebook{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 21v-7.5h2.5l.4-3h-2.9V8.6c0-.9.3-1.5 1.5-1.5h1.6V4.4c-.3 0-1.2-.1-2.3-.1-2.3 0-3.8 1.4-3.8 3.9v2.3H8v3h2.5V21h3z'/%3E%3C/svg%3E");}
.kg-i.is-instagram{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/g%3E%3Ccircle cx='17.2' cy='6.8' r='1.2'/%3E%3C/svg%3E");}
.kg-i.is-youtube{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M21.6 7.2a2.5 2.5 0 0 0-1.8-1.8C18.2 5 12 5 12 5s-6.2 0-7.8.4a2.5 2.5 0 0 0-1.8 1.8C2 8.8 2 12 2 12s0 3.2.4 4.8a2.5 2.5 0 0 0 1.8 1.8c1.6.4 7.8.4 7.8.4s6.2 0 7.8-.4a2.5 2.5 0 0 0 1.8-1.8c.4-1.6.4-4.8.4-4.8s0-3.2-.4-4.8zM10 15V9l5.2 3L10 15z'/%3E%3C/svg%3E");}
.kg-i.is-line{ --i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 3C6.5 3 2 6.6 2 11c0 3.9 3.5 7.2 8.3 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.5s6.1-3.6 8.3-6.1c1.5-1.7 2.2-3.3 2.2-5.2C22.5 6.6 18 3 12 3zM6 8.6h1.2v3.8h2.2v1H6V8.6zm4.2 0h1.2v4.8h-1.2V8.6zm2.1 0h1.1l2 2.9V8.6h1.2v4.8h-1.1l-2-2.9v2.9h-1.2V8.6zm5.2 0h3.1v1h-1.9v.9h1.9v1h-1.9v.9h1.9v1h-3.1V8.6z'/%3E%3C/svg%3E");}
/* kg-icons:end */

/* ファイルの種類：<span class="kg-file-icon is-xlsx">XLSX</span>（中の文字がそのまま表示・読み上げされる） */
.kg-file-icon{
	--file:var(--kg-red);
	position:relative; display:inline-flex; align-items:flex-end; justify-content:center; flex:none; width:32px; height:40px; padding-bottom:6px; vertical-align:middle;
	background:linear-gradient(to bottom left, transparent 50%, rgba(255,255,255,0.55) 50%) top right / 10px 10px no-repeat, var(--file);
	-webkit-clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
	clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
	border-radius:3px; color:var(--kg-white); font-family:Arial, sans-serif; font-size:9px; font-weight:bold; line-height:1; letter-spacing:0.02em;
}
.kg-file-icon.is-xlsx{ --file:#1d6f42;}
.kg-file-icon.is-docx{ --file:#2b579a;}
.kg-file-icon.is-pptx{ --file:#c43e1c;}
.kg-file-icon.is-zip{ --file:#6b7785;}
.kg-file-icon.is-img{ --file:#7b4fa0;}
.kg-file-icon.is-lg{ width:44px; height:56px; padding-bottom:9px; font-size:12px;}


/* ************************************************
*	土台：レイアウト
* ************************************************ */

.kg-container{ max-width:var(--kg-content); width:95%; margin:0 auto;}
.kg-container.is-narrow{ max-width:760px;}

.kg-stack > * + *{ margin-top:var(--kg-sp-2);}
.kg-stack.is-lg > * + *{ margin-top:var(--kg-sp-4);}

.kg-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:var(--kg-sp-2); margin:0 0 var(--kg-sp-3); padding:0;}
.kg-grid.is-3{ grid-template-columns:repeat(3, 1fr);}
.kg-grid.is-4{ grid-template-columns:repeat(4, 1fr);}
.kg-grid > li{ min-width:0; list-style:none;}

.kg-section{
	position:relative; overflow:hidden; margin-bottom:var(--kg-sp-4); padding:var(--kg-sp-4);
	border-radius:var(--kg-radius-lg); background-color:var(--kg-white); box-shadow:var(--kg-shadow);
}
.kg-section:last-child{ margin-bottom:0;}
.kg-section-wrap{ padding:var(--kg-sp-4) var(--kg-sp-3); border-radius:var(--kg-radius-lg); background-color:var(--kg-bg);}

@media only screen and (max-width: 1000px) {
	.kg-grid.is-4{ grid-template-columns:repeat(2, 1fr);}
	.kg-section{ padding:var(--kg-sp-3) var(--kg-sp-2);}
	.kg-section-wrap{ padding:var(--kg-sp-2) 0;}
}
@media only screen and (max-width: 640px) {
	.kg-grid, .kg-grid.is-3{ grid-template-columns:1fr;}
	.kg-grid.is-4{ gap:12px;}
}


/* ************************************************
*	見出し・本文
* ************************************************ */

.kg-page-title{ margin:0 0 var(--kg-sp-3); text-align:center;}
.kg-page-title h1, .kg-page-title h2{ margin:0; color:var(--kg-text); font-size:var(--kg-fs-xl); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-page-title::after{ content:""; display:inline-block; width:64px; height:4px; margin-top:12px; border-radius:2px; background-color:var(--kg-blue);}

.kg-heading{ margin:var(--kg-sp-4) 0 var(--kg-sp-2); padding:0 0 10px; border-bottom:2px solid var(--kg-blue); color:var(--kg-text); font-size:var(--kg-fs-lg); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-heading-bar{ margin:var(--kg-sp-4) 0 var(--kg-sp-2); padding:2px 0 2px 14px; border-left:6px solid var(--kg-blue); color:var(--kg-text); font-size:var(--kg-fs-md); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-heading-bar.is-accent{ border-left-color:var(--kg-accent);}
.kg-heading-band{ margin:var(--kg-sp-3) 0 var(--kg-sp-2); padding:10px 16px; border-radius:var(--kg-radius); background-color:var(--kg-blue); color:var(--kg-white); font-size:var(--kg-fs-md); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-heading-band a{ display:block; color:var(--kg-white);}
.kg-heading-sub{ margin:var(--kg-sp-3) 0 var(--kg-sp-1); color:var(--kg-blue); font-size:var(--kg-fs-base); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-label{ display:block; margin:0 0 4px; color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0.1em;}
.kg-section > :first-child, .kg-tile > :first-child, .kg-alert > div > :first-child{ margin-top:0;}
.kg-heading > .kg-i, .kg-heading-bar > .kg-i, .kg-heading-sub > .kg-i{ margin-right:8px; color:var(--kg-blue);}
.kg-heading-bar.is-accent > .kg-i{ color:var(--kg-accent);}
.kg-heading-band > .kg-i, .kg-heading-band a > .kg-i{ margin-right:8px;}

.kg-text{ color:var(--kg-text); font-size:var(--kg-fs-base); line-height:var(--kg-lh); letter-spacing:var(--kg-ls);}
.kg-text p{ margin:0 0 1em;}
.kg-text p:last-child{ margin-bottom:0;}
.kg-text a{ color:var(--kg-blue); text-decoration:underline;}
.kg-lead{ margin:0 0 var(--kg-sp-3); color:var(--kg-text); font-size:var(--kg-fs-md); line-height:2; letter-spacing:0.06em; text-align:center;}
.kg-lead.is-serif{ font-family:"游明朝体", "Yu Mincho", YuMincho, serif;}
.kg-em-red{ color:var(--kg-red); font-weight:bold;}
.kg-em-blue{ color:var(--kg-blue); font-weight:bold;}
.kg-marker{ background:linear-gradient(transparent 60%, #ffe58a 60%); font-weight:bold;}
.kg-note{ color:var(--kg-text-muted); font-size:var(--kg-fs-sm); line-height:1.7; letter-spacing:0.02em;}
.kg-catch{ margin:0 0 var(--kg-sp-3); padding:var(--kg-sp-2) 20px; border-left:6px solid var(--kg-blue); border-radius:0 var(--kg-radius) var(--kg-radius) 0; background-color:var(--kg-blue-pale); color:var(--kg-text); font-size:var(--kg-fs-md); font-weight:bold; line-height:1.7;}

@media only screen and (max-width: 640px) {
	.kg-lead{ font-size:var(--kg-fs-base); text-align:left;}
}


/* ************************************************
*	ナビゲーション
* ************************************************ */

.kg-breadcrumb{ display:flex; flex-wrap:wrap; gap:4px 0; margin:0 0 var(--kg-sp-2); padding:0; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); line-height:1.6; letter-spacing:0.02em;}
.kg-breadcrumb li{ list-style:none; display:flex; align-items:center;}
.kg-breadcrumb li + li::before{ content:""; width:6px; height:6px; margin:0 10px 0 8px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg);}
.kg-breadcrumb a{ color:var(--kg-blue);}

.kg-page-nav{ position:sticky; top:var(--kg-sticky-top); z-index:20; margin:0 0 var(--kg-sp-3); border-bottom:1px solid var(--kg-border); background-color:rgba(255,255,255,0.96);}
.kg-page-nav ul{ display:flex; gap:4px; margin:0; padding:8px 0; overflow-x:auto; white-space:nowrap; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.kg-page-nav ul::-webkit-scrollbar{ display:none;}
.kg-page-nav li{ list-style:none; flex:none;}
.kg-page-nav a .kg-i{ width:16px; height:16px;}
.kg-page-nav a{ display:flex; align-items:center; gap:6px; min-height:40px; padding:0 16px; border:1px solid var(--kg-border); border-radius:20px; background-color:var(--kg-white); color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0.02em;}
.kg-page-nav a.is-current{ border-color:var(--kg-blue); background-color:var(--kg-blue); color:var(--kg-white);}
.kg-page-nav ~ [id], .kg-page-nav ~ * [id]{ scroll-margin-top:calc(var(--kg-sticky-top) + 72px);}

.kg-pagination{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:var(--kg-sp-4) 0; padding:0;}
.kg-pagination li{ list-style:none;}
.kg-pagination a, .kg-pagination span{
	display:flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 12px;
	border:1px solid var(--kg-border-strong); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0;
}
.kg-pagination .is-current{ border-color:var(--kg-blue); background-color:var(--kg-blue); color:var(--kg-white);}
.kg-pagination .is-dots{ border:none; background:none; color:var(--kg-text-muted);}

.kg-pagetop{
	display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:56px; height:56px;
	border-radius:50%; background-color:var(--kg-blue); box-shadow:var(--kg-shadow); color:var(--kg-white); font-size:10px; font-weight:bold; line-height:1; letter-spacing:0.04em;
}
.kg-pagetop::before{ content:""; width:10px; height:10px; margin-top:6px; border-top:2px solid currentColor; border-left:2px solid currentColor; transform:rotate(45deg);}

@media (hover: hover) {
	.kg-breadcrumb a:hover{ text-decoration:underline;}
	.kg-page-nav a:hover{ opacity:1; border-color:var(--kg-blue); background-color:var(--kg-blue-pale);}
	.kg-page-nav a.is-current:hover{ background-color:var(--kg-blue); color:var(--kg-white);}
	.kg-pagination a:hover{ opacity:1; border-color:var(--kg-blue); background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-pagetop:hover{ opacity:1; background-color:var(--kg-blue-dark); color:var(--kg-white);}
}


/* ************************************************
*	ボタン・リンク
* ************************************************ */

.kg-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--kg-tap); padding:10px 28px;
	border:2px solid var(--kg-blue); border-radius:var(--kg-radius); background-color:var(--kg-blue);
	color:var(--kg-white); font-family:inherit; font-size:var(--kg-fs-base); font-weight:bold; line-height:1.4; letter-spacing:var(--kg-ls); text-align:center;
	cursor:pointer; transition:background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.2s;
}
.kg-btn .kg-icon, .kg-btn .kg-i{ width:20px; height:20px; vertical-align:0;}
.kg-btn.is-outline{ background-color:var(--kg-white); color:var(--kg-blue);}
.kg-btn.is-text{ min-height:auto; padding:4px 0; border-color:transparent; background:none; color:var(--kg-blue); text-decoration:underline;}
.kg-btn.is-accent{ border-color:var(--kg-accent); background-color:var(--kg-accent);}
.kg-btn.is-line{ border-color:var(--kg-line); background-color:var(--kg-line);}
.kg-btn.is-tel{ border-color:var(--kg-blue-deep); background-color:var(--kg-blue-deep);}
.kg-btn.is-pill{ border-radius:50px;}
.kg-btn.is-small{ min-height:36px; padding:6px 16px; font-size:var(--kg-fs-sm);}
.kg-btn.is-large{ min-height:60px; padding:14px 40px; font-size:var(--kg-fs-md);}
.kg-btn.is-block{ display:flex; width:100%;}
.kg-btn[aria-disabled="true"], .kg-btn:disabled{ border-color:var(--kg-border-strong); background-color:var(--kg-border); color:var(--kg-text-muted); cursor:not-allowed; pointer-events:none;}
.kg-btn.is-arrow::after{ content:""; width:8px; height:8px; margin-left:4px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}

.kg-btn-group{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; margin:var(--kg-sp-3) 0;}

.kg-ext::after{
	content:""; display:inline-block; width:0.8em; height:0.8em; margin-left:4px; vertical-align:-0.05em;
	background-color:currentColor;
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H5v12h12v-6h2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H5v12h12v-6h2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 書類のボタン：先頭に .kg-file-icon を置く。種類は .kg-file-icon 側の is-xlsx などで切り替える */
.kg-btn-file{
	display:inline-flex; align-items:center; gap:10px; min-height:56px; margin:4px 8px 4px 0; padding:6px 16px 6px 10px;
	border:1px solid var(--kg-border-strong); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-text); font-size:var(--kg-fs-sm); font-weight:bold; line-height:1.4; letter-spacing:0.02em; vertical-align:top;
	transition:border-color 0.2s, box-shadow 0.2s;
}
.kg-btn-file small{ display:block; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:normal;}
.kg-btn-file > .kg-i{ margin-left:4px; color:var(--kg-text-muted);}

.kg-link-box{
	display:flex; align-items:center; gap:12px; min-height:56px; margin:0 0 8px; padding:12px 16px;
	border:1px solid var(--kg-border); border-left:5px solid var(--kg-blue); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-blue); font-weight:bold; line-height:1.5; letter-spacing:var(--kg-ls); transition:box-shadow 0.2s, transform 0.2s;
}
.kg-link-box > .kg-i{ width:24px; height:24px;}
.kg-link-box::after{ content:""; flex:none; width:8px; height:8px; margin-left:auto; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}

.kg-map-link{ display:inline-flex; align-items:center; gap:4px; color:var(--kg-blue); font-weight:bold; text-decoration:underline;}
.kg-more{ display:inline-flex; align-items:center; gap:8px; color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; white-space:nowrap;}
.kg-more::after{ content:""; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}

.kg-line-box{
	max-width:320px; margin:var(--kg-sp-4) auto; padding:20px; border-radius:16px;
	background:linear-gradient(135deg, var(--kg-line) 0%, var(--kg-line-dark) 100%); box-shadow:0 4px 15px rgba(6,199,85,0.25); text-align:center;
}
.kg-line-box a{ display:block; color:var(--kg-white);}
.kg-line-box__title{ display:block; margin-bottom:12px; font-size:var(--kg-fs-base); font-weight:bold; line-height:1.5;}
.kg-line-box__qr{ display:inline-block; padding:10px; border-radius:12px; background-color:var(--kg-white); line-height:0;}
.kg-line-box__qr img{ width:130px; height:130px;}
.kg-line-box__sub{ display:inline-block; margin-top:12px; padding:6px 12px; border-radius:20px; background-color:rgba(255,255,255,0.2); font-size:13px; font-weight:bold; line-height:1.5;}

/* ページ末尾の申込・問い合わせ導線。スマホは画面下の .sp-cta があるので 1 ページ 1 か所に */
.kg-cta-band{ margin:var(--kg-sp-5) 0 var(--kg-sp-4); padding:var(--kg-sp-4) var(--kg-sp-3); border-radius:var(--kg-radius-lg); background-color:var(--kg-blue-deep); color:var(--kg-white); text-align:center;}
.kg-cta-band__title{ margin:0 0 6px; font-size:var(--kg-fs-lg); font-weight:bold; line-height:var(--kg-lh-tight); letter-spacing:var(--kg-ls);}
.kg-cta-band__text{ margin:0 0 var(--kg-sp-3); font-size:var(--kg-fs-sm); line-height:1.7; opacity:0.9;}
.kg-cta-band__tel{ display:inline-flex; align-items:center; gap:8px; color:var(--kg-white); font-family:Arial, sans-serif; font-size:32px; font-weight:bold; line-height:1.2; letter-spacing:0.02em;}
.kg-cta-band__tel .kg-icon, .kg-cta-band__tel .kg-i{ width:28px; height:28px;}
.kg-cta-band__hours{ display:block; margin-top:2px; font-size:var(--kg-fs-xs); opacity:0.85;}
.kg-cta-band .kg-btn-group{ margin-bottom:0;}
.kg-cta-band .kg-btn{ min-width:200px;}
.kg-cta-band .kg-btn.is-outline{ border-color:var(--kg-white); background:none; color:var(--kg-white);}

@media only screen and (max-width: 640px) {
	.kg-btn-group{ flex-direction:column; align-items:stretch;}
	.kg-btn-group .kg-btn{ width:100%;}
	.kg-cta-band{ padding:var(--kg-sp-3) var(--kg-sp-2);}
	.kg-cta-band__tel{ font-size:26px;}
}

@media (hover: hover) {
	.kg-btn:hover{ opacity:1; border-color:var(--kg-blue-dark); background-color:var(--kg-blue-dark); color:var(--kg-white);}
	.kg-btn.is-outline:hover{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-btn.is-text:hover{ border-color:transparent; background:none; color:var(--kg-blue-dark);}
	.kg-btn.is-accent:hover{ border-color:#b8450a; background-color:#b8450a;}
	.kg-btn.is-line:hover{ border-color:var(--kg-line-dark); background-color:var(--kg-line-dark);}
	.kg-btn.is-tel:hover{ border-color:#06192b; background-color:#06192b;}
	.kg-cta-band .kg-btn.is-outline:hover{ background-color:rgba(255,255,255,0.12); color:var(--kg-white);}
	.kg-btn-file:hover{ opacity:1; border-color:var(--kg-blue); box-shadow:var(--kg-shadow); color:var(--kg-blue);}
	.kg-link-box:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-blue); transform:translateX(4px);}
	.kg-map-link:hover, .kg-more:hover{ opacity:1; color:var(--kg-blue-dark);}
	.kg-line-box a:hover, .kg-cta-band__tel:hover{ opacity:0.85; color:var(--kg-white);}
}


/* ************************************************
*	バッジ・受付状況
* ************************************************ */

.kg-badge{
	display:inline-flex; align-items:center; margin:0 4px; padding:0 8px; min-height:22px; border-radius:4px; vertical-align:0.1em;
	background-color:var(--kg-blue); color:var(--kg-white); font-size:var(--kg-fs-xs); font-weight:bold; line-height:1.6; letter-spacing:0.02em;
}
.kg-badge.is-accent{ background-color:var(--kg-accent);}
.kg-badge.is-gray{ border:1px solid var(--kg-border-strong); background-color:var(--kg-bg); color:var(--kg-text-sub);}
.kg-badge.is-outline{ border:1px solid var(--kg-blue); background:none; color:var(--kg-blue);}

.kg-status{ display:inline-flex; align-items:center; gap:4px; padding:2px 10px; border-radius:20px; font-size:var(--kg-fs-xs); font-weight:bold; line-height:1.6; white-space:nowrap;}
.kg-status::before{ content:""; width:7px; height:7px; border-radius:50%; background-color:currentColor;}
.kg-status.is-open{ background-color:var(--kg-green-pale); color:var(--kg-green);}
.kg-status.is-few{ background-color:var(--kg-accent-pale); color:var(--kg-accent);}
.kg-status.is-full{ background-color:var(--kg-red-pale); color:var(--kg-red);}
.kg-status.is-closed{ background-color:var(--kg-bg); color:var(--kg-text-muted);}
.kg-status.is-soon{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}


/* ************************************************
*	カード
* ************************************************ */

/* コース概要：ページ冒頭に期間・料金・会場・資格をまとめる */
.kg-summary{ margin:0 0 var(--kg-sp-4); border:1px solid var(--kg-border); border-top:4px solid var(--kg-blue); border-radius:var(--kg-radius-lg); background-color:var(--kg-white); box-shadow:var(--kg-shadow);}
.kg-summary__head{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:var(--kg-sp-2) var(--kg-sp-3); border-bottom:1px solid var(--kg-border);}
.kg-summary__title{ margin:0; color:var(--kg-text); font-size:var(--kg-fs-lg); font-weight:bold; line-height:var(--kg-lh-tight);}
.kg-summary__list{ display:grid; grid-template-columns:repeat(4, 1fr); margin:0; padding:0;}
.kg-summary__item{ padding:var(--kg-sp-2) var(--kg-sp-3); border-left:1px solid var(--kg-border);}
.kg-summary__item:first-child{ border-left:none;}
.kg-summary__item dt .kg-i{ margin-right:4px; color:var(--kg-blue);}
.kg-summary__item dt{ margin:0 0 4px; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:bold; letter-spacing:0.08em;}
.kg-summary__item dd{ margin:0; color:var(--kg-text); font-size:var(--kg-fs-base); font-weight:bold; line-height:1.5;}
.kg-summary__item dd.is-price{ color:var(--kg-red); font-size:var(--kg-fs-lg);}
.kg-summary__item dd small{ display:block; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:normal;}
.kg-summary__foot{ display:flex; flex-wrap:wrap; gap:8px; padding:var(--kg-sp-2) var(--kg-sp-3); border-top:1px solid var(--kg-border); background-color:var(--kg-bg); border-radius:0 0 var(--kg-radius-lg) var(--kg-radius-lg);}
.kg-summary__foot .kg-btn{ flex:1; min-width:180px;}

.kg-news-card{ display:block; color:var(--kg-text); line-height:1.6;}
.kg-news-card__thumb{ display:block; aspect-ratio:3 / 2; overflow:hidden; border-radius:var(--kg-radius); background-color:var(--kg-blue-pale);}
.kg-news-card__thumb img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform 0.3s;}
.kg-news-card__date{ display:block; margin-top:10px; color:var(--kg-blue); font-size:13px; font-weight:bold;}
.kg-news-card__title{ display:block; font-size:15px; letter-spacing:var(--kg-ls);}

.kg-news-list{ margin:0 0 var(--kg-sp-3); padding:0; border-top:1px solid var(--kg-border);}
.kg-news-list li{ list-style:none; border-bottom:1px solid var(--kg-border);}
.kg-news-list a{ display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:4px 16px; min-height:56px; padding:12px 4px; color:var(--kg-text); line-height:1.6;}
.kg-news-list time{ color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; white-space:nowrap;}
.kg-news-list .kg-badge{ margin:0;}

.kg-course-card{
	display:flex; flex-direction:column; height:100%; padding:var(--kg-sp-2) 20px; border:1px solid var(--kg-border); border-left:5px solid var(--kg-blue); border-radius:var(--kg-radius);
	background-color:var(--kg-white); box-shadow:var(--kg-shadow); color:var(--kg-text); line-height:1.6;
	transition:transform 0.2s, box-shadow 0.2s;
}
.kg-course-card__title{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; color:var(--kg-blue); font-size:var(--kg-fs-md); font-weight:bold;}
.kg-course-card__title::after{ content:""; flex:none; width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); transition:transform 0.2s;}
.kg-course-card__desc{ color:var(--kg-text-sub); font-size:var(--kg-fs-sm); line-height:1.6;}
.kg-course-card__meta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:10px;}
.kg-course-card__meta .kg-badge{ margin:0;}

.kg-price-card{ max-width:720px; margin:0 auto var(--kg-sp-3); padding:var(--kg-sp-4) var(--kg-sp-3); border:1px solid var(--kg-border); border-radius:var(--kg-radius-lg); background-color:var(--kg-white); text-align:center; line-height:1.6;}
.kg-price-card__label{ display:block; color:var(--kg-blue); font-size:var(--kg-fs-base); font-weight:bold;}
.kg-price-card__old{ display:block; margin-top:8px; color:var(--kg-text-muted); font-size:var(--kg-fs-base); text-decoration:line-through;}
.kg-price-card__tag{ display:inline-block; margin:8px 0; padding:4px 12px; border-radius:4px; background-color:var(--kg-accent); color:var(--kg-white); font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-price-card__main{ display:block; margin-bottom:8px; color:var(--kg-red); font-size:32px; font-weight:bold; line-height:1.3; letter-spacing:0.02em;}
.kg-price-card__main small{ font-size:var(--kg-fs-base);}
.kg-price-card__note{ display:block; color:var(--kg-text-muted); font-size:13px;}

.kg-tile-title{ margin:var(--kg-sp-3) 0 0; padding:10px 20px; border-radius:var(--kg-radius) var(--kg-radius) 0 0; background-color:var(--kg-blue); color:var(--kg-white); font-size:var(--kg-fs-base); font-weight:bold; line-height:1.5;}
.kg-tile-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; margin:0 0 var(--kg-sp-3); padding:var(--kg-sp-2); border:1px solid var(--kg-border); border-top:none; border-radius:0 0 var(--kg-radius) var(--kg-radius); background-color:var(--kg-bg);}
.kg-tile{ padding:var(--kg-sp-2); border-left:4px solid var(--kg-blue); border-radius:0 var(--kg-radius) var(--kg-radius) 0; background-color:var(--kg-white); color:var(--kg-text-sub); font-size:var(--kg-fs-sm); line-height:1.7;}
.kg-tile h4{ margin:0 0 8px; padding:0; color:var(--kg-blue); font-size:var(--kg-fs-base); font-weight:bold; line-height:1.5;}
.kg-tile strong{ color:var(--kg-text);}
.kg-tile.is-accent{ border-left-color:var(--kg-accent); background-color:var(--kg-accent-pale);}
.kg-tile.is-accent h4{ color:var(--kg-accent);}
.kg-tile.is-full{ grid-column:1 / -1;}

.kg-venue{ display:flex; flex-wrap:wrap; gap:var(--kg-sp-2); margin:0 0 var(--kg-sp-3);}
.kg-venue__card{ flex:1; min-width:260px; padding:20px; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white); font-size:15px; line-height:1.7;}
.kg-venue__name{ display:block; margin-bottom:4px; color:var(--kg-blue); font-size:var(--kg-fs-base); font-weight:bold;}

.kg-feature{ display:flex; flex-direction:column; align-items:center; height:100%; padding:20px 12px; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white); text-align:center; line-height:1.5;}
.kg-feature__icon{ display:flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
.kg-feature__icon .kg-icon, .kg-feature__icon .kg-i{ width:28px; height:28px;}
.kg-feature__title{ display:block; margin-top:10px; color:var(--kg-text); font-size:var(--kg-fs-base); font-weight:bold;}
.kg-feature__text{ display:block; margin-top:4px; color:var(--kg-text-sub); font-size:13px;}

.kg-voice{ display:flex; gap:var(--kg-sp-2); padding:20px; border-radius:var(--kg-radius-lg); background-color:var(--kg-bg);}
.kg-voice__avatar{ display:flex; align-items:center; justify-content:center; flex:none; width:56px; height:56px; border-radius:50%; background-color:var(--kg-white); color:var(--kg-blue);}
.kg-voice__avatar .kg-icon, .kg-voice__avatar .kg-i{ width:32px; height:32px;}
.kg-voice__body{ position:relative; flex:1; padding:14px 18px; border-radius:var(--kg-radius); background-color:var(--kg-white); color:var(--kg-text); font-size:15px; line-height:1.8;}
.kg-voice__body::before{ content:""; position:absolute; top:20px; left:-8px; border-width:8px 8px 8px 0; border-style:solid; border-color:transparent var(--kg-white) transparent transparent;}
.kg-voice__name{ display:block; margin-top:6px; color:var(--kg-text-muted); font-size:var(--kg-fs-xs);}

.kg-office{ padding:20px; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white); line-height:1.7;}
.kg-office__name{ display:block; margin-bottom:8px; color:var(--kg-text); font-size:var(--kg-fs-md); font-weight:bold;}
.kg-office__row{ display:flex; gap:8px; margin:0 0 4px; color:var(--kg-text-sub); font-size:var(--kg-fs-sm);}
.kg-office__row .kg-icon, .kg-office__row .kg-i{ margin-top:4px; color:var(--kg-blue);}
.kg-office__row a{ color:var(--kg-blue); font-weight:bold;}
.kg-office .kg-btn-group{ justify-content:flex-start; margin:12px 0 0;}

@media only screen and (max-width: 1000px) {
	.kg-summary__list{ grid-template-columns:repeat(2, 1fr);}
	.kg-summary__item:nth-child(3){ border-left:none;}
	.kg-summary__item:nth-child(n+3){ border-top:1px solid var(--kg-border);}
}
@media only screen and (max-width: 640px) {
	.kg-summary__head, .kg-summary__item, .kg-summary__foot{ padding-left:var(--kg-sp-2); padding-right:var(--kg-sp-2);}
	.kg-summary__foot{ flex-direction:column;}
	.kg-summary__foot .kg-btn{ min-width:0;}
	.kg-news-list a{ grid-template-columns:auto 1fr; padding:12px 0;}
	.kg-news-list a > span:last-child{ grid-column:1 / -1;}
	.kg-price-card{ padding:var(--kg-sp-3) var(--kg-sp-2);}
	.kg-price-card__main{ font-size:26px;}
	.kg-tile-grid{ grid-template-columns:1fr; padding:12px;}
	.kg-venue__card{ min-width:0; flex-basis:100%;}
	.kg-voice{ flex-direction:column; padding:var(--kg-sp-2);}
	.kg-voice__body::before{ top:-8px; left:22px; border-width:0 8px 8px 8px; border-color:transparent transparent var(--kg-white) transparent;}
}

@media (hover: hover) {
	.kg-news-card:hover, .kg-news-list a:hover{ opacity:1; color:var(--kg-blue);}
	.kg-news-card:hover .kg-news-card__thumb img{ transform:scale(1.05);}
	.kg-course-card:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-text); transform:translateY(-2px);}
	.kg-course-card:hover .kg-course-card__title::after{ transform:translateX(4px) rotate(45deg);}
	.kg-office__row a:hover{ color:var(--kg-blue-dark);}
}


/* ************************************************
*	分岐ページ（page_hub.php）
*	各トップ（小型船舶・海技士など）から講習ページへ振り分ける
*	PC は 2 列。li.is-full は 2 列ぶん、li.is-half は 1 列ぶん。スマホはすべて 1 列
* ************************************************ */

.kg-hub{ padding:var(--kg-sp-3) 0 var(--kg-sp-2);}
.kg-hub__section{ margin:0 0 var(--kg-sp-4); scroll-margin-top:80px;}
.kg-hub__section .kg-heading-bar{ margin-top:0;}
.kg-hub__text{ margin:0 0 var(--kg-sp-2); color:var(--kg-text); font-size:var(--kg-fs-base); line-height:var(--kg-lh);}
.kg-hub__grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--kg-sp-2); margin:0; padding:0;}
.kg-hub__grid > li{ min-width:0; list-style:none;}
.kg-hub__grid > li.is-full{ grid-column:1 / -1;}
.kg-hub__content{ max-width:800px; margin:var(--kg-sp-5) auto 0; padding-top:var(--kg-sp-4); border-top:1px solid var(--kg-border);}

@media only screen and (max-width: 640px) {
	.kg-hub{ padding-top:var(--kg-sp-2);}
	.kg-hub__grid{ grid-template-columns:1fr; gap:12px;}
}


/* ************************************************
*	キャンペーンのバナー（include_campaign.php）
*	.kg-cp に data-kg-slider があればスライドショー（js/kg-slider.js）。.is-list は縦に並べる
*	バナーは 3:1（スマホ用の画像があるときだけスマホで 3:2）。画像がなければ .kg-cp-banner.is-text（文字バナー）
*	文字バナーは縦横比を最低限の高さとして扱い、文字が多いときは高さが伸びる（overflow:visible が必要）
* ************************************************ */

.kg-cp{ position:relative;}
.kg-cp__track{ display:flex; margin:0; padding:0; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:var(--kg-radius-lg);}
.kg-cp__track::-webkit-scrollbar{ display:none;}
.kg-cp__slide{ flex:0 0 100%; min-width:0; list-style:none; scroll-snap-align:start;}
.kg-cp.is-list .kg-cp__track{ flex-direction:column; gap:var(--kg-sp-2); overflow:visible; border-radius:0;}

.kg-cp-banner{ position:relative; display:block; overflow:hidden; aspect-ratio:3 / 1; border-radius:var(--kg-radius-lg); color:var(--kg-white); line-height:1.4;}
.kg-cp-banner img{ display:block; width:100%; height:100%; object-fit:cover;}
.kg-cp-banner.is-text{
	display:flex; overflow:visible; flex-direction:column; justify-content:center; gap:10px; padding:var(--kg-sp-3) clamp(24px, 6%, 64px);
	background:radial-gradient(circle at 85% 20%, rgba(255,255,255,0.14) 0, rgba(255,255,255,0) 40%), linear-gradient(120deg, var(--kg-blue-deep) 0%, var(--kg-blue) 100%);
}
.kg-cp-banner__label{ align-self:flex-start; padding:3px 10px; border-radius:4px; background-color:var(--kg-accent); font-size:var(--kg-fs-xs); font-weight:bold; letter-spacing:0.08em;}
.kg-cp-banner__title{ font-size:var(--kg-fs-lg); font-weight:bold; letter-spacing:var(--kg-ls);}
.kg-cp-banner__catch{ color:#ffd166; font-size:clamp(28px, 4.2vw, 52px); font-weight:bold; line-height:1.15; letter-spacing:0.02em;}
.kg-cp-banner__desc{ max-width:44em; color:rgba(255,255,255,0.88); font-size:var(--kg-fs-sm); line-height:1.6;}
.kg-cp-banner__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:4px;}
.kg-cp-banner__end{ font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-cp-banner__more{ display:inline-flex; align-items:center; gap:8px; margin-left:auto; padding:8px 18px; border-radius:20px; background-color:var(--kg-white); color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-cp-banner__more::after{ content:""; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}

/* スライドショーの操作（JS が作る） */
.kg-cp__nav{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:12px;}
.kg-cp__dots{ display:flex; align-items:center; gap:2px;}
.kg-cp__dot, .kg-cp__btn{ display:flex; align-items:center; justify-content:center; padding:0; border:none; background:none; color:var(--kg-blue); font:inherit; cursor:pointer;}
.kg-cp__dot{ width:28px; height:28px;}
.kg-cp__dot::before{ content:""; width:10px; height:10px; border:2px solid var(--kg-blue); border-radius:50%; transition:background-color 0.2s, width 0.2s;}
.kg-cp__dot[aria-current="true"]::before{ width:24px; border-radius:5px; background-color:var(--kg-blue);}
.kg-cp__btn{ width:36px; height:36px; border:1px solid var(--kg-border-strong); border-radius:50%; background-color:var(--kg-white);}
.kg-cp__btn .kg-i{ width:20px; height:20px;}
.kg-cp__btn.is-pause::before, .kg-cp__btn.is-pause::after{ content:""; width:3px; height:12px; margin:0 2px; background-color:currentColor;}
.kg-cp__btn.is-play::before{ content:""; margin-left:3px; border-style:solid; border-width:7px 0 7px 11px; border-color:transparent transparent transparent currentColor;}

@media (hover:hover) {
	.kg-cp-banner{ transition:box-shadow 0.2s;}
	.kg-cp-banner:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-white);}
	.kg-cp-banner.is-image:hover img{ opacity:0.92;}
	.kg-cp__btn:hover{ border-color:var(--kg-blue);}
}

@media only screen and (max-width: 640px) {
	.kg-cp-banner.is-text, .kg-cp-banner.has-sp{ aspect-ratio:3 / 2;}
	.kg-cp-banner.is-text{ gap:6px; padding:var(--kg-sp-2) 20px;}
	.kg-cp-banner__title{ font-size:var(--kg-fs-md);}
	.kg-cp-banner__catch{ font-size:30px;}
	.kg-cp-banner__desc{ font-size:var(--kg-fs-xs);}
	.kg-cp-banner__more{ padding:6px 14px; font-size:var(--kg-fs-xs);}
}

@media (prefers-reduced-motion: reduce) {
	.kg-cp__track{ scroll-behavior:auto;}
}


/* ************************************************
*	SNS（Facebook・Instagram・YouTube・LINE）
*	色は各サービスの指定色。--sns に入れて、丸ボタン・ラベル付き・カードで共通に使う
* ************************************************ */

.kg-sns .is-facebook, .kg-sns-card.is-facebook{ --sns:#1877f2;}
.kg-sns .is-instagram, .kg-sns-card.is-instagram{ --sns:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);}
.kg-sns .is-youtube, .kg-sns-card.is-youtube{ --sns:#ff0000;}
.kg-sns .is-line, .kg-sns-card.is-line{ --sns:var(--kg-line);}

.kg-sns{ display:flex; flex-wrap:wrap; gap:12px; margin:0 0 var(--kg-sp-3); padding:0;}
.kg-sns li{ list-style:none;}
.kg-sns a{
	display:flex; align-items:center; justify-content:center; gap:8px; width:48px; height:48px; border-radius:50%;
	background:var(--sns, var(--kg-blue)); color:var(--kg-white); font-size:var(--kg-fs-sm); font-weight:bold; line-height:1;
	transition:transform 0.2s, box-shadow 0.2s;
}
.kg-sns a .kg-i{ width:24px; height:24px;}
.kg-sns.is-label a{ width:auto; padding:0 20px 0 14px; border-radius:24px;}
.kg-sns.is-mono a{ background:var(--kg-blue-pale); color:var(--kg-blue);}
.kg-sns.is-center{ justify-content:center;}

.kg-sns-card{
	display:flex; align-items:center; gap:14px; height:100%; min-height:88px; padding:16px; border:1px solid var(--kg-border); border-radius:var(--kg-radius-lg);
	background-color:var(--kg-white); color:var(--kg-text); line-height:1.5; transition:box-shadow 0.2s, transform 0.2s;
}
.kg-sns-card__icon{ display:flex; align-items:center; justify-content:center; flex:none; width:52px; height:52px; border-radius:14px; background:var(--sns); color:var(--kg-white);}
.kg-sns-card__icon .kg-i{ width:28px; height:28px;}
.kg-sns-card__body{ flex:1; min-width:0;}
.kg-sns-card__name{ display:block; font-size:var(--kg-fs-base); font-weight:bold;}
.kg-sns-card__id{ display:block; overflow:hidden; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); text-overflow:ellipsis; white-space:nowrap;}
.kg-sns-card__text{ display:block; margin-top:2px; color:var(--kg-text-sub); font-size:13px;}
.kg-sns-card__btn{ flex:none; padding:6px 14px; border-radius:20px; background:var(--sns); color:var(--kg-white); font-size:var(--kg-fs-xs); font-weight:bold; white-space:nowrap;}

@media (hover: hover) {
	.kg-sns a:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-white); transform:translateY(-2px);}
	.kg-sns.is-mono a:hover{ background:var(--sns); color:var(--kg-white);}
	.kg-sns-card:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-text); transform:translateY(-2px);}
}


/* ************************************************
*	バナー
*	文字は画像に焼き込まず HTML で書く（読み上げ・検索で読める、スマホで縮まない、文言を管理画面で直せる）
*	画像は写真やロゴだけにする。文字入り画像だけのバナーは使わない
* ************************************************ */

/* 写真＋文字の大バナー。PC は写真の上に文字、スマホは写真の下に文字 */
.kg-promo{
	position:relative; z-index:0; display:grid; align-items:center; overflow:hidden; min-height:360px; margin:0 0 var(--kg-sp-3);
	border-radius:var(--kg-radius-lg); background-color:var(--kg-blue-deep); color:var(--kg-white); line-height:1.6;
}
.kg-promo__img{ position:absolute; z-index:-2; top:0; left:0; width:100%; height:100%; object-fit:cover; transition:transform 0.5s;}
.kg-promo::before{ content:""; position:absolute; z-index:-1; top:0; right:0; bottom:0; left:0; background:linear-gradient(90deg, rgba(11,47,79,0.92) 0%, rgba(11,47,79,0.7) 45%, rgba(11,47,79,0) 80%);}
.kg-promo.is-right::before{ background:linear-gradient(270deg, rgba(11,47,79,0.92) 0%, rgba(11,47,79,0.7) 45%, rgba(11,47,79,0) 80%);}
.kg-promo__body{ display:block; max-width:540px; padding:var(--kg-sp-4);}
.kg-promo.is-right .kg-promo__body{ justify-self:end;}
.kg-promo__label{ display:inline-flex; align-items:center; gap:6px; margin-bottom:12px; padding:3px 10px; border:1px solid rgba(255,255,255,0.7); border-radius:4px; font-size:var(--kg-fs-xs); font-weight:bold; letter-spacing:0.08em;}
.kg-promo__title{ display:block; font-size:var(--kg-fs-xl); font-weight:bold; line-height:1.4; letter-spacing:0.04em; text-wrap:balance;}
.kg-promo__text{ display:block; margin-top:12px; font-size:var(--kg-fs-base); opacity:0.92;}
.kg-promo__more{
	display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:var(--kg-sp-3); padding:0 22px; border-radius:22px;
	background-color:var(--kg-white); color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; transition:background-color 0.2s;
}
.kg-promo__more::after{ content:""; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}

/* アイコン付きの横長リンク。文字入り画像のボタン（申込・保険・コース名）の置き換え */
.kg-link-banner{
	display:flex; align-items:center; gap:16px; min-height:76px; margin:0 0 12px; padding:14px 20px; border:2px solid var(--kg-blue); border-radius:var(--kg-radius);
	background-color:var(--kg-blue); color:var(--kg-white); line-height:1.4; transition:transform 0.2s, box-shadow 0.2s;
}
.kg-link-banner__icon{ display:flex; align-items:center; justify-content:center; flex:none; width:48px; height:48px; border-radius:50%; background-color:rgba(255,255,255,0.18);}
.kg-link-banner__icon .kg-i{ width:26px; height:26px;}
.kg-link-banner__body{ flex:1; min-width:0;}
.kg-link-banner__title{ display:block; font-size:var(--kg-fs-md); font-weight:bold; letter-spacing:var(--kg-ls);}
.kg-link-banner__sub{ display:block; margin-top:2px; font-size:var(--kg-fs-sm); opacity:0.9;}
.kg-link-banner::after{ content:""; flex:none; width:10px; height:10px; margin-right:4px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}
.kg-link-banner.is-accent{ border-color:var(--kg-accent); background-color:var(--kg-accent);}
.kg-link-banner.is-light{ border-color:var(--kg-blue-pale); background-color:var(--kg-blue-pale); color:var(--kg-blue-deep);}
.kg-link-banner.is-light .kg-link-banner__icon{ background-color:var(--kg-white); color:var(--kg-blue);}
.kg-link-banner.is-outline{ background-color:var(--kg-white); color:var(--kg-blue);}
.kg-link-banner.is-outline .kg-link-banner__icon{ background-color:var(--kg-blue-pale);}
.kg-link-banner .kg-badge{ margin:0 0 0 6px;}
.kg-link-banner .kg-badge.is-outline{ border-color:currentColor; color:inherit;}
.kg-link-banner.is-compact{ min-height:56px; padding:8px 16px;}
.kg-link-banner.is-compact .kg-link-banner__icon{ width:36px; height:36px;}
.kg-link-banner.is-compact .kg-link-banner__icon .kg-i{ width:20px; height:20px;}
.kg-link-banner.is-compact .kg-link-banner__title{ font-size:var(--kg-fs-base);}

/* 告知バー：キャンペーン・重要なお知らせを 1 行で */
.kg-notice-bar{
	display:flex; align-items:center; gap:12px; min-height:56px; margin:0 0 var(--kg-sp-3); padding:10px 16px;
	border:1px solid #f1d08a; border-radius:var(--kg-radius); background-color:var(--kg-yellow-pale); color:var(--kg-text); line-height:1.5;
}
.kg-notice-bar > .kg-i{ width:24px; height:24px; color:var(--kg-accent);}
.kg-notice-bar__label{ flex:none; padding:2px 8px; border-radius:4px; background-color:var(--kg-accent); color:var(--kg-white); font-size:var(--kg-fs-xs); font-weight:bold;}
.kg-notice-bar__text{ flex:1; min-width:0; font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-notice-bar::after{ content:""; flex:none; width:8px; height:8px; border-top:2px solid var(--kg-accent); border-right:2px solid var(--kg-accent); transform:rotate(45deg);}
.kg-notice-bar.is-info{ border-color:#b9d3ec; background-color:var(--kg-blue-pale);}
.kg-notice-bar.is-info > .kg-i{ color:var(--kg-blue);}
.kg-notice-bar.is-info .kg-notice-bar__label{ background-color:var(--kg-blue);}
.kg-notice-bar.is-info::after{ border-color:var(--kg-blue);}

/* 関係団体・提携先：大きさの違うロゴ画像を同じ枠にそろえ、名前を文字で添える */
.kg-partner{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin:0 0 var(--kg-sp-3); padding:0;}
.kg-partner li{ list-style:none;}
.kg-partner a{
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; height:100%; min-height:128px; padding:16px;
	border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-text-sub); font-size:var(--kg-fs-xs); line-height:1.5; text-align:center; transition:border-color 0.2s, box-shadow 0.2s;
}
.kg-partner img{ width:auto; max-width:100%; height:56px; object-fit:contain;}

@media only screen and (max-width: 640px) {
	.kg-promo{ display:block; min-height:0;}
	.kg-promo__img{ position:static; display:block; height:auto; aspect-ratio:16 / 9;}
	.kg-promo::before{ display:none;}
	.kg-promo__body{ max-width:none; padding:var(--kg-sp-3) var(--kg-sp-2);}
	.kg-promo__more{ display:flex; justify-content:center;}
	.kg-link-banner{ gap:12px; padding:12px 14px;}
	.kg-link-banner__icon{ width:40px; height:40px;}
	.kg-link-banner__icon .kg-i{ width:22px; height:22px;}
	.kg-link-banner__title{ font-size:var(--kg-fs-base);}
	.kg-link-banner__sub{ font-size:var(--kg-fs-xs);}
	.kg-partner{ grid-template-columns:repeat(2, 1fr); gap:8px;}
	.kg-partner a{ min-height:108px; padding:12px 8px;}
	.kg-partner img{ height:40px;}
}

@media (hover: hover) {
	.kg-promo:hover{ opacity:1; color:var(--kg-white);}
	.kg-promo:hover .kg-promo__img{ transform:scale(1.04);}
	.kg-promo:hover .kg-promo__more{ background-color:var(--kg-blue-pale);}
	.kg-link-banner:hover{ opacity:1; box-shadow:var(--kg-shadow-hover); color:var(--kg-white); transform:translateY(-2px);}
	.kg-link-banner.is-light:hover{ color:var(--kg-blue-deep);}
	.kg-link-banner.is-outline:hover{ color:var(--kg-blue);}
	.kg-notice-bar:hover{ opacity:1; color:var(--kg-text); box-shadow:var(--kg-shadow);}
	.kg-partner a:hover{ opacity:1; border-color:var(--kg-blue); box-shadow:var(--kg-shadow); color:var(--kg-blue);}
}


/* ************************************************
*	表
*	style.css に td・tr 全体へ効く指定（余白・中央寄せ・17px・#666）があるため、クラス付きで上書きする
* ************************************************ */

.kg-table tr{ padding:0;}
.kg-table-scroll{ margin:0 0 var(--kg-sp-3); overflow-x:auto; -webkit-overflow-scrolling:touch;}
.kg-table-scroll > table{ min-width:600px; margin-bottom:0;}
.kg-table-scroll.is-hint::before{ content:"横にスクロールできます →"; display:none; margin-bottom:6px; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); text-align:right;}

.kg-table{ width:100%; margin:0 0 var(--kg-sp-3); border:1px solid var(--kg-border-strong); border-collapse:collapse; background-color:var(--kg-white);}
.kg-table th, .kg-table td{ padding:12px 14px; border:1px solid var(--kg-border-strong); color:var(--kg-text); font-size:15px; line-height:1.6; letter-spacing:0.02em; text-align:left; vertical-align:top;}
.kg-table th{ background-color:var(--kg-bg); font-weight:bold;}
.kg-table thead th{ border-color:var(--kg-blue); background-color:var(--kg-blue); color:var(--kg-white); text-align:center; vertical-align:middle;}
.kg-table.is-spec th{ width:25%;}
.kg-table.is-center td{ text-align:center; vertical-align:middle;}
.kg-table.is-striped tbody tr:nth-child(even) td{ background-color:var(--kg-bg);}
.kg-table tr.is-closed td{ background-color:var(--kg-bg); color:var(--kg-text-muted);}
.kg-table td.is-price{ color:var(--kg-red); font-weight:bold; white-space:nowrap;}

/* 日程表：スマホでは 1 行を 1 枚のカードにする（td に data-label を付ける） */
@media only screen and (max-width: 640px) {
	.kg-table-scroll.is-hint::before{ display:block;}
	.kg-table th, .kg-table td{ padding:10px; font-size:14px;}
	.kg-table.is-spec{ border:none;}
	.kg-table.is-spec th, .kg-table.is-spec td{ display:block; width:100%; border-top:none;}
	.kg-table.is-spec tr:first-child th{ border-top:1px solid var(--kg-border-strong);}

	.kg-table.is-cards{ border:none; background:none;}
	.kg-table.is-cards thead{ display:none;}
	.kg-table.is-cards tr{ display:block; margin-bottom:12px; border:1px solid var(--kg-border-strong); border-radius:var(--kg-radius); background-color:var(--kg-white); overflow:hidden;}
	.kg-table.is-cards td{ display:flex; justify-content:space-between; gap:12px; border:none; border-bottom:1px solid var(--kg-border); text-align:right;}
	.kg-table.is-cards td:last-child{ border-bottom:none;}
	.kg-table.is-cards td::before{ content:attr(data-label); flex:none; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:bold; text-align:left;}
	.kg-table.is-cards td:first-child{ display:block; background-color:var(--kg-blue-pale); font-weight:bold; text-align:left;}
	.kg-table.is-cards td:first-child::before{ display:none;}
}


/* ************************************************
*	お知らせ・注意
* ************************************************ */

.kg-alert{ display:flex; gap:12px; margin:0 0 var(--kg-sp-3); padding:var(--kg-sp-2) 20px; border:1px solid; border-left-width:5px; border-radius:var(--kg-radius); font-size:15px; line-height:1.7;}
.kg-alert:last-child{ margin-bottom:0;}
.kg-alert > .kg-icon, .kg-alert > .kg-i{ width:22px; height:22px; margin-top:2px;}
.kg-alert__title{ display:block; margin-bottom:2px; font-weight:bold;}
.kg-alert.is-info{ border-color:#b9d3ec; border-left-color:var(--kg-blue); background-color:var(--kg-blue-pale); color:#0b3a66;}
.kg-alert.is-success{ border-color:#b9dcc5; border-left-color:var(--kg-green); background-color:var(--kg-green-pale); color:#1d5234;}
.kg-alert.is-warning{ border-color:#f1d08a; border-left-color:#d99a00; background-color:var(--kg-yellow-pale); color:#6b4a00;}
.kg-alert.is-danger{ border-color:#f2b8b3; border-left-color:var(--kg-red); background-color:var(--kg-red-pale); color:#8c1d14;}
.kg-alert.is-info > .kg-icon, .kg-alert.is-info > .kg-i{ color:var(--kg-blue);}
.kg-alert.is-success > .kg-icon, .kg-alert.is-success > .kg-i{ color:var(--kg-green);}
.kg-alert.is-warning > .kg-icon, .kg-alert.is-warning > .kg-i{ color:#d99a00;}
.kg-alert.is-danger > .kg-icon, .kg-alert.is-danger > .kg-i{ color:var(--kg-red);}

.kg-accordion{ margin:0 0 8px; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white);}
.kg-accordion summary{
	position:relative; display:flex; align-items:center; gap:10px; min-height:56px; padding:12px 48px 12px 16px;
	color:var(--kg-text); font-weight:bold; line-height:1.6; list-style:none; cursor:pointer;
}
.kg-accordion summary::-webkit-details-marker{ display:none;}
.kg-accordion summary::after{
	content:""; position:absolute; top:50%; right:20px; width:8px; height:8px;
	border-right:2px solid var(--kg-blue); border-bottom:2px solid var(--kg-blue); transform:translateY(-70%) rotate(45deg); transition:transform 0.2s;
}
.kg-accordion[open] summary{ border-bottom:1px solid var(--kg-border); background-color:var(--kg-blue-pale);}
.kg-accordion[open] summary::after{ transform:translateY(-30%) rotate(-135deg);}
.kg-accordion__body{ padding:var(--kg-sp-2); color:var(--kg-text); font-size:15px; line-height:1.8;}
.kg-accordion.is-faq summary::before, .kg-accordion.is-faq .kg-accordion__body::before{
	display:inline-flex; align-items:center; justify-content:center; flex:none; width:28px; height:28px; border-radius:50%;
	font-family:Arial, sans-serif; font-size:14px; font-weight:bold;
}
.kg-accordion.is-faq summary::before{ content:"Q"; background-color:var(--kg-blue); color:var(--kg-white);}
.kg-accordion.is-faq .kg-accordion__body{ display:flex; gap:10px;}
.kg-accordion.is-faq .kg-accordion__body::before{ content:"A"; background-color:var(--kg-accent-pale); color:var(--kg-accent);}

.kg-empty{ padding:var(--kg-sp-4) var(--kg-sp-2); border:2px dashed var(--kg-border-strong); border-radius:var(--kg-radius-lg); color:var(--kg-text-sub); text-align:center; line-height:1.7;}
.kg-empty__title{ display:block; margin-bottom:4px; color:var(--kg-text); font-weight:bold;}
.kg-empty .kg-btn-group{ margin-bottom:0;}

@media (hover: hover) {
	.kg-accordion summary:hover{ background-color:var(--kg-blue-pale);}
}


/* ************************************************
*	手順・リスト
* ************************************************ */

.kg-flow{ display:flex; flex-direction:column; align-items:center; max-width:760px; margin:0 auto var(--kg-sp-3); padding:0; counter-reset:kg-flow;}
.kg-flow > li{ position:relative; list-style:none; width:100%; padding:20px 20px 20px 76px; border:1px solid var(--kg-border); border-radius:var(--kg-radius-lg); background-color:var(--kg-white); line-height:1.7;}
.kg-flow > li::before{
	counter-increment:kg-flow; content:counter(kg-flow, decimal-leading-zero); position:absolute; top:20px; left:20px;
	color:var(--kg-blue); font-family:Arial, sans-serif; font-size:30px; font-weight:bold; line-height:1; opacity:0.35;
}
.kg-flow > li + li{ margin-top:36px;}
.kg-flow > li + li::after{
	content:""; position:absolute; top:-26px; left:50%; width:12px; height:12px;
	border-right:3px solid var(--kg-accent); border-bottom:3px solid var(--kg-accent); transform:translateX(-50%) rotate(45deg);
}
.kg-flow__title .kg-i{ margin-right:6px;}
.kg-flow__title{ display:block; margin-bottom:4px; color:var(--kg-blue); font-size:var(--kg-fs-md); font-weight:bold;}

.kg-steps{ margin:0 0 var(--kg-sp-3) 15px; padding:0; counter-reset:kg-step;}
.kg-steps > li{ position:relative; list-style:none; padding:0 0 var(--kg-sp-3) 30px; border-left:2px dotted var(--kg-border-strong); line-height:1.7;}
.kg-steps > li:last-child{ padding-bottom:0; border-left-color:transparent;}
.kg-steps > li::before{
	counter-increment:kg-step; content:counter(kg-step); position:absolute; top:0; left:-16px;
	width:30px; height:30px; border-radius:50%; background-color:var(--kg-blue); color:var(--kg-white);
	font-size:14px; font-weight:bold; line-height:30px; text-align:center; letter-spacing:0;
}
.kg-steps__title{ display:block; margin-bottom:2px; color:var(--kg-text); font-size:var(--kg-fs-base); font-weight:bold; line-height:30px;}

.kg-check-list{ margin:0 0 var(--kg-sp-3); padding:0;}
.kg-check-list li{ list-style:none; position:relative; margin-bottom:8px; padding-left:30px; line-height:1.7;}
.kg-check-list li::before{ content:""; position:absolute; top:0.35em; left:2px; width:18px; height:18px; border-radius:50%; background-color:var(--kg-blue);}
.kg-check-list li::after{ content:""; position:absolute; top:calc(0.35em + 4px); left:8px; width:5px; height:9px; border-right:2px solid var(--kg-white); border-bottom:2px solid var(--kg-white); transform:rotate(45deg);}

.kg-guide-list{ margin:0 0 var(--kg-sp-2); padding:12px 16px 12px 32px; border-left:4px solid var(--kg-border-strong); border-radius:0 var(--kg-radius) var(--kg-radius) 0; background-color:var(--kg-bg); color:var(--kg-text-sub); font-size:var(--kg-fs-sm); line-height:1.7;}
.kg-guide-list li{ list-style:square; margin-bottom:4px;}
.kg-guide-list li:last-child{ margin-bottom:0;}

.kg-file-list{ margin:0 0 var(--kg-sp-3); padding:0; border-top:1px solid var(--kg-border);}
.kg-file-list li{ list-style:none; border-bottom:1px solid var(--kg-border);}
.kg-file-list a{ display:flex; align-items:center; gap:12px; min-height:60px; padding:10px 4px; color:var(--kg-text); font-weight:bold; line-height:1.5;}
.kg-file-list small{ margin-left:auto; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:normal; white-space:nowrap;}
.kg-file-list a > .kg-i{ color:var(--kg-blue);}

.kg-facts{ display:grid; grid-template-columns:auto 1fr; margin:0 0 var(--kg-sp-3); border-top:1px solid var(--kg-border);}
.kg-facts dt, .kg-facts dd{ margin:0; padding:12px 8px; border-bottom:1px solid var(--kg-border); line-height:1.7;}
.kg-facts dt{ padding-right:24px; color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; white-space:nowrap;}
.kg-facts dd{ color:var(--kg-text);}
.kg-facts dt .kg-i{ margin-right:6px;}

.kg-timeline{ margin:0 0 var(--kg-sp-3); padding:0;}
.kg-timeline li{ list-style:none; position:relative; display:grid; grid-template-columns:110px 1fr; gap:var(--kg-sp-2); padding-bottom:var(--kg-sp-2); line-height:1.7;}
.kg-timeline li::before{ content:""; position:absolute; top:8px; bottom:-8px; left:110px; width:2px; margin-left:calc(var(--kg-sp-2) / 2 - 1px); background-color:var(--kg-border);}
.kg-timeline li:last-child::before{ display:none;}
.kg-timeline li::after{ content:""; position:absolute; top:6px; left:110px; width:12px; height:12px; margin-left:calc(var(--kg-sp-2) / 2 - 6px); border:3px solid var(--kg-blue); border-radius:50%; background-color:var(--kg-white);}
.kg-timeline__year{ color:var(--kg-blue); font-weight:bold; text-align:right;}
.kg-timeline__body{ padding-left:var(--kg-sp-2); color:var(--kg-text);}

@media only screen and (max-width: 640px) {
	.kg-flow > li{ padding:16px 16px 16px 60px;}
	.kg-flow > li::before{ top:18px; left:14px; font-size:24px;}
	.kg-file-list a{ display:grid; grid-template-columns:auto 1fr auto; gap:2px 12px;}
	.kg-file-list a > .kg-file-icon{ grid-row:span 2;}
	.kg-file-list a > .kg-i{ grid-column:3; grid-row:1 / span 2;}
	.kg-file-list small{ grid-column:2; grid-row:2; margin-left:0; white-space:normal;}
	.kg-facts{ grid-template-columns:1fr;}
	.kg-facts dt{ padding-bottom:0; border-bottom:none;}
	.kg-facts dd{ padding-top:2px;}
	.kg-timeline li{ grid-template-columns:72px 1fr;}
	.kg-timeline li::before, .kg-timeline li::after{ left:72px;}
}

@media (hover: hover) {
	.kg-file-list a:hover{ opacity:1; background-color:var(--kg-bg); color:var(--kg-blue);}
}


/* ************************************************
*	メディア
* ************************************************ */

.kg-embed{ position:relative; overflow:hidden; aspect-ratio:16 / 9; margin:0 0 var(--kg-sp-3); border-radius:var(--kg-radius); background-color:var(--kg-blue-pale);}
.kg-embed iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0;}
.kg-embed.is-map{ aspect-ratio:4 / 3;}

.kg-figure{ margin:0 0 var(--kg-sp-3);}
.kg-figure img{ display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; border-radius:var(--kg-radius);}
.kg-figure figcaption{ margin-top:6px; color:var(--kg-text-muted); font-size:13px; line-height:1.6;}

.kg-gallery{ display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; margin:0 0 var(--kg-sp-3); padding:0;}
.kg-gallery li{ list-style:none;}
.kg-gallery a{ display:block; overflow:hidden; border-radius:var(--kg-radius); line-height:0;}
.kg-gallery img{ width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; transition:transform 0.3s;}

.kg-hero{ position:relative; overflow:hidden; line-height:0;}
.kg-hero img{ display:block; width:100%; height:auto; aspect-ratio:1600 / 490; object-fit:cover;}
.kg-hero::after{ content:""; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(90deg, rgba(0,30,60,0.6) 0%, rgba(0,30,60,0) 70%);}
.kg-hero__body{ position:absolute; z-index:1; top:50%; left:0; right:0; max-width:var(--kg-content); margin:0 auto; padding:0 24px; transform:translateY(-50%); color:var(--kg-white); line-height:1.4;}
.kg-hero__en{ display:block; font-family:Arial, sans-serif; font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0.2em; opacity:0.9;}
.kg-hero__title{ display:block; margin-top:4px; font-size:36px; font-weight:bold; letter-spacing:0.06em; text-shadow:0 2px 8px rgba(0,0,0,0.3);}

@media only screen and (max-width: 640px) {
	.kg-gallery{ grid-template-columns:repeat(2, 1fr);}
	.kg-hero img{ aspect-ratio:16 / 9;}
	.kg-hero::after{ background:linear-gradient(180deg, rgba(0,30,60,0) 30%, rgba(0,30,60,0.7) 100%);}
	.kg-hero__body{ top:auto; bottom:16px; padding:0 16px; transform:none;}
	.kg-hero__title{ font-size:24px;}
}

@media (hover: hover) {
	.kg-gallery a:hover img{ transform:scale(1.06);}}


/* ************************************************
*	フォーム（Contact Form 7 の出力にも効くようにしてある）
* ************************************************ */

.kg-form{ max-width:760px; margin:0 auto;}
.kg-form__row{ display:flex; gap:var(--kg-sp-2); padding:var(--kg-sp-2) 0; border-bottom:1px solid var(--kg-border);}
.kg-form__label{ flex:0 0 200px; padding-top:10px; color:var(--kg-text); font-weight:bold; line-height:1.5;}
.kg-form__req, .kg-form__opt{ display:inline-block; margin-left:6px; padding:0 6px; border-radius:3px; font-size:11px; line-height:1.7; vertical-align:0.1em;}
.kg-form__req{ background-color:var(--kg-red); color:var(--kg-white);}
.kg-form__opt{ background-color:var(--kg-border); color:var(--kg-text-sub);}
.kg-form__field{ flex:1; min-width:0;}
.kg-form__help{ display:block; margin-top:6px; color:var(--kg-text-muted); font-size:13px; line-height:1.6;}

/* iPhone で入力時に拡大されないよう 16px 以上 */
.kg-form input[type="text"], .kg-form input[type="email"], .kg-form input[type="tel"], .kg-form input[type="date"], .kg-form textarea, .kg-form select{
	width:100%; min-height:var(--kg-tap); padding:10px 12px; border:1px solid var(--kg-border-strong); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-text); font-family:inherit; font-size:16px; line-height:1.5;
}
.kg-form textarea{ min-height:140px; resize:vertical;}
.kg-form input:focus, .kg-form textarea:focus, .kg-form select:focus{ outline:3px solid rgba(0,94,173,0.25); outline-offset:0; border-color:var(--kg-blue);}
.kg-form .is-invalid, .kg-form .wpcf7-not-valid{ border-color:var(--kg-red) !important; background-color:var(--kg-red-pale) !important;}
.kg-form__error, .kg-form .wpcf7-not-valid-tip{ display:block; margin-top:6px; color:var(--kg-red); font-size:13px; font-weight:bold; line-height:1.5;}

.kg-form__choices{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0;}
.kg-form__choices label, .kg-form .wpcf7-list-item label{
	display:flex; align-items:center; gap:8px; min-height:var(--kg-tap); padding:8px 14px; border:1px solid var(--kg-border-strong); border-radius:var(--kg-radius);
	background-color:var(--kg-white); line-height:1.4; cursor:pointer;
}
.kg-form .wpcf7-list-item{ display:inline-block; width:auto; margin:0 8px 8px 0; padding:0;}
.kg-form input[type="checkbox"], .kg-form input[type="radio"]{ flex:none; width:20px; height:20px; margin:0; accent-color:var(--kg-blue);}
.kg-form__choices label:has(input:checked), .kg-form .wpcf7-list-item label:has(input:checked){ border-color:var(--kg-blue); background-color:var(--kg-blue-pale);}

.kg-form__consent{ margin:var(--kg-sp-3) 0 0; padding:var(--kg-sp-2); border-radius:var(--kg-radius); background-color:var(--kg-bg); text-align:center;}
.kg-form__consent label{ display:inline-flex; align-items:center; gap:8px; min-height:var(--kg-tap); font-weight:bold; cursor:pointer;}
.kg-form__consent a{ color:var(--kg-blue); text-decoration:underline;}

.kg-form__submit{ padding:var(--kg-sp-3) 0 0; text-align:center;}
.kg-form input[type="submit"]{
	min-height:var(--kg-tap); padding:10px 28px; border:2px solid var(--kg-blue); border-radius:var(--kg-radius); background-color:var(--kg-blue);
	color:var(--kg-white); font-family:inherit; font-size:var(--kg-fs-base); font-weight:bold; letter-spacing:var(--kg-ls); cursor:pointer; -webkit-appearance:none; appearance:none;
}
.kg-form input[type="submit"]:disabled{ border-color:var(--kg-border-strong); background-color:var(--kg-border); color:var(--kg-text-muted); cursor:not-allowed;}
.kg-form__submit .kg-btn, .kg-form input[type="submit"]{ min-width:280px;}
.kg-form .kg-btn.is-loading{ position:relative; color:transparent; pointer-events:none;}
.kg-form .kg-btn.is-loading::after{ content:""; position:absolute; top:50%; left:50%; width:20px; height:20px; margin:-10px 0 0 -10px; border:3px solid rgba(255,255,255,0.4); border-top-color:var(--kg-white); border-radius:50%; animation:kg-spin 0.8s linear infinite;}
@keyframes kg-spin{ to{ transform:rotate(360deg);}}

.kg-form .wpcf7-response-output{ margin:var(--kg-sp-2) 0 0 !important; padding:12px 16px !important; border:1px solid !important; border-radius:var(--kg-radius); font-size:15px; line-height:1.6;}
.kg-form .wpcf7 form.sent .wpcf7-response-output{ border-color:#b9dcc5 !important; background-color:var(--kg-green-pale); color:#1d5234;}
.kg-form .wpcf7 form.invalid .wpcf7-response-output, .kg-form .wpcf7 form.failed .wpcf7-response-output{ border-color:#f2b8b3 !important; background-color:var(--kg-red-pale); color:#8c1d14;}

@media only screen and (max-width: 640px) {
	.kg-form__row{ flex-direction:column; gap:8px;}
	.kg-form__label{ flex:none; padding-top:0;}
	.kg-form__choices{ flex-direction:column;}
	.kg-form__submit .kg-btn, .kg-form input[type="submit"]{ width:100%; min-width:0;}
}

@media (hover: hover) {
	.kg-form__choices label:hover, .kg-form .wpcf7-list-item label:hover{ border-color:var(--kg-blue);}
	.kg-form input[type="submit"]:hover{ border-color:var(--kg-blue-dark); background-color:var(--kg-blue-dark);}
}


/* ************************************************
*	横にスワイプする列（関連記事・コースなど）・横スクロール共通
*	指では横にスワイプ、マウスでは左右のボタン。自動では動かさない
*	js/kg-ui.js が横にはみ出す要素に .kg-scrollx と .is-scroll-l / .is-scroll-r を付け、続きがある側の端を薄くする
* ************************************************ */

/* 中の .kg-sr-only（absolute）がスクロール枠の外を基準にするとページ全体が横に広がるため、枠を基準にする */
.kg-compare, .kg-table-scroll, .kg-scroller__track, .kg-filter__list, .kg-local-nav__list, .kg-tabs__list, .kg-page-nav ul{ position:relative;}
.kg-scrollx.is-scrollable{
	-webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--kg-fade-l, 0px), #000 calc(100% - var(--kg-fade-r, 0px)), transparent);
	mask-image:linear-gradient(90deg, transparent, #000 var(--kg-fade-l, 0px), #000 calc(100% - var(--kg-fade-r, 0px)), transparent);
}
.kg-scrollx.is-scroll-l{ --kg-fade-l:32px;}
.kg-scrollx.is-scroll-r{ --kg-fade-r:32px;}

.kg-scroller{ position:relative; margin:0 0 var(--kg-sp-3);}
.kg-scroller__track{
	display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--kg-sp-2)) / 3); gap:var(--kg-sp-2); margin:0; padding:4px 2px 12px;
	overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.kg-scroller__track::-webkit-scrollbar{ display:none;}
.kg-scroller.is-4 .kg-scroller__track{ grid-auto-columns:calc((100% - 3 * var(--kg-sp-2)) / 4);}
.kg-scroller__track > li{ min-width:0; list-style:none; scroll-snap-align:start;}
.kg-scroller__btn{
	position:absolute; top:calc(50% - 30px); z-index:2; display:none; align-items:center; justify-content:center; width:44px; height:44px; margin:0; padding:0;
	border:1px solid var(--kg-border-strong); border-radius:50%; background-color:var(--kg-white); box-shadow:var(--kg-shadow-hover); color:var(--kg-blue); cursor:pointer;
	transition:opacity 0.2s, visibility 0.2s;
}
.kg-scroller__btn .kg-i{ width:24px; height:24px;}
.kg-scroller__btn.is-prev{ left:-12px;}
.kg-scroller__btn.is-next{ right:-12px;}
.kg-scroller__btn:disabled{ visibility:hidden; opacity:0;}

@media (hover: hover) and (pointer: fine) {
	.kg-scroller.is-ready .kg-scroller__btn{ display:flex;}
}
@media only screen and (max-width: 1000px) {
	.kg-scroller__track, .kg-scroller.is-4 .kg-scroller__track{ grid-auto-columns:42%; scroll-padding-left:32px;}
}
@media only screen and (max-width: 640px) {
	.kg-scroller__track, .kg-scroller.is-4 .kg-scroller__track{ grid-auto-columns:78%; gap:12px;}
}


/* ************************************************
*	検索
*	入力欄は 16px 以上（iPhone で拡大されない）。WordPress では name="s"、action は home_url('/')
* ************************************************ */

.kg-search{ display:flex; max-width:640px; margin:0 0 var(--kg-sp-3);}
.kg-search input[type="search"]{
	flex:1; min-width:0; min-height:var(--kg-tap); margin:0; padding:10px 14px; border:2px solid var(--kg-blue); border-right:none; border-radius:var(--kg-radius) 0 0 var(--kg-radius);
	background-color:var(--kg-white); color:var(--kg-text); font-family:inherit; font-size:16px; line-height:1.5; -webkit-appearance:none; appearance:none;
}
.kg-search input[type="search"]:focus{ outline:3px solid rgba(0,94,173,0.25); outline-offset:0;}
.kg-search button{
	display:flex; align-items:center; justify-content:center; gap:6px; flex:none; min-width:var(--kg-tap); min-height:var(--kg-tap); margin:0; padding:0 20px;
	border:2px solid var(--kg-blue); border-radius:0 var(--kg-radius) var(--kg-radius) 0; background-color:var(--kg-blue);
	color:var(--kg-white); font-family:inherit; font-size:var(--kg-fs-base); font-weight:bold; line-height:1; cursor:pointer;
}
.kg-search button .kg-i{ width:22px; height:22px;}
.kg-search.is-large{ margin-right:auto; margin-left:auto;}
.kg-search.is-large input[type="search"], .kg-search.is-large button{ min-height:56px;}
.kg-search.is-large input[type="search"]{ font-size:var(--kg-fs-md);}

.kg-result-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:0 0 var(--kg-sp-2); padding-bottom:12px; border-bottom:2px solid var(--kg-blue); line-height:1.5;}
.kg-result-head__title{ margin:0; color:var(--kg-text); font-size:var(--kg-fs-md); font-weight:bold;}
.kg-result-head__count{ color:var(--kg-text-muted); font-size:var(--kg-fs-sm);}
.kg-result-head__count strong{ color:var(--kg-blue); font-size:var(--kg-fs-md);}
.kg-result-list{ margin:0 0 var(--kg-sp-3); padding:0;}
.kg-result-list li{ list-style:none; border-bottom:1px solid var(--kg-border);}
.kg-result-list a{ display:block; padding:16px 4px; color:var(--kg-text); line-height:1.7;}
.kg-result-list__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; color:var(--kg-text-muted); font-size:var(--kg-fs-xs);}
.kg-result-list__meta .kg-badge{ margin:0;}
.kg-result-list__title{ display:block; margin-top:4px; color:var(--kg-blue); font-size:var(--kg-fs-md); font-weight:bold; line-height:1.5;}
.kg-result-list__text{ display:-webkit-box; overflow:hidden; margin-top:4px; color:var(--kg-text-sub); font-size:var(--kg-fs-sm); -webkit-line-clamp:2; -webkit-box-orient:vertical;}
.kg-hl{ padding:0 2px; border-radius:2px; background-color:#ffe58a; color:inherit; font-weight:bold;}

@media only screen and (max-width: 640px) {
	.kg-search button{ padding:0 14px;}
	.kg-result-list a{ padding:14px 0;}
	.kg-result-list__title{ font-size:var(--kg-fs-base);}
}

@media (hover: hover) {
	.kg-search button:hover{ border-color:var(--kg-blue-dark); background-color:var(--kg-blue-dark);}
	.kg-result-list a:hover{ opacity:1; background-color:var(--kg-bg); color:var(--kg-text);}
	.kg-result-list a:hover .kg-result-list__title{ text-decoration:underline;}
}


/* ************************************************
*	切り替え：タブ・絞り込み
*	タブは js/kg-ui.js が役割（tablist など）と開閉を付ける。JS が動かないときは全部のパネルを順に表示する
*	スマホ・タブレットではパネルを左右にスワイプしても切り替わる
* ************************************************ */

.kg-tabs{ margin:0 0 var(--kg-sp-3);}
.kg-tabs__list{ display:flex; gap:4px; margin:0; padding:0; border-bottom:2px solid var(--kg-blue); overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;}
.kg-tabs__list::-webkit-scrollbar{ display:none;}
.kg-tabs:not(.is-ready) .kg-tabs__list{ display:none;}
.kg-tabs__tab{
	display:flex; align-items:center; justify-content:center; gap:6px; flex:1 0 auto; min-height:var(--kg-tap); margin:0; padding:8px 20px;
	border:1px solid var(--kg-border); border-bottom:none; border-radius:var(--kg-radius) var(--kg-radius) 0 0; background-color:var(--kg-bg);
	color:var(--kg-text-sub); font-family:inherit; font-size:var(--kg-fs-base); font-weight:bold; line-height:1.4; letter-spacing:0.02em; white-space:nowrap; cursor:pointer;
	transition:background-color 0.2s, color 0.2s;
}
.kg-tabs__tab .kg-i{ width:20px; height:20px;}
.kg-tabs__tab small{ font-size:var(--kg-fs-xs); font-weight:normal; opacity:0.85;}
.kg-tabs__tab[aria-selected="true"]{ border-color:var(--kg-blue); background-color:var(--kg-blue); color:var(--kg-white);}
.kg-tabs__panel{ padding-top:var(--kg-sp-3);}
.kg-tabs__panel > :first-child{ margin-top:0;}
.kg-tabs__panel > :last-child{ margin-bottom:0;}
.kg-tabs.is-boxed .kg-tabs__panel{ padding:var(--kg-sp-3); border:1px solid var(--kg-border); border-top:none; border-radius:0 0 var(--kg-radius) var(--kg-radius); background-color:var(--kg-white);}
.kg-tabs__panel.is-from-r{ animation:kg-in-r 0.25s ease;}
.kg-tabs__panel.is-from-l{ animation:kg-in-l 0.25s ease;}
@keyframes kg-in-r{ from{ opacity:0; transform:translateX(24px);}}
@keyframes kg-in-l{ from{ opacity:0; transform:translateX(-24px);}}

/* 小さな切り替え（学院／大学校など）は丸いスイッチ型 */
.kg-tabs.is-pill .kg-tabs__list{ display:inline-flex; max-width:100%; padding:4px; border:none; border-radius:28px; background-color:var(--kg-blue-pale);}
.kg-tabs.is-pill:not(.is-ready) .kg-tabs__list{ display:none;}
.kg-tabs.is-pill .kg-tabs__tab{ min-height:44px; padding:6px 20px; border:none; border-radius:22px; background:none; color:var(--kg-blue); font-size:var(--kg-fs-sm);}
.kg-tabs.is-pill .kg-tabs__tab[aria-selected="true"]{ background-color:var(--kg-blue); box-shadow:var(--kg-shadow); color:var(--kg-white);}
.kg-tabs.is-pill .kg-tabs__panel{ padding-top:var(--kg-sp-2);}

/* 絞り込み：button なら JS でその場で絞る、a ならカテゴリのページへ移動する */
.kg-filter{ margin:0 0 var(--kg-sp-2);}
.kg-filter__list{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0;}
.kg-filter__list li{ flex:none; list-style:none;}
.kg-filter__btn{
	display:inline-flex; align-items:center; gap:6px; min-height:40px; margin:0; padding:0 16px; border:1px solid var(--kg-border-strong); border-radius:20px;
	background-color:var(--kg-white); color:var(--kg-text-sub); font-family:inherit; font-size:var(--kg-fs-sm); font-weight:bold; line-height:1.3; white-space:nowrap; cursor:pointer;
	transition:background-color 0.2s, border-color 0.2s, color 0.2s;
}
.kg-filter__btn small{ color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:normal;}
.kg-filter__btn[aria-pressed="true"], .kg-filter__btn[aria-current="page"]{ border-color:var(--kg-blue); background-color:var(--kg-blue); color:var(--kg-white);}
.kg-filter__btn[aria-pressed="true"] small, .kg-filter__btn[aria-current="page"] small{ color:inherit; opacity:0.85;}
.kg-filter__status{ margin:8px 0 0; color:var(--kg-text-muted); font-size:var(--kg-fs-xs);}

@media only screen and (max-width: 1000px) {
	.kg-tabs__tab{ padding:8px 16px;}
	.kg-filter__list{ flex-wrap:nowrap; padding:2px 0 4px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;}
	.kg-filter__list::-webkit-scrollbar{ display:none;}
}
@media only screen and (max-width: 640px) {
	.kg-tabs__tab{ font-size:var(--kg-fs-sm);}
	.kg-tabs.is-boxed .kg-tabs__panel{ padding:var(--kg-sp-2);}
	.kg-tabs.is-pill .kg-tabs__list{ display:flex;}
	.kg-tabs.is-pill .kg-tabs__tab{ padding:6px 12px;}
}

@media (hover: hover) {
	.kg-tabs__tab:hover{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-tabs__tab[aria-selected="true"]:hover{ background-color:var(--kg-blue); color:var(--kg-white);}
	.kg-tabs.is-pill .kg-tabs__tab:hover{ background-color:rgba(255,255,255,0.7);}
	.kg-tabs.is-pill .kg-tabs__tab[aria-selected="true"]:hover{ background-color:var(--kg-blue);}
	.kg-filter__btn:hover{ opacity:1; border-color:var(--kg-blue); color:var(--kg-blue);}
	.kg-filter__btn[aria-pressed="true"]:hover, .kg-filter__btn[aria-current="page"]:hover{ color:var(--kg-white);}
}


/* ************************************************
*	比較表（コースを横に並べる）
*	左の項目名は横スクロールしても残る。おすすめの列は <col class="is-pick"> と見出しの .is-pick
*	スマホは 1 列ずつ止まりながら横にスワイプする
* ************************************************ */

.kg-compare{ margin:0 0 var(--kg-sp-3); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-left:160px; -webkit-overflow-scrolling:touch;}
.kg-compare.is-scroll-l{ --kg-fade-l:0px;}
.kg-compare table{ width:100%; min-width:720px; border:1px solid var(--kg-border-strong); border-collapse:separate; border-spacing:0; border-radius:var(--kg-radius); background-color:var(--kg-white);}
.kg-compare th, .kg-compare td{ padding:12px 14px; border-right:1px solid var(--kg-border); border-bottom:1px solid var(--kg-border); color:var(--kg-text); font-size:15px; line-height:1.6; letter-spacing:0.02em; text-align:center; vertical-align:middle;}
.kg-compare tr > :last-child{ border-right:none;}
.kg-compare tbody tr:last-child > *{ border-bottom:none;}
.kg-compare thead th{ padding:14px; border-bottom:2px solid var(--kg-blue); background-color:var(--kg-white); color:var(--kg-blue-deep); font-size:var(--kg-fs-md); font-weight:bold; line-height:1.4; scroll-snap-align:start;}
.kg-compare thead th small{ display:block; margin-top:2px; color:var(--kg-text-muted); font-size:var(--kg-fs-xs); font-weight:normal;}
.kg-compare tbody th{ position:sticky; left:0; z-index:1; width:160px; background-color:var(--kg-bg); color:var(--kg-text-sub); font-size:var(--kg-fs-sm); font-weight:bold; text-align:left;}
.kg-compare thead th:first-child{ position:sticky; left:0; z-index:1; background-color:var(--kg-white);}
.kg-compare col.is-pick{ background-color:var(--kg-accent-pale);}
.kg-compare thead th.is-pick{ border-bottom-color:var(--kg-accent); background-color:var(--kg-accent-pale); color:var(--kg-accent);}
.kg-compare thead th.is-pick::before{ content:"おすすめ"; display:table; margin:0 auto 6px; padding:2px 10px; border-radius:10px; background-color:var(--kg-accent); color:var(--kg-white); font-size:11px; line-height:1.6;}
.kg-compare td.is-price{ color:var(--kg-red); font-size:var(--kg-fs-md); font-weight:bold; white-space:nowrap;}
.kg-compare td .kg-i{ width:24px; height:24px;}
.kg-compare td .kg-btn{ min-width:0; width:100%;}

@media only screen and (max-width: 640px) {
	.kg-compare{ scroll-padding-left:112px;}
	.kg-compare table{ width:max-content; min-width:100%;}
	.kg-compare thead th + th, .kg-compare td{ width:220px;}
	.kg-compare tbody th, .kg-compare thead th:first-child{ width:112px; padding:10px; font-size:var(--kg-fs-xs);}
	.kg-compare td{ padding:10px; font-size:14px; scroll-snap-align:start;}
}


/* ************************************************
*	記事（お知らせの詳細）
*	.kg-article__body は管理画面の本文（the_content）をそのまま入れても整うようにしてある
* ************************************************ */

.kg-article{ max-width:800px; margin:0 auto;}
.kg-article__head{ margin:0 0 var(--kg-sp-3); padding-bottom:var(--kg-sp-2); border-bottom:1px solid var(--kg-border);}
.kg-article__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:0 0 10px; color:var(--kg-text-muted); font-size:var(--kg-fs-sm); line-height:1.5;}
.kg-article__meta time{ display:inline-flex; align-items:center; gap:4px; color:var(--kg-blue); font-weight:bold;}
.kg-article__meta .kg-badge{ margin:0;}
.kg-article__title{ margin:0; color:var(--kg-text); font-size:var(--kg-fs-xl); font-weight:bold; line-height:1.45; letter-spacing:var(--kg-ls);}
.kg-article__eyecatch{ margin:0 0 var(--kg-sp-3);}
.kg-article__eyecatch img{ display:block; width:100%; height:auto; border-radius:var(--kg-radius-lg);}

.kg-article__body{ color:var(--kg-text); font-size:var(--kg-fs-base); line-height:1.9; letter-spacing:var(--kg-ls); overflow-wrap:anywhere;}
.kg-article__body > * + *{ margin-top:1.2em;}
.kg-article__body h2{ margin-top:2.2em; padding:2px 0 2px 14px; border-left:6px solid var(--kg-blue); font-size:var(--kg-fs-lg); font-weight:bold; line-height:1.45;}
.kg-article__body h3{ margin-top:1.8em; padding-bottom:6px; border-bottom:2px solid var(--kg-border); font-size:var(--kg-fs-md); font-weight:bold; line-height:1.5;}
.kg-article__body h4{ margin-top:1.6em; color:var(--kg-blue); font-size:var(--kg-fs-base); font-weight:bold;}
.kg-article__body a:not([class]){ color:var(--kg-blue); text-decoration:underline;}
.kg-article__body ul:not([class]), .kg-article__body ol:not([class]){ padding-left:1.5em;}
.kg-article__body ul:not([class]) > li{ list-style:disc;}
.kg-article__body ol:not([class]) > li{ list-style:decimal;}
.kg-article__body :is(ul, ol):not([class]) > li + li{ margin-top:0.3em;}
.kg-article__body strong{ font-weight:bold;}
.kg-article__body img{ max-width:100%; height:auto; border-radius:var(--kg-radius);}
.kg-article__body figure{ margin-right:0; margin-left:0;}
.kg-article__body figcaption{ margin-top:6px; color:var(--kg-text-muted); font-size:13px; line-height:1.6;}
.kg-article__body blockquote{ padding:16px 20px; border-left:4px solid var(--kg-border-strong); background-color:var(--kg-bg); color:var(--kg-text-sub);}
.kg-article__body table:not([class]){ width:100%; border-collapse:collapse;}
.kg-article__body table:not([class]) :is(th, td){ padding:10px 12px; border:1px solid var(--kg-border-strong); color:var(--kg-text); font-size:15px; line-height:1.6; text-align:left; vertical-align:top;}
.kg-article__body table:not([class]) th{ background-color:var(--kg-bg); font-weight:bold;}
.kg-article__body .aligncenter{ display:block; margin-right:auto; margin-left:auto;}
.kg-article__body .alignleft{ float:left; margin:0.4em 1.5em 1em 0;}
.kg-article__body .alignright{ float:right; margin:0.4em 0 1em 1.5em;}
.kg-article__body::after{ content:""; display:block; clear:both;}

.kg-article__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:var(--kg-sp-4); padding-top:var(--kg-sp-2); border-top:1px solid var(--kg-border);}

/* 共有：スマホの共有シートが使える端末では「共有」ボタンも出す（js/kg-ui.js） */
.kg-share{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; padding:0;}
.kg-share li{ list-style:none;}
.kg-share__label{ margin-right:4px; color:var(--kg-text-muted); font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-share a, .kg-share button{
	display:inline-flex; align-items:center; gap:6px; min-height:40px; margin:0; padding:0 14px; border:1px solid var(--kg-border-strong); border-radius:20px;
	background-color:var(--kg-white); color:var(--kg-text); font-family:inherit; font-size:var(--kg-fs-sm); font-weight:bold; line-height:1; cursor:pointer;
	transition:border-color 0.2s, background-color 0.2s;
}
.kg-share [hidden]{ display:none;}
.kg-share .kg-i{ width:18px; height:18px; color:var(--kg-blue);}
.kg-share .is-line .kg-i{ color:var(--kg-line);}
.kg-share .is-facebook .kg-i{ color:#1877f2;}
.kg-share .is-copied{ border-color:var(--kg-green); background-color:var(--kg-green-pale); color:var(--kg-green);}

.kg-post-nav{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:var(--kg-sp-4) 0 0; padding:0;}
.kg-post-nav li{ min-width:0; list-style:none;}
.kg-post-nav .is-next{ grid-column:2;}
.kg-post-nav a{ display:flex; flex-direction:column; gap:4px; height:100%; min-height:88px; padding:14px 18px; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background-color:var(--kg-white); color:var(--kg-text); line-height:1.5; transition:border-color 0.2s, box-shadow 0.2s;}
.kg-post-nav .is-next a{ align-items:flex-end; text-align:right;}
.kg-post-nav__label{ display:flex; align-items:center; gap:2px; color:var(--kg-blue); font-size:var(--kg-fs-xs); font-weight:bold;}
.kg-post-nav__label .kg-i{ width:18px; height:18px;}
.kg-post-nav__title{ display:-webkit-box; overflow:hidden; font-size:var(--kg-fs-sm); font-weight:bold; -webkit-line-clamp:2; -webkit-box-orient:vertical;}

@media only screen and (max-width: 640px) {
	.kg-article__title{ font-size:var(--kg-fs-lg);}
	.kg-article__body h2{ font-size:var(--kg-fs-md);}
	.kg-article__body .alignleft, .kg-article__body .alignright{ float:none; display:block; margin:0 auto 1em;}
	.kg-article__foot{ flex-direction:column; align-items:stretch;}
	.kg-share{ justify-content:center;}
	.kg-share__label{ flex-basis:100%; margin:0; text-align:center;}
	.kg-post-nav a{ min-height:80px; padding:12px;}
}

@media (hover: hover) {
	.kg-share a:hover, .kg-share button:hover{ opacity:1; border-color:var(--kg-blue); background-color:var(--kg-blue-pale); color:var(--kg-text);}
	.kg-post-nav a:hover{ opacity:1; border-color:var(--kg-blue); box-shadow:var(--kg-shadow); color:var(--kg-blue);}
}


/* ************************************************
*	本文＋脇メニュー（セクション内のページ一覧）
*	PC：左に脇メニュー（スクロールしても付いてくる）。スマホ・タブレット：本文の上に横にスワイプできるボタン列
*	HTML は脇メニューを先に書く（スマホで本文より上に出すため）
* ************************************************ */

.kg-layout{ display:grid; grid-template-columns:260px minmax(0, 1fr); gap:var(--kg-sp-4); align-items:start; margin:0 0 var(--kg-sp-4);}
.kg-layout.is-right{ grid-template-columns:minmax(0, 1fr) 260px;}
.kg-layout.is-right > .kg-layout__side{ order:2;}
.kg-layout__side{ position:sticky; top:calc(var(--kg-sticky-top) + 16px);}
.kg-layout__main{ min-width:0;}
.kg-layout__main > :first-child{ margin-top:0;}

.kg-local-nav{ overflow:hidden; border:1px solid var(--kg-border); border-radius:var(--kg-radius-lg); background-color:var(--kg-white);}
.kg-local-nav__title{ display:flex; align-items:center; gap:8px; margin:0; padding:14px 16px; background-color:var(--kg-blue); color:var(--kg-white); font-size:var(--kg-fs-base); font-weight:bold; line-height:1.4;}
.kg-local-nav__title a{ color:var(--kg-white);}
.kg-local-nav__title .kg-i{ width:22px; height:22px;}
.kg-local-nav__list{ margin:0; padding:0;}
.kg-local-nav__list li{ list-style:none; border-top:1px solid var(--kg-border);}
.kg-local-nav__list > li:first-child{ border-top:none;}
.kg-local-nav__list a{ display:flex; align-items:center; gap:10px; min-height:48px; padding:10px 16px; color:var(--kg-text); font-size:15px; line-height:1.4; transition:background-color 0.2s, color 0.2s;}
.kg-local-nav__list a::before{ content:""; flex:none; width:6px; height:6px; border-top:2px solid var(--kg-blue); border-right:2px solid var(--kg-blue); transform:rotate(45deg);}
.kg-local-nav__list a[aria-current="page"]{ background-color:var(--kg-blue-pale); box-shadow:inset 4px 0 0 var(--kg-blue); color:var(--kg-blue); font-weight:bold;}
.kg-local-nav__list ul{ margin:0; padding:0; background-color:var(--kg-bg);}
.kg-local-nav__list ul a{ padding-left:32px; font-size:var(--kg-fs-sm);}

@media only screen and (max-width: 1000px) {
	.kg-layout, .kg-layout.is-right{ display:block;}
	.kg-layout__side{ position:static; margin:0 0 var(--kg-sp-3);}
	.kg-local-nav{ overflow:visible; border:none; border-radius:0; background:none;}
	.kg-local-nav__title{ padding:0 0 8px; background:none; color:var(--kg-text-sub); font-size:var(--kg-fs-xs);}
	.kg-local-nav__title a{ color:var(--kg-blue);}
	.kg-local-nav__title .kg-i{ width:18px; height:18px; color:var(--kg-blue);}
	.kg-local-nav__list{ display:flex; gap:8px; padding:2px 0 6px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-inline:32px; scrollbar-width:none;}
	.kg-local-nav__list::-webkit-scrollbar{ display:none;}
	.kg-local-nav__list li{ flex:none; border:none; scroll-snap-align:start;}
	.kg-local-nav__list ul{ display:none;}
	.kg-local-nav__list a{ min-height:44px; padding:0 16px; border:1px solid var(--kg-border-strong); border-radius:22px; background-color:var(--kg-white); font-size:var(--kg-fs-sm); white-space:nowrap;}
	.kg-local-nav__list a::before{ display:none;}
	.kg-local-nav__list a[aria-current="page"]{ border-color:var(--kg-blue); background-color:var(--kg-blue); box-shadow:none; color:var(--kg-white);}
}

@media (hover: hover) {
	.kg-local-nav__title a:hover{ opacity:1; color:var(--kg-white); text-decoration:underline;}
	.kg-local-nav__list a:hover{ opacity:1; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
}


/* ************************************************
*	トップページ用：メインビジュアル・目的から探す・セクション見出し
* ************************************************ */

.kg-mv{ position:relative; z-index:0; display:flex; align-items:center; min-height:min(70vh, 560px); overflow:hidden; background-color:var(--kg-blue-deep); color:var(--kg-white); line-height:1.6;}
.kg-mv__img{ position:absolute; z-index:-2; top:0; left:0; width:100%; height:100%; object-fit:cover;}
.kg-mv::before{ content:""; position:absolute; z-index:-1; top:0; right:0; bottom:0; left:0; background:linear-gradient(90deg, rgba(11,47,79,0.88) 0%, rgba(11,47,79,0.6) 45%, rgba(11,47,79,0) 85%);}
.kg-mv__body{ width:100%; max-width:var(--kg-wrap); margin:0 auto; padding:var(--kg-sp-5) 24px;}
.kg-mv__en{ display:block; font-family:Arial, sans-serif; font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0.24em; opacity:0.9;}
.kg-mv__title{ max-width:640px; margin:8px 0 0; font-size:40px; font-weight:bold; line-height:1.4; letter-spacing:0.06em; text-wrap:balance;}
.kg-mv__text{ max-width:560px; margin:16px 0 0; font-size:var(--kg-fs-md); opacity:0.92;}
.kg-mv .kg-btn-group{ justify-content:flex-start; margin-bottom:0;}
.kg-mv .kg-btn.is-outline{ border-color:var(--kg-white); background:none; color:var(--kg-white);}

.kg-purpose{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin:0 0 var(--kg-sp-3); padding:0;}
.kg-purpose li{ min-width:0; list-style:none;}
.kg-purpose a{
	position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:8px; height:100%; min-height:132px; padding:18px 40px 16px 18px;
	border:1px solid var(--kg-border); border-radius:var(--kg-radius-lg); background-color:var(--kg-white); box-shadow:var(--kg-shadow);
	color:var(--kg-text); line-height:1.5; transition:transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.kg-purpose a::after{ content:""; position:absolute; right:18px; bottom:22px; width:8px; height:8px; border-top:2px solid var(--kg-blue); border-right:2px solid var(--kg-blue); transform:rotate(45deg);}
.kg-purpose__icon{ display:flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; border-radius:50%; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
.kg-purpose__icon .kg-i{ width:24px; height:24px;}
.kg-purpose__title{ display:block; font-size:var(--kg-fs-base); font-weight:bold;}
.kg-purpose__sub{ display:block; color:var(--kg-text-muted); font-size:var(--kg-fs-xs);}
.kg-purpose .is-accent .kg-purpose__icon{ background-color:var(--kg-accent-pale); color:var(--kg-accent);}
.kg-purpose .is-line .kg-purpose__icon{ background-color:var(--kg-line); color:var(--kg-white);}

.kg-sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:var(--kg-sp-5) 0 var(--kg-sp-2);}
.kg-sec-head:first-child{ margin-top:0;}
.kg-sec-head__title{ margin:0; color:var(--kg-blue-deep); font-size:var(--kg-fs-xl); font-weight:bold; line-height:1.3; letter-spacing:0.04em;}
.kg-sec-head__title small{ display:block; margin-bottom:2px; color:var(--kg-blue); font-family:Arial, sans-serif; font-size:var(--kg-fs-xs); letter-spacing:0.2em;}
.kg-sec-head .kg-more{ flex:none; margin-bottom:4px;}

@media only screen and (max-width: 1000px) {
	.kg-purpose{ grid-template-columns:repeat(3, 1fr);}
}
@media only screen and (max-width: 640px) {
	.kg-mv{ display:block; min-height:0;}
	.kg-mv__img{ position:static; display:block; height:auto; aspect-ratio:4 / 3;}
	.kg-mv::before{ display:none;}
	.kg-mv__body{ padding:var(--kg-sp-3) var(--kg-sp-2) var(--kg-sp-4);}
	.kg-mv__title{ font-size:26px;}
	.kg-mv__text{ font-size:var(--kg-fs-base);}
	.kg-purpose{ grid-template-columns:repeat(2, 1fr); gap:8px;}
	.kg-purpose a{ min-height:120px; padding:14px 28px 14px 14px;}
	.kg-purpose a::after{ right:12px; bottom:18px;}
	.kg-purpose__title{ font-size:15px;}
}

@media (hover: hover) {
	.kg-mv .kg-btn.is-outline:hover{ background-color:rgba(255,255,255,0.12); color:var(--kg-white);}
	.kg-purpose a:hover{ opacity:1; border-color:var(--kg-blue); box-shadow:var(--kg-shadow-hover); color:var(--kg-text); transform:translateY(-2px);}
}


/* ************************************************
*	404（ページが見つからない）
* ************************************************ */

.kg-notfound{ max-width:720px; margin:0 auto; padding:var(--kg-sp-4) 0; text-align:center;}
.kg-notfound__code{ display:block; color:#cfe0f0; font-family:Arial, sans-serif; font-size:120px; font-weight:bold; line-height:1; letter-spacing:0.04em;}
.kg-notfound__title{ margin:8px 0 12px; color:var(--kg-text); font-size:var(--kg-fs-xl); font-weight:bold; line-height:1.4;}
.kg-notfound__text{ margin:0 0 var(--kg-sp-3); color:var(--kg-text-sub); line-height:1.8;}
.kg-notfound__links{ margin-top:var(--kg-sp-4); text-align:left;}

@media only screen and (max-width: 640px) {
	.kg-notfound{ padding:var(--kg-sp-3) 0;}
	.kg-notfound__code{ font-size:80px;}
	.kg-notfound__text{ text-align:left;}
}


/* ************************************************
*	画像の拡大表示（js/kg-ui.js が作る）
*	対象：.kg-gallery の画像リンク、data-kg-zoom を付けた画像リンク
*	スマホ：左右にスワイプで前後、下にスワイプで閉じる、ダブルタップ・2 本指で拡大
* ************************************************ */

.kg-gallery a, a[data-kg-zoom]{ cursor:zoom-in;}
html.kg-is-modal{ overflow:hidden;}
.kg-lightbox{
	position:fixed; top:0; right:0; bottom:0; left:0; z-index:300; display:flex; flex-direction:column;
	background-color:rgba(5,20,35,0.94); color:var(--kg-white); line-height:1.5; letter-spacing:0.02em;
	visibility:hidden; opacity:0; transition:opacity 0.25s, visibility 0s 0.25s;
}
.kg-lightbox.is-open{ visibility:visible; opacity:1; transition-delay:0s;}
.kg-lightbox__bar{ display:flex; align-items:center; justify-content:space-between; flex:none; min-height:60px; padding:env(safe-area-inset-top) 4px 0 16px;}
.kg-lightbox__count{ font-family:Arial, sans-serif; font-size:var(--kg-fs-sm); font-weight:bold; letter-spacing:0.1em;}
.kg-lightbox button{
	display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin:0; padding:0; border:none; border-radius:50%;
	background-color:rgba(255,255,255,0.12); color:var(--kg-white); cursor:pointer; transition:background-color 0.2s;
}
.kg-lightbox button .kg-i{ width:28px; height:28px;}
.kg-lightbox button:disabled{ visibility:hidden;}
.kg-lightbox__stage{ position:relative; flex:1; min-height:0; overflow:hidden; touch-action:none;}
.kg-lightbox__img{
	position:absolute; top:0; right:0; bottom:0; left:0; max-width:calc(100% - 32px); max-height:calc(100% - 16px); margin:auto;
	border-radius:4px; -webkit-user-select:none; user-select:none; -webkit-user-drag:none; transform-origin:center; cursor:zoom-in;
}
.kg-lightbox.is-zoomed .kg-lightbox__img{ cursor:grab;}
.kg-lightbox__img.is-from-r{ animation:kg-in-r 0.25s ease;}
.kg-lightbox__img.is-from-l{ animation:kg-in-l 0.25s ease;}
.kg-lightbox__prev, .kg-lightbox__next{ position:absolute; top:50%; z-index:1; margin-top:-26px;}
.kg-lightbox .kg-lightbox__prev{ left:12px;}
.kg-lightbox .kg-lightbox__next{ right:12px;}
.kg-lightbox__caption{ flex:none; min-height:56px; margin:0; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); font-size:var(--kg-fs-sm); text-align:center;}
.kg-lightbox__hint{ display:none; margin-top:4px; font-size:11px; opacity:0.7;}

@media (pointer: coarse) {
	.kg-lightbox__hint{ display:block;}
	.kg-lightbox .kg-lightbox__prev, .kg-lightbox .kg-lightbox__next{ width:44px; height:44px; margin-top:-22px; background-color:rgba(0,0,0,0.35);}
	.kg-lightbox.is-zoomed .kg-lightbox__prev, .kg-lightbox.is-zoomed .kg-lightbox__next{ visibility:hidden;}
}
@media (hover: hover) {
	.kg-lightbox button:hover{ background-color:rgba(255,255,255,0.25);}
}


/* ************************************************
*	ヘッダー・フッター（サイト共通）
*	PC（1001px 以上）：上の帯／ロゴと連絡先／グローバルメニュー（乗せる・フォーカスで下に開く）
*	スマホ（1000px 以下）：上に固定する 60px のバー（ロゴ・電話・メニュー）／右から出るメニュー／画面下の問い合わせバー
*	開閉・スクロール時の出し入れは js/kg-header.js
*	重なり順：メニュー 200＞ヘッダー 100＞下部バー 90＞ページ上部へ 80
*	.kg-drawer は .kg-header の外（直後）に置く。スマホのヘッダーは隠すときに transform を使うため、中に入れると位置がずれる
* ************************************************ */

.kg-header{ position:relative; z-index:100; background-color:var(--kg-white); color:var(--kg-text); line-height:1.5; letter-spacing:var(--kg-ls);}
.kg-header__inner{ display:flex; align-items:center; max-width:var(--kg-wrap); margin:0 auto; padding:0 24px;}

.kg-header__top{ background-color:var(--kg-blue-deep); color:var(--kg-white); font-size:var(--kg-fs-xs);}
.kg-header__top .kg-header__inner{ gap:12px; min-height:40px;}
.kg-header__lead{ margin:0; font-weight:bold; letter-spacing:0.06em;}
.kg-header__util{ display:flex; align-items:center; margin:0 0 0 auto; padding:0;}
.kg-header__util li{ list-style:none;}
.kg-header__util a{ display:flex; align-items:center; gap:4px; min-height:40px; padding:0 10px; color:var(--kg-white);}
.kg-header__util .kg-i{ width:14px; height:14px; opacity:0.75;}
.kg-header__top .kg-sns{ gap:6px; margin:0 0 0 6px;}
.kg-header__top .kg-sns a{ width:28px; height:28px;}
.kg-header__top .kg-sns a .kg-i{ width:16px; height:16px;}
.kg-header__search{ display:flex; margin:0;}
.kg-header__search input[type="search"]{
	width:180px; height:30px; margin:0; padding:0 12px; border:none; border-radius:15px 0 0 15px; background-color:rgba(255,255,255,0.14);
	color:var(--kg-white); font-family:inherit; font-size:var(--kg-fs-xs); -webkit-appearance:none; appearance:none; transition:background-color 0.2s, width 0.2s;
}
.kg-header__search input[type="search"]::placeholder{ color:rgba(255,255,255,0.75);}
.kg-header__search input[type="search"]:focus{ width:240px; outline:2px solid var(--kg-white); outline-offset:0; background-color:rgba(255,255,255,0.22);}
.kg-header__search button{
	display:flex; align-items:center; justify-content:center; width:34px; height:30px; margin:0; padding:0; border:none; border-radius:0 15px 15px 0;
	background-color:rgba(255,255,255,0.14); color:var(--kg-white); cursor:pointer;
}
.kg-header__search button .kg-i{ width:16px; height:16px;}

.kg-header__main .kg-header__inner{ gap:10px; min-height:96px;}
.kg-header__logo{ flex:none; display:block; margin-right:auto; line-height:0;}
.kg-header__logo img{ width:200px; height:auto;}
.kg-header__tel{ display:flex; align-items:center; gap:8px; margin-right:12px; color:var(--kg-blue); line-height:1.25;}
.kg-header__tel > .kg-i{ width:30px; height:30px;}
.kg-header__tel-num{ display:block; font-family:Arial, sans-serif; font-size:28px; font-weight:bold; letter-spacing:0.02em;}
.kg-header__tel-hours{ display:block; color:var(--kg-text-muted); font-size:11px; letter-spacing:0.02em;}
.kg-header__btn{
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; flex:none; width:100px; height:64px;
	border:1px solid var(--kg-blue); border-radius:var(--kg-radius); background-color:var(--kg-white);
	color:var(--kg-blue); font-size:var(--kg-fs-xs); font-weight:bold; line-height:1.2; letter-spacing:0.02em; transition:background-color 0.2s, color 0.2s;
}
.kg-header__btn .kg-i{ width:24px; height:24px;}
.kg-header__btn.is-primary{ background-color:var(--kg-blue); color:var(--kg-white);}
.kg-header__btn.is-line{ border-color:var(--kg-line); background-color:var(--kg-line); color:var(--kg-white);}

/* スマホだけ出す丸い操作ボタン（電話・メニュー） */
.kg-header__icon-btn{
	display:none; flex-direction:column; align-items:center; justify-content:center; gap:3px; flex:none; width:52px; height:52px; margin:0; padding:0;
	border:none; border-radius:var(--kg-radius); background:none; color:var(--kg-blue);
	font-family:inherit; font-size:10px; font-weight:bold; line-height:1; letter-spacing:0; cursor:pointer;
}
.kg-header__icon-btn .kg-i{ width:26px; height:26px;}
.kg-header__icon-btn.is-menu{ background-color:var(--kg-blue); color:var(--kg-white);}

/* PC のグローバルメニュー。子があるものは .has-sub と .kg-gnav__panel */
.kg-gnav{ position:relative; border-top:1px solid var(--kg-border); border-bottom:1px solid var(--kg-border); background-color:var(--kg-white);}
.kg-gnav__list{ display:flex; max-width:var(--kg-wrap); margin:0 auto; padding:0 24px;}
.kg-gnav__item{ flex:1 1 0; list-style:none;}
.kg-gnav__link{
	position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; height:76px; padding:0 12px;
	color:var(--kg-text); font-size:15px; font-weight:bold; line-height:1.3; letter-spacing:0.02em; text-align:center; white-space:nowrap; transition:background-color 0.2s, color 0.2s;
}
.kg-gnav__link > .kg-i{ width:24px; height:24px; color:var(--kg-blue);}
.kg-gnav__link small{ display:flex; align-items:center; gap:4px; color:var(--kg-text-muted); font-family:Arial, sans-serif; font-size:10px; letter-spacing:0.12em;}
.kg-gnav__item.has-sub > .kg-gnav__link small::after{ content:""; width:5px; height:5px; margin-top:-3px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg);}
.kg-gnav__item + .kg-gnav__item > .kg-gnav__link::before{ content:""; position:absolute; top:22px; bottom:22px; left:0; width:1px; background-color:var(--kg-border);}
.kg-gnav__item.is-current > .kg-gnav__link{ color:var(--kg-blue); box-shadow:inset 0 -4px 0 var(--kg-blue);}
.kg-gnav__item.is-open > .kg-gnav__link, .kg-gnav__item:focus-within > .kg-gnav__link{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}

.kg-gnav__panel{
	position:absolute; top:100%; left:0; right:0; z-index:10; visibility:hidden; opacity:0; transform:translateY(-6px);
	border-top:3px solid var(--kg-blue); background-color:var(--kg-white); box-shadow:0 16px 32px rgba(0,30,60,0.16);
	transition:opacity 0.2s, transform 0.2s, visibility 0.2s;
}
.kg-gnav__item.is-open > .kg-gnav__panel, .kg-gnav__item:focus-within > .kg-gnav__panel{ visibility:visible; opacity:1; transform:none;}
.kg-gnav__item.is-closed > .kg-gnav__panel{ visibility:hidden; opacity:0;}
.kg-gnav__panel-inner{ display:grid; grid-template-columns:280px 1fr; gap:32px; max-width:var(--kg-wrap); margin:0 auto; padding:28px 24px 32px;}
.kg-gnav__panel-head{ padding-right:32px; border-right:1px solid var(--kg-border);}
.kg-gnav__panel-title{ display:flex; align-items:center; gap:10px; margin:0 0 8px; color:var(--kg-blue-deep); font-size:var(--kg-fs-lg); font-weight:bold; line-height:1.3;}
.kg-gnav__panel-title .kg-i{ width:30px; height:30px; color:var(--kg-blue);}
.kg-gnav__panel-text{ margin:0 0 16px; color:var(--kg-text-sub); font-size:var(--kg-fs-sm); line-height:1.7;}
.kg-gnav__panel-top{
	display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:0 20px; border-radius:22px;
	background-color:var(--kg-blue); color:var(--kg-white); font-size:var(--kg-fs-sm); font-weight:bold; transition:background-color 0.2s;
}
.kg-gnav__panel-top::after{ content:""; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg);}
.kg-gnav__sub{ display:grid; grid-template-columns:repeat(3, 1fr); align-content:start; gap:0 20px; margin:0; padding:0;}
.kg-gnav__sub li{ list-style:none;}
.kg-gnav__sub a{
	display:flex; align-items:center; gap:10px; min-height:56px; padding:8px 10px; border-bottom:1px solid var(--kg-border);
	color:var(--kg-text); font-size:15px; font-weight:bold; line-height:1.4; transition:background-color 0.2s, color 0.2s;
}
.kg-gnav__sub a::before{ content:""; flex:none; width:6px; height:6px; border-top:2px solid var(--kg-blue); border-right:2px solid var(--kg-blue); transform:rotate(45deg);}
.kg-gnav__sub a[aria-current="page"]{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}

/* スマホのメニュー（右から出る）。開いている間は html に .kg-is-locked が付き、後ろはスクロールしない */
.kg-drawer{ display:none;}
.kg-drawer__head{ display:flex; align-items:center; justify-content:space-between; flex:none; height:60px; padding:0 4px 0 16px; border-bottom:1px solid var(--kg-border);}
.kg-drawer__title{ margin:0; color:var(--kg-blue-deep); font-size:var(--kg-fs-base); font-weight:bold;}
.kg-drawer__close{
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; width:52px; height:52px; margin:0; padding:0;
	border:none; background:none; color:var(--kg-text); font-family:inherit; font-size:10px; font-weight:bold; line-height:1; cursor:pointer;
}
.kg-drawer__close .kg-i{ width:26px; height:26px;}
.kg-drawer__body{ flex:1; overflow-y:auto; overscroll-behavior:contain; padding:16px 16px calc(32px + env(safe-area-inset-bottom)); -webkit-overflow-scrolling:touch;}
.kg-drawer .kg-search{ margin:0 0 16px;}
.kg-drawer .kg-search button{ padding:0 14px;}
.kg-drawer__quick{ display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; margin:0 0 20px; padding:0;}
.kg-drawer__quick li{ list-style:none;}
.kg-drawer__quick li.is-wide{ grid-column:1 / -1;}
.kg-drawer__quick a{
	display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:6px 10px; border-radius:var(--kg-radius);
	background-color:var(--kg-blue-pale); color:var(--kg-blue); font-size:var(--kg-fs-sm); font-weight:bold; line-height:1.3; text-align:center;
}
.kg-drawer__quick .kg-i{ width:22px; height:22px;}
.kg-drawer__quick a.is-tel{ flex-wrap:wrap; gap:0 8px; min-height:60px; background-color:var(--kg-blue); color:var(--kg-white); font-family:Arial, sans-serif; font-size:22px;}
.kg-drawer__quick a.is-tel small{ flex-basis:100%; font-family:inherit; font-size:11px; font-weight:normal; opacity:0.9;}
.kg-drawer__quick a.is-line{ background-color:var(--kg-line); color:var(--kg-white);}
.kg-drawer__nav{ margin:0 -16px 20px; padding:0; border-top:1px solid var(--kg-border);}
.kg-drawer__nav > li{ list-style:none; border-bottom:1px solid var(--kg-border);}
.kg-drawer__nav > li > a, .kg-drawer__nav summary{
	display:flex; align-items:center; gap:12px; min-height:56px; padding:8px 16px;
	color:var(--kg-text); font-size:var(--kg-fs-base); font-weight:bold; line-height:1.4; list-style:none; cursor:pointer;
}
.kg-drawer__nav summary::-webkit-details-marker{ display:none;}
.kg-drawer__nav > li > a > .kg-i, .kg-drawer__nav summary > .kg-i{ width:24px; height:24px; color:var(--kg-blue);}
.kg-drawer__nav small{ margin-left:auto; color:var(--kg-text-muted); font-family:Arial, sans-serif; font-size:10px; font-weight:bold; letter-spacing:0.1em;}
.kg-drawer__nav summary::after{ content:""; flex:none; width:8px; height:8px; margin:-4px 6px 0 4px; border-right:2px solid var(--kg-blue); border-bottom:2px solid var(--kg-blue); transform:rotate(45deg); transition:transform 0.2s;}
.kg-drawer__nav > li > a::after{ content:""; flex:none; width:8px; height:8px; margin:0 8px 0 auto; border-top:2px solid var(--kg-blue); border-right:2px solid var(--kg-blue); transform:rotate(45deg);}
.kg-drawer__nav details[open] > summary{ background-color:var(--kg-blue-pale); color:var(--kg-blue);}
.kg-drawer__nav details[open] > summary::after{ margin-top:4px; transform:rotate(-135deg);}
.kg-drawer__nav ul{ margin:0; padding:4px 0 8px; background-color:var(--kg-bg);}
.kg-drawer__nav ul li{ list-style:none;}
.kg-drawer__nav ul a{ display:flex; align-items:center; min-height:48px; padding:6px 16px 6px 52px; color:var(--kg-text); font-size:15px; line-height:1.4;}
.kg-drawer__nav ul a.is-top{ color:var(--kg-blue); font-weight:bold;}
.kg-drawer__nav a[aria-current="page"]{ box-shadow:inset 4px 0 0 var(--kg-blue); color:var(--kg-blue); font-weight:bold;}
.kg-drawer__links{ display:grid; grid-template-columns:repeat(2, 1fr); gap:0 12px; margin:0 0 20px; padding:0;}
.kg-drawer__links li{ list-style:none;}
.kg-drawer__links a{ display:flex; align-items:center; gap:6px; min-height:44px; color:var(--kg-text-sub); font-size:13px; line-height:1.4;}
.kg-drawer__links .kg-i{ width:18px; height:18px; color:var(--kg-blue);}
.kg-drawer .kg-sns{ justify-content:center; margin:0;}

/* フッター */
.kg-footer{ margin-top:var(--kg-sp-5); border-top:1px solid var(--kg-border); background-color:var(--kg-bg); color:var(--kg-text); line-height:1.6; letter-spacing:var(--kg-ls);}
.kg-footer__inner{ max-width:var(--kg-wrap); margin:0 auto; padding:0 24px;}
.kg-footer__partners{ padding:var(--kg-sp-4) 0 var(--kg-sp-3); border-bottom:1px solid var(--kg-border);}
.kg-footer__label{ display:flex; align-items:center; gap:8px; margin:0 0 12px; color:var(--kg-text-sub); font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-footer__label .kg-i{ color:var(--kg-blue);}
.kg-footer__partners .kg-partner{ grid-template-columns:repeat(3, 1fr); margin:0;}
.kg-footer__partners .kg-partner a{ min-height:104px;}
.kg-footer__main{ display:grid; grid-template-columns:340px 1fr; gap:56px; padding:var(--kg-sp-4) 0;}
.kg-footer__logo{ display:inline-block; line-height:0;}
.kg-footer__logo img{ width:200px; height:auto;}
.kg-footer__name{ margin:12px 0 10px; font-size:var(--kg-fs-sm); font-weight:bold;}
.kg-footer__info{ margin:0 0 16px; padding:0; font-size:var(--kg-fs-sm); line-height:1.6;}
.kg-footer__info li{ display:flex; gap:8px; padding:4px 0; list-style:none;}
.kg-footer__info .kg-i{ width:18px; height:18px; margin-top:2px; color:var(--kg-blue);}
.kg-footer__info a{ color:var(--kg-text);}
.kg-footer__info a[href^="tel:"]{ color:var(--kg-blue); font-family:Arial, sans-serif; font-size:20px; font-weight:bold; line-height:1.2;}
.kg-footer__info small{ display:block; color:var(--kg-text-muted); font-size:var(--kg-fs-xs);}
.kg-footer__org .kg-sns{ margin:0;}
.kg-footer__seal{ margin-top:16px;}
.kg-footer__nav{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px;}
.kg-footer__nav-title{ display:flex; align-items:center; gap:8px; margin:0 0 8px; padding-bottom:8px; border-bottom:2px solid var(--kg-blue); font-size:15px; font-weight:bold; line-height:1.4;}
.kg-footer__nav-title .kg-i{ width:20px; height:20px; color:var(--kg-blue);}
.kg-footer__nav ul{ margin:0; padding:0;}
.kg-footer__nav li{ list-style:none;}
.kg-footer__nav li a{ display:flex; align-items:baseline; gap:8px; padding:5px 0; color:var(--kg-text-sub); font-size:var(--kg-fs-sm); line-height:1.5;}
.kg-footer__nav li a::before{ content:""; flex:none; width:5px; height:5px; border-top:1.5px solid var(--kg-blue); border-right:1.5px solid var(--kg-blue); transform:translateY(-2px) rotate(45deg);}
.kg-footer__bottom{ background-color:var(--kg-blue-deep); color:rgba(255,255,255,0.85); font-size:var(--kg-fs-xs);}
.kg-footer__bottom .kg-footer__inner{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 24px; min-height:56px; padding-top:10px; padding-bottom:10px;}
.kg-footer__legal{ display:flex; flex-wrap:wrap; gap:0 20px; margin:0; padding:0;}
.kg-footer__legal li{ list-style:none;}
.kg-footer__legal a{ display:flex; align-items:center; min-height:36px; color:var(--kg-white);}
.kg-footer__copy{ margin:0 0 0 auto; font-family:Arial, sans-serif; letter-spacing:0.06em;}

/* スマホ下部の問い合わせバー（.sp-cta の kg- 版） */
.kg-tabbar{ display:none;}

/* 画面右下に固定する場合（スクロールすると出る） */
.kg-pagetop.is-fixed{ position:fixed; right:20px; bottom:24px; z-index:80; visibility:hidden; opacity:0; transform:translateY(12px); transition:opacity 0.3s, transform 0.3s, visibility 0.3s;}
.kg-pagetop.is-fixed.is-shown{ visibility:visible; opacity:1; transform:none;}

@media only screen and (max-width: 1000px) {
	html:has(.kg-header){ scroll-padding-top:72px;}
	html.kg-is-locked{ overflow:hidden;}

	.kg-header{ position:sticky; top:0; box-shadow:0 1px 4px rgba(0,0,0,0.12); transition:transform 0.3s ease;}
	.kg-header.is-hidden{ transform:translateY(calc(-100% - 8px));}
	.kg-header__top, .kg-header__tel, .kg-header__btn, .kg-gnav{ display:none;}
	.kg-header__main .kg-header__inner{ gap:4px; min-height:60px; padding:0 4px 0 12px;}
	.kg-header__logo{ display:flex; align-items:center; min-height:48px;}
	.kg-header__logo img{ width:auto; height:42px;}
	.kg-header__icon-btn{ display:flex;}

	.kg-drawer{ position:fixed; top:0; right:0; bottom:0; left:0; z-index:200; display:block; overflow:hidden; visibility:hidden; transition:visibility 0s 0.3s;}
	.kg-drawer.is-open{ visibility:visible; transition-delay:0s;}
	.kg-drawer__backdrop{ position:absolute; top:0; right:0; bottom:0; left:0; background-color:rgba(11,47,79,0.55); opacity:0; transition:opacity 0.3s;}
	.kg-drawer.is-open .kg-drawer__backdrop{ opacity:1;}
	.kg-drawer__panel{
		position:absolute; top:0; right:0; bottom:0; display:flex; flex-direction:column; width:min(88vw, 400px);
		background-color:var(--kg-white); box-shadow:-4px 0 16px rgba(0,0,0,0.15); transform:translateX(100%); transition:transform 0.3s ease; touch-action:pan-y;
	}
	.kg-drawer.is-open .kg-drawer__panel{ transform:none;}
	.kg-drawer.is-dragging .kg-drawer__panel, .kg-drawer.is-dragging .kg-drawer__backdrop{ transition:none;}

	.kg-footer__partners .kg-partner{ grid-template-columns:repeat(2, 1fr);}
	.kg-footer__main{ grid-template-columns:1fr; gap:var(--kg-sp-4);}
	.kg-footer__nav{ grid-template-columns:repeat(2, 1fr); gap:24px 16px;}
	.kg-footer__bottom{ padding-bottom:calc(64px + env(safe-area-inset-bottom));}

	.kg-tabbar{
		position:fixed; left:0; right:0; bottom:0; z-index:90; display:flex; padding-bottom:env(safe-area-inset-bottom);
		background-color:var(--kg-blue); box-shadow:0 -2px 8px rgba(0,0,0,0.15);
	}
	.kg-tabbar a{
		flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; height:64px;
		border-left:1px solid rgba(255,255,255,0.22); color:var(--kg-white); font-size:11px; font-weight:bold; line-height:1.2; letter-spacing:0;
	}
	.kg-tabbar a:first-child{ border-left:none;}
	.kg-tabbar .kg-i{ width:24px; height:24px;}
	.kg-tabbar a.is-line{ background-color:var(--kg-line);}

	.kg-pagetop.is-fixed{ right:12px; bottom:calc(76px + env(safe-area-inset-bottom)); width:48px; height:48px;}
}
@media screen and (min-width: 601px) and (max-width: 782px) {
	.admin-bar .kg-header{ top:46px;}
}
@media screen and (min-width: 783px) and (max-width: 1000px) {
	.admin-bar .kg-header{ top:32px;}
}
@media only screen and (max-width: 640px) {
	.kg-header__logo img{ height:38px;}
	.kg-footer__inner{ padding-right:16px; padding-left:16px;}
	.kg-footer__partners{ padding-top:var(--kg-sp-3);}
	.kg-footer__nav{ gap:20px 12px;}
	.kg-footer__nav li a{ font-size:13px;}
	.kg-footer__copy{ margin:0;}
}

@media (hover: hover) {
	.kg-header__util a:hover{ opacity:1; color:var(--kg-white); text-decoration:underline;}
	.kg-header__search button:hover, .kg-header__search input[type="search"]:hover{ background-color:rgba(255,255,255,0.25);}
	.kg-header__tel:hover{ opacity:1; color:var(--kg-blue-dark);}
	.kg-header__btn:hover{ opacity:1; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-header__btn.is-primary:hover{ border-color:var(--kg-blue-dark); background-color:var(--kg-blue-dark); color:var(--kg-white);}
	.kg-header__btn.is-line:hover{ border-color:var(--kg-line-dark); background-color:var(--kg-line-dark); color:var(--kg-white);}
	.kg-gnav__item:hover > .kg-gnav__link{ opacity:1; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-gnav__item:hover > .kg-gnav__panel{ visibility:visible; opacity:1; transform:none; transition-delay:0.08s;}
	.kg-gnav__item.is-closed:hover > .kg-gnav__panel{ visibility:hidden; opacity:0;}
	.kg-gnav__panel-top:hover{ opacity:1; background-color:var(--kg-blue-dark); color:var(--kg-white);}
	.kg-gnav__sub a:hover{ opacity:1; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-drawer__nav > li > a:hover, .kg-drawer__nav summary:hover, .kg-drawer__nav ul a:hover{ opacity:1; background-color:var(--kg-blue-pale); color:var(--kg-blue);}
	.kg-footer__nav li a:hover{ opacity:1; color:var(--kg-blue); text-decoration:underline;}
	.kg-footer__info a:hover{ opacity:1; color:var(--kg-blue);}
	.kg-footer__legal a:hover{ opacity:1; color:var(--kg-white); text-decoration:underline;}
}


/* 指で操作する端末では、単独で置くリンクも 44px 以上の高さにする */
@media (pointer: coarse) {
	.kg-btn.is-small, .kg-btn.is-text, .kg-page-nav a{ min-height:44px;}
	.kg-breadcrumb a, .kg-more, .kg-map-link, .kg-office__row a, .kg-cta-band__tel{ display:inline-flex; align-items:center; min-height:44px;}
	.kg-breadcrumb{ gap:0;}
	.kg-header__util a, .kg-footer__legal a{ min-height:44px;}
	.kg-footer__nav li a{ align-items:center; min-height:44px; padding:0;}
	.kg-footer__nav li a::before{ transform:rotate(45deg);}
	.kg-footer__info a{ display:inline-flex; align-items:center; min-height:44px;}
	.kg-footer__info li{ align-items:center; padding:0;}
	.kg-footer__info .kg-i{ margin-top:0;}
	.kg-header__search input[type="search"], .kg-header__search button{ height:36px;}
	.kg-header__search input[type="search"]{ font-size:16px;}
	.kg-share a, .kg-share button, .kg-filter__btn{ min-height:44px;}
}


/* ************************************************
*	印刷
*	メニュー・ボタン・共有などの操作部品は出さず、本文・表・連絡先だけを印刷する
*	閉じたアコーディオン・選んでいないタブも、印刷するときは js/kg-ui.js が開いて全部出す
* ************************************************ */

@media print {
	@page{ margin:15mm 12mm;}
	html.kg-is-locked, html.kg-is-modal{ overflow:visible;}
	.kg-header, .kg-drawer, .kg-tabbar, .kg-pagetop, .kg-page-nav, .kg-local-nav, .kg-filter, .kg-share, .kg-post-nav, .kg-search,
	.kg-lightbox, .kg-scroller__btn, .kg-tabs__list, .kg-footer__partners, .kg-footer__nav, .kg-footer__legal, .kg-sns, .kg-cta-band .kg-btn-group,
	.kg-summary__foot, .kg-btn, .kg-notice-bar::after, .kg-link-box::after, .sp-cta{ display:none !important;}
	[class^="kg-"], [class*=" kg-"]{ box-shadow:none !important;}
	.kg-badge, .kg-status, .kg-table thead th, .kg-compare col.is-pick, .kg-compare thead th.is-pick::before, .kg-tabs__panel::before, .kg-hl, .kg-marker{ -webkit-print-color-adjust:exact; print-color-adjust:exact;}

	.kg-layout{ display:block;}
	.kg-tabs__panel[hidden]{ display:block !important;}
	.kg-tabs__panel{ padding-top:0; margin-bottom:var(--kg-sp-3); animation:none;}
	.kg-tabs__panel::before{ content:attr(data-kg-label); display:block; margin-bottom:8px; padding:4px 10px; border-left:5px solid var(--kg-blue); background-color:var(--kg-blue-pale); font-weight:bold;}
	.kg-tabs.is-boxed .kg-tabs__panel{ border:none; padding:0;}

	.kg-compare, .kg-table-scroll, .kg-scroller__track, .kg-scrollx{ overflow:visible !important; -webkit-mask-image:none !important; mask-image:none !important;}
	.kg-compare table{ width:100%; min-width:0;}
	.kg-compare th, .kg-compare td{ position:static !important; width:auto !important; padding:8px; font-size:12px;}
	.kg-scroller__track{ grid-auto-flow:row; grid-template-columns:repeat(3, 1fr);}
	.kg-table-scroll > table{ min-width:0;}

	.kg-table tr, .kg-compare tr, .kg-summary, .kg-price-card, .kg-tile, .kg-venue__card, .kg-office, .kg-flow > li, .kg-steps > li, .kg-accordion,
	.kg-alert, .kg-figure, .kg-news-card, .kg-course-card, .kg-result-list li, .kg-purpose li{ break-inside:avoid;}
	.kg-heading, .kg-heading-bar, .kg-heading-sub, .kg-article__body h2, .kg-article__body h3{ break-after:avoid;}
	.kg-accordion summary::after{ display:none;}

	.kg-text a[href^="http"]::after, .kg-article__body a[href^="http"]:not([class])::after{ content:"（" attr(href) "）"; color:#555; font-size:11px; word-break:break-all;}
	.kg-cta-band{ border:2px solid var(--kg-blue-deep); background:none; color:var(--kg-text);}
	.kg-cta-band__tel{ color:var(--kg-text);}
	.kg-mv{ min-height:0; color:var(--kg-text); background:none;}
	.kg-mv__img, .kg-mv::before{ display:none;}
	.kg-mv__body{ padding:0 0 var(--kg-sp-3);}
	.kg-footer{ margin-top:var(--kg-sp-3); border-top:1px solid #999; background:none;}
	.kg-footer__main{ display:block; padding:12px 0;}
	.kg-footer__bottom{ padding:0; background:none; color:var(--kg-text);}
}


@media (prefers-reduced-motion: reduce) {
	[class^="kg-"], [class*=" kg-"], [class^="kg-"]::before, [class^="kg-"]::after, [class^="kg-"] *{ transition:none !important; animation:none !important;}
	.kg-btn:hover, .kg-link-box:hover, .kg-course-card:hover{ transform:none;}
}
