/* Trauma Info — セラピスト一覧
   配色は会社サイトの子テーマ変数（--tb-navy / --tb-accent）に合わせる */
:root {
	--ti-navy: #1f3a5f;
	--ti-accent: #c9a45c;
	--ti-line: #e3e6eb;
	--ti-muted: #5b6672;
}

.ti-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1rem;
	margin: 1.5rem 0;
}

.ti-card {
	border: 1px solid var(--ti-line);
	border-left: 3px solid var(--ti-navy);
	border-radius: 2px;
	padding: 1rem 1.1rem;
	background: #fff;
}

.ti-card-name {
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--ti-navy);
	margin: 0 0 .3rem;
	line-height: 1.5;
}

.ti-card-org {
	font-size: .88rem;
	color: var(--ti-muted);
	margin: 0 0 .7rem;
	line-height: 1.6;
}

.ti-card-meta {
	margin: 0;
	font-size: .86rem;
	line-height: 1.7;
}

.ti-card-meta dt {
	float: left;
	width: 4.2em;
	clear: left;
	color: var(--ti-muted);
	font-weight: 400;
}

.ti-card-meta dd {
	margin: 0 0 .2rem 4.4em;
}

.ti-card-link {
	margin: .8rem 0 0;
	font-size: .86rem;
}

.ti-card-link a {
	display: inline-block;
	padding: .3rem .9rem;
	border: 1px solid var(--ti-navy);
	border-radius: 2px;
	color: var(--ti-navy);
	text-decoration: none;
}

.ti-card-link a:hover {
	background: var(--ti-navy);
	color: #fff;
}

/* 都道府県索引：全角スペース区切りで横に流す */
.ti-pref-index {
	margin: 1.5rem 0;
	font-size: .92rem;
	line-height: 2.1;
}

.ti-pref-item {
	display: inline;
	text-decoration: none;
	color: var(--ti-navy);
	white-space: nowrap;
}

a.ti-pref-item:hover {
	text-decoration: underline;
}

.ti-pref-count {
	font-size: .8rem;
	color: var(--ti-muted);
	margin-left: .25em;
}

.ti-pref-empty {
	color: #a8b0b9;
	background: #fafbfc;
}

/* 免責 */
.ti-disclaimer {
	margin: 2.5rem 0 0;
	padding: 1.2rem 1.3rem;
	background: #f7f8fa;
	border-top: 2px solid var(--ti-accent);
	font-size: .84rem;
	line-height: 1.8;
	color: #3d4752;
}

.ti-disclaimer h2 {
	font-size: .95rem;
	font-weight: 600;
	margin: 0 0 .6rem;
	color: var(--ti-navy);
	border: none;
	padding: 0;
	background: none;
}

.ti-disclaimer ul {
	margin: 0 0 .9rem 1.2em;
	padding: 0;
}

.ti-disclaimer li {
	margin-bottom: .3rem;
}

.ti-crisis {
	margin: 0;
	padding: .7rem .9rem;
	background: #fff;
	border-left: 3px solid var(--ti-accent);
	font-size: .82rem;
}

.ti-archive-lead {
	font-size: .9rem;
	color: var(--ti-muted);
	margin-bottom: 1rem;
	line-height: 1.8;
}

.ti-empty {
	padding: 1.2rem;
	background: #f7f8fa;
	font-size: .9rem;
	color: var(--ti-muted);
}

/* 掲載申請・取り下げフォーム */
.ti-form-wrap {
	max-width: 640px;
	margin: 1.5rem 0;
}

.ti-form-lead {
	font-size: .88rem;
	line-height: 1.9;
	padding: 1rem 1.1rem;
	background: #f7f8fa;
	border-left: 3px solid var(--ti-accent);
}

.ti-form-notice {
	padding: .9rem 1.1rem;
	margin-bottom: 1.2rem;
	background: #eef4f9;
	border-left: 3px solid var(--ti-navy);
	font-size: .9rem;
	line-height: 1.8;
}

.ti-error {
	color: #a12b2b;
}

.ti-field {
	margin: 1.3rem 0;
	border: none;
	padding: 0;
}

.ti-field label,
.ti-field legend {
	display: block;
	font-size: .88rem;
	font-weight: 600;
	color: var(--ti-navy);
	margin-bottom: .35rem;
	padding: 0;
}

.ti-field fieldset label,
fieldset.ti-field label {
	font-weight: 400;
	display: inline;
	line-height: 2;
}

.ti-req {
	font-size: .72rem;
	font-weight: 400;
	color: #a12b2b;
	margin-left: .4em;
}

.ti-field input[type="text"],
.ti-field input[type="url"],
.ti-field input[type="email"],
.ti-field textarea {
	width: 100%;
	padding: .55rem .7rem;
	border: 1px solid #c6ccd4;
	border-radius: 2px;
	font-size: .95rem;
	box-sizing: border-box;
}

