/*
Theme Name: 隊共会 2026
Theme URI: https://taikyokai.or.jp/
Author: CREATE ONE
Description: 一般社団法人 自衛隊と共に歩む会（隊共会）のオリジナルテーマ。報道・ドキュメンタリー調の誌面と、力強いキャンペーン調の赤を組み合わせたデザイン。スマホでの読みやすさ、記事・動画の探しやすさ、イベント情報の使いやすさを重視しています。
Version: 1.0.1
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: taikyokai
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--red: #D7001C;
	--red-d: #B30017;
	--pink: #FF8A96;
	--navy: #14213A;
	--navy-2: #1E2F4F;
	--navy-3: #2A3D62;
	--ink: #1B2230;
	--ink-2: #2E3646;
	--mute: #5B6472;
	--mute-2: #8A93A3;
	--line: #DCE0E6;
	--line-2: #C9CFD8;
	--mist: #F2F4F7;
	--mist-2: #F7F8FA;
	--paper: #FFFFFF;
	--army: #4B6B3A;
	--navysv: #1E3F7A;
	--air: #2C6FB7;

	--f-sans: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	--f-serif: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
	--f-cond: "Barlow Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;

	--wrap: 1240px;
	--gut: 40px;
	--header-h: 76px;
	--bnav-h: 64px;
	--radius: 2px;
	--shadow: 0 18px 40px rgba(20, 33, 58, .18);
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	margin: 0;
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.75;
	color: var(--ink);
	background: var(--paper);
	font-feature-settings: "palt" 0;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: anywhere;
	line-break: strict;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; vertical-align: middle; }
a { color: var(--navy); text-decoration: none; transition: color .15s; }
a:hover { color: var(--red-d); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { line-height: 1.4; margin: 0; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 3px solid #FFB020; outline-offset: 2px; }
[hidden] { display: none !important; }
.tk-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tk-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--navy); color: #fff; padding: 10px 16px; font-weight: 700; }
.tk-skip:focus { top: 12px; color: #fff; }
.tk-main { display: block; outline: none; }

.tk-wrap { max-width: var(--wrap); margin: 0 auto; padding-left: max(var(--gut), env(safe-area-inset-left)); padding-right: max(var(--gut), env(safe-area-inset-right)); }
.tk-wrap--mid { max-width: 1160px; }
.tk-wrap--narrow { max-width: 880px; }

/* ==========================================================================
   Atoms
   ========================================================================== */
.tk-eyebrow { font-family: var(--f-cond); font-weight: 700; font-size: 15px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); line-height: 1.2; }
.tk-eyebrow--light { color: rgba(255, 255, 255, .85); font-size: 20px; }
.tk-eyebrow--pink { color: var(--pink); }
.tk-eyebrow--mute { color: var(--mute); font-size: 13px; }

.tk-date { font-family: var(--f-cond); font-size: 15px; letter-spacing: .06em; color: var(--mute); font-variant-numeric: tabular-nums; }
.tk-cat { font-size: 12px; font-weight: 700; color: var(--red); letter-spacing: .04em; }
.tk-svtag { font-size: 12px; color: var(--mute); border: 1px solid var(--line); padding: 0 6px; line-height: 1.6; }

