/* 外国人雇用インサイト — サイト全体のスタイル */
:root {
	--fei-blue: #0B5FA5;
	--fei-cyan: #1A9BD7;
	--fei-green: #3BAA5C;
	--fei-ink: #0E1A33;
	--fei-night: #070F24;
	--fei-muted: #556275;
	--fei-line: #E3E8F0;
	--fei-soft: #F5F7FA;
	--fei-grad: linear-gradient(120deg, #0B5FA5 0%, #1A9BD7 50%, #3BAA5C 100%);
	--fei-radius: 20px;
	--fei-shadow: 0 1px 2px rgba(14, 26, 51, .04), 0 12px 32px -12px rgba(14, 26, 51, .14);
	--fei-ease: cubic-bezier(.2, .7, .2, 1);
}
html { scroll-behavior: smooth; overflow-x: clip; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; font-feature-settings: "palt" 1; }
::selection { background: #CDE7FA; }
a { text-underline-offset: .2em; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

/* ---------- 共通部品 ---------- */
.fei-eyebrow { font-family: var(--wp--preset--font-family--en-sans); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; font-size: .75rem; }
.fei-pill { display: inline-flex; align-items: center; gap: .5em; padding: .4em 1em; border-radius: 999px; font-size: .8125rem; font-weight: 600; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); backdrop-filter: blur(8px); }
.fei-grad-text { background: var(--fei-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fei-chip { display: inline-block; padding: .2em .75em; margin: .15em .3em .15em 0; border-radius: 999px; background: #EAF3FB; color: var(--fei-blue); font-size: .75rem; font-weight: 700; line-height: 1.6; }
.fei-section-head { max-width: var(--wp--style--global--wide-size, 1200px) !important; }
.fei-section-head > * { max-width: 720px; }
.fei-section-head h2 { font-size: clamp(1.75rem, 3.4vw, 2.5rem); letter-spacing: -.01em; }
.fei-lead { color: var(--fei-muted); font-size: 1.0625rem; }
.fei-arrow { text-decoration: none; font-weight: 700; display: inline-flex; gap: .4em; align-items: center; }
.fei-arrow::after { content: "→"; transition: transform .25s var(--fei-ease); }
.fei-arrow:hover::after { transform: translateX(4px); }

/* ボタン */
.wp-block-button__link { border-radius: 14px !important; transition: transform .2s var(--fei-ease), box-shadow .2s var(--fei-ease), background .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.fei-btn-glow .wp-block-button__link { background: var(--fei-grad) !important; color: #fff !important; box-shadow: 0 10px 30px -8px rgba(26, 155, 215, .6); }
.fei-btn-ghost .wp-block-button__link { background: rgba(255, 255, 255, .06) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .25) !important; backdrop-filter: blur(8px); }
.wp-block-button.is-style-outline > .wp-block-button__link { color: var(--fei-blue); border: 1.5px solid var(--fei-blue); background: transparent; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--fei-blue); color: #fff; }

/* ---------- ヘッダー ---------- */
.fei-header { background: rgba(255, 255, 255, .78) !important; backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid rgba(14, 26, 51, .06); }
header.wp-block-template-part { position: sticky; top: 0; z-index: 60; }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
.fei-header .wp-block-site-title a { text-decoration: none; }
.fei-header .wp-block-navigation-item__content { text-decoration: none; color: var(--fei-ink); opacity: .82; transition: opacity .2s; }
.fei-header .wp-block-navigation-item__content:hover { opacity: 1; }
.fei-nav-contact > a { background: var(--fei-ink); color: #fff !important; opacity: 1 !important; padding: .55em 1.2em; border-radius: 12px; }
.fei-nav-contact > a:hover { background: var(--fei-blue); }
/* メニューが2行に折り返す幅(1279px以下。文字の描画差を見込んで余裕をもたせる)では、横並びをやめて「≡」メニューにする */
@media (max-width: 1279px) {
	.fei-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.fei-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.fei-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--fei-grad); z-index: 100; }
.admin-bar .fei-progress { top: 32px; }

/* ---------- ヒーロー ---------- */
.fei-hero { position: relative; overflow: hidden; background: var(--fei-night); color: #fff; isolation: isolate; }
.fei-hero::before, .fei-hero::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(80px); opacity: .55; }
.fei-hero::before { width: 620px; height: 620px; left: -160px; top: -220px; background: radial-gradient(circle, #1A9BD7 0%, transparent 65%); animation: fei-float 18s var(--fei-ease) infinite alternate; }
.fei-hero::after { width: 560px; height: 560px; right: -140px; bottom: -260px; background: radial-gradient(circle, #3BAA5C 0%, transparent 65%); animation: fei-float 22s var(--fei-ease) infinite alternate-reverse; }
.fei-hero .fei-grid-bg { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%); }
@keyframes fei-float { to { transform: translate(60px, 40px) scale(1.08); } }
.fei-hero h1 { color: #fff; font-size: clamp(2.25rem, 5.6vw, 4.25rem); line-height: 1.18; letter-spacing: -.02em; font-weight: 900; }
.fei-hero .fei-hero__sub { color: rgba(255, 255, 255, .78); font-size: clamp(1rem, 1.4vw, 1.125rem); max-width: 34em; }
.fei-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 2.5rem; padding-top: 1.5rem; max-width: 620px; }
.fei-stats div { padding-right: 1rem; }
.fei-stats b { display: block; font-family: var(--wp--preset--font-family--en-sans); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; letter-spacing: -.02em; }
.fei-stats span { color: rgba(255, 255, 255, .62); font-size: .8125rem; line-height: 1.5; display: block; }

/* 施行カウントダウン(ヒーロー右のガラスカード) */
.fei-next { border-radius: 24px; padding: 1.5rem; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .6); }
.fei-next__head { display: flex; align-items: center; gap: .6em; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; color: rgba(255, 255, 255, .8); margin-bottom: 1rem; }
.fei-live { width: 8px; height: 8px; border-radius: 50%; background: #4ADE80; box-shadow: 0 0 0 0 rgba(74, 222, 128, .7); animation: fei-pulse 2s infinite; }
@keyframes fei-pulse { 70% { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); } 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); } }
.fei-next__item { display: flex; gap: 1rem; align-items: center; padding: 1rem; border-radius: 16px; text-decoration: none; color: #fff; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); transition: background .2s, transform .2s var(--fei-ease); }
.fei-next__item + .fei-next__item { margin-top: .6rem; }
.fei-next__item:hover { background: rgba(255, 255, 255, .1); transform: translateY(-2px); }
.fei-next__days { flex: none; width: 76px; text-align: center; font-size: .75rem; color: rgba(255, 255, 255, .7); }
.fei-next__days b { display: block; font-family: var(--wp--preset--font-family--en-sans); font-size: 1.875rem; line-height: 1.1; font-weight: 800; background: var(--fei-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fei-next__body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.fei-next__date { font-size: .75rem; color: #8FD3B0; font-weight: 700; letter-spacing: .04em; }
.fei-next__title { font-size: .9375rem; font-weight: 700; line-height: 1.5; }
.fei-next__empty { color: rgba(255, 255, 255, .7); font-size: .875rem; }

/* 情報源のティッカー */
.fei-ticker { overflow: hidden; border-bottom: 1px solid var(--fei-line); background: #fff; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.fei-ticker__track { display: flex; gap: 3.5rem; width: max-content; padding: 1.1rem 0; animation: fei-marquee 40s linear infinite; color: var(--fei-muted); font-weight: 700; font-size: .9375rem; white-space: nowrap; }
.fei-ticker__track span::before { content: "◆"; margin-right: .8em; font-size: .6em; color: var(--fei-green); vertical-align: middle; }
@keyframes fei-marquee { to { transform: translateX(-50%); } }

/* ---------- ベントーグリッド ---------- */
.fei-bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.fei-tile { position: relative; overflow: hidden; border-radius: var(--fei-radius); padding: clamp(20px, 2.4vw, 32px); background: #fff; border: 1px solid var(--fei-line); box-shadow: var(--fei-shadow); text-decoration: none; color: var(--fei-ink); display: flex; flex-direction: column; gap: .6rem; transition: transform .3s var(--fei-ease), box-shadow .3s var(--fei-ease), border-color .3s; }
a.fei-tile:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -20px rgba(11, 95, 165, .35); border-color: #C7DDF2; }
.fei-tile h3 { margin: 0; font-size: 1.25rem; }
.fei-tile p { margin: 0; color: var(--fei-muted); font-size: .9rem; line-height: 1.8; }
.fei-tile .fei-num { font-family: var(--wp--preset--font-family--en-sans); font-weight: 800; font-size: .8125rem; letter-spacing: .12em; color: var(--fei-blue); }
.fei-tile--wide { grid-column: span 4; }
.fei-tile--half { grid-column: span 3; }
.fei-tile--third { grid-column: span 2; }
.fei-tile--dark { background: var(--fei-night); color: #fff; border-color: transparent; }
.fei-tile--dark h3 { color: #fff; }
.fei-tile--dark p { color: rgba(255, 255, 255, .7); }
.fei-tile--grad { background: var(--fei-grad); color: #fff; border: 0; }
.fei-tile--grad h3, .fei-tile--grad p { color: #fff; }
.fei-tile .fei-more { margin-top: auto; font-weight: 700; font-size: .875rem; color: var(--fei-blue); }
.fei-tile--dark .fei-more, .fei-tile--grad .fei-more { color: #fff; }
.fei-tile__deco { position: absolute; right: -40px; bottom: -40px; width: 180px; height: 180px; border-radius: 50%; background: var(--fei-grad); opacity: .12; filter: blur(2px); }
.fei-chips-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.fei-chips-cloud a { padding: .45em 1em; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .2); color: #fff; text-decoration: none; font-size: .875rem; font-weight: 600; transition: background .2s; }
.fei-chips-cloud a:hover { background: rgba(255, 255, 255, .12); }
@media (max-width: 900px) { .fei-tile--wide, .fei-tile--half, .fei-tile--third { grid-column: span 6; } }

/* ---------- 制度変更タイムライン ---------- */
.fei-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.fei-timeline::before { content: ""; position: absolute; left: 140px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--fei-blue), var(--fei-green)); opacity: .25; }
.fei-timeline__item { display: grid; grid-template-columns: 140px 1fr; gap: 2rem; padding: .75rem 0; position: relative; }
.fei-timeline__item::before { content: ""; position: absolute; left: 134px; top: 1.6rem; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--fei-blue); }
.fei-timeline__item.is-past::before { border-color: #A9B4C4; }
.fei-timeline__date { font-family: var(--wp--preset--font-family--en-sans); font-weight: 800; font-size: 1.125rem; padding-top: 1rem; display: flex; flex-direction: column; gap: .3rem; }
.fei-timeline__badge { font-family: var(--wp--preset--font-family--jp-sans); font-size: .75rem; font-weight: 700; color: var(--fei-green); }
.is-past .fei-timeline__date { color: #8A96A8; }
.is-past .fei-timeline__badge { color: #8A96A8; }
.fei-timeline__card { display: block; padding: 1.1rem 1.4rem; border-radius: 16px; background: #fff; border: 1px solid var(--fei-line); text-decoration: none; color: var(--fei-ink); box-shadow: var(--fei-shadow); transition: transform .25s var(--fei-ease), border-color .25s; }
.fei-timeline__card:hover { transform: translateX(4px); border-color: #C7DDF2; }
.fei-timeline__title { display: block; font-weight: 700; line-height: 1.6; margin-bottom: .3rem; }
.fei-timeline__empty { color: var(--fei-muted); }
@media (max-width: 640px) {
	.fei-timeline::before { left: 6px; }
	.fei-timeline__item { grid-template-columns: minmax(0, 1fr); gap: .4rem; padding-left: 28px; }
	.fei-timeline__item::before { left: 0; top: 1.25rem; }
	.fei-timeline__date { padding-top: .8rem; flex-direction: row; align-items: baseline; gap: .8rem; }
}

/* ---------- 仕組み(3ステップ) ---------- */
.fei-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.fei-step { position: relative; padding: 28px; border-radius: var(--fei-radius); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); }
.fei-step::before { counter-increment: step; content: "0" counter(step); font-family: var(--wp--preset--font-family--en-sans); font-weight: 800; font-size: 2.5rem; line-height: 1; background: var(--fei-grad); -webkit-background-clip: text; background-clip: text; color: transparent; display: block; margin-bottom: 1rem; }
.fei-step h3 { color: #fff; font-size: 1.125rem; margin: 0 0 .5rem; }
.fei-step p { color: rgba(255, 255, 255, .7); font-size: .875rem; margin: 0; line-height: 1.8; }
@media (max-width: 900px) { .fei-steps { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 記事カード ---------- */
.fei-card { position: relative; height: 100%; border-radius: var(--fei-radius) !important; border: 1px solid var(--fei-line) !important; box-shadow: var(--fei-shadow); transition: transform .3s var(--fei-ease), box-shadow .3s var(--fei-ease), border-color .3s; }
.fei-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -20px rgba(11, 95, 165, .3); border-color: #C7DDF2 !important; }
.fei-card .wp-block-post-title a { text-decoration: none; color: inherit; }
.fei-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.fei-badge a { display: inline-block; padding: .2em .8em; border-radius: 999px; background: #EAF3FB; color: var(--fei-blue); font-weight: 700; font-size: .75rem; text-decoration: none; position: relative; z-index: 1; }
.fei-badge .wp-block-post-terms__separator { display: none; }

/* ---------- 記事ページ ---------- */
.fei-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 56px; align-items: start; }
.fei-article-layout > * { margin: 0 !important; }
.fei-toc { position: sticky; top: 104px; font-size: .875rem; }
.fei-toc__title { font-family: var(--wp--preset--font-family--en-sans); font-size: .75rem; letter-spacing: .16em; font-weight: 700; color: var(--fei-muted); margin-bottom: .8rem; }
.fei-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--fei-line); }
.fei-toc a { display: block; padding: .45rem 0 .45rem 1rem; margin-left: -2px; border-left: 2px solid transparent; color: var(--fei-muted); text-decoration: none; line-height: 1.5; transition: color .2s, border-color .2s; }
.fei-toc a:hover { color: var(--fei-ink); }
.fei-toc a.is-active { color: var(--fei-blue); border-left-color: var(--fei-blue); font-weight: 700; }
@media (max-width: 1000px) { .fei-article-layout { grid-template-columns: minmax(0, 1fr); } .fei-toc { display: none; } }
.fei-article { font-size: 1.0625rem; line-height: 2; }
.fei-article > * { max-width: none; }
.fei-article h2 { font-size: clamp(1.375rem, 2.4vw, 1.75rem); margin-top: 3em; scroll-margin-top: 100px; padding-left: .9em; position: relative; }
.fei-article h2::before { content: ""; position: absolute; left: 0; top: .25em; bottom: .25em; width: 5px; border-radius: 4px; background: var(--fei-grad); }
.fei-article h3 { font-size: 1.1875rem; margin-top: 2.2em; scroll-margin-top: 100px; }
.fei-article table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--fei-line); border-radius: 14px; overflow: hidden; font-size: .9375rem; }
.fei-article th, .fei-article td { padding: .8em 1em; border-bottom: 1px solid var(--fei-line); vertical-align: top; text-align: left; }
.fei-article tr:last-child td { border-bottom: 0; }
.fei-article th { background: var(--fei-soft); font-weight: 700; }
.fei-article td:first-child { font-weight: 700; white-space: nowrap; width: 9em; }
.fei-article ul li::marker { color: var(--fei-green); }
.fei-article ol li::marker { color: var(--fei-blue); font-weight: 800; }
.fei-article li { margin-bottom: .4em; }
.fei-article blockquote { border-left: 4px solid var(--fei-blue); background: var(--fei-soft); border-radius: 0 12px 12px 0; padding: 1em 1.4em; }

/* 要点カード */
.fei-fact { margin: 2rem 0 0; border-radius: var(--fei-radius); padding: 1.5rem 1.6rem; background: linear-gradient(135deg, #F2F8FE 0%, #F1FAF4 100%); border: 1px solid #D5E7F6; }
.fei-fact__head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .6rem; font-weight: 800; margin-bottom: 1rem; }
.fei-verified { font-size: .75rem; font-weight: 700; color: #1F7A45; background: #DCF3E4; padding: .3em .8em; border-radius: 999px; }
.fei-fact__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.fei-fact__grid dt { font-size: .75rem; color: var(--fei-muted); font-weight: 700; margin-bottom: .2rem; }
.fei-fact__grid dd { margin: 0; font-weight: 800; font-size: 1.0625rem; font-family: var(--wp--preset--font-family--en-sans); }
.fei-fact__grid dd em { font-style: normal; font-size: .75rem; color: #1F7A45; margin-left: .3em; }
.fei-fact__src { margin: 1rem 0 0; font-size: .8125rem; color: var(--fei-muted); }
@media (max-width: 720px) { .fei-fact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- フッター ---------- */
.fei-footer a { color: inherit; text-decoration: none; opacity: .8; }
.fei-footer a:hover { opacity: 1; text-decoration: underline; }

/* ---------- スクロールで現れる動き ---------- */
@media (prefers-reduced-motion: no-preference) {
	.fei-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--fei-ease), transform .8s var(--fei-ease); }
	.fei-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.fei-hero::before, .fei-hero::after, .fei-ticker__track, .fei-live { animation: none; }
	html { scroll-behavior: auto; }
}

/* フッターの上端にブランドの線 */
.fei-footer { border-top: 3px solid transparent; border-image: var(--fei-grad) 1; }

/* スマートフォンではヘッダーのロゴを少し小さく */
@media (max-width: 600px) {
	.fei-header .wp-block-image img { width: 48px !important; height: 48px !important; }
	.fei-header .wp-block-site-title { font-size: 1.125rem !important; }
	.fei-header .fei-eyebrow { font-size: .625rem !important; }
}

/* ---------- 下層ページ共通(ヒーロー・見出し・段組み) ---------- */
.fei-breadcrumb { font-size: .8125rem; color: rgba(255, 255, 255, .6); display: flex; gap: .6em; flex-wrap: wrap; }
.fei-breadcrumb a { color: rgba(255, 255, 255, .8); text-decoration: none; }
.fei-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.fei-page-title { color: #fff; font-size: clamp(2rem, 4.8vw, 3.5rem); line-height: 1.2; letter-spacing: -.02em; font-weight: 900; margin: .75rem 0 1.25rem; }
.fei-page-hero .fei-hero__sub { max-width: 40em; }
.fei-h2 { font-size: clamp(1.625rem, 3.2vw, 2.375rem); line-height: 1.35; letter-spacing: -.01em; font-weight: 800; margin: .5rem 0 0; }
.fei-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.fei-prose p { font-size: 1.0625rem; line-height: 2; color: #2B3850; margin: 0 0 1.2em; }
.fei-prose p:last-child { margin-bottom: 0; }
.fei-prose strong { background: linear-gradient(transparent 62%, #D6F0E0 62%); }
@media (max-width: 860px) { .fei-split { grid-template-columns: minmax(0, 1fr); } }

/* 大切にしていること */
.fei-icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--fei-grad); color: #fff; font-family: var(--wp--preset--font-family--en-sans); font-weight: 800; font-size: .9375rem; margin-bottom: .6rem; box-shadow: 0 10px 24px -10px rgba(26, 155, 215, .7); }

/* 代表者プロフィール */
.fei-profile { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.fei-profile__card { position: relative; overflow: hidden; text-align: center; padding: clamp(32px, 4vw, 48px) 24px; border-radius: 28px; background: var(--fei-night); color: #fff; box-shadow: 0 40px 80px -40px rgba(7, 15, 36, .7); isolation: isolate; }
.fei-profile__card::before { content: ""; position: absolute; inset: -40% -20% auto auto; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(26, 155, 215, .55), transparent 65%); filter: blur(30px); z-index: -1; }
.fei-profile__card::after { content: ""; position: absolute; inset: auto auto -45% -25%; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(59, 170, 92, .45), transparent 65%); filter: blur(30px); z-index: -1; }
.fei-monogram { width: 128px; height: 128px; margin: 0 auto 1.25rem; border-radius: 50%; display: grid; place-items: center; font-size: 2.25rem; font-weight: 900; letter-spacing: .04em; color: #fff; background: var(--fei-grad); box-shadow: 0 0 0 6px rgba(255, 255, 255, .08), 0 20px 40px -12px rgba(26, 155, 215, .6); }
.fei-profile__role { margin: 0; font-size: .8125rem; letter-spacing: .2em; color: #8FD3B0; font-weight: 700; }
.fei-profile__name { margin: .25rem 0 0; font-size: 1.75rem; font-weight: 900; letter-spacing: .08em; }
.fei-profile__kana { margin: .1rem 0 1.25rem; font-size: .8125rem; color: rgba(255, 255, 255, .6); letter-spacing: .12em; }
.fei-profile__chips .fei-chip { background: rgba(255, 255, 255, .1); color: #fff; }
.fei-profile__body .fei-prose { margin-top: 1.5rem; }
.fei-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 1.75rem 0; }
.fei-facts div { padding: 18px 20px; border-radius: 16px; background: #fff; border: 1px solid var(--fei-line); box-shadow: var(--fei-shadow); }
.fei-facts b { display: block; font-family: var(--wp--preset--font-family--en-sans); font-size: 2rem; font-weight: 800; line-height: 1.1; background: var(--fei-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fei-facts b small { font-size: 1rem; }
.fei-facts span { display: block; margin-top: .4rem; font-size: .8125rem; color: var(--fei-muted); line-height: 1.6; }
.fei-profile__areas { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .2rem; }
.fei-profile__areas > span:first-child { font-size: .8125rem; font-weight: 700; color: var(--fei-muted); margin-right: .6rem; }
@media (max-width: 860px) { .fei-profile { grid-template-columns: minmax(0, 1fr); } .fei-facts { grid-template-columns: 1fr 1fr; } }

/* 運営者情報の一覧 */
.fei-info { margin: 0; border-top: 1px solid var(--fei-line); }
.fei-info > div { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 1.5rem; padding: 1.2rem 0; border-bottom: 1px solid var(--fei-line); }
.fei-info dt { font-weight: 700; color: var(--fei-muted); font-size: .875rem; padding-top: .15em; }
.fei-info dd { margin: 0; font-weight: 600; line-height: 1.8; overflow-wrap: anywhere; }
.fei-info dd small { color: var(--fei-muted); font-weight: 500; }
@media (max-width: 560px) { .fei-info > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; } }

/* 下層ページの見出し(ページ名を濃紺のヒーローに表示) */
.fei-page-hero .wp-block-post-title.fei-page-title { color: #fff; }
.fei-page-hero--center { text-align: center; }
.fei-page-hero--center .fei-breadcrumb { justify-content: center; }
.fei-page-hero--center .fei-hero__sub { margin-left: auto; margin-right: auto; }
.fei-page-body > :first-child { margin-top: 0; }

/* ---------- お問い合わせフォーム ---------- */
.fei-form-card { position: relative; z-index: 2; margin-top: clamp(-96px, -8vw, -64px); padding: clamp(28px, 5vw, 56px); border-radius: 28px; background: #fff; border: 1px solid var(--fei-line); box-shadow: 0 40px 80px -40px rgba(7, 15, 36, .35), var(--fei-shadow); }
.fei-form-card .fei-page-body > p, .fei-form-card .fei-page-body > ul { font-size: .9375rem; color: var(--fei-muted); }
.wpcf7 form > p, .wpcf7 form label { margin: 0 0 1.4rem; }
.wpcf7 label { display: block; font-weight: 700; font-size: .9375rem; color: var(--fei-ink); }
.wpcf7-form-control-wrap { display: block; margin-top: .55rem; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; box-sizing: border-box; min-height: 58px; padding: 16px 18px; font: inherit; font-size: 1rem; font-weight: 500; color: var(--fei-ink);
	background: var(--fei-soft); border: 1.5px solid var(--fei-line); border-radius: 14px; transition: border-color .2s, box-shadow .2s, background .2s; appearance: none;
}
.wpcf7 textarea { min-height: 220px; resize: vertical; line-height: 1.8; }
.wpcf7 select { background-image: linear-gradient(45deg, transparent 50%, var(--fei-muted) 50%), linear-gradient(135deg, var(--fei-muted) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 44px; cursor: pointer; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; background: #fff; border-color: var(--fei-blue); box-shadow: 0 0 0 4px rgba(11, 95, 165, .12); }
.wpcf7 .wpcf7-acceptance { display: block; margin: .4rem 0 1.4rem; font-weight: 600; }
.wpcf7 .wpcf7-acceptance input { width: 20px; height: 20px; vertical-align: -4px; margin-right: .5em; accent-color: var(--fei-blue); }
.wpcf7 input[type="submit"] { display: block; width: 100%; min-height: 60px; border: 0; border-radius: 14px; background: var(--fei-grad); color: #fff; font: inherit; font-size: 1.0625rem; font-weight: 800; letter-spacing: .08em; cursor: pointer; box-shadow: 0 14px 30px -12px rgba(26, 155, 215, .7); transition: transform .2s var(--fei-ease), box-shadow .2s; }
.wpcf7 input[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -12px rgba(26, 155, 215, .8); }
.wpcf7 input[type="submit"]:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.wpcf7 .wpcf7-spinner { display: block; margin: .8rem auto 0; }
.wpcf7-not-valid-tip { margin-top: .4rem; font-size: .8125rem; font-weight: 600; }
.wpcf7 form .wpcf7-response-output { margin: 1.2rem 0 0; padding: 1em 1.2em; border-radius: 12px; font-size: .9375rem; }

/* ---------- カテゴリー一覧ページ ---------- */
.fei-page-hero .wp-block-query-title.fei-page-title { color: #fff; }
.fei-gains { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; }
.fei-gains__label { font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: #8FD3B0; }
.fei-gains__list { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; }
.fei-gains__list li { padding: .5em 1em; border-radius: 999px; font-size: .875rem; font-weight: 600; color: #fff; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.fei-gains__list li::before { content: "✓"; color: #4ADE80; margin-right: .5em; font-weight: 800; }
.fei-empty { max-width: 760px; margin: 0 auto; text-align: center; padding: clamp(32px, 5vw, 56px); border-radius: 28px; background: #fff; border: 1px dashed #C7D3E3; }
.fei-empty__head { display: inline-flex; align-items: center; gap: .5em; padding: .35em 1em; border-radius: 999px; background: #EAF6EE; color: #1F7A45; font-size: .8125rem; font-weight: 700; }
.fei-empty__title { font-size: clamp(1.375rem, 2.6vw, 1.75rem); margin: 1rem 0 .5rem; }
.fei-empty__text { color: var(--fei-muted); font-size: .9375rem; margin: 1.5rem 0 .8rem; font-weight: 700; }
.fei-empty__list { list-style: none; margin: 0 auto; padding: 0; display: grid; gap: .6rem; max-width: 520px; text-align: left; }
.fei-empty__list li { padding: .9em 1.1em; border-radius: 14px; background: var(--fei-soft); border: 1px solid var(--fei-line); font-weight: 600; font-size: .9375rem; }
.fei-empty__list li::before { content: "予定"; display: inline-block; margin-right: .8em; padding: .1em .6em; border-radius: 6px; background: #EAF3FB; color: var(--fei-blue); font-size: .6875rem; font-weight: 800; vertical-align: 1px; }
.fei-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 2rem; }
.fei-empty__btn { display: inline-flex; align-items: center; min-height: 52px; padding: 0 1.6em; border-radius: 14px; font-weight: 800; text-decoration: none; color: var(--fei-blue); border: 1.5px solid var(--fei-blue); transition: transform .2s var(--fei-ease); }
.fei-empty__btn:hover { transform: translateY(-2px); }
.fei-empty__btn--primary { background: var(--fei-grad); color: #fff; border: 0; box-shadow: 0 14px 30px -12px rgba(26, 155, 215, .7); }

/* 下層ページの説明文は左寄せ(お問い合わせのみ中央) */
.fei-page-hero > .fei-hero__sub { max-width: var(--wp--style--global--wide-size, 1200px) !important; margin-left: auto !important; margin-right: auto !important; padding-right: max(0px, calc(100% - 44em)); box-sizing: border-box; }
.fei-page-hero--center > .fei-hero__sub { max-width: 40em !important; padding-right: 0; }
.fei-contact-page .fei-form-card { margin-top: -88px !important; }

/* 代表者カードの丸いマーク(事務所名) */
.fei-monogram { width: 148px; height: 148px; font-size: 1.0625rem; line-height: 1.35; letter-spacing: .02em; text-align: center; padding: 0 12px; }
.fei-monogram span { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .2em; opacity: .9; margin-bottom: .2em; }

/* ---------- 確認表 ---------- */
.fei-print-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.2rem; padding: 1rem 1.2rem; margin: 0 0 2rem; border-radius: 16px; background: var(--fei-soft); border: 1px solid var(--fei-line); font-size: .875rem; color: var(--fei-muted); }
.fei-print-btn { display: inline-flex; align-items: center; gap: .5em; min-height: 46px; padding: 0 1.3em; border: 0; border-radius: 12px; background: var(--fei-ink); color: #fff; font: inherit; font-weight: 800; cursor: pointer; transition: background .2s; }
.fei-print-btn::before { content: "⎙"; font-size: 1.1em; }
.fei-print-btn:hover { background: var(--fei-blue); }
.fei-article .fei-checktable td:first-child, .fei-article .fei-checktable th:first-child { width: 3.6em; text-align: center; white-space: nowrap; font-weight: 400; }
.fei-article .fei-checktable td:nth-child(2) { font-weight: 700; width: auto; white-space: normal; }
.fei-article .fei-checktable tr { transition: background .2s; }
.fei-article .fei-checktable tr.is-checked { background: #F1FAF4; }
.fei-article .fei-checktable tr.is-checked td:nth-child(2) { color: var(--fei-muted); }
.fei-check { width: 26px; height: 26px; border-radius: 8px; border: 2px solid #A9B8CC; background: #fff; cursor: pointer; display: inline-grid; place-items: center; transition: background .15s, border-color .15s, transform .15s; vertical-align: middle; }
.fei-check:hover { border-color: var(--fei-blue); transform: scale(1.06); }
.fei-check[aria-pressed="true"] { background: var(--fei-green); border-color: var(--fei-green); }
.fei-check[aria-pressed="true"]::after { content: "✓"; color: #fff; font-weight: 900; font-size: .9rem; line-height: 1; }
.fei-article table { display: table; }
@media (max-width: 720px) { .fei-article .wp-block-table, .fei-article table { display: block; overflow-x: auto; } }

/* ---------- 印刷 ---------- */
@media print {
	@page { margin: 14mm 12mm; }
	header.wp-block-template-part, footer.wp-block-template-part, .fei-toc, .fei-progress, .fei-print-bar, .wp-block-post-navigation-link, .fei-article ~ *, .fei-tile--dark, #wpadminbar { display: none !important; }
	body { font-size: 10.5pt; color: #000; background: #fff; }
	.fei-hero, .has-hero-gradient-background { background: none !important; color: #000 !important; padding: 0 !important; }
	.fei-hero::before, .fei-hero::after, .fei-grid-bg { display: none !important; }
	.wp-block-post-title { font-size: 18pt !important; color: #000 !important; }
	.fei-article-layout { display: block; }
	.fei-article { font-size: 10pt; line-height: 1.6; }
	.fei-article h2 { margin-top: 1.4em; break-after: avoid; }
	.fei-article table { border: 1px solid #999; border-radius: 0; break-inside: auto; }
	.fei-article th, .fei-article td { border-color: #999; padding: .35em .5em; }
	.fei-article tr { break-inside: avoid; }
	.fei-check { border: 1.5px solid #333; width: 16px; height: 16px; border-radius: 3px; }
	.fei-fact { background: none; border: 1px solid #999; }
	a { color: #000; text-decoration: none; }
}

.fei-article > .fei-print-bar { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box; }

/* ---------- 記事ページ: パンくず・運営責任者・関連記事 ---------- */
.fei-breadcrumb--light { color: var(--fei-muted); margin-bottom: 1rem; font-size: .8125rem; }
.fei-breadcrumb--light a { color: var(--fei-blue); }
.fei-breadcrumb__here { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 28em; }
.fei-responsible { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 1.5rem; align-items: center; margin-top: 3.5rem; padding: clamp(22px, 3vw, 32px); border-radius: 24px; background: #fff; border: 1px solid var(--fei-line); box-shadow: var(--fei-shadow); }
.fei-responsible__mark { width: 120px; height: 120px; border-radius: 50%; display: grid; place-content: center; text-align: center; color: #fff; font-weight: 900; font-size: .9375rem; line-height: 1.35; background: var(--fei-grad); box-shadow: 0 0 0 6px #EAF3FB; }
.fei-responsible__mark span { display: block; font-size: .6875rem; letter-spacing: .2em; font-weight: 700; opacity: .9; }
.fei-responsible__label { margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .12em; color: var(--fei-green); }
.fei-responsible__name { margin: .2rem 0 .5rem; font-size: 1.25rem; font-weight: 800; }
.fei-responsible__name small { display: block; font-size: .8125rem; font-weight: 600; color: var(--fei-muted); margin-top: .1rem; }
.fei-responsible__text { margin: 0 0 .8rem; font-size: .9rem; line-height: 1.85; color: #2B3850; }
.fei-responsible__links { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 0; font-size: .875rem; font-weight: 700; }
.fei-responsible__links a { text-decoration: none; }
.fei-responsible__links a::after { content: " →"; }
@media (max-width: 600px) { .fei-responsible { grid-template-columns: minmax(0, 1fr); text-align: left; } .fei-responsible__mark { width: 96px; height: 96px; font-size: .8125rem; } }
.fei-related { margin-top: 4rem; }
.fei-related__title { font-size: 1.5rem; margin: .4rem 0 1.25rem; }
.fei-related__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.fei-related__card { display: flex; flex-direction: column; gap: .5rem; padding: 18px 20px; border-radius: 18px; background: #fff; border: 1px solid var(--fei-line); text-decoration: none; color: var(--fei-ink); box-shadow: var(--fei-shadow); transition: transform .25s var(--fei-ease), border-color .25s; }
.fei-related__card:hover { transform: translateY(-3px); border-color: #C7DDF2; }
.fei-related__card .fei-chip { align-self: flex-start; }
.fei-related__name { font-weight: 700; line-height: 1.6; font-size: .9375rem; }
.fei-related__date { font-size: .75rem; color: var(--fei-muted); font-family: var(--wp--preset--font-family--en-sans); font-weight: 600; }
@media print { .fei-responsible, .fei-related, .fei-breadcrumb { display: none !important; } }

/* 404 の検索ボックス */
.fei-search { max-width: 560px; margin: 2rem auto 0 !important; }
.fei-search .wp-block-search__inside-wrapper { gap: 8px; border: 0; padding: 0; }
.fei-search input { min-height: 56px; padding: 0 18px; border-radius: 14px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; font: inherit; }
.fei-search input::placeholder { color: rgba(255,255,255,.55); }
.fei-search .wp-block-search__button { min-height: 56px; padding: 0 1.6em; border-radius: 14px; border: 0; background: var(--fei-grad); color: #fff; font-weight: 800; }

/* トップページだけ、ヘッダーのロゴマークを大きく */
body.home .fei-header .wp-block-image img { width: 84px !important; height: 84px !important; }
@media (max-width: 600px) { body.home .fei-header .wp-block-image img { width: 56px !important; height: 56px !important; } }

/* ---------- 目的から探す(状況別の道案内) ---------- */
.fei-navi { background: linear-gradient(180deg, #F2F8FE 0%, #FFFFFF 100%); scroll-margin-top: 90px; }
.fei-navi__intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: end; margin-bottom: 2.5rem; }
.fei-navi__title { font-size: clamp(2rem, 4.4vw, 3.25rem); line-height: 1.25; letter-spacing: -.02em; font-weight: 900; margin: .5rem 0 1rem; }
.fei-navi__search { padding: 22px; border-radius: 20px; background: #fff; border: 1px solid var(--fei-line); box-shadow: var(--fei-shadow); }
.fei-navi__search label { display: block; font-size: .8125rem; font-weight: 800; color: var(--fei-muted); margin-bottom: .6rem; letter-spacing: .04em; }
.fei-navi__search div { display: flex; gap: 8px; }
.fei-navi__search input { flex: 1; min-width: 0; min-height: 54px; padding: 0 16px; border-radius: 14px; border: 1.5px solid var(--fei-line); background: var(--fei-soft); font: inherit; font-size: 1rem; }
.fei-navi__search input:focus { outline: none; border-color: var(--fei-blue); background: #fff; box-shadow: 0 0 0 4px rgba(11, 95, 165, .12); }
.fei-navi__search button { min-height: 54px; padding: 0 1.4em; border: 0; border-radius: 14px; background: var(--fei-ink); color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.fei-navi__search button:hover { background: var(--fei-blue); }
.fei-navi__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fei-navi__card { display: flex; flex-direction: column; padding: 24px; border-radius: 22px; background: #fff; border: 1px solid var(--fei-line); box-shadow: var(--fei-shadow); transition: border-color .25s, box-shadow .25s, transform .25s var(--fei-ease); }
.fei-navi__card:hover { border-color: #C7DDF2; box-shadow: 0 24px 48px -24px rgba(11, 95, 165, .35); transform: translateY(-3px); }
.fei-navi__head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 1rem; }
.fei-navi__num { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--fei-grad); color: #fff; font-family: var(--wp--preset--font-family--en-sans); font-weight: 800; font-size: .875rem; box-shadow: 0 10px 22px -10px rgba(26, 155, 215, .7); }
.fei-navi__scene { margin: 0; font-size: 1.125rem; font-weight: 800; line-height: 1.4; }
.fei-navi__lead { margin: .25rem 0 0; font-size: .8125rem; color: var(--fei-muted); line-height: 1.6; }
.fei-navi__card ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fei-line); }
.fei-navi__card li { border-bottom: 1px solid var(--fei-line); }
.fei-navi__link { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .85rem .2rem; font-size: .9375rem; font-weight: 700; color: var(--fei-ink); text-decoration: none; }
a.fei-navi__link::after { content: "→"; color: var(--fei-blue); transition: transform .2s var(--fei-ease); }
a.fei-navi__link:hover { color: var(--fei-blue); }
a.fei-navi__link:hover::after { transform: translateX(4px); }
.fei-navi__link.is-soon { color: #8A96A8; font-weight: 600; }
.fei-navi__link.is-soon em { font-style: normal; flex: none; font-size: .6875rem; font-weight: 800; color: var(--fei-green); background: #EAF6EE; padding: .2em .7em; border-radius: 999px; }
.fei-navi__card--hub { background: var(--fei-night); color: #fff; border-color: transparent; }
.fei-navi__card--hub .fei-navi__lead { color: rgba(255, 255, 255, .7); }
.fei-navi__card--hub ul, .fei-navi__card--hub li { border-color: rgba(255, 255, 255, .12); }
.fei-navi__card--hub .fei-navi__link { color: #fff; }
.fei-navi__card--hub .fei-navi__link.is-soon { color: rgba(255, 255, 255, .6); }
.fei-navi__cta { margin-top: auto; display: inline-flex; justify-content: center; align-items: center; min-height: 50px; margin-top: 1.2rem; border-radius: 14px; background: var(--fei-grad); color: #fff; font-weight: 800; text-decoration: none; box-shadow: 0 14px 30px -12px rgba(26, 155, 215, .7); }
.fei-nav-find > a { color: var(--fei-blue) !important; opacity: 1 !important; font-weight: 800; }
@media (max-width: 960px) { .fei-navi__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fei-navi__intro { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .fei-navi__grid { grid-template-columns: minmax(0, 1fr); } }

/* タイムラインの見出し(左の列に収まる大きさ) */
.fei-timeline__heading { font-size: clamp(1.75rem, 3vw, 2.375rem); margin-top: .5rem; }
