/* =========================================================
   下層ページ（ブロックエディター）用のデザイン
   本番表示とエディター画面の両方で読み込まれます。
   ========================================================= */

/* ---------- ページ本文の幅とセクション ---------- */

.tsk-entry {
	--tsk-entry-w: 880px;
	--tsk-sec-w: 1140px;
	padding-block: clamp(48px, 6vw, 80px);
	font-size: 14.5px;
	line-height: 2;
}
.tsk-entry:has(> .alignfull:first-child) { padding-top: 0; }
.tsk-entry:has(> .alignfull:last-child) { padding-bottom: 0; }

.tsk-entry > * {
	width: min(var(--tsk-entry-w), 100% - var(--tsk-gutter, 24px) * 2);
	margin-inline: auto;
	margin-block: 0;
}
.tsk-entry > * + * { margin-top: 1.5em; }
.tsk-entry > .alignwide { width: min(1140px, 100% - var(--tsk-gutter, 24px) * 2); }
.tsk-entry > .alignfull { width: 100%; }
.tsk-entry > .alignfull + .alignfull { margin-top: 0; }

.tsk-entry .wp-block-group.alignfull { padding-block: clamp(56px, 7vw, 96px); }
.tsk-entry .wp-block-group.alignfull > * {
	width: min(var(--tsk-sec-w), 100% - var(--tsk-gutter, 24px) * 2);
	max-width: none;
	margin-inline: auto;
}

/* 白いセクションが続くときは、間を詰める */
.tsk-entry .tsk-sec:not([class*="is-style-tsk-bg"]) + .tsk-sec:not([class*="is-style-tsk-bg"]) { padding-top: 0; }

/* 文章は読みやすい行の長さに（左揃えのまま右側に余白） */
.tsk-entry .wp-block-group.alignfull:not(.tsk-center) > p:not(.is-style-tsk-lead) {
	padding-right: max(0px, 100% - 820px);
}

/* セクション内の縦の間隔 */
.tsk-sec > * { margin-block: 0; }
.tsk-sec > * + * { margin-top: 20px; }
.tsk-sec > .is-style-tsk-eyebrow + .is-style-tsk-title { margin-top: 4px; }
.tsk-sec > .is-style-tsk-title + * { margin-top: 28px; }
.tsk-sec > .wp-block-media-text + .wp-block-media-text { margin-top: clamp(48px, 6vw, 80px); }
.tsk-center { text-align: center; }
.tsk-center .wp-block-buttons { justify-content: center; }

