/*
 * 今風デザイン(2026-10-23〜)。文章・写真・ロゴ・リンク・色の基本は現行のまま、見せ方だけを新しくする。
 * このファイルの読み込みを外す(functions.php の ngk-modern)と、現行と同じ見た目に戻る。
 * 本文のブロックには手を入れていない(CSS だけ)。
 */
:root {
	--ngk-navy: #0c4966;
	--ngk-navy-deep: #083549;
	--ngk-crimson: #ab1b33;
	--ngk-beige: #f0e7e0;
	--ngk-green: #61ce70;
	--ngk-radius: 18px;
	--ngk-shadow: 0 16px 38px rgba(12, 73, 102, 0.16);
	--ngk-shadow-sm: 0 6px 18px rgba(12, 73, 102, 0.13);
	--ngk-ease: cubic-bezier(0.22, 0.7, 0.2, 1);
}

html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	letter-spacing: 0.025em;
}
#masthead, #colophon, .nk-popup-modal { letter-spacing: 0; }
::selection { background: var(--ngk-crimson); color: #fff; }
a { transition: color 0.2s, opacity 0.2s, background-color 0.2s, transform 0.3s var(--ngk-ease), box-shadow 0.3s; }
:focus-visible { outline: 3px solid var(--ngk-green); outline-offset: 3px; border-radius: 6px; }

/* ---------- ヘッダー: 上に固定・半透明のぼかし ---------- */
#masthead { position: sticky; top: 0; z-index: 90; }
#masthead .nk-element-5b2a7ab,
#masthead .nk-element-847bab0 {
	background-color: rgba(12, 73, 102, 0.97) !important;
	-webkit-backdrop-filter: saturate(1.5) blur(14px);
	backdrop-filter: saturate(1.5) blur(14px);
	box-shadow: 0 2px 22px rgba(4, 30, 44, 0.28);
}
#masthead { transition: box-shadow 0.3s; }
#masthead.is-scrolled .nk-element-5b2a7ab, #masthead.is-scrolled .nk-element-847bab0 { box-shadow: 0 6px 28px rgba(4, 30, 44, 0.4); }
#masthead .nk-widget-image a { display: inline-block; }
#masthead .nk-widget-image a img { transition: transform 0.3s var(--ngk-ease), filter 0.3s; }
#masthead .nk-widget-image a:hover img { transform: translateY(-2px) scale(1.03); filter: brightness(1.06); }
.nk-nav-menu--main .nk-nav-menu a.nk-item { border-radius: 10px; transition: background-color 0.25s, color 0.25s; }
.nk-nav-menu--main .nk-nav-menu a.nk-item:hover { background-color: rgba(255, 255, 255, 0.12); }
.nk-nav-menu--main .nk-nav-menu ul.sub-menu {
	border-radius: 14px;
	overflow: hidden;
	box-shadow: var(--ngk-shadow);
	border: 1px solid rgba(12, 73, 102, 0.08);
	padding: 6px;
	background: #fff;
}
.nk-nav-menu--main .nk-nav-menu ul.sub-menu a.nk-sub-item { border-radius: 10px; }
.nk-nav-menu--main .nk-nav-menu ul.sub-menu a.nk-sub-item:hover { background-color: var(--ngk-beige); }

/* ---------- 下層ページの見出し帯 ---------- */
.nk-215 .nk-element-c56280a { position: relative; overflow: hidden; }
.nk-215 .nk-element-c56280a::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(8, 53, 73, 0.84) 0%, rgba(12, 73, 102, 0.5) 52%, rgba(12, 73, 102, 0.08) 100%);
	pointer-events: none;
}
.nk-215 .nk-element-c56280a > .nk-container { position: relative; z-index: 1; }
.nk-215 .nk-heading-title {
	font-size: clamp(28px, 3.6vw, 44px);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.nk-215 .nk-heading-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: 14px;
	border-radius: 4px;
	background: var(--ngk-green);
}

