@charset "UTF-8";

/* ==========================================================================
   14. Typography Rules - サイト全体の文字サイズ統一
   ========================================================================== */

:root {
	--fz-body: clamp(14px, 1.15vw, 16px);
	--fz-small: clamp(12px, 0.95vw, 13px);
	--fz-lead: clamp(14px, 1.05vw, 16px);
	--fz-title-main: clamp(24px, 2.8vw, 32px);
	--fz-title-section: clamp(21px, 2.2vw, 28px);
	--fz-title-card: clamp(18px, 1.6vw, 22px);
	--fz-title-minor: clamp(16px, 1.35vw, 19px);
}

body {
	font-size: var(--fz-body);
	line-height: 1.75;
}

/* 共通ヘッダータイトル（TOP・下層共通） */
.ks-main-title,
h2.ks-main-title,
.ginga-hub-h2 {
	font-size: var(--fz-title-section) !important;
	line-height: 1.35;
}

.ks-sub-title {
	font-size: var(--fz-small);
	letter-spacing: 0.12em;
}

.ginga-hub-sub,
.plan-compare-lead,
.ocean-column-lead {
	font-size: var(--fz-lead);
	line-height: 1.75;
}

/* カード系タイトル */
.ks-plan-name,
.report-title,
.ocean-column-title {
	font-size: var(--fz-title-card);
	line-height: 1.45;
}

/* 補助テキスト */
.ks-plan-desc-text,
.report-excerpt,
.ginga-hub-sea-excerpt,
.plan-card-white .description-text {
	font-size: var(--fz-body);
	line-height: 1.75;
}

/* ページ主タイトル（プラン詳細など） */
.plan-main-title,
.ginga-hub-title {
	font-size: var(--fz-title-main);
	line-height: 1.3;
}

/* 小見出し */
.ginga-hub-subsection-title,
.plan-detail-container .info-column .ks-main-title {
	font-size: var(--fz-title-minor);
	line-height: 1.45;
}