/* 見出しなしで書いた普通の文章（プライバシーポリシーなど） */
.tsk-entry h2:not([class*="is-style-"]) {
	margin-top: 2.4em;
	padding-left: 14px;
	border-left: 4px solid var(--tsk-primary, #0a5bd3);
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head);
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: .08em;
}
.tsk-entry h3:not([class*="is-style-"]) {
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head);
	font-size: 18px;
	line-height: 1.6;
	letter-spacing: .06em;
}
.tsk-entry a:not(.wp-block-button__link) { color: var(--tsk-primary, #0a5bd3); }

/* ---------- 文字のスタイル ---------- */

.is-style-tsk-eyebrow {
	color: var(--tsk-primary, #0a5bd3);
	font-family: var(--tsk-font-en, "Montserrat", sans-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	line-height: 1.6;
}

.is-style-tsk-title {
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head, "Zen Kaku Gothic New", sans-serif);
	font-size: clamp(24px, 2.3vw, 32px);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .12em;
}
h3.is-style-tsk-title { font-size: clamp(20px, 1.8vw, 24px); letter-spacing: .1em; }

.is-style-tsk-bar {
	padding-left: 14px;
	border-left: 4px solid var(--tsk-primary, #0a5bd3);
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head, sans-serif);
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: .08em;
}

.is-style-tsk-lead {
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head, sans-serif);
	font-size: clamp(22px, 2.6vw, 34px);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .1em;
}

.tsk-sign {
	color: var(--tsk-navy, #0d2a5c);
	font-weight: 700;
	letter-spacing: .12em;
	text-align: right;
}

/* ---------- 背景・カード ---------- */

.is-style-tsk-bg-light { background: var(--tsk-light, #eef4fb); }

.is-style-tsk-bg-primary {
	background: var(--tsk-primary, #0a5bd3);
	background: linear-gradient(115deg, var(--tsk-primary, #0a5bd3) 0%, color-mix(in srgb, var(--tsk-primary, #0a5bd3) 72%, var(--tsk-navy, #0d2a5c)) 100%);
	color: #fff;
}
.is-style-tsk-bg-primary .is-style-tsk-title,
.is-style-tsk-bg-primary h2,
.is-style-tsk-bg-primary h3 { color: #fff; }
.is-style-tsk-bg-primary .is-style-tsk-eyebrow { color: rgba(255, 255, 255, .85); }

.is-style-tsk-card {
	padding: 28px 26px 30px;
	background: #fff;
	box-shadow: 0 2px 14px rgba(13, 42, 92, .06);
}
.is-style-tsk-card > * { margin-block: 0; }
.is-style-tsk-card > * + * { margin-top: 12px; }
.is-style-tsk-card h3 {
	color: var(--tsk-navy, #0d2a5c);
	font-family: var(--tsk-font-head, sans-serif);
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: .08em;
}
.is-style-tsk-card p { color: var(--tsk-muted, #62718b); font-size: 13.5px; line-height: 1.9; }
.is-style-tsk-card .is-style-tsk-eyebrow + h3 { margin-top: 2px; }

.tsk-cols.wp-block-columns { gap: clamp(16px, 2vw, 28px); margin-bottom: 0; }

/* ---------- 写真と文章 ---------- */

.is-style-tsk-media.wp-block-media-text { grid-template-columns: 48% minmax(0, 1fr); }
.is-style-tsk-media.wp-block-media-text.has-media-on-the-right { grid-template-columns: minmax(0, 1fr) 48%; }
.is-style-tsk-media .wp-block-media-text__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.is-style-tsk-media .wp-block-media-text__content { padding: 0 0 0 clamp(28px, 5vw, 64px); }
.is-style-tsk-media.has-media-on-the-right .wp-block-media-text__content { padding: 0 clamp(28px, 5vw, 64px) 0 0; }
.is-style-tsk-media .wp-block-media-text__content > * { margin-block: 0; }
.is-style-tsk-media .wp-block-media-text__content > * + * { margin-top: 18px; }
.is-style-tsk-media .wp-block-media-text__content > .is-style-tsk-eyebrow + .is-style-tsk-title { margin-top: 4px; }

@media (max-width: 600px) {
	.is-style-tsk-media.wp-block-media-text.is-stacked-on-mobile,
	.is-style-tsk-media.wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right { grid-template-columns: 100%; }
	.is-style-tsk-media.is-stacked-on-mobile .wp-block-media-text__media { grid-row: 1; }
	.is-style-tsk-media.is-stacked-on-mobile .wp-block-media-text__content,
	.is-style-tsk-media.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__content { grid-row: 2; padding: 24px 0 0; }
	.tsk-entry .tsk-stack .is-style-tsk-media .wp-block-media-text__media { margin-inline: calc(var(--tsk-gutter, 24px) * -1); }
}

/* ---------- 表 ---------- */

.is-style-tsk-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.is-style-tsk-table.wp-block-table td,
.is-style-tsk-table.wp-block-table th {
	padding: 18px 0;
	border: 0;
	border-bottom: 1px solid var(--tsk-line, #d6dfeb);
	text-align: left;
	vertical-align: top;
	line-height: 1.9;
}
.is-style-tsk-table tr:first-child td { border-top: 1px solid var(--tsk-line, #d6dfeb); }
.is-style-tsk-table td:first-child {
	width: 26%;
	padding-right: 24px;
	color: var(--tsk-navy, #0d2a5c);
	font-weight: 700;
}
.tsk-history td:first-child { color: var(--tsk-primary, #0a5bd3); font-family: var(--tsk-font-en, sans-serif); white-space: nowrap; }

@media (max-width: 600px) {
	.is-style-tsk-table.wp-block-table td { display: block; width: 100%; padding: 0 0 14px; border-bottom: 0; }
	.is-style-tsk-table.wp-block-table td:first-child { width: 100%; padding: 14px 0 2px; border-top: 1px solid var(--tsk-line, #d6dfeb); }
	.is-style-tsk-table tr:first-child td:last-child { border-top: 0; }
	.is-style-tsk-table tr:last-child td:last-child { border-bottom: 1px solid var(--tsk-line, #d6dfeb); }
}

/* ---------- リスト ---------- */

.is-style-tsk-check { padding-left: 0; list-style: none; }
.is-style-tsk-check li { position: relative; padding-left: 28px; }
.is-style-tsk-check li + li { margin-top: 8px; }
.is-style-tsk-check li::before {
	content: "";
	position: absolute;
	top: .55em;
	left: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--tsk-primary, #0a5bd3);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.is-style-tsk-check li::after {
	content: "";
	position: absolute;
	top: calc(.55em + 5px);
	left: 5px;
	width: 8px;
	height: 5px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg);
}
.tsk-2col { columns: 2; column-gap: 40px; }
.tsk-2col li { break-inside: avoid; }
@media (max-width: 600px) { .tsk-2col { columns: 1; } }

.is-style-tsk-steps { counter-reset: tsk-step; padding-left: 0; list-style: none; }
.is-style-tsk-steps li {
	position: relative;
	padding: 0 0 28px 64px;
	counter-increment: tsk-step;
	line-height: 1.9;
}
.is-style-tsk-steps li:last-child { padding-bottom: 0; }
.is-style-tsk-steps li::before {
	content: counter(tsk-step, decimal-leading-zero);
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--tsk-primary, #0a5bd3);
	color: #fff;
	font-family: var(--tsk-font-en, sans-serif);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
}
.is-style-tsk-steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 48px;
	bottom: 4px;
	left: 21px;
	width: 2px;
	background: var(--tsk-line, #d6dfeb);
}
.is-style-tsk-steps strong { color: var(--tsk-navy, #0d2a5c); font-size: 16px; letter-spacing: .08em; }

/* ---------- ボタン ---------- */

.is-style-tsk-solid .wp-block-button__link,
.is-style-tsk-outline .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	min-width: 230px;
	min-height: 52px;
	padding: 0 22px 0 34px;
	border: 1px solid var(--tsk-primary, #0a5bd3);
	border-radius: 2px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.5;
	text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s;
}
.is-style-tsk-solid .wp-block-button__link::after,
.is-style-tsk-outline .wp-block-button__link::after {
	content: "";
	width: 14px;
	height: 14px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11.5M9.5 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11.5M9.5 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s;
}
.is-style-tsk-solid .wp-block-button__link:hover::after,
.is-style-tsk-outline .wp-block-button__link:hover::after { transform: translateX(3px); }

.is-style-tsk-solid .wp-block-button__link { background: var(--tsk-primary, #0a5bd3); color: #fff; }
.is-style-tsk-solid .wp-block-button__link:hover { background: var(--tsk-navy, #0d2a5c); border-color: var(--tsk-navy, #0d2a5c); color: #fff; }
.is-style-tsk-outline .wp-block-button__link { background: #fff; color: var(--tsk-navy, #0d2a5c); }
.is-style-tsk-outline .wp-block-button__link:hover { background: var(--tsk-primary, #0a5bd3); color: #fff; }

/* 青背景の中のボタン */
.is-style-tsk-bg-primary .is-style-tsk-solid .wp-block-button__link { background: #fff; border-color: #fff; color: var(--tsk-primary, #0a5bd3); }
.is-style-tsk-bg-primary .is-style-tsk-solid .wp-block-button__link:hover { background: var(--tsk-navy, #0d2a5c); border-color: var(--tsk-navy, #0d2a5c); color: #fff; }
.is-style-tsk-bg-primary .is-style-tsk-outline .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .85); color: #fff; }

/* ---------- 地図 ---------- */

.tsk-map iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }

@media (max-width: 600px) {
	.is-style-tsk-card { padding: 22px 20px 24px; }
	.tsk-entry { font-size: 14px; }
}
