@charset "utf-8";

/* ============================================================
   常時表示「トップに戻る」ボタン（全ページ共通）
   ------------------------------------------------------------
   ・画面右下に固定表示
   ・400px スクロールした時点でふわっと表示
   ・JavaScript が無効な環境では常に表示（no-js 対応）
============================================================ */

a.gotop,
a.gotop:link,
a.gotop:visited {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border: 1px solid #3652A6;
	border-radius: 50%;
	background: #3F5BB8;
	box-shadow: 0 2px 10px rgba(43, 58, 122, 0.35);
	color: #FFFFFF;
	font-size: 10px;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	opacity: 1;
	transition: opacity 0.3s ease, background 0.2s ease;
}

a.gotop .gotop-arw {
	color: inherit;
	display: block;
	font-size: 15px;
	line-height: 1;
	margin: 0 0 3px;
}

a.gotop:hover,
a.gotop:active,
a.gotop:focus {
	background: #2B3A7A;
	color: #FFFFFF;
	text-decoration: none;
}

/* JavaScript が有効なときは、少しスクロールしてから表示する */
.js-gotop a.gotop {
	opacity: 0;
	pointer-events: none;
}
.js-gotop a.gotop.is-visible {
	opacity: 1;
	pointer-events: auto;
}

/* 追従バナーのあるページでは重ならないよう上へ逃がす */
@media screen and (max-width: 920px) {
	a.gotop,
	a.gotop:link,
	a.gotop:visited {
		right: 14px;
		bottom: 16px;
		width: 54px;
		height: 54px;
		font-size: 9px;
	}
	a.gotop .gotop-arw {
	color: inherit; font-size: 14px; }
	body.has-sticky-cta a.gotop { bottom: 88px; }
}

@media print {
	a.gotop { display: none; }
}


/* ============================================================
   日本語の禁則処理（全ページ共通）
   ------------------------------------------------------------
   既定のままだと「全体像がは／っきりと」のように、小書き文字や
   長音符が行頭に落ちる折り返しが発生するため strict を指定する。
============================================================ */
html, body, p, div, li, dd, dt, td, th, h1, h2, h3, h4, h5, h6, span, a, b, strong, em {
	line-break: strict;
	-webkit-line-break: strict;
}

/* ★2026-08-13：行の長さを調整する指定は全ページで解除した。
   ・見出しの text-wrap: balance（行の長さを均等にする）
   ・本文の text-wrap: pretty（行末に1〜2文字を残さないよう手前の行を短くする）
   いずれもブラウザ標準の折り返し（右端まで詰めてから折り返す）に戻している。
   text-wrap は継承する性質があるため、p の中の span などにも効いてしまい、
   さらに Safari は Chrome より強く段落を組み直すため、
   スマホで意図しない位置で行が終わる原因になっていた。 */

/* PC・タブレット用に入れた改行を、狭い画面では無効にして自然に折り返す
   （項目行・住所・箇条書きの改行には付けていないので影響しない） */
br.sp-only { display: none; }
@media screen and (max-width: 640px) {
	br.sp-off { display: none; }
	br.sp-only { display: inline; }   /* スマホでだけ入れる改行 */
}


/* ------------------------------------------------------------
　　免責注記（※体験談は個人の感想です…等）は小さめに
------------------------------------------------------------ */
.disclaimer,
p .disclaimer,
div .disclaimer,
td .disclaimer {
	font-size: 12px;
	line-height: 1.7;
}


/* ------------------------------------------------------------
　　img に width/height 属性を付けたことによる縦つぶれ防止
　　（属性は表示のガタつき対策。実際の高さは常に縦横比を保つ）
　　※ .cards3 img など、明示的に高さを指定しているCSSはそのまま優先される
------------------------------------------------------------ */
img {
	height: auto;
}