.ti-field input:focus,
.ti-field textarea:focus {
	border-color: var(--ti-navy);
	outline: none;
}

.ti-help {
	display: block;
	font-size: .78rem;
	color: var(--ti-muted);
	line-height: 1.7;
	margin-top: .3rem;
}

.ti-submit button {
	padding: .7rem 2.2rem;
	background: var(--ti-navy);
	color: #fff;
	border: none;
	border-radius: 2px;
	font-size: .95rem;
	letter-spacing: .05em;
	cursor: pointer;
}

.ti-submit button:hover {
	background: #16293f;
}

/* トップの入口2分割 */
.ti-gate {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
	margin: 1.5rem 0 2rem;
}

.ti-gate a {
	display: block;
	padding: 1.4rem 1.5rem;
	border: 1px solid var(--ti-line);
	border-top: 3px solid var(--ti-navy);
	border-radius: 2px;
	text-decoration: none;
	color: #3d4752;
	font-size: .86rem;
	line-height: 1.9;
	background: #fff;
}

.ti-gate a:hover {
	border-color: var(--ti-navy);
}

.ti-gate strong {
	display: block;
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--ti-navy);
	margin-bottom: .5rem;
	letter-spacing: .02em;
}

/* 一覧の追加要素 */
.ti-card-name a {
	color: var(--ti-navy);
	text-decoration: none;
}

.ti-card-name a:hover {
	text-decoration: underline;
}

.ti-card-meta dd a {
	color: #33587f;
	text-decoration: none;
	border-bottom: 1px dotted #9db2c6;
}

.ti-filter {
	margin: 2rem 0 0;
	padding: 1.1rem 1.2rem;
	background: #f7f8fa;
	border-radius: 2px;
}

.ti-filter h2 {
	font-size: .92rem;
	font-weight: 600;
	color: var(--ti-navy);
	margin: 0 0 .7rem;
	padding: 0;
	border: none;
	background: none;
}

.ti-filter-items {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}

.ti-filter-items a {
	display: inline-flex;
	align-items: baseline;
	gap: .4em;
	padding: .35rem .8rem;
	background: #fff;
	border: 1px solid var(--ti-line);
	border-radius: 2px;
	font-size: .85rem;
	color: var(--ti-navy);
	text-decoration: none;
}

.ti-filter-items a:hover {
	border-color: var(--ti-navy);
}

.ti-breadcrumb {
	font-size: .82rem;
	color: var(--ti-muted);
	margin-bottom: 1rem;
}

.ti-breadcrumb a {
	color: #33587f;
}

.ti-single .ti-card {
	margin-bottom: 1.5rem;
}

.ti-single-body {
	font-size: .92rem;
	line-height: 1.9;
	margin: 1.5rem 0;
}

.ti-backlink {
	margin: 1.8rem 0 0;
	font-size: .86rem;
}

.ti-pagination {
	margin: 1.5rem 0;
}

/* 地方ごとの索引 */
.ti-region-index {
	margin: 1.5rem 0;
}

.ti-region {
	margin-bottom: 1.6rem;
	padding-bottom: 1.2rem;
	border-bottom: 1px solid var(--ti-line);
}

.ti-region:last-child {
	border-bottom: none;
}

.ti-region-name {
	display: flex;
	align-items: baseline;
	gap: .6em;
	font-size: 1rem;
	font-weight: 600;
	color: var(--ti-navy);
	margin: 0 0 .7rem;
	padding: 0 0 0 .6rem;
	border: none;
	border-left: 3px solid var(--ti-accent);
	background: none;
}

.ti-region-name a {
	color: var(--ti-navy);
	text-decoration: none;
}

.ti-region-name a:hover {
	text-decoration: underline;
}

.ti-region-empty {
	color: #a8b0b9;
	border-left-color: var(--ti-line);
	font-weight: 400;
}

.ti-region-empty .ti-pref-count {
	font-size: .78rem;
}

.ti-region .ti-pref-index {
	margin: 0;
}

.ti-filter-empty {
	display: inline-flex;
	align-items: baseline;
	gap: .4em;
	padding: .35rem .8rem;
	border: 1px dashed var(--ti-line);
	border-radius: 2px;
	font-size: .85rem;
	color: #a8b0b9;
}

.ti-count {
	margin: .3rem 0 0;
	font-size: .86rem;
	color: var(--ti-navy);
}

/* 技法のチェックリスト（新規掲載・修正のときだけ表示） */
.ti-methods[hidden] {
	display: none;
}

.ti-method-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: .3rem .9rem;
	margin: .6rem 0 1rem;
	padding: .9rem 1rem;
	background: #f7f8fa;
	border: 1px solid var(--ti-line);
}

