/*****************************************
 * 数値から単位を取り除く
 * 参考
 * https://css-tricks.com/snippets/sass/
******************************************/

/*****************************************
 * px→remの計算
 * 参考
 * https://webdou.net/sass-rem/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/

/*****************************************
 * vwの計算
 * 参考
 * https://webdou.net/sass-vw/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/

/*****************************************
 * rclamp(): レスポンシブな clamp() 値を生成
 *
 * $minVw の画面幅で $min、$maxVw の画面幅で $max になり、
 * 間は線形に変化する CSS clamp() を返す。
 *
 * 引数 (すべて単位なし px の数値):
 *   $min    最小ピクセル値 (必須)
 *   $max    最大ピクセル値 (必須)
 *   $minVw  この画面幅で $min に固定 (省略時 375)
 *   $maxVw  この画面幅で $max に固定 (省略時 1200)
 *
 * 使用例:
 *   font-size: rclamp(24, 64);
 *   font-size: rclamp(24, 64, 768, 1440);
 *   padding: rclamp(16, 40);
 *   gap:     rclamp(8, 20);
 *   margin-top: rclamp(40, 120);
******************************************/

html {
	font-size: 16px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 5rem;
	overflow-x: hidden;
}

body {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	color: #231815;
	background-color: #000000;
	overflow-x: hidden;
}

a {
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s;
}

/*
 * 参考
 * https: //github.com/Andy-set-studio/modern-css-reset/blob/master/src/reset.css
*/

/* Box sizing rules */

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

/* remove default margin */

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

/* remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */

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

/* Set core root defaults */

html:focus-within {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	min-height: 100vh;
	text-rendering: optimizeSpeed;
	line-height: 1.5;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img,
picture {
	max-width: 100%;
	display: block;
}

/* Inherit fonts for inputs and buttons */

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

li {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* remove all animations and transitions for people that prefer not to see them */

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.inner {
	width: 100%;
	max-width: 600px;
	margin-inline: auto;
	padding-inline: 20px;
}

.inner-lower {
	width: 100%;
	max-width: 600px;
	margin-inline: auto;
	padding-inline: 20px;
}

.inner-breadcrumb {
	width: 100%;
	margin-inline: auto;
	padding-inline: 20px;
}

.layout-main {
	padding-block: 2.5rem 5rem;
}

.layout-mv {
	overflow-x: clip;
	position: relative;
}

.layout-section {
	padding-top: 5rem;
	overflow-x: clip;
}

.layout-top-lead {
	overflow: hidden;
}

.awards-block {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.awards-block__row {
	display: flex;
	justify-content: center;
	flex-direction: column;
	gap: 1rem;
}

.awards-block__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	margin-inline: auto;
}

.awards-block__item::before,
.awards-block__item::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 2.75rem;
	height: 100%;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
}

.awards-block__item::before {
	left: 0;
}

.awards-block__item::after {
	right: 0;
}

.awards-block__item--patent::before {
	background-image: url("../images/laurel1-left.svg");
}

.awards-block__item--patent::after {
	background-image: url("../images/laurel1-right.svg");
}

.awards-block__item--prize::before {
	background-image: url("../images/laurel2-left.svg");
}

.awards-block__item--prize::after {
	background-image: url("../images/laurel2-right.svg");
}

.awards-block__patent {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	text-align: center;
	padding-inline: 2.625rem;
	padding-block: 0.75rem;
	min-width: 12.25rem;
	min-height: 3.875rem;
}

.awards-block__patent.section-text {
	line-height: 1.25;
}

.awards-block__prize {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	text-align: center;
	padding-inline: 3.25rem;
	padding-block: 0.75rem;
	min-width: 14.875rem;
	min-height: 3.875rem;
}

.bg-gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 12.5rem;
	background: linear-gradient(to bottom, transparent, #000000);
	pointer-events: none;
	z-index: -1;
}

.bg-gradient--top {
	top: 0;
	bottom: auto;
	height: 15.625rem;
	background: linear-gradient(to bottom, #000000, transparent);
}

.bg-gradient--bottom {
	bottom: 0;
	height: 15.625rem;
	background: linear-gradient(to bottom, transparent, #000000);
}

.button-card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 21.875rem;
	padding: 1.25rem 1.5rem;
	background-color: rgba(0, 0, 0, 0.75);
	border-radius: 0.5rem;
	text-decoration: none;
	border: 0.0625rem solid transparent;
	z-index: 0;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, transform 0.3s ease;
}

.button-card::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.button-card__body {
	display: flex;
	flex-direction: column;
}

.button-card__jp {
	font-size: 1.375rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0;
	transition: color 0.3s ease;
}

.button-card__en {
	margin-top: 0.625rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0;
}

.button-card__arrow {
	display: block;
	width: 2.125rem;
	aspect-ratio: 35/10;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

.button-file {
	position: relative;
	display: inline-block;
	padding: 0.8125rem 4.8125rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: #fff;
	background-color: transparent;
	border-radius: 0.5rem;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.5;
	letter-spacing: 0em;
	border: 0.0625rem solid #fff;
	text-decoration: none;
	z-index: 0;
	text-align: center;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

.button-file::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.button-file::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 1.5rem;
	width: 1rem;
	aspect-ratio: 1/1;
	-webkit-mask-image: url(../images/arrow-right-file.svg);
	mask-image: url(../images/arrow-right-file.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
}

.button {
	position: relative;
	display: inline-block;
	padding: 0.8125rem 1.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: #fff;
	background-color: transparent;
	border-radius: 0.5rem;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.5;
	letter-spacing: 0em;
	border: 0.0625rem solid #fff;
	text-decoration: none;
	z-index: 0;
	text-align: center;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease, transform 0.3s ease;
	width: 15rem;
	margin-right: 0.75rem;
}

.button::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.button::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: -1.125rem;
	width: 2.125rem;
	aspect-ratio: 32/16;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

.download-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.download-block__link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.875rem 0.75rem 1rem;
	font-size: 1rem;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-decoration: none;
	border: 0.0625rem solid #fff;
	border-radius: 0.25rem;
	z-index: 0;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease, transform 0.3s ease;
	width: 16rem;
	min-height: 3.75rem;
}

.download-block__link::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.download-block__icon {
	position: absolute;
	top: 50%;
	right: 0.75rem;
	transform: translateY(-50%);
	flex-shrink: 0;
	width: 0.75rem;
	height: 1rem;
	-webkit-mask-image: url(../images/button-download.svg);
	mask-image: url(../images/button-download.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
}

/* =========================
  共通フィルターセレクト
========================= */

.filter-selects {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.filter-selects__box {
	--label-width: 5em;
	position: relative;
	display: flex;
	align-items: center;
	height: 3.5rem;
	padding: 0 1.5rem;
	background-color: #282828;
	border-radius: 0.5rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.filter-selects__box::after {
	content: "";
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	height: 0.5rem;
	background: url("../images/arrow.svg") no-repeat center/contain;
	pointer-events: none;
}

.filter-selects__label {
	position: relative;
	z-index: 1;
	pointer-events: none;
	width: var(--label-width, 5em);
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	flex-shrink: 0;
	white-space: nowrap;
}

.filter-selects__select {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: transparent;
	border: none;
	outline: none;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	padding-left: calc(var(--label-width, 5em) + 1.5rem);
	padding-right: 2.5rem;
	border-radius: 0.5rem;
}

.filter-selects__select option {
	background-color: #282828;
	color: #fff;
}

.page-bg {
	position: relative;
	overflow: hidden;
}

.page-bg::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/750;
	background: url("../images/section-bg-sp.jpg") top center/cover no-repeat;
	pointer-events: none;
	z-index: 0;
}

.page-bg::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/750;
	background: linear-gradient(to bottom, #000000, transparent) top/100% 10% no-repeat, linear-gradient(to top, #000000, transparent) bottom/100% 10% no-repeat;
	pointer-events: none;
	z-index: 0;
}

.page-bg2 {
	position: relative;
	overflow: hidden;
}

.page-bg2::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/750;
	background-image: url("../images/section-bg2-sp.jpg");
	background-size: cover;
	background-position: top center;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: -1;
}

.page-bg3 {
	position: relative;
	overflow: hidden;
}

.page-bg3::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/750;
	background-image: url("../images/section-bg3-sp.jpg");
	background-size: cover;
	background-position: bottom center;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: -1;
}

.section-header {
	max-width: 45rem;
	margin-inline: auto;
	text-align: center;
}

html:lang(en) .section-header {
	max-width: 50rem;
}

.section-header__title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.2em;
	text-align: center;
}

.section-header__title.section-header__title--left {
	text-align: left;
}

.section-header__title.section-header__title--big {
	font-weight: 700;
	letter-spacing: 0.1em;
}

.section-header__text {
	margin-top: 1.5rem;
	text-align: left;
}

.section-lead-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 5rem;
}

.section-text {
	color: #fff;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.7142857143;
}

.section-title-ja {
	font-size: 1.75rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

.section-title-en {
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
	margin-top: 0.75rem;
}

/* small */

.section-title-small .section-title-ja {
	font-size: 1.75rem;
	line-height: 1.25;
	letter-spacing: 0;
}

.section-title-small .section-title-en {
	font-size: 0.875rem;
	margin-top: 0.5rem;
	line-height: 1;
}

/* 見出し内の英語spanを小さく・上下中央 */

.section-title-ja span {
	display: inline;
	font-size: 0.875rem;
	letter-spacing: 0;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	display: block;
	padding-top: 0.25rem;
	margin-left: -0.25rem;
}

/* =========================
  ショーケーススライダー（汎用）
========================= */

.showcase-slider {
	position: relative;
	margin-inline: auto;
	padding: 3rem 1.75rem;
	background-color: #3c3c3c;
	border-radius: 0.5rem;
	overflow: visible;
}

.showcase-slider::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: #282828;
	clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%, 0 95%);
	pointer-events: none;
}

/* ヘッダー */

.showcase-slider__head {
	position: relative;
	z-index: 1;
	margin-bottom: 3rem;
}

/* メインスライダー */

.showcase-slider__main-wrap {
	position: relative;
	border-radius: 0.5rem;
	overflow: visible;
	z-index: 1;
}

/* prev / next ボタン */

.showcase-slider__prev,
.showcase-slider__next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 4rem;
	height: 4rem;
	padding: 0;
	border: none;
	background-color: transparent;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color 0.3s ease, opacity 0.3s ease;
}

.showcase-slider__prev img,
.showcase-slider__next img {
	width: 100%;
	height: 100%;
	display: block;
}

.showcase-slider__prev {
	left: -2.125rem;
}

.showcase-slider__next {
	right: -2.125rem;
}

.showcase-slider__main .swiper-slide {
	position: relative;
}

.showcase-slider__main img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	aspect-ratio: 336/252;
}

/* ラベル（各スライド内に配置され、画像と一緒にスライドする） */

.showcase-slider__label {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 0.375rem 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	text-align: center;
	background-color: rgba(0, 0, 0, 0.75);
	z-index: 1;
}

/* サムネイルスライダー */

.showcase-slider__thumbs {
	position: relative;
	z-index: 1;
	margin-top: 0.5rem;
}

.showcase-slider__thumbs .swiper-slide {
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.3s;
	aspect-ratio: 160/120;
}

.showcase-slider__thumbs .swiper-slide-thumb-active {
	opacity: 1;
}

.showcase-slider__thumbs img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/* フッターコンテンツ */

.showcase-slider__foot {
	position: relative;
	z-index: 1;
	margin-top: 2rem;
}

.showcase-sliders {
	background-color: #000000;
	padding-top: 2.5rem;
	padding-bottom: 5rem;
}

.showcase-sliders__inner {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.small-text {
	font-size: 0.7em;
	vertical-align: baseline;
	line-height: 1;
}

.stagger-grid {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.video-player {
	position: relative;
	cursor: pointer;
}

.video-player__video {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.video-player__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	border: none;
	background-color: #000000;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.3s, opacity 0.3s, visibility 0.3s;
}

.video-player__play.is-playing {
	opacity: 0;
	visibility: hidden;
}

.video-player__play-icon {
	display: block;
	width: 0;
	height: 0;
	margin-left: 0.25rem;
	border-style: solid;
	border-width: 0.625rem 0 0.625rem 1rem;
	border-color: transparent transparent transparent #fff;
}

.video-player__play.is-playing .video-player__play-icon {
	width: 1rem;
	height: 1.25rem;
	margin-left: 0;
	border: none;
	border-left: 0.25rem solid #fff;
	border-right: 0.25rem solid #fff;
}

/* =========================
  アルミ／自動車関連 スペックリスト
========================= */

.aa-spec {
	position: relative;
	z-index: 1;
	margin-top: 2rem;
}

.aa-spec__desc {
	margin-bottom: 1.5rem;
}

.aa-spec__row {
	display: flex;
	align-items: flex-start;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	margin-top: 1.125rem;
	padding-bottom: 1.125rem;
}

.aa-spec__row:first-child {
	margin-top: 0;
}

.aa-spec__term {
	font-weight: 700;
	flex-shrink: 0;
	width: 5.25rem;
}

/* =========================
  アルミ／建材・軽圧 ヒーロー
========================= */

.ab-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.ab-hero__bg {
	position: absolute;
	inset: 0;
}

.ab-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ab-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.ab-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.ab-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.ab-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.ab-hero__breadcrumb a {
	color: #fff;
}

.ab-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.ab-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  セクション一覧
========================= */

.ab-sections {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* =========================
  セクションカード
========================= */

.ab-section__card {
	position: relative;
	background-color: #282828;
	border-radius: 0.5rem;
	padding: 1.5rem 1rem 2rem;
}

/* 左側の装飾シェイプ */

.ab-section__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 50%;
	height: 100%;
	background-color: #3c3c3c;
	clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
	z-index: 0;
}

.ab-section__head {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.ab-section__titles {
	flex-shrink: 0;
}

.ab-section__title {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.ab-section__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 1.75rem;
	padding: 0 0.5rem;
	margin-top: 0.5rem;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
}

.ab-section__badge--hot {
	background-color: #a8071a;
}

.ab-section__badge--mid {
	background-color: #057d2d;
}

.ab-section__badge--low {
	background-color: #02348d;
}

/* =========================
  ギャラリー
========================= */

.ab-section__gallery {
	position: relative;
	z-index: 1;
	margin-top: 1.5rem;
}

.ab-section__main-image {
	position: relative;
}

.ab-section__main-image > img {
	width: 100%;
	height: 15rem;
	display: block;
	object-fit: cover;
	border-radius: 0.5rem 0.5rem 0 0;
}

.ab-section__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.ab-section__nav img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
}

.ab-section__nav--prev {
	left: -1.5rem;
}

.ab-section__nav--next {
	right: -1.5rem;
}

.ab-section__caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 0.5rem 1rem;
	background-color: rgba(0, 0, 0, 0.75);
	font-size: 0.8125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	text-align: center;
}

.ab-section__thumbnails {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.ab-section__thumb {
	position: relative;
	padding: 0;
	border: none;
	border-radius: 0.25rem;
	overflow: hidden;
	cursor: pointer;
	background: none;
}

.ab-section__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.5);
	transition: opacity 0.3s;
}

.ab-section__thumb.is-active::after {
	opacity: 0;
}

.ab-section__thumb img {
	width: 100%;
	height: 4.5rem;
	display: block;
	object-fit: cover;
}

/* =========================
  アクションボタン
========================= */

.ab-section__actions {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.ab-section__action {
	position: relative;
	display: inline-block;
	padding: 0.8125rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-decoration: none;
	border: 0.0625rem solid #fff;
	border-radius: 0.5rem;
	background-color: transparent;
	line-height: 1.5;
	letter-spacing: 0em;
	text-align: left;
	z-index: 0;
	width: 15.75rem;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

.ab-section__action::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.ab-section__action::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 1.5rem;
	width: 0.75rem;
	aspect-ratio: 12/16;
	-webkit-mask-image: url(../images/button-download.svg);
	mask-image: url(../images/button-download.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
}

.brand-partners {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
}

.brand-partners__item-link {
	display: block;
}

.brand-partners__item-link img,
.brand-partners__item-link picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 376/240;
}

.breadcrumb {
	margin-top: 0.75rem;
}

.breadcrumb:not(.inner-breadcrumb) {
	padding-inline: 1.25rem;
}

.breadcrumb__inner {
	display: flex;
	align-items: center;
	width: 100%;
	margin-inline: auto;
}

.breadcrumb__item {
	font-size: 0.75rem;
	font-weight: 400;
	color: #4a5565;
	letter-spacing: -0.011em;
	line-height: 1.4285714286;
	font-family: "Noto Sans JP", sans-serif;
}

.breadcrumb__link {
	color: #4a5565;
}

.breadcrumb__separator {
	display: flex;
	align-items: center;
	margin-left: 0.375rem;
}

.breadcrumb__separator svg {
	width: 0.875rem;
	height: 0.875rem;
}

.breadcrumb__item--current {
	margin-left: 0.375rem;
}

/* =========================
  カーボンニュートラル 下部ナビゲーション
========================= */

.cn-nav {
	padding-top: 5rem;
}

.cn-nav__cards {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 1rem;
}

.cn-nav__card {
	position: relative;
	z-index: 0;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	gap: 1rem;
	padding: 3.125rem 2rem 1.625rem;
	text-decoration: none;
	overflow: hidden;
	background-color: #323232;
	border-radius: 0.5rem;
}

.cn-nav__card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: #323232;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1);
	transition: transform 0.4s ease;
}

.cn-nav__card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: rgba(0, 0, 0, 0.4);
	pointer-events: none;
}

.cn-nav__card--energy::before {
	background-image: url("../images/cc-nav-energy-sp.jpg");
}

.cn-nav__card--decarbon::before {
	background-image: url("../images/cc-nav-decarbon-sp.jpg");
}

.cn-nav__card--electrification::before {
	background-image: url("../images/cc-nav-electrification-sp.jpg");
}

.cn-nav__card--co2::before {
	background-image: url("../images/cc-nav-co2-sp.jpg");
}

.cn-nav__card--current {
	opacity: 0.5;
	pointer-events: none;
}

