/* ==========================================================================
   The Medical AI Times — メインスタイル
   実測値の出典: docs/design/00〜04-*.md（Figma ads/PC-TOP 1799:5）
   ========================================================================== */

:root {
	/* Figma変数 */
	--darkblue: #1a4a72;
	--lightblue: #0067b8;
	--superlightblue: #adcbff;
	--borderbase: #d8d8d8;
	--text-dark-gray: #414141;
	--text-light-gray: #868686;

	/* 変数外の観測値 */
	--bg-tint: #f9fcff;        /* フィード行ホバー / プレス枠背景 */
	--nav-text: #212121;
	--meta-gray: #737373;
	--ticker-time-gray: #a5a5a5;
	--search-bg: #f7f7f7;
	--search-placeholder: #a1a1a1;
	--utility-muted: #e4e4e4;

	--font-base: "Noto Sans JP", sans-serif;
	--container: 1440px;
	--side-pad: 42px;
}

/* --- リセット最小限 --- */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--font-base);
	font-size: 14px;
	color: #000;
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
a:hover { opacity: 0.75; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, p { margin: 0; }
img { max-width: 100%; height: auto; display: block; }

.tmai-container,
.tmai-utility-bar__inner,
.tmai-header__inner,
.tmai-ticker__inner,
.tmai-hero,
.tmai-main-columns,
.tmai-section,
.tmai-podcast__inner,
.tmai-footer__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding-left: var(--side-pad);
	padding-right: var(--side-pad);
}

/* ==========================================================================
   1. ユーティリティバー
   ========================================================================== */
.tmai-utility-bar { background: var(--darkblue); }
.tmai-utility-bar__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 31px;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
}
.tmai-utility-bar__left { display: flex; gap: 56px; }
.tmai-utility-bar__right { display: flex; gap: 16px; align-items: center; }
.tmai-utility-bar__muted { color: var(--utility-muted); }

/* ==========================================================================
   2. ヘッダー
   ========================================================================== */
.tmai-header__inner {
	display: flex;
	align-items: center;
	gap: 36px;
	padding-top: 18px;
	padding-bottom: 17px;
}
.tmai-logo { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.tmai-logo__symbol { height: 21px; width: auto; }
.tmai-logo__type { height: 21px; width: auto; }

.tmai-nav {
	display: flex;
	gap: 36px;
	margin-left: auto;
	font-size: 16px;
	font-weight: 700;
	color: var(--nav-text);
	white-space: nowrap;
}

/* ホバーでターム直行ドロップダウン（クリックは /topic/ /specialty/ ランディングへ） */
.tmai-nav__item { position: relative; }
.tmai-nav__dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: -16px;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--borderbase);
	border-top: 2px solid var(--darkblue);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	z-index: 100;
	min-width: 160px;
}
.tmai-nav__item:hover .tmai-nav__dropdown,
.tmai-nav__item:focus-within .tmai-nav__dropdown { display: grid; gap: 2px; }
.tmai-nav__dropdown--wide { grid-template-columns: repeat(2, minmax(150px, 1fr)); column-gap: 24px; }
.tmai-nav__dropdown a {
	font-size: 13px;
	font-weight: 500;
	line-height: 26px;
	color: var(--nav-text);
}
.tmai-nav__dropdown a:hover { color: var(--lightblue); opacity: 1; }
/* ホバーが途切れないよう隙間を埋める */
.tmai-nav__item::after { content: ""; position: absolute; left: 0; right: 0; height: 14px; top: 100%; display: none; }
.tmai-nav__item:hover::after { display: block; }

.tmai-search {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 189px;
	height: 25px;
	padding: 0 10px;
	background: var(--search-bg);
	border: 1px solid var(--borderbase);
	flex-shrink: 0;
}
.tmai-search img { width: 14px; height: 14px; }
.tmai-search input {
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: 10px;
	width: 100%;
	outline: none;
}
.tmai-search input::placeholder { color: var(--search-placeholder); }

.tmai-header__actions { display: flex; gap: 10px; flex-shrink: 0; }