.ti-method-grid label {
	display: flex;
	align-items: flex-start;
	gap: .4rem;
	font-size: .85rem;
	font-weight: 400;
	line-height: 1.6;
	color: inherit;
	margin: 0;
}

.ti-method-grid input[type="checkbox"] {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.ti-method-other-label {
	margin-top: .4rem;
}

/* ===========================================================
   研修一覧・研修カレンダー（2026-09-17 追加）
   =========================================================== */

.ti-training-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1rem;
	margin: 1rem 0 2rem;
}

.ti-training-card .ti-card-title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--ti-navy);
	margin: 0 0 .6rem;
}

.ti-training-card .ti-card-title a {
	color: inherit;
	text-decoration: none;
}

.ti-training-card .ti-card-title a:hover {
	text-decoration: underline;
}

.ti-card-meta {
	display: grid;
	grid-template-columns: 5.5em 1fr;
	gap: .25rem .8rem;
	margin: 0;
	font-size: .86rem;
	line-height: 1.7;
}

.ti-card-meta dt {
	color: var(--ti-muted);
	font-weight: 400;
	margin: 0;
}

.ti-card-meta dd {
	margin: 0;
}

.ti-training-date {
	font-weight: 600;
}

/* 終了した研修は沈ませる（消さないのは、次回告知待ちが分かるようにするため） */
.ti-card.is-past {
	border-left-color: #c3c9d1;
	background: #fafbfc;
}

.ti-card.is-past .ti-card-title {
	color: var(--ti-muted);
}

/* 受付状況のバッジ。「不明」は出力しない */
.ti-badge {
	display: inline-block;
	margin-left: .4em;
	padding: .1em .55em;
	border-radius: 2px;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .04em;
	vertical-align: .12em;
	white-space: nowrap;
}

.ti-badge-open {
	background: #1f6b46;
	color: #fff;
}

.ti-badge-closed {
	background: #f0f1f3;
	color: var(--ti-muted);
	border: 1px solid var(--ti-line);
}

.ti-badge-past {
	background: #f0f1f3;
	color: #8a929c;
	border: 1px solid var(--ti-line);
}

.ti-section-title {
	font-size: 1.15rem;
	color: var(--ti-navy);
	border-bottom: 2px solid var(--ti-line);
	padding-bottom: .4rem;
	margin: 2rem 0 .8rem;
}

.ti-section-title .ti-count {
	display: inline-block;
	margin-left: .6em;
	font-size: .8rem;
	font-weight: 400;
	color: var(--ti-muted);
}

.ti-past-title {
	color: var(--ti-muted);
	margin-top: 2.5rem;
}

.ti-past-lead {
	font-size: .85rem;
	color: var(--ti-muted);
}

.ti-btn {
	display: inline-block;
	padding: .45rem 1.1rem;
	background: var(--ti-navy);
	color: #fff;
	border-radius: 2px;
	font-size: .88rem;
	text-decoration: none;
}

.ti-btn:hover {
	background: #16293f;
	color: #fff;
}

/* 主導線ではないボタン（研修一覧からフォームへ等） */
.ti-btn-sub {
	background: #fff;
	color: var(--ti-navy);
	border: 1px solid var(--ti-navy);
}

.ti-btn-sub:hover {
	background: var(--ti-navy);
	color: #fff;
}

.ti-training-switch {
	margin: 1rem 0 1.2rem;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem .7rem;
}

/* 研修フォーム：セラピスト用フォームへの案内 */
.ti-training-form-wrap .ti-form-note {
	font-size: .88rem;
	color: #555;
}

/* 詳細ページの定義リスト */
.ti-detail {
	display: grid;
	grid-template-columns: 7em 1fr;
	gap: .5rem 1rem;
	margin: 1.2rem 0 1.5rem;
	font-size: .92rem;
	line-height: 1.8;
}

.ti-detail dt {
	color: var(--ti-muted);
	font-weight: 400;
	margin: 0;
}

.ti-detail dd {
	margin: 0;
}

.ti-training-days {
	margin: 0;
	padding-left: 1.2em;
}

.ti-note-inline {
	margin: .4rem 0 0;
	font-size: .83rem;
	color: var(--ti-muted);
}

.ti-source {
	font-size: .82rem;
	color: var(--ti-muted);
}

/* ---- カレンダー ---- */

.ti-calendar-wrap {
	margin: 1.2rem 0 2rem;
}

.ti-calendar-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
	margin-bottom: .6rem;
}

.ti-calendar-title {
	font-size: 1.2rem;
	color: var(--ti-navy);
	margin: 0;
	text-align: center;
	flex: 1 1 auto;
}

.ti-calendar-nav a {
	font-size: .86rem;
	text-decoration: none;
	white-space: nowrap;
}

.ti-calendar-nav .is-empty {
	display: inline-block;
	min-width: 1px;
}