/* ---------- ベージュの小見出し帯: 左にえんじの線 ---------- */
.nk-element-f4eea3f,
.nk-element-5f489b4,
.nk-element-198040a,
.nk-element-070737d {
	background: linear-gradient(90deg, var(--ngk-beige) 0%, #faf6f2 100%) !important;
}
:is(.nk-element-f4eea3f, .nk-element-5f489b4, .nk-element-198040a, .nk-element-070737d) .nk-heading-title {
	border-left: 6px solid var(--ngk-crimson);
	padding-left: 16px;
	line-height: 1.4;
}

/* ---------- 色のついた箱(紺・えんじ): 角丸+影 ---------- */
body:not(.nk-page-16) .nk-column > .nk-widget-wrap.nk-element-populated {
	border-radius: var(--ngk-radius);
}
/* 2つの列が並んで1枚の箱に見えるもの(concept / method、スタッフ紹介)は、外枠ごと丸める */
:is(.nk-element-b8b52be, .nk-element-7460412, .nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) > .nk-container {
	border-radius: var(--ngk-radius);
	overflow: hidden;
	box-shadow: var(--ngk-shadow);
}
:is(.nk-element-b8b52be, .nk-element-7460412, .nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) .nk-widget-wrap { border-radius: 0 !important; }
:is(.nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) img { border-radius: 0 !important; }

/* 料金・スケジュール表(吹田校は6列、堺美原校は3列)は、1枚のカードとして丸める */
:is(.nk-element-49700e6, .nk-section:has(> .nk-container > .nk-col-16:nth-child(6))) > .nk-container {
	border-radius: var(--ngk-radius);
	overflow: hidden;
	box-shadow: var(--ngk-shadow);
}
:is(.nk-element-49700e6, .nk-section:has(> .nk-container > .nk-col-16:nth-child(6))) .nk-widget-wrap { border-radius: 0 !important; }
:is(.nk-element-49700e6, .nk-section:has(> .nk-container > .nk-col-16:nth-child(6))) > .nk-container > .nk-column:last-child > .nk-widget-wrap { border-right-width: 0 !important; }
/* 箱の右端の黄色い細い線(現行の飾り)は、角丸の箱では不自然なので外す。表の区切り線はそのまま */
:is(.nk-element-d71a375, .nk-element-922710d, .nk-element-63d8be5, .nk-element-5b3976e) > .nk-widget-wrap { border-right-width: 0 !important; }

/* スタッフ紹介: 写真と紺の枠を白いカードに納める */
:is(.nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) > .nk-container { background: #fff; }
:is(.nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) .nk-column:first-child img { border-radius: 12px 0 0 12px !important; }
:is(.nk-element-4f4a85e, .nk-element-8122b72, .nk-element-02d8c84) .nk-column:last-child > .nk-widget-wrap { border-radius: 0 12px 12px 0 !important; }

/* 紺の箱の中の赤い小見出しは、読みにくいので明るい赤に */
.nk-widget-text-editor span[style*="#ff0000"] { color: #ff9aa5 !important; font-weight: 700; }

/* ---------- 写真 ---------- */
.nk-widget-image img,
.nk-widget-image-carousel img { border-radius: 14px; }
#masthead img, #colophon img, .nk-popup-modal img { border-radius: 0; }
.nk-widget-image a:hover img { opacity: 0.94; }
.nk-image-carousel-wrapper.swiper { border-radius: 14px; }

/* ---------- ボタン ---------- */
:is(.nk-element-51acb62, .nk-element-7ede2fc, .nk-element-07f84f3, .nk-element-bbcda82, .nk-element-9e62d18, .nk-element-53c6587, .nk-element-e3330fd) .nk-button,
.nk-cta__button {
	border-radius: 999px !important;
	box-shadow: var(--ngk-shadow-sm);
	transition: transform 0.3s var(--ngk-ease), box-shadow 0.3s, background-color 0.25s;
}
:is(.nk-element-51acb62, .nk-element-7ede2fc, .nk-element-07f84f3, .nk-element-bbcda82, .nk-element-9e62d18, .nk-element-53c6587, .nk-element-e3330fd) .nk-button:hover,
.nk-cta__button:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 28px rgba(12, 73, 102, 0.28);
}
/* ホームの「MORE …」リンク: 矢印がふわっと動く */
:is(.nk-element-799154dc, .nk-element-33a3e469, .nk-element-482decd, .nk-element-64b3a3c) .nk-button:hover { transform: translateX(6px); }
/* ホームの丸い申し込みボタン */
.nk-element-d89f2f8 .nk-button {
	box-shadow: 0 20px 44px rgba(171, 27, 51, 0.38);
	transition: transform 0.4s var(--ngk-ease), box-shadow 0.4s, background-color 0.25s;
}
.nk-element-d89f2f8 .nk-button:hover { transform: scale(1.06) rotate(-2deg); box-shadow: 0 26px 54px rgba(12, 73, 102, 0.4); }

/* ---------- 「体験してみませんか?」の帯 ---------- */
.nk-widget-call-to-action .nk-cta {
	border-radius: 24px;
	overflow: hidden;
	box-shadow: var(--ngk-shadow);
}
.nk-widget-call-to-action .nk-cta__bg-overlay {
	background: linear-gradient(180deg, rgba(8, 53, 73, 0.12), rgba(8, 53, 73, 0.62)) !important;
	opacity: 1 !important;
}
.nk-widget-call-to-action .nk-cta__title { text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45); letter-spacing: 0.08em; }

/* ---------- お知らせの一覧: カード ---------- */
.nk-posts--skin-classic .nk-post {
	background: #fff;
	border-radius: 16px;
	padding: 18px 22px;
	box-shadow: 0 6px 20px rgba(12, 73, 102, 0.09);
	overflow: hidden;
	transition: transform 0.3s var(--ngk-ease), box-shadow 0.3s;
}
.nk-posts--skin-classic .nk-post__text, .nk-posts--skin-classic .nk-post__title, .nk-posts--skin-classic .nk-post__meta-data { margin-bottom: 0; }
.nk-posts--skin-classic .nk-post__title { line-height: 1.6; }
.nk-posts--skin-classic .nk-post:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(12, 73, 102, 0.16); }
.nk-posts--skin-classic .nk-post__thumbnail { border-radius: 12px; overflow: hidden; }
.nk-posts--skin-classic .nk-post__thumbnail img { border-radius: 0; }
.nk-posts--skin-classic .nk-post__title a:hover { color: var(--ngk-navy); }
.nk-posts--skin-classic .nk-post-date {
	display: inline-block;
	margin-top: 6px;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--ngk-beige);
	color: #7a6a5f;
}