/* ハンバーガー＋ドロワー（SP用・PCでは非表示） */
.tmai-hamburger {
	display: none;
	position: absolute;
	right: var(--side-pad);
	top: 50%;
	transform: translateY(-50%);
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	padding: 8px;
	background: none;
	border: 0;
	cursor: pointer;
}
.tmai-hamburger span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--nav-text);
	transition: transform 0.2s, opacity 0.2s;
}
.tmai-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tmai-hamburger.is-open span:nth-child(2) { opacity: 0; }
.tmai-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.tmai-drawer {
	border-bottom: 2px solid var(--darkblue);
	background: var(--bg-tint);
	padding: 20px var(--side-pad) 28px;
}
@media (min-width: 821px) {
	.tmai-drawer { display: none !important; }
}
.tmai-drawer__search { width: 100%; height: 38px; margin-bottom: 16px; }
.tmai-drawer__search input { font-size: 14px; }
.tmai-drawer__actions { display: flex; gap: 10px; margin-bottom: 20px; }
.tmai-drawer__actions .tmai-btn { flex: 1; height: 38px; }
.tmai-drawer__nav { display: flex; flex-direction: column; border-top: 1px solid var(--borderbase); margin-bottom: 20px; }
.tmai-drawer__nav a {
	font-size: 15px;
	font-weight: 700;
	color: var(--nav-text);
	padding: 12px 2px;
	border-bottom: 1px solid var(--borderbase);
}
.tmai-drawer__terms { margin-bottom: 18px; }
.tmai-drawer__terms h2 {
	font-size: 14px;
	font-weight: 700;
	color: var(--darkblue);
	border-bottom: 2px solid var(--darkblue);
	padding-bottom: 6px;
	margin-bottom: 4px;
}
.tmai-drawer__terms li { border-bottom: 1px solid var(--borderbase); }
.tmai-drawer__terms a { display: block; font-size: 13px; padding: 9px 2px; }
.tmai-drawer__terms--two-col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 24px;
}
.tmai-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	height: 25px;
}
.tmai-btn--press { width: 151px; background: var(--lightblue); color: #fff; }
.tmai-btn--subscribe { width: 96px; border: 1px solid #000; color: #000; background: #fff; }

/* ==========================================================================
   3. LATESTティッカー
   ========================================================================== */
.tmai-ticker { border-top: 1px solid var(--borderbase); border-bottom: 1px solid var(--borderbase); }
.tmai-ticker__inner {
	display: flex;
	align-items: center;
	height: 31px;
	gap: 14px;
	padding-left: 28px;
}
.tmai-ticker__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--lightblue);
	flex-shrink: 0;
}
.tmai-ticker__label { font-size: 14px; font-weight: 700; letter-spacing: 0.02em; }
.tmai-ticker__track {
	display: flex;
	gap: 48px;
	overflow-x: auto;
	scrollbar-width: none;
	flex: 1;
	white-space: nowrap;
}
.tmai-ticker__track::-webkit-scrollbar { display: none; }
.tmai-ticker__item { display: inline-flex; align-items: center; gap: 9px; flex-shrink: 0; }
.tmai-ticker__time { font-size: 10px; font-weight: 700; color: var(--ticker-time-gray); }
.tmai-ticker__title { font-size: 14px; font-weight: 700; }
.tmai-ticker__all {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 10px;
	font-weight: 700;
	color: var(--lightblue);
	flex-shrink: 0;
}
.tmai-ticker__arrow { font-size: 14px; line-height: 1; }

/* --- タクソノミー/種別タグ（共通） --- */
.tmai-tag {
	display: inline-flex;
	align-items: center;
	height: 19px;
	padding: 0 6px;
	border: 1px solid var(--darkblue);
	color: var(--darkblue);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}
.tmai-tag--light { border-color: var(--lightblue); color: var(--lightblue); }
.tmai-tag--ticker {
	height: 21px;
	border-color: var(--superlightblue);
	color: #000;
	font-size: 14px;
	font-weight: 400;
	padding: 0 8px;
}

/* ==========================================================================
   4. ヒーロー
   ========================================================================== */
.tmai-hero {
	display: grid;
	/* minmax(0,…) 必須: Editors Pick枠の最小コンテンツ幅（画像324px+本文）が
	   1fr トラックを押し広げ、狭い画面でグリッドごとはみ出す */
	grid-template-columns: minmax(0, 1fr) 325px 356px;
	gap: 0 24px;
	padding-top: 19px;
	padding-bottom: 35px;
	border-bottom: 2px solid var(--borderbase);
	padding-left: 37px;
}
.tmai-hero__center,
.tmai-hero__right {
	border-left: 1px solid var(--borderbase);
	padding-left: 24px;
	padding-top: 3px;
}
.tmai-hero__labels { display: flex; gap: 10px; margin-bottom: 10px; }

/* 左: Editors Pick */
.tmai-hero__pick { padding-right: 28px; }
.tmai-hero__pick-title { font-size: 16px; font-weight: 700; margin-bottom: 13px; }
.tmai-hero__pick-body { display: flex; gap: 16px; }
.tmai-hero__pick-image { flex-shrink: 0; width: 324px; }
.tmai-hero__pick-image img { width: 324px; height: 182px; object-fit: cover; }
.tmai-hero__pick-text {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 182px;
}
.tmai-hero__pick-lead { font-size: 14px; line-height: 1.6; }
.tmai-hero__pick-foot {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-top: 12px;
}
.tmai-hero__pick-meta { font-size: 10px; color: var(--meta-gray); line-height: 1.4; }
.tmai-btn--cta {
	min-width: 76px;
	height: 24px;
	background: var(--darkblue);
	color: #fff;
	font-size: 10px;
	font-weight: 400;
	gap: 6px;
	padding: 0 9px;
}

/* 中央・右上 */
.tmai-hero__title { font-size: 14px; font-weight: 700; line-height: 1.45; margin-bottom: 12px; }
.tmai-hero__image { display: block; margin-bottom: 12px; }
.tmai-hero__image img { width: 325px; height: 118px; object-fit: cover; }
.tmai-hero__excerpt { font-size: 12px; line-height: 1.5; margin-bottom: 14px; }
.tmai-hero__excerpt--small { font-size: 10px; }
.tmai-hero__byline { font-size: 10px; color: var(--meta-gray); display: flex; gap: 16px; }

/* 右下: Most Read */
.tmai-most-read { border-top: 1px solid var(--borderbase); margin-top: 18px; padding-top: 7px; }
.tmai-most-read__heading { font-size: 10px; color: var(--lightblue); margin-bottom: 8px; }
.tmai-most-read__list { list-style: decimal; padding-left: 18px; }
.tmai-most-read__list li {
	font-size: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--borderbase);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tmai-most-read__list li:last-child { border-bottom: 0; }
.tmai-most-read__empty { font-size: 12px; color: var(--text-light-gray); }

/* ==========================================================================
   5. メイン3カラム
   ========================================================================== */
.tmai-main-columns {
	display: grid;
	grid-template-columns: 210px minmax(0, 1fr) 332px;
	gap: 0 45px;
	padding-top: 36px;
	padding-bottom: 60px;
}

