/*
color definition
https://saruwakakun.com/design/gallery/palette
#363C70 #7B9AD0 #DEDEDE #EB8686 #D7E6EF
*/

body {
	overflow-wrap: anywhere;
	font-size: 0.9375rem;
	font-family: var(--tm-font-body, "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif);
	font-weight: 400;
	line-height: 1.85;
	color: var(--tm-text, #1f2328);
	background: var(--tm-bg, #eceff3);
}

p.text-indent {
	text-indent: 1rem;
}

a {
	color: #363C70;
}
a:hover {
	color: #2a2f58;
}

.text-condensed {
	line-height: 1.3rem;
}

/*
.row {
	margin-bottom: 20px;
}
*/

.sticky-top { top: 4.25rem; }

.empty_header {
	height: 4.25rem;
}
.a-section {
	padding-top: 4.75rem !important;
}

small, .small {
	font-size: 80%;
}
.msmall {
	font-size: 70%;
}

.lsmall {
	line-height: 1.4rem;
}

.imgh {
	max-height: 180px;
}

.w-100 { width: 100%; }
.w-75 { width: 75%; }
.w-70 { width: 70%; }
.w-60 { width: 60%; }
.w-50 { width: 50%; }
.w-40 { width: 40%; }
.w-30 { width: 30%; }
.w-25 { width: 25%; }
.w-20 { width: 20%; }
.w-15 { width: 15%; }
.w-5 { width: 5%; }

.mw-100 { max-width: 100%; }
.mw-75 { max-width: 75%; }
.mw-70 { max-width: 70%; }
.mw-60 { max-width: 60%; }
.mw-50 { max-width: 50%; }
.mw-40 { max-width: 40%; }
.mw-30 { max-width: 30%; }
.mw-25 { max-width: 25%; }
.mw-20 { max-width: 20%; }
.mw-15 { max-width: 15%; }
.mw-5 { max-width: 5%; }

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 {
	padding-top: 0.5em;
	padding-bottom: 0.5em;
}

/* Header subtitle only — do not shrink page h1 (Bootstrap owns those). */
.site-brand-title,
#hdl .navbar-brand h1 {
	padding: 0;
	margin: 0;
	font-size: 0.8rem;
	max-width: 250px;
	font-weight: 600;
}
h2, .h2 {
	font-size: 1.6rem;
}
h3, .h3 {
	font-size: 1.35rem;
}
h4, .h4 {
	font-size: 1.2rem;
}

.caption-top {
    color: black;
}

.navbar,
.navbar-brand {
	padding: 0;
}
.navbar-light .navbar-nav .nav-link {
	color: black;
	font-weight: 800;
}

.text-black {
	color: black;
}

.card-link {
    transition: all 0.2s ease;
    cursor: pointer
}

.card-link:hover {
    box-shadow: 5px 6px 6px 2px #e9ecef;
    transform: scale(1.05)
}

.nowrap {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.line-heading {
	position: relative;
	border-bottom: 0;
	border-top: 2px solid var(--tm-navy-deep, #2a2f58);
	overflow-wrap: anywhere;
	padding-top: 1.1rem;
	padding-bottom: 0.35rem;
	margin-bottom: 1rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}
.line-heading::after {
	display: none;
}

.line-heading.success::after,
.line-heading.info::after,
.line-heading.warning::after {
	display: none;
}


.pointer {
	cursor: pointer;
}

.primary-border {
	border-color: #363C70;
}
.table-primary {
	--bs-table-color: #fff;
	--bs-table-bg: #363C70;
	--bs-table-border-color: #363C70;
	color: white;
	font-weight: 800;
	border-color: #363C70;
}
.table-data {
	font-size: 1rem;
	border-top: 1px solid #ddd;
}

.bg-primary {
	background-color: #363C70 !important;
}

.btn-primary {
	background-color: #363C70;
	border-color: #363C70;
}
.btn-primary:hover {
	background-color: #7B9AD0;
}

/* table of contents */
.toc {
	padding: 0;
	border-radius: 0;
	border: 0;
	border-top: 1px solid var(--tm-divider, #dfe3e8);
}
.toc .toc-title {
	font-size: 0.7rem;
	font-weight: 600;
	padding: 0 0 0.75rem;
	margin: 0;
	background: transparent;
	border: none;
	text-align: left;
	color: var(--tm-muted, #6b7280);
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.toc > ul {
	font-weight: 600;
	margin: 0;
	padding: 0;
	list-style: none;
}
.toc > ul > li {
	line-height: 1.5;
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
}
.toc > ul > li > a {
	display: block;
	padding: 0.75rem 0 0.75rem 0.75rem;
	border-left: 2px solid transparent;
	text-decoration: none;
	color: var(--tm-text, #1f2328);
	font-size: 0.8125rem;
}
.toc > ul > li > a:hover {
	border-left-color: var(--tm-navy, #363C70);
	color: var(--tm-navy, #363C70);
}

ul.none li {
	list-style: none;
}

.sns-nav {
	/* position: absolute; */
	height: 21px !important;
}
.sns-nav .btn-fb {
  background: #3b5998;
  color: #FFFFFF;
  padding-top: 2px;
  padding-bottom: 2px;
  margin-bottom: 1px !important;
  vertical-align: top;
  border: none;
  font-size: 11px;
}
.sns-nav .btn-fb:active {
	background: #8b9dc3;
	color: #FFFFFF;
}
.sns-nav .btn-twitter {
	background: #00aced;
	color: #FFFFFF;
	padding-top: 2px;
	padding-bottom: 2px;
	vertical-align: top;
	border: none;
	font-size: 11px;
  }
.sns-nav .btn-twitter:active {
	background: #c0deed;
	color: #FFFFFF;
}

/* === footer === */
.sf_footer {
	margin-top: 0;
	background: var(--tm-navy-deep, #2a2f58);
	padding-top: var(--tm-section-y, 2.5rem);
	border-top: 0;
	font-size: 0.875rem;
}

.sf_footer hr {
	margin: 5px 0;
	border-color: rgba(255,255,255,0.2);
}

.sf_footer .row, .sf_footer .row-fluid {
	margin: 0;
}

/* === blog side bar === */
.blog-sidebar ul.category {
	list-style: none;
    margin: 0;
    padding-left: 0;
}

.blog-sidebar ul.category li a {
	color: #555;
	font-size: 0.85rem;
	line-height: 2rem;
	height: 2rem;
	display: block;
	padding: 0 10px;
}

.blog-sidebar ul.category li a:hover {
	text-decoration: none;
	font-weight: bold;
	background: #F8F8F8;
}

.page-item.active .page-link {
	background-color: #363C70;
	border-color: #363C70;
}
.page-link {
	color: #363C70;
}

.dbox {
	padding: 0.5em 1em;
	margin: 0 0 1rem 0.5rem;
	background: white;
	border-left: solid 3px #363C70;
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.22);
}
.dbox p {
	margin: 0; 
	padding: 0;
	text-indent: 0;
	line-height: 1.8rem;
}

.tbox {
	position: relative;
	padding: 1rem;
	border: solid 2px #363C70;
	border-radius: 5px;
}
.tbox .box-title {
	position: absolute;
	display: inline-block;
	top: -13px;
	left: 10px;
	padding: 0 9px;
	line-height: 1;
	font-size: 1.2rem;
	background: #FFF;
	color: #363C70;
	font-weight: bold;
}
.tbox p {
    margin: 0; 
    padding: 0;
}

.icon-square {
	width: 90px;
}

.clear-both {
	clear: both;
	padding-top: 1em;
}

@media (max-width: 420px) {

	.icon-square {
		width: 80px;
	}

	.line-heading::after {
		width: 20%;
	}

	.t-vertical tr {
		border: solid 1px #363C70;
	}
	.t-vertical td {
		width: 100%;
		display: block;
		border: none;
	}
	.t-vertical th {
		display: none;
	}
	.t-vertical td:nth-of-type(1) {
		background-color: #f8f9fa;
		font-weight: 600;
	}
	.t-vertical td:nth-of-type(3) {
		padding-bottom: 1.5rem;
	}
}

/* =========================================================
   2026 Brand Terrace redesign — index + article shells
   ========================================================= */

.tm-shell,
.index-redesign,
.contents-article {
	max-width: var(--tm-shell-max, 1240px);
	margin-left: auto;
	margin-right: auto;
	background: var(--tm-surface, #fff);
	border-left: 1px solid var(--tm-divider, #dfe3e8);
	border-right: 1px solid var(--tm-divider, #dfe3e8);
}

.index-redesign {
	background: var(--tm-bg, #eceff3);
	border: 0;
}

/* ---- Index hero (v2) ---- */
.index-hero {
	background: var(--tm-navy-deep, #2a2f58);
	color: #fff;
	padding: 3.75rem 0 0;
	overflow: hidden;
}

.index-hero-inner {
	padding-bottom: 0;
}

.index-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(12rem, 0.75fr);
	gap: 3rem;
	align-items: end;
}

.index-hero-kicker {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.28em;
	color: #a9adf0;
}

.index-hero-copy h1 {
	margin: 1.4rem 0 0;
	padding: 0;
	border: 0;
	font-size: clamp(2rem, 5vw, 3.75rem);
	font-weight: 900;
	line-height: 1.14;
	letter-spacing: -0.02em;
	color: #fff;
}

.index-hero-accent {
	color: #a9adf0;
}

.index-hero-copy p {
	margin: 1.4rem 0 0;
	max-width: 44ch;
	font-size: 0.9375rem;
	line-height: 1.95;
	color: rgba(255, 255, 255, 0.92);
}

.index-hero-stats {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding-bottom: 0.35rem;
}

.index-stat {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding: 0.85rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.index-stat:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}

.index-stat-label {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.5);
}

.index-stat-value {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1;
}

.index-search-panel {
	margin-top: 3rem;
	background: var(--tm-bg, #eceff3);
	color: var(--tm-text, #1f2328);
}

.index-search-cats {
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
}

.index-search-cat {
	flex: 1 1 6.5rem;
	margin: 0;
	cursor: pointer;
}

.index-search-cat input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.index-search-cat span {
	display: block;
	padding: 0.85rem 1rem;
	border-right: 1px solid var(--tm-divider, #dfe3e8);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	background: transparent;
}

.index-search-cat input:checked + span {
	background: var(--tm-navy, #363C70);
	color: #fff;
}

.index-search-row {
	display: flex;
	align-items: stretch;
	min-height: 4.25rem;
}

.index-search-input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 1.35rem 1.25rem;
	font-size: clamp(1rem, 2.2vw, 1.4rem);
	color: var(--tm-text, #1f2328);
	outline: none;
}

.index-search-submit {
	border: 0;
	cursor: pointer;
	background: var(--tm-navy, #363C70);
	color: #fff;
	padding: 0 1.75rem;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.index-search-submit:hover {
	background: var(--tm-navy-deep, #2a2f58);
}

.index-search-popular {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.25rem;
	border-top: 1px solid var(--tm-divider, #dfe3e8);
}

.index-popular-label {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--tm-muted, #6b7280);
	margin-right: 0.25rem;
}

.index-popular-chip {
	border: 1px solid var(--tm-divider, #dfe3e8);
	padding: 0.3rem 0.7rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--tm-text, #1f2328);
	text-decoration: none;
	background: transparent;
}

.index-popular-chip:hover {
	border-color: var(--tm-navy, #363C70);
	color: var(--tm-navy, #363C70);
}

.index-search-cat:last-child span {
	border-right: 0;
}

.tm-article-header,
.tm-meta-bar {
	padding-left: var(--tm-gutter, 1.125rem);
	padding-right: var(--tm-gutter, 1.125rem);
}

.tm-article-main .eyecatch,
.contents-article .imgh,
.contents-article [class*="eyecatch"] {
	max-width: 100%;
	overflow: hidden;
}

.contents-article img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Pass: tighten article sidebar ads and TOC rhythm */
.tm-side-toc {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--tm-divider, #dfe3e8);
}

.tm-side-toc > li {
	margin: 0 !important;
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
}

.tm-side-toc .btn-toggle::before {
	display: none;
}

@media (max-width: 991.98px) {
	.tm-article-main {
		padding-bottom: 2rem;
	}
}

@media (max-width: 767.98px) {
	.index-section.tm-gutter,
	.tm-gutter {
		padding-left: 1rem;
		padding-right: 1rem;
	}
	.index-search-cats {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.index-search-cat span {
		border-right: 0;
		border-bottom: 1px solid var(--tm-divider, #dfe3e8);
	}
	.index-search-cat:nth-child(odd) span {
		border-right: 1px solid var(--tm-divider, #dfe3e8);
	}
	#hdl .header-search-group {
		max-width: 100%;
	}
	.tm-meta-bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.65rem;
	}
	.tm-meta-right {
		width: 100%;
		justify-content: space-between;
	}
	.tm-kpis {
		gap: 0 1rem;
	}
	.tm-kpi:nth-child(3) {
		grid-column: 1 / -1;
	}
	.tm-article-title {
		font-size: clamp(1.55rem, 8vw, 2.2rem);
	}
	.index-hero {
		padding-top: 2.25rem;
	}
	.index-search-input {
		font-size: 1rem;
		padding: 1.1rem 1rem;
	}
}

.index-popular-label {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--tm-muted, #6b7280);
	margin-right: 0.25rem;
}

.index-popular-chip {
	border: 1px solid var(--tm-divider, #dfe3e8);
	padding: 0.3rem 0.7rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--tm-text, #1f2328);
	text-decoration: none;
	background: transparent;
}

.index-popular-chip:hover {
	border-color: var(--tm-navy, #363C70);
	color: var(--tm-navy, #363C70);
}

.index-section {
	padding: var(--tm-section-y, 2.5rem) 0;
	background: var(--tm-bg, #eceff3);
}

.index-section.tm-gutter {
	padding-left: var(--tm-gutter, 1.125rem);
	padding-right: var(--tm-gutter, 1.125rem);
}

.index-section-bordered {
	border-bottom: 2px solid var(--tm-text, #1f2328);
}

.index-section-head {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 1.75rem;
}

.index-section-num,
.tm-section-num {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	color: var(--tm-navy, #363C70);
}

.index-section-head h2,
.tm-section-head h2 {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: clamp(1.2rem, 2.4vw, 1.5rem);
	font-weight: 900;
	line-height: 1.3;
}

.index-section-lead {
	max-width: 52ch;
	margin: -0.5rem 0 1.5rem;
	color: var(--tm-muted, #6b7280);
	line-height: 1.85;
}

.index-entry-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: var(--tm-divider, #dfe3e8);
	border: 1px solid var(--tm-divider, #dfe3e8);
}

.index-entry-card {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 1.35rem 1.15rem;
	background: #fff;
	text-decoration: none;
	color: var(--tm-text, #1f2328);
	min-height: 9rem;
}

.index-entry-card:hover {
	background: var(--tm-navy-tint, #f3f4f9);
	color: var(--tm-navy, #363C70);
}

.index-entry-kicker {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: var(--tm-navy, #363C70);
}

.index-entry-title {
	font-size: 1.05rem;
	font-weight: 900;
	line-height: 1.35;
}

.index-entry-meta {
	margin-top: auto;
	font-size: 0.75rem;
	color: var(--tm-muted, #6b7280);
}

.index-area-wrap,
.index-class-wrap,
.index-rank-wrap {
	overflow: hidden;
}

.index-area-wrap .row,
.index-class-wrap.row,
.index-rank-wrap.row {
	margin-left: 0;
	margin-right: 0;
	--bs-gutter-x: 1.25rem;
}

.index-rank-wrap .col-lg-5,
.index-rank-wrap [class*="col-"] {
	padding-left: 0.75rem;
	padding-right: 0.75rem;
}

.index-rank-wrap .line-heading {
	border-top-width: 1px;
}

.index-rank-wrap .table {
	margin-bottom: 1rem;
}

.index-class-wrap .card,
.index-class-wrap .card-link {
	border-radius: 0;
	box-shadow: none;
	border: 1px solid var(--tm-divider, #dfe3e8);
	overflow: hidden;
}

.index-class-wrap > [class*="col-"] {
	flex: 0 0 25%;
	width: 25%;
	margin-left: 0 !important;
	padding: 0.35rem;
}

.index-class-wrap .card-link {
	height: 100% !important;
	min-height: 8.75rem;
}

.index-class-wrap .card-img-top {
	display: none;
}

.index-class-wrap .card-header {
	padding: 0.8rem 0.9rem;
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
	background: transparent;
	font-size: 0.875rem;
}

.index-class-wrap .card-body {
	padding: 0.8rem 0.9rem 0.4rem;
}

.index-class-wrap .card-body p {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	color: var(--tm-muted, #6b7280);
	line-height: 1.65;
}

.index-class-wrap .card-footer {
	margin-top: auto;
	padding: 0.35rem 0.9rem 0.7rem !important;
	border-top: 0;
	background: transparent;
}

/* Arrow on ::before so Bootstrap .stretched-link can keep ::after as the hit target. */
.index-class-wrap .card-footer a::before {
	content: " →";
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-weight: 700;
}

.index-class-wrap .card-footer a.stretched-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.index-class-wrap .card-link:hover {
	transform: none;
	box-shadow: none;
	border-color: var(--tm-navy, #363C70);
	background: var(--tm-navy-tint, #f3f4f9);
}

.index-class-wrap img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.index-area-wrap img,
.index-class-wrap img,
.index-rank-wrap img,
.tm-banner img,
.contents-article img {
	max-width: 100%;
	height: auto;
}

.index-poster {
	background: var(--tm-navy, #363C70);
	color: #fff;
	padding: 4rem 0;
}

.index-poster h2 {
	margin: 0;
	padding: 0;
	border: 0;
	max-width: 24ch;
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	font-weight: 900;
	line-height: 1.25;
	color: #fff;
}

.index-poster p {
	margin: 1.35rem 0 1.75rem;
	max-width: 46ch;
	font-size: 0.9375rem;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.96);
}

.index-poster-cta {
	display: inline-flex;
	align-items: center;
	padding: 0.9rem 1.35rem;
	border: 2px solid #fff;
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.index-poster-cta:hover {
	background: #fff;
	color: var(--tm-navy, #363C70);
}

/* ---- Contents article ---- */
.contents-article {
	padding: 0;
	font-size: 0.9rem;
	line-height: 1.95;
	background: var(--tm-surface, #fff);
}

.tm-article-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 16.5rem;
	align-items: start;
}

.tm-article-main {
	min-width: 0;
	padding: 0 0 3rem;
}

.tm-article-sidebar {
	border-left: 1px solid var(--tm-divider, #dfe3e8);
	background: var(--tm-surface-muted, #f5f7f9);
	min-height: 100%;
	padding: 1.75rem 1rem 2rem;
}

.tm-sidebar-sticky {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.tm-sidebar-label {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--tm-muted, #6b7280);
	margin-bottom: 0.35rem;
}

.tm-side-toc .btn-toggle,
.tm-side-toc a {
	border-radius: 0 !important;
	border-left: 2px solid var(--tm-divider, #dfe3e8);
	padding-left: 0.65rem !important;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--tm-text, #1f2328);
	text-align: left;
}

.tm-side-toc .btn-toggle:hover,
.tm-side-toc a:hover {
	border-left-color: var(--tm-navy, #363C70);
	background: var(--tm-navy-tint, #f3f4f9) !important;
	color: var(--tm-navy, #363C70);
}

.tm-sidebar-ad {
	overflow: hidden;
}

.tm-meta-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	padding: 0.85rem var(--tm-gutter, 1.125rem);
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
	font-size: 0.72rem;
	color: var(--tm-muted, #6b7280);
}

.tm-meta-updated {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	letter-spacing: 0.1em;
	margin-right: 0.75rem;
}

.tm-meta-right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
}

.tm-article-header {
	padding: 3rem var(--tm-gutter, 1.125rem) 0;
}

.tm-article-kicker {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	color: var(--tm-navy, #363C70);
	text-transform: uppercase;
}

.tm-article-title {
	margin: 1.25rem 0 0;
	padding: 0;
	border: 0;
	font-size: clamp(1.75rem, 4vw, 3.4rem);
	font-weight: 900;
	line-height: 1.14;
	letter-spacing: -0.02em;
}

.tm-article-lead {
	margin-top: 1.25rem;
	max-width: 62ch;
}

.tm-article-lead p {
	max-width: 62ch;
	line-height: 1.95;
	margin-bottom: 0.85rem;
}

.tm-kpis {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 2rem;
	margin-top: 2.5rem;
}

.tm-kpi {
	border-top: 2px solid var(--tm-text, #1f2328);
	padding: 1rem 0;
	min-width: 0;
}

.tm-kpi-label {
	font-family: var(--tm-font-numeric, Archivo, sans-serif);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--tm-muted, #6b7280);
}

.tm-kpi-value {
	margin-top: 0.6rem;
	font-size: clamp(1.6rem, 3vw, 2.35rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.tm-kpi-value-sm {
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	line-height: 1.25;
}

.tm-supervisor-wrap,
.tm-section,
.tm-about-block,
.tm-description,
.tm-blocks,
.tm-credit,
.tm-banner-block {
	padding-left: var(--tm-gutter, 1.125rem);
	padding-right: var(--tm-gutter, 1.125rem);
}

.tm-section {
	padding-top: 3rem;
}

.tm-promo-section {
	margin: 3.5rem var(--tm-gutter, 1.125rem) 0;
	padding: 1.5rem !important;
	border: 1px solid var(--tm-divider, #dfe3e8);
	border-left: 3px solid var(--tm-navy, #363C70);
	background: var(--tm-navy-tint, #f3f4f9);
}

.tm-promo-section .tm-section-head {
	margin-bottom: 0.75rem;
}

.tm-promo-section .tm-section-num {
	font-size: 0.625rem;
}

.tm-promo-section .line-heading {
	font-size: 1.1rem !important;
}

.tm-promo-section p {
	font-size: 0.8125rem;
	line-height: 1.8;
}

.tm-promo-section .tm-banner {
	margin-bottom: 0;
}

.tm-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.85rem;
	margin-bottom: 1.35rem;
}

.tm-section-head .line-heading {
	border-top: 0;
	padding-top: 0;
	margin-bottom: 0;
}

.tm-section p,
.tm-description p,
.contents-article p {
	max-width: 64ch;
	line-height: 1.95;
}

.tm-trends-table {
	max-width: 28rem;
	margin: 1.5rem 0;
}

.tm-banner {
	margin: 1.25rem 0;
	overflow: hidden;
}

.tm-toc-mobile {
	display: none;
	margin: 1.5rem var(--tm-gutter, 1.125rem);
	border-top: 1px solid var(--tm-divider, #dfe3e8);
	border-bottom: 1px solid var(--tm-divider, #dfe3e8);
	padding: 0.35rem 0;
}

.tm-toc-mobile > summary {
	cursor: pointer;
	font-weight: 700;
	padding: 0.75rem 0;
	color: var(--tm-navy-deep, #2a2f58);
}

.tm-toc-mobile .toc {
	margin-bottom: 0.75rem;
}

/* Shared page shell */
.container.tm-shell,
.container-lg.tm-shell {
	padding-top: 1.5rem;
	padding-bottom: 2.5rem;
}

.container > .row,
.tm-shell > .row {
	max-width: 100%;
}

/* Images never overflow */
img,
.img-fluid,
.carousel-item img {
	max-width: 100%;
}

@media (max-width: 991.98px) {
	.index-hero-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.index-entry-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.tm-article-layout {
		grid-template-columns: 1fr;
	}
	.tm-article-sidebar {
		display: none !important;
	}
	.tm-toc-mobile {
		display: block;
	}
	.tm-kpis {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0 1rem;
	}
	.index-class-wrap > [class*="col-"] {
		flex-basis: 50%;
		width: 50%;
	}
}

@media (max-width: 767.98px) {
	.index-hero {
		padding-top: 2.5rem;
	}
	.index-hero-copy h1 {
		font-size: clamp(1.7rem, 9vw, 2.4rem);
	}
	.index-search-row {
		flex-direction: column;
		min-height: 0;
	}
	.index-search-submit {
		justify-content: center;
		padding: 1rem;
	}
	.index-entry-grid {
		grid-template-columns: 1fr;
	}
	.tm-kpis {
		grid-template-columns: 1fr 1fr;
		gap: 0 1.25rem;
	}
	.tm-article-header {
		padding-top: 2rem;
	}
	.tm-article-title {
		font-size: clamp(1.55rem, 8vw, 2.2rem);
	}
	.tm-promo-section {
		margin-top: 2.25rem;
		padding: 1.1rem !important;
	}
	.index-section,
	.tm-section {
		padding-top: 2.25rem;
	}
	.tm-shell,
	.index-redesign,
	.contents-article {
		border-left: 0;
		border-right: 0;
	}
}

@media (max-width: 420px) {
	.line-heading::after {
		display: none;
	}
	.index-class-wrap > [class*="col-"] {
		flex-basis: 100%;
		width: 100%;
	}
}