.cn-nav__card-wrap {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cn-nav__card-title {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	white-space: nowrap;
}

.cn-nav__card-subtitle {
	font-size: 0.875rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

.cn-nav__card-arrow {
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	align-self: center;
	width: 2.125rem;
	aspect-ratio: 32/16;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	animation: none;
}

/* =========================
  共通：サイドバー（セクション番号＋見出し）
========================= */

.cn-data__number,
.cn-goals__number,
.cn-roadmap__number {
	font-size: 4.5rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.cn-data__heading,
.cn-goals__heading,
.cn-roadmap__heading {
	margin-top: 1rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

/* =========================
  イントロ
========================= */

.cn-intro {
	position: relative;
	z-index: 1;
	padding: 2.5rem 0 5rem;
	background-color: #000000;
}

.cn-intro__title {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	text-align: center;
	letter-spacing: 0.2em;
}

.cn-intro__formula {
	margin-top: 3rem;
	border: 1px solid #fff;
	padding: 1.5rem 1.5rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	border-radius: 0.5rem;
	width: 100%;
	margin-inline: auto;
}

.cn-intro__formula-text {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.2em;
}

.cn-intro__formula-op {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1;
	transform: rotate(90deg);
}

.cn-intro__text.section-text {
	margin-top: 3rem;
	text-align: left;
}

/* =========================
  01: 世界と日本のCO2排出量
========================= */

.cn-data {
	position: relative;
	background-color: #000000;
	padding: 5rem 0;
}

.cn-data::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

.cn-data__content {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cn-data__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.cn-data__chart {
	border-radius: 0.5rem;
	overflow: hidden;
}

.cn-data__chart img,
.cn-data__chart picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.cn-data__info {
	background-color: #282828;
	border-radius: 0.5rem;
	padding: 1.75rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.cn-data__row--light .cn-data__info {
	background-color: #3c3c3c;
}

.cn-data__info-title {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0em;
}

.cn-data__info-text {
	margin-top: 2.5rem;
}

.cn-data__info-source {
	margin-top: 1.5rem;
}

/* =========================
  02: 世界と日本の目標
========================= */

.cn-goals {
	position: relative;
	background-color: #000000;
	padding: 5rem 0;
}

.cn-goals::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

.cn-goals__content {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.cn-goals__card {
	background-color: #3c3c3c;
	border-radius: 0.5rem;
	padding: 3rem 1.75rem 4rem 1.75rem;
}

.cn-goals__card-header {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.625rem;
}

.cn-goals__card-header::before {
	content: "";
	position: absolute;
	left: -3rem;
	top: 1rem;
	width: 1.875rem;
	height: 1px;
	background-color: #fff;
}

.cn-goals__card-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6;
	letter-spacing: 0.2em;
}

.cn-goals__card-badge {
	display: inline-block;
	padding: 0.34375rem 0.5625rem;
	font-size: 0.875rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.5;
	background-color: #fff;
	border-radius: 0.25rem;
	letter-spacing: 0em;
}

.cn-goals__card-texts {
	margin-top: 2.375rem;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.cn-goals__card-text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2.2142857143;
	letter-spacing: 0em;
	padding-left: 2em;
	text-indent: -2.6em;
}

.cn-goals__card-text span {
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 2;
	letter-spacing: 0em;
}

.cn-goals__card-lead {
	margin-top: 2.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2.2142857143;
	letter-spacing: 0em;
}

.cn-goals__card-lead span {
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 2;
	letter-spacing: 0em;
}

.cn-goals__card-img {
	margin-top: 2.5rem;
	width: 100%;
}

.cn-goals__card-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 567/207;
}

/* =========================
  03: 我社の取り組み
========================= */

.cn-roadmap {
	position: relative;
	background-color: #000000;
	padding: 5rem 0 2rem;
}

.cn-roadmap::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
	z-index: 1;
}

.cn-roadmap__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 100%;
	z-index: 0;
	overflow: hidden;
}

.cn-roadmap__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

.cn-roadmap__inner {
	position: relative;
	z-index: 1;
}

.cn-roadmap__content {
	margin-top: 4.25rem;
}

.cn-roadmap__timeline {
	position: relative;
	margin-top: 3rem;
	overflow: hidden;
}

.cn-roadmap__timeline-header {
	position: relative;
	z-index: 3;
	display: flex;
	margin-bottom: 2.125rem;
}

.cn-roadmap__timeline-year:nth-child(1) {
	flex: 0 0 40.5%;
}

.cn-roadmap__timeline-year:nth-child(3) {
	margin-left: auto;
	margin-right: 0.625rem;
}

.cn-roadmap__timeline-year {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.cn-roadmap__timeline-year {
	position: relative;
	padding-left: 0.625rem;
}

.cn-roadmap__timeline-year::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 999px;
	background-color: #646464;
	pointer-events: none;
	z-index: 3;
}

.cn-roadmap__timeline-img {
	position: absolute;
	top: 2.25rem;
	left: 0;
	width: 100%;
	height: 91%;
	z-index: 2;
	pointer-events: none;
	padding-right: 3rem;
}

.cn-roadmap__timeline-img img,
.cn-roadmap__timeline-img picture {
	width: 100%;
	height: 100%;
	object-position: left top;
}

.cn-roadmap__timeline-badge {
	position: relative;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 5.25rem;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: #a8071a;
	margin-left: auto;
	margin-top: -1.875rem;
}

.cn-roadmap__timeline-badge span {
	font-size: 0.875rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-align: center;
	line-height: 1.2857142857;
	letter-spacing: 0em;
}

.cn-roadmap__timeline-body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding-bottom: 3.5rem;
}

.cn-roadmap__timeline-row {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1.125rem;
	padding: 2rem 1.6875rem;
}

.cn-roadmap__timeline-row::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #323232;
	z-index: -1;
	clip-path: polygon(0 0, calc(100% - 5.375rem) 0, 100% min(9.375rem, 100%), 100% 100%, 0 100%);
}

html:lang(en) .cn-roadmap__timeline-row::before {
	clip-path: polygon(0 0, calc(100% - 4.375rem) 0, 100% min(11.25rem, 100%), 100% 100%, 0 100%);
}

.cn-roadmap__timeline-label {
	position: relative;
	z-index: 5;
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	color: #fff;
	line-height: 1;
}

.cn-roadmap__timeline-label--jp {
	font-size: 1.375rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	letter-spacing: 0.2em;
}

.cn-roadmap__timeline-label--en {
	font-family: "Cormorant Garamond", serif;
	font-size: 0.875rem;
	letter-spacing: 0em;
}

.cn-roadmap__timeline-link {
	position: relative;
	z-index: 5;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 10rem;
	height: 3rem;
	background-color: #323232;
}

/* =========================
  カーボンニュートラル技術開発
========================= */

.cn-tech {
	position: relative;
	padding: 5rem 0 5rem;
}

.cn-tech::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

.cn-tech__card {
	border-radius: 0.5rem;
	padding: 12.5rem 1.5625rem 3rem;
	background-image: url(../images/cn-tech-card-bg-sp.jpg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.cn-tech__title {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.cn-tech__columns {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-top: 2rem;
}

.cn-tech__column {
	flex: 1;
}

.cn-tech__column-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.cn-tech__column-text {
	margin-top: 0.75rem;
}

/* =========================
  リード
========================= */

.cc-lead {
	background-color: #000000;
	padding: 2.5rem 0 3.75rem;
}

.cc-lead__text {
	margin-top: 1.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  メタネーション・CO2循環
========================= */

.cc-detail {
	background-color: #000000;
}

.cc-detail__block:first-child {
	padding-block: 5rem;
	border-bottom: 1px solid #646464;
}

.cc-detail__block:last-child {
	padding-top: 5rem;
}

.cc-detail__number {
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.cc-detail__heading {
	margin-top: 0.375rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.cc-detail__content {
	margin-top: 1.5rem;
}

.cc-detail__card {
	margin-top: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #646464;
	padding: 1.5rem 1.5rem;
}

.cc-detail__card-text {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.2em;
}

.cc-detail__diagram {
	border-radius: 0.5rem;
	overflow: hidden;
}

.cc-detail__diagram picture,
.cc-detail__diagram img {
	width: 100%;
	height: 100%;
	aspect-ratio: 336/320;
	object-fit: cover;
}

.cc-detail__steps {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 0;
	margin-top: 3.125rem;
}

.cc-detail__step {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	padding-block: 0.75rem;
	border-top: 1px solid #646464;
	text-indent: -1.2em;
	padding-left: 1.2em;
}

.cc-detail__step:last-child {
	border-bottom: 1px solid #646464;
}

/* =========================
  お問い合わせ
========================= */

.contact {
	background-color: #000000;
	padding-bottom: 5rem;
}

.contact__content {
	max-width: 50rem;
	margin-inline: auto;
}

/* 事業所リンク */

.contact__office-link.section-text {
	border-top: 1px solid #646464;
	border-bottom: 1px solid #646464;
	text-align: center;
	color: #fff;
	padding-block: 1.5rem;
}

.contact__office-link.section-text a {
	color: #00a7ff;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: color 0.3s ease, text-decoration-color 0.3s ease;
}

/* フォーム */

.contact__fields {
	margin-top: 3rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* フォーム行 */

.contact__row {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* ラベル */

.contact__label {
	font-size: 0.875rem;
	line-height: 1.5;
	letter-spacing: 0em;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	flex-shrink: 0;
}

.contact__label--required span {
	color: #ff0000;
	vertical-align: top;
	line-height: 1;
}

/* 入力フィールド共通 */

.contact__input,
.contact__select,
.contact__textarea {
	width: 100%;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #231815;
	background-color: #fff;
	border: none;
	border-radius: 0.25rem;
	outline: none;
}

.contact__input::-moz-placeholder,
.contact__select::-moz-placeholder,
.contact__textarea::-moz-placeholder {
	color: #646464;
}

.contact__input::placeholder,
.contact__select::placeholder,
.contact__textarea::placeholder {
	color: #646464;
}

.contact__input {
	height: 3.5rem;
	padding: 0 1rem;
}

.contact__select {
	height: 3rem;
	padding-inline: 1rem;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url(../images/input-arrow.svg);
	background-repeat: no-repeat;
	background-position: right 1.5rem center;
	background-size: 1rem 0.5rem;
	cursor: pointer;
}

.contact__select.is-placeholder {
	color: #646464;
}

.contact__select option {
	color: #231815;
}

.contact__select option[disabled] {
	color: #646464;
}

.contact__textarea {
	min-height: 15rem;
	padding: 0.75rem 1rem;
	resize: vertical;
}

/* 同意エリア */

.contact__agreement {
	margin-top: 2rem;
	padding: 1.75rem 1.75rem;
	background-color: #282828;
	border-radius: 0.25rem;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	max-height: 15.375rem;
}

.contact__agreement-title {
	font-size: 0.875rem;
	line-height: 2.2857142857;
	letter-spacing: 0em;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

.contact__agreement-body {
	margin-top: 0.5rem;
	overflow-y: auto;
	flex: 1;
	min-height: 0;
	margin-right: -1.75rem;
	padding-right: 1.75rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.contact__agreement-body p {
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2;
	letter-spacing: 0em;
}

/* 送信ボタン */

.contact__submit {
	margin-top: 2.5rem;
	text-align: center;
	overflow: visible;
}

/* input[type="submit/button"] は ::before が使えないのでラッパーで矢印を出す */

.contact__submit .wpcf7-submit,
.contact__confirm-btn,
.contact__back-btn {
	position: relative;
	margin-right: 0.75rem;
}

.contact__submit .wpcf7-submit {
	overflow: visible;
}

.contact__submit-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-width: 14rem;
	height: 3.5rem;
	padding: 0 2rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	background-color: transparent;
	border: 1px solid #fff;
	border-radius: 0.5rem;
	cursor: pointer;
	transition: 0.3s ease-in-out all;
}

.contact__submit-arrow {
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	transform: rotate(-45deg);
	transition: 0.3s ease-in-out all;
}

/* CF7 デフォルトスタイル上書き */

.wpcf7-form .wpcf7-response-output {
	display: none !important;
}

.wpcf7-form .wpcf7-not-valid-tip {
	color: #ff4444;
	font-size: 0.75rem;
	margin-top: 0.25rem;
	display: block;
}

.wpcf7-form .wpcf7-spinner {
	display: none;
}

.wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

/* 確認画面 */

.contact__confirm-area {
	display: none;
}

.contact__confirm-title {
	font-size: 1.25rem;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-align: center;
}

.contact__confirm-text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-align: center;
	margin-top: 0.75rem;
}

.contact__confirm-area .contact__fields {
	margin-top: 3rem;
}

.contact__confirm-value {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	white-space: pre-wrap;
	word-break: break-all;
}

.contact__confirm-area .contact__row {
	padding-bottom: 1rem;
	border-bottom: 1px solid #282828;
}

/* 確認画面ボタン */

.contact__submit--confirm {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 1rem;
}

.contact__back-btn {
	cursor: pointer;
}

/* 確認ボタン（disabled時） */

.contact__confirm-btn {
	cursor: pointer;
}

.contact__confirm-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

/* 完了画面 */

.contact__thanks-area {
	display: none;
	text-align: center;
	padding: 5rem 0;
}

.contact__thanks-title {
	font-size: 1.5rem;
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

.contact__thanks-text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	margin-top: 1.5rem;
	line-height: 2;
}

.contact__thanks-btn-wrap {
	margin-top: 2.5rem;
}

/* =========================
  銅・その他 ヒーロー
========================= */

.co-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.co-hero__bg {
	position: absolute;
	inset: 0;
}

.co-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.co-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.65;
}

.co-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.co-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.co-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.co-hero__breadcrumb a {
	color: #fff;
}

.co-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.co-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  コンテンツラッパー
========================= */

.co-body {
	background-color: #000000;
}

/* =========================
  火葬炉 製品情報
========================= */

.cfp {
	background-color: #000000;
}

/* ========================================
 * 製品ギャラリー
 * ======================================== */

.cfp__showcase {
	padding-bottom: 5rem;
}

.cfp__showcase-box {
	background-color: #282828;
	border-radius: 0.5rem;
	padding: 1rem;
}

.cfp__showcase-main {
	border-radius: 0.25rem;
	overflow: hidden;
	aspect-ratio: 4/3;
}

.cfp__showcase-main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cfp__showcase-label {
	display: flex;
	align-items: center;
	height: 2rem;
	margin-top: 0.5rem;
	padding: 0 0.5rem;
	background-color: #000000;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

.cfp__showcase-thumbs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.cfp__showcase-thumb {
	border-radius: 0.25rem;
	overflow: hidden;
	aspect-ratio: 4/3;
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.3s ease;
}

.cfp__showcase-thumb--active {
	opacity: 1;
}

.cfp__showcase-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ========================================
 * MECSコンセプト
 * ======================================== */

.cfp__concept {
	position: relative;
	overflow: hidden;
}

.cfp__concept-inner {
	position: relative;
	z-index: 1;
}

/* コンテンツ 2カラム（PC: diamond左 / テキスト右） */

.cfp__concept-content {
	display: flex;
	flex-direction: column;
}

/* SP: 見出し(1) → diamond(2) → テキスト(3) */

/* PC: テキスト(左) → diamond(右) */

.cfp__concept-header {
	order: 1;
}

.cfp__diamond {
	order: 2;
	margin-top: 2.5rem;
	max-width: 28.125rem;
	width: 100%;
	margin-inline: auto;
}

.cfp__concept-body-wrap {
	order: 3;
	margin-top: 2.5rem;
}

.cfp__concept-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.cfp__concept-test-wrap {
	margin-top: 1.125rem;
}

.cfp__concept-body + .cfp__concept-body {
	margin-top: 1.625rem;
}

/* ========================================
 * ダイヤモンド配置（6つのコンセプト・六角形レイアウト）
 * ======================================== */

.cfp__diamond {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	justify-items: center;
	margin-top: 2.5rem;
}

/* 中央画像 */

.cfp__diamond-center {
	grid-column: 2/4; /* 中央2カラム分 */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.cfp__diamond-center img,
.cfp__diamond-center picture {
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	object-fit: cover;
}

/* 各コンセプトアイテム（円形） */

.cfp__diamond-item {
	grid-column: span 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: #000000;
	border: 1px solid #a8071a;
	text-align: center;
	padding: 0.5rem;
}

/* PC六角形の各配置 */

.cfp__diamond-label {
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	letter-spacing: 0.3em;
}

html:lang(en) .cfp__diamond-label {
	letter-spacing: 0;
}

html:lang(vi) .cfp__diamond-label {
	letter-spacing: 0;
	font-size: 0.875rem;
}

.cfp__diamond-desc {
	margin-top: 0.25rem;
	font-size: 0.625rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.6;
}

html:lang(en) .cfp__diamond-desc {
	letter-spacing: 0;
}

html:lang(vi) .cfp__diamond-desc {
	letter-spacing: 0;
	font-size: 0.5625rem;
}

/* ========================================
 * サービスカード
 * ======================================== */

.cfp__services {
	position: relative;
	z-index: 1;
	margin-top: 3.75rem;
}

.cfp__services-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.cfp__service-card {
	display: block;
	background-color: #282828;
	border-radius: 0.5rem;
	overflow: hidden;
}

.cfp__service-card-image {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.cfp__service-card-image::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 50%;
	background: linear-gradient(to top, #282828, rgba(40, 40, 40, 0));
	z-index: 1;
}

.cfp__service-card-image img,
.cfp__service-card-image picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
	transition: transform 0.4s ease;
}

.cfp__service-card-body {
	position: relative;
	z-index: 1;
	margin-top: -1.6875rem;
	padding: 0 2rem 3rem;
}

.cfp__service-card-name {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.6;
}

.cfp__service-card-text {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.cfp__service-card-body-button {
	margin-top: 1.5rem;
	text-align: center;
}

/* =========================
  ブロックラッパー
========================= */

.cf-main {
	position: relative;
	overflow: hidden;
}

.cf-main::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 123.4042553191vw;
	background: linear-gradient(to top, #000000, transparent);
	pointer-events: none;
	z-index: 1;
}

.cf-main::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	aspect-ratio: 376/943;
	background: url("../images/cf-blocks-bg-sp.jpg") center/cover no-repeat;
	pointer-events: none;
}

.cf-blocks {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

/* =========================
  動画
========================= */

.cf-movie {
	position: relative;
	z-index: 2;
	width: 100%;
	margin-top: 4rem;
}

.cf-movie iframe {
	border-radius: 0.5rem;
	overflow: hidden;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 336/189;
}

/* =========================
  ブロック共通
========================= */

.cf-block {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* テキストエリア */

.cf-block__desc {
	margin-top: 2.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.cf-block__button {
	margin-top: 2rem;
	text-align: center;
}

/* 画像エリア */

.cf-block__image {
	overflow: hidden;
	border-radius: 0.25rem;
	width: 100%;
}

.cf-block__image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 336/168;
}

.cremation {
	position: relative;
	padding-top: 3.75rem;
	padding-bottom: 2.5rem;
}

.cremation::after {
	content: "";
	position: absolute;
	top: 11.875rem;
	left: 0;
	right: 0;
	height: 16.25rem;
	background: linear-gradient(180deg, #000000 0%, transparent 100%);
	z-index: 1;
}

.cremation::before {
	content: "";
	position: absolute;
	top: 12.5rem;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	background-image: url("../images/cremation-furnaces.jpg");
	background-image: -webkit-image-set(url("../images/cremation-furnaces.avif") type("image/avif"), url("../images/cremation-furnaces.jpg") type("image/jpeg"));
	background-image: image-set(url("../images/cremation-furnaces.avif") type("image/avif"), url("../images/cremation-furnaces.jpg") type("image/jpeg"));
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.cremation__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
}

.csr {
	padding-block: 3rem;
}

/* =========================
  CSRの取り組み
========================= */

.csr-top {
	background-color: #000000;
}

/* カードグリッド */

.csr-top__cards {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	margin-top: 3.5rem;
	padding-inline: 1rem;
}

/* カード */

.csr-top__card {
	display: flex;
	flex-direction: column;
}

.csr-top__card-icon {
	position: relative;
	aspect-ratio: 1/1;
	width: 71.646%;
	margin-inline: auto;
}

.csr-top__card-icon picture {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0.5rem;
	overflow: hidden;
}

.csr-top__card-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.csr-top__card-body {
	margin-top: 2.375rem;
}

.csr-top__card-number {
	position: absolute;
	left: -2.875rem;
	bottom: -1.875rem;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.csr-top__card-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.1em;
}

.csr-top__card-text {
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* ========================================
 * 活動カテゴリー
 * ======================================== */

.csr-category {
	background-color: #000000;
	margin-top: 5rem;
}

/* カードグリッド */

.csr-category__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 2.5rem;
}

/* カード */

.csr-category__card {
	position: relative;
	border-radius: 0.5rem;
	overflow: hidden;
	aspect-ratio: 1/1;
}

.csr-category__card-img {
	width: 100%;
	height: 100%;
}

.csr-category__card-img picture,
.csr-category__card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* オーバーレイ（下半分グラデーション） */

.csr-category__card-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 1.5rem 0rem 1.75rem;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 50%;
}

/* タグ */

.csr-category__card-tag {
	min-width: 6.5rem;
	width: 100%;
	display: inline-block;
	width: -moz-fit-content;
	width: fit-content;
	padding: 0.34375rem 0.25rem;
	background-color: #a8071a;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
}

.csr-category__card-wrap {
	padding-inline: 1.25rem;
	margin-top: 1rem;
}

.csr-category__card-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.1em;
}

.csr-category__card-text {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* ========================================
 * 全国展開状況
 * ======================================== */

.csr-deployment {
	position: relative;
	padding-block: 5rem;
	background: url("../images/csr-deployment-bg-sp.jpg") center/cover no-repeat;
}

.csr-deployment::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.6);
}

.csr-deployment__inner {
	position: relative;
	z-index: 1;
}

.csr-deployment .section-title {
	flex-shrink: 0;
}

.csr-deployment__body {
	margin-top: 2.375rem;
}

.csr-deployment__body p {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.csr-deployment__body p + p {
	margin-top: 1.25rem;
}

/* =========================
  CTA（Make ALL Smart）
========================= */

.cta {
	position: relative;
	padding-block: 5.875rem 5.375rem;
	overflow: hidden;
}

.cta__bg {
	position: absolute;
	inset: 0;
}

.cta__bg picture,
.cta__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cta__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.cta__inner {
	position: relative;
	z-index: 1;
}

.cta__brand {
	position: relative;
	margin: 0 auto;
	width: 9.25rem;
	font-size: inherit;
	font-weight: inherit;
	line-height: 0;
}

.cta__brand-text {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	margin: -0.0625rem;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.cta__brand img {
	width: 100%;
	height: auto;
	display: block;
}

.cta__text {
	margin-top: 1.25rem;
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	text-align: center;
}

.cta__button {
	margin-top: 2.5rem;
	text-align: center;
}

/* =========================
  リード
========================= */

/* =========================
  01: H2の特徴
========================= */

.dc-feature {
	padding-top: 5rem;
	padding-bottom: 3.75rem;
	border-bottom: 1px solid #646464;
}

.dc-sidebar {
	margin-bottom: 1.5rem;
}

.dc-number {
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.dc-heading {
	margin-top: 1rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.dc-feature__content {
	margin-top: 4rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
}

/* 特徴リスト */

.dc-feature__list {
	display: flex;
	flex-direction: column;
}

.dc-feature__list-item {
	padding: 1.25rem 0;
	border-bottom: 1px solid #646464;
}

.dc-feature__list-item:first-child {
	border-top: 1px solid #646464;
}

/* 燃料比較テーブル */

.dc-feature__table-caption {
	position: relative;
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.dc-feature__table-caption::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: calc(100% - 5em);
	height: 1px;
	background-color: #646464;
}

.dc-feature__table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #646464;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.75;
	margin-top: 0.75rem;
}

.dc-feature__table td:nth-child(1) {
	width: 38%;
}

.dc-feature__table td:nth-child(2) {
	width: 38%;
}

.dc-feature__table td:nth-child(3) {
	width: 24%;
}

.dc-feature__table th,
.dc-feature__table td {
	border-bottom: 1px solid #646464;
	border-left: 1px solid #646464;
	text-align: center;
	vertical-align: middle;
}

.dc-feature__table th:first-child,
.dc-feature__table td:first-child {
	border-left: none;
}

.dc-feature__table th {
	background-color: #282828;
	color: #fff;
	font-weight: 500;
	padding: 0.34375rem 0.625rem;
}

.dc-feature__table td {
	padding: 0.71875rem 0.625rem;
	color: #fff;
}

.dc-feature__table td:first-child {
	text-align: center;
}

.dc-feature__table-unit {
	display: block;
	color: #fff;
}

.dc-feature__table-highlight {
	position: relative;
}

.dc-feature__table-diff {
	position: absolute;
	left: -0.8125rem;
	bottom: 1.25rem;
	transform: translateX(-50%);
}

html:lang(en) .dc-feature__table-diff {
	left: -0.1875rem;
	bottom: 2.875rem;
}

html:lang(vi) .dc-feature__table-diff {
	left: -0.1875rem;
	bottom: calc(50% - 1.25rem);
}

.dc-feature__table-diff-arrow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 3.5rem;
	height: 0.5rem;
	background: url("../images/table-diff-arrow.svg") no-repeat center/contain;
	z-index: 0;
}

.dc-feature__table-diff-circle {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid #fff;
	font-size: 0.75rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1;
	padding: 0 0.375rem;
	background-color: #fff;
}

/* =========================
  02: H2バーナ
========================= */

.dc-burner {
	padding-top: 5rem;
	padding-bottom: 5rem;
	border-bottom: 1px solid #646464;
}

.dc-burner__challenges {
	margin-top: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 1rem;
}

.dc-burner__challenge {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
	text-align: center;
}

.dc-burner__amp {
	font-size: 3rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1;
	flex-shrink: 0;
}

.dc-burner__diagram {
	border-radius: 0.5rem;
	overflow: hidden;
	margin-top: 5rem;
}

.dc-burner__diagram img {
	width: 100%;
	height: auto;
	display: block;
}

/* =========================
  03: DMF-200 溶解テスト
========================= */

.dc-test {
	background-color: #000000;
	padding-top: 5rem;
}

.dc-test__content {
	border-radius: 0.5rem;
	overflow: hidden;
	margin-top: 5rem;
}

.dc-test__content img {
	width: 100%;
	height: auto;
	display: block;
}

.dc-test__card {
	background-color: #282828;
	border-radius: 0.5rem;
	padding: 2rem 1.5rem;
}

.dc-test__results-title {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	margin-bottom: 0.75rem;
}

.dc-test__results-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2.5714285714;
}

.dc-test__highlight {
	margin-top: 1.5rem;
	text-align: center;
}

.dc-test__highlight-text {
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6666666667;
	letter-spacing: 0.1em;
}

/* デモ・シナリオ */

.dc-test__demo {
	margin-top: 2rem;
}

.dc-test__demo-img {
	border-radius: 0.25rem;
	overflow: hidden;
}

.dc-test__demo-img img {
	width: 100%;
	height: auto;
	display: block;
}

.dc-test__demo-body {
	margin-top: 1.5rem;
}

.dc-test__demo-note {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.dc-test__scenarios {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 1rem;
}

.dc-test__scenario {
	background-color: #fff;
	padding: 1rem;
	text-align: center;
}

.dc-test__scenario-text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.7142857143;
}

/* =========================
  下部ナビゲーション
========================= */

.dc-nav {
	background-color: #000000;
	padding: 3.75rem 0 5rem;
}

.dc-nav__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.dc-nav__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 2rem 1rem;
	text-decoration: none;
	background-color: #323232;
}

.dc-nav__card--current {
	opacity: 0.5;
	pointer-events: none;
}

.dc-nav__card-title {
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7777777778;
}

.di-intro {
	padding-top: 2.5rem;
}

/* =========================
  製品紹介
========================= */

.di-products__grid {
	margin-top: 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

.di-products__card-block {
	display: flex;
	flex-direction: column;
}

.di-products__card {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	background-color: #282828;
	border-radius: 0.5rem;
	overflow: hidden;
	padding: 1.5rem;
}

.di-products__card-title-area {
	display: flex;
	gap: 1.625rem;
}

.di-products__card-name {
	max-width: 7.1875rem;
	width: 100%;
}

.di-products__card-name img {
	width: 100%;
	height: auto;
}

.di-products__card-fullname--dmf {
	width: 4.625rem;
	aspect-ratio: 98.2/108.72;
	-webkit-mask-image: url("../images/dmf-imf-fullname-dmf.svg");
	mask-image: url("../images/dmf-imf-fullname-dmf.svg");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #505050;
}

.di-products__card-fullname--imf {
	width: 5.625rem;
	aspect-ratio: 121.28/108.72;
	-webkit-mask-image: url("../images/dmf-imf-fullname-imf.svg");
	mask-image: url("../images/dmf-imf-fullname-imf.svg");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #505050;
}

.di-products__card-text-area {
	margin-top: 2.25rem;
}

.di-products__card-catch {
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0em;
}

.di-products__card-desc {
	margin-top: 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.di-products__card-img {
	margin-top: auto;
	padding-top: 2.875rem;
}

.di-products__card-img img,
.di-products__card-img picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 162/120;
}

.di-products__card-img--imf {
	margin-top: -2.5rem;
}

.di-products__card-img--imf img,
.di-products__card-img--imf picture {
	aspect-ratio: 162/157;
}

.di-products__awards {
	margin-top: 1.5rem;
}

/* =========================
  ダウンロード
========================= */

.di-products__downloads {
	margin-top: 3rem;
}

/* =========================
  特徴
========================= */

.di-features {
	position: relative;
	margin-top: 5rem;
	padding-bottom: 5rem;
}

.di-features__inner {
	position: relative;
}

.di-features__grid {
	margin-top: 2.5rem;
}

.di-features__item-img {
	border-radius: 0.5rem;
	overflow: hidden;
}

.di-features__item-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.di-features__item-body {
	position: relative;
	margin-top: -2.4375rem;
	padding: 0 1rem;
}

.di-features__item-number {
	display: block;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.di-features__item-title {
	margin-top: 0.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.di-features__item-text {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  ムービー
========================= */

.di-movie {
	padding-top: 5rem;
	padding-bottom: 5rem;
	position: relative;
}

.di-movie::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 1200px;
	height: 1px;
	background-color: #646464;
}

.di-movie .section-title {
	margin-bottom: 1.5rem;
}

.di-movie__player {
	position: relative;
	margin-top: 2.5rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.di-movie__player .video-player__video {
	aspect-ratio: 336/189;
}

/* =========================
  メカニズム
========================= */

.es-mechanism {
	padding-bottom: 3.75rem;
	overflow-x: clip;
}

.es-mechanism__grid {
	margin-top: 6.5625rem;
	padding-block: 0rem 4rem;
	border-block: 1px solid #646464;
}

.es-mechanism__img-area {
	position: relative;
	width: 100%;
	margin-top: -4rem;
}

.es-mechanism__img img,
.es-mechanism__img picture {
	width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
}

.es-mechanism__body {
	margin-top: 2rem;
}

.es-mechanism__text + .es-mechanism__text {
	margin-top: 2.5rem;
}

.es-mechanism__title {
	font-size: 1.375rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.4545454545;
}

.es-mechanism__desc {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.es-mechanism__awards {
	margin-top: 3rem;
}

.es-mechanism__downloads {
	margin-top: 3rem;
}

/* =========================
  用途
========================= */

.es-uses {
	border-block: 1px solid #646464;
	padding: 3.75rem 0;
}

.es-uses__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	margin-top: 3.5rem;
}

.es-uses__item-movie {
	border-radius: 0.5rem;
	overflow: hidden;
	aspect-ratio: 336/189;
}

.es-uses__item-movie video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.es-uses__item-caption {
	margin-top: 0.75rem;
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

/* =========================
  特徴
========================= */

.es-features {
	position: relative;
	padding: 4rem 0 5rem;
}

.es-features::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/750;
	background: url("../images/eco-sms-features-bg-sp.jpg") no-repeat center/cover;
	z-index: -1;
}

.es-features__inner {
	position: relative;
}

.es-features__grid {
	margin-top: -3.9375rem;
}

.es-features__item-img {
	border-radius: 0.5rem;
	overflow: hidden;
}

.es-features__item-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.es-features__item-body {
	position: relative;
	margin-top: -2.4375rem;
	padding: 0 1rem;
}

.es-features__item-number {
	display: block;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.es-features__item-title {
	margin-top: 0.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.es-features__item-text {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.es-features__catalog {
	margin-top: 3rem;
	padding-top: 3rem;
	border-top: 1px solid #646464;
}

.es-features__catalog-text {
	display: block;
	width: -moz-fit-content;
	width: fit-content;
	margin-inline: auto;
}

.es-features__catalog-download-block {
	margin-top: 3rem;
}

/* =========================
  リード（共通）
========================= */

.el-lead {
	padding-bottom: 5rem;
}

/* =========================
  電気を利用したリサイクル装置
========================= */

.el-recycle {
	background-color: #000000;
	padding-top: 5rem;
	padding-bottom: 3rem;
	border-top: 1px solid #646464;
}

.el-recycle__title,
.el-furnace__title {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.2em;
}

.el-recycle__desc {
	margin-top: 1.875rem;
	text-align: center;
}

.el-recycle__item {
	margin-top: 4rem;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.el-recycle__item img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* =========================
  黄銅押出用金型加熱炉の電化事例
========================= */

.el-furnace {
	background-color: #000000;
	padding-top: 5rem;
	padding-bottom: 3rem;
	border-top: 1px solid #646464;
}

.el-furnace__desc {
	margin-top: 1.875rem;
	text-align: center;
}

.el-furnace__item {
	margin-top: 4rem;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.el-furnace__item img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* =========================
  社内インフラ 再生可能エネルギー
========================= */

.el-renewable {
	padding-top: 5rem;
	border-top: 1px solid #646464;
}

/* =========================
  グリーン電力
========================= */

.el-green {
	margin-top: 5rem;
}

.el-green__section-title {
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.el-green__section-title span {
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
	display: block;
}

.el-green__grid {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	margin-top: 2rem;
}

.el-green__item-img {
	position: relative;
}

.el-green__item-img img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 0.5rem;
}

.el-green__number {
	position: absolute;
	left: 1rem;
	bottom: -2rem;
	font-size: 4.5rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.el-green__item-wrap {
	padding-inline: 1rem;
	margin-top: 2.375rem;
}

.el-green__item-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.el-green__item-text {
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  本社ビルの取り組み
========================= */

.el-hq {
	margin-top: 3.875rem;
}

.el-hq__card {
	background-color: rgba(40, 40, 40, 0.75);
	border-radius: 0.5rem;
	position: relative;
	z-index: 1;
	padding: 2rem 2rem;
	margin-inline: 1rem;
}

.el-hq__title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
	text-align: center;
}

.el-hq__text {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.el-hq__text p + p {
	margin-top: 1.25rem;
}

.el-hq__image {
	margin-top: -1rem;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.el-hq__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 376/240;
}

/* =========================
  下部ナビゲーション
========================= */

.el-nav {
	background-color: #000000;
	padding: 3.75rem 0 5rem;
}

.el-nav__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.el-nav__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 2rem 1rem;
	text-decoration: none;
	background-color: #323232;
}

.el-nav__card--current {
	opacity: 0.5;
	pointer-events: none;
}

.el-nav__card-title {
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7777777778;
}

/* =========================
  セクショングループ
========================= */

.ec-sections {
	display: flex;
	flex-direction: column;
	gap: 3.75rem;
}

.ec-sections + .ec-sections {
	margin-top: 5rem;
}

/* =========================
  セクション共通
========================= */

.ec-section__wrapper {
	position: relative;
	background-color: #3c3c3c;
	border-radius: 0.5rem;
	padding: 2.375rem 1.125rem 2.375rem 2.375rem;
	overflow: visible;
}

.ec-section__wrapper::after {
	content: "";
	position: absolute;
	top: 0;
	right: calc((100vw - 100%) / -2);
	width: calc(100% + (100vw - 100%) / 2);
	height: 100%;
	background-color: #282828;
	clip-path: polygon(70% 0, 100% 0, 100% 100%, 0 100%, 0 25%);
	pointer-events: none;
	z-index: 0;
}

/* ヘッダー（タイトルパネル） */

.ec-section__header {
	position: relative;
	overflow: visible;
}

.ec-section__title {
	position: relative;
	z-index: 1;
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.ec-section__title span {
	display: inline-block;
}

/* カードグリッド */

.ec-section__cards {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	margin-top: 1.5rem;
	padding-bottom: 0.5rem;
}

/* カード */

.ec-section__card {
	text-align: center;
}

.ec-section__card-name {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	text-align: center;
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.ec-section__card-name::before,
.ec-section__card-name::after {
	content: "";
	flex: 1;
	height: 1px;
	background-color: #646464;
}

.ec-section__card-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.25rem;
}

.ec-section__card-label {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.ec-section__card-value {
	font-size: 2rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.ec-section__card-value span {
	font-size: 0.7em;
}

.ec-section__card-sub {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6923076923;
	text-align: center;
}

.ec-section__card-img {
	margin-top: 1rem;
	overflow: hidden;
}

.ec-section__card-img img {
	width: 100%;
	height: auto;
	display: block;
}

.ec-section__card-desc {
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ec-section__bottom-text {
	margin-top: 1.5rem;
	font-size: 0.8125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.6923076923;
	text-align: center;
}

/* 見える化ボックス */

.ec-visual {
	position: relative;
	z-index: 1;
	margin-top: 1.5rem;
	background-color: #000000;
	border: 1px solid #646464;
	border-radius: 0.5rem;
	padding: 3rem 1.25rem 3rem;
}

.ec-visual__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

.ec-visual__card {
	text-align: center;
}

.ec-visual__card-name {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.ec-visual__card-sub {
	margin-top: 0.25rem;
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.ec-visual__card-img {
	position: relative;
	margin-top: 2rem;
}

.ec-visual__card-img img {
	width: 100%;
	height: auto;
	display: block;
}

.ec-visual__badge {
	position: absolute;
	top: 1.5rem;
	right: -3.125rem;
	transform: translateY(-50%);
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	background-color: #d2d2d2;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.25;
	text-align: center;
}

.ec-visual__badge.ec-visual__badge2 {
	right: -3.125rem;
}

html:lang(en) .ec-visual__badge {
	font-size: 0.875rem;
}

.ec-visual__text {
	margin-top: 2.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2.25;
}

/* ダイアグラムブロック */

.ec-section__blocks {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-top: 1.5rem;
}

.ec-section__block.ec-section__block--dx {
	border: 1px solid #646464;
	background-color: #000000;
	border-radius: 0.5rem;
	padding: 3rem 1.625rem;
}

.ec-section__block-title {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	text-align: center;
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.ec-section__block-title::before,
.ec-section__block-title::after {
	content: "";
	flex: 1;
	height: 1px;
	background-color: #646464;
}

.ec-section__block-desc {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.ec-section__block-img {
	margin-top: 3rem;
}

.ec-section__block-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ec-section__block-img.ec-section__block-img--wide img {
	aspect-ratio: 280/935;
}

.ec-section__block-img.ec-section__block-img--dx {
	margin-top: 3rem;
}

.ec-section__block-img.ec-section__block-img--combustion {
	margin-top: 0.5rem;
}

/* =========================
  下部ナビゲーション
========================= */

.ec-nav {
	background-color: #000000;
	padding: 3.75rem 0 5rem;
}

.ec-nav__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.ec-nav__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 2rem 1rem;
	text-decoration: none;
	overflow: hidden;
	background-color: #323232;
}

.ec-nav__card--current {
	opacity: 0.5;
	pointer-events: none;
}

.ec-nav__card-title {
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7777777778;
}

.error-404__button {
	display: flex;
	justify-content: center;
	margin-top: 2.5rem;
}

.footer {
	background-color: #000000;
	padding-block: 3.5rem 2.5rem;
}

.footer__inner {
	width: 100%;
	margin-inline: auto;
	padding-right: 1.25rem;
	padding-left: 1.25rem;
	display: flex;
	flex-direction: column;
}

.footer__main {
	display: flex;
	flex-direction: column;
}

.footer__logo {
	width: 100%;
	max-width: 24.375rem;
	margin: 0;
	order: 1;
}

.footer__logo-link {
	display: block;
	max-width: 11.75rem;
	width: 100%;
}

.footer__logo-link img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 713/126;
}

.footer__logo-img {
	height: 2.0625rem;
}

.footer__address {
	margin-top: 1.25rem;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5714285714;
	letter-spacing: 0;
}

.footer__company {
	margin-top: 1.375rem;
	font-size: 3.6vw;
	font-size: max(1rem, 3.6vw);
	font-weight: 500;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.6666666667;
	letter-spacing: 0.1em;
	order: 3;
}

.footer__nav {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
	order: 2;
}

.footer__nav-col {
	width: 100%;
}

.footer__nav-list {
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.625rem;
}

.footer__nav-item {
	margin: 0;
}

.footer__nav-link {
	position: relative;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.25;
	letter-spacing: 0;
	transition: color 0.3s ease;
}

.footer__nav-link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.1875rem;
	height: 0.0625rem;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}

.footer__copyright {
	margin-top: auto;
	padding-top: 2.5rem;
	font-size: 0.625rem;
	line-height: 1.5;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	letter-spacing: 0;
}

/* =========================
  Overlay（ヘッダーの下に表示）
========================= */

.full-menu__overlay {
	position: fixed;
	inset: 0;
	z-index: 998;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.full-menu__overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* =========================
  Full Menu（ヘッダー直下にアコーディオン展開）
========================= */

.full-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 999;
	visibility: hidden;
	pointer-events: none;
	padding-inline: 0.75rem;
	padding-bottom: 0.75rem;
}

.full-menu.is-open {
	visibility: visible;
	pointer-events: auto;
}

.full-menu__container {
	position: relative;
	overflow: hidden;
	max-width: 82.375rem;
	margin-inline: auto;
}

.full-menu__body {
	position: relative;
	z-index: 2;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	opacity: 0;
	transition: opacity 0.3s ease, transform 0.35s ease;
	border-top: 0.0625rem solid #fff;
	border-radius: 0 0 0.5rem 0.5rem;
	padding: 1.25rem 1.25rem 2rem;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	max-height: calc(100dvh - 4.5rem - env(safe-area-inset-bottom, 0px));
}

.full-menu.is-open .full-menu__body {
	opacity: 1;
}

.full-menu__body.is-slide-away {
	transform: translateX(-100%);
}

.full-menu__columns {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-height: 0;
}

.full-menu__col {
	flex: 1;
	min-width: 0;
}

/* =========================
  Category（SP アコーディオントリガー）
========================= */

.full-menu__category {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1rem 0;
	border-bottom: 0.0625rem solid #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	color: #fff;
	background: transparent;
	cursor: pointer;
	text-decoration: none;
	border-top: none;
	border-left: none;
	border-right: none;
}

.full-menu__category-arrow {
	display: block;
	width: 1.5rem;
	height: 0.75rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: transform 0.3s ease;
}

.full-menu__category.is-open .full-menu__category-arrow {
	transform: translateX(0.25rem);
}

/* =========================
  Heading（PCのみ表示）
========================= */

.full-menu__heading {
	display: none;
	margin: 0;
	font-family: "Cormorant Garamond", serif;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
}

/* =========================
  Sections（SPではbodyの背後に固定配置）
========================= */

.full-menu__sections {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	border-top: 0.0625rem solid #fff;
	border-radius: 0 0 0.5rem 0.5rem;
	padding: 1.25rem 1.25rem 2.5rem;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease;
}

.full-menu__sections.is-slide-open {
	opacity: 1;
	visibility: visible;
}

/* 戻るボタン（SPのみ） */

.full-menu__back {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 2.625rem;
	font-family: "Cormorant Garamond", serif;
	font-size: 2.25rem;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
	background: transparent;
	cursor: pointer;
	width: 100%;
}

.full-menu__back-arrow {
	display: block;
	width: 1.5rem;
	height: 0.75rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transform: scaleX(-1);
}

.full-menu__section + .full-menu__section {
	margin-top: 1.25rem;
	border-top: 0.0625rem solid #fff;
}

.full-menu__section--line {
	padding-bottom: 1rem;
	border-bottom: 0.0625rem solid #fff;
}

.full-menu__section + .full-menu__section > .full-menu__section-title {
	padding-top: 1.5rem;
}

/* リストを持たない section（サステナビリティ列）は隙間と二重ボーダーを消してフラッシュに並べる */

.full-menu__section:not(:has(.full-menu__section-list)) + .full-menu__section:not(:has(.full-menu__section-list)) {
	margin-top: 0;
	border-top: none;
}

.full-menu__section--line:not(:has(.full-menu__section-list)) {
	padding-bottom: 0;
	border-bottom: none;
}

.full-menu__section-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 1.5rem;
	border-bottom: 0.0625rem solid #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	color: #fff;
	text-decoration: none;
}

.full-menu__section-title > span:first-child {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

.full-menu__section-arrow {
	display: block;
	width: 1.5rem;
	height: 0.75rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

/* =========================
  Section List（常に展開済み。SPでは親sectionsの高さで制御）
========================= */

.full-menu__section-list {
	padding-top: 1rem;
	padding-bottom: 0.5rem;
}

.full-menu__section-link-lead {
	flex-shrink: 0;
}

.full-menu__section-link-group {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	min-width: 0;
}

.full-menu__section-link-text {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

.full-menu__section-link-arrow {
	display: block;
	width: 1.0625rem;
	height: 0.3125rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right-small.svg);
	mask-image: url(../images/arrow-right-small.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	opacity: 0;
	transform: translateX(-0.25rem);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease, filter 0.3s ease;
}

.full-menu__section-item {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0;
	color: #fff;
}

.full-menu__section-item a {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	width: 100%;
	gap: 0.125rem;
	padding-block: 0.125rem;
	padding-inline: 0;
	color: #fff;
	text-decoration: none;
}

/* =========================
  Extra（Gorin + Links ラッパー：PCではサステナビリティ列下に配置）
========================= */

.full-menu__extra {
	margin-top: 2rem;
}

/* =========================
  Gorin / Links
========================= */

.full-menu__gorin {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background-color: #363231;
	text-decoration: none;
}

.full-menu__gorin img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	aspect-ratio: 280/64;
}

.full-menu__links {
	text-align: right;
	margin-top: 2rem;
}

.full-menu__links-item {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 2.2857142857;
	color: #fff;
}

.full-menu__links-item-link {
	box-sizing: border-box;
	display: inline-flex;
	flex-direction: row;
	align-items: baseline;
	gap: 0.375rem;
	max-width: 100%;
	color: #fff;
	text-decoration: none;
}

.full-menu__links-item-text {
	display: inline-block;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: text-decoration-color 0.3s ease;
}

.full-menu__links-item-arrow {
	padding-top: 0.1875rem;
	display: block;
	flex-shrink: 0;
	width: 0.8125rem;
	height: 0.5rem;
	-webkit-mask-image: url(../images/arrow-right-small2.svg);
	mask-image: url(../images/arrow-right-small2.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	opacity: 0;
	transform: translateX(0.25rem);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

/* =========================
  未来戦略 - コンテンツセクション
========================= */

.future-content {
	padding-top: 2.5rem;
}

.future-content__wrap {
	margin-top: 2.5rem;
	position: relative;
	max-width: 75rem;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	padding-bottom: 5rem;
}

.future-content__img {
	margin-top: 2.5rem;
	order: 1;
	overflow: hidden;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.future-content__img img {
	width: 100%;
	height: auto;
	aspect-ratio: 960/720;
	object-fit: cover;
}

.future-content__card {
	order: 0;
	padding: 3.5rem 2.125rem;
	background-color: rgba(40, 40, 40, 0.75);
	border-radius: 0.5rem;
}

.future-content__item + .future-content__item {
	margin-top: 2rem;
}

.future-content__title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.future-content__desc {
	margin-top: 1.125rem;
}

/* =========================
  未来戦略 - ボトムセクション
========================= */

.future-bottom {
	position: relative;
	z-index: 1;
	order: 2;
	margin-top: -4.125rem;
	padding-top: 0rem;
}

.future-bottom__brand {
	display: block;
	max-width: 9.25rem;
	width: 100%;
	margin-inline: auto;
}

.future-bottom__brand img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 148/175;
}

.future-bottom__text {
	margin-top: 1.75rem;
	text-align: center;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

/* =========================
  共通ヒーロー（FV）
========================= */

.fv {
	position: relative;
	padding-top: 4.25rem;
	overflow: hidden;
}

.fv__inner {
	position: relative;
	height: 100%;
	display: flex;
	align-items: flex-end;
	z-index: 1;
}

.fv__bg {
	position: absolute;
	inset: 0;
}

.fv__bg picture,
.fv__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 376/240;
}

.fv > .bg-gradient {
	z-index: 1;
}

.fv__body {
	padding-bottom: 6rem;
}

.fv__breadcrumb {
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.fv__breadcrumb a {
	color: #fff;
	text-decoration: none;
}

.fv__breadcrumb span {
	margin-inline: 0.25rem;
}

.fv__content {
	margin-top: 3.75rem;
	width: 100%;
}

.fv__title {
	margin: 0;
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

.fv__subtitle {
	margin-top: 1rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

.fv__subtitle-hyphen {
	font-family: "Times New Roman", "Yu Mincho", serif;
}

/* =========================
  斎場ギャラリー
========================= */

.gallery {
	background-color: #000000;
	padding-block: 2.5rem 5rem;
}

/* ========================================
 * フィルター
 * ======================================== */

html[lang|=en] .filter-selects__select--gallery-area,
body.translatepress-en_US .filter-selects__select--gallery-area,
html[lang|=vi] .filter-selects__select--gallery-area,
body.translatepress-vi .filter-selects__select--gallery-area {
	padding-left: calc(5.5em + 1.5rem);
}

html[lang|=en] .filter-selects__select--gallery-fc,
body.translatepress-en_US .filter-selects__select--gallery-fc {
	padding-left: calc(10em + 1.5rem);
}

html[lang|=vi] .filter-selects__select--gallery-fc,
body.translatepress-vi .filter-selects__select--gallery-fc {
	padding-left: calc(12em + 1.5rem);
}

/* 並び順 */

.gallery__sort {
	display: flex;
	justify-content: flex-end;
	margin-top: 3rem;
}

.gallery__sort-box {
	position: relative;
	display: flex;
	align-items: center;
	height: 3rem;
	padding: 0 1.5rem;
	border: 1px solid #fff;
	border-radius: 0.5rem;
	cursor: pointer;
	width: 100%;
}

.gallery__sort-box::after {
	content: "";
	position: absolute;
	right: 1.625rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.75rem;
	height: 0.375rem;
	background: url("../images/arrow.svg") no-repeat center/contain;
	pointer-events: none;
}

.gallery__sort-label {
	position: relative;
	z-index: 1;
	pointer-events: none;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	flex-shrink: 0;
	white-space: nowrap;
}

.gallery__sort-select {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: transparent;
	border: none;
	border-radius: 0.5rem;
	outline: none;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	padding-left: 6.5rem;
	padding-right: 2.25rem;
}

.gallery__sort-select option {
	background-color: #000000;
	color: #fff;
}

/* ========================================
 * カードグリッド
 * ======================================== */

.gallery__grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 2rem 1rem;
	margin-top: 2.5rem;
}

/* カード */

.gallery__card {
	cursor: pointer;
}

.gallery__card-img {
	border-radius: 0.5rem;
	overflow: hidden;
}

.gallery__card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 384/288;
}

/* カードメタ */

.gallery__card-meta {
	margin-top: 0.625rem;
}

.gallery__card-name {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.gallery__card-location {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

/* ========================================
 * ページネーション
 * ======================================== */

/* ドットインジケーター */

.gallery__dots {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	margin-top: 2rem;
	transition: opacity 0.4s ease;
}

.gallery__dots.is-hidden {
	opacity: 0;
}

.gallery__dot {
	display: block;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background-color: #646464;
}

.gallery__dot--active {
	background-color: #fff;
}

/* 投稿なし */

.gallery__empty {
	margin-top: 5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-align: center;
}

/* ========================================
 * モーダル
 * ======================================== */

.gallery__modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.gallery__modal.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.gallery__modal.is-open .gallery__modal-content {
	transform: scale(1);
}

.gallery__modal-overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.8);
	cursor: pointer;
}

.gallery__modal-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: min(60rem, 93.3333333333vh + 2rem);
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	background-color: transparent;
	border-radius: 0.5rem;
	padding: 2.5rem 1rem 1.5rem;
	transform: scale(0.96);
	transition: transform 0.3s ease;
}

.gallery__modal-close {
	position: absolute;
	top: 0rem;
	right: 0rem;
	width: 2.5rem;
	height: 2.5rem;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
}

.gallery__modal-close::before,
.gallery__modal-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.5rem;
	height: 1px;
	background-color: #fff;
	transform-origin: center;
}

.gallery__modal-close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.gallery__modal-close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.gallery__modal-img {
	width: 100%;
	max-width: 93.3333333333vh;
	aspect-ratio: 384/288;
	margin-inline: auto;
	overflow: hidden;
	border-radius: 0.5rem;
}

.gallery__modal-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gallery__modal-meta {
	margin-top: 1rem;
	text-align: center;
}

.gallery__modal-name {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.gallery__modal-location {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.header {
	height: 3rem;
	margin-top: 0.75rem;
	background-color: transparent;
	position: fixed;
	width: 100%;
	z-index: 1000;
	transition: background-color 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
	top: 0;
	left: 0;
	right: 0;
}

html.is-scroll-locked .header {
	padding-right: var(--scrollbar-comp, 0px);
}

.header__inner {
	height: inherit;
	position: relative;
	z-index: 1001;
	isolation: isolate;
	padding-inline: 0.75rem;
	width: 100%;
}

.header__inner::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0.75rem;
	right: 0.75rem;
	border-radius: 0.5rem;
	pointer-events: none;
	z-index: -1;
	background-color: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	opacity: 0;
	transition: opacity 0.3s ease, border-radius 0.3s ease;
}

.header__inner.is-blur::before {
	opacity: 1;
	border-radius: 0.5rem 0.5rem 0 0;
}

.header__inner.is-blur .header__container {
	border-radius: 0.5rem 0.5rem 0 0;
	background-color: rgba(0, 0, 0, 0.6);
}

.header__inner:has(.header__lang.is-open) .header__container {
	background-color: rgba(0, 0, 0, 0.6);
	border-radius: 0.5rem;
}

.header__container {
	height: inherit;
	display: flex;
	align-items: center;
	border-radius: 0.5rem 0.5rem 0 0;
	padding-left: 0.75rem;
	overflow: clip;
	background-color: transparent;
	transition: background-color 0.3s ease, border-radius 0.3s ease;
}

.header__logo {
	width: 7.8125rem;
	height: inherit;
	z-index: 999;
}

.header__logo picture,
.header__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 713/126;
}

.header__logo a {
	height: inherit;
	display: flex;
	align-items: center;
	position: relative;
}

.header__nav {
	display: none;
	height: inherit;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.header.is-active .header__nav {
	opacity: 1;
	visibility: visible;
}

.header__nav-list {
	display: flex;
	gap: 1rem;
	height: inherit;
	align-items: center;
}

.header:has(.full-menu.is-open) .header__nav-list {
	pointer-events: none;
}

.header__nav-item {
	height: inherit;
}

.header__nav-item--has-mega {
	position: static;
}

.header__nav-link {
	position: relative;
	height: inherit;
	display: flex;
	align-items: center;
	padding-inline: 0.75rem;
	background-color: transparent;
	color: #fff;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.75;
	letter-spacing: 0;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}

.is-mega-active > .header__nav-link {
	background-color: #fff;
	color: #231815;
	opacity: 1;
}

.header__actions {
	height: inherit;
	display: flex;
	align-items: stretch;
	margin-left: auto;
}

.header__lang {
	display: flex;
	gap: 0.375rem;
	height: inherit;
	justify-content: center;
	align-items: center;
	width: 3.375rem;
	border-inline: 0.0625rem solid #fff;
	cursor: pointer;
	transition: background-color 0.3s ease, border-inline-color 0.3s ease;
}

.header__lang-current {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0;
	text-align: center;
	transition: color 0.3s ease;
}

.header__lang-arrow {
	display: block;
	width: 0.5rem;
	height: 0.25rem;
	mask-image: url(../images/lang-bottom.svg);
	mask-size: cover;
	mask-position: center;
	mask-repeat: no-repeat;
	-webkit-mask-image: url(../images/lang-bottom.svg);
	-webkit-mask-size: cover;
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	background-color: #fff;
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.header__lang.is-open {
	background-color: #fff;
	border-inline-color: rgba(0, 0, 0, 0.12);
}

.header__lang.is-open .header__lang-current {
	color: #000000;
}

.header__lang.is-open .header__lang-arrow {
	transform: rotate(180deg);
	background-color: #000000;
}

.header__lang-dropdown {
	display: none;
	position: absolute;
	top: calc(100% + 0.5rem);
	width: 10rem;
	overflow: hidden;
	z-index: 1000;
}

.header__lang-dropdown.is-open {
	display: block;
}

.header__lang-dropdown-link {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 3rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	background-color: rgba(0, 0, 0, 0.8);
	border-bottom: 0.0625rem solid #fff;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.header__lang-dropdown-link:first-child {
	border-radius: 0.375rem 0.375rem 0 0;
}

.header__lang-dropdown-link:last-child {
	border-bottom: none;
	border-radius: 0 0 0.375rem 0.375rem;
}

.header__lang-dropdown-link.is-active {
	position: relative;
}

.header__lang-dropdown-link.is-active::before {
	content: "✓";
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.875rem;
	color: #fff;
	line-height: 1;
	transition: color 0.3s ease;
}

.header__contact {
	display: none;
}

/* =========================
  Hamburger
========================= */

.header__hamburger {
	width: 3.375rem;
	height: inherit;
	background-color: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	transition: background-color 0.3s ease;
}

.header__hamburger-line {
	width: 1.5rem;
	height: 0.125rem;
	background-color: #fff;
	border-radius: 0;
	transition: transform 0.3s ease;
}

/* ハンバーガー → ×印（フルメニュー展開時） */

.header__hamburger.is-open {
	position: relative;
	background-color: #fff;
	flex-direction: column;
	gap: 0;
	transition: background-color 0.3s ease;
}

.header__hamburger.is-open .header__hamburger-line {
	background-color: #000000;
	width: 1.375rem;
	height: 0.125rem;
	border-radius: 0;
	position: absolute;
	transform-origin: center;
	transition: transform 0.3s ease;
}

.header__hamburger.is-open .header__hamburger-line:first-child {
	transform: rotate(45deg);
}

.header__hamburger.is-open .header__hamburger-line:nth-child(2) {
	opacity: 0;
}

.header__hamburger.is-open .header__hamburger-line:last-child {
	transform: rotate(-45deg);
}

/* =========================
  Overlay（デモ同様）
========================= */

.header__overlay {
	position: fixed;
	inset: 0;
	z-index: 850;
	opacity: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.7));
}

/* メガメニュー／フルメニュー表示中は背面スクロールを禁止 */

html.is-scroll-locked {
	overflow: hidden;
}

html.is-scroll-locked body.is-scroll-locked {
	overflow: hidden;
}

/* TranslatePress デフォルトスイッチャー非表示 */

.trp-language-switcher.trp-floating-switcher {
	display: none !important;
}

/* motion safety */

/* =========================
  沿革 ヒーロー
========================= */

.history-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.history-hero__bg {
	position: absolute;
	inset: 0;
}

.history-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.history-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.45;
}

.history-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.history-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.history-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.history-hero__breadcrumb a {
	color: #fff;
}

.history-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.history-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  コンテンツラッパー
========================= */

.history-body {
	position: relative;
	overflow: hidden;
}

.history-body__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 46.875rem;
	opacity: 0.25;
}

.history-body__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.history-body__bg-fade {
	position: absolute;
	left: 0;
	right: 0;
	height: 15.625rem;
}

.history-body__bg-fade--top {
	top: 0;
	background: linear-gradient(to bottom, #000000, rgba(0, 0, 0, 0));
}

.history-body__bg-fade--bottom {
	bottom: 0;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #000000);
}

/* =========================
  イントロ
========================= */

.history-intro {
	position: relative;
	z-index: 1;
	padding: 2.5rem 0 2.5rem;
}

.history-intro__heading {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.1em;
}

.history-intro__text {
	max-width: 45rem;
	margin: 0.75rem auto 0;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  タイムライン
========================= */

.history-timeline {
	position: relative;
	z-index: 1;
	margin-top: 3rem;
}

.history-timeline::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0.78125rem;
	width: 0.0625rem;
	height: 100%;
	background-color: #fff;
}

.history-timeline {
	max-width: 25rem;
	margin-inline: auto;
}

.history-timeline__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.history-timeline__row + .history-timeline__row {
	margin-top: 1rem;
}

/* =========================
  エントリー
========================= */

.history-entry {
	position: relative;
	padding-left: 3rem;
}

.history-entry__dot {
	position: absolute;
	left: 0.5rem;
	top: 1rem;
	width: 0.5625rem;
	height: 0.5625rem;
	border-radius: 50%;
	background-color: #fff;
	z-index: 2;
}

.history-entry__connector {
	position: absolute;
	left: 0.5rem;
	top: 1.25rem;
	width: 2.5rem;
	height: 0.0625rem;
	background-color: #646464;
	z-index: 0;
}

.history-entry__card {
	z-index: 1;
}

/* =========================
  カード共通
========================= */

.history-entry__card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.5rem 2rem 2.75rem;
	border-radius: 0.5rem;
	box-sizing: border-box;
	aspect-ratio: 1/1;
}

/* Products カード */

.history-entry--products .history-entry__card {
	background-color: #fff;
}

/* Company カード */

.history-entry--company .history-entry__card {
	border: 1px solid #fff;
}

/* カテゴリラベル */

.history-entry__category {
	font-size: 1.125rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	line-height: 1;
	text-align: right;
	margin: 0;
	margin-right: -0.75rem;
}

.history-entry--products .history-entry__category {
	color: #a0a0a0;
}

.history-entry--company .history-entry__category {
	color: #fff;
}

/* 年号 */

.history-entry__year {
	margin-top: 0.5rem;
	font-size: 2.5rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	line-height: 1;
}

.history-entry--products .history-entry__year {
	color: #000000;
}

.history-entry--company .history-entry__year {
	color: #fff;
}

/* 説明テキスト */

.history-entry__desc {
	padding-top: 0.75rem;
	margin-top: auto;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.7142857143;
}

.history-entry--products .history-entry__desc {
	color: #000000;
}

.history-entry--company .history-entry__desc {
	color: #fff;
}

/* +ボタン */

.history-entry__toggle {
	position: absolute;
	top: 3rem;
	right: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background-color: #000000;
	border: none;
	cursor: pointer;
	padding: 0;
	transition: transform 0.3s ease;
}

.history-entry__toggle-icon {
	position: relative;
	display: block;
	width: 1rem;
	height: 1rem;
}

.history-entry__toggle-icon::before,
.history-entry__toggle-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #fff;
}

.history-entry__toggle-icon::before {
	width: 1rem;
	height: 0.125rem;
}

.history-entry__toggle-icon::after {
	width: 0.125rem;
	height: 1rem;
}

.history-entry--company .history-entry__toggle {
	background-color: #ffffff;
}

.history-entry--company .history-entry__toggle-icon::before,
.history-entry--company .history-entry__toggle-icon::after {
	background-color: #000000;
}

/* =========================
  ポップアップ
========================= */

.history-popup {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: 100;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.history-popup[aria-hidden=false] {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.history-popup__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.75;
	cursor: pointer;
}

.history-popup__card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: calc(100% - 2.5rem);
	max-width: 65rem;
	background-color: #fff;
	border-radius: 0.5rem;
	overflow: hidden;
	padding: 2.5rem 1.5rem;
}

.history-popup__close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 1.5rem;
	height: 1.5rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	z-index: 1;
	transition: transform 0.3s ease;
}

.history-popup__close-line {
	position: absolute;
	top: 50%;
	left: 0;
	width: 1.5rem;
	height: 0.0625rem;
	background-color: #646464;
}

.history-popup__close-line:first-child {
	transform: rotate(45deg);
}

.history-popup__close-line:last-child {
	transform: rotate(-45deg);
}

.history-popup__year {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #d2d2d2;
	line-height: 1;
	margin: 0;
}

.history-popup__title {
	margin-top: 1.5rem;
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.5;
}

.history-popup__desc {
	margin-top: 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.7142857143;
}

.history-popup__image {
	margin-top: 1.5rem;
}

.history-popup__image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 280/210;
	object-fit: cover;
	border-radius: 0.5rem;
}

.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	height: 100svh;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 0.5s ease, visibility 0.5s ease;
	background-color: #000000;
}

.loading.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* ドットローディング */

.loading__dots {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.loading__dot {
	display: block;
	width: 0.625rem;
	height: 0.625rem;
	border-radius: 50%;
	background-color: #fff;
	animation: loading-dot-bounce 1.4s ease-in-out infinite both;
}

.loading__dot:nth-child(1) {
	animation-delay: -0.32s;
}

.loading__dot:nth-child(2) {
	animation-delay: -0.16s;
}

.loading__dot:nth-child(3) {
	animation-delay: 0s;
}

/* 旧ローディング（コメントアウト）
.loading__bg {
  position: absolute;
  inset: 0;
}

.loading__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
*/

.mas-movie {
	margin-top: 4rem;
}

/* =========================
  Make ALL Smart ヒーロー
========================= */

.mas-hero {
	position: relative;
	height: 37.5rem;
	overflow: hidden;
}

.mas-hero__bg {
	position: absolute;
	inset: 0;
}

.mas-hero__bg picture,
.mas-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 375/804;
}

.mas-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.mas-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 12.5rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.mas-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}

.mas-hero__inner {
	text-align: center;
}

.mas-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.mas-hero__breadcrumb a {
	color: #fff;
}

.mas-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.mas-hero__title {
	position: relative;
	max-width: 9.25rem;
	width: 100%;
	margin-inline: auto;
}

.mas-hero__title-text {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	margin: -0.0625rem;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.mas-hero__title img {
	width: 100%;
}

.mas-hero__subtitle {
	margin-top: 0.75rem;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

/* =========================
  イントロ
========================= */

.mas-body {
	position: relative;
	background-color: #000000;
	padding: 2.5rem 0 5rem;
	overflow: hidden;
}

.mas-body::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 25rem;
	background: linear-gradient(to top, rgba(0, 0, 0, 0), rgb(0, 0, 0));
	pointer-events: none;
	z-index: 1;
}

.mas-body::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/439;
	background-image: linear-gradient(to bottom, #000000 0%, rgba(0, 0, 0, 0) 15%), url("../images/mas-body-bg-sp.jpg");
	background-size: cover;
	background-position: bottom center;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 0;
}

.mas-body__inner {
	position: relative;
	z-index: 1;
}

.mas-body__text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	max-width: 45rem;
	width: 100%;
	margin-inline: auto;
}

/* =========================
  S.M.A.R.T セクション
========================= */

.mas-smart {
	background-color: #000000;
	padding-bottom: 5rem;
}

.mas-smart__grid {
	margin-top: 5.625rem;
}

.mas-smart__label {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.mas-smart__heading {
	font-size: 2.5rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
	letter-spacing: -0.3em;
}

/* =========================
  カード共通
========================= */

.mas-smart__cards {
	margin-top: 2.5rem;
}

.mas-card + .mas-card {
	margin-top: 1rem;
}

.mas-card__header {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 1.875rem 0.75rem 1.875rem 3.875rem;
	cursor: pointer;
	isolation: isolate;
}

.mas-card__header::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #fff;
	z-index: -1;
	clip-path: polygon(3.375rem 0, 100% 0, 100% 100%, 0 100%, 0 4.875rem);
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.mas-card__header::after {
	content: "";
	display: none;
}

.mas-card__titles {
	flex-shrink: 0;
}

.mas-card__en {
	font-size: 1.5rem;
	font-weight: 400;
	font-family: "Cormorant Garamond", serif;
	color: #000000;
	line-height: 1.2;
}

.mas-card__initial {
	color: #a8071a;
	font-size: 2.5rem;
}

.mas-card__jp {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.7142857143;
}

.mas-card__summary {
	width: 100%;
	order: 3;
	color: #000000;
	margin-top: 0.5rem;
}

.mas-card__toggle {
	position: absolute;
	right: 0.75rem;
	bottom: 1.875rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
}

.mas-card__toggle-label {
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.5;
}

.mas-card__toggle-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	position: relative;
	transition: background-color 0.3s ease, transform 0.3s ease;
	background-color: #000000;
}

.mas-card.is-open .mas-card__toggle-icon {
	background-color: #d2d2d2;
}

.mas-card__toggle-icon::before,
.mas-card__toggle-icon::after {
	content: "";
	position: absolute;
	background-color: #fff;
}

.mas-card__toggle-icon::before {
	width: 1rem;
	height: 0.125rem;
}

.mas-card__toggle-icon::after {
	width: 0.125rem;
	height: 1rem;
	transition: transform 0.3s ease;
}

.mas-card.is-open .mas-card__toggle-icon::after {
	transform: rotate(90deg);
}

/* 展開パネル */

.mas-card__detail {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease;
}

.mas-card__detail-text {
	margin-top: 0.5rem;
	padding: 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	background-color: #282828;
	border-radius: 0.5rem;
}

/* =========================
  Mega Menu（ナビホバー時のドロップダウン）
========================= */

.mega-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 999;
	visibility: hidden;
	pointer-events: none;
	padding-inline: 1.5rem;
	padding-bottom: 1.5rem;
	transition: visibility 0.3s ease;
}

.mega-menu.is-open {
	visibility: visible;
	pointer-events: auto;
}

.mega-menu__body {
	max-width: 82.375rem;
	margin-inline: auto;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	border-top: 0.0625rem solid #fff;
	border-radius: 0 0 0.5rem 0.5rem;
	padding: 4.1875rem 6.1875rem 5rem;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	max-height: calc(100dvh - 8rem);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.mega-menu.is-open .mega-menu__body {
	opacity: 1;
}

.mega-menu__heading {
	margin: 0;
	font-family: "Cormorant Garamond", serif;
	font-size: 3rem;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
}

.mega-menu__columns {
	display: flex;
	gap: 3.125rem;
	margin-top: 1.875rem;
}

.mega-menu__col {
	flex: 1;
	min-width: 0;
}

.mega-menu__section-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 0.5625rem;
	border-bottom: 0.0625rem solid #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	color: #fff;
	text-decoration: none;
}

.mega-menu__section-title > span:first-child {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

.mega-menu__section-arrow {
	display: block;
	width: 1.5rem;
	height: 0.75rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

.mega-menu__section-list {
	padding-top: 1rem;
	padding-bottom: 0.5rem;
}

.mega-menu__section-item {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 2.2857142857;
	color: #fff;
}

.mega-menu__section-link-lead {
	flex-shrink: 0;
}

.mega-menu__section-link-group {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	min-width: 0;
}

.mega-menu__section-link-text {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

.mega-menu__section-link-arrow {
	display: block;
	width: 1.0625rem;
	height: 0.3125rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right-small.svg);
	mask-image: url(../images/arrow-right-small.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	opacity: 0;
	transform: translateX(-0.25rem);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease, filter 0.3s ease;
}

.mega-menu__section-item a.mega-menu__section-link {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	width: 100%;
	gap: 0.125rem;
	padding-block: 0.125rem;
	padding-inline: 0;
	color: #fff;
	text-decoration: none;
}

/* =========================
  代表メッセージ ヒーロー
========================= */

.message-hero {
	position: relative;
	height: 18.75rem;
	overflow: hidden;
}

.message-hero__bg {
	position: absolute;
	inset: 0;
}

.message-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.message-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.message-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 12.5rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.message-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.message-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.message-hero__breadcrumb a {
	color: #fff;
}

.message-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.message-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  メッセージ本文
========================= */

.message-content {
	background-color: #000000;
}

.message-content__photo {
	width: 53.3333333333vw;
	margin-inline: auto;
}

.message-content__photo img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 0.5rem;
}

.message-content__body {
	margin-top: 5rem;
}

.message-content__body p {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	margin: 0;
}

.message-content__body p + p {
	margin-top: 1.875rem;
}

.message-content__body p + p.message-content__signature {
	margin-top: 3.625rem;
}

.mv {
	position: relative;
	width: 100%;
	height: 100vh;
	height: 100dvh;
}

.mv__body {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding-bottom: 3rem;
}

.mv__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.mv__movie {
	position: absolute;
	inset: 0;
}

.mv__movie video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 375/720;
}

.mv__gradient {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 10rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, black 100%);
	z-index: 2;
}

.mv__body-inner {
	display: flex;
	flex-direction: column;
}

.mv__brand {
	margin-top: 0;
}

.mv__title {
	max-width: 9.25rem;
	width: 100%;
}

.mv__title img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 148/175;
}

.mv__text {
	margin-top: 1rem;
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.mv__button {
	margin-top: 2.25rem;
}

/* =========================
  ニュース一覧（アーカイブ）
========================= */

.news-archive {
	background-color: #000000;
	padding-block: 2.5rem 5rem;
}

/* ========================================
 * フィルター
 * ======================================== */

.news-archive__filter-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin-top: 1.5rem;
}

.news-archive__filter-tag {
	display: inline-block;
	padding: 0.1875rem 0.625rem;
	border: 1px solid #d2d2d2;
	border-radius: 0.25rem;
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #d2d2d2;
	text-decoration: none;
	line-height: 1.5;
}

.news-archive__filter-tag.is-active {
	background-color: #fff;
	color: #000000;
	border-color: #fff;
}

/* ========================================
 * カードグリッド
 * ======================================== */

.news-archive__grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 2rem;
	margin-top: 4rem;
}

/* カード */

.news-archive__card-link {
	display: grid;
	grid-template-columns: 7.5rem 1fr;
	grid-template-rows: auto 1fr;
	gap: 0 1.5rem;
	text-decoration: none;
	color: #fff;
}

/* カード画像 */

.news-archive__card-img {
	position: relative;
	border-radius: 0.5rem;
	aspect-ratio: 1/1;
	overflow: hidden;
	grid-row: 1/-1;
	grid-column: 1;
}

.news-archive__card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

/* カテゴリバッジ */

.news-archive__card-category {
	grid-row: 1;
	grid-column: 2;
	align-self: start;
	display: inline-block;
	padding: 0.1875rem 0.625rem;
	background-color: #282828;
	border-radius: 0.25rem;
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
	min-width: 3.5rem;
	width: -moz-fit-content;
	width: fit-content;
}

/* カードメタ */

.news-archive__card-meta {
	grid-row: 2;
	grid-column: 2;
	min-width: 0;
}

.news-archive__card-date {
	margin-top: 1.25rem;
	display: block;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.news-archive__card-title {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

/* ========================================
 * ページネーション
 * ======================================== */

.news-archive__pagination {
	margin-top: 4rem;
}

/* WordPress pagination 上書き */

.news-archive__pagination .navigation.pagination {
	text-align: center;
}

.news-archive__pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
}

.news-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	background-color: #282828;
	text-decoration: none;
	opacity: 1;
	transform: scale(1);
	transition: 0.3s ease-in-out all;
}

.news-archive__pagination .page-numbers.current {
	background-color: #fff;
	color: #282828;
}

/* ページネーション矢印 */

.news-archive__page-arrow {
	display: inline-block;
	width: 0.5rem;
	height: 0.75rem;
	position: relative;
}

.news-archive__page-arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
}

.news-archive__page-arrow--prev::before {
	transform: translate(-30%, -50%) rotate(135deg);
}

.news-archive__page-arrow--next::before {
	width: 0;
	height: 0;
	border: none;
	border-top: 0.375rem solid transparent;
	border-bottom: 0.375rem solid transparent;
	border-left: 0.5rem solid #fff;
	transform: translate(-50%, -50%);
}

/* 投稿なしメッセージ */

.news-archive__empty {
	margin-top: 5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-align: center;
}

/* =========================
  事業所紹介 ヒーロー
========================= */

.office-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.office-hero__bg {
	position: absolute;
	inset: 0;
}

.office-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.office-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.office-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.office-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.office-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.office-hero__breadcrumb a {
	color: #fff;
}

.office-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.office-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  コンテンツラッパー
========================= */

/* =========================
  黒部工場
========================= */

.office-factory__video {
	position: relative;
	margin-top: 3rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.office-factory__video .video-player__video {
	aspect-ratio: 336/189;
}

.office-factory__video video {
	aspect-ratio: 336/189;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* =========================
  技術革新の創出
========================= */

.office-dev {
	margin-top: 5rem;
	overflow-x: clip;
}

.office-dev__desc {
	margin-top: 2.5rem;
}

.office-dev__image {
	margin-top: 1.5rem;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.office-dev__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 376/272;
}

/* =========================
  全国に拠点配置
========================= */

.office-network {
	margin-top: 5rem;
}

.office-network__tests {
	margin-top: 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.office-network__map {
	margin-top: 2.5rem;
}

.office-network__map picture {
	display: none;
}

.office-network__map img {
	width: 100%;
	height: auto;
	display: block;
}

.office-network__buttons {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
}

.office-network__btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.625rem 0.75rem;
	border: 2px solid #fff;
	border-radius: 0.25rem;
}

.office-network__btn-name {
	font-size: 0.875rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
	text-decoration: none;
}

.office-network__btn-name::before {
	content: "";
	position: absolute;
	inset: 0;
}

.office-network__btn-map {
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	padding: 0.25rem 0.625rem;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	font-weight: 600;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
	text-decoration: none;
	width: 3rem;
	height: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 本社 */

.office-network__btn--honsha {
	border-color: #057d2d;
}

.office-network__btn--honsha .office-network__btn-map {
	background-color: #057d2d;
}

/* 工場 */

.office-network__btn--factory {
	border-color: #057d2d;
}

.office-network__btn--factory .office-network__btn-map {
	background-color: #057d2d;
}

/* 札幌支店 */

.office-network__btn--sapporo {
	border-color: #28a7b5;
}

.office-network__btn--sapporo .office-network__btn-map {
	background-color: #28a7b5;
}

/* 東北支店 */

.office-network__btn--tohoku {
	border-color: #75143e;
}

.office-network__btn--tohoku .office-network__btn-map {
	background-color: #75143e;
}

/* 東京本店 */

.office-network__btn--tokyo {
	border-color: #c36a07;
}

.office-network__btn--tokyo .office-network__btn-map {
	background-color: #c36a07;
}

/* 大阪支社 */

.office-network__btn--osaka {
	border-color: #a89307;
}

.office-network__btn--osaka .office-network__btn-map {
	background-color: #a89307;
}

/* 名古屋支店 */

.office-network__btn--nagoya {
	border-color: #0772a8;
}

.office-network__btn--nagoya .office-network__btn-map {
	background-color: #0772a8;
}

/* 広島支店 */

.office-network__btn--hiroshima {
	border-color: #b8071a;
}

.office-network__btn--hiroshima .office-network__btn-map {
	background-color: #b8071a;
}

/* 四国支店 */

.office-network__btn--shikoku {
	border-color: #a80772;
}

.office-network__btn--shikoku .office-network__btn-map {
	background-color: #a80772;
}

/* 九州支店 */

.office-network__btn--kyushu {
	border-color: #0722a8;
}

.office-network__btn--kyushu .office-network__btn-map {
	background-color: #0722a8;
}

/* =========================
  事業所一覧
========================= */

.office-list {
	padding: 2.5rem 0 3.75rem;
}

.office-list-wrapper {
	margin-top: 3.5rem;
}

.office-list__title {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	padding-bottom: 0.625rem;
	border-bottom: 1px solid #646464;
}

.office-list__grid {
	display: grid;
	grid-template-columns: 1fr;
	margin-top: 2rem;
}

/* =========================
  事業所カード
========================= */

.office-card {
	padding-block: 2rem;
	border-bottom: 1px solid #646464;
}

.office-card:first-child {
	padding-top: 0;
}

.office-card__name {
	flex-shrink: 0;
}

.office-card__body {
	margin-top: 1rem;
}

.office-card__image iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 336/170;
}

.office-card__info {
	margin-top: 0.75rem;
}

.office-card__zip {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.office-card__map {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.125rem 0.125rem;
	font-size: 0.875rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	background-color: #646464;
	border-radius: 0.25rem;
	text-decoration: none;
	line-height: 1;
	width: 3rem;
	height: 1.25rem;
}

#office-honsha .office-card__map,
#office-kurobe .office-card__map {
	background-color: #057d2d;
}

#office-sapporo .office-card__map {
	background-color: #28a7b5;
}

#office-tohoku .office-card__map {
	background-color: #75143e;
}

#office-tokyo .office-card__map {
	background-color: #c36a07;
}

#office-osaka .office-card__map {
	background-color: #a89307;
}

#office-nagoya .office-card__map {
	background-color: #0772a8;
}

#office-hiroshima .office-card__map {
	background-color: #b8071a;
}

#office-shikoku .office-card__map {
	background-color: #a80772;
}

#office-kyushu .office-card__map {
	background-color: #0722a8;
}

.office-card__contact {
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.office-card__tel,
.office-card__fax {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	display: flex;
	align-items: center;
	gap: 0.5625rem;
	width: -moz-fit-content;
	width: fit-content;
}

.office-card__tel {
	background-color: #282828;
	padding: 0.125rem 0.75rem 0.125rem 0.625rem;
	border-radius: 0.25rem;
	min-height: 2rem;
	text-decoration: none;
	color: #fff;
	transition: background-color 0.3s ease;
}

.office-card__tel-icon {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

/* =========================
  イントロ
========================= */

.ot-intro__title {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6666666667;
	text-align: center;
	letter-spacing: 0.2em;
}

.ot-intro__text {
	margin-top: 1.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  コンテンツ
========================= */

.ot-content__wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	margin-top: 3rem;
}

.ot-content__img {
	order: 1;
	overflow: hidden;
	margin-inline: calc(50% - 50vw);
	width: 100vw;
}

.ot-content__img img {
	width: 100%;
	height: auto;
	aspect-ratio: 960/720;
	object-fit: cover;
}

.ot-section__grid {
	order: 0;
}

.ot-section__grid--reverse {
	order: 2;
}

.ot-section__heading-area {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 1.125rem;
	margin-bottom: 1.5rem;
}

/* お客様との関わり（左側） */

/* 企業の枠を超えて（右側） */

.ot-section__heading-area::after {
	content: "";
	display: block;
	width: 3.75rem;
	height: 1px;
	background-color: #fff;
	flex-shrink: 0;
}

.ot-section__heading-area--reverse::before {
	content: "";
	display: block;
	width: 3.75rem;
	height: 1px;
	background-color: #fff;
	flex-shrink: 0;
	order: 2;
}

.ot-section__heading-area--reverse::after {
	display: none;
}

.ot-section__heading-area--reverse {
	order: -1;
}

.ot-section__heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

/* カード */

.ot-section__card {
	position: relative;
	padding: 3.5rem 2.125rem;
	background-color: rgba(40, 40, 40, 0.75);
	border-radius: 0.5rem;
}

.ot-section__card-body {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-top: 3rem;
}

/* ブロック */

.ot-section__block-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6;
	letter-spacing: 0.2em;
}

.ot-section__block-text {
	margin-top: 0.75rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  運営支援システム
========================= */

.os {
	background-color: #000000;
	padding-top: 1rem;
	padding-bottom: 5rem;
}

/* ========================================
 * 共通セクション（予約受付 / 遺骨確認）
 * ======================================== */

.os__section {
	position: relative;
	z-index: 1;
	padding-bottom: 4rem;
}

.os__section--top {
	padding-top: 3.5rem;
}

.os__section--border {
	position: relative;
	padding-top: 3.5rem;
}

.os__section--border::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

/* セクション見出し */

.os__section-body-wrap {
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* 製品画像 */

.os__section-image {
	margin-top: 3rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.os__section-image img,
.os__section-image picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 336/252;
}

/* ========================================
 * 共通ボタン
 * ======================================== */

.os__section-buttons {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	margin-top: 2rem;
}

.os__btn-download {
	position: relative;
	display: inline-block;
	padding: 0.8125rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: #fff;
	background-color: transparent;
	border-radius: 0.5rem;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.5;
	letter-spacing: 0em;
	border: 0.0625rem solid #fff;
	text-decoration: none;
	z-index: 0;
	transform: scale(1);
	transition: transform 0.3s ease;
	width: 15.75rem;
}

.os__btn-download::after {
	content: "";
	position: absolute;
	inset: -0.0625rem;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 61, 0, 0.3) 0%, rgba(255, 107, 53, 0.3) 100%);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.os__btn-download::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 1.5rem;
	width: 0.75rem;
	aspect-ratio: 12/16;
	-webkit-mask-image: url(../images/button-download.svg);
	mask-image: url(../images/button-download.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
}

/* ========================================
 * 体験エリア
 * ======================================== */

.os__trial {
	position: relative;
	margin-top: 3rem;
	padding-block: 2.34375rem;
	padding-inline: 1.875rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.os__trial::before,
.os__trial::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	aspect-ratio: 16/314;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 1;
}

.os__trial::before {
	left: 0;
	background-image: url("../images/parentheses-left-sp.png");
}

.os__trial::after {
	right: 0;
	background-image: url("../images/parentheses-right-sp.png");
}

.os__trial-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.os__trial-body {
	margin-top: 1rem;
}

.os__trial > .button {
	flex-shrink: 0;
	margin-inline: auto;
}

/* ========================================
 * 案内表示システム
 * ======================================== */

.os__display {
	position: relative;
	z-index: 1;
	padding-top: 4rem;
}

.os__display::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

/* 見出し＋説明 */

.os__display-title {
	font-size: 1.75rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.4;
	flex-shrink: 0;
}

.os__display-desc {
	margin-top: 3rem;
}

.os__display-lists {
	margin-top: 1.5rem;
}

.os__display-list.section-text {
	text-indent: -1em;
	padding-left: 1em;
}

/* ビフォーアフター比較 */

.os__display-compare {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	margin-top: 2.5rem;
}

.os__display-compare::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(90deg);
	width: 3.75rem;
	aspect-ratio: 60/96;
	background-image: url(../images/os-display-compare-item-icon.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 1;
}

.os__display-compare-item {
	background-color: #282828;
	border-radius: 0.5rem;
	overflow: hidden;
	padding: 3rem 1.75rem;
}

.os__display-compare-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 280/180;
}

.os__display-compare-body {
	margin-top: 1.25rem;
}

.os__display-compare-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.os__display-compare-list {
	margin-top: 0.75rem;
	list-style: disc;
	display: flex;
	flex-direction: column;
}

.os__display-compare-list li {
	text-indent: -1em;
	padding-left: 1em;
}

/* ボタン */

.os__display-buttons {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	margin-top: 2rem;
	width: 100%;
	margin-inline: auto;
}

/* =========================
  会社概要 ヒーロー
========================= */

.overview-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.overview-hero__bg {
	position: absolute;
	inset: 0;
}

.overview-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.overview-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.7;
}

.overview-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.overview-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.overview-hero__breadcrumb a {
	color: #fff;
}

.overview-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.overview-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  会社情報
========================= */

.overview-info {
	background-color: #000000;
	padding-block: 2.5rem 0rem;
}

.overview-dl__value-image {
	margin-top: 1.5rem;
	width: 100%;
}

.overview-dl__value-image iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 1/1;
	border: 0;
}

/* 定義リスト */

.overview-dl {
	margin: 0;
}

.overview-dl__row {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding-block: 1.25rem;
	border-top: 2px solid #646464;
}

.overview-info__col:first-child .overview-dl:first-child .overview-dl__row:first-child {
	border-top: none;
	padding-top: 0;
}

.overview-dl__label {
	flex-shrink: 0;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	margin: 0;
}

.overview-dl__value {
	flex: 1;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	margin: 0;
}

.overview-dl__value p {
	margin: 0;
}

.overview-dl__category {
	font-weight: 500;
	margin-top: 1rem;
}

.overview-dl__category:first-child {
	margin-top: 0;
}

.overview-dl__group + .overview-dl__group {
	margin-top: 1.5rem;
}

/* =========================
  ISO活動
========================= */

.overview-iso {
	position: relative;
	background-color: #000000;
	margin-top: 4.0625rem;
	padding-bottom: 5rem;
}

.overview-iso__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

.overview-iso__bg picture {
	display: block;
}

.overview-iso__bg img {
	width: 100%;
	height: auto;
	display: block;
}

.overview-iso__gradient--top {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	aspect-ratio: 376/100;
	background: linear-gradient(to bottom, #000000, rgba(0, 0, 0, 0));
}

.overview-iso__gradient--bottom {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	aspect-ratio: 376/100;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #000000);
}

.overview-iso__header {
	position: relative;
	z-index: 1;
}

.overview-iso__header-body {
	position: relative;
	z-index: 1;
}

.overview-iso__title {
	font-size: 1.75rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

.overview-iso__desc {
	margin-top: 3.125rem;
}

.overview-iso__desc-text {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.overview-iso__desc-text + .overview-iso__desc-text {
	margin-top: 1.5rem;
}

/* ISO カード */

.overview-iso__cards {
	display: grid;
	gap: 1rem;
	margin-top: 3rem;
}

.overview-iso__card {
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: #282828;
	overflow: hidden;
	border-radius: 0.5rem;
	padding: 4rem 1.75rem 1.75rem;
}

.overview-iso__card::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: #3c3c3c;
	clip-path: polygon(100% 42%, 100% 100%, 31% 100%);
}

.overview-iso__card-body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
}

.overview-iso__card-head {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.75rem;
}

.overview-iso__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.overview-iso__card-logo {
	flex-shrink: 0;
	width: 4rem;
}

.overview-iso__card-logo img {
	width: 100%;
	height: auto;
	aspect-ratio: 64/33;
	object-fit: contain;
	display: block;
}

.overview-iso__card-year {
	position: absolute;
	top: 0;
	left: 1.75rem;
	z-index: 2;
	width: 6.25rem;
	padding: 0.375rem 0;
	background-color: #a8071a;
	font-size: 0.875rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.4285714286;
	text-align: center;
}

.overview-iso__card-text {
	margin-top: 2rem;
}

.overview-iso__card-text p {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	margin: 0;
}

.overview-iso__card-text p + p {
	margin-top: 1rem;
}

.overview-iso__card-image {
	position: relative;
	z-index: 1;
	width: min(64vw, 384px);
	border-radius: 0.5rem;
	overflow: visible;
	margin-top: 2.5rem;
	margin-left: auto;
}

.overview-iso__card-image > picture > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
	border-radius: 0.5rem;
}

.overview-iso__card-cert {
	position: absolute;
	left: max(-10.6666666667vw, -64px);
	bottom: 1rem;
	width: min(22.4vw, 134.4px);
}

.overview-iso__card-cert img {
	width: 100%;
	height: auto;
	aspect-ratio: 140/198;
	object-fit: contain;
	display: block;
}

.index {
	padding: 2.5rem 1.5rem;
}

.index__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #000000;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.index__text {
	margin-top: 1rem;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #000000;
	line-height: 1.75;
}

.pagination {
	display: flex;
	align-items: center;
	justify-content: center;
}

.pagination__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding-inline: 0.75rem;
	border: 0.0625rem solid #d1d5dc;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: #0a0a0a;
	letter-spacing: -0.02em;
	line-height: 1.5;
	font-family: "Noto Sans JP", sans-serif;
	margin-left: 0.375rem;
	transition: background-color 0.3s, color 0.3s;
}

.pagination__btn:first-child {
	margin-left: 0;
}

.pagination__btn--current {
	background-color: #00bc7d;
	border-color: #00bc7d;
	color: #fff;
}

.pagination__btn--disabled {
	opacity: 0.5;
	pointer-events: none;
}

.pagination__btn--prev,
.pagination__btn--next {
	min-width: 3.25rem;
}

/* =========================
  ヒーローセクション
========================= */

.philosophy-hero {
	position: relative;
	padding-top: 3.75rem;
	overflow: hidden;
}

.philosophy-hero__bg {
	position: absolute;
	inset: 0;
}

.philosophy-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.philosophy-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 12.5rem;
	background: linear-gradient(to bottom, transparent, #000000);
}

.philosophy-hero__body {
	position: relative;
	height: 100%;
	display: flex;
	align-items: flex-end;
	z-index: 1;
}

.philosophy-hero__inner {
	padding-bottom: 2rem;
}

.philosophy-hero__breadcrumb {
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.philosophy-hero__breadcrumb a {
	color: #fff;
	text-decoration: none;
}

.philosophy-hero__breadcrumb span {
	margin-inline: 0.25rem;
}

.philosophy-hero__content {
	margin-top: 3.75rem;
}

.philosophy-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  経営理念・社是セクション（共通）
========================= */

.philosophy-section {
	padding-top: 2.5rem;
}

.philosophy-section__group {
	width: 100%;
}

.philosophy-section__row {
	padding: 2.5rem 0;
	border-top: 1px solid #646464;
}

.philosophy-section__row:last-child {
	border-bottom: 1px solid #646464;
}

.philosophy-section__label {
	flex-shrink: 0;
}

.philosophy-section__heading {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.philosophy-section__heading-en {
	margin-top: 0.25rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

.philosophy-section__content {
	margin-top: 1.5rem;
}

.philosophy-section__list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.philosophy-section__list-item {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.philosophy-section__list-item::before {
	content: "・";
}

/* =========================
  ブランドビジョン
========================= */

.philosophy-vision {
	position: relative;
	background-color: #000000;
	overflow: hidden;
	padding-block: 5rem 6.25rem;
}

.philosophy-vision::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	aspect-ratio: 375/580;
	background: url(../images/philosophy-vision-bg-sp.jpg) no-repeat center bottom/contain;
}

.philosophy-vision::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 15.625rem;
	background: linear-gradient(to bottom, #000000, transparent);
	pointer-events: none;
}

.philosophy-vision__body {
	position: relative;
	z-index: 1;
}

.philosophy-vision__label {
	flex-shrink: 0;
}

.philosophy-vision__heading {
	font-size: 1.75rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

.philosophy-vision__heading-en {
	margin-top: 0.25rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

.philosophy-vision__content {
	margin-top: 1.5rem;
}

.philosophy-vision__text {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 3;
	letter-spacing: 0.1em;
}

/* =========================
  ミッション
========================= */

.philosophy-mission {
	background-color: #000000;
	padding-block: 4rem;
}

.philosophy-mission__label {
	flex-shrink: 0;
}

.philosophy-mission__heading {
	font-size: 1.75rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

.philosophy-mission__heading-en {
	margin-top: 0.875rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

.philosophy-mission__content {
	margin-top: 2.5rem;
}

.philosophy-mission__slogan {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.philosophy-mission__desc {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.philosophy-mission__grid {
	margin-top: 4rem;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.philosophy-mission__img {
	position: relative;
	overflow: hidden;
	border-radius: 0.5rem;
}

.philosophy-mission__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.philosophy-mission__img::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.1);
	border-radius: inherit;
}

.philosophy-mission__pillar {
	position: relative;
	margin-top: -2.4375rem;
	padding: 0 1rem;
}

.philosophy-mission__number {
	font-size: 4rem;
	font-weight: 400;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.philosophy-mission__title {
	margin-top: 0.375rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.philosophy-mission__text {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

/* =========================
  予防保全システム
========================= */

.cfp-service {
	padding-top: 2.5rem;
	padding-bottom: 5rem;
}

/* ========================================
 * リードセクション
 * ======================================== */

.cfp-service__diagram {
	position: relative;
	z-index: 1;
	padding-bottom: 3.4375rem;
}

.cfp-service-title {
	font-size: 1.25rem;
	font-weight: 700;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	text-align: center;
}

.cfp-service-title.cfp-service-title--trouble {
	width: -moz-fit-content;
	width: fit-content;
	margin-inline: auto;
	text-align: left;
}

/* システム図解 */

.cfp-service__diagram-image {
	margin-top: 2.5rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.cfp-service__diagram-image img,
.cfp-service__diagram-image picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 336/252;
}

/* ========================================
 * 詳細セクション
 * ======================================== */

.cfp-service__detail {
	padding-bottom: 4rem;
}

.cfp-service__detail-content {
	margin-top: 4rem;
}

.cfp-service__detail-heading {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
}

.cfp-service__detail-text-wrap {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	margin-top: 1.75rem;
}

.cfp-service__detail-image {
	margin-top: 3rem;
	border-radius: 0.5rem;
	overflow: hidden;
	aspect-ratio: 1/1;
}

.cfp-service__detail-image img,
.cfp-service__detail-image picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 560/560;
}

/* ========================================
 * 自動送信セクション
 * ======================================== */

.cfp-service__connection {
	padding-bottom: 4rem;
}

.cfp-service__connection-content {
	position: relative;
	margin-top: 3rem;
	padding-block: 2.5rem;
	padding-inline: 1.5rem;
}

.cfp-service__connection-content::before,
.cfp-service__connection-content::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	aspect-ratio: 16/439;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 1;
}

.cfp-service__connection-content::before {
	left: 0;
	background-image: url("../images/parentheses-left-sp.png");
}

.cfp-service__connection-content::after {
	right: 0;
	background-image: url("../images/parentheses-right-sp.png");
}

.cfp-service__connection-diagram {
	border-radius: 0.5rem;
	padding-inline: 0.625rem;
	max-width: 21.25rem;
	width: 100%;
	margin-inline: auto;
}

.cfp-service__connection-diagram img,
.cfp-service__connection-diagram picture {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: 300/224;
}

.cfp-service__connection-diagram.cfp-service__connection-diagram--pm img,
.cfp-service__connection-diagram.cfp-service__connection-diagram--pm picture {
	aspect-ratio: 306/182;
}

.cfp-service__connection-text {
	margin-top: 1.75rem;
}

.cfp-service__connection-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.cfp-service__connection-body {
	margin-top: 1rem;
}

/* ========================================
 * トラブル対策セクション
 * ======================================== */

.cfp-service__trouble {
	position: relative;
	z-index: 1;
	padding-top: 3.4375rem;
}

.cfp-service__trouble::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 20px * 2);
	max-width: 600px;
	height: 1px;
	background-color: #646464;
}

/* ========================================
 * 特長カード
 * ======================================== */

.cfp-service__features {
	padding-bottom: 5rem;
}

.cfp-service__features-grid {
	margin-top: 2.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.cfp-service__feature-card {
	background-color: #282828;
	border-radius: 0.5rem;
	overflow: hidden;
	padding: 1.875rem 2rem 3rem;
}

.cfp-service__feature-card-img.cfp-service__feature-card-img--rm {
	overflow: hidden;
	max-width: 16.25rem;
	width: 100%;
	margin-inline: auto;
}

.cfp-service__feature-card-img.cfp-service__feature-card-img--rm {
	overflow: hidden;
	max-width: 16.25rem;
	width: 100%;
	margin-inline: auto;
}

.cfp-service__feature-card-img img,
.cfp-service__feature-card-img picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.cfp-service__feature-card-body {
	margin-top: -1rem;
}

.cfp-service__feature-card-title {
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

.cfp-service__feature-card-text {
	margin-top: 0.5rem;
}

/* =========================
  プライバシーポリシー
========================= */

.privacy {
	background-color: #000000;
	padding-bottom: 5rem;
}

.privacy__content {
	max-width: 50rem;
	margin-inline: auto;
	padding-top: 1rem;
	padding-bottom: 5rem; /* 見出し（h2） */ /* 本文（p） */ /* リスト（ul） */
}

.privacy__content h2 {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0em;
}

.privacy__content p {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0em;
	margin-top: 2rem;
}

.privacy__content p + p {
	margin-top: 2rem;
}

.privacy__content ul {
	margin-top: 1.25rem;
}

.privacy__content ul + p {
	margin-top: 1.25rem;
}

.privacy__content ul li {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	padding-left: 1rem;
	position: relative;
}

.privacy__content ul li::before {
	content: "・";
	position: absolute;
	left: 0;
}

.privacy__content .wp-block-separator {
	border-top: 1px solid #fff;
	margin-block: 4.125rem;
}

/* =========================
  製品情報 ヒーロー
========================= */

.products-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.products-hero__bg {
	position: absolute;
	inset: 0;
}

.products-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.products-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.65;
}

.products-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.products-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.products-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.products-hero__breadcrumb a {
	color: #fff;
}

.products-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.products-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  フィルター
========================= */

.products-filter__grid {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.products-filter__select {
	position: relative;
	flex: 1;
}

.products-filter__trigger {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 1rem 1.25rem;
	background-color: #282828;
	border: none;
	border-radius: 0.5rem;
	cursor: pointer;
}

.products-filter__label {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.products-filter__value {
	flex: 1;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.products-filter__chevron {
	width: 0.75rem;
	height: 0.5rem;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	background-color: #fff;
	transition: transform 0.3s;
}

.products-filter__select.is-open .products-filter__chevron {
	transform: rotate(180deg);
}

.products-filter__dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 10;
	margin-top: 0.25rem;
	padding: 0.5rem 0;
	background-color: #282828;
	border-radius: 0.5rem;
	list-style: none;
}

.products-filter__select.is-open .products-filter__dropdown {
	display: block;
}

.products-filter__option {
	padding: 0.5rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 2.5;
	cursor: pointer;
	transition: background-color 0.2s;
}

.products-filter__option.is-active {
	background-color: #181818;
}

/* =========================
  製品グリッド
========================= */

.products-grid {
	margin-top: 3rem;
}

.products-grid__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	overflow: hidden;
}

/* =========================
  製品カード
========================= */

.products-card {
	display: block;
	min-width: 0;
	text-decoration: none;
	transition: opacity 0.3s;
}

.products-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-direction: column;
	gap: 0.75rem;
}

.products-card__name {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5555555556;
}

.products-card__arrow {
	display: inline-block;
	flex-shrink: 0;
	width: 1.5rem;
	aspect-ratio: 2/1;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

.products-card__tags {
	display: flex;
	gap: 0.25rem;
	flex-shrink: 0;
}

.products-card__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 1.5rem;
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1;
}

.products-card__tag:first-child {
	border-radius: 0.25rem;
}

.products-card__tag:last-child {
	border-radius: 0.25rem;
}

.products-card__tag--industry {
	background-color: #fff;
	color: #000000;
	padding: 0 0.75rem;
}

.products-card__tag--hot {
	background-color: #a8071a;
	color: #fff;
	padding: 0 0.5rem;
}

.products-card__tag--mid {
	background-color: #057d2d;
	color: #fff;
	padding: 0 0.5rem;
}

.products-card__tag--low {
	background-color: #02348d;
	color: #fff;
	padding: 0 0.5rem;
}

.products-card__image {
	margin-top: 1rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.products-card__image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 336/168;
	object-fit: cover;
	transition: transform 0.3s ease;
}

/* =========================
  遠隔メンテナンスシステム
========================= */

.rm {
	background-color: #000000;
}

/* ========================================
 * リードセクション
 * ======================================== */

.rm__lead {
	padding-top: 1rem;
	padding-bottom: 4rem;
}

.rm__lead-heading {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

/* システム図解 */

.rm__diagram {
	margin-top: 2rem;
	border-radius: 0.5rem;
	overflow: hidden;
	background-color: #282828;
}

.rm__diagram img {
	width: 100%;
	height: auto;
}

/* ========================================
 * 詳細セクション
 * ======================================== */

.rm__detail {
	padding-bottom: 4rem;
}

.rm__detail-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.rm__detail-body {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

.rm__detail-image {
	margin-top: 2rem;
	border-radius: 0.5rem;
	overflow: hidden;
	background-color: #282828;
	aspect-ratio: 1/1;
}

.rm__detail-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ========================================
 * セキュリティセクション
 * ======================================== */

.rm__security {
	padding-bottom: 4rem;
}

.rm__security-diagram {
	border-radius: 0.5rem;
	overflow: hidden;
}

.rm__security-diagram img {
	width: 100%;
	height: auto;
}

.rm__security-text {
	margin-top: 1.5rem;
}

.rm__security-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.rm__security-body {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

/* ========================================
 * 緊急時セクション
 * ======================================== */

.rm__emergency {
	padding-top: 4rem;
	padding-bottom: 4rem;
	border-top: 1px solid #646464;
}

.rm__emergency-heading {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	text-align: center;
}

/* ========================================
 * 特長カード
 * ======================================== */

.rm__features {
	padding-bottom: 5rem;
}

.rm__features-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

.rm__feature-card {
	background-color: #282828;
	overflow: hidden;
}

.rm__feature-card-img {
	aspect-ratio: 1/1;
	overflow: hidden;
}

.rm__feature-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm__feature-card-body {
	padding: 1.25rem 1rem;
}

.rm__feature-card-title {
	font-size: 1.125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

.rm__feature-card-text {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
}

/* =========================
  SDGsの取り組み
========================= */

.sdgs {
	background-color: #000000;
	padding-block: 2.5rem 8.375rem;
	overflow-x: clip;
}

/* ========================================
 * イントロ（アイコン＋リード文）
 * ======================================== */

/* SDGs 17目標アイコングリッド */

.sdgs__icons {
	margin-inline: auto;
	width: 100%;
}

.sdgs__icons img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 337/166;
}

/* リード文 */

.sdgs__lead {
	margin-top: 2rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
	max-width: 45rem;
	width: 100%;
	margin-inline: auto;
}

/* ========================================
 * コンテンツブロック（左右交互レイアウト）
 * ======================================== */

.sdgs__block-container {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.sdgs__block {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

/* 画像 */

.sdgs__block-image picture,
.sdgs__block-image img {
	overflow: hidden;
	aspect-ratio: 355/200;
}

.sdgs__block:nth-child(odd) .sdgs__block-image {
	margin-right: calc(50% - 50vw);
}

.sdgs__block:nth-child(odd) .sdgs__block-image picture,
.sdgs__block:nth-child(odd) .sdgs__block-image img {
	border-radius: 8px 0 0 8px;
}

.sdgs__block:nth-child(even) .sdgs__block-image {
	margin-left: calc(50% - 50vw);
}

.sdgs__block:nth-child(even) .sdgs__block-image picture,
.sdgs__block:nth-child(even) .sdgs__block-image img {
	border-radius: 0 8px 8px 0;
}

.sdgs__block-image picture,
.sdgs__block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* テキストエリア */

/* reversed: テキストを右寄せ */

/* 見出し */

.sdgs__block-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

/* 本文 */

.sdgs__block-text p {
	margin-top: 1.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.sdgs__block-text p + p {
	margin-top: 1.875rem;
}

/* 関連SDGs目標アイコン */

.sdgs__block-goals {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin-top: 2rem;
}

.sdgs__block-goals img {
	width: 3.125rem;
	height: 3.125rem;
	object-fit: contain;
}

.section-links {
	background-color: #000000;
	padding-top: 3rem;
	padding-bottom: 3.5rem;
}

.section-links__list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.section-links__item {
	flex: 1;
}

.section-links__link {
	display: block;
	text-decoration: none;
	color: #fff;
	transition: 0.3s ease;
}

.section-links__img {
	overflow: hidden;
	border-radius: 0.5rem;
}

.section-links__img img {
	width: 100%;
	height: auto;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.section-links__body {
	margin-top: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.section-links__labels {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.section-links__label-jp {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0;
}

.section-links__label-en {
	margin-top: 0;
	font-size: 1rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0;
}

.section-links__arrow {
	display: block;
	width: 2.125rem;
	aspect-ratio: 35/10;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	animation: none;
}

/* =========================
  リード
========================= */

.sim-lead {
	width: 100%;
}

.sim-lead__catch {
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.6666666667;
	text-align: center;
	letter-spacing: 0.2em;
}

.sim-lead__text {
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* =========================
  シミュレーション詳細カード
========================= */

.sim-cards {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.sim-cards__card {
	display: flex;
	flex-direction: column;
}

.sim-cards__card-icon {
	position: relative;
}

.sim-cards__card-icon picture {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0.5rem;
	overflow: hidden;
}

.sim-cards__card-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 560/420;
}

.sim-cards__card-number {
	position: absolute;
	left: 1rem;
	bottom: -1.875rem;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.sim-cards__card-body {
	margin-top: 2.375rem;
	padding-inline: 1rem;
}

.sim-cards__card-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.sim-cards__card-text {
	margin-top: 0.75rem;
}

/* =========================
  ニュース詳細（single）
========================= */

.single-news {
	background-color: #000000;
	padding-bottom: 5rem;
}

/* 記事本体（800px 中央寄せ） */

.single-news__article {
	max-width: 50rem;
	margin-inline: auto;
}

/* ========================================
 * メタ情報
 * ======================================== */

/* 日付 */

.single-news__date {
	display: block;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

/* タイトル */

.single-news__title {
	margin-top: 0.5rem;
	font-size: 1.5rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.4285714286;
}

/* カテゴリ */

.single-news__category {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 3rem;
}

.single-news__category-badge {
	display: inline-block;
	padding: 0.4375rem 0.75rem;
	background-color: #282828;
	border-radius: 0.25rem;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.single-news__category-name {
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
}

/* タグ */

.single-news__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1rem;
}

.single-news__tag {
	display: inline-block;
	padding: 0.375rem 0.5625rem;
	border: 1px solid #d2d2d2;
	border-radius: 0.25rem;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #d2d2d2;
	text-decoration: none;
	line-height: 1.5;
}

/* ========================================
 * サムネイル
 * ======================================== */

.single-news__caption {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.4285714286;
}

/* ========================================
 * 本文（the_content）
 * ======================================== */

.single-news__content {
	margin-top: 2rem;
	overflow-wrap: break-word;
}

.wp-block-separator {
	margin-top: 4rem;
	margin-bottom: 0;
}

.single-news__content p {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.single-news__content p + p {
	margin-top: 1.25rem;
}

.single-news__content h2 {
	font-size: 1.25rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.single-news__content * + h2 {
	margin-top: 4rem;
}

.single-news__content h2 + * {
	margin-top: 0.625rem;
}

.single-news__content figure + * {
	margin-top: 4rem;
}

.single-news__content img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.single-news__content iframe {
	display: block;
	max-width: 100%;
}

.single-news__content .wp-block-embed {
	margin: 0;
}

.single-news__content .wp-block-embed .wp-block-embed__wrapper {
	width: 100%;
}

.single-news__content .wp-block-embed.is-type-video iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
}

.single-news__content .wp-block-embed:not(.is-type-video) iframe {
	width: 100%;
	height: auto;
}

.single-news__content figure {
	margin: 0;
}

.single-news__content * + figure {
	margin-top: 2.5rem;
}

.single-news__content figcaption {
	margin-top: 1rem;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	margin-bottom: 0 !important;
	text-align: left !important;
}

/* ========================================
 * 記事ナビゲーション
 * ======================================== */

.single-news__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 4rem;
	padding-block: 1.5625rem;
	border-top: 1px solid #646464;
	border-bottom: 1px solid #646464;
}

.single-news__nav-item {
	flex: 1;
}

.single-news__nav-item--back {
	text-align: center;
}

.single-news__nav-item--next {
	text-align: right;
}

.single-news__nav-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.25;
	letter-spacing: 0;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: color 0.3s ease, text-decoration-color 0.3s ease;
}

.single-news__nav-arrow {
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
}

.single-news__nav-arrow--prev {
	transform: rotate(135deg);
}

.single-news__nav-arrow--next {
	transform: rotate(-45deg);
}

/* ========================================
 * カテゴリ・タグフィルター
 * ======================================== */

.single-news__filter {
	margin-top: 3rem;
}

.single-news__filter-selects {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.single-news__filter-box {
	display: flex;
	align-items: center;
	height: 3.5rem;
	padding: 0 1rem;
	background-color: #282828;
	border-radius: 0.5rem;
}

.single-news__filter-label {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	flex-shrink: 0;
}

.single-news__filter-select {
	width: 100%;
	background: transparent;
	border: none;
	outline: none;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.25rem center;
	padding-right: 1.5rem;
}

.single-news__filter-select option {
	background-color: #282828;
	color: #fff;
}

.single-news__filter-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin-top: 1rem;
}

.single-news__filter-tag {
	display: inline-block;
	padding: 0.1875rem 0.625rem;
	border: 1px solid #d2d2d2;
	border-radius: 0.25rem;
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #d2d2d2;
	text-decoration: none;
	line-height: 1.5;
}

/* =========================
  サイトマップ
========================= */

.sitemap {
	padding-top: 2.5rem;
	padding-bottom: 5rem;
}

/* ホームリンク */

.sitemap__home {
	padding-bottom: 1.25rem;
	border-bottom: 1px solid #fff;
}

.sitemap__home-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-decoration: none;
}

/* 共通矢印 */

.sitemap__arrow {
	display: block;
	width: 1.5rem;
	height: 0.75rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right.svg);
	mask-image: url(../images/arrow-right.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	transition: background-color 0.3s ease, filter 0.3s ease;
	animation: none;
}

/* 3カラムグリッド */

.sitemap__columns {
	margin-top: 5rem;
	display: flex;
	flex-direction: column;
	gap: 5rem;
}

/* カラム見出し */

.sitemap__heading {
	margin-bottom: 1.5rem;
	font-size: 2.25rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
}

/* セクションタイトル（リンク） */

.sitemap__group-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: 1.25rem;
	border-bottom: 1px solid #fff;
	font-size: 1rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	text-decoration: none;
}

.sitemap__group-title > span:first-child {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

/* サブリスト */

.sitemap__group-list {
	padding-block: 1.25rem;
	border-bottom: 1px solid #fff;
}

.sitemap__group-item {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 2.2857142857;
}

.sitemap__group-item a {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	width: 100%;
	gap: 0.125rem;
	padding-block: 0.125rem;
	padding-inline: 0;
	color: #fff;
	text-decoration: none;
}

.sitemap__group-item-lead {
	flex-shrink: 0;
}

.sitemap__group-item-group {
	display: inline-flex;
	align-items: center;
	gap: 0.3125rem;
	min-width: 0;
}

.sitemap__group-item-text {
	display: inline-block;
	transform: translateX(0);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: transform 0.3s ease, text-decoration-color 0.3s ease;
}

.sitemap__group-item-arrow {
	display: block;
	width: 1.0625rem;
	height: 0.3125rem;
	flex-shrink: 0;
	-webkit-mask-image: url(../images/arrow-right-small.svg);
	mask-image: url(../images/arrow-right-small.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	opacity: 0;
	transform: translateX(-0.25rem);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease, filter 0.3s ease;
}

.sitemap__group-item--sub {
	padding-left: 0.875rem;
}

/* GORIN ボタン */

.sitemap__gorin {
	display: block;
	margin-top: 3rem;
}

.sitemap__gorin img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 340/64;
}

/* その他リンク */

.sitemap__extra-links {
	margin-top: 3rem;
	text-align: right;
}

.sitemap__extra-item {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 2.2857142857;
	color: #fff;
}

.sitemap__extra-item a {
	box-sizing: border-box;
	display: inline-flex;
	flex-direction: row;
	align-items: baseline;
	gap: 0.375rem;
	max-width: 100%;
	color: #fff;
	text-decoration: none;
}

.sitemap__extra-item-text {
	display: inline-block;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.125rem;
	transition: text-decoration-color 0.3s ease;
}

.sitemap__extra-item-arrow {
	padding-top: 0.1875rem;
	display: block;
	flex-shrink: 0;
	width: 0.8125rem;
	height: 0.5rem;
	-webkit-mask-image: url(../images/arrow-right-small2.svg);
	mask-image: url(../images/arrow-right-small2.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	background-color: #fff;
	opacity: 0;
	transform: translateX(0.25rem);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

/* =========================
  イントロ
========================= */

.sf-intro {
	background-color: #000000;
	padding: 2.5rem 0 5rem;
}

.sf-concept__visual {
	margin-top: 3.5rem;
	border-radius: 0.5rem;
	overflow: hidden;
}

.sf-concept__visual img {
	width: 100%;
	height: auto;
	display: block;
}

.sf-intro__downloads {
	margin-top: 3rem;
}

/* =========================
  特徴
========================= */

.sf-features {
	position: relative;
	padding: 3.75rem 0;
	border-top: 1px solid #646464;
}

.sf-features::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	background: url("../images/smart-furnace-features-bg-sp.jpg") no-repeat center/cover;
	z-index: -1;
	aspect-ratio: 376/750;
}

.sf-features__inner {
	position: relative;
}

.sf-features__grid {
	margin-top: 2.5rem;
}

.sf-features__item-img {
	border-radius: 0.5rem;
	overflow: hidden;
}

.sf-features__item-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

.sf-features__item-body {
	position: relative;
	margin-top: -2.4375rem;
	padding: 0 1rem;
}

.sf-features__item-number {
	display: block;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

.sf-features__item-title {
	margin-top: 0.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.sf-features__item-text {
	margin-top: 1rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.sf-features__catalog {
	margin-top: 4rem;
	padding-top: 4rem;
	position: relative;
}

.sf-features__catalog::before {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	max-width: 1200px;
	width: calc(100% - 40px);
	height: 1px;
	background-color: #646464;
	z-index: -1;
}

/* =========================
  鉄鋼用設備 ヒーロー
========================= */

.steel-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.steel-hero__bg {
	position: absolute;
	inset: 0;
}

.steel-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.steel-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.65;
}

.steel-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.steel-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.steel-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.steel-hero__breadcrumb a {
	color: #fff;
}

.steel-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.steel-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  コンテンツラッパー
========================= */

.steel-body {
	background-color: #000000;
}

/* =========================
  火葬炉 独自技術
========================= */

.tech {
	position: relative;
}

.tech::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	height: 1px;
	background-color: #646464;
	max-width: 1200px;
	width: calc(100% - 25px * 2);
}

.tech::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 376/400;
	background-image: url("../images/technology-lead-sp.jpg");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 0;
}

/* ========================================
 * リードセクション
 * ======================================== */

.tech__lead {
	position: relative;
	z-index: 1;
	padding-top: 17.5rem;
}

.tech__lead-heading {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5;
}

.tech__lead-text {
	margin-top: 1.5rem;
}

/* ========================================
 * テクノロジーブロック（ジグザグレイアウト）
 * ======================================== */

.tech__blocks {
	margin-top: 3.5rem;
	position: relative;
	z-index: 1;
}

/* 画像 */

.tech__block-image {
	border-radius: 0.5rem;
	overflow: hidden;
}

.tech__block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

/* テキストエリア */

.tech__block-body {
	position: relative;
	margin-top: -2.4375rem;
	padding: 0 1rem;
}

/* ナンバー */

.tech__block-num {
	display: block;
	font-size: 4rem;
	font-weight: 500;
	font-family: "Cormorant Infant", serif;
	color: #fff;
	line-height: 1;
}

/* 見出し */

.tech__block-heading {
	margin: 0;
	margin-top: 0.5rem;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
}

.tech__block-text-wrap {
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.top-lead {
	position: relative;
	padding-top: 3.75rem;
	padding-bottom: 2.5rem;
	overflow-x: clip;
}

.top-lead::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: url("../images/industrial-furnaces.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.top-lead::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 12.5rem;
	background: linear-gradient(180deg, #000000 0%, transparent 100%);
	z-index: 1;
}

.top-lead__inner {
	position: relative;
	z-index: 2;
}

.top-lead__title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.top-lead__text {
	margin-top: 2.5rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.75;
	letter-spacing: 0;
}

.top-lead__button {
	margin-top: 4.5rem;
}

.top-lead__content {
	position: relative;
	z-index: 2;
}

.top-lead__img {
	margin-top: 3.75rem;
}

.top-lead__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 378/192;
	object-position: 90% bottom;
	opacity: 0.9;
}

.top-news {
	position: relative;
	background: url(../images/top-news-bg.jpg) no-repeat center center/cover;
	padding-top: 3rem;
	padding-bottom: 6rem;
}

.top-news__inner {
	position: relative;
	z-index: 1;
}

.top-news__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.top-news__heading {
	margin: 0;
	font-size: 2.5rem;
	font-weight: 600;
	font-family: "Cormorant Garamond", serif;
	color: #fff;
	line-height: 1;
	letter-spacing: 0;
}

.top-news__slider-nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.top-news__nav-prev,
.top-news__nav-next {
	width: 3rem;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	flex-shrink: 0;
	transition: background-color 0.3s ease, opacity 0.3s ease;
}

.top-news__nav-prev img,
.top-news__nav-next img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.top-news__slider-wrap {
	position: relative;
	margin-top: 2rem;
}

.top-news__nav-prev--sp {
	position: absolute;
	top: 0;
	left: -0.625rem;
	margin-top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 3rem;
}

.top-news__nav-next--sp {
	position: absolute;
	top: 0;
	right: -0.625rem;
	margin-top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 3rem;
}

.top-news__swiper {
	overflow: hidden;
}

.top-news__items {
	display: flex;
}

.top-news__item {
	margin-top: 0;
}

.top-news__item-link {
	display: block;
	text-decoration: none;
	color: #fff;
	transition: 0.3s ease;
}

.top-news__img {
	position: relative;
	border-radius: 0.5rem;
	aspect-ratio: 1/1;
	overflow: hidden;
}

.top-news__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.top-news__meta {
	margin-top: 0.75rem;
}

.top-news__category {
	position: absolute;
	left: 0.5rem;
	right: 0.5rem;
	bottom: 0.5rem;
	display: inline-block;
	padding: 0.125rem 0.5rem;
	background-color: #282828;
	border-radius: 0.25rem;
	font-size: 0.6875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0;
	text-align: left;
	width: -moz-fit-content;
	width: fit-content;
}

.top-news__date {
	display: block;
	margin-top: 0.5rem;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0;
}

.top-news__title {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0;
}

.top-news__nav-dots {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.top-news__nav-dots .swiper-pagination-bullet {
	display: block;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background-color: #646464;
	opacity: 1;
	transition: 0.3s ease;
	cursor: pointer;
}

.top-news__nav-dots .swiper-pagination-bullet-active {
	width: 2.5rem;
	border-radius: 0.25rem;
	background-color: #fff;
}

.top-news__nav-dots .swiper-pagination-lock .swiper-pagination-bullet-active {
	flex: 1;
}

.top-news__nav-dots.top-news__nav-dots--sp {
	display: none;
	justify-content: center;
	margin-top: 1.5rem;
}

.top-news__button {
	margin-top: 2rem;
	text-align: center;
}

/* =========================
  工業炉 ヒーロー
========================= */

.furnace-hero {
	position: relative;
	height: 15rem;
	overflow: hidden;
}

.furnace-hero__bg {
	position: absolute;
	inset: 0;
}

.furnace-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.furnace-hero__overlay {
	position: absolute;
	inset: 0;
	background-color: #000000;
	opacity: 0.6;
}

.furnace-hero__gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.25rem;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgb(0, 0, 0));
}

.furnace-hero__body {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 100%;
}

.furnace-hero__breadcrumb {
	position: absolute;
	top: 5rem;
	left: 20px;
	font-size: 0.75rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
	text-align: left;
}

.furnace-hero__breadcrumb a {
	color: #fff;
}

.furnace-hero__breadcrumb span {
	margin: 0 0.25rem;
}

.furnace-hero__title {
	font-size: 2rem;
	font-weight: 500;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.25;
}

/* =========================
  コンテンツラッパー
========================= */

.furnace-body {
	position: relative;
	background-color: #000000;
}

.furnace-body::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	aspect-ratio: 376/193;
	background: url("../images/furnace-body-fv-sp.jpg") center/cover no-repeat;
	pointer-events: none;
}

.furnace-body::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	aspect-ratio: 376/193;
	background: linear-gradient(to bottom, transparent, #000000);
	pointer-events: none;
}

/* =========================
  共同開発
========================= */

.furnace-innovation {
	position: relative;
	z-index: 1;
	padding-block: 0rem 5rem;
}

.furnace-innovation__grid {
	display: flex;
	flex-direction: column;
}

.furnace-innovation__image {
	border-radius: 0.5rem;
	overflow: hidden;
}

.furnace-innovation__image img {
	width: 100%;
	height: 15rem;
	display: block;
	object-fit: cover;
}

.furnace-innovation__text {
	margin-top: 1.5rem;
}

.furnace-innovation__block {
	margin-top: 2.5rem;
}

.furnace-innovation__sub-block {
	margin-top: 2.5rem;
}

.furnace-innovation__heading {
	font-size: 1.125rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5555555556;
}

.furnace-innovation__desc {
	font-size: 0.875rem;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.7142857143;
}

.furnace-innovation__sub-block .furnace-innovation__desc {
	margin-top: 2rem;
}

.furnace-innovation__button {
	margin-top: 3rem;
	text-align: center;
}

/* =========================
  テクノロジー
========================= */

.furnace-tech {
	position: relative;
	z-index: 1;
	padding-block: 5rem;
}

.furnace-tech::before {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	border-top: 1px solid #646464;
}

.furnace-tech__header-grid-right {
	max-width: 35rem;
	margin-top: 1rem;
}

.furnace-tech__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 3rem;
}

.furnace-tech__card {
	display: block;
	text-decoration: none;
	background-color: #282828;
	border-radius: 0.5rem;
	overflow: hidden;
}

.furnace-tech__card-image {
	position: relative;
	overflow: hidden;
}

.furnace-tech__card-image::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 50%;
	background: linear-gradient(to top, #282828, rgba(40, 40, 40, 0));
	z-index: 1;
}

.furnace-tech__card-image img {
	width: 100%;
	height: 15rem;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.furnace-tech__card-body {
	position: relative;
	z-index: 1;
	margin-top: -3.75rem;
	padding: 0 1.75rem 1.75rem;
}

.furnace-tech__card-name {
	display: flex;
	align-items: center;
	min-height: 5.0625rem;
	font-size: 1.125rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	color: #fff;
	line-height: 1.5;
}

.furnace-tech__card-body-button {
	margin-top: 2rem;
}

/* =========================
  特長セクション
========================= */

.furnace-features {
	position: relative;
	padding-block: 5rem;
	overflow-x: clip;
}

.furnace-features::before {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	border-top: 1px solid #646464;
}

.furnace-features__items {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.furnace-features__movie {
	width: 100%;
	margin-top: 4rem;
}

.furnace-features__movie iframe {
	border-radius: 0.5rem;
	overflow: hidden;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 336/189;
}

.furnace-features__item {
	display: flex;
	flex-direction: column-reverse;
	gap: 1.5rem;
}

.furnace-features__heading {
	font-size: 1.125rem;
	font-weight: 600;
	font-family: "Noto Serif JP", serif;
	color: #fff;
	line-height: 1.5555555556;
}

.furnace-features__info-block {
	margin-top: 2.5rem;
}

.furnace-features__desc {
	margin-top: 1.5rem;
}

.furnace-features__info-button {
	margin-top: 2rem;
}

.furnace-features__image {
	border-radius: 0.5rem;
	overflow: hidden;
}

.furnace-features__image img,
.furnace-features__image picture {
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 336/168;
}

.u-flex {
	display: flex;
	gap: 2px;
}

.u-font14 {
	font-size: prem(14);
}

.u-font16 {
	font-size: prem(16);
}

.u-font18 {
	font-size: prem(18);
}

.u-font20 {
	font-size: prem(20);
}

.u-font22 {
	font-size: prem(22);
}

.u-font24 {
	font-size: prem(24);
}

.u-font28 {
	font-size: prem(28);
}

.u-font32 {
	font-size: prem(32);
}

.u-font40 {
	font-size: prem(40);
}

.u-hover {
	transition: opacity 0.5s;
}

.u-hover:hover {
	opacity: 0.6;
	transition: opacity 0.5s;
}

.u-lh10 {
	line-height: 1;
}

.u-lh13 {
	line-height: 1.3;
}

.u-lh15 {
	line-height: 1.5;
}

.u-lh16 {
	line-height: 1.6;
}

.u-lh20 {
	line-height: 2;
}

.u-ls05 {
	letter-spacing: 0.05em;
}

.u-ls10 {
	letter-spacing: 0.1em;
}

.u-ls15 {
	letter-spacing: 0.15em;
}

.u-ls20 {
	letter-spacing: 0.2em;
}

.u-mt10 {
	margin-top: 10px !important;
	margin-top: prem(10) !important;
}

.u-mt20 {
	margin-top: 20px !important;
	margin-top: prem(20) !important;
}

.u-mt30 {
	margin-top: 30px !important;
	margin-top: prem(30) !important;
}

.u-mt40 {
	margin-top: 40px !important;
	margin-top: prem(40) !important;
}

.u-mt50 {
	margin-top: 50px !important;
	margin-top: prem(50) !important;
}

.u-mt60 {
	margin-top: 60px !important;
	margin-top: prem(60) !important;
}

.u-mt70 {
	margin-top: 70px !important;
	margin-top: prem(70) !important;
}

.u-mt80 {
	margin-top: 80px !important;
	margin-top: prem(80) !important;
}

.u-mt90 {
	margin-top: 90px !important;
	margin-top: prem(90) !important;
}

.u-mt100 {
	margin-top: 100px !important;
	margin-top: prem(100) !important;
}

.u-mt110 {
	margin-top: 110px !important;
	margin-top: prem(110) !important;
}

.u-mt120 {
	margin-top: 120px !important;
	margin-top: prem(120) !important;
}

.u-mt130 {
	margin-top: 130px !important;
	margin-top: prem(130) !important;
}

.u-mt140 {
	margin-top: 140px !important;
	margin-top: prem(140) !important;
}

.u-mt150 {
	margin-top: 150px !important;
	margin-top: prem(150) !important;
}

.u-mt160 {
	margin-top: 160px !important;
	margin-top: prem(160) !important;
}

.u-mt170 {
	margin-top: 170px !important;
	margin-top: prem(170) !important;
}

.u-mt180 {
	margin-top: 180px !important;
	margin-top: prem(180) !important;
}

.u-mt190 {
	margin-top: 190px !important;
	margin-top: prem(190) !important;
}

.u-mt200 {
	margin-top: 200px !important;
	margin-top: prem(200) !important;
}

.u-shadow {
	box-shadow: 0 0 13px rgba(255, 0, 0, 0.5);
}

.u-sp {
	display: none;
}

html:lang(en) .u-sp.u-en {
	display: block;
}

.u-sp400 {
	display: none;
}

.u-sp450 {
	display: none;
}

.u-sp500 {
	display: none;
}

.u-sp550 {
	display: none;
}

.u-sp600 {
	display: none;
}

.u-sp650 {
	display: none;
}

.u-sp700 {
	display: none;
}

.u-textLeft {
	text-align: Left !important;
}

.u-textCenter {
	text-align: Center !important;
}

.u-textRight {
	text-align: Right !important;
}

.u-textJustify {
	text-align: Justify !important;
}

.u-w300 {
	font-weight: 300;
}

.u-w400 {
	font-weight: 400;
}

.u-w500 {
	font-weight: 500;
}

.u-w600 {
	font-weight: 600;
}

.u-w700 {
	font-weight: 700;
}

.u-w900 {
	font-weight: 900;
}

@media (any-hover: hover) {

a:hover {
	opacity: 0.7;
}

.button-card:hover {
	opacity: 1;
	transform: scale(0.9);
}

.button-card:hover .button-card__arrow {
	animation: button-card-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.button-file:hover {
	border-color: #ff6b35;
	box-shadow: 0 0 1.25rem rgba(255, 107, 53, 0.5), 0 0 2.5rem rgba(255, 61, 0, 0.3), inset 0 0 1.25rem rgba(255, 107, 53, 0.1);
	color: #ffd700;
	opacity: 1;
}

.button-file:hover::after {
	opacity: 1;
}

.button-file:hover::before {
	background-color: #ffd700;
	filter: drop-shadow(0 0 0.625rem #ff6b35);
	opacity: 1;
}

.button:hover:not(:disabled) {
	opacity: 1;
	transform: scale(0.9);
}

.button:hover:not(:disabled)::before {
	animation: button-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.download-block__link:hover {
	opacity: 1;
	transform: scale(0.9);
}

.filter-selects__box:hover {
	background-color: #3d3d3d;
}

.showcase-slider__prev:hover,
.showcase-slider__next:hover {
	opacity: 1;
	background-color: #fff;
}

.video-player:hover .video-player__play {
	transform: translate(-50%, -50%) scale(0.85);
}

.video-player:hover .video-player__play.is-playing {
	opacity: 1;
	visibility: visible;
}

.ab-section__nav:hover {
	opacity: 0.7;
}

.ab-section__thumb:hover::after {
	opacity: 0;
}

.ab-section__action:hover {
	border-color: #ff6b35;
	box-shadow: 0 0 1.25rem rgba(255, 107, 53, 0.5), 0 0 2.5rem rgba(255, 61, 0, 0.3), inset 0 0 1.25rem rgba(255, 107, 53, 0.1);
	color: #ffd700;
}

.ab-section__action:hover::after {
	opacity: 1;
}

.ab-section__action:hover::before {
	background-color: #ffd700;
	filter: drop-shadow(0 0 0.625rem #ff6b35);
}

a.cn-nav__card:hover {
	opacity: 1;
}

a.cn-nav__card:hover::before {
	transform: scale(1.2);
}

a.cn-nav__card:hover .cn-nav__card-arrow {
	animation: cn-nav-card-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.contact__office-link.section-text a:hover {
	text-decoration-color: #4dc1ff;
	color: #4dc1ff;
	opacity: 1;
}

.contact__submit-btn:hover {
	background-color: #fff;
	color: #000000;
}

.contact__submit-btn:hover .contact__submit-arrow {
	border-color: #000000;
}

.cfp__showcase-thumb:hover {
	opacity: 1;
}

.cfp__service-card:has(.cfp__service-card-body-button .button:hover) .cfp__service-card-image img {
	transform: scale(1.2);
}

.dc-nav__card:hover {
	opacity: 0.8;
}

.el-nav__card:hover {
	opacity: 0.8;
}

.ec-nav__card:hover {
	opacity: 0.8;
}

.footer__nav-link:hover::after {
	transform: scaleX(1);
	background-color: #a0a0a0;
}

.footer__nav-link:hover {
	color: #a0a0a0;
	opacity: 1;
}

.full-menu__section-title:hover {
	opacity: 1;
}

.full-menu__section-title:hover > span:first-child {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.full-menu__section-title:hover .full-menu__section-arrow {
	animation: full-menu-section-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.full-menu__section-item a:hover {
	opacity: 1;
}

.full-menu__links-item a:hover {
	opacity: 1;
}

.full-menu__section-link:hover .full-menu__section-link-text {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.full-menu__section-link:hover .full-menu__section-link-arrow {
	opacity: 1;
	transform: translateX(0.25rem);
}

.full-menu__links-item-link:hover .full-menu__links-item-text {
	text-decoration-color: currentColor;
}

.full-menu__links-item-link:hover .full-menu__links-item-arrow {
	opacity: 1;
	transform: translateX(0);
}

.fv__breadcrumb a:hover {
	opacity: 0.7;
}

.header__inner:not(.is-blur) .header__container:hover {
	background-color: rgba(0, 0, 0, 0.6);
	border-radius: 0.5rem;
}

.header__nav-link:hover {
	background-color: #fff;
	color: #231815;
	opacity: 1;
}

.header__lang:hover {
	background-color: #fff;
	border-inline-color: rgba(0, 0, 0, 0.12);
}

.header__lang:hover .header__lang-current {
	color: #000000;
}

.header__lang:hover .header__lang-arrow {
	background-color: #000000;
}

.header__lang-dropdown-link:hover {
	background-color: #fff;
	color: #000000;
	opacity: 1;
}

.header__lang-dropdown-link.is-active:hover::before {
	color: #000000;
}

.header__hamburger.is-open:hover .header__hamburger-line:first-child {
	transform: rotate(45deg) scale(0.8);
}

.header__hamburger.is-open:hover .header__hamburger-line:last-child {
	transform: rotate(-45deg) scale(0.8);
}

.history-entry__card:hover .history-entry__toggle {
	transform: scale(0.75);
}

.history-popup__close:hover {
	transform: scale(0.8);
}

.mas-card__header:hover .mas-card__toggle-icon {
	transform: scale(0.85);
}

/* _base.scss の a:hover { opacity: 0.7 } を打ち消し（フルメニューと同様） */

.mega-menu a:hover {
	opacity: 1;
}

.mega-menu__section-title:hover > span:first-child {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.mega-menu__section-title:hover .mega-menu__section-arrow {
	animation: full-menu-section-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.mega-menu__section-link:hover .mega-menu__section-link-text {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.mega-menu__section-link:hover .mega-menu__section-link-arrow {
	opacity: 1;
	transform: translateX(0.25rem);
}

.news-archive__filter-tag:hover {
	opacity: 0.7;
}

.news-archive__card-link:hover {
	opacity: 0.85;
}

.news-archive__card-link:hover .news-archive__card-img img {
	transform: scale(1.05);
}

.news-archive__pagination a.page-numbers:hover {
	opacity: 1;
	transform: scale(0.85);
}

.office-card__tel:hover {
	opacity: 1;
	background-color: #3d3d3d;
}

.os__btn-download:hover {
	transform: scale(0.96);
	opacity: 1;
}

.philosophy-hero__breadcrumb a:hover {
	opacity: 0.7;
}

.products-filter__option:hover {
	background-color: #181818;
}

.products-card:hover {
	opacity: 1;
}

.products-card:hover .products-card__arrow {
	animation: products-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.products-card:hover .products-card__image img {
	transform: scale(1.2);
}

.section-links__link:hover {
	opacity: 0.85;
}

.section-links__link:hover .section-links__img img {
	transform: scale(1.2);
}

.section-links__link:hover .section-links__arrow {
	animation: section-links-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.single-news__tag:hover {
	opacity: 0.7;
}

.single-news__nav-link:hover {
	color: #a0a0a0;
	text-decoration-color: currentColor;
	opacity: 1;
}

.single-news__filter-tag:hover {
	opacity: 0.7;
}

.sitemap__group-title:hover {
	opacity: 1;
}

.sitemap__group-title:hover > span:first-child {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.sitemap__group-title:hover .sitemap__arrow {
	animation: sitemap-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.sitemap__home-link:hover {
	opacity: 1;
}

.sitemap__home-link:hover > span:first-child {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.sitemap__home-link:hover .sitemap__arrow {
	animation: sitemap-arrow-flow 0.85s ease-in-out 0s 1 forwards;
}

.sitemap__group-item a:hover {
	opacity: 1;
}

.sitemap__group-item a:hover .sitemap__group-item-text {
	transform: translateX(0.25rem);
	text-decoration-color: currentColor;
}

.sitemap__group-item a:hover .sitemap__group-item-arrow {
	opacity: 1;
	transform: translateX(0.25rem);
}

.sitemap__gorin:hover {
	opacity: 0.7;
}

.sitemap__extra-item a:hover {
	opacity: 1;
}

.sitemap__extra-item a:hover .sitemap__extra-item-text {
	text-decoration-color: currentColor;
}

.sitemap__extra-item a:hover .sitemap__extra-item-arrow {
	opacity: 1;
	transform: translateX(0);
}

.top-news__nav-prev:hover,
.top-news__nav-next:hover {
	opacity: 1;
	background-color: #fff;
}

.top-news__item-link:hover {
	opacity: 0.85;
}

.top-news__item-link:hover .top-news__img img {
	transform: scale(1.2);
}

.furnace-tech__card:has(.furnace-tech__card-body-button .button:hover) .furnace-tech__card-image img {
	transform: scale(1.2);
}

}

@media (prefers-reduced-motion: reduce) {

html:focus-within {
	scroll-behavior: auto;
}

*,
*::before,
*::after {
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.01ms !important;
	scroll-behavior: auto !important;
}

* {
	animation: none !important;
	transition: none !important;
}

}

@media screen and (min-width: 768px) {

html {
	font-size: 1.3333333333vw;
}

html {
	scroll-padding-top: 7.5rem;
}

.inner {
	max-width: 1250px;
	padding-inline: 25px;
}

.inner-lower {
	max-width: 78.125rem;
	padding-inline: 25px;
}

.inner-breadcrumb {
	max-width: 85.375rem;
	padding-inline: 25px;
}

.layout-main {
	padding-block: 1rem 5rem;
}

.layout-section {
	padding-top: 7.5rem;
}

.awards-block {
	gap: 1.5rem;
}

.awards-block__row {
	flex-direction: row;
}

.awards-block__item {
	margin-inline: 0;
}

.awards-block__patent {
	min-width: 14rem;
	min-height: 4.5rem;
}

.awards-block__prize {
	min-width: 16.875rem;
	min-height: 4.5rem;
}

.bg-gradient--top {
	height: 31.25rem;
}

.bg-gradient--bottom {
	height: 31.25rem;
}

.button-card {
	margin-top: 0;
	padding: 1.75rem 1.5rem;
	min-height: 9.875rem;
}

.button-card__jp {
	font-size: 2.5rem;
}

.button-card__en {
	margin-top: 1.125rem;
	font-size: 1.25rem;
}

.button-file {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
	min-width: 15rem;
}

.button {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
}

.download-block {
	flex-direction: row;
	justify-content: center;
	gap: 1rem;
}

.download-block__link {
	padding: 0.75rem 2.5rem 0.75rem 1rem;
	font-size: 0.875rem;
	line-height: 1.4285714286;
	min-height: 5rem;
}

.filter-selects {
	flex-direction: row;
	gap: 1rem;
}

.filter-selects__box {
	flex: 1;
	height: 5rem;
	padding: 0 2rem;
}

.filter-selects__box::after {
	right: 2.5rem;
}

.filter-selects__label {
	font-size: 1rem;
}

.filter-selects__select {
	font-size: 1rem;
	padding-left: calc(var(--label-width, 5em) + 2rem);
	padding-right: 3.5rem;
}

.page-bg::before {
	aspect-ratio: 1366/1500;
	background: linear-gradient(to bottom, #000000, transparent) top/100% 36.6032210835vw no-repeat, linear-gradient(to top, #000000, transparent) bottom/100% 36.6032210835vw no-repeat, url("../images/section-bg-pc.jpg") top center/cover no-repeat;
}

.page-bg::after {
	top: auto;
	bottom: 0;
	aspect-ratio: auto;
	height: 36.6032210835vw;
	background: linear-gradient(to top, #000000, transparent);
}

.page-bg2::before {
	aspect-ratio: 1366/1500;
	background-image: url("../images/section-bg2-pc.jpg");
}

.page-bg3::before {
	aspect-ratio: 1366/1440;
	background-image: url("../images/section-bg3-pc.jpg");
	max-height: 118.75rem;
}

.section-header__title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.section-header__title.section-header__title--big {
	font-size: 2rem;
	line-height: 1.75;
	letter-spacing: 0.2em;
	font-weight: 600;
}

.section-header__text {
	margin-top: 2rem;
}

.section-lead-grid {
	grid-template-columns: 1fr 30.125rem;
	gap: 2.5rem;
	align-items: start;
}

.section-text {
	font-size: 1rem;
	line-height: 1.75;
}

.section-title-ja {
	font-size: 2.5rem;
	line-height: 1.25;
}

.section-title-en {
	font-size: 1.25rem;
	margin-top: 1.25rem;
}

.section-title-small .section-title-ja {
	font-size: 2.5rem;
	line-height: 1.25;
}

.section-title-small .section-title-en {
	font-size: 1.25rem;
	margin-top: 0.75rem;
}

.section-title-small .section-title-ja.section-title-ja--lg {
	font-size: 3rem;
	line-height: 1.25;
}

.section-title-ja span {
	margin-left: -0.625rem;
	font-size: 1rem;
	vertical-align: 0.5em;
	display: inline-block;
	padding-top: 0rem;
}

.showcase-slider {
	padding: 5rem;
}

.showcase-slider__head {
	margin-bottom: 5rem;
}

.showcase-slider__prev,
.showcase-slider__next {
	width: 4rem;
	height: 4rem;
}

.showcase-slider__prev {
	left: -2rem;
}

.showcase-slider__next {
	right: -2rem;
}

.showcase-slider__main img {
	aspect-ratio: 1040/780;
}

.showcase-slider__label {
	padding: 0.375rem 1.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.showcase-slider__thumbs {
	margin-top: 1rem;
}

.showcase-slider__foot {
	margin-top: 5rem;
}

.showcase-sliders {
	padding-top: 1rem;
	padding-bottom: 8.125rem;
}

.showcase-sliders__inner {
	gap: 5rem;
}

.stagger-grid {
	display: grid;
	align-items: start;
	grid-template-columns: repeat(2, 1fr);
	grid-column-gap: 5rem;
	grid-row-gap: 0;
}

.stagger-grid__item {
	padding-bottom: 7.5rem;
}

.stagger-grid__item:nth-child(1) {
	grid-area: 1/2/4/3;
}

.stagger-grid__item:nth-child(2) {
	grid-area: 2/1/5/2;
}

.stagger-grid__item:nth-child(3) {
	grid-area: 4/2/7/3;
}

.stagger-grid__item:nth-child(4) {
	grid-area: 5/1/8/2;
}

.stagger-grid__item:nth-child(5) {
	grid-area: 7/2/10/3;
}

.stagger-grid__item:nth-child(6) {
	grid-area: 8/1/11/2;
}

.stagger-grid__item:nth-last-child(1) {
	padding-bottom: 0;
}

.stagger-grid__item:nth-child(2):last-child {
	grid-area: 2/1/4/2;
}

.stagger-grid__item:nth-child(4):last-child {
	grid-area: 5/1/7/2;
}

.stagger-grid__item:nth-child(6):last-child {
	grid-area: 8/1/10/2;
}

.video-player__play {
	width: 5rem;
	height: 5rem;
}

.video-player__play-icon {
	border-width: 0.75rem 0 0.75rem 1.25rem;
}

.video-player__play.is-playing .video-player__play-icon {
	width: 1.25rem;
	height: 1.5rem;
	border-left-width: 0.3125rem;
	border-right-width: 0.3125rem;
}

.aa-spec {
	margin-top: 3rem;
}

.aa-spec__desc {
	margin-bottom: 2rem;
}

.aa-spec__list {
	-moz-columns: 2;
	columns: 2;
	-moz-column-gap: 5rem;
	column-gap: 5rem;
}

.aa-spec__row {
	-moz-column-break-inside: avoid;
	break-inside: avoid;
	margin-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.aa-spec__term {
	width: min(11vw, 10rem);
}

.aa-spec__detail {
	flex: 1;
}

.ab-hero {
	height: 30rem;
}

.ab-hero__gradient {
	height: 12.5rem;
}

.ab-hero__inner {
	max-width: 82.375rem;
}

.ab-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.ab-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.ab-sections {
	gap: 2.5rem;
}

.ab-section__card {
	padding: 4.5rem 5rem 5rem;
}

.ab-section__head {
	flex-direction: row;
	justify-content: space-between;
	gap: 5rem;
}

.ab-section__titles {
	width: 35rem;
}

.ab-section__title {
	font-size: 2rem;
	line-height: 1.5;
}

.ab-section__desc {
	max-width: 25rem;
	width: 100%;
}

.ab-section__gallery {
	margin-top: 2.5rem;
}

.ab-section__main-image > img {
	height: 48.75rem;
}

.ab-section__nav {
	width: 4rem;
	height: 4rem;
}

.ab-section__nav--prev {
	left: -2rem;
}

.ab-section__nav--next {
	right: -2rem;
}

.ab-section__caption {
	padding: 0.5rem 1.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.ab-section__thumbnails {
	grid-template-columns: repeat(6, 1fr);
	gap: 1rem;
	margin-top: 1rem;
}

.ab-section__thumb img {
	height: 7.5rem;
}

.ab-section__actions {
	align-items: flex-start;
	flex-direction: row;
	justify-content: center;
}

.ab-section__action {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
}

.brand-partners {
	grid-template-columns: repeat(2, 1fr);
}

.brand-partners__item-link img,
.brand-partners__item-link picture {
	aspect-ratio: 683/400;
}

.breadcrumb {
	margin-top: 1rem;
}

.breadcrumb:not(.inner-breadcrumb) {
	padding-inline: 2rem;
}

.breadcrumb__item {
	font-size: 0.875rem;
}

.breadcrumb__separator {
	margin-left: 0.5rem;
}

.breadcrumb__separator svg {
	width: 1rem;
	height: 1rem;
}

.breadcrumb__item--current {
	margin-left: 0.5rem;
}

.cn-nav {
	padding-top: 7.5rem;
}

.cn-nav__cards {
	grid-template-columns: repeat(4, 1fr);
}

.cn-nav__card {
	padding: 3.125rem 2rem 2.125rem;
}

.cn-nav__card--energy::before {
	background-image: url("../images/cc-nav-energy-pc.jpg");
}

.cn-nav__card--decarbon::before {
	background-image: url("../images/cc-nav-decarbon-pc.jpg");
}

.cn-nav__card--electrification::before {
	background-image: url("../images/cc-nav-electrification-pc.jpg");
}

.cn-nav__card--co2::before {
	background-image: url("../images/cc-nav-co2-pc.jpg");
}

.cn-nav__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.cn-nav__card-subtitle {
	font-size: 1rem;
}

.cn-data__number,
.cn-goals__number,
.cn-roadmap__number {
	font-size: 7rem;
}

.cn-data__heading,
.cn-goals__heading,
.cn-roadmap__heading {
	margin-top: 1.5rem;
	font-size: 1.5rem;
	line-height: 1.5;
}

.cn-intro {
	padding: 3.75rem 0 7.5rem;
	background-color: transparent;
}

.cn-intro__inner {
	max-width: 82.375rem;
}

.cn-intro__title {
	font-size: 2rem;
	line-height: 1.75;
}

.cn-intro__formula {
	margin-top: 2rem;
	padding-block: 1.4375rem;
	padding-inline: 7.3125rem;
	flex-direction: row;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
	gap: 1rem;
}

.cn-intro__formula-text {
	font-size: 2rem;
	line-height: 1.5;
}

.cn-intro__formula-op {
	font-size: 2rem;
	transform: none;
}

.cn-intro__text.section-text {
	margin-top: 2rem;
	max-width: 45rem;
	margin-inline: auto;
}

.cn-data {
	padding: 7.5rem 0;
}

.cn-data::before {
	width: calc(100% - 25px * 2);
	max-width: 1250px;
}

.cn-data__grid {
	display: grid;
	grid-template-columns: 21.25rem 1fr;
	gap: 2.5rem;
}

.cn-data__content {
	margin-top: 0;
	gap: 1.5rem;
}

.cn-data__row {
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.cn-data__info {
	padding: 2.90625rem 3.5rem;
}

.cn-data__info-text {
	margin-top: 2.125rem;
}

.cn-data__info-source {
	margin-top: 3.5rem;
}

.cn-goals {
	padding: 7.5rem 0;
}

.cn-goals::before {
	width: calc(100% - 25px * 2);
	max-width: 1250px;
}

.cn-goals__inner {
	max-width: 82.375rem;
}

.cn-goals__grid {
	display: grid;
	grid-template-columns: 21.25rem 1fr;
	gap: 2.5rem;
}

.cn-goals__content {
	margin-top: 0;
	gap: 2.5rem;
}

.cn-goals__card {
	padding: 5rem clamp(3.75rem, 4vw, 5rem) 4.75rem;
}

.cn-goals__card-header {
	gap: 1.25rem;
}

.cn-goals__card-header::before {
	top: 1.25rem;
	left: -6.5rem;
	width: 5rem;
}

.cn-goals__card-title {
	font-size: 1.5rem;
	line-height: 1.5;
}

.cn-goals__card-badge {
	font-size: 1rem;
	line-height: 1.5;
	padding: 0.25rem 1rem;
}

.cn-goals__card-texts {
	margin-top: 3.5rem;
	gap: 0.625rem;
}

.cn-goals__card-text {
	font-size: 1rem;
	line-height: 2.25;
}

.cn-goals__card-text span {
	font-size: 1.5rem;
	line-height: 1.5;
}

.cn-goals__card-lead {
	margin-top: 3.5rem;
	font-size: 1rem;
	line-height: 2.25;
}

.cn-goals__card-lead span {
	font-size: 1.5rem;
	line-height: 1.5;
}

.cn-goals__card-img {
	margin-top: 3.375rem;
}

.cn-roadmap {
	padding: 7.5rem 0 6rem;
}

.cn-roadmap::before {
	width: calc(100% - 25px * 2);
	max-width: 1250px;
}

.cn-roadmap__inner {
	max-width: 82.375rem;
}

.cn-roadmap__grid {
	display: grid;
	grid-template-columns: 21.25rem 1fr;
	gap: 2.5rem;
}

.cn-roadmap__content {
	margin-top: 0;
}

.cn-roadmap__timeline {
	margin-top: 5rem;
}

.cn-roadmap__timeline-header {
	margin-bottom: 1rem;
}

.cn-roadmap__timeline-year:nth-child(1) {
	flex: 0 0 43.3%;
}

.cn-roadmap__timeline-year:nth-child(3) {
	margin-right: 4.25rem;
}

.cn-roadmap__timeline-year {
	padding-left: 0.625rem;
}

.cn-roadmap__timeline-img {
	padding-right: 7.25rem;
	top: 2.5rem;
	height: 93%;
}

.cn-roadmap__timeline-badge {
	margin-right: 3.875rem;
	margin-top: 0.375rem;
}

.cn-roadmap__timeline-body {
	padding-top: 1.25rem;
	padding-bottom: 2.875rem;
	margin-right: 3.875rem;
}

.cn-roadmap__timeline-row {
	gap: 1rem;
	align-items: center;
	flex-direction: row;
	padding: 2rem 5.875rem 2rem 2.5rem;
}

.cn-roadmap__timeline-row::before {
	clip-path: polygon(0 0, calc(100% - 4.375rem) 0, 100% min(7.5rem, 100%), 100% 100%, 0 100%);
}

html:lang(en) .cn-roadmap__timeline-row::before {
	clip-path: polygon(0 0, calc(100% - 4.375rem) 0, 100% min(7.5rem, 100%), 100% 100%, 0 100%);
}

.cn-roadmap__timeline-label--jp {
	font-size: 1.75rem;
}

.cn-roadmap__timeline-label--en {
	font-size: 1rem;
}

.cn-roadmap__timeline-link {
	height: 3.5rem;
}

.cn-tech {
	padding: 7.5rem 0 5rem;
}

.cn-tech::before {
	width: calc(100% - 25px * 2);
	max-width: 1250px;
}

.cn-tech__inner {
	max-width: 82.375rem;
}

.cn-tech__card {
	background-image: url(../images/cn-tech-card-bg.jpg);
	padding: 5rem 5rem 5rem 18.75rem;
}

.cn-tech__title {
	font-size: 2rem;
	line-height: 1.75;
}

.cn-tech__columns {
	flex-direction: row;
	gap: min(5rem, 5.5555555556vw);
	margin-top: 3rem;
}

.cn-tech__column-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.cn-tech__column-text {
	margin-top: 1rem;
}

.cc-lead {
	padding: 3.75rem 0 5rem;
}

.cc-lead__inner {
	max-width: 82.375rem;
}

.cc-lead__grid {
	display: grid;
	grid-template-columns: 1fr 35rem;
	gap: 2.5rem;
	align-items: start;
}

.cc-lead__text {
	margin-top: 0;
	font-size: 1rem;
	line-height: 1.75;
}

.cc-detail__block {
	display: grid;
	grid-template-columns: 21.25rem 1fr;
	gap: 2.5rem;
}

.cc-detail__block:first-child {
	padding-block: 7.5rem;
}

.cc-detail__block:last-child {
	padding-top: 7.5rem;
	padding-bottom: 7.5rem;
	border-bottom: 1px solid #646464;
}

.cc-detail__sidebar {
	margin-bottom: 0;
}

.cc-detail__number {
	font-size: 7rem;
}

.cc-detail__heading {
	margin-top: 1rem;
	font-size: 1.5rem;
	line-height: 1.75;
}

.cc-detail__content {
	margin-top: 0;
	max-width: 56rem;
	width: 100%;
}

.cc-detail__card {
	margin-top: 0;
	padding: 3.75rem 2.5rem;
}

.cc-detail__card-text {
	font-size: 2rem;
	line-height: 1.5;
}

.cc-detail__diagram picture,
.cc-detail__diagram img {
	aspect-ratio: 896/440;
}

.cc-detail__steps {
	grid-template-columns: repeat(2, 1fr);
	gap: 0rem 2rem;
	margin-top: 2.5rem;
}

.cc-detail__step {
	font-size: 1rem;
	line-height: 1.75;
}

.cc-detail__step:nth-child(1),
.cc-detail__step:nth-child(2) {
	border-bottom: 1px solid #646464;
}

.cc-detail__step:nth-child(n+3) {
	border-top: none;
	border-bottom: 1px solid #646464;
}

.contact {
	padding-bottom: 7.5rem;
}

.contact__inner {
	max-width: 82.375rem;
}

.contact__office-link.section-text {
	padding-block: 2rem;
}

.contact__fields {
	margin-top: 5rem;
	gap: 1rem;
}

.contact__row {
	flex-direction: row;
	align-items: center;
	gap: 1.5rem;
}

.contact__row--textarea {
	align-items: flex-start;
}

.contact__label {
	width: 11rem;
}

.contact__input,
.contact__select,
.contact__textarea {
	font-size: 1rem;
	max-width: 37.5rem;
}

.contact__input {
	height: 3rem;
}

.contact__agreement {
	margin-top: 2rem;
	padding: 1.75rem 2.5rem;
}

.contact__agreement-body {
	margin-right: -2.5rem;
	padding-right: 2.5rem;
	gap: 1.25rem;
}

.contact__agreement-body p {
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.contact__submit {
	margin-top: 3rem;
}

.contact__submit-btn {
	font-size: 1rem;
}

.wpcf7-form .wpcf7-form-control-wrap {
	max-width: 37.5rem;
}

.contact__confirm-title {
	font-size: 1.5rem;
}

.contact__confirm-text {
	font-size: 1rem;
}

.contact__confirm-area .contact__fields {
	margin-top: 5rem;
}

.contact__confirm-value {
	font-size: 1rem;
}

.contact__confirm-area .contact__row {
	padding-bottom: 0.75rem;
}

.contact__submit--confirm {
	flex-direction: row-reverse;
	justify-content: center;
	gap: 1.5rem;
}

.contact__thanks-area {
	padding: 7.5rem 0;
}

.contact__thanks-title {
	font-size: 2rem;
}

.contact__thanks-text {
	font-size: 1rem;
	line-height: 2;
}

.contact__thanks-btn-wrap {
	margin-top: 3rem;
}

.co-hero {
	height: 30rem;
}

.co-hero__gradient {
	height: 12.5rem;
}

.co-hero__inner {
	max-width: 82.375rem;
}

.co-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.co-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.cfp__showcase-box {
	padding: 5rem;
}

.cfp__showcase-label {
	height: 2.5rem;
	margin-top: 0;
	font-size: 1rem;
}

.cfp__showcase-thumbs {
	grid-template-columns: repeat(6, 1fr);
	gap: 1rem;
	margin-top: 1rem;
}

.cfp__concept {
	padding-top: 3rem;
}

.cfp__concept-content {
	display: grid;
	grid-template-columns: 1fr 40rem;
	grid-template-rows: auto auto;
	gap: 0 1.5rem;
}

.cfp__concept-header {
	grid-column: 1;
	grid-row: 1;
}

.cfp__diamond {
	grid-column: 2;
	grid-row: 1/3;
	margin-top: 0;
	max-width: 100%;
}

.cfp__concept-body-wrap {
	grid-column: 1;
	grid-row: 2;
	margin-top: 3.75rem;
}

.cfp__concept-heading {
	font-size: 1.5rem;
}

.cfp__concept-test-wrap {
	margin-top: 2rem;
}

.cfp__concept-body + .cfp__concept-body {
	margin-top: 2rem;
}

.cfp__diamond {
	position: relative;
	display: block;
	aspect-ratio: 640/706;
	margin-top: 0; /* 外側の装飾リング */
}

.cfp__diamond::before {
	content: "";
	position: absolute;
	top: 15.58%; /* 110 / 706 */
	left: 12.03%; /* 77 / 640 */
	width: 75.94%; /* 486 / 640 */
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid #a8071a;
}

.cfp__diamond-center {
	width: auto;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.cfp__diamond-center img,
.cfp__diamond-center picture {
	width: 12.5rem;
	height: auto;
}

.cfp__diamond-item {
	position: absolute;
	width: 34.375%; /* 220 / 640 */
	height: auto;
	aspect-ratio: 1;
	padding: clamp(0.5rem, 1.2vw, 1rem);
}

.cfp__diamond-item--top {
	top: 0;
	left: 32.8125%; /* 210 / 640 */
}

.cfp__diamond-item--top-left {
	top: 17.28%; /* 122 / 706 */
	left: 0;
}

.cfp__diamond-item--top-right {
	top: 17.28%;
	left: 65.625%; /* 420 / 640 */
}

.cfp__diamond-item--bottom-left {
	top: 51.56%; /* 364 / 706 */
	left: 0;
}

.cfp__diamond-item--bottom-right {
	top: 51.56%;
	left: 65.625%;
}

.cfp__diamond-item--bottom {
	top: 68.84%; /* 486 / 706 */
	left: 32.8125%;
}

.cfp__diamond-label {
	font-size: 1.5rem;
}

html:lang(en) .cfp__diamond-label {
	font-size: 1.375rem;
}

html:lang(vi) .cfp__diamond-label {
	font-size: 1rem;
}

.cfp__diamond-desc {
	margin-top: 0.5rem;
	font-size: clamp(10px, 1.6vw, 0.875rem);
	line-height: 1.7142857143;
}

html:lang(en) .cfp__diamond-desc {
	font-size: 0.8125rem;
}

html:lang(vi) .cfp__diamond-desc {
	font-size: 0.75rem;
}

.cfp__services {
	margin-top: 5rem;
}

.cfp__services-inner {
	max-width: 82.375rem;
}

.cfp__services-grid {
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto auto auto auto;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	row-gap: 0;
}

.cfp__service-card {
	display: grid;
	grid-row: 1/span 4;
	grid-template-rows: subgrid;
}

.cfp__service-card-body {
	margin-top: -4.375rem;
	padding: 0 2.5rem 3rem;
	grid-row: 2/span 3;
	display: grid;
	grid-template-rows: subgrid;
}

.cfp__service-card-name {
	font-size: 1.5rem;
	line-height: 1.5;
}

.cfp__service-card-text {
	margin-top: 0;
	padding-top: 0.875rem;
	font-size: 1rem;
	line-height: 1.75;
}

.cfp__service-card-body-button {
	margin-top: 0;
	padding-top: 1.75rem;
	text-align: left;
	align-self: end;
}

.cf-main::after {
	height: 36.6032210835vw;
}

.cf-main::before {
	aspect-ratio: 1366/1824;
	background-image: url("../images/cf-blocks-bg-pc.jpg");
}

.cf-blocks {
	gap: 6rem;
}

.cf-movie {
	margin-top: 6rem;
	max-width: 60rem;
	margin-inline: auto;
}

.cf-movie iframe {
	aspect-ratio: 960/540;
}

.cf-block {
	position: relative;
}

.cf-block:nth-child(odd) .cf-block__text,
.cf-block:nth-child(even) .cf-block__text {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 25rem;
	height: auto;
}

.cf-block:nth-child(odd) .cf-block__text {
	left: 0;
}

.cf-block:nth-child(even) .cf-block__text {
	right: 0;
}

.cf-block__desc {
	margin-top: 5rem;
	font-size: 1.5rem;
	line-height: 1.75;
}

.cf-block__button {
	margin-top: 2.5rem;
	text-align: left;
}

.cf-block__image {
	max-width: 55rem;
}

.cf-block:nth-child(odd) .cf-block__image {
	margin-left: auto;
}

.cf-block:nth-child(even) .cf-block__image {
	margin-right: auto;
}

.cf-block__image img {
	aspect-ratio: 880/440;
}

.cremation {
	padding-top: 7.5rem;
	padding-bottom: 7.5rem;
}

.cremation::after {
	top: 0;
	height: 25rem;
}

.cremation::before {
	top: 0;
}

.cremation__inner {
	align-items: flex-end;
}

.csr {
	padding-block: 5rem;
}

.csr-top__cards {
	flex-direction: row;
	gap: 1.5rem;
	margin-top: 7.5rem;
	padding-inline: 0;
}

.csr-top__card {
	flex: 1;
}

.csr-top__card-icon {
	width: 100%;
}

.csr-top__card-body {
	margin-top: 4.5rem;
	padding-inline: 1rem;
}

.csr-top__card-number {
	font-size: 7rem;
	left: 1rem;
	bottom: -3.625rem;
}

.csr-top__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.csr-top__card-text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.csr-category {
	margin-top: 7.5rem;
}

.csr-category__grid {
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5rem;
	margin-top: 5.75rem;
}

.csr-category__card-overlay {
	padding: 2rem 0rem 2.5rem;
}

.csr-category__card-tag {
	padding: 0.5rem 0.25rem;
	min-width: 7.5rem;
	font-size: 1rem;
}

.csr-category__card-wrap {
	margin-top: 1.5rem;
	padding-inline: 2rem;
}

.csr-category__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.csr-category__card-text {
	margin-top: 0.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.csr-deployment {
	background: url("../images/csr-deployment-bg-pc.jpg") center/cover no-repeat;
	padding-block: 7.5rem;
}

.csr-deployment__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 5rem;
}

.csr-deployment__body {
	margin-top: 0;
	max-width: 40rem;
	margin-right: 3.75rem;
}

.csr-deployment__body p {
	font-size: 1rem;
	line-height: 1.75;
}

.csr-deployment__body p + p {
	margin-top: 1.75rem;
}

.cta {
	padding-block: 8.4375rem 7.75rem;
}

.cta__brand {
	width: 40.0625rem;
}

.cta__text {
	margin-top: 1rem;
	font-size: 1.25rem;
}

.cta__button {
	margin-top: 3rem;
}

.dc-feature {
	padding-top: 7rem;
	padding-bottom: 5rem;
}

.dc-grid {
	display: grid;
	grid-template-columns: 17.25rem 1fr;
	gap: 1.5rem;
}

.dc-sidebar {
	margin-bottom: 0;
}

.dc-number {
	font-size: 7rem;
}

.dc-heading {
	margin-top: 1.25rem;
	font-size: 1.5rem;
	line-height: 1.75;
}

.dc-feature__content {
	margin-top: 0rem;
	grid-template-columns: 23.125rem 1fr;
	gap: clamp(1.5rem, 5.357vw - 17.14px, 3.75rem);
}

.dc-feature__list {
	margin-top: 0.875rem;
}

.dc-feature__table-wrap {
	margin-top: 0;
}

.dc-feature__table td:nth-child(1) {
	width: 50%;
}

.dc-feature__table td:nth-child(2) {
	width: 25%;
}

.dc-feature__table td:nth-child(3) {
	width: 25%;
}

.dc-feature__table td {
	padding: 0.6875rem clamp(0.125rem, 1.19vw - 7.14px, 0.625rem);
}

.dc-feature__table td:first-child {
	text-align: left;
}

.dc-feature__table-label {
	display: inline-block;
	width: 54%;
	padding-right: 0.625rem;
	position: relative;
	vertical-align: middle;
}

.dc-feature__table-label::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 1.125rem;
	background-color: #646464;
}

.dc-feature__table-unit {
	display: inline-block;
	padding-left: 0.625rem;
	vertical-align: middle;
}

.dc-feature__table-diff {
	left: 0;
	bottom: 0.125rem;
}

html:lang(en) .dc-feature__table-diff {
	left: 0;
	bottom: 1.875rem;
}

html:lang(vi) .dc-feature__table-diff {
	left: 0;
	bottom: calc(50% - 1.25rem);
}

.dc-feature__table-diff-arrow {
	width: 4rem;
}

.dc-feature__table-diff-circle {
	width: 2.875rem;
	height: 2.875rem;
	font-size: 0.875rem;
}

.dc-burner {
	padding-top: 4.25rem;
	padding-bottom: 7rem;
}

.dc-burner__inner {
	max-width: 82.375rem;
}

.dc-burner__challenges {
	margin-top: 1rem;
	flex-direction: row;
	margin-top: 0rem;
	gap: 2rem;
}

.dc-burner__challenge {
	font-size: 1.5rem;
	line-height: 1.5;
	text-align: left;
}

.dc-burner__amp {
	font-size: 5rem;
}

.dc-burner__diagram {
	margin-top: 2.25rem;
}

.dc-test {
	padding-top: 7.5rem;
}

.dc-test__content {
	margin-top: 0rem;
}

.dc-test__card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem;
	align-items: center;
	padding: 2.5rem;
}

.dc-test__results-title {
	font-size: 1rem;
	line-height: 1.5;
	margin-bottom: 1rem;
}

.dc-test__results-list {
	font-size: 1rem;
	line-height: 2.625;
}

.dc-test__highlight {
	margin-top: 0;
}

.dc-test__highlight-text {
	font-size: 2rem;
	line-height: 1.5;
}

.dc-test__demo {
	display: grid;
	grid-template-columns: 19.25rem 1fr;
	gap: 2.5rem;
	align-items: start;
	margin-top: 2.5rem;
}

.dc-test__demo-body {
	margin-top: 0;
}

.dc-test__demo-note {
	font-size: 1.25rem;
	line-height: 1.5;
}

.dc-test__scenarios {
	gap: 1.5rem;
	margin-top: 1.5rem;
}

.dc-test__scenario {
	padding: 1.25rem 1rem;
}

.dc-test__scenario-text {
	font-size: 1.375rem;
	line-height: 1.5;
}

.dc-nav {
	padding: 5rem 0 7.5rem;
}

.dc-nav__inner {
	max-width: 82.375rem;
}

.dc-nav__cards {
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.dc-nav__card {
	padding: 3rem 1rem;
}

.dc-nav__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.di-intro {
	padding-top: 3.75rem;
}

.di-products__grid {
	margin-top: 4.375rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
}

.di-products__card-block {
	height: 100%;
}

.di-products__card {
	padding: 3.40625rem min(3.3333333333vw, 3rem) 2.90625rem;
}

.di-products__card-header {
	display: flex;
	gap: clamp(0px, 5.94vw - 45.59px, 2.5rem);
}

.di-products__card-title-area {
	flex-direction: column;
	gap: 1.5rem;
	width: 9.625rem;
}

.di-products__card-name {
	max-width: 8rem;
}

.di-products__card-fullname--dmf {
	width: 6.125rem;
}

.di-products__card-fullname--imf {
	width: 7.5625rem;
}

.di-products__card-text-area {
	margin-top: 0;
}

.di-products__card-catch {
	font-size: 1.25rem;
	line-height: 1.5;
}

.di-products__card-desc {
	margin-top: 1rem;
	font-size: 1rem;
	line-height: 1.75;
}

.di-products__card-img {
	padding-top: 0;
}

.di-products__card-img--imf {
	margin-top: -3.75rem;
}

.di-products__awards {
	margin-top: 2rem;
}

.di-products__downloads {
	margin-top: 5rem;
}

.di-features {
	margin-top: 7.5rem;
}

.di-features::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url("../images/dmf-imf-features-bg.jpg") no-repeat center/cover;
	z-index: -1;
}

.di-features__inner {
	max-width: 82.375rem;
}

.di-features__title {
	position: absolute;
	top: 0;
	left: 25px;
	z-index: 1;
}

.di-features__grid {
	margin-top: 0rem;
}

.di-features__item-body {
	margin-top: -4.25rem;
	padding: 0 2.5rem;
}

.di-features__item-number {
	font-size: 7rem;
}

.di-features__item-title {
	margin-top: 0.75rem;
	font-size: 1.5rem;
}

.di-features__item-text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.di-movie {
	padding-bottom: 7.5rem;
}

.di-movie::before {
	width: calc(100% - 25px * 2);
}

.di-movie .section-title {
	margin-bottom: 2.5rem;
}

.di-movie__player {
	margin-top: 5rem;
	max-width: 60rem;
	margin-inline: auto;
}

.di-movie__player .video-player__video {
	aspect-ratio: 960/540;
}

.es-mechanism {
	padding-bottom: 5rem;
}

.es-mechanism__header.section-header {
	max-width: 47.5rem;
}

.es-mechanism__grid {
	margin-top: 9.75rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0rem;
	padding-block: 5rem;
	border-block: 1px solid #646464;
}

.es-mechanism__img-area {
	margin-top: 0;
	height: 100%;
	max-width: 48.75rem;
}

.es-mechanism__img {
	position: absolute;
	top: 47%;
	left: -5.625rem;
	transform: translateY(-50%);
	width: 120%;
}

.es-mechanism__img img,
.es-mechanism__img picture {
	object-fit: contain;
}

.es-mechanism__body {
	margin-top: 0;
}

.es-mechanism__text + .es-mechanism__text {
	margin-top: 3rem;
}

.es-mechanism__title {
	font-size: 1.75rem;
	line-height: 1.4285714286;
}

.es-mechanism__desc {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.es-mechanism__awards {
	margin-top: 5rem;
}

.es-mechanism__downloads {
	margin-top: 5rem;
}

.es-uses {
	padding: 5rem 0;
}

.es-uses__inner {
	max-width: 82.375rem;
}

.es-uses__grid {
	grid-template-columns: repeat(2, 1fr);
	margin-top: 5rem;
	gap: 2.5rem 3rem;
}

.es-uses__item-movie {
	aspect-ratio: 576/324;
}

.es-uses__item-caption {
	font-size: 1.5rem;
	line-height: 1.75;
}

.es-features {
	padding: 5rem 0 5rem;
}

.es-features::before {
	aspect-ratio: 1366/1500;
	background-image: url("../images/eco-sms-features-bg-pc.jpg");
}

.es-features__title {
	position: absolute;
	top: 0;
	left: 25px;
	z-index: 1;
}

.es-features__grid {
	margin-top: 0;
}

.es-features__item-body {
	margin-top: -4.25rem;
	padding: 0 2.5rem;
}

.es-features__item-number {
	font-size: 7rem;
}

.es-features__item-title {
	margin-top: 0.75rem;
	font-size: 1.5rem;
}

.es-features__item-text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.es-features__catalog {
	margin-top: 5rem;
	padding-top: 5rem;
}

.es-features__catalog-download-block {
	margin-top: 3.5rem;
}

.el-recycle {
	padding-bottom: 5rem;
}

.el-recycle__title,
.el-furnace__title {
	font-size: 2rem;
	line-height: 1.5;
}

.el-recycle__desc {
	margin-top: 2.125rem;
}

.el-recycle__item {
	margin-top: 4.5rem;
	margin-inline: 0;
	width: auto;
}

.el-furnace {
	padding-bottom: 5rem;
}

.el-furnace__desc {
	margin-top: 2.125rem;
}

.el-furnace__item {
	margin-top: 2.875rem;
	margin-inline: 0;
	width: auto;
}

.el-renewable {
	padding-top: 7.5rem;
}

.el-green__section-title {
	font-size: 2rem;
	line-height: 1.5;
}

.el-green__section-title span {
	font-size: 1.5rem;
	line-height: 1.5;
	display: inline;
}

.el-green__grid {
	flex-direction: row;
	gap: 2.5rem;
	margin-top: 3rem;
}

.el-green__item {
	flex: 1;
}

.el-green__number {
	left: 3.75rem;
	bottom: -3.125rem;
	font-size: 7rem;
}

.el-green__item-wrap {
	padding-inline: 3.75rem;
	margin-top: 4.5rem;
}

.el-green__item-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.el-green__item-text {
	margin-top: 1rem;
	font-size: 1rem;
	line-height: 1.75;
}

.el-hq {
	margin-top: 5rem;
}

.el-hq__grid {
	position: relative;
	margin-bottom: 8rem;
}

.el-hq__card {
	max-width: 35rem;
	padding: 5rem 5rem;
	margin-inline: 0;
}

.el-hq__title {
	font-size: 1.5rem;
	line-height: 1.75;
	text-align: left;
}

.el-hq__text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.el-hq__text p + p {
	margin-top: 1.75rem;
}

.el-hq__image {
	position: absolute;
	right: 0;
	bottom: -8rem;
	width: 54rem;
	margin-top: 0;
	margin-inline: 0;
	border-radius: 0.5rem;
	overflow: hidden;
}

.el-hq__image img {
	aspect-ratio: 864/480;
}

.el-nav {
	padding: 5rem 0 7.5rem;
}

.el-nav__cards {
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.el-nav__card {
	padding: 3rem 1rem;
}

.el-nav__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.ec-sections {
	gap: 5rem;
}

.ec-sections + .ec-sections {
	margin-top: 7.5rem;
}

.ec-section__inner {
	max-width: 82.375rem;
}

.ec-section__wrapper {
	background-color: transparent;
	border-radius: 0;
	padding: 0;
}

.ec-section__wrapper::after {
	display: none;
}

.ec-section__header {
	background-color: #3c3c3c;
	border-radius: 0.5rem;
	padding: 3rem 5rem;
	min-height: 20rem;
	display: flex;
}

html:lang(vi) .ec-section__header {
	padding: 3rem 3rem;
}

.ec-section__header::after {
	content: "";
	position: absolute;
	top: 0;
	right: calc((100vw - 100%) / -2);
	width: calc(100% + (100vw - 100%) / 2);
	height: 100%;
	background-color: #282828;
	clip-path: polygon(40% 0, 100% 0, 100% 100%, 0 100%, 0 250%);
	pointer-events: none;
}

.ec-section__header--wide {
	display: block;
}

.ec-section__blocks.ec-section__blocks--wide {
	margin-top: -13rem;
	padding-left: 5rem;
}

.ec-section__title {
	font-size: 2rem;
	line-height: 1.5;
}

.ec-section__title.ec-section__title--short {
	max-width: 13.125rem;
	width: 100%;
}

.ec-section__title--wide {
	font-size: 2rem;
	line-height: 1.5;
}

.ec-section__cards {
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: auto;
	gap: 1.5rem 1.5rem;
	margin-top: -17rem;
	padding-left: 19.5rem;
	padding-bottom: 0;
}

html:lang(vi) .ec-section__cards {
	gap: 1.5rem 1rem;
	padding-left: 17.5rem;
}

.ec-section__cards--two {
	grid-template-columns: repeat(2, 1fr);
}

.ec-section__card {
	display: grid;
	grid-row: span 4;
	grid-template-rows: subgrid;
	row-gap: 0;
}

.ec-section__card-name {
	font-size: 1.5rem;
	line-height: 1.75;
	gap: 0.75rem;
}

.ec-section__card-label {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

html:lang(vi) .ec-section__card-label {
	font-size: clamp(0.5rem, -0.0714285714rem + 1.1904761905vw, 1rem);
}

.ec-section__card-value {
	font-size: 2.5rem;
	line-height: 1.75;
}

html:lang(en) .ec-section__card-value {
	font-size: 1.5rem;
}

html:lang(vi) .ec-section__card-value {
	font-size: clamp(1rem, 0.4285714286rem + 1.1904761905vw, 1.5rem);
}

.ec-section__card-sub {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.ec-section__card-img {
	margin-top: 1.25rem;
}

.ec-section__card-desc {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid #646464;
}

.ec-section__bottom-text {
	margin-top: 2rem;
	font-size: 1rem;
	line-height: 1.75;
	padding-left: 19.5rem;
}

.ec-visual {
	margin-top: -17rem;
	padding: 2rem 2.5rem 1.5rem;
	margin-left: 19.5rem;
}

.ec-visual__cards {
	grid-template-columns: repeat(2, 1fr);
	gap: 3.75rem;
}

.ec-visual__card-name {
	font-size: 1.5rem;
	line-height: 1.75;
}

.ec-visual__card-img {
	margin-top: 1rem;
}

.ec-visual__badge {
	width: 6.5rem;
	height: 6.5rem;
	top: 3.5rem;
	right: -2rem;
}

.ec-visual__badge.ec-visual__badge2 {
	top: 3.5rem;
	right: 1.5rem;
}

.ec-visual__text {
	margin-top: -4rem;
	font-size: 1rem;
	line-height: 2;
	max-width: 66%;
	width: 100%;
}

html:lang(en) .ec-visual__text {
	max-width: 70%;
}

.ec-section__blocks {
	gap: 3.375rem;
	margin-top: -17rem;
	padding-left: 19.5rem;
}

.ec-section__block.ec-section__block--dx {
	padding: 2.5rem;
}

.ec-section__block-title {
	font-size: 1.5rem;
	line-height: 1.75;
	gap: 0.75rem;
}

.ec-section__block-desc {
	font-size: 1rem;
	line-height: 2;
}

.ec-section__block-img {
	margin-top: 2.375rem;
}

.ec-section__block-img.ec-section__block-img--wide img {
	aspect-ratio: 1120/1073;
}

.ec-section__block-img.ec-section__block-img--dx {
	margin-top: 2.375rem;
}

.ec-section__block-img.ec-section__block-img--combustion {
	margin-top: 2.375rem;
}

.ec-nav {
	padding: 5rem 0 7.5rem;
}

.ec-nav__inner {
	max-width: 82.375rem;
}

.ec-nav__cards {
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.ec-nav__card {
	padding: 3rem 1rem;
}

.ec-nav__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.error-404__button {
	margin-top: 3.75rem;
}

.footer {
	padding-block: 5rem;
}

.footer__inner {
	max-width: 120rem;
	padding-right: 8.125rem;
	padding-left: 4.125rem;
}

.footer__main {
	flex-direction: row;
	align-items: flex-start;
	justify-content: space-between;
	-moz-column-gap: 7.5rem;
	column-gap: 7.5rem;
}

.footer__logo {
	max-width: 17.6875rem;
	order: 0;
}

.footer__logo-link {
	max-width: 17.6875rem;
}

.footer__logo-img {
	height: 3.125rem;
}

.footer__address {
	margin-top: 2rem;
	font-size: 0.875rem;
	line-height: 1.7142857143;
}

.footer__company {
	font-size: 1.5rem;
	order: 0;
}

.footer__right {
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.footer__nav {
	margin-top: 0;
	flex-direction: row;
	align-items: flex-start;
	justify-content: flex-end;
	-moz-column-gap: 5rem;
	column-gap: 5rem;
	row-gap: 0;
	order: 0;
}

.footer__nav-col {
	width: auto;
}

.footer__nav-list {
	grid-auto-flow: column;
	gap: 0;
	align-items: center;
}

.footer__nav-link {
	display: inline-block;
	width: -moz-fit-content;
	width: fit-content;
	font-size: 0.875rem;
	padding-inline: 1rem;
}

.footer__nav-item:first-child .footer__nav-link {
	padding-left: 0;
}

.footer__nav-item:last-child .footer__nav-link {
	padding-right: 0;
}

.footer__nav-link::after {
	left: 1rem;
	right: 1rem;
}

.footer__nav-item:first-child .footer__nav-link::after {
	left: 0;
}

.footer__nav-item:last-child .footer__nav-link::after {
	right: 0;
}

.footer__nav-item + .footer__nav-item .footer__nav-link {
	border-left: 1px solid #fff;
}

.footer__copyright {
	padding-top: 1.5rem;
	font-size: 0.75rem;
	line-height: 1.5;
	text-align: right;
}

.full-menu {
	padding-inline: 1.5rem;
	padding-bottom: 1.5rem;
}

.full-menu__container {
	overflow: visible;
}

.full-menu__body {
	max-height: calc(100dvh - 8rem - env(safe-area-inset-bottom, 0px));
	padding: 4.1875rem 6.1875rem 5rem;
	transition: opacity 0.3s ease;
}

html[lang=vi] .full-menu__body {
	padding: 4.1875rem 4rem 5rem;
}

.full-menu__columns {
	flex-direction: row;
	gap: 3.125rem;
	min-height: unset;
}

.full-menu__col--sp-only {
	display: none;
}

.full-menu__category {
	display: none;
}

.full-menu__heading {
	display: block;
	font-size: 3rem;
}

html[lang=vi] .full-menu__heading {
	font-size: 2.375rem;
}

.full-menu__sections {
	position: static;
	z-index: auto;
	background: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border-top: none;
	border-radius: 0;
	padding: 0;
	overflow: visible;
	max-height: none;
	opacity: 1;
	visibility: visible;
	margin-top: 1.875rem;
	transition: none;
}

.full-menu__back {
	display: none;
}

.full-menu__sections > .full-menu__extra {
	display: none;
}

.full-menu__section + .full-menu__section {
	border-top: none;
}

.full-menu__section--line {
	padding-bottom: 0;
	border-bottom: none;
}

.full-menu__section + .full-menu__section > .full-menu__section-title {
	padding-top: 0;
}

.full-menu__section:not(:has(.full-menu__section-list)) + .full-menu__section:not(:has(.full-menu__section-list)) {
	margin-top: 1.25rem;
}

.full-menu__section-title {
	padding-bottom: 0.5625rem;
}

.full-menu__extra {
	margin-top: 3rem;
}

.full-menu__gorin img {
	aspect-ratio: 340/64;
}

.full-menu__links {
	margin-top: 3rem;
}

.future-content {
	padding-top: 1rem;
}

.future-content__inner {
	max-width: 82.375rem;
}

.future-content__wrap {
	margin-top: 7.5rem;
	display: block;
	padding-top: 10rem;
	padding-bottom: 16.875rem;
}

.future-content__img {
	margin-top: 0;
	margin-inline: 0;
	width: auto;
	border-radius: 0.5rem;
	max-width: 60rem;
	margin-inline: auto;
	order: unset;
}

.future-content__card {
	position: absolute;
	top: 0;
	right: 0;
	width: 35rem;
	order: unset;
	padding: 5rem 5rem;
}

html[lang=vi] .future-content__card {
	padding: 5rem 3rem;
	width: 43.75rem;
}

.future-content__item + .future-content__item {
	margin-top: 3rem;
}

.future-content__title {
	font-size: 1.5rem;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.future-content__desc {
	margin-top: 1.5rem;
}

.future-bottom {
	position: absolute;
	bottom: 6.375rem;
	left: 0;
	width: 100%;
	order: unset;
	margin-top: 0;
}

.future-bottom__brand {
	max-width: 40.0625rem;
	margin-inline: 0;
}

.future-bottom__brand img {
	aspect-ratio: 641/70;
}

.future-bottom__text {
	font-size: 1.25rem;
	line-height: 1.75;
	text-align: left;
}

.fv {
	padding-top: 7rem;
}

.fv__bg picture,
.fv__bg img {
	aspect-ratio: 1366/480;
}

.fv__body {
	padding-bottom: 10rem;
}

.fv__breadcrumb {
	font-size: 0.75rem;
	padding-left: 1.375rem;
}

.fv__content {
	margin-top: 6.75rem;
	max-width: 75rem;
	padding-inline: 2.5rem;
}

.fv__title {
	font-size: 3rem;
}

.fv__subtitle {
	margin-top: 1.25rem;
	font-size: 1.75rem;
}

.gallery {
	padding-block: 1rem 7.5rem;
}

html[lang|=en] .filter-selects__select--gallery-area,
body.translatepress-en_US .filter-selects__select--gallery-area,
html[lang|=vi] .filter-selects__select--gallery-area,
body.translatepress-vi .filter-selects__select--gallery-area {
	padding-left: calc(5.5em + 2rem);
}

html[lang|=en] .filter-selects__select--gallery-fc,
body.translatepress-en_US .filter-selects__select--gallery-fc {
	padding-left: calc(10em + 2rem);
}

html[lang|=vi] .filter-selects__select--gallery-fc,
body.translatepress-vi .filter-selects__select--gallery-fc {
	padding-left: calc(12em + 2rem);
}

.gallery__sort {
	margin-top: 3.5rem;
}

.gallery__sort-box {
	max-width: 17.5rem;
}

.gallery__sort-box::after {
	right: 1.5rem;
}

.gallery__sort-label {
	font-size: 1rem;
}

.gallery__sort-select {
	font-size: 1rem;
	padding-right: 3rem;
	padding-left: 7.25rem;
}

.gallery__grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem 1.5rem;
	margin-top: 3.5rem;
}

.gallery__card-meta {
	margin-top: 0.9375rem;
}

.gallery__card-name {
	font-size: 1rem;
}

.gallery__card-location {
	font-size: 1rem;
}

.gallery__dots {
	margin-top: 2.5rem;
	gap: 0.5rem;
}

.gallery__empty {
	font-size: 1rem;
}

.gallery__modal-content {
	max-width: min(60rem, 93.3333333333vh + 5rem);
	padding: 3.5rem 2.5rem 2rem;
}

.gallery__modal-close {
	top: 0.75rem;
	right: 0.75rem;
	width: 2.75rem;
	height: 2.75rem;
}

.gallery__modal-meta {
	margin-top: 1.25rem;
}

.gallery__modal-name {
	font-size: 1.25rem;
}

.gallery__modal-location {
	font-size: 1rem;
}

.header {
	height: 5rem;
	margin-top: 1.5rem;
}

.header__inner {
	padding-inline: 1.5rem;
	max-width: 85.375rem;
	margin-inline: auto;
}

.header__inner::before {
	left: 1.5rem;
	right: 1.5rem;
}

.header__container {
	padding-left: 1.5rem;
}

.header__logo {
	width: 15.6875rem;
}

.header__nav {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding-right: 2.5rem;
}

html[lang=vi] .header__nav {
	padding-right: clamp(0.75rem, -0.1071428571rem + 1.7857142857vw, 1.5rem);
}

html[lang=vi] .header__nav-list {
	gap: clamp(0.125rem, -0.875rem + 2.0833333333vw, 1rem);
}

html[lang=vi] .header__nav-link {
	padding-inline: clamp(0.125rem, -0.3035714286rem + 0.8928571429vw, 0.5rem);
	font-size: clamp(0.625rem, 0.1964285714rem + 0.8928571429vw, 1rem);
}

.header__lang {
	flex-direction: column;
	gap: 0.5rem;
	width: 5rem;
}

.header__lang-dropdown-link {
	font-size: 1rem;
	height: 3.25rem;
}

.header__contact {
	height: inherit;
	display: flex;
	align-items: center;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.75;
	letter-spacing: 0em;
	padding-inline: 2.5rem;
}

.header__hamburger {
	width: 5.5rem;
}

.header__hamburger.is-open .header__hamburger-line {
	width: 1.75rem;
}

.history-hero {
	height: 30rem;
}

.history-hero__gradient {
	height: 12.5rem;
}

.history-hero__inner {
	max-width: 82.375rem;
}

.history-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.history-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.history-body__bg {
	height: 93.75rem;
}

.history-body__bg-fade {
	height: 31.25rem;
}

.history-intro {
	padding: 5rem 0 3.75rem;
}

.history-intro__heading {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.history-intro__text {
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.history-timeline {
	margin-top: 5rem;
}

.history-timeline::before {
	display: none;
}

.history-timeline {
	max-width: none;
}

.history-timeline__row {
	grid-template-columns: repeat(4, 1fr);
	gap: 0 1rem;
	border-top: 1px solid #fff;
}

.history-timeline__row + .history-timeline__row {
	margin-top: 2.5rem;
}

.history-entry {
	display: flex;
	flex-direction: column;
	padding-left: 0;
	padding-top: 2.75rem;
}

.history-entry__dot {
	top: -0.3125rem;
}

.history-entry__connector {
	left: 0.75rem;
	top: 0.25rem;
	width: 0.0625rem;
	height: 2.5rem;
}

.history-entry__card {
	flex: 1 0 auto;
	padding: 1.5rem min(2.2222222222vw, 2rem) 2.75rem;
}

.history-entry__category {
	margin-right: -1rem;
	font-size: 1.25rem;
}

.history-entry__year {
	margin-top: 0.75rem;
	font-size: 3rem;
}

.history-entry__desc {
	padding-top: 1rem;
	font-size: 1rem;
	line-height: 1.75;
}

.history-popup__card {
	flex-direction: row;
	align-items: flex-start;
	padding: 3rem;
	gap: 3rem;
}

.history-popup__close {
	top: 1.125rem;
	right: 1.125rem;
}

.history-popup__body {
	flex: 1;
}

.history-popup__year {
	font-size: 2.5rem;
}

.history-popup__title {
	margin-top: 2rem;
	font-size: 1.5rem;
	line-height: 1.5;
}

.history-popup__desc {
	margin-top: 2.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.history-popup__image {
	width: 25rem;
	flex-shrink: 0;
	margin-top: 0;
}

.history-popup__image img {
	aspect-ratio: 400/300;
}

.mas-movie {
	margin-top: 6rem;
}

.mas-hero {
	height: 50.25rem;
}

.mas-hero__bg picture,
.mas-hero__bg img {
	aspect-ratio: 1366/804;
}

.mas-hero__breadcrumb {
	top: 7.5rem;
	left: max(1.5625rem, 50vw - 41.5625rem + 1.5625rem);
}

.mas-hero__title {
	max-width: 41.125rem;
}

.mas-hero__subtitle {
	margin-top: 1.25rem;
	font-size: 1.25rem;
}

.mas-body {
	padding: 0rem 0 5rem;
}

.mas-body::after {
	aspect-ratio: 1366/698;
	background-image: linear-gradient(to bottom, #000000 0%, rgba(0, 0, 0, 0) 15%), url("../images/mas-body-bg-pc.jpg");
}

.mas-body__text {
	font-size: 1rem;
	line-height: 1.75;
}

.mas-smart {
	padding-bottom: 7.5rem;
}

.mas-smart__grid {
	margin-top: 10rem;
	display: grid;
	grid-template-columns: 18.75rem 1fr;
	gap: 3.75rem;
}

.mas-smart__header {
	padding-top: 2rem;
}

.mas-smart__label {
	font-size: 1rem;
}

.mas-smart__heading {
	font-size: 3.5rem;
}

.mas-smart__cards {
	margin-top: 0;
	max-width: 47.5rem;
	width: 100%;
	margin-left: auto;
}

.mas-card__header {
	flex-wrap: nowrap;
	gap: 2.5rem;
	padding-block: 2.375rem;
	padding-left: 7.5rem;
	padding-right: 0.75rem;
}

.mas-card__header::before {
	clip-path: polygon(5.25rem 0, 100% 0, 100% 100%, 0 100%, 0 11.125rem);
	margin-inline: 0;
	width: 100%;
}

.mas-card__header::after {
	display: block;
	position: absolute;
	top: 0;
	left: 99%;
	width: calc(50vw - 50%);
	height: 100%;
	background-color: #fff;
}

.mas-card__titles {
	width: 16.875rem;
}

.mas-card__en {
	font-size: 2rem;
}

.mas-card__initial {
	font-size: 3.5rem;
}

.mas-card__jp {
	font-size: 1rem;
	line-height: 1.75;
}

.mas-card__summary {
	margin-top: 0;
	width: auto;
	flex: 1;
	order: 0;
}

.mas-card__toggle {
	position: static;
	margin-left: auto;
}

.mas-card__detail-text {
	padding: 2.25rem 2.5rem;
	font-size: 1rem;
	line-height: 1.75;
	margin-left: auto;
	max-width: 42.25rem;
	width: 100%;
}

.mega-menu {
	display: block;
}

.message-hero {
	height: 30rem;
}

.message-hero__inner {
	max-width: 82.375rem;
}

.message-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.message-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.message-content__grid {
	display: grid;
	grid-template-columns: 25rem 1fr;
	gap: 10rem;
}

.message-content__photo {
	width: 100%;
}

.message-content__body {
	margin-top: 0;
}

.message-content__body p {
	font-size: 1.25rem;
	line-height: 1.75;
}

.message-content__body p + p {
	margin-top: 2.1875rem;
}

.message-content__body p + p.message-content__signature {
	margin-top: 4.5rem;
}

.mv {
	min-height: 56.875rem;
}

.mv__body {
	padding-bottom: 7.5rem;
}

.mv__movie video {
	aspect-ratio: 1366/910;
}

.mv__gradient {
	height: 12.5rem;
}

.mv__body-inner {
	flex-direction: row;
	align-items: flex-end;
	justify-content: space-between;
}

.mv__title {
	max-width: 40.0625rem;
}

.mv__title img {
	aspect-ratio: 641/70;
}

.mv__text {
	margin-top: 1.5rem;
	font-size: 2rem;
	line-height: 1.25;
}

.mv__button {
	margin-top: 0;
}

.news-archive {
	padding-block: 1rem 7.5rem;
}

.news-archive__filter-tags {
	margin-top: 2.5rem;
}

.news-archive__filter-tag {
	font-size: 0.75rem;
}

.news-archive__grid {
	grid-template-columns: repeat(4, 1fr);
	gap: 5rem 2rem;
	margin-top: 5rem;
}

.news-archive__card-link {
	grid-template-columns: 1fr;
	grid-template-rows: auto auto;
	gap: 0;
}

.news-archive__card-img {
	grid-row: 1;
	grid-column: 1;
}

.news-archive__card-category {
	grid-row: 1;
	grid-column: 1;
	align-self: end;
	justify-self: start;
	z-index: 1;
	margin: 0 0 0.5rem 0.5rem;
	font-size: 0.75rem;
	min-width: 4rem;
}

.news-archive__card-meta {
	grid-row: 2;
	grid-column: 1;
	margin-top: 1.5rem;
}

.news-archive__card-date {
	margin-top: 0;
	font-size: 0.875rem;
}

.news-archive__card-title {
	margin-top: 0.3125rem;
	font-size: 1rem;
}

.news-archive__pagination {
	margin-top: 7.5rem;
}

.news-archive__pagination .nav-links {
	gap: 0.5rem;
}

.news-archive__pagination .page-numbers {
	font-size: 1rem;
	width: 2.5rem;
	height: 2.5rem;
}

.news-archive__empty {
	font-size: 1rem;
}

.office-hero {
	height: 30rem;
}

.office-hero__gradient {
	height: 12.5rem;
}

.office-hero__inner {
	max-width: 82.375rem;
}

.office-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.office-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.office-factory__video {
	margin-top: 5rem;
	max-width: 60rem;
	margin-inline: auto;
}

.office-factory__video .video-player__video {
	aspect-ratio: 960/540;
}

.office-factory__video video {
	aspect-ratio: 960/540;
}

.office-dev {
	margin-top: 7.5rem;
}

.office-dev__grid {
	position: relative;
	min-height: 42.5rem;
}

.office-dev__text {
	position: relative;
	z-index: 1;
	max-width: 20rem;
	padding-top: 2.5rem;
}

html:lang(en) .office-dev__text,
html:lang(vi) .office-dev__text {
	max-width: 22rem;
}

.office-dev__desc {
	margin-top: 2.5rem;
}

.office-dev__image {
	position: absolute;
	top: 0;
	right: calc(50% - min(50vw, 46rem));
	margin-top: 0;
	margin-inline: 0;
	width: 63.75rem;
}

html:lang(en) .office-dev__image,
html:lang(vi) .office-dev__image {
	top: 4.5rem;
	right: calc(50% - min(55vw, 46rem));
}

.office-dev__image img {
	aspect-ratio: 1020/680;
}

.office-network {
	margin-top: 14.875rem;
}

.office-network__grid {
	display: grid;
	grid-template-columns: 20rem 1fr;
	gap: 5rem;
}

.office-network__tests {
	margin-top: 5rem;
	gap: 1.75rem;
}

.office-network__map {
	position: relative;
	margin-top: 0;
	top: -4.375rem;
}

.office-network__map picture {
	display: block;
}

.office-network__buttons {
	display: block;
	position: absolute;
	inset: 0;
}

.office-network__btn {
	position: absolute;
	transform: translateX(-50%);
	display: inline-flex;
	gap: 0.75rem;
	white-space: nowrap;
	padding: 1rem 4.625rem 1rem 1rem;
}

html:not(:lang(ja)) .office-network__btn {
	padding: 0.75rem 3.75rem 0.75rem 0.375rem;
}

.office-network__btn::after {
	content: "";
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	top: 100%;
	z-index: -1;
}

.office-network__btn-name {
	font-size: 1rem;
}

.office-network__btn-map {
	position: absolute;
	top: 50%;
	right: 0.75rem;
	transform: translateY(-50%);
}

html:not(:lang(ja)) .office-network__btn-map {
	right: 0.5rem;
}

.office-network__btn--honsha {
	top: 31%;
	left: 44.5%;
}

.office-network__btn--honsha::after {
	height: 0.625rem;
	background-color: #057d2d;
}

html:not(:lang(ja)) .office-network__btn--honsha::after {
	height: 1.125rem;
}

.office-network__btn--factory {
	top: 42%;
	left: 44.5%;
}

.office-network__btn--factory::after {
	height: 6.25rem;
	background-color: #057d2d;
}

.office-network__btn--sapporo {
	top: 18%;
	left: 57%;
}

html:not(:lang(ja)) .office-network__btn--sapporo {
	top: 18%;
	left: 48%;
}

.office-network__btn--sapporo::after {
	left: 100%;
	top: 50%;
	transform: translateY(-50%);
	width: 4.5rem;
	height: 2px;
	background-color: #28a7b5;
}

.office-network__btn--tohoku {
	top: 59%;
	left: 85%;
}

html:not(:lang(ja)) .office-network__btn--tohoku {
	top: 59%;
	left: 88%;
}

.office-network__btn--tohoku::after {
	right: 100%;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	width: 4.5rem;
	height: 2px;
	background-color: #75143e;
}

.office-network__btn--tokyo {
	top: 80%;
	left: 73%;
}

html:not(:lang(ja)) .office-network__btn--tokyo {
	top: 80%;
	left: 80%;
}

.office-network__btn--tokyo::after {
	right: 100%;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	width: 5rem;
	height: 2px;
	background-color: #c36a07;
}

.office-network__btn--osaka {
	top: 54%;
	left: 31%;
}

html:not(:lang(ja)) .office-network__btn--osaka {
	top: 54%;
	left: 32%;
}

.office-network__btn--osaka::after {
	height: 6.25rem;
	left: 57%;
	background-color: #a89307;
}

html:not(:lang(ja)) .office-network__btn--osaka::after {
	left: 53%;
}

.office-network__btn--nagoya {
	top: 98%;
	left: 42%;
}

html:not(:lang(ja)) .office-network__btn--nagoya {
	top: 98%;
	left: 48%;
}

.office-network__btn--nagoya::after {
	height: 5rem;
	left: 46%;
	background-color: #0772a8;
	top: auto;
	bottom: 100%;
}

html:not(:lang(ja)) .office-network__btn--nagoya::after {
	left: 22%;
}

.office-network__btn--hiroshima {
	top: 41%;
	left: 19.5%;
}

.office-network__btn--hiroshima::after {
	height: 8rem;
	background-color: #b8071a;
}

.office-network__btn--shikoku {
	top: 98%;
	left: 18%;
}

.office-network__btn--shikoku::after {
	height: 5.5rem;
	background-color: #a80772;
	top: auto;
	bottom: 100%;
}

.office-network__btn--kyushu {
	top: 54%;
	left: 8%;
}

html:not(:lang(ja)) .office-network__btn--kyushu {
	left: 6%;
}

.office-network__btn--kyushu::after {
	height: 7.25rem;
	left: 46%;
	background-color: #0722a8;
}

.office-list {
	padding: 3.75rem 0 5rem;
}

.office-list-wrapper {
	margin-top: 6.25rem;
}

.office-list__title {
	font-size: 1.5rem;
	line-height: 1.75;
	padding-bottom: 0.75rem;
}

.office-list__grid {
	grid-template-columns: 1fr 1fr;
	-moz-column-gap: 5rem;
	column-gap: 5rem;
}

.office-card {
	display: flex;
	justify-content: space-between;
	gap: 2.5rem;
}

.office-card:nth-child(2) {
	padding-top: 0;
}

.office-card__name {
	width: 7.375rem;
}

.office-card__body {
	margin-top: 0;
	max-width: 25rem;
	width: 100%;
}

.office-card__image iframe {
	aspect-ratio: 400/200;
}

.office-card__info {
	margin-top: 1rem;
}

.office-card__contact {
	margin-top: 0.75rem;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.office-card__tel,
.office-card__fax {
	font-size: 1rem;
	line-height: 1.75;
}

.ot-intro__title {
	font-size: 2rem;
	line-height: 1.75;
}

.ot-intro__text {
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.75;
	max-width: 45rem;
	margin-left: auto;
	margin-right: auto;
}

.ot-content__inner {
	max-width: 82.375rem;
}

.ot-content__wrap {
	margin-top: 0;
	display: block;
	padding-top: 18.75rem;
	padding-bottom: 26.5625rem;
	margin-top: 7.5rem;
}

.ot-content__img {
	margin-inline: 0;
	width: auto;
	border-radius: 0.5rem;
	max-width: 60rem;
	margin-inline: auto;
	order: unset;
}

.ot-section__grid {
	position: absolute;
	top: 0;
	right: 0;
	width: 35rem;
	order: unset;
}

.ot-section__grid--reverse {
	position: absolute;
	bottom: 0;
	left: 0;
	top: auto;
	right: auto;
	width: 35rem;
	order: unset;
}

.ot-section__heading-area {
	flex-direction: row;
	position: absolute;
	margin-bottom: 0;
	gap: 2.5rem;
	white-space: nowrap;
}

.ot-section__grid:not(.ot-section__grid--reverse) .ot-section__heading-area {
	top: 4.5rem;
	right: 93%;
}

.ot-section__grid--reverse .ot-section__heading-area--reverse {
	top: 22.75rem;
	right: auto;
	left: 93%;
}

.ot-section__heading-area::after {
	width: 5rem;
}

.ot-section__heading-area--reverse::before {
	width: 5rem;
	order: -1;
}

.ot-section__heading-area--reverse {
	order: 0;
}

.ot-section__heading {
	font-size: 2rem;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.ot-section__card {
	padding: 4.75rem 4.5rem;
}

.ot-section__card-body {
	margin-top: 0;
	gap: 2.25rem;
}

.ot-section__block-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.ot-section__block-text {
	margin-top: 1rem;
	font-size: 1rem;
	line-height: 1.75;
}

.os {
	padding-top: 1rem;
}

.os__section {
	padding-bottom: 6.25rem;
}

.os__section--top {
	padding-top: 5rem;
}

.os__section--border {
	padding-top: 5rem;
}

.os__section--border::before {
	max-width: 1250px;
	width: calc(100% - 25px * 2);
}

.os__section-inner {
	max-width: 82.375rem;
}

.os__section-content {
	display: flex;
	align-items: flex-start;
	gap: 5rem;
}

.os__section-text {
	flex: 1;
	max-width: 30rem;
}

.os__section-title--lg {
	font-size: 3rem;
	line-height: 1.25;
}

.os__section-body-wrap {
	margin-top: 4.375rem;
}

.os__section-image {
	flex-shrink: 0;
	max-width: 40rem;
	width: 100%;
	margin-top: 0;
}

.os__section-image img,
.os__section-image picture {
	aspect-ratio: 640/480;
}

.os__section-buttons {
	align-items: flex-start;
	margin-top: 2.5rem;
}

.os__btn-download {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
}

.os__section-button.button {
	max-width: 15rem;
}

.os__trial {
	margin-top: 5rem;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 3rem;
	padding-block: 1.9375rem;
	padding-inline: 5rem 8.5rem;
	max-width: 60rem;
	width: 100%;
	margin-inline: auto;
}

.os__trial::before,
.os__trial::after {
	width: 1.5rem;
	aspect-ratio: 24/240;
}

.os__trial::before {
	background-image: url("../images/parentheses-left.png");
}

.os__trial::after {
	background-image: url("../images/parentheses-right.png");
}

.os__trial-text {
	flex: 1;
	max-width: 25rem;
	width: 100%;
}

.os__trial-heading {
	font-size: 1.5rem;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.os__trial-body {
	margin-top: 1.5rem;
}

.os__trial > .button {
	margin-inline: 0;
}

.os__display {
	padding-top: 5rem;
}

.os__display::before {
	max-width: 1250px;
	width: calc(100% - 25px * 2);
}

.os__display-inner {
	max-width: 82.375rem;
}

.os__display-title {
	font-size: 2.5rem;
}

.os__display-desc {
	margin-top: 0;
	flex: 1;
	max-width: 35rem;
	margin-top: 0;
}

.os__display-lists {
	margin-top: 2rem;
}

.os__display-compare {
	grid-template-columns: repeat(2, 1fr);
	gap: 5rem;
	margin-top: 4rem;
}

.os__display-compare::after {
	transform: translate(-50%, -50%);
	width: 6.25rem;
	aspect-ratio: 100/160;
}

.os__display-compare-item {
	padding: 3rem 2.5rem;
}

.os__display-compare-img img {
	aspect-ratio: 480/310;
}

.os__display-compare-body {
	margin-top: 2.25rem;
}

.os__display-compare-title {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.5;
}

.os__display-compare-list {
	margin-top: 1.75rem;
}

.os__display-buttons {
	flex-direction: row;
	justify-content: center;
	margin-top: 5rem;
	max-width: 100%;
}

.overview-hero {
	height: 25rem;
}

.overview-hero__inner {
	max-width: 82.375rem;
}

.overview-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.overview-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.overview-info {
	padding-block: 1rem 0rem;
}

.overview-info__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5rem;
}

.overview-info__col + .overview-info__col {
	margin-top: 0;
}

.overview-dl__value-image {
	margin-top: 1.875rem;
	padding-left: 0;
	max-width: 25rem;
}

.overview-dl__row {
	flex-direction: row;
	gap: 1.875rem;
	padding-block: 1.625rem;
	border-top: 2px solid rgba(255, 255, 255, 0.2);
}

.overview-dl__row:last-child {
	border-bottom: 2px solid rgba(255, 255, 255, 0.2);
}

.overview-dl + .overview-dl .overview-dl__row:first-child {
	border-top: none;
}

.overview-dl:first-child .overview-dl__row:first-child {
	border-top: none;
	padding-top: 0;
}

.overview-dl__label {
	width: 8.375rem;
	font-size: 1rem;
	line-height: 1.75;
}

.overview-dl__value {
	font-size: 1rem;
	line-height: 1.75;
}

.overview-dl__group + .overview-dl__group {
	margin-top: 2rem;
}

.overview-iso {
	margin-top: 7.125rem;
	padding-bottom: 5rem;
}

.overview-iso__gradient--top {
	aspect-ratio: 1366/200;
}

.overview-iso__gradient--bottom {
	aspect-ratio: 1366/200;
}

.overview-iso__titles {
	max-width: 82.375rem;
}

.overview-iso__title {
	font-size: 2.5rem;
	line-height: 1.25;
}

.overview-iso__desc {
	max-width: 45rem;
	margin-top: 5rem;
	margin-left: auto;
	margin-right: auto;
}

.overview-iso__desc-text {
	font-size: 1rem;
	line-height: 1.75;
}

.overview-iso__desc-text + .overview-iso__desc-text {
	margin-top: 1.25rem;
}

.overview-iso__cards {
	gap: 1.625rem;
	max-width: 82.375rem;
	margin-top: 4.6875rem;
}

.overview-iso__card {
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	padding: 2.5rem 2.5rem 2.5rem 5rem;
}

.overview-iso__card::after {
	width: 45.9375rem;
}

.overview-iso__card-body {
	display: block;
	width: 31.5rem;
	flex-shrink: 0;
}

.overview-iso__card-head {
	gap: 1.5rem;
	flex-direction: row;
	justify-content: space-between;
}

.overview-iso__card-title {
	font-size: 1.75rem;
	line-height: 1.5;
}

.overview-iso__card-logo {
	width: 8rem;
}

.overview-iso__card-logo img {
	aspect-ratio: 128/66;
}

.overview-iso__card-year {
	left: 2.5rem;
	width: 7.5rem;
	padding: 0.5rem 0;
	font-size: 1rem;
	line-height: 1.5;
}

.overview-iso__card-text {
	margin-top: 1.75rem;
}

.overview-iso__card-text p {
	font-size: 1rem;
	line-height: 1.75;
}

.overview-iso__card-text p + p {
	margin-top: 1.75rem;
}

.overview-iso__card-image {
	padding-left: 0;
	flex-shrink: 0;
	width: 24.5rem;
	margin-top: 0;
}

.overview-iso__card-cert {
	width: 8.75rem;
	left: -6.125rem;
}

.pagination__btn {
	min-width: 2.625rem;
	height: 2.625rem;
	padding-inline: 1rem;
	font-size: 1rem;
	margin-left: 0.5rem;
}

.pagination__btn--prev,
.pagination__btn--next {
	min-width: 4.125rem;
}

.philosophy-hero {
	padding-top: 6.5rem;
}

.philosophy-hero__inner {
	padding-bottom: 3.75rem;
}

.philosophy-hero__breadcrumb {
	font-size: 0.75rem;
}

.philosophy-hero__content {
	margin-top: 6.75rem;
}

.philosophy-hero__title {
	font-size: 3rem;
}

.philosophy-section {
	padding-top: 1rem;
}

.philosophy-section__inner {
	max-width: 82.375rem;
}

.philosophy-section__group {
	max-width: 75rem;
	margin-inline: auto;
}

.philosophy-section__row {
	display: flex;
	gap: 5rem;
	padding: 5rem 0;
}

.philosophy-section__label {
	width: 22.5rem;
}

.philosophy-section__heading {
	font-size: 2rem;
}

.philosophy-section__heading-en {
	margin-top: 0.5rem;
	font-size: 1.25rem;
}

.philosophy-section__content {
	flex: 1;
	margin-top: 0;
}

.philosophy-section__list {
	gap: 2rem;
}

.philosophy-section__list-item {
	font-size: 1.25rem;
}

.philosophy-vision {
	padding-block: 5rem 12.5rem;
}

.philosophy-vision::before {
	background: url(../images/philosophy-vision-bg-pc.jpg) no-repeat center bottom/contain;
	aspect-ratio: 1366/1160;
}

.philosophy-vision::after {
	height: 31.25rem;
}

.philosophy-vision__inner {
	max-width: 82.375rem;
}

.philosophy-vision__row {
	display: flex;
	gap: 5rem;
	max-width: 75rem;
	width: 100%;
	margin-inline: auto;
}

.philosophy-vision__label {
	width: 22.5rem;
}

.philosophy-vision__heading {
	font-size: 2.5rem;
}

.philosophy-vision__heading-en {
	margin-top: 0.5rem;
	font-size: 1.25rem;
}

.philosophy-vision__content {
	flex: 1;
	margin-top: 0;
}

.philosophy-vision__text {
	font-size: 1.25rem;
}

.philosophy-mission {
	padding-block: 7.5rem;
}

.philosophy-mission__inner {
	max-width: 82.375rem;
}

.philosophy-mission__row {
	display: flex;
	gap: 5rem;
}

.philosophy-mission__label {
	width: 22.5rem;
}

.philosophy-mission__heading {
	font-size: 2.5rem;
}

.philosophy-mission__heading-en {
	margin-top: 0.5rem;
	font-size: 1.25rem;
}

.philosophy-mission__content {
	flex: 1;
	margin-top: 0;
}

.philosophy-mission__slogan {
	font-size: 2rem;
	line-height: 1.75;
}

.philosophy-mission__desc {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.75;
}

.philosophy-mission__grid {
	margin-top: 5.75rem;
	flex-direction: row;
	gap: 1.5rem;
}

.philosophy-mission__column {
	flex: 1;
}

.philosophy-mission__pillar {
	margin-top: -4.25rem;
}

.philosophy-mission__number {
	font-size: 7rem;
}

.philosophy-mission__title {
	margin-top: 0.75rem;
	font-size: 1.5rem;
	line-height: 1.75;
}

.philosophy-mission__text {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.75;
}

.cfp-service {
	padding-top: 1rem;
}

.cfp-service__diagram {
	padding-bottom: 5rem;
}

.cfp-service-title {
	font-weight: 600;
	font-size: 2rem;
	line-height: 1.75;
}

.cfp-service__diagram-image {
	margin-top: 4rem;
	max-width: 45rem;
	margin-inline: auto;
}

.cfp-service__diagram-image img,
.cfp-service__diagram-image picture {
	aspect-ratio: 720/540;
}

.cfp-service__detail {
	padding-bottom: 6.25rem;
}

.cfp-service__detail-inner {
	max-width: 82.375rem;
}

.cfp-service__detail-content {
	display: flex;
	align-items: flex-start;
	gap: 5rem;
	margin-top: 6rem;
}

.cfp-service__detail-text {
	flex: 1;
	max-width: 35rem;
}

.cfp-service__detail-heading {
	font-size: 1.5rem;
	line-height: 1.5;
}

.cfp-service__detail-text-wrap {
	gap: 2rem;
	margin-top: 2.5rem;
}

.cfp-service__detail-image {
	flex-shrink: 0;
	width: 35rem;
	margin-top: 0;
}

.cfp-service__connection {
	padding-bottom: 6.25rem;
}

.cfp-service__connection-inner {
	max-width: 82.375rem;
}

.cfp-service__connection-content {
	margin-top: 5rem;
	display: flex;
	align-items: center;
	gap: 3rem;
	padding-block: 0.75rem 1.125rem;
	padding-inline: 6.5rem 5rem;
	max-width: 60rem;
	width: 100%;
	margin-inline: auto;
}

.cfp-service__connection-content::before,
.cfp-service__connection-content::after {
	width: 1.5rem;
	aspect-ratio: 24/243;
}

.cfp-service__connection-content::before {
	background-image: url("../images/parentheses-left.png");
}

.cfp-service__connection-content::after {
	background-image: url("../images/parentheses-right.png");
}

.cfp-service__connection-diagram {
	flex-shrink: 0;
	width: 18.75rem;
	padding-inline: 0rem;
}

.cfp-service__connection-diagram.cfp-service__connection-diagram--rm {
	width: 19.125rem;
}

.cfp-service__connection-text {
	flex: 1;
	margin-top: 0;
}

.cfp-service__connection-heading {
	font-size: 1.5rem;
	line-height: 1.75;
	letter-spacing: 0.2em;
}

.cfp-service__connection-body {
	margin-top: 1.5rem;
}

.cfp-service__trouble {
	margin-top: 5rem;
	padding-top: 5rem;
}

.cfp-service__trouble::before {
	max-width: 1250px;
	width: calc(100% - 25px * 2);
}

.cfp-service__features {
	padding-bottom: 8.125rem;
}

.cfp-service__features-grid {
	margin-top: 5rem;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.cfp-service__feature-card {
	padding: 4.375rem 2rem 3rem;
}

.cfp-service__feature-card-img.cfp-service__feature-card-img--rm {
	max-width: 19rem;
	width: 100%;
}

.cfp-service__feature-card-img.cfp-service__feature-card-img--rm {
	max-width: 19rem;
	width: 100%;
}

.cfp-service__feature-card-body {
	margin-top: 1.75rem;
}

.cfp-service__feature-card-title {
	font-size: 1.5rem;
}

.cfp-service__feature-card-text {
	margin-top: 0.75rem;
}

.privacy {
	padding-bottom: 7.5rem;
}

.privacy__inner {
	max-width: 82.375rem;
}

.privacy__content {
	padding-top: 2.5rem;
	padding-bottom: 5.3125rem;
}

.privacy__content h2 {
	font-size: 1.5rem;
}

.privacy__content p {
	font-size: 1rem;
	margin-top: 2.5rem;
}

.privacy__content p + p {
	margin-top: 2rem;
}

.privacy__content ul {
	margin-top: 1.75rem;
}

.privacy__content ul + p {
	margin-top: 1.75rem;
}

.privacy__content ul li {
	font-size: 1rem;
}

.privacy__content .wp-block-separator {
	margin-block: 5rem;
}

.products-hero {
	height: 30rem;
}

.products-hero__gradient {
	height: 12.5rem;
}

.products-hero__inner {
	max-width: 82.375rem;
}

.products-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.products-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.products-filter__grid {
	flex-direction: row;
	gap: 1rem;
}

.products-filter__trigger {
	padding: 1.625rem 1.5rem;
}

.products-filter__label {
	font-size: 1rem;
}

.products-filter__value {
	font-size: 1rem;
}

.products-filter__option {
	font-size: 1rem;
}

.products-grid {
	margin-top: 5rem;
}

.products-grid__list {
	grid-template-columns: repeat(2, 1fr);
	gap: 3.5rem;
}

.products-card {
	display: grid;
	grid-row: span 2;
	grid-template-rows: subgrid;
	gap: 0;
}

.products-card__header {
	flex-direction: row;
	align-items: center;
}

.products-card__name {
	gap: 1rem;
	font-size: 1.5rem;
	line-height: 1.75;
}

.products-card__arrow {
	width: 2rem;
}

.products-card__tag {
	height: 1.75rem;
	font-size: 0.875rem;
}

.products-card__tag--industry {
	padding: 0 0.34375rem;
}

.products-card__tag--hot {
	padding: 0 0.625rem;
}

.products-card__tag--mid {
	padding: 0 0.625rem;
}

.products-card__tag--low {
	padding: 0 0.625rem;
}

.products-card__image img {
	aspect-ratio: 572/286;
}

.rm__lead {
	padding-top: 1rem;
	padding-bottom: 6.25rem;
}

.rm__lead-heading {
	font-size: 2rem;
}

.rm__diagram {
	margin-top: 3rem;
	max-width: 45rem;
	margin-inline: auto;
}

.rm__detail {
	padding-bottom: 6.25rem;
}

.rm__detail-inner {
	max-width: 82.375rem;
}

.rm__detail-content {
	display: flex;
	align-items: flex-start;
	gap: 3rem;
}

.rm__detail-text {
	flex: 1;
	max-width: 35rem;
}

.rm__detail-heading {
	font-size: 1.5rem;
}

.rm__detail-body {
	margin-top: 1.25rem;
	font-size: 1rem;
}

.rm__detail-image {
	flex-shrink: 0;
	width: 35rem;
	margin-top: 0;
}

.rm__security {
	padding-bottom: 6.25rem;
}

.rm__security-inner {
	max-width: 82.375rem;
}

.rm__security-content {
	display: flex;
	align-items: center;
	gap: 3rem;
}

.rm__security-diagram {
	flex-shrink: 0;
	width: 35rem;
}

.rm__security-text {
	flex: 1;
	margin-top: 0;
}

.rm__security-heading {
	font-size: 1.5rem;
}

.rm__security-body {
	margin-top: 1.25rem;
	font-size: 1rem;
}

.rm__emergency {
	padding-top: 6.25rem;
	padding-bottom: 6.25rem;
}

.rm__emergency-inner {
	max-width: 82.375rem;
}

.rm__emergency-heading {
	font-size: 2rem;
}

.rm__diagram--emergency {
	max-width: 45rem;
}

.rm__features {
	padding-bottom: 8.125rem;
}

.rm__features-inner {
	max-width: 82.375rem;
}

.rm__features-grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.rm__feature-card-body {
	padding: 1.5rem 1.5rem 2rem;
}

.rm__feature-card-title {
	font-size: 1.5rem;
}

.rm__feature-card-text {
	margin-top: 0.75rem;
	font-size: 1rem;
}

.sdgs {
	padding-block: 1rem 12.5rem;
}

.sdgs__icons {
	max-width: 980px;
}

.sdgs__icons img {
	aspect-ratio: 980/210;
}

.sdgs__lead {
	margin-top: 2.5rem;
	font-size: 1rem;
	line-height: 1.75;
}

.sdgs__block-container {
	margin-top: 7.5rem;
	gap: 6rem;
}

.sdgs__block {
	flex-direction: row;
	gap: 5.625rem;
	align-items: center;
}

.sdgs__block:nth-child(odd) {
	flex-direction: row-reverse;
}

.sdgs__block-image picture,
.sdgs__block-image img {
	aspect-ratio: 683/400;
}

.sdgs__block:nth-child(odd) .sdgs__block-image picture,
.sdgs__block:nth-child(odd) .sdgs__block-image img {
	border-radius: 16px 0 0 16px;
}

.sdgs__block:nth-child(even) .sdgs__block-image picture,
.sdgs__block:nth-child(even) .sdgs__block-image img {
	border-radius: 0 16px 16px 0;
}

.sdgs__block-inner {
	width: 50%;
}

.sdgs__block-body {
	max-width: 32.5rem;
}

.sdgs__block--reverse .sdgs__block-body {
	margin-left: auto;
}

.sdgs__block-heading {
	font-size: 1.5rem;
	line-height: 1.75;
}

.sdgs__block-text p {
	margin-top: 2rem;
	font-size: 1rem;
	line-height: 1.75;
}

.sdgs__block-text p + p {
	margin-top: 1.75rem;
}

.sdgs__block-goals {
	gap: 1rem;
	margin-top: 3.125rem;
}

.sdgs__block-goals img {
	width: 5rem;
	height: 5rem;
}

.section-links {
	padding-top: 4.6875rem;
	padding-bottom: 2.75rem;
}

.section-links__inner {
	max-width: 87.5rem;
}

.section-links__list {
	flex-direction: row;
	gap: 1rem;
}

.section-links__img img {
	height: 25rem;
}

.section-links__body {
	margin-top: 1.0625rem;
	padding-right: 1.25rem;
}

.section-links__label-jp {
	font-size: 1.5rem;
}

.section-links__label-en {
	font-size: 1.25rem;
}

.sim-lead {
	max-width: 45rem;
	margin-inline: auto;
}

.sim-lead__inner {
	max-width: 50.1875rem;
}

.sim-lead__catch {
	font-size: 2rem;
	line-height: 1.75;
}

.sim-lead__text {
	gap: 1.75rem;
}

.sim-cards {
	margin-top: 7.5rem;
	flex-direction: row;
	gap: 5rem;
}

.sim-cards__card {
	flex: 1;
}

.sim-cards__card-number {
	font-size: 7rem;
	left: 2.5rem;
	bottom: -3.625rem;
}

.sim-cards__card-body {
	margin-top: 4.5rem;
	padding-inline: 2.5rem;
}

.sim-cards__card-title {
	font-size: 1.5rem;
	line-height: 1.75;
}

.sim-cards__card-text {
	margin-top: 1.25rem;
}

.single-news {
	padding-bottom: 7.5rem;
}

.single-news__inner {
	max-width: 82.375rem;
}

.single-news__date {
	font-size: 1rem;
	line-height: 1.5;
}

.single-news__title {
	margin-top: 0.75rem;
	font-size: 2.5rem;
	line-height: 1.25;
}

.single-news__category {
	margin-top: 4rem;
	gap: 0.75rem;
}

.single-news__category-badge {
	padding: 0.1875rem 0.5rem;
}

.single-news__tags {
	margin-top: 1.25rem;
	gap: 0.25rem;
}

.single-news__tag {
	padding: 0.125rem 0.4375rem;
}

.single-news__caption {
	margin-top: 0.75rem;
	font-size: 0.875rem;
}

.single-news__content {
	margin-top: 2.5rem;
}

.wp-block-separator {
	margin-top: 5rem;
}

.single-news__content p {
	font-size: 1rem;
	line-height: 1.75;
}

.single-news__content p + p {
	margin-top: 1.75rem;
}

.single-news__content h2 {
	font-size: 1.5rem;
	line-height: 1.5;
}

.single-news__content * + h2 {
	margin-top: 5rem;
}

.single-news__content h2 + * {
	margin-top: 2.5rem;
}

.single-news__content figure + * {
	margin-top: 5rem;
}

.single-news__content * + figure {
	margin-top: 4rem;
}

.single-news__content figcaption {
	margin-top: 0.625rem;
	font-size: 0.875rem;
	line-height: 1.4285714286;
}

.single-news__nav {
	margin-top: 6.5625rem;
	padding-block: 2.5rem;
}

.single-news__nav-link {
	font-size: 1rem;
	gap: 0.75rem;
}

.single-news__filter {
	margin-top: 5.0625rem;
}

.single-news__filter-selects {
	flex-direction: row;
	gap: 1rem;
}

.single-news__filter-box {
	flex: 1;
	height: 5rem;
	padding: 0 2rem;
}

.single-news__filter-label {
	font-size: 1rem;
}

.single-news__filter-select {
	font-size: 1rem;
	background-position: right 0.5rem center;
}

.single-news__filter-tags {
	margin-top: 1.25rem;
}

.single-news__filter-tag {
	font-size: 0.75rem;
}

.sitemap {
	padding-top: 1rem;
	padding-bottom: 11.5rem;
}

.sitemap__inner {
	max-width: 82.375rem;
}

.sitemap__home {
	max-width: 21.25rem;
	padding-bottom: 1.5rem;
}

.sitemap__home-link {
	font-size: 1rem;
}

.sitemap__columns {
	margin-top: 4.75rem;
	flex-direction: row;
	gap: 5.625rem;
}

.sitemap__col {
	flex: 1;
	min-width: 0;
}

.sitemap__heading {
	font-size: 3rem;
	margin-bottom: 2.125rem;
}

.sitemap__group-title {
	padding-block: 1.5rem;
}

.sitemap__group-list {
	padding-block: 1.5rem;
}

.sitemap__group-item {
	font-size: 0.875rem;
}

.sitemap__gorin {
	margin-top: 3rem;
}

.sitemap__extra-links {
	margin-top: 2.75rem;
}

.sf-intro {
	padding: 1rem 0 5rem;
}

.sf-intro__inner {
	max-width: 82.375rem;
}

.sf-concept__visual {
	margin-top: 5rem;
}

.sf-intro__downloads {
	margin-top: 5rem;
}

.sf-features {
	padding: 5rem 0 5rem;
}

.sf-features::before {
	aspect-ratio: 1366/1500;
	background-image: url("../images/smart-furnace-features-bg-pc.jpg");
}

.sf-features__inner {
	max-width: 82.375rem;
}

.sf-features__title {
	position: absolute;
	top: 0;
	left: 25px;
	z-index: 1;
}

.sf-features__grid {
	margin-top: 0rem;
}

.sf-features__item-body {
	margin-top: -4.25rem;
	padding: 0 2.5rem;
}

.sf-features__item-number {
	font-size: 7rem;
}

.sf-features__item-title {
	margin-top: 0.75rem;
	font-size: 1.5rem;
}

.sf-features__item-text {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.sf-features__catalog {
	margin-top: 5rem;
	padding-top: 5rem;
}

.sf-features__catalog::before {
	left: 25px;
	right: 25px;
	width: calc(100% - 50px);
}

.steel-hero {
	height: 30rem;
}

.steel-hero__gradient {
	height: 12.5rem;
}

.steel-hero__inner {
	max-width: 82.375rem;
}

.steel-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.steel-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.tech::before {
	aspect-ratio: 1366/800;
	background-image: url("../images/technology-lead-pc.jpg");
}

.tech__lead {
	padding-top: 0;
}

.tech__lead-body {
	max-width: 35rem;
	margin-left: auto;
}

.tech__lead-heading {
	font-size: 1.5rem;
	line-height: 1.75;
}

.tech__lead-text {
	margin-top: 1.5rem;
}

.tech__blocks {
	margin-top: 6.875rem;
}

.tech__block-body {
	margin-top: -4.25rem;
	padding: 0 2.5rem;
}

.tech__block-num {
	font-size: 7rem;
}

.tech__block-heading {
	margin-top: 0.75rem;
	font-size: 1.5rem;
}

.tech__block-text-wrap {
	margin-top: 1.25rem;
	gap: 1.75rem;
}

.top-lead {
	min-height: 48rem;
	padding-top: 7.5rem;
	padding-bottom: 7.5rem;
}

.top-lead::before {
	height: 25rem;
}

.top-lead__inner {
	display: flex;
	justify-content: space-between;
}

.top-lead__title {
	font-size: 2rem;
}

.top-lead__text {
	margin-top: 3rem;
	font-size: 1rem;
}

.top-lead__button {
	margin-top: 5rem;
}

.top-lead__content {
	width: 50%;
}

.top-lead__img {
	margin-top: 0;
	position: absolute;
	content: "";
	bottom: 0;
	z-index: 0;
	right: calc(50% - min(50vw, 45rem));
}

.top-lead__img img {
	width: 71.375rem;
	aspect-ratio: 1142/480;
	object-position: center bottom;
}

.top-news {
	padding-top: 5rem;
	padding-bottom: 6rem;
}

.top-news__heading {
	font-size: 4rem;
}

.top-news__slider-nav {
	margin-top: 1.5rem;
	gap: 1rem;
}

.top-news__nav-prev,
.top-news__nav-next {
	width: 4rem;
}

.top-news__slider-wrap {
	margin-top: 3rem;
}

.top-news__meta {
	margin-top: 1rem;
}

.top-news__category {
	left: 0.5rem;
	right: 0.5rem;
	bottom: 0.5rem;
	font-size: 0.75rem;
	padding: 0.1875rem 0.625rem;
}

.top-news__date {
	margin-top: 0.5rem;
	font-size: 0.875rem;
}

.top-news__title {
	margin-top: 0.3125rem;
	font-size: 1rem;
}

.top-news__button {
	margin-top: 3rem;
}

.furnace-hero {
	height: 30rem;
}

.furnace-hero__gradient {
	height: 12.5rem;
}

.furnace-hero__inner {
	max-width: 82.375rem;
}

.furnace-hero__breadcrumb {
	top: 7.25rem;
	left: 5.1875rem;
}

.furnace-hero__title {
	font-size: 3rem;
	line-height: 1.25;
}

.furnace-body::before {
	aspect-ratio: 1366/324;
	background-image: url("../images/furnace-body-fv-pc.jpg");
}

.furnace-body::after {
	aspect-ratio: 1366/324;
}

.furnace-innovation {
	padding-block: 1rem 7.5rem;
}

.furnace-innovation__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5rem;
	align-items: center;
}

.furnace-innovation__image img {
	height: auto;
	aspect-ratio: 1;
}

.furnace-innovation__text {
	margin-top: 0;
	max-width: 35rem;
}

.furnace-innovation__block {
	margin-top: 5rem;
}

.furnace-innovation__sub-block {
	margin-top: 3rem;
}

.furnace-innovation__heading {
	font-size: 1.5rem;
	line-height: 1.75;
}

.furnace-innovation__desc {
	font-size: 1rem;
	line-height: 1.75;
}

.furnace-innovation__sub-block .furnace-innovation__desc {
	margin-top: 2rem;
}

.furnace-innovation__button {
	text-align: right;
}

.furnace-tech {
	padding-block: 7.5rem;
}

.furnace-tech::before {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: 100%;
	max-width: 75rem;
}

.furnace-tech__header-grid {
	display: flex;
	justify-content: space-between;
	gap: 5rem;
	align-items: start;
}

.furnace-tech__header-grid-right {
	max-width: 35rem;
	margin-top: 0;
}

.furnace-tech__cards {
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto auto auto;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	row-gap: 0;
	margin-top: 5.5rem;
}

.furnace-tech__card {
	display: grid;
	grid-row: 1/span 3;
	grid-template-rows: subgrid;
}

.furnace-tech__card-image img {
	height: 24rem;
}

.furnace-tech__card-body {
	margin-top: -5rem;
	padding: 0 2.5rem 2.5rem;
	grid-row: 2/span 2;
	display: grid;
	grid-template-rows: subgrid;
}

.furnace-tech__card-name {
	min-height: 0;
	font-size: 1.5rem;
	line-height: 1.5;
	align-items: flex-start;
}

.furnace-tech__card-body-button {
	margin-top: 0;
	padding-top: 2rem;
	align-self: end;
}

.furnace-features {
	padding-block: 7.5rem;
}

.furnace-features::before {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: 100%;
	max-width: 75rem;
}

.furnace-features__inner {
	overflow: visible;
}

.furnace-features__items {
	gap: 6rem;
	overflow: visible;
}

.furnace-features__movie {
	margin-top: 6rem;
	max-width: 60rem;
	margin-inline: auto;
}

.furnace-features__movie iframe {
	aspect-ratio: 960/540;
}

.furnace-features__item {
	gap: 0rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	overflow: visible;
}

.furnace-features__item--reverse {
	direction: rtl;
}

.furnace-features__item--reverse .furnace-features__text {
	direction: ltr;
}

.furnace-features__item--reverse .furnace-features__image {
	direction: ltr;
}

.furnace-features__item--reverse .furnace-features__info {
	direction: ltr;
	margin-left: 0;
	margin-right: auto;
	padding-left: 5rem;
}

.furnace-features__info {
	max-width: 37.5rem;
	padding-right: 5rem;
}

.furnace-features__heading {
	font-size: 1.5rem;
	line-height: 1.75;
}

.furnace-features__info-block {
	margin-top: 4.75rem;
}

.furnace-features__desc {
	margin-top: 2rem;
}

.furnace-features__info-button {
	margin-top: 3rem;
}

.furnace-features__image {
	margin-right: calc(100% - 50vw);
	border-radius: 0.5rem 0 0 0.5rem;
}

.furnace-features__image img,
.furnace-features__image picture {
	aspect-ratio: 683/400;
}

.furnace-features__item--reverse .furnace-features__image {
	margin-right: 0;
	margin-left: calc(100% - 50vw);
	border-radius: 0 0.5rem 0.5rem 0;
}

}

@media (min-width: 1200px) {

html {
	font-size: 16px;
}

}

@media screen and (min-width: 1200px) {

.cn-tech__card {
	padding: 5rem 5rem 5rem min(25rem, 27.7777777778vw);
}

}

@media screen and (min-width: 1250px) {

.cfp__concept-content {
	gap: 0 5rem;
}

.csr-category__card-wrap {
	padding-inline: 3.125rem;
}

}

@media screen and (max-width: 767px) {

.top-news__nav-dots.top-news__nav-dots--sp {
	display: flex;
}

.u-mtSp10 {
	margin-top: 10px !important;
	margin-top: prem(10) !important;
}

.u-mtSp20 {
	margin-top: 20px !important;
	margin-top: prem(20) !important;
}

.u-mtSp30 {
	margin-top: 30px !important;
	margin-top: prem(30) !important;
}

.u-mtSp40 {
	margin-top: 40px !important;
	margin-top: prem(40) !important;
}

.u-mtSp50 {
	margin-top: 50px !important;
	margin-top: prem(50) !important;
}

.u-mtSp60 {
	margin-top: 60px !important;
	margin-top: prem(60) !important;
}

.u-mtSp70 {
	margin-top: 70px !important;
	margin-top: prem(70) !important;
}

.u-mtSp80 {
	margin-top: 80px !important;
	margin-top: prem(80) !important;
}

.u-mtSp90 {
	margin-top: 90px !important;
	margin-top: prem(90) !important;
}

.u-mtSp100 {
	margin-top: 100px !important;
	margin-top: prem(100) !important;
}

.u-mtSp110 {
	margin-top: 110px !important;
	margin-top: prem(110) !important;
}

.u-mtSp120 {
	margin-top: 120px !important;
	margin-top: prem(120) !important;
}

.u-mtSp130 {
	margin-top: 130px !important;
	margin-top: prem(130) !important;
}

.u-mtSp140 {
	margin-top: 140px !important;
	margin-top: prem(140) !important;
}

.u-mtSp150 {
	margin-top: 150px !important;
	margin-top: prem(150) !important;
}

.u-mtSp160 {
	margin-top: 160px !important;
	margin-top: prem(160) !important;
}

.u-mtSp170 {
	margin-top: 170px !important;
	margin-top: prem(170) !important;
}

.u-mtSp180 {
	margin-top: 180px !important;
	margin-top: prem(180) !important;
}

.u-mtSp190 {
	margin-top: 190px !important;
	margin-top: prem(190) !important;
}

.u-mtSp200 {
	margin-top: 200px !important;
	margin-top: prem(200) !important;
}

.u-pc {
	display: none;
}

.u-sp {
	display: block;
}

.u-textMdLeft {
	text-align: Left !important;
}

.u-textMdCenter {
	text-align: Center !important;
}

.u-textMdRight {
	text-align: Right !important;
}

.u-textMdJustify {
	text-align: Justify !important;
}

}

@media screen and (max-width: 700px) {

.u-sp700 {
	display: block;
}

}

@media screen and (max-width: 650px) {

.u-sp650 {
	display: block;
}

}

@media screen and (max-width: 600px) {

.u-sp600 {
	display: block;
}

}

@media screen and (max-width: 550px) {

.u-sp550 {
	display: block;
}

}

@media screen and (max-width: 500px) {

.u-sp500 {
	display: block;
}

}

@media screen and (max-width: 450px) {

.u-sp450 {
	display: block;
}

}

@media screen and (max-width: 400px) {

.u-sp400 {
	display: block;
}

}

@media (max-width: 375px) {

html {
	font-size: 4.2666666667vw;
}

}

@keyframes button-card-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1.75rem);
	opacity: 0;
}

41% {
	transform: translateX(-1.75rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

@keyframes button-arrow-flow {

0% {
	transform: translateY(-50%) translateX(0);
	opacity: 1;
}

40% {
	transform: translateY(-50%) translateX(1.75rem);
	opacity: 0;
}

41% {
	transform: translateY(-50%) translateX(-1.75rem);
	opacity: 0;
}

100% {
	transform: translateY(-50%) translateX(0);
	opacity: 1;
}

}

@keyframes cn-nav-card-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1.75rem);
	opacity: 0;
}

41% {
	transform: translateX(-1.75rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

@keyframes full-menu-section-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1rem);
	opacity: 0;
}

41% {
	transform: translateX(-1rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

@keyframes loading-dot-bounce {

0%,80%,100% {
	transform: scale(0.4);
	opacity: 0.4;
}

40% {
	transform: scale(1);
	opacity: 1;
}

}

@keyframes products-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1.75rem);
	opacity: 0;
}

41% {
	transform: translateX(-1.75rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

@keyframes section-links-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1.75rem);
	opacity: 0;
}

41% {
	transform: translateX(-1.75rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

@keyframes sitemap-arrow-flow {

0% {
	transform: translateX(0);
	opacity: 1;
}

40% {
	transform: translateX(1rem);
	opacity: 0;
}

41% {
	transform: translateX(-1rem);
	opacity: 0;
}

100% {
	transform: translateX(0);
	opacity: 1;
}

}