/* ---------- ホーム ---------- */
.nk-16 .nk-widget-wrap { border-radius: 0; }
.nk-16 :is(.nk-element-15d15f8e, .nk-element-62cc47ac, .nk-element-f1f644d, .nk-element-8e13d61),
.nk-16 :is(.nk-element-15d15f8e, .nk-element-62cc47ac, .nk-element-f1f644d, .nk-element-8e13d61) > .nk-widget-wrap {
	border-radius: 28px;
}
.nk-16 .nk-element-1d04f2d .nk-widget-icon { border-radius: 14px; overflow: hidden; transition: transform 0.3s var(--ngk-ease), box-shadow 0.3s; }
.nk-16 .nk-element-1d04f2d .nk-widget-icon:hover { transform: translateY(-3px); box-shadow: var(--ngk-shadow-sm); }
.nk-16 .nk-element-30cd632 .nk-widget-image img { border-radius: 10px; box-shadow: var(--ngk-shadow-sm); }

/* 「NEWS」の見出しは、お知らせを読み進める間、左に残る */
@media (min-width: 1025px) {
	.nk-16 .nk-element-5caa17c > .nk-widget-wrap { position: sticky; top: 130px; align-self: flex-start; }
}
/* お知らせの記事ページ */
.nk-widget-theme-post-title .nk-heading-title { line-height: 1.5; letter-spacing: 0.03em; }
.nk-widget-theme-post-content { line-height: 2; }