/* --- 左サイドバー --- */
.tmai-term-list { margin-bottom: 26px; }
.tmai-term-list__heading {
	font-size: 16px;
	font-weight: 500;
	color: var(--darkblue);
	padding-bottom: 8px;
	border-bottom: 2px solid var(--darkblue);
	margin-bottom: 4px;
}
.tmai-term-list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	height: 35px;
	padding-top: 8px;
	border-bottom: 1px solid var(--borderbase);
	font-size: 14px;
	font-weight: 500;
}
.tmai-term-list__count { font-size: 12px; font-weight: 500; color: var(--text-light-gray); }
.tmai-newsletter-banner { display: block; margin-top: 24px; }

/* --- 中央フィード --- */
.tmai-feed__header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-bottom: 9px;
	border-bottom: 1px solid var(--borderbase);
}
.tmai-feed__heading { font-size: 20px; font-weight: 500; color: var(--darkblue); }
.tmai-feed__heading-en { font-size: 15px; font-weight: 500; margin-left: 12px; }
.tmai-feed__count { font-size: 10px; font-weight: 500; color: var(--text-light-gray); }

.tmai-feed__cols,
.tmai-feed__row {
	display: grid;
	grid-template-columns: 84px 116px minmax(0, 1fr) 90px;
	column-gap: 0;
}
.tmai-feed__cols {
	font-size: 12px;
	font-weight: 700;
	color: var(--text-dark-gray);
	padding: 11px 0 9px;
}
.tmai-feed__row {
	min-height: 64px;
	padding: 14px 0 10px;
	border-bottom: 1px solid var(--borderbase);
	align-items: start;
}
.tmai-feed__row:hover { background: var(--bg-tint); }
.tmai-feed__date { font-size: 14px; color: var(--text-dark-gray); padding-top: 4px; }
.tmai-feed__terms { display: flex; flex-direction: column; gap: 4px; padding-right: 10px; }
.tmai-feed__terms a { font-size: 12px; font-weight: 700; color: var(--darkblue); }
.tmai-feed__title { font-size: 14px; font-weight: 400; line-height: 1.5; padding-right: 16px; }
.tmai-feed__byline {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12px;
	color: var(--text-light-gray);
}
.tmai-feed__pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 24px;
	font-size: 14px;
	color: var(--text-dark-gray);
}
.tmai-feed__next { color: var(--lightblue); }
.tmai-feed__prev--disabled { opacity: 0.4; }
.tmai-feed__empty { padding: 32px 0; color: var(--text-light-gray); }

/* --- 右サイドバー --- */
.tmai-press-box {
	background: var(--bg-tint);
	border: 1px solid var(--borderbase);
	padding: 25px 20px 39px;
}
.tmai-press-box__heading {
	font-size: 16px;
	font-weight: 500;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--lightblue);
	margin-bottom: 15px;
}
.tmai-press-box__item { padding-bottom: 0; border-bottom: 1px solid var(--borderbase); margin-bottom: 15px; }
.tmai-press-box__meta {
	display: flex;
	justify-content: space-between;
	font-size: 10px;
	color: var(--lightblue);
	margin-bottom: 7px;
}
.tmai-press-box__badge { font-weight: 700; color: var(--darkblue); }
.tmai-press-box__title {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.25;
	margin-bottom: 8px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.tmai-press-box__company { font-size: 12px; color: var(--text-dark-gray); padding-bottom: 12px; }
.tmai-press-box__all {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 500;
	color: var(--darkblue);
}
.tmai-press-box__empty { font-size: 12px; color: var(--text-light-gray); }

.tmai-ad-box { margin-top: 22px; text-align: center; }
.tmai-ad-box__label { font-size: 10px; color: var(--text-light-gray); text-align: left; margin-bottom: 4px; }
.tmai-ad-box img { margin: 0 auto; }
.tmai-ad-box__sponsor { font-size: 10px; color: var(--text-light-gray); margin-top: 6px; }

/* 画像未設定時は枠ごと出力しないため、仮置きプレースホルダーは廃止（2026-08-03） */
.tmai-ad-box--sidebar-left-ad { margin-top: 26px; }

/* ==========================================================================
   6. セクション共通見出し（EVENTS / CATEGORY ARCHIVE）
   ========================================================================== */
.tmai-section { padding-top: 12px; padding-bottom: 48px; }
.tmai-section__header {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--darkblue);
	margin-bottom: 28px;
}
.tmai-section__symbol { width: 20px; height: 21px; }
.tmai-section__en { font-size: 13px; font-weight: 700; color: var(--darkblue); }
.tmai-section__title { font-size: 20px; font-weight: 700; color: var(--darkblue); margin-left: 90px; }
.tmai-section__count { font-size: 12px; font-weight: 700; color: var(--text-light-gray); }
.tmai-section__link { margin-left: auto; font-size: 14px; font-weight: 700; color: var(--lightblue); }

/* --- イベントカード --- */
.tmai-events__grid {
	display: grid;
	/* minmax(0,…) 必須: カード内のnowrapタイトルが最小コンテンツ幅を押し上げ、
	   1fr だとトラックが縮まずグリッドごとはみ出す */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	padding: 0 13px;
}
.tmai-event-card {
	display: flex;
	align-items: center;
	border: 2px solid var(--borderbase);
	height: 71px;
	padding: 0 18px 0 0;
}
.tmai-event-card__date {
	width: 98px;
	text-align: center;
	border-right: 1px solid var(--borderbase);
	padding: 6px 0;
	flex-shrink: 0;
}
.tmai-event-card__day { display: block; font-size: 24px; font-weight: 700; color: var(--lightblue); line-height: 1.1; }
.tmai-event-card__ym { display: block; font-size: 12px; font-weight: 700; }
.tmai-event-card__body { padding-left: 24px; flex: 1; min-width: 0; }
.tmai-event-card__organizer { font-size: 12px; font-weight: 500; color: var(--lightblue); margin-bottom: 4px; }
.tmai-event-card__title {
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.tmai-event-card__status {
	width: 70px;
	height: 25px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--lightblue);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	flex-shrink: 0;
	margin-left: 16px;
}
.tmai-event-card__status--closed,
.tmai-event-card__status--ended { background: var(--text-light-gray); }
.tmai-events__empty { color: var(--text-light-gray); padding: 8px 13px; }

