@charset "UTF-8";
/* =====================================================================
   下層ページ共通（contact / news）
   ===================================================================== */
.page { padding-top: calc(var(--headerTop) + var(--headerH) + 60px); }
.pageInner { padding-bottom: 100px; }

.pageTitle {
	text-align: center;
	margin-bottom: 56px;
}
.pageTitle .en {
	display: block;
	font-family: var(--fontEn);
	font-weight: 900;
	font-size: clamp(30px, 3.3vw, 40px);
	line-height: 1.08;
	text-transform: uppercase;
}
.pageTitle .ja {
	display: block;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .3em;
	text-indent: .3em;
}
.pageLead {
	text-align: center;
	font-size: 14px;
	line-height: 2;
	margin-bottom: 56px;
}

/* ---------- CONTACT ---------- */
.contactForm {
	max-width: 720px;
	margin: 0 auto;
}
.formRow {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	padding: 18px 0;
	border-top: 1px solid #e5e5e5;
}
.formRow:last-of-type { border-bottom: 1px solid #e5e5e5; }
.formRow dt {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	padding-top: 10px;
}
.formRow input,
.formRow textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d5d5d5;
	border-radius: 0;
	background: #fff;
	font-size: 15px;
	line-height: 1.6;
	outline: none;
	transition: border-color .2s;
}
.formRow input:focus,
.formRow textarea:focus { border-color: #000; }
.formRow textarea { resize: vertical; min-height: 200px; }
.formSubmit { text-align: center; margin-top: 40px; }
.btnSubmit {
	min-width: 240px;
	padding: 14px 32px;
	background: var(--colorDark);
	color: #fff;
	font-size: 13px;
	letter-spacing: .12em;
	transition: opacity .2s;
}
.btnSubmit:hover { opacity: .75; }

/* ---------- NEWS 一覧 ---------- */
.newsList { max-width: 900px; margin: 0 auto; }
.newsList > li { border-top: 1px solid #e5e5e5; }
.newsList > li:last-child { border-bottom: 1px solid #e5e5e5; }
.newsList a {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 28px 0;
}
.newsListThumb {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--colorGray);
}
.newsListThumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.05s var(--easeOut); }
.newsList a:hover .newsListThumb img { transform: scale(1.03); }
.newsMeta {
	display: flex;
	align-items: center;
	gap: .6em;
	font-size: 12px;
	line-height: 1;
}
.newsCat {
	font-family: var(--fontEn);
	font-weight: 500;
	font-size: 11px;
	letter-spacing: .04em;
	opacity: .8;
}
.newsDate { font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.newsListTitle {
	margin-top: .6em;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
}
.newsList a:hover .newsListTitle { text-decoration: underline; }

/* ---------- NEWS 記事 ---------- */
.article { max-width: 820px; }
.articleHead { margin-bottom: 32px; }
.articleTitle {
	margin-top: .6em;
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 700;
	line-height: 1.6;
}
.articleFigure { margin-bottom: 40px; }
.articleFigure img { width: 100%; }
.articleBody { font-size: 15px; line-height: 2; }
.articleBody h2 {
	font-size: 16px;
	font-weight: 700;
	margin: 2.2em 0 .6em;
}
.articleBody h2:first-child { margin-top: 0; }
.articleBody p + p { margin-top: 1.4em; }
.articleBack {
	margin-top: 64px;
	text-align: center;
	font-family: var(--fontEn);
	font-weight: 900;
	font-size: 12px;
	letter-spacing: .08em;
}
.articleBack a { border-bottom: 1px solid currentColor; padding-bottom: 4px; }

/* =====================================================================
   SP / tablet
   ===================================================================== */
@media screen and (max-width: 899px) {
	.page { padding-top: calc(var(--headerTop) + var(--headerH) + 36px); }
	.pageInner { padding-bottom: 70px; }
	.pageTitle { margin-bottom: 36px; }
	.pageTitle .en { font-size: clamp(22px, 6vw, 26px); }
	.pageLead { text-align: left; margin-bottom: 36px; }

	.formRow { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
	.formRow dt { padding-top: 0; }
	.formRow input, .formRow textarea { font-size: 16px; } /* iOS のズーム防止 */
	.btnSubmit { width: 100%; }

	.newsList a { grid-template-columns: 1fr; gap: 14px; padding: 20px 0; }
	.newsListTitle { font-size: 14px; }
	.articleBody { font-size: 14px; }
}