.tk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; font-weight: 700; font-size: 15px; line-height: 1.3; border-radius: var(--radius); border: 1.5px solid transparent; text-align: center; transition: background .15s, color .15s, border-color .15s; }
.tk-btn--sm { min-height: 42px; padding: 0 16px; font-size: 14px; }
.tk-btn--block { display: flex; width: 100%; }
.tk-btn--red { background: var(--red); color: #fff; }
.tk-btn--red:hover { background: var(--red-d); color: #fff; }
.tk-btn--navy { background: var(--navy); color: #fff; }
.tk-btn--navy:hover { background: var(--navy-3); color: #fff; }
.tk-btn--line { border-color: var(--line-2); color: var(--navy); background: #fff; }
.tk-btn--line:hover { border-color: var(--navy); color: var(--navy); }
.tk-btn--white { background: #fff; color: var(--red-d); }
.tk-btn--white:hover { background: var(--navy); color: #fff; }
.tk-btn--ghost { border-color: rgba(255, 255, 255, .8); color: #fff; }
.tk-btn--ghost:hover { background: #fff; color: var(--red-d); }
.tk-linkbtn { border: 0; background: none; padding: 0; color: var(--red-d); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.tk-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; border-bottom: 2px solid var(--red); padding-bottom: 4px; white-space: nowrap; }

.tk-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.tk-chips--scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding: 2px 0 4px; }
.tk-chips--scroll::-webkit-scrollbar { display: none; }
.tk-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; font-size: 14px; font-weight: 500; color: var(--ink); background: #fff; white-space: nowrap; flex: none; transition: background .15s, color .15s, border-color .15s; }
.tk-chip:hover { border-color: var(--navy); color: var(--navy); }
.tk-chip.is-on, .tk-chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.tk-chip--sm { min-height: 32px; padding: 0 12px; font-size: 13px; font-weight: 700; }
.tk-chip.is-red { background: var(--red); border-color: var(--red); color: #fff; }
.tk-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.tk-dot--army { background: var(--army); }
.tk-dot--navy { background: var(--navysv); }
.tk-dot--air { background: var(--air); }

.tk-sv { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 24px; padding: 0 8px; font-size: 12px; font-weight: 700; color: #fff; border-radius: var(--radius); line-height: 1; background: var(--mute); }
.tk-sv--army { background: var(--army); }
.tk-sv--navy { background: var(--navysv); }
.tk-sv--air { background: var(--air); }
.tk-tag { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius); line-height: 1.5; }
.tk-tag--apply { background: #FCEBEC; color: var(--red-d); }
.tk-tag--past { background: var(--mist); color: var(--mute); }
.tk-tag--own { background: var(--red); color: #fff; }
.tk-ev.is-own { border-color: #F3C4CA; box-shadow: inset 0 0 0 1px #F3C4CA; }

.tk-ico { flex: none; }
.tk-empty { color: var(--mute); padding: 32px 0; }
.tk-empty--box { background: var(--mist); padding: 32px; display: flex; flex-direction: column; gap: 20px; color: var(--ink); }
.tk-note { background: var(--mist); padding: 18px 22px; font-size: 13px; line-height: 1.8; color: #4A5262; margin-top: 40px; }

/* thumbnails */
.tk-thumb { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--mist); }
.tk-noimg { position: relative; background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); overflow: hidden; }
.tk-noimg span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--f-cond); font-weight: 700; letter-spacing: .14em; color: rgba(255, 255, 255, .35); font-size: clamp(14px, 2.4vw, 22px); }

/* section heads */
.tk-shead { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.tk-shead__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tk-shead__title { font-family: var(--f-serif); font-weight: 800; font-size: 42px; line-height: 1.3; letter-spacing: .01em; text-wrap: balance; }
.tk-shead__desc { color: var(--mute); }

/* breadcrumb */
.tk-crumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0; font-size: 13px; color: var(--mute); line-height: 1.6; }
.tk-crumb li { display: inline-flex; min-width: 0; }
.tk-crumb li + li::before { content: "／"; margin: 0 .5em; color: var(--mute-2); }
.tk-crumb a { color: var(--mute); }
.tk-crumb a:hover { color: var(--red-d); }
.tk-crumb li:last-child span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40em; }
.tk-crumb--light ol, .tk-crumb--light a { color: #AEB8CA; }
.tk-crumb--light a:hover { color: #fff; }

/* ==========================================================================
   Header
   ========================================================================== */
.tk-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--line); backdrop-filter: saturate(1.4) blur(6px); transition: box-shadow .2s; }
.admin-bar .tk-header { top: 32px; }
.tk-header.is-scrolled { box-shadow: 0 6px 20px rgba(20, 33, 58, .08); }
.tk-header__inner { display: flex; align-items: center; gap: 28px; height: var(--header-h); }
.tk-logo { display: block; flex: none; }
.tk-logo__img { display: block; height: 40px; width: auto; }
.tk-gnav { margin-left: auto; }
.tk-gnav ul { list-style: none; display: flex; gap: 26px; }
.tk-gnav a { display: block; position: relative; font-size: 15px; font-weight: 500; padding: 8px 0; color: var(--ink); white-space: nowrap; }
.tk-gnav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--red); transform: scaleX(0); transition: transform .2s; }
.tk-gnav a:hover::after, .tk-gnav a.is-current::after { transform: scaleX(1); }
.tk-gnav a.is-current { color: var(--red); font-weight: 700; }
.tk-header__tools { display: flex; align-items: center; gap: 12px; flex: none; }
.tk-iconbtn { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); background: #fff; border-radius: var(--radius); color: var(--navy); padding: 0; }
.tk-iconbtn:hover { border-color: var(--navy); }
.tk-iconbtn[aria-expanded="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.tk-iconbtn--menu { display: none; background: var(--navy); color: #fff; border-color: var(--navy); }
.tk-header__cta { min-height: 46px; }

.tk-searchpanel { border-top: 1px solid var(--line); background: #fff; padding: 20px 0 22px; box-shadow: 0 12px 24px rgba(20, 33, 58, .08); }
.tk-searchpanel .tk-search { max-width: 720px; }
.tk-searchpanel__hint { margin-top: 12px; font-size: 13px; color: var(--mute); display: flex; gap: 6px 14px; flex-wrap: wrap; }
.tk-searchpanel__hint a { text-decoration: underline; text-underline-offset: 3px; }

.tk-search { display: flex; width: 100%; }
.tk-search input { flex: 1; min-width: 0; height: 50px; border: 1px solid var(--line-2); border-right: 0; padding: 0 16px; font-size: 16px; background: #fff; border-radius: var(--radius) 0 0 var(--radius); -webkit-appearance: none; appearance: none; }
.tk-search input:focus { outline: none; border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); }
.tk-search button { width: 56px; height: 50px; border: 0; background: var(--navy); color: #fff; display: grid; place-items: center; border-radius: 0 var(--radius) var(--radius) 0; flex: none; }
.tk-search button:hover { background: var(--red); }

/* drawer */
.tk-drawer { position: fixed; inset: 0; z-index: 100; background: rgba(14, 22, 38, .55); }
.tk-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 92vw); background: var(--navy); color: #fff; overflow-y: auto; padding: 16px 20px calc(32px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 20px; animation: tkSlide .22s ease-out; }
@keyframes tkSlide { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.tk-drawer__head { display: flex; align-items: center; justify-content: space-between; }
.tk-drawer__head .tk-eyebrow { color: var(--pink); }
.tk-drawer .tk-iconbtn--close { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .3); }
.tk-drawer .tk-search input { border-color: transparent; }
.tk-drawer .tk-search button { background: var(--red); }
.tk-drawer__nav ul { list-style: none; }
.tk-drawer__nav > ul > li { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.tk-drawer__nav a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; color: #fff; font-weight: 700; font-size: 16px; }
.tk-drawer__nav a::after { content: "→"; color: var(--pink); font-weight: 400; }
.tk-drawer__nav .sub-menu a { min-height: 44px; font-weight: 500; font-size: 14px; padding-left: 16px; color: #C5CDDB; }
.tk-drawer__cta { display: flex; flex-direction: column; gap: 10px; margin-top: auto; }
.tk-drawer__cta .tk-btn--line { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
body.tk-lock { overflow: hidden; }

/* ==========================================================================
   Front: hero
   ========================================================================== */
.tk-hero { position: relative; background: var(--red); }
.tk-hero__slides { position: relative; display: grid; }
.tk-hero__slide { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 600px; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.tk-hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease; }
.tk-hero__copy { background: var(--red); color: #fff; display: flex; align-items: center; background-image: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0) 0 22px, rgba(255, 255, 255, .035) 22px 24px); }
.tk-hero__copyin { padding: 72px 40px 136px max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut))); display: flex; flex-direction: column; gap: 26px; }
.tk-hero__title { text-wrap: balance; font-family: var(--f-serif); font-weight: 800; font-size: clamp(32px, 3.3vw, 52px); line-height: 1.36; letter-spacing: .02em; }
.tk-hero__text { font-size: 17px; line-height: 1.9; max-width: 30em; }
.tk-hero__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.tk-hero__media { position: relative; background: var(--navy); overflow: hidden; }
.tk-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 7s ease-out; }
.tk-hero__slide.is-active .tk-hero__media img { transform: scale(1); }
.tk-hero__ctrl { position: absolute; right: max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut))); bottom: 92px; display: flex; gap: 10px; align-items: center; z-index: 2; }
.tk-hero__dot { width: 36px; height: 24px; padding: 0; border: 0; background: transparent; position: relative; }
.tk-hero__dot::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 3px; margin-top: -1.5px; background: rgba(255, 255, 255, .5); }
.tk-hero__dot.is-active::before { background: #fff; }
.tk-hero__pause { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .7); background: rgba(20, 33, 58, .35); color: #fff; font-size: 10px; letter-spacing: -1px; display: grid; place-items: center; padding: 0; }
.tk-hero__pause.is-paused span::before { content: "▶"; font-size: 11px; letter-spacing: 0; }
.tk-hero__pause.is-paused span { font-size: 0; }

/* event bar */
.tk-evbar-wrap { position: relative; margin-top: -72px; z-index: 3; }
.tk-evbar { background: var(--navy); color: #fff; box-shadow: var(--shadow); display: grid; grid-template-columns: 220px minmax(0, 1fr) 200px; }
.tk-evbar__head { padding: 26px 28px; border-right: 1px solid rgba(255, 255, 255, .14); display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.tk-evbar__title { font-size: 18px; font-weight: 700; line-height: 1.4; }
.tk-evbar__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tk-evbar__item { color: #fff; padding: 22px 24px; border-right: 1px solid rgba(255, 255, 255, .14); display: flex; gap: 16px; align-items: flex-start; transition: background .15s; }
.tk-evbar__item:hover { background: var(--navy-2); color: #fff; }
.tk-evbar__body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.tk-evbar__meta { display: flex; gap: 8px; align-items: center; font-size: 12px; color: #AEB8CA; }
.tk-evbar__name { font-size: 15px; font-weight: 700; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tk-evbar__all { color: #fff; background: var(--red); display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; font-size: 15px; padding: 20px; text-align: center; }
.tk-evbar__all:hover { background: var(--red-d); color: #fff; }

.tk-dblock { flex: none; display: flex; flex-direction: column; align-items: center; min-width: 54px; text-align: center; line-height: 1; gap: 4px; }
.tk-dblock__m { font-family: var(--f-cond); font-size: 13px; letter-spacing: .1em; color: #AEB8CA; }
.tk-dblock__d { font-family: var(--f-cond); font-weight: 700; font-size: 38px; }
.tk-dblock__w { font-size: 12px; color: #AEB8CA; white-space: nowrap; }

/* sections */
.tk-sec { padding: 96px 0; }
.tk-sec > .tk-wrap { display: flex; flex-direction: column; gap: 32px; }
.tk-sec--act { padding-top: 104px; }
.tk-sec--navy { background: var(--navy); color: #fff; }
.tk-sec--navy a { color: #fff; }
.tk-sec--navy .tk-eyebrow { color: var(--pink); }
.tk-sec--navy .tk-shead__desc { color: #C5CDDB; }
.tk-sec--navy .tk-more { border-color: var(--pink); }
.tk-sec--navy .tk-cat { color: var(--pink); }
.tk-sec--navy .tk-date { color: #AEB8CA; }
.tk-sec--mist { background: var(--mist); }
.tk-sec--list { padding: 48px 0 96px; }
.tk-sec__more-sp { display: none; }

.tk-act { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; }
.tk-act__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; align-content: start; }
.tk-vids { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }

/* cards */
.tk-card { min-width: 0; }
.tk-card__link { display: flex; flex-direction: column; gap: 12px; color: var(--ink); height: 100%; }
.tk-card__link:hover { color: var(--ink); }
.tk-card__link:hover .tk-card__title { color: var(--red-d); }
.tk-card__link:hover .tk-thumb { transform: scale(1.03); }
.tk-card__media { position: relative; overflow: hidden; background: var(--mist); }
.tk-card__media .tk-thumb { transition: transform .5s ease; }
.tk-card__badge { position: absolute; left: 0; top: 0; background: var(--red); color: #fff; font-size: 13px; font-weight: 700; padding: 6px 12px; line-height: 1.4; }
.tk-card__play { position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; background: rgba(20, 33, 58, .86); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 10px; line-height: 1; }
.tk-card__meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; line-height: 1.4; }
.tk-card__title { font-family: var(--f-serif); font-size: 19px; font-weight: 700; line-height: 1.55; transition: color .15s; text-wrap: pretty; }
.tk-card__excerpt { color: var(--mute); font-size: 15px; }
.tk-card--feature .tk-thumb { aspect-ratio: 16 / 10; }
.tk-card--feature .tk-card__title { font-size: 30px; font-weight: 800; line-height: 1.45; text-wrap: balance; }
.tk-card--compact .tk-card__title { font-size: 17px; }
.tk-card--video .tk-thumb { aspect-ratio: 16 / 9; }
.tk-card--video .tk-card__link { color: #fff; }
.tk-card--video .tk-card__link:hover .tk-card__title { color: var(--pink); }
.tk-card--video .tk-card__title { font-size: 17px; }
.tk-card--video .tk-card__play { left: 12px; right: auto; bottom: 12px; width: 46px; height: 46px; border-radius: 50%; background: var(--red); padding: 0; justify-content: center; }
.tk-card--video .tk-card__play span { display: none; }

.tk-row__link { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; padding: 16px 0; align-items: start; color: var(--ink); }
.tk-row__title { font-family: var(--f-serif); font-size: 15px; font-weight: 700; line-height: 1.55; }

.tk-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 32px; }

/* news & messages */
.tk-two { display: grid !important; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 64px !important; align-items: start; }
.tk-news, .tk-msgs { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.tk-news .tk-shead__title, .tk-msgs .tk-shead__title { font-size: 34px; }
.tk-newslist { list-style: none; border-top: 2px solid var(--navy); }
.tk-newslist li { border-bottom: 1px solid var(--line); }
.tk-newslist a { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 20px; padding: 20px 0; align-items: baseline; font-weight: 700; line-height: 1.6; color: var(--ink); }
.tk-newslist a:hover { color: var(--red-d); }
.tk-msglist { display: flex; flex-direction: column; gap: 12px; }
.tk-msg { display: flex; gap: 14px; align-items: flex-start; background: var(--mist); padding: 18px 20px; color: var(--ink); transition: background .15s; }
.tk-msg:hover { background: #E8EBF0; color: var(--ink); }
.tk-msg__q { font-family: var(--f-serif); font-size: 44px; line-height: .8; color: var(--red); }
.tk-msg__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tk-msg__t { font-weight: 700; }
.tk-msgs > .tk-btn { align-self: flex-start; }

/* join band */
.tk-join { background: var(--red); color: #fff; }
.tk-join__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tk-join__item { color: #fff; padding: 64px 48px 64px 0; display: flex; flex-direction: column; gap: 14px; }
.tk-join__item + .tk-join__item { padding: 64px 0 64px 48px; border-left: 1px solid rgba(255, 255, 255, .3); }
.tk-join__item:hover { color: #fff; }
.tk-join__item:hover .tk-join__more { text-decoration: underline; text-underline-offset: 4px; }
.tk-join .tk-eyebrow { color: rgba(255, 255, 255, .85); }
.tk-join__title { font-family: var(--f-serif); font-size: 34px; font-weight: 800; line-height: 1.4; text-wrap: balance; }
.tk-join__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }

/* footer */
.tk-footer { background: var(--navy); color: #C5CDDB; padding: 64px 0 40px; font-size: 14px; position: relative; }
.tk-footer .tk-wrap { display: flex; flex-direction: column; gap: 40px; }
.tk-footer__top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.tk-footer__org { display: flex; flex-direction: column; gap: 8px; max-width: 440px; }
.tk-footer__name { font-size: 18px; font-weight: 700; color: #fff; }
.tk-footer__nav ul { list-style: none; display: grid; grid-template-columns: repeat(3, auto); gap: 12px 40px; }
.tk-footer__nav a { color: #fff; }
.tk-footer__nav a:hover { color: var(--pink); }
.tk-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 20px; font-size: 12px; display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
.tk-totop { position: fixed; right: 20px; bottom: 24px; z-index: 40; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--navy); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 16px rgba(20, 33, 58, .25); }
.tk-totop:hover { background: var(--red); }

/* bottom nav (SP) */
.tk-bnav { display: none; }

/* ==========================================================================
   Page head (archives / pages)
   ========================================================================== */
.tk-phead { background: var(--mist); padding: 44px 0 40px; }
.tk-phead__inner { display: flex; flex-direction: column; gap: 14px; }
.tk-phead__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.tk-phead__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; flex: 1 1 420px; }
.tk-phead__title { font-family: var(--f-serif); font-size: 46px; font-weight: 800; line-height: 1.3; text-wrap: balance; }
.tk-phead__desc { color: var(--mute); max-width: 40em; }
.tk-phead__search { width: 400px; max-width: 100%; }
.tk-phead--navy { background: var(--navy); color: #fff; }
.tk-phead--image { position: relative; color: #fff; background: var(--navy) var(--tk-head-img) center / cover no-repeat; padding: 120px 0 48px; }
.tk-phead--image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 22, 38, .2) 0%, rgba(14, 22, 38, .78) 100%); }
.tk-phead--image .tk-phead__inner { position: relative; }
.tk-phead--image .tk-crumb ol, .tk-phead--image .tk-crumb a { color: rgba(255, 255, 255, .85); }
.tk-phead--image .tk-eyebrow { color: var(--pink); }
.tk-phead--image .tk-phead__desc { color: rgba(255, 255, 255, .85); }

.tk-filterbar { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: var(--header-h); z-index: 20; padding: 14px 0; }
.admin-bar .tk-filterbar { top: calc(var(--header-h) + 32px); }

.tk-series-wrap { padding-top: 48px; }
.tk-series { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); background: var(--navy); color: #fff; overflow: hidden; }
.tk-series:hover { color: #fff; }
.tk-series:hover .tk-series__more { text-decoration: underline; text-underline-offset: 4px; }
.tk-series__media .tk-thumb { height: 100%; min-height: 280px; aspect-ratio: auto; }
.tk-series__body { padding: 40px 44px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.tk-series__title { font-family: var(--f-serif); font-size: 32px; font-weight: 800; line-height: 1.35; text-wrap: balance; }
.tk-series__desc { color: #C5CDDB; }
.tk-series__count { font-size: 14px; color: #AEB8CA; }
.tk-series__count b { color: #fff; font-family: var(--f-cond); font-size: 24px; margin-right: 2px; }
.tk-series__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }

.tk-listhead { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.tk-listhead__title { font-size: 18px; }
.tk-listhead__count { font-size: 14px; color: var(--mute); }

.tk-pager { margin-top: 24px; }
.tk-pager ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.tk-pager a, .tk-pager span { min-width: 48px; height: 48px; display: grid; place-items: center; padding: 0 16px; border: 1px solid var(--line); font-weight: 700; color: var(--navy); background: #fff; }
.tk-pager a:hover { border-color: var(--navy); }
.tk-pager .current { background: var(--navy); border-color: var(--navy); color: #fff; }
.tk-pager .dots { border: 0; min-width: 24px; padding: 0; }

/* ==========================================================================
   Article (column single)
   ========================================================================== */
.tk-progress { position: sticky; top: var(--header-h); z-index: 45; height: 3px; background: transparent; margin-bottom: -3px; }
.admin-bar .tk-progress { top: calc(var(--header-h) + 32px); }
.tk-progress span { display: block; height: 3px; width: 0; background: var(--red); }

.tk-article__head { padding: 40px 0 8px; }
.tk-article__head .tk-wrap { display: flex; flex-direction: column; gap: 18px; }
.tk-article__headin { max-width: 920px; display: flex; flex-direction: column; gap: 18px; }
.tk-article__tags { display: flex; gap: 8px; flex-wrap: wrap; }
.tk-article__title { font-family: var(--f-serif); font-size: 44px; font-weight: 800; line-height: 1.42; text-wrap: balance; letter-spacing: .01em; }
.tk-article__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; font-size: 13px; color: var(--mute); }
.tk-article__meta .tk-date { font-size: 16px; }
.tk-article__hero { margin: 28px auto 0; }
.tk-article__heroimg { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.tk-article__hero figcaption { font-size: 13px; color: var(--mute); padding: 10px 0; border-bottom: 1px solid var(--line); }
.tk-article__hero--inline { margin: 24px 0 0; }
.tk-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 72px; padding-top: 24px; padding-bottom: 72px; }
.tk-article__main { min-width: 0; max-width: 740px; }
.tk-article__rail { display: flex; flex-direction: column; gap: 24px; position: sticky; top: calc(var(--header-h) + 24px); align-self: start; }
.admin-bar .tk-article__rail { top: calc(var(--header-h) + 56px); }
.tk-article__foot { margin-top: 40px; display: flex; gap: 12px; flex-wrap: wrap; }
.tk-article--simple .tk-article__head { padding-bottom: 24px; }
.tk-article--simple .tk-wrap > .tk-entry { padding-bottom: 8px; }
.tk-article--simple { padding-bottom: 72px; }

.tk-toc { border-top: 3px solid var(--navy); padding-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.tk-toc ol { list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.6; counter-reset: toc; }
.tk-toc li { counter-increment: toc; display: grid; grid-template-columns: 22px 1fr; }
.tk-toc li::before { content: counter(toc, decimal-leading-zero); font-family: var(--f-cond); font-weight: 700; color: var(--mute-2); font-size: 13px; padding-top: 1px; }
.tk-toc a { color: var(--ink); }
.tk-toc a.is-active { color: var(--red); font-weight: 700; }
.tk-toc-sp { display: none; border: 1px solid var(--line); margin-bottom: 8px; }
.tk-toc-sp summary { list-style: none; display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: 0 16px; font-weight: 700; cursor: pointer; }
.tk-toc-sp summary::-webkit-details-marker { display: none; }
.tk-toc-sp summary::after { content: "▾"; transition: transform .2s; }
.tk-toc-sp[open] summary::after { transform: rotate(180deg); }
.tk-toc-sp ol { padding: 0 16px 16px 36px; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.6; }

.tk-railbox { background: var(--navy); color: #fff; padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.tk-railbox__title { font-family: var(--f-serif); font-size: 20px; font-weight: 800; }
.tk-railbox__count { font-size: 13px; color: #AEB8CA; }
.tk-railbox__link { color: #fff; font-weight: 700; font-size: 14px; display: inline-flex; gap: 6px; align-items: center; margin-top: 6px; }
.tk-railbox__link:hover { color: var(--pink); }

.tk-share { display: flex; gap: 8px; flex-wrap: wrap; }
.tk-share__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); background: #fff; font-size: 13px; font-weight: 700; color: var(--navy); border-radius: var(--radius); }
.tk-share__btn:hover { border-color: var(--navy); }

.tk-pn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 32px; border-top: 1px solid var(--line); padding-top: 24px; }
.tk-pn__item { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--line); color: var(--ink); }
.tk-pn__item:hover { border-color: var(--navy); color: var(--ink); }
.tk-pn__item--next { grid-column: 2; text-align: right; }
.tk-pn__label { font-size: 12px; font-weight: 700; color: var(--red); }
.tk-pn__title { font-family: var(--f-serif); font-weight: 700; font-size: 15px; line-height: 1.55; }

/* ==========================================================================
   Entry content (本文)
   ========================================================================== */
.tk-entry { font-size: 17px; line-height: 2; color: var(--ink); }
.tk-entry > * + * { margin-top: 1.4em; }
.tk-entry p { margin: 0 0 1.4em; }
.tk-entry > *:last-child { margin-bottom: 0; }
.tk-entry h2 { font-family: var(--f-serif); font-size: 28px; font-weight: 800; line-height: 1.5; margin: 2.2em 0 .8em; padding-top: 22px; border-top: 3px solid var(--navy); position: relative; }
.tk-entry h2::before { content: ""; position: absolute; left: 0; top: -3px; width: 56px; height: 3px; background: var(--red); }
.tk-entry h3 { font-size: 21px; font-weight: 700; line-height: 1.55; margin: 2em 0 .7em; padding-left: 14px; border-left: 4px solid var(--red); }
.tk-entry h4 { font-size: 18px; font-weight: 700; margin: 1.6em 0 .6em; }
.tk-entry a { color: var(--red-d); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.tk-entry a:hover { color: var(--navy); }
.tk-entry ul, .tk-entry ol { padding-left: 1.5em; margin: 0 0 1.4em; }
.tk-entry li + li { margin-top: .35em; }
.tk-entry blockquote { margin: 1.6em 0; padding: 20px 24px; background: var(--mist); border-left: 4px solid var(--navy); color: var(--ink-2); }
.tk-entry blockquote p:last-child { margin-bottom: 0; }
.tk-entry figure { margin: 1.8em 0; }
.tk-entry figcaption, .tk-entry .wp-caption-text { font-size: 13px; color: var(--mute); line-height: 1.6; margin-top: 8px; }
.tk-entry img { max-width: 100%; height: auto; }
.tk-entry .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.tk-entry .alignleft { float: left; margin: .4em 1.6em 1em 0; max-width: 50%; }
.tk-entry .alignright { float: right; margin: .4em 0 1em 1.6em; max-width: 50%; }
.tk-entry::after { content: ""; display: table; clear: both; }
.tk-entry table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; margin: 1.6em 0; display: block; overflow-x: auto; }
.tk-entry table tbody, .tk-entry table thead { display: table; width: 100%; }
.tk-entry th, .tk-entry td { border: 1px solid var(--line); padding: 12px 14px; text-align: left; vertical-align: top; }
.tk-entry th { background: var(--mist); font-weight: 700; white-space: nowrap; }
.tk-entry .wp-block-table td:first-child { background: var(--mist-2); font-weight: 700; width: 28%; }
.tk-entry hr, .tk-entry .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }
.tk-entry iframe { display: block; max-width: 100%; }
.tk-entry .yt-embed { margin: 1.8em 0; background: #0E1626; }
.tk-entry .wp-block-embed__wrapper { position: relative; }
.tk-entry .wp-block-embed.is-type-video .wp-block-embed__wrapper { aspect-ratio: 16 / 9; }
.tk-entry .wp-block-embed.is-type-video iframe { width: 100%; height: 100%; }
.tk-entry .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.6em 0; }
.tk-entry .wp-block-button__link, .tk-entry .wp-element-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; background: var(--red); color: #fff !important; font-weight: 700; text-decoration: none !important; border-radius: var(--radius); font-size: 16px; line-height: 1.4; }
.tk-entry .wp-block-button__link:hover { background: var(--red-d); }
.tk-entry .has-small-font-size { font-size: 14px; }
.tk-entry strong, .tk-entry b { font-weight: 700; }
.tk-entry mark, .tk-entry .marker { background: linear-gradient(transparent 60%, #FFE08A 60%); padding: 0 2px; }
.tk-entry--message { font-family: var(--f-serif); font-size: 19px; line-height: 2.1; }
.tk-entry--page { padding: 56px 0 96px; }
.tk-pagebody { background: #fff; }

/* 旧テーマのページ内クラス（入会案内など）を新デザインに合わせる */
.tk-entry .h2ttlTop { background: var(--navy) !important; color: #fff; border: 0; padding: 14px 20px !important; font-family: var(--f-serif); font-size: 22px !important; line-height: 1.5; margin: 2em 0 1em !important; }
.tk-entry .h2ttlTop::before { display: none; }
.tk-entry .h3ttlTop { border-left: 4px solid var(--red) !important; padding: 2px 0 2px 14px !important; font-size: 19px !important; }
.tk-entry .txt { line-height: 2; margin-bottom: 1.4em; }
.tk-entry .entry_btn { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 1.4em; }
.tk-entry .entry_btn a { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; background: var(--red); color: #fff; font-weight: 700; text-decoration: none; border-radius: var(--radius); }
.tk-entry .entry_btn a:hover { background: var(--red-d); }

/* forms (Contact Form 7 など) */
.tk-entry input[type="text"], .tk-entry input[type="email"], .tk-entry input[type="tel"], .tk-entry input[type="url"], .tk-entry input[type="number"], .tk-entry input[type="date"], .tk-entry select, .tk-entry textarea {
	width: 100%; max-width: 100%; min-height: 50px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: var(--radius); background: #fff; font-size: 16px; line-height: 1.6;
}
.tk-entry textarea { min-height: 180px; }
.tk-entry input:focus, .tk-entry select:focus, .tk-entry textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(20, 33, 58, .12); }
.tk-entry input[type="submit"], .tk-entry button[type="submit"], .tk-entry .wpcf7-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; min-width: 240px; padding: 0 32px; background: var(--red); color: #fff; font-weight: 700; font-size: 16px; border: 0; border-radius: var(--radius); cursor: pointer; }
.tk-entry input[type="submit"]:hover, .tk-entry .wpcf7-submit:hover { background: var(--red-d); }
.tk-entry .wpcf7-form p { margin-bottom: 1.2em; }
.tk-entry .wpcf7-form label { font-weight: 700; display: block; }
.tk-entry .wpcf7-list-item { margin: 0 1em 0 0; }
.tk-entry .wpcf7-not-valid-tip { font-size: 14px; color: var(--red-d); margin-top: 4px; }
.tk-entry .wpcf7-response-output { margin: 1.4em 0 0 !important; padding: 14px 16px !important; border-width: 2px !important; }

/* ==========================================================================
   Events
   ========================================================================== */
.tk-evhead { background: var(--navy); color: #fff; padding: 44px 0 0; }
.tk-evhead .tk-wrap { display: flex; flex-direction: column; gap: 22px; }
.tk-evhead__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.tk-evhead__text { display: flex; flex-direction: column; gap: 8px; flex: 1 1 420px; min-width: 0; }
.tk-evhead__title { font-family: var(--f-serif); font-size: 46px; font-weight: 800; line-height: 1.25; }
.tk-evhead__desc { color: #C5CDDB; max-width: 40em; }
.tk-evhead__stats { display: flex; gap: 28px; margin: 0; text-align: right; }
.tk-evhead__stats div { display: flex; flex-direction: column-reverse; }
.tk-evhead__stats dt { font-size: 13px; color: #AEB8CA; }
.tk-evhead__stats dd { margin: 0; font-family: var(--f-cond); font-size: 46px; font-weight: 700; line-height: 1; }
.tk-evhead__stats dd small { font-family: var(--f-sans); font-size: 14px; font-weight: 500; margin-left: 2px; }
.tk-evhead__stats .is-pink dd { color: var(--pink); }
.tk-viewtabs { display: flex; gap: 4px; margin-top: 4px; }
.tk-viewtabs button { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 22px; font-weight: 700; font-size: 15px; border: 0; background: transparent; color: #fff; border-radius: var(--radius) var(--radius) 0 0; }
.tk-viewtabs button:hover { background: rgba(255, 255, 255, .08); }
.tk-viewtabs button[aria-selected="true"] { background: var(--mist-2); color: var(--red); }

.tk-evfilter { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: var(--header-h); z-index: 20; }
.admin-bar .tk-evfilter { top: calc(var(--header-h) + 32px); }
.tk-evfilter .tk-wrap { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; padding-bottom: 12px; }
.tk-evfilter__row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tk-evfilter__label { font-size: 13px; font-weight: 700; color: var(--mute); white-space: nowrap; min-width: 30px; }
.tk-evfilter__sep { width: 1px; height: 28px; background: var(--line); margin: 0 6px; }
.tk-evfilter__select { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.tk-evfilter__select select { height: 40px; border: 1px solid var(--line-2); padding: 0 34px 0 12px; font-size: 14px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2314213A' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 12px center no-repeat; -webkit-appearance: none; appearance: none; border-radius: var(--radius); }
.tk-check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; cursor: pointer; margin-left: auto; white-space: nowrap; }
.tk-check input { width: 18px; height: 18px; accent-color: var(--red); }
.tk-evfilter__status { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 13px; color: var(--mute); border-top: 1px dashed var(--line); padding-top: 8px; }
.tk-evfilter__status b, .tk-evfilter__status [data-tk-count] { font-family: var(--f-cond); font-size: 18px; font-weight: 700; color: var(--navy); }
html:not(.tk-js) .tk-evfilter, html:not(.tk-js) .tk-viewtabs, html:not(.tk-js) .tk-minical { display: none; }

.tk-evbody { background: var(--mist-2); padding: 40px 0 96px; }
.tk-evlayout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; }
.tk-evlayout.is-wide { grid-template-columns: minmax(0, 1fr); }
.tk-evlayout.is-wide .tk-evside { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.tk-evlayout.is-wide .tk-minical { display: none; }
.tk-evmain { min-width: 0; }
.tk-evpanel { display: flex; flex-direction: column; gap: 36px; }
.tk-evgroup { display: flex; flex-direction: column; gap: 12px; }
.tk-evgroup__head { display: flex; align-items: baseline; gap: 14px; font-size: 18px; border-bottom: 2px solid var(--navy); padding-bottom: 10px; }
.tk-evgroup__big { font-family: var(--f-cond); font-size: 30px; font-weight: 700; line-height: 1; }
.tk-evgroup__n { margin-left: auto; font-size: 13px; font-weight: 500; color: var(--mute); }
.tk-evgroup__list { display: flex; flex-direction: column; gap: 12px; }

.tk-ev { background: #fff; border: 1px solid #E3E6EB; border-left: 6px solid var(--mute-2); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; transition: box-shadow .15s; }
.tk-ev:hover { box-shadow: 0 8px 20px rgba(20, 33, 58, .08); }
.tk-ev--army { border-left-color: var(--army); }
.tk-ev--navy { border-left-color: var(--navysv); }
.tk-ev--air { border-left-color: var(--air); }
.tk-ev__main { padding: 18px 22px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tk-ev__tags { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tk-ev__kind { font-size: 13px; color: var(--mute); }
.tk-ev__title { font-size: 19px; line-height: 1.5; font-weight: 700; }
.tk-ev__title a { color: var(--ink); }
.tk-ev__title a:hover { color: var(--red-d); }
.tk-ev__info { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 14px; color: #3B4352; line-height: 1.6; }
.tk-ev__info > span { display: inline-flex; gap: 6px; align-items: flex-start; }
.tk-ev__info .tk-ico { margin-top: 3px; color: var(--mute-2); }
.tk-ev__actions { padding: 18px 22px; display: flex; flex-direction: column; gap: 8px; justify-content: center; border-left: 1px solid #EEF0F3; min-width: 150px; }

.tk-evside { display: flex; flex-direction: column; gap: 20px; position: sticky; top: calc(var(--header-h) + 150px); align-self: start; }
.tk-evside__note { font-size: 12px; color: var(--mute); line-height: 1.8; }
.tk-minical { background: #fff; border: 1px solid #E3E6EB; padding: 18px; }
.tk-cal__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.tk-cal__title { font-family: var(--f-cond); font-size: 22px; font-weight: 700; letter-spacing: .04em; }
.tk-cal__nav { width: 36px; height: 36px; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; padding: 0; border-radius: var(--radius); }
.tk-cal__nav:disabled { opacity: .35; cursor: default; }
.tk-cal__dow, .tk-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; }
.tk-cal__dow { font-size: 12px; color: var(--mute); margin-bottom: 4px; }
.tk-cal__dow span:first-child { color: var(--red); }
.tk-cal__dow span:last-child { color: var(--air); }
.tk-cal__grid { gap: 2px; }
.tk-cal__day { height: 40px; border: 0; background: transparent; font-family: var(--f-cond); font-size: 16px; font-weight: 700; position: relative; padding: 0; color: var(--ink); border-radius: var(--radius); }
.tk-cal__day.is-past { color: #B5BCC7; }
.tk-cal__day.has-ev { background: #FCEBEC; }
.tk-cal__day.has-ev::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--red); }
.tk-cal__day.is-today { background: var(--navy); color: #fff; }
.tk-cal__day.is-sel { outline: 2px solid var(--red); outline-offset: -2px; }
.tk-cal__day:disabled { cursor: default; }
.tk-cal__legend { display: flex; gap: 14px; font-size: 12px; color: var(--mute); margin-top: 10px; align-items: center; }
.tk-cal__legend i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--red); margin-right: 4px; }

.tk-bigcal { background: #fff; border: 1px solid #E3E6EB; padding: 20px; }
.tk-bigcal .tk-cal__grid { gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.tk-bigcal .tk-cal__cell { min-height: 112px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 6px; text-align: left; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tk-bigcal .tk-cal__cell.is-past { background: var(--mist-2); }
.tk-bigcal .tk-cal__cell.is-today { box-shadow: inset 0 0 0 2px var(--navy); }
.tk-bigcal .tk-cal__num { font-family: var(--f-cond); font-weight: 700; font-size: 15px; color: var(--mute); }
.tk-bigcal .tk-cal__ev { display: block; font-size: 11px; line-height: 1.35; color: #fff; padding: 3px 5px; border-radius: var(--radius); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-bigcal .tk-cal__ev:hover { color: #fff; filter: brightness(1.15); }
.tk-bigcal .tk-cal__more { font-size: 11px; color: var(--mute); border: 0; background: none; padding: 0; text-align: left; text-decoration: underline; }

.tk-map { height: 620px; background: #DDE5EE; border: 1px solid #E3E6EB; z-index: 0; }
.tk-map__note { font-size: 13px; color: var(--mute); }
.tk-mappin { width: 18px; height: 18px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .3); }
.leaflet-popup-content { font-family: var(--f-sans); font-size: 13px; line-height: 1.6; margin: 12px 14px; }
.tk-pop__date { font-weight: 700; color: var(--mute); }
.tk-pop__t { display: block; font-weight: 700; font-size: 14px; color: var(--navy); margin: 2px 0 6px; }
.tk-pop__link { font-weight: 700; color: var(--red-d); }

.tk-ownbox { background: var(--navy); color: #fff; padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.tk-ownbox__title { font-weight: 700; }
.tk-ownbox__item { color: #fff; display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.6; }
.tk-ownbox__item:hover { color: var(--pink); }
.tk-ownbox__date { font-family: var(--f-cond); font-size: 24px; font-weight: 700; color: var(--pink); line-height: 1; flex: none; }
.tk-ownbox__more { color: #C5CDDB; font-size: 13px; font-weight: 700; display: inline-flex; gap: 6px; align-items: center; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 10px; }
.tk-evextra { padding-top: 48px; }

/* event single */
.tk-evsingle__head { background: var(--navy); color: #fff; padding: 36px 0 40px; border-bottom: 6px solid var(--mute-2); }
.tk-evsingle__head--army { border-bottom-color: var(--army); }
.tk-evsingle__head--navy { border-bottom-color: var(--navysv); }
.tk-evsingle__head--air { border-bottom-color: var(--air); }
.tk-evsingle__head .tk-wrap { display: flex; flex-direction: column; gap: 20px; }
.tk-evsingle__row { display: flex; gap: 28px; align-items: center; }
.tk-evsingle__row .tk-dblock { min-width: 84px; padding-right: 28px; border-right: 1px solid rgba(255, 255, 255, .2); }
.tk-evsingle__row .tk-dblock__d { font-size: 64px; }
.tk-evsingle__row .tk-dblock__m { font-size: 16px; }
.tk-evsingle__row .tk-dblock__w { font-size: 14px; }
.tk-evsingle__text { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.tk-evsingle__text .tk-ev__kind { color: #C5CDDB; }
.tk-evsingle__title { font-family: var(--f-serif); font-size: 36px; font-weight: 800; line-height: 1.45; text-wrap: balance; }
.tk-evsingle__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; padding-top: 40px; padding-bottom: 80px; }
.tk-evsingle__main { min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.tk-evsingle__main .tk-note { margin-top: 0; }
.tk-evinfo { margin: 0; border-top: 2px solid var(--navy); }
.tk-evinfo div { display: grid; grid-template-columns: 120px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.tk-evinfo dt { font-weight: 700; padding: 14px 0; color: var(--mute); font-size: 14px; }
.tk-evinfo dd { margin: 0; padding: 14px 0; font-weight: 700; }
.tk-evsingle__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.tk-evmap { height: 320px; border: 1px solid var(--line); z-index: 0; background: #DDE5EE; }
.tk-evsingle__side { display: flex; flex-direction: column; gap: 16px; }
.tk-side-title { font-size: 16px; font-weight: 700; border-bottom: 2px solid var(--navy); padding-bottom: 8px; }
.tk-minilist { list-style: none; display: flex; flex-direction: column; }
.tk-minilist li { border-bottom: 1px solid var(--line); }
.tk-minilist a { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; color: var(--ink); }
.tk-minilist a:hover .tk-minilist__t { color: var(--red-d); }
.tk-minilist__date { font-size: 13px; font-weight: 700; color: var(--mute); }
.tk-minilist__t { font-weight: 700; line-height: 1.5; }
.tk-minilist__p { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--mute); }

/* search results / 404 */
.tk-searchlist { display: flex; flex-direction: column; border-top: 2px solid var(--navy); }
.tk-sresult { border-bottom: 1px solid var(--line); }
.tk-sresult a { display: flex; gap: 24px; padding: 22px 0; color: var(--ink); }
.tk-sresult a:hover .tk-sresult__title { color: var(--red-d); }
.tk-sresult__media { width: 200px; flex: none; }
.tk-sresult__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tk-sresult__title { font-family: var(--f-serif); font-size: 20px; font-weight: 700; line-height: 1.5; }
.tk-sresult__ex { font-size: 14px; color: var(--mute); }
.tk-404 { display: flex; flex-direction: column; gap: 28px; }
.tk-404__links { list-style: none; display: flex; gap: 12px; flex-wrap: wrap; }
.tk-newslist--page a { grid-template-columns: 120px minmax(0, 1fr); }

/* 応援メッセージ＆エピソード */
.tk-msggrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tk-msgcard a { display: flex; flex-direction: column; gap: 8px; height: 100%; background: var(--mist); padding: 22px 24px 20px; color: var(--ink); transition: background .15s; }
.tk-msgcard a:hover { background: #E8EBF0; color: var(--ink); }
.tk-msgcard .tk-msg__q { font-size: 48px; height: 22px; }
.tk-msgcard__t { font-family: var(--f-serif); font-size: 18px; font-weight: 700; line-height: 1.6; }
.tk-msgcard__ex { font-size: 14px; color: var(--mute); line-height: 1.8; flex: 1; }
.tk-chip__n { font-family: var(--f-cond); font-size: 13px; color: var(--mute-2); margin-left: 2px; }
.tk-chip.is-on .tk-chip__n { color: #AEB8CA; }
.tk-phead__cta { flex: none; }

/* プラグイン「応援メッセージ」一覧テンプレートの見た目を合わせる */
.tk-theme .tkek-ep-header h1, .tk-theme .tkek-ep-header h2 { font-family: var(--f-serif); font-weight: 800; }
.tk-theme .tkek-ep-card__title, .tk-theme .tkek-ep-modal__title { font-family: var(--f-serif); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
	.tk-gnav ul { gap: 18px; }
	.tk-gnav a { font-size: 14px; }
	.tk-header__inner { gap: 20px; }
	.tk-evbar { grid-template-columns: 180px minmax(0, 1fr) 170px; }
	.tk-evbar__item { padding: 20px 16px; }
}

@media (max-width: 1060px) {
	.tk-gnav { display: none; }
	.tk-iconbtn--menu { display: grid; }
	.tk-header__tools { margin-left: auto; }
}

@media (max-width: 900px) {
	:root { --gut: 20px; --header-h: 60px; }
	body { font-size: 15px; padding-bottom: calc(var(--bnav-h) + env(safe-area-inset-bottom)); }
	.admin-bar .tk-header { top: 0; }
	.tk-logo__img { height: 30px; }
	.tk-header__cta { display: none; }
	.tk-iconbtn--search { border: 0; }
	.tk-header__tools { gap: 6px; }

	.tk-shead__title { font-size: 26px; }
	.tk-eyebrow { font-size: 14px; }
	.tk-more { font-size: 14px; }
	.tk-sec { padding: 48px 0; }
	.tk-sec > .tk-wrap { gap: 20px; }
	.tk-sec--act { padding-top: 40px; }
	.tk-sec__more-sp { display: block; }
	.tk-sec--act .tk-shead .tk-more { display: none; }

	/* hero */
	.tk-hero__slide { grid-template-columns: 1fr; min-height: 0; }
	.tk-hero__media { order: -1; height: 250px; }
	.tk-hero__copyin { padding: 28px var(--gut) 56px; gap: 16px; }
	.tk-eyebrow--light { font-size: 15px; }
	.tk-hero__title { font-size: 30px; line-height: 1.42; }
	.tk-hero__text { font-size: 15px; line-height: 1.85; }
	.tk-hero__btns .tk-btn { flex: 1 1 100%; min-height: 50px; }
	.tk-hero__btns .tk-btn--ghost { display: none; }
	.tk-hero__ctrl { left: var(--gut); right: auto; bottom: 18px; }

	/* event bar → horizontal cards */
	.tk-evbar-wrap { margin-top: 0; background: var(--navy); padding: 28px 0 24px; }
	.tk-evbar-wrap .tk-wrap { padding: 0; }
	.tk-evbar { display: flex; flex-direction: column; box-shadow: none; gap: 14px; }
	.tk-evbar__head { padding: 0 var(--gut); border: 0; flex-direction: row; justify-content: space-between; align-items: center; }
	.tk-evbar__head .tk-eyebrow { display: none; }
	.tk-evbar__list { display: flex; gap: 12px; overflow-x: auto; padding: 0 var(--gut) 4px; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gut); scrollbar-width: none; }
	.tk-evbar__list::-webkit-scrollbar { display: none; }
	.tk-evbar__item { flex: none; width: 268px; background: var(--navy-2); border: 0; padding: 16px; scroll-snap-align: start; }
	.tk-dblock__d { font-size: 34px; }
	.tk-evbar__all { margin: 0 var(--gut); min-height: 50px; padding: 0 20px; }

	.tk-act, .tk-two { grid-template-columns: 1fr; gap: 28px !important; }
	.tk-act__grid { grid-template-columns: 1fr; gap: 0; }
	.tk-act__grid .tk-card { border-top: 1px solid var(--line); }
	.tk-act__grid .tk-card__link { display: grid; grid-template-columns: 112px minmax(0, 1fr); grid-template-areas: "m meta" "m t"; gap: 4px 14px; padding: 16px 0; align-items: start; }
	.tk-act__grid .tk-card__media { grid-area: m; }
	.tk-act__grid .tk-card__media .tk-thumb { height: 75px; aspect-ratio: auto; }
	.tk-act__grid .tk-card__play { right: 4px; bottom: 4px; padding: 3px 5px; }
	.tk-act__grid .tk-card__play span { display: none; }
	.tk-act__grid .tk-card__meta { grid-area: meta; gap: 8px; }
	.tk-act__grid .tk-card__title { grid-area: t; font-size: 15px; }
	.tk-act__grid .tk-svtag { display: none; }
	.tk-card--feature .tk-thumb { aspect-ratio: 3 / 2; }
	.tk-card--feature .tk-card__title { font-size: 21px; }
	.tk-card--feature .tk-card__excerpt { display: none; }

	.tk-vids { display: flex; gap: 12px; overflow-x: auto; margin: 0 calc(var(--gut) * -1); padding: 0 var(--gut) 6px; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gut); scrollbar-width: none; }
	.tk-vids::-webkit-scrollbar { display: none; }
	.tk-vids .tk-card { flex: none; width: 250px; scroll-snap-align: start; }
	.tk-card--video .tk-card__title { font-size: 15px; }

	.tk-news .tk-shead__title, .tk-msgs .tk-shead__title { font-size: 24px; }
	.tk-newslist a { grid-template-columns: 1fr; gap: 2px; padding: 14px 0; }
	.tk-msgs > .tk-btn { align-self: stretch; }

	.tk-join__grid { grid-template-columns: 1fr; }
	.tk-join__item, .tk-join__item + .tk-join__item { padding: 32px 0; border-left: 0; }
	.tk-join__item + .tk-join__item { border-top: 1px solid rgba(255, 255, 255, .3); }
	.tk-join__title { font-size: 23px; }

	.tk-footer { padding: 40px 0 28px; font-size: 13px; }
	.tk-footer__nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
	.tk-footer__nav a { display: block; padding: 4px 0; }
	.tk-totop { bottom: calc(var(--bnav-h) + 16px + env(safe-area-inset-bottom)); right: 14px; width: 44px; height: 44px; }

	.tk-bnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; height: calc(var(--bnav-h) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(20, 33, 58, .08); }
	.tk-bnav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 11px; font-weight: 700; color: var(--navy); }
	.tk-bnav a[aria-current="page"] { color: var(--red); }
	.tk-bnav .tk-bnav__join { background: var(--red); color: #fff; }

	/* page heads */
	.tk-phead { padding: 24px 0 24px; }
	.tk-phead__title { font-size: 28px; }
	.tk-phead__desc { font-size: 14px; }
	.tk-phead__search { width: 100%; }
	.tk-phead--image { padding: 88px 0 28px; }
	.tk-filterbar { padding: 10px 0; }
	.tk-filterbar .tk-chips--scroll { margin: 0 calc(var(--gut) * -1); padding-left: var(--gut); padding-right: var(--gut); }
	.tk-chips--scroll.tk-chips { margin-right: calc(var(--gut) * -1); padding-right: var(--gut); }
	.tk-chip { min-height: 40px; padding: 0 14px; }

	.tk-series-wrap { padding-top: 24px; }
	.tk-series { grid-template-columns: 1fr; }
	.tk-series__media .tk-thumb { min-height: 0; aspect-ratio: 16 / 9; }
	.tk-series__body { padding: 22px 20px 24px; gap: 8px; }
	.tk-series__title { font-size: 24px; }
	.tk-series__desc { font-size: 14px; }

	.tk-sec--list { padding: 28px 0 56px; }
	.tk-grid3 { grid-template-columns: 1fr; gap: 0; }
	.tk-grid3 .tk-card { border-top: 1px solid var(--line); }
	.tk-grid3 .tk-card:last-child { border-bottom: 1px solid var(--line); }
	.tk-grid3 .tk-card__link { display: grid; grid-template-columns: 120px minmax(0, 1fr); grid-template-areas: "m meta" "m t"; gap: 4px 14px; padding: 16px 0; align-items: start; }
	.tk-grid3 .tk-card__media { grid-area: m; }
	.tk-grid3 .tk-card__media .tk-thumb { height: 80px; aspect-ratio: auto; }
	.tk-grid3 .tk-card__play { right: 4px; bottom: 4px; padding: 3px 5px; }
	.tk-grid3 .tk-card__play span { display: none; }
	.tk-grid3 .tk-card__meta { grid-area: meta; gap: 8px; }
	.tk-grid3 .tk-card__title { grid-area: t; font-size: 16px; }
	.tk-grid3 .tk-card__excerpt { display: none; }
	.tk-pager a, .tk-pager span { min-width: 44px; height: 44px; padding: 0 12px; }

	/* article */
	.tk-progress { top: var(--header-h); }
	.tk-article__head { padding: 20px 0 4px; }
	.tk-article__head .tk-wrap, .tk-article__headin { gap: 12px; }
	.tk-article__title { font-size: 25px; line-height: 1.5; }
	.tk-article__hero { margin-top: 16px; padding: 0; }
	.tk-article__layout { grid-template-columns: 1fr; gap: 0; padding-top: 16px; padding-bottom: 48px; }
	.tk-article__rail { position: static; margin-top: 32px; }
	.tk-article__rail .tk-toc { display: none; }
	.tk-toc-sp { display: block; }
	.tk-entry { font-size: 17px; line-height: 2; }
	.tk-entry h2 { font-size: 22px; margin-top: 2em; padding-top: 18px; }
	.tk-entry h2::before { width: 44px; }
	.tk-entry h3 { font-size: 19px; }
	.tk-entry .alignleft, .tk-entry .alignright { float: none; margin: 1.4em auto; max-width: 100%; }
	.tk-entry .yt-embed { margin-left: calc(var(--gut) * -1); margin-right: calc(var(--gut) * -1); }
	.tk-entry .wp-block-table td:first-child { width: 34%; }
	.tk-entry--page { padding: 32px 0 56px; }
	.tk-entry input[type="submit"], .tk-entry .wpcf7-submit { width: 100%; }
	.tk-pn { grid-template-columns: 1fr; }
	.tk-pn__item--next { grid-column: auto; }
	.tk-share { width: 100%; }
	.tk-share__btn { flex: 1 1 0; padding: 0 8px; }

	/* events */
	.tk-evhead { padding-top: 22px; }
	.tk-evhead .tk-wrap { gap: 14px; }
	.tk-evhead__title { font-size: 28px; }
	.tk-evhead__desc { font-size: 14px; display: none; }
	.tk-evhead__stats { text-align: left; gap: 24px; }
	.tk-evhead__stats dd { font-size: 30px; }
	.tk-evhead__row { gap: 10px; }
	.tk-viewtabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 calc(var(--gut) * -1); gap: 0; }
	.tk-viewtabs button { justify-content: center; padding: 0 8px; border-radius: 0; }
	.tk-evfilter { position: static; }
	.tk-evfilter .tk-wrap { padding-top: 10px; padding-bottom: 8px; gap: 8px; }
	.tk-evlayout.is-wide .tk-evside { grid-template-columns: 1fr; }
	.tk-evfilter__row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--gut) * -1); padding: 0 var(--gut); }
	.tk-evfilter__row::-webkit-scrollbar { display: none; }
	.tk-evfilter__row .tk-chips--scroll { overflow: visible; flex-wrap: nowrap; margin: 0; padding: 0; }
	.tk-evfilter__label { display: none; }
	.tk-evfilter__select { margin-left: 0; flex: none; }
	.tk-evfilter__select .tk-evfilter__label { display: none; }
	.tk-check { margin-left: 4px; flex: none; }
	.tk-evbody { padding: 16px 0 56px; }
	.tk-evlayout { grid-template-columns: 1fr; gap: 24px; }
	.tk-evside { position: static; }
	.tk-evside .tk-minical { display: none; }
	.tk-evpanel { gap: 24px; }
	.tk-evgroup__head { font-size: 15px; }
	.tk-evgroup__big { font-size: 24px; }
	.tk-ev { grid-template-columns: 1fr; border-left-width: 5px; }
	.tk-ev__main { padding: 14px 14px 10px; gap: 6px; }
	.tk-ev__title { font-size: 17px; }
	.tk-ev__info { font-size: 13px; flex-direction: column; }
	.tk-ev__actions { flex-direction: row; border-left: 0; padding: 0 14px 14px; min-width: 0; }
	.tk-ev__actions .tk-btn { flex: 1 1 0; min-height: 44px; }
	.tk-map { height: 62vh; min-height: 360px; margin: 0 calc(var(--gut) * -1); border-left: 0; border-right: 0; }
	.tk-bigcal { padding: 12px; margin: 0 calc(var(--gut) * -1); border-left: 0; border-right: 0; }
	.tk-bigcal .tk-cal__cell { min-height: 64px; padding: 4px 3px; }
	.tk-bigcal .tk-cal__ev { font-size: 0; height: 6px; padding: 0; border-radius: 3px; }
	.tk-bigcal .tk-cal__more { display: none; }

	.tk-evsingle__head { padding: 20px 0 24px; }
	.tk-evsingle__row { gap: 16px; align-items: flex-start; }
	.tk-evsingle__row .tk-dblock { min-width: 60px; padding-right: 16px; }
	.tk-evsingle__row .tk-dblock__d { font-size: 44px; }
	.tk-evsingle__title { font-size: 23px; }
	.tk-evsingle__layout { grid-template-columns: 1fr; gap: 40px; padding-top: 24px; padding-bottom: 48px; }
	.tk-evinfo div { grid-template-columns: 88px minmax(0, 1fr); }
	.tk-evsingle__btns .tk-btn { flex: 1 1 100%; }
	.tk-evmap { height: 260px; }

	.tk-msggrid { grid-template-columns: 1fr; gap: 10px; }
	.tk-msgcard a { padding: 16px 18px; }
	.tk-phead__cta, .tk-phead__cta .tk-btn { width: 100%; }
	.tk-sresult a { gap: 14px; padding: 16px 0; }
	.tk-sresult__media { width: 110px; }
	.tk-sresult__title { font-size: 16px; }
	.tk-sresult__ex { display: none; }
}

@media (max-width: 782px) {
	.admin-bar .tk-filterbar, .admin-bar .tk-evfilter { top: var(--header-h); }
}

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

@media print {
	.tk-header, .tk-bnav, .tk-footer, .tk-join, .tk-totop, .tk-article__rail, .tk-share, .tk-evfilter, .tk-viewtabs, .tk-progress { display: none !important; }
	body { padding: 0; }
}