/* ==========================================================================
   7. PODCAST
   ========================================================================== */
.tmai-podcast { background: var(--darkblue); border-top: 1px solid var(--borderbase); color: #fff; }
.tmai-podcast__inner { padding-top: 25px; padding-bottom: 32px; padding-left: 35px; }
.tmai-podcast__header { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.tmai-podcast__symbol { width: 20px; height: 21px; }
.tmai-podcast__title { font-size: 24px; font-weight: 700; }
.tmai-podcast__note { font-size: 12px; font-weight: 700; color: var(--borderbase); margin-left: 18px; white-space: nowrap; }
.tmai-podcast__platforms { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.tmai-podcast__platforms img { height: 24px; width: 24px; object-fit: contain; }

.tmai-podcast__cols,
.tmai-podcast__row {
	display: grid;
	grid-template-columns: 90px 130px minmax(0, 1fr) 370px 60px;
	align-items: center;
}
.tmai-podcast__cols {
	font-size: 12px;
	font-weight: 700;
	color: var(--borderbase);
	padding: 10px 0 8px;
	border-bottom: 1px solid var(--borderbase);
}
.tmai-podcast__row {
	height: 57px;
	background: rgba(0, 0, 0, 0.24);
	border-bottom: 1px solid var(--borderbase);
	color: #fff;
}
.tmai-podcast__no, .tmai-podcast__date, .tmai-podcast__ep-title { font-size: 16px; font-weight: 700; }
.tmai-podcast__members, .tmai-podcast__duration { font-size: 14px; font-weight: 700; }
.tmai-podcast__ep-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 24px; }
.tmai-podcast__more {
	display: block;
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	font-family: inherit;
	color: #fff;
	margin: 38px auto 0;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 6px 24px;
}
.tmai-podcast__more:hover { opacity: 0.75; }
.tmai-podcast__more:disabled { opacity: 0.4; cursor: wait; }
.tmai-podcast__empty { color: var(--borderbase); }

/* ==========================================================================
   8. CATEGORY ARCHIVE
   ========================================================================== */
.tmai-cat-archive__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 46px;
	padding: 0 7px;
}
.tmai-cat-card__name { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.tmai-cat-card__count { font-size: 24px; color: var(--lightblue); line-height: 1.1; margin-bottom: 24px; }
.tmai-cat-card__count span { display: block; font-size: 12px; color: var(--text-light-gray); }
.tmai-cat-card__list li { font-size: 12px; line-height: 1.4; margin-bottom: 14px; }
.tmai-cat-card__item--lead { font-weight: 500; }
.tmai-cat-card__more {
	display: block;
	text-align: right;
	font-size: 12px;
	color: var(--lightblue);
	margin-top: 18px;
}

/* ==========================================================================
   9. フッター
   ========================================================================== */
.tmai-footer { background: var(--darkblue); color: #fff; padding: 42px 0 28px; }
.tmai-footer__inner {
	display: grid;
	grid-template-columns: 416px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1.2fr);
	gap: 40px;
	padding-left: 46px;
}
.tmai-footer__logo { display: flex; align-items: center; gap: 10px; margin-bottom: 30px; }
.tmai-footer__logo img { height: 23px; width: auto; }
.tmai-footer__description { font-size: 12px; line-height: 1.9; }
.tmai-footer__sns { display: flex; gap: 16px; align-items: center; margin-top: 24px; }
.tmai-footer__sns img { width: 20px; height: 20px; }
.tmai-footer__sns span { opacity: 0.55; }
.tmai-footer__company { font-size: 12px; margin-top: 32px; }

.tmai-footer__col h2 { font-size: 16px; font-weight: 500; margin-bottom: 18px; }
.tmai-footer__col ul,
.tmai-footer__list--dense { list-style: disc; padding-left: 18px; }
.tmai-footer__col li { font-size: 12px; line-height: 24px; }
.tmai-footer__list--dense li { line-height: 20px; }
.tmai-footer__col-pair { display: flex; gap: 36px; }

.tmai-footer__copyright {
	max-width: var(--container);
	margin: 28px auto 0;
	padding: 0 var(--side-pad);
	font-size: 12px;
	text-align: right;
}

/* ==========================================================================
   10. フォールバック（アーカイブ・検索の暫定一覧）
   ========================================================================== */
.tmai-archive__inner { max-width: 900px; margin: 0 auto; padding: 48px var(--side-pad); }
.tmai-archive__title { font-size: 20px; font-weight: 700; color: var(--darkblue); margin-bottom: 24px; }
.tmai-archive__list li {
	display: flex;
	gap: 18px;
	padding: 12px 0;
	border-bottom: 1px solid var(--borderbase);
}
.tmai-archive__list time { color: var(--text-light-gray); flex-shrink: 0; }

/* ==========================================================================
   11. レスポンシブ（暫定: ブレークポイントは要件定義の未決項目）
   ========================================================================== */
/* --- ヘッダーの可変対応 ---
   PC(Figma 1440)のヘッダーは固定幅の合計が実測1304px。素のままだと
   1303px以下で1行に収まらず、ページ全体が横スクロールする（821–1303pxの全域）。
   ①1181–1303px: 各要素を詰めて1行を維持
   ②821–1180px（タブレット）: 1行では収まらないためナビを2段目へ折り返す */
@media (max-width: 1303px) and (min-width: 1181px) {
	.tmai-header__inner { gap: 20px; }
	.tmai-logo__symbol, .tmai-logo__type { height: 18px; }
	.tmai-nav { gap: 20px; }
	.tmai-search { width: 150px; }
	.tmai-btn--press { width: 132px; }
	.tmai-btn--subscribe { width: 88px; }

	/* ヒーローもPC実寸（Pick画像324px+固定2列）では1260px必要なため詰める */
	.tmai-hero { grid-template-columns: minmax(0, 1fr) 280px 300px; gap: 0 18px; padding-left: 20px; }
	.tmai-hero__pick-image { width: 280px; }
	.tmai-hero__pick-image img { width: 100%; height: auto; aspect-ratio: 324 / 182; }
	.tmai-hero__image img { width: 100%; height: auto; aspect-ratio: 325 / 118; }
}

@media (max-width: 1180px) and (min-width: 821px) {
	.tmai-header__inner { flex-wrap: wrap; gap: 12px 20px; padding-bottom: 12px; }
	.tmai-logo__symbol, .tmai-logo__type { height: 18px; }
	.tmai-search { width: 150px; margin-left: auto; }
	.tmai-btn--press { width: 132px; }
	.tmai-btn--subscribe { width: 88px; }
	.tmai-nav {
		order: 3;
		width: 100%;
		margin-left: 0;
		gap: 28px;
		font-size: 15px;
		padding-top: 2px;
	}
	.tmai-nav__dropdown { left: -14px; }
}

@media (max-width: 1180px) {
	.tmai-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tmai-hero__pick { grid-column: 1 / -1; padding-right: 0; margin-bottom: 28px; }
	.tmai-hero__center { border-left: 0; padding-left: 0; }
	.tmai-main-columns { grid-template-columns: minmax(0, 1fr) 332px; }
	.tmai-sidebar-left { display: none; }
	.tmai-podcast__cols, .tmai-podcast__row { grid-template-columns: 70px 110px minmax(0, 1fr) 60px; }
	.tmai-podcast__members { display: none; }
	.tmai-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- SP（≤820px・1カラム）。要件定義 §2 --- */
@media (max-width: 820px) {
	:root { --side-pad: 16px; }

	/* ユーティリティバー: 左グループのみ */
	.tmai-utility-bar__left { gap: 20px; }
	.tmai-utility-bar__right { display: none; }

	/* ヘッダー: ロゴ＋ハンバーガーのみ。ナビ等はドロワーへ */
	.tmai-header__inner { gap: 0; padding-top: 12px; padding-bottom: 12px; position: relative; }
	.tmai-logo { flex: 1; min-width: 0; padding-right: 48px; }
	.tmai-logo__symbol, .tmai-logo__type { height: 18px; }
	.tmai-nav, .tmai-header__inner > .tmai-search, .tmai-header__actions { display: none; }
	.tmai-hamburger { display: flex; }

	/* ティッカー: 1アイテム横スクロール */
	.tmai-ticker__inner { padding-left: 14px; gap: 10px; }
	.tmai-ticker__track { gap: 28px; }

	/* ヒーロー: 縦積み（Pick → 中央 → 右上 → Most Read）
	   minmax(0,1fr)= nowrap子要素にトラックを押し広げさせない */
	.tmai-hero { grid-template-columns: minmax(0, 1fr); padding-left: var(--side-pad); padding-top: 16px; padding-bottom: 24px; }
	.tmai-most-read__list li { white-space: normal; }
	.tmai-hero__pick { padding-right: 0; }
	.tmai-hero__pick-body { flex-direction: column; }
	.tmai-hero__pick-image, .tmai-hero__pick-image img { width: 100%; height: auto; aspect-ratio: 324 / 182; }
	.tmai-hero__pick-text { min-height: 0; gap: 12px; }
	.tmai-hero__center, .tmai-hero__right {
		border-left: 0;
		padding-left: 0;
		margin-top: 22px;
		padding-top: 22px;
		border-top: 1px solid var(--borderbase);
	}
	.tmai-hero__image img { width: 100%; height: auto; aspect-ratio: 325 / 118; }
	.tmai-hero__excerpt--small { font-size: 12px; }

	/* メイン: 1カラム。左リストはドロワーで代替 */
	.tmai-main-columns { grid-template-columns: minmax(0, 1fr); padding-top: 24px; padding-bottom: 40px; }
	.tmai-sidebar-left { display: none; }
	.tmai-sidebar-right { margin-top: 36px; }

	/* フィード: テーブル → カード型 */
	.tmai-feed__header { flex-direction: column; align-items: flex-start; gap: 4px; }
	.tmai-feed__cols { display: none; }
	.tmai-feed__row { display: block; min-height: 0; padding: 14px 0 12px; }
	.tmai-feed__date { display: inline-block; font-size: 12px; padding-top: 0; margin-right: 10px; vertical-align: middle; }
	.tmai-feed__terms { display: inline-flex; flex-direction: row; gap: 10px; vertical-align: middle; }
	.tmai-feed__title { padding-right: 0; margin-top: 6px; }
	.tmai-feed__byline { flex-direction: row; justify-content: space-between; margin-top: 8px; }

	/* イベント・分類アーカイブ・共通帯 */
	.tmai-events__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 0; }
	.tmai-event-card { height: auto; min-height: 71px; padding-top: 10px; padding-bottom: 10px; }
	.tmai-event-card__date { width: 76px; }
	.tmai-event-card__body { padding-left: 14px; }
	.tmai-event-card__title { white-space: normal; line-height: 1.4; }
	.tmai-event-card__status { width: 62px; font-size: 12px; margin-left: 10px; }
	.tmai-section__header { flex-wrap: wrap; row-gap: 6px; }
	.tmai-section__title { margin-left: 0; width: 100%; order: 3; }
	.tmai-section__link { margin-left: auto; }
	.tmai-cat-archive__grid { grid-template-columns: 1fr; gap: 32px; padding: 0; }

	/* PODCAST: #・日付・タイトル・時間のみ */
	.tmai-podcast__inner { padding-left: var(--side-pad); }
	.tmai-podcast__header { flex-wrap: wrap; row-gap: 10px; }
	.tmai-podcast__platforms { margin-left: 0; width: 100%; }
	.tmai-podcast__cols, .tmai-podcast__row { grid-template-columns: 44px 86px minmax(0, 1fr) 50px; }
	.tmai-podcast__members, .tmai-podcast__cols span:nth-child(4) { display: none; }
	.tmai-podcast__no, .tmai-podcast__date, .tmai-podcast__ep-title { font-size: 13px; }
	.tmai-podcast__duration { font-size: 12px; }
	.tmai-podcast__ep-title { white-space: normal; padding-right: 10px; }
	.tmai-podcast__row { height: auto; min-height: 52px; padding: 8px 0; align-items: center; }

	/* フッター: 縦積み */
	.tmai-footer__inner { grid-template-columns: 1fr; gap: 28px; padding-left: var(--side-pad); }
	.tmai-footer__company { margin-top: 20px; }
	.tmai-footer__copyright { text-align: left; }
}

/* ==========================================================================
   12. 内面ページ共通（記事詳細・アーカイブ・検索・固定・404）
   ========================================================================== */

/* 3カラムレイアウト（左=領域/分類リスト + 本文 + 右サイドバー）
   医師の領域内回遊を優先する高密度設計（要件定義 §5.2） */
.tmai-single,
.tmai-page {
	max-width: var(--container);
	margin: 0 auto;
	padding: 36px var(--side-pad) 72px;
	display: grid;
	grid-template-columns: 210px minmax(0, 1fr) 332px;
	gap: 0 45px;
	align-items: start;
}

/* --- ページヘッダー（アーカイブ・検索） --- */
.tmai-page__header {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--darkblue);
	margin-bottom: 4px;
}
.tmai-page__title { font-size: 20px; font-weight: 700; color: var(--darkblue); margin-left: 24px; }
.tmai-page__count { font-size: 12px; font-weight: 700; color: var(--text-light-gray); }
.tmai-feed__type-badge { font-size: 12px; font-weight: 700; color: var(--darkblue); }
.tmai-feed__type-badge--light { color: var(--lightblue); }

/* WP標準ページネーション（the_posts_pagination） */
.tmai-page .navigation.pagination { padding-top: 24px; }
.tmai-page .nav-links {
	display: flex;
	justify-content: center;
	gap: 14px;
	font-size: 14px;
	color: var(--text-dark-gray);
}
.tmai-page .nav-links .current { color: var(--lightblue); font-weight: 700; }
.tmai-page .nav-links a:hover { color: var(--lightblue); }
.tmai-page .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* --- 記事詳細 --- */
.tmai-article { min-width: 0; }
.tmai-article__labels { display: flex; gap: 10px; margin-bottom: 16px; }
.tmai-article__title { font-size: 28px; font-weight: 700; line-height: 1.5; margin-bottom: 16px; }
.tmai-article__meta {
	display: flex;
	gap: 18px;
	align-items: center;
	font-size: 12px;
	color: var(--meta-gray);
	padding-bottom: 18px;
	border-bottom: 1px solid var(--borderbase);
	margin-bottom: 28px;
}
.tmai-article__author { font-weight: 700; color: var(--darkblue); }
.tmai-article__company { font-weight: 700; color: var(--lightblue); }
.tmai-article__thumbnail { margin: 0 0 28px; }
.tmai-article__thumbnail img { width: 100%; height: auto; }

.tmai-article__body { font-size: 16px; line-height: 1.9; color: #222; overflow-wrap: break-word; }
.tmai-article__body > * + * { margin-top: 1.4em; }
.tmai-article__body h2 {
	font-size: 20px;
	font-weight: 700;
	color: var(--darkblue);
	border-left: 4px solid var(--darkblue);
	padding-left: 12px;
	margin-top: 2.2em;
}
.tmai-article__body h3 { font-size: 17px; font-weight: 700; margin-top: 1.8em; }
.tmai-article__body a { color: var(--lightblue); text-decoration: underline; }
.tmai-article__body ul { list-style: disc; padding-left: 1.5em; }
.tmai-article__body ol { list-style: decimal; padding-left: 1.5em; }
.tmai-article__body blockquote {
	margin: 1.4em 0;
	padding: 4px 0 4px 16px;
	border-left: 3px solid var(--borderbase);
	color: var(--text-dark-gray);
}
.tmai-article__body figure { margin: 1.4em 0; }
.tmai-article__body iframe { max-width: 100%; }
.tmai-article__body .wp-caption { max-width: 100%; } /* 旧記事はインラインstyleで実寸widthを持つ */
.tmai-article__body .wp-caption-text { font-size: 12px; color: var(--text-light-gray); margin-top: 6px; }

/* --- 記事内の目次（旧Easy TOC設定準拠: 幅75%・タイトル行なし・番号なし・階層あり） --- */
.tmai-toc {
	width: 75%;
	margin: 1.4em 0 2em;
	padding: 18px 22px;
	border: 1px solid var(--borderbase);
	background: #fff;
	font-size: 14px;
	line-height: 1.7;
}
.tmai-toc ul { list-style: none; padding: 0; margin: 0; }
.tmai-toc ul ul { padding-left: 1.4em; }
.tmai-toc li { margin: 4px 0; }
.tmai-toc a { color: var(--lightblue); text-decoration: none; }
.tmai-toc a:hover { text-decoration: underline; }
.tmai-article__body h1[id],
.tmai-article__body h2[id],
.tmai-article__body h3[id],
.tmai-article__body h4[id],
.tmai-article__body h5[id],
.tmai-article__body h6[id] { scroll-margin-top: 30px; }
@media (max-width: 820px) {
	.tmai-toc { width: 100%; }
}

.tmai-article__footer { margin-top: 40px; }
.tmai-article__terms { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 24px; }
.tmai-article__back { margin-top: 32px; font-size: 13px; }
.tmai-article__back a { color: var(--lightblue); }
.tmai-article__members { color: var(--text-dark-gray); }

/* --- 著者ボックス --- */
.tmai-author-box {
	display: flex;
	gap: 16px;
	align-items: center;
	border: 1px solid var(--borderbase);
	background: var(--bg-tint);
	padding: 18px 20px;
}
.tmai-author-box--page { margin: 20px 0 8px; }
.tmai-author-box__avatar { flex: 0 0 auto; } /* プロフィール文が長いとアバターが潰れるため */
.tmai-author-box__avatar img { border-radius: 50%; display: block; width: 56px; height: 56px; object-fit: cover; }
.tmai-author-box__name { font-size: 14px; font-weight: 700; color: var(--darkblue); }
.tmai-author-box__bio { font-size: 12px; color: var(--text-dark-gray); margin-top: 4px; line-height: 1.7; }

/* --- 関連記事 --- */
.tmai-related { margin-top: 40px; }
.tmai-related__heading {
	font-size: 20px;
	font-weight: 500;
	color: var(--darkblue);
	padding-bottom: 9px;
	border-bottom: 1px solid var(--borderbase);
	margin-bottom: 4px;
}
.tmai-related__heading span { font-size: 15px; margin-left: 12px; }
.tmai-related li {
	display: flex;
	gap: 18px;
	align-items: baseline;
	padding: 14px 0;
	border-bottom: 1px solid var(--borderbase);
	font-size: 14px;
}
.tmai-related time { color: var(--text-dark-gray); flex-shrink: 0; }

/* --- プレス一覧 --- */
.tmai-press-list { margin-top: 8px; }
.tmai-press-list__item { padding: 18px 0 6px; border-bottom: 1px solid var(--borderbase); }
.tmai-press-list__title { font-size: 16px; font-weight: 500; line-height: 1.5; margin-bottom: 8px; }
.tmai-article__company-logo img { max-height: 60px; width: auto; }

/* --- イベント一覧ページ --- */
.tmai-events-page { padding-top: 24px; }
.tmai-events-page .tmai-events__grid { grid-auto-rows: min-content; row-gap: 20px; }

/* --- Podcast一覧ページ --- */
.tmai-podcast--page { min-height: 60vh; }
.tmai-podcast--page .tmai-podcast__inner { padding-top: 40px; padding-bottom: 56px; }
.tmai-podcast__pagination { display: flex; justify-content: center; gap: 14px; margin-top: 32px; font-size: 14px; color: #fff; }
.tmai-podcast__pagination .current { font-weight: 700; text-decoration: underline; }

/* --- タクソノミー一覧ランディング（/specialty/ /topic/） --- */
.tmai-tax-index { padding-top: 36px; padding-bottom: 64px; min-height: 50vh; }
.tmai-tax-index__grid { row-gap: 48px; }
.tmai-tax-index .tmai-cat-card__name a:hover { color: var(--lightblue); opacity: 1; }

/* --- 固定ページ --- */
.tmai-static-page { max-width: 760px; margin: 0 auto; padding: 48px var(--side-pad) 80px; }
.tmai-static-page__title {
	font-size: 24px;
	font-weight: 700;
	color: var(--darkblue);
	padding-bottom: 14px;
	border-bottom: 2px solid var(--darkblue);
	margin-bottom: 32px;
}

/* --- 404 --- */
.tmai-404 { max-width: 560px; margin: 0 auto; padding: 80px var(--side-pad) 120px; text-align: center; }
.tmai-404__code { font-size: 64px; font-weight: 700; color: var(--darkblue); line-height: 1; }
.tmai-404__title { font-size: 20px; font-weight: 700; margin: 18px 0 10px; }
.tmai-404__text { font-size: 14px; color: var(--text-dark-gray); margin-bottom: 32px; }
.tmai-search--404 { margin: 0 auto 24px; }
.tmai-404__home .tmai-btn--cta { min-width: 0; height: 36px; font-size: 13px; padding: 0 20px; }

/* ==========================================================================
   13. 共通セクション帯（イベント/Podcast/分類アーカイブ・全ページ）
   ========================================================================== */
html { scroll-behavior: smooth; }
#events, #podcast { scroll-margin-top: 16px; }
.tmai-common-sections { border-top: 1px solid var(--borderbase); margin-top: 48px; }
.tmai-common-sections .tmai-section { padding-top: 32px; }

/* ==========================================================================
   14. 企業アカウント登録（モック）
   ========================================================================== */
.tmai-signup { max-width: 640px; margin: 0 auto; padding: 56px var(--side-pad) 80px; }
.tmai-signup__box { border: 1px solid var(--borderbase); padding: 40px 48px 36px; background: var(--bg-tint); }
.tmai-signup__label { margin-bottom: 14px; }
.tmai-signup__title { font-size: 24px; font-weight: 700; color: var(--darkblue); margin-bottom: 12px; }
.tmai-signup__lead { font-size: 13px; line-height: 1.8; color: var(--text-dark-gray); margin-bottom: 28px; }
.tmai-signup__form p { margin-bottom: 18px; }
.tmai-signup__form label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.tmai-signup__required { font-size: 10px; font-weight: 700; color: #fff; background: var(--lightblue); padding: 2px 6px; margin-left: 6px; }
.tmai-signup__form input[type="text"],
.tmai-signup__form input[type="email"],
.tmai-signup__form input[type="tel"] {
	width: 100%;
	height: 38px;
	padding: 0 12px;
	border: 1px solid var(--borderbase);
	background: #fff;
	font-family: inherit;
	font-size: 14px;
}
.tmai-signup__form input:focus { outline: 2px solid var(--lightblue); outline-offset: -1px; }
.tmai-signup__agree { font-size: 13px; }
.tmai-signup__agree label { display: inline; font-weight: 400; }
.tmai-signup__agree a { color: var(--lightblue); text-decoration: underline; }
.tmai-signup__submit { margin-top: 24px; }
.tmai-signup__submit .tmai-btn--press { width: 100%; height: 42px; font-size: 15px; }
.tmai-signup__submit .tmai-btn--press:disabled { opacity: 0.55; cursor: not-allowed; }
.tmai-signup__note { font-size: 12px; color: var(--text-light-gray); margin-top: 20px; line-height: 1.7; }
.tmai-signup__note a { color: var(--lightblue); }

@media (max-width: 1180px) {
	.tmai-single, .tmai-page { grid-template-columns: minmax(0, 1fr) 332px; }
	.tmai-single .tmai-sidebar-left, .tmai-page .tmai-sidebar-left { display: none; }
}
@media (max-width: 820px) {
	.tmai-single, .tmai-page { grid-template-columns: minmax(0, 1fr); }
	.tmai-single .tmai-sidebar-right, .tmai-page .tmai-sidebar-right { margin-top: 48px; max-width: 360px; }
	.tmai-signup__box { padding: 28px 20px; }
}

/* ==========================================================================
   15. お問い合わせフォーム（Contact Form 7）
   ========================================================================== */
.tmai-cf7 { margin-top: 32px; }
.tmai-cf7__row { margin-bottom: 20px; }
.tmai-cf7__row label { display: block; font-size: 13px; font-weight: 700; color: var(--text-dark-gray); }
.tmai-cf7__req {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	color: #fff;
	background: var(--lightblue);
	padding: 2px 6px;
	margin-left: 6px;
	vertical-align: 2px;
}
.tmai-cf7 input[type="text"],
.tmai-cf7 input[type="email"],
.tmai-cf7 input[type="tel"],
.tmai-cf7 select,
.tmai-cf7 textarea {
	width: 100%;
	margin-top: 6px;
	padding: 10px 12px;
	border: 1px solid var(--borderbase);
	background: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	color: #000;
	box-sizing: border-box;
}
.tmai-cf7 textarea { line-height: 1.7; resize: vertical; }
.tmai-cf7 input:focus,
.tmai-cf7 select:focus,
.tmai-cf7 textarea:focus { outline: 2px solid var(--lightblue); outline-offset: -1px; }
.tmai-cf7 ::placeholder { color: var(--search-placeholder); }

.tmai-cf7__consent { margin: 24px 0; font-size: 13px; }
.tmai-cf7__consent .wpcf7-list-item { margin: 0; }
.tmai-cf7__consent a { color: var(--lightblue); text-decoration: underline; }

.tmai-cf7__submit { margin-top: 8px; }
.tmai-cf7 input[type="submit"] {
	min-width: 220px;
	height: 46px;
	background: var(--lightblue);
	color: #fff;
	border: 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.tmai-cf7 input[type="submit"]:hover { opacity: 0.85; }
.tmai-cf7 input[type="submit"]:disabled { opacity: 0.5; cursor: wait; }

/* CF7のバリデーション表示 */
.wpcf7-not-valid-tip { font-size: 12px; font-weight: 400; color: #c00; margin-top: 4px; }
.wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--borderbase);
	font-size: 13px;
	line-height: 1.7;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--lightblue); background: var(--bg-tint); color: var(--darkblue); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { border-color: #c00; background: #fff5f5; color: #c00; }
.wpcf7-spinner { margin-left: 12px; }

@media (max-width: 820px) {
	.tmai-cf7 input[type="submit"] { width: 100%; }
}

/* --- 企業アカウント申請フォームの追加要素 --- */
.tmai-signup__notice { font-size: 13px; line-height: 1.7; padding: 14px 16px; margin-bottom: 24px; border: 1px solid var(--borderbase); }
.tmai-signup__notice--ok { border-color: var(--lightblue); background: #fff; color: var(--darkblue); }
.tmai-signup__notice--ng { border-color: #c00; background: #fff5f5; color: #c00; }
.tmai-signup__hint { display: block; font-size: 11px; font-weight: 400; color: var(--text-light-gray); margin-top: 5px; }
.tmai-signup__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tmai-signup__submit .tmai-btn--press { width: 100%; height: 42px; font-size: 15px; border: 0; cursor: pointer; font-family: inherit; }
