/**
 * フロントページ（税理士トップ）専用スタイル
 */

/* ----- ヒーロー（FV） ----- */
.tm-front-hero {
	background: linear-gradient(135deg, #1a365d 0%, #2c5282 55%, #2b6cb0 100%);
	color: #fff;
	padding: 3rem 1rem 3.5rem;
	margin-bottom: 0;
}

.tm-front-hero__inner {
	max-width: 800px;
}

.tm-front-hero__label {
	display: inline-block;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.9;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
	padding-bottom: 0.35rem;
}

.tm-front-hero__title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 1rem;
	color: #fff;
}

.tm-front-hero__lead {
	font-size: 1rem;
	line-height: 1.75;
	margin-bottom: 1.5rem;
	opacity: 0.95;
	max-width: 36em;
}

.tm-front-hero__cta {
	margin: 0;
}

.tm-front-hero__btn {
	font-weight: 600;
	padding: 0.55rem 1.25rem;
	border-radius: 4px;
}

/* ----- セクション共通 ----- */
.home .entry-body .tm-section {
	padding: 2.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.home .entry-body .tm-section:last-child {
	border-bottom: none;
	padding-bottom: 1rem;
}

.tm-section-title {
	font-size: 1.375rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
	color: #1a202c;
}

.tm-section-lead {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #4a5568;
	margin: 0 0 1.5rem;
}

/* ----- 選ばれる理由 ----- */
.tm-reasons__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 576px) {
	.tm-reasons__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tm-reasons__card {
	background: #f7fafc;
	border-radius: 8px;
	padding: 1rem;
	border: 1px solid #e2e8f0;
}

.tm-reasons__thumb {
	aspect-ratio: 4 / 3;
	border-radius: 6px;
	background: linear-gradient(145deg, #cbd5e0 0%, #a0aec0 100%);
	margin-bottom: 0.75rem;
}

.tm-reasons__card-title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 0.35rem;
	color: #2d3748;
}

.tm-reasons__card-text {
	font-size: 0.875rem;
	line-height: 1.65;
	margin: 0;
	color: #4a5568;
}

/* ----- 実績ブロック ----- */
.tm-track-record__inner {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 768px) {
	.tm-track-record__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
		gap: 2rem;
	}
}

.tm-track-record__photo {
	min-height: 220px;
	border-radius: 8px;
	background: linear-gradient(160deg, #bee3f8 0%, #63b3ed 45%, #3182ce 100%);
	border: 1px solid #bee3f8;
}

.tm-track-record__body p {
	line-height: 1.75;
	color: #4a5568;
}

.tm-track-record__list {
	margin: 1rem 0 0;
	padding-left: 1.25rem;
	line-height: 1.75;
	color: #2d3748;
}

.tm-track-record__list li + li {
	margin-top: 0.35rem;
}

/* ----- 料金表 ----- */
.tm-price__table-wrap {
	margin: 0;
}

.tm-price__table {
	margin: 0;
	font-size: 0.9375rem;
	background: #fff;
}

.tm-price__table thead th {
	background: #edf2f7;
	font-weight: 700;
	white-space: nowrap;
}

.tm-price__table th,
.tm-price__table td {
	vertical-align: middle;
	padding: 0.65rem 0.85rem;
}

.tm-price__note {
	font-size: 0.875rem;
	line-height: 1.7;
	color: #4a5568;
	margin: 1rem 0 0;
}

.tm-services__note {
	font-size: 0.875rem;
	line-height: 1.7;
	color: #4a5568;
	margin: 1.25rem 0 0;
}

/* ----- 対応地域・注意事項 ----- */
.tm-region p,
.tm-notice p {
	line-height: 1.75;
	color: #4a5568;
	margin: 0;
}

.tm-notice__list {
	margin: 1rem 0 0;
	padding-left: 1.5rem;
	line-height: 1.85;
	color: #2d3748;
}

.tm-notice__list li + li {
	margin-top: 0.35rem;
}

/* ----- 事務所（カラム内マップ） ----- */
.tm-office__columns iframe {
	width: 100%;
	max-width: 100%;
	border: 0;
	border-radius: 8px;
	min-height: 220px;
}

.home .entry-body .veu_contact {
	margin-top: 0;
}

/* ----- 取扱業務 ----- */
.tm-services__list {
	margin: 0;
	padding-left: 1.25rem;
	line-height: 1.85;
	color: #2d3748;
}

.tm-services__list li + li {
	margin-top: 0.35rem;
}

/* ----- FAQ ----- */
.tm-faq__item + .tm-faq__item {
	margin-top: 1.75rem;
	padding-top: 1.75rem;
	border-top: 1px dashed #e2e8f0;
}

.tm-faq__q {
	font-size: 1.0625rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
	color: #2c5282;
	line-height: 1.5;
}

.tm-faq__a {
	margin: 0;
	line-height: 1.8;
	color: #4a5568;
	font-size: 0.9375rem;
}

/* ----- ブログ ----- */
.tm-blog__list {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.tm-blog__item + .tm-blog__item {
	border-top: 1px solid #e2e8f0;
}

.tm-blog__link {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 1rem;
	padding: 0.75rem 0;
	text-decoration: none;
	color: #2b6cb0;
	font-weight: 500;
}

.tm-blog__link:hover {
	text-decoration: underline;
	color: #2c5282;
}

.tm-blog__date {
	font-size: 0.8125rem;
	color: #718096;
	font-weight: 400;
}

.tm-blog__title {
	flex: 1 1 auto;
	min-width: 0;
}

.tm-blog__empty {
	color: #718096;
	font-size: 0.9375rem;
	margin: 0;
}

.tm-blog__more {
	margin: 0;
}

/* ----- 事務所 ----- */
.tm-office__grid {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.tm-office__grid {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.tm-office__map-placeholder {
	min-height: 200px;
	border-radius: 8px;
	background: #edf2f7;
	border: 1px dashed #a0aec0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1rem;
	font-size: 0.9375rem;
	color: #4a5568;
	line-height: 1.6;
}

.tm-office__map-placeholder small {
	font-size: 0.8125rem;
	opacity: 0.85;
}

.tm-office__dl {
	margin: 0;
	font-size: 0.9375rem;
}

.tm-office__row {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.25rem 1rem;
	align-items: baseline;
	margin-top: 0.65rem;
}

.tm-office__row:first-child {
	margin-top: 0;
}

.tm-office__dl dt {
	font-weight: 700;
	color: #2d3748;
	margin: 0;
}

.tm-office__dl dd {
	margin: 0;
	line-height: 1.65;
	color: #4a5568;
}