/* ---------- FAQ: カード ---------- */
.nk-accordion { display: grid; gap: 12px; }
.nk-accordion .nk-accordion-item {
	border: 0 !important;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	box-shadow: var(--ngk-shadow-sm);
}
.nk-accordion .nk-tab-title { padding: 18px 22px; transition: background-color 0.25s; }
.nk-accordion .nk-tab-title .nk-accordion-title { line-height: 1.7; }
.nk-accordion .nk-tab-title:hover { background-color: #f7f2ee; }
.nk-accordion .nk-tab-title.nk-active { background-color: #fbf3f4; }
.nk-accordion .nk-tab-content { padding: 6px 22px 22px 52px; line-height: 2; border-top: 0 !important; }

/* ---------- フォーム ---------- */
table.tbl01 {
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--ngk-shadow-sm);
	border: 1px solid #e6e6e6;
}
table.tbl01 th { background: #f6f1ed; }
@media (min-width: 768px) { table.tbl01 th { width: 30%; min-width: 220px; } }
.wpcf7 input[type="radio"], .wpcf7 input[type="checkbox"] { accent-color: var(--ngk-crimson); width: 18px; height: 18px; vertical-align: -3px; margin: 0 6px 0 0; }
.wpcf7 .wpcf7-list-item { margin: 0 22px 8px 0; display: inline-block; }
.wpcf7 .wpcf7-list-item label { cursor: pointer; }
.wpcf7 input[type="text"], .wpcf7 input[type="tel"], .wpcf7 input[type="email"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea {
	border: 1.5px solid #cfd8dc;
	border-radius: 10px;
	padding: 10px 12px;
	background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	outline: none;
	border-color: var(--ngk-navy);
	box-shadow: 0 0 0 4px rgba(12, 73, 102, 0.15);
}
.wpcf7 input[type="submit"] {
	appearance: none;
	-webkit-appearance: none;
	background: linear-gradient(135deg, var(--ngk-crimson), #c9344f);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 14px 54px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.12em;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(171, 27, 51, 0.32);
	transition: transform 0.3s var(--ngk-ease), box-shadow 0.3s;
}
.wpcf7 input[type="submit"]:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(171, 27, 51, 0.4); }
.wpcf7 .wpcf7-response-output { border-radius: 12px; }
.wpcf7 fieldset.hidden-fields-container { display: none; border: 0; padding: 0; margin: 0; }

/* ---------- フッター ---------- */
#colophon .nk-element-d2ab3af { background: linear-gradient(180deg, #123b50 0%, #0a2434 100%) !important; }
#colophon .nk-element-01e6bdd { background: #061a24 !important; }
#colophon .hfe-menu-item { transition: color 0.2s, transform 0.25s var(--ngk-ease); }
#colophon .hfe-menu-item:hover { color: var(--ngk-green) !important; transform: translateX(-4px); }
#colophon .nk-widget-icon .nk-icon { transition: transform 0.3s var(--ngk-ease), color 0.2s; }
#colophon .nk-widget-icon .nk-icon:hover { transform: translateY(-3px) scale(1.1); color: var(--ngk-green); }

/* ---------- スマホ用メニュー ---------- */
#nk-popup-modal-282 { -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
#nk-popup-modal-282 .dialog-widget-content { border-radius: 24px 0 0 24px; }
#nk-popup-modal-282 .hfe-menu-item { border-radius: 10px; transition: background-color 0.2s, padding 0.25s; }
#nk-popup-modal-282 .hfe-menu-item:hover { background: var(--ngk-beige); }

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
	:root { --ngk-radius: 14px; }
	table.tbl01, table.tbl01 tbody, table.tbl01 tr, table.tbl01 th, table.tbl01 td { display: block; width: 100%; max-width: 100%; box-sizing: border-box; }
	table.tbl01 { overflow: hidden; }
	.wpcf7 input[type="text"], .wpcf7 input[type="tel"], .wpcf7 input[type="email"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea { max-width: 100%; box-sizing: border-box; }
	.nk-widget-call-to-action .nk-cta { border-radius: 18px; }
	.nk-posts--skin-classic .nk-post { padding: 14px 16px; }
	.nk-accordion .nk-tab-content { padding-left: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; }
}