.ti-calendar {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	font-size: .8rem;
}

.ti-calendar th {
	padding: .35rem 0;
	background: #f7f8fa;
	border: 1px solid var(--ti-line);
	font-size: .78rem;
	font-weight: 600;
	color: var(--ti-muted);
	text-align: center;
}

.ti-calendar td {
	vertical-align: top;
	height: 5.2rem;
	padding: .25rem .3rem;
	border: 1px solid var(--ti-line);
	background: #fff;
}

.ti-calendar .ti-dow-0 { color: #b04a4a; }
.ti-calendar .ti-dow-6 { color: #3a5f8f; }

.ti-cal-empty {
	background: #fbfbfc;
}

.ti-cal-date {
	display: block;
	font-size: .78rem;
	font-weight: 600;
	color: var(--ti-muted);
	margin-bottom: .15rem;
}

.ti-cal-day.is-today {
	background: #fffdf5;
	box-shadow: inset 0 0 0 2px var(--ti-accent);
}

.ti-cal-day.has-events .ti-cal-date {
	color: var(--ti-navy);
}

.ti-cal-events {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ti-cal-events li {
	margin: 0 0 .2rem;
}

.ti-cal-events a {
	/* 長い研修名はセル内で3行に収める（-webkit-box が必要） */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	padding: .18rem .3rem;
	background: var(--ti-navy);
	color: #fff;
	border-radius: 2px;
	font-size: .72rem;
	line-height: 1.35;
	text-decoration: none;
}

.ti-cal-events a:hover {
	background: #16293f;
	color: #fff;
}

.ti-cal-pos {
	display: block;
	font-size: .66rem;
	opacity: .8;
}

.ti-calendar-note,
.ti-calendar-back {
	font-size: .83rem;
	color: var(--ti-muted);
	margin: .6rem 0 0;
}

/* スマホ：カレンダーは日付の縦並びに切り替える。
   7列のままだとセルが狭すぎて研修名が読めない。 */
@media screen and (max-width: 620px) {
	.ti-calendar,
	.ti-calendar tbody,
	.ti-calendar tr,
	.ti-calendar td {
		display: block;
		width: auto;
	}

	.ti-calendar thead {
		display: none;
	}

	.ti-calendar td {
		height: auto;
		border: none;
		border-bottom: 1px solid var(--ti-line);
		padding: .4rem .2rem;
	}

	/* 研修のない日は出さない（スクロールが長くなるだけ） */
	.ti-calendar td.ti-cal-empty,
	.ti-calendar td.ti-cal-day:not(.has-events) {
		display: none;
	}

	.ti-cal-date::after {
		content: '日';
	}

	.ti-card-meta,
	.ti-detail {
		grid-template-columns: 1fr;
		gap: .1rem;
	}

	.ti-card-meta dt,
	.ti-detail dt {
		font-size: .78rem;
		margin-top: .35rem;
	}
}

.ti-day-count {
	display: inline-block;
	margin-left: .5em;
	padding: .05em .45em;
	background: #f0f2f5;
	border: 1px solid var(--ti-line);
	border-radius: 2px;
	font-size: .72rem;
	font-weight: 400;
	color: var(--ti-muted);
	white-space: nowrap;
}

/* 開催月のセレクタ（研修のない月をまたぐため、前後リンクだけに頼らない） */
.ti-month-picker {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .3rem .5rem;
	margin: 0 0 .8rem;
	padding: .6rem .7rem;
	background: #f7f8fa;
	border: 1px solid var(--ti-line);
}

.ti-month-picker ul {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ti-month-picker a {
	display: inline-flex;
	align-items: baseline;
	gap: .3em;
	padding: .2rem .55rem;
	background: #fff;
	border: 1px solid var(--ti-line);
	border-radius: 2px;
	font-size: .8rem;
	text-decoration: none;
	white-space: nowrap;
}

.ti-month-picker a:hover {
	border-color: var(--ti-navy);
}

.ti-month-picker .is-current a {
	background: var(--ti-navy);
	border-color: var(--ti-navy);
	color: #fff;
}

.ti-month-picker .ti-count {
	margin: 0;
	font-size: .7rem;
	opacity: .75;
	color: inherit;
}

/* 複数日研修の「全日程参加が必要」表示（一覧・個別のみ。カレンダーには出さない） */
.ti-all-days {
	display: block;
	margin-top: .25rem;
	font-size: .78rem;
	font-weight: 600;
	color: #9a5b12;
}

.ti-all-days::before {
	content: '※ ';
}

.ti-all-days-note {
	color: #9a5b12;
}

.ti-per-session {
	display: block;
	margin-top: .25rem;
	font-size: .78rem;
	color: var(--ti-muted);
}

.ti-per-session::before {
	content: '※ ';
}

