@charset "utf-8";
/* ==========================================================================
   Reset & Base
   1rem = 10px（html font-size: 62.5%）でデザイン値をそのまま扱える形にする。
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--c-off);
	color: var(--c-txt);
	font-family: var(--f-ja);
	font-size: var(--fs-16);
	font-weight: 400;
	line-height: var(--lh-loose);
	letter-spacing: var(--ls-base);
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "palt" 1;
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
	margin: 0;
}

ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: 700;
	line-height: var(--lh-normal);
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}

a:hover {
	color: var(--c-gold);
}

img, svg, video {
	display: block;
	max-width: 100%;
	height: auto;
}

button {
	appearance: none;
	border: 0;
	background: none;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

input, textarea, select {
	font: inherit;
	color: inherit;
}

table {
	border-collapse: collapse;
	width: 100%;
}

/* 画面外に置くがスクリーンリーダーには読ませる */
.u-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* PC / SP の出し分け。
   .l-float など display を持つコンポーネントに後から当たっても勝てるよう、
   ここだけは意図的に !important を使う（ユーティリティの責務）。 */
.u-pc { display: block; }
.u-sp { display: none !important; }

@media (max-width: 767px) {
	.u-pc { display: none !important; }
	.u-sp { display: block !important; }
	.l-float.u-sp { display: flex !important; }

	/* 追従CTA（56px）でフッターが隠れないよう下に余白を確保する */
	body { padding-bottom: 56px; }
}

/* スクロール連動の出現アニメーションは assets/css/anim.css に集約している */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* 改行の出し分け。
   日本語は折り返し位置が読みやすさに直結するため、PC/SPで意図した位置に改行を置く。
   デザイン上PCだけで改行する箇所は u-br-pc、SPだけの箇所は u-br-sp を使う。 */
.u-br-pc { display: inline; }
.u-br-sp { display: none; }

@media (max-width: 767px) {
	.u-br-pc { display: none; }
	.u-br-sp { display: inline; }
}

/* 和文の折り返し。anywhere は文字単位で切れて不自然になるので使わない。
   break-word なら、はみ出すときだけ折る。 */
body {
	overflow-wrap: break-word;
	word-break: normal;
	line-break: strict;
}
