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

html {
	font-size: 16px;
	height: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 160px;
}

body {
	color: #2b2822;
	font-family: "Onest", "Inter", "Noto Sans JP", sans-serif;
	font-weight: 400;
	line-height: 1.4;
}

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

a {
	text-decoration: none;
	transition: all 0.3s;
}

a:hover {
	opacity: 0.7;
}

img {
	transition: all 0.3s;
}

a:hover img {
	opacity: 0.7;
}

/*===================================================================
# ヘッダー
===================================================================*/

.header {
	background-color: #fff;
	height: 156px;
	left: 0;
	padding-bottom: 22px;
	padding-top: 22px;
	position: fixed;
	top: 0;
	transition: transform 0.3s ease-in-out;
	width: 100%;
	z-index: 1000;
}

.header.hidden {
	transform: translateY(-100%);
}

.header__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1190px;
}

.header__contents {
	display: flex; /* ヘッダー全体 */
	justify-content: space-between;
}

.header__logo {
	height: 112px;
	width: 119px;
	@media screen and (min-width: 768px) and (max-width: 1023px) {
		height: auto;
	width: 80px;
	}
}

.header__logo img {
	height: auto;
	width: 100%;
}

.header__lists {
	display: flex;
}

.header__list {
	align-items: center;
	display: flex;
	height: 45px;
	justify-content: center;
	margin-right: 35px;
	position: relative;
	@media screen and (min-width: 768px) and (max-width: 1023px) {
		margin-right: 20px;
	}
}

.header__list:nth-of-type(5) {
	margin-right: 116px;
	@media screen and (min-width: 768px) and (max-width: 1023px) {
		margin-right: 20px;
	}
}

.header__list:last-of-type {
	margin-right: 0;
}

.header__list--contact {
	border: 1px solid #1D2088;
	width: 126px;
}

.header__list-link {
	color: #1D2088; /* メニューのリンク */
	cursor: pointer;
	display: block;
	font-size: 20px;
	font-style: normal;
	font-weight: 900;
	@media screen and (min-width: 768px) and (max-width: 1023px) {
		font-size: 16px;
	}
	&.active {
		&:after {
			width: 55px;
            height: 3px;
            background: #1D2088;
            content: "";
            position: absolute;
            bottom: 0;
            margin: auto auto -5px;
            display: block;
            left: 0;
            right: 0;
		}
	}
}

.header__nav {
	height: auto;
	position: static;
	right: auto;
	top: auto;
	transform: none;
	width: auto;
	z-index: 0;
}

/*===================================================================
# フッター
===================================================================*/

.footer {
	background-color: #036EB8;
	padding-bottom: 43px;
	padding-top: 43px;
}

.footer__lists {
	align-items: center;
	display: flex;
	gap: 70px;
	justify-content: center;
}

.footer__link {
	color: #FFF;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 6.56px;
	line-height: 29px; /* 181.25% */
}

.footer__link--office {
	position: relative;
}

.footer__link--office::after {
	background: #fff;
	content: "";
	height: 19px;
	position: absolute;
	right: -31px;
	top: 50%;
	translate: 0 -50%;
	width: 1px;
}

.footer__text {
	color: #FFF;
	font-weight: 500;
	letter-spacing: 6.56px;
	line-height: 29px; /* 181.25% */
	margin-top: 12px;
	text-align: center;
}

/*===================================================================
# ボタン
===================================================================*/

/*===================================================================
# ホバー
===================================================================*/

/*===================================================================
# インナー幅
===================================================================*/

.inner {
	margin: 0 auto;
	max-width: 1120px;
}

/*===================================================================
# セクション
===================================================================*/

/*===================================================================
# DRAWER / SP_MENU
===================================================================*/

.drawer {
	border: 1px solid #1D2088;
	color: #1D2088;
	cursor: pointer;
	display: none;
	font-style: normal;
	font-weight: 600;
	height: 30px;
	letter-spacing: 1.6px;
	position: relative;
	width: 87px;
}

.drawer::after {
	border: 1px solid #1D2088;
	content: "";
	height: 24px;
	left: 50%;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: 81px;
}

.sp-menu {
	animation: fadeIn 0.3s ease;
	box-sizing: border-box;
	min-width: 335px;
	opacity: 0;
	padding-top: 23px;
	transform: scale(0.95);
	transition: opacity 0.3s ease, transform 0.3s ease;
	width: 90%; /* レスポンシブ対応 */
}

.sp-menu__inner {
	margin-left: 20px;
	margin-right: 20px;
}

.sp-menu__header {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.sp-menu__logo {
	height: 60px;
	width: 64px;
}

.sp-menu__batsu {
	cursor: pointer;
	height: 22px;
	width: 46px;
}

.sp-menu__nav {
	display: flex;
	justify-content: center;
	margin-top: 85px;
}

.sp-menu__list {
	margin-bottom: 20px;
}

.sp-menu__list:last-of-type {
	margin-bottom: 0;
}

.sp-menu__link {
	color: #FFF;
	font-size: 19px;
	font-style: normal;
	font-weight: 900;
}

.sp-menu__list--contact {
	align-items: center;
	border: 1px solid #fff;
	display: flex;
	height: 35px;
	justify-content: center;
	margin-top: 64px;
	width: 114px;
}

/* モーダルオーバーレイのスタイル */

.modal-overlay {
	background-color: #036EB8;
	display: flex;
	height: 100%;
	justify-content: center;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	width: 100%;
	z-index: 1000;
}

/* モーダルがアクティブな状態 */

.modal-overlay.active {
	opacity: 1;
	visibility: visible;
}

/* モーダルがアクティブな状態でのSPメニュー */

.modal-overlay.active .sp-menu {
	opacity: 1;
	transform: scale(1);
	visibility: visible;
}

/*===================================================================
# ideal
===================================================================*/

.animation__text .char {
	opacity: 0;
}

.animated__fade-in {
	opacity: 0;
	transition: opacity 0.3s ease, translate 0.3s ease;
	translate: 0 40px;
}

.animated__fade-in.js-show {
	opacity: 1;
	translate: 0 0;
}

/*===================================================================
# TO-TOP
===================================================================*/

.to-top {
	background-color: #1D2088;
	border-radius: 8px;
	bottom: 40px;
	display: flex;
	height: 50px;
	justify-content: center;
	opacity: 0;
	position: fixed;
	right: 40px;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	width: 50px;
	z-index: 100;
}

.to-top__arrow {
	border-left: 5px solid #fff;
	border-top: 5px solid #fff;
	height: 20px;
	position: absolute;
	rotate: 45deg;
	top: 20px;
	width: 20px;
}

.to-top.is-show {
	opacity: 1;
	visibility: visible;
}

/*===================================================================
# TOP
===================================================================*/

.top {
	padding-bottom: 100px;
	padding-top: 213px;
}

.top__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1190px;
}

.top__contents {
	position: relative;
}

.top__message {
	background-clip: text; /* テキストに背景をクリップ */
	background-image: linear-gradient(70deg, #1D2088 45%, #fff 50%, #1D2088 55%);
	background-size: 500% 100%; /* 背景サイズの設定 */
	color: transparent; /* IDEAL & IDEA */
	font-size: 96px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 43px;
	line-height: 1.7;
	text-align: center;
	-webkit-background-clip: text; /* Safari用の背景クリップ */
	animation: shine 5s infinite; /* 5秒間隔でキラッとさせる */
}

.top__message--ideal { /* 最後の文字のみ letter-spacing を調整 */
}

.top__message--ideal::after {
	content: "L";
	letter-spacing: 0;
}

.top__message--and {
	margin-left: 44px;
}

.top__message--idea {
	display: block;
	letter-spacing: 76px;
	margin-left: 79px;
}

.top__info {
	color: #1D2088;
	font-family: Onest;
	font-size: 22px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.2px;
	margin-left: 133px;
	margin-top: 100px;
}

.top__scroll-down {
	color: #1D2088;
	font-size: 22px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.2px;
	position: absolute; /* スクロールダウンのテキスト */
	right: -29px;
	rotate: 90deg;
	top: 270px;
}

.top__scroll-rectangle {
	background: #1D2088;
	height: 18px;
	position: absolute; /* スクロールバーの四角 */
	right: 36px;
	top: 372px;
	width: 18px;
}

.top__scroll-bar {
	background: #1D2088;
	height: 262px;
	position: absolute; /* スクロールバー */
	right: 44.5px;
	top: 372px;
	width: 1px;
}

/*===================================================================
# PROMISE
===================================================================*/

.promise {
	overflow: hidden;
	padding-bottom: 25px;
	padding-top: 99px;
}

.promise__upper {
	position: relative; /* 上部 */
}

.promise__upper-title {
	color: #1D2088;
	font-size: 81px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 32px;
	position: sticky;
	top: 0;
	z-index: 2;
}

.promise__upper-message-jp {
	color: #1D2088;
	font-size: 25px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.5px;
	line-height: 42px; /* 168% */
	margin-top: 44px;
	position: sticky;
	top: 0;
	z-index: 2;
}

.promise__upper-message-en {
	color: #1D2088;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-left: auto;
	margin-right: 0;
	margin-top: 48px;
	position: sticky;
	top: 0;
	width: 70.3571428571%;
	z-index: 2;
}

.promise__upper-img {
	height: 564px;
	left: 67px;
	position: absolute;
	top: -58px;
	width: 564px; /* 四角のグレー背景 */
	z-index: 1;
}

.promise__lower {
	margin-top: 316px;
}

.promise__lower-title-wrap {
	background: url(../../assets/img/title_bg.png) center center/cover no-repeat;
	height: 124px;
	overflow: hidden;
	position: relative;
}

.promise__lower-title {
	color: #1D2088;
	font-size: 66px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 22.44px;
	line-height: 124px;
	text-align: center;
	z-index: 1;
}

.promise__lower-message {
	color: #1D2088;
	font-size: 25px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.5px;
	margin-top: 39px;
	text-align: center;
}

.promise__lower-group {
	align-items: center;
	display: flex;
	height: 573px;
	justify-content: center;
	margin: 40px auto;
	position: relative;
	width: 682px; /* グループ会社 */
}

.promise__lower-ring {
	left: 50%;
	position: absolute; /* グループを囲む円 */
	top: 50%;
	translate: -50% -50%;
}

.promise__small-rectangle {
	background: #1D2088;
	height: 15px;
	position: absolute;
	right: 183px;
	rotate: 31deg;
	top: 109px;
	width: 15px;
}

.promise__lower-img--emma {
	height: 171px;
	width: 182px; /* 円の中心 EMMAのロゴ */
}

.promise__lower-img--takahashi,
.promise__lower-img--yumanite,
.promise__lower-img--machizukuri,
.promise__lower-img--facilities {
	background-color: #fff;
	border-radius: 50%;
	height: 174px;
	position: absolute;
	width: 174px;
	z-index: 2;
}

.promise__lower-img--takahashi {
	left: 50%;
	top: 0;
	translate: -50%;
}

.promise__lower-img--yumanite {
	right: 0;
	top: 50%;
	translate: 0 -50%;
}

.promise__lower-img--machizukuri {
	bottom: 0;
	left: 50%;
	translate: -50%;
}

.promise__lower-img--facilities {
	left: 0;
	top: 50%;
	translate: 0 -50%;
}

.promise__lower-img-wrap {
	background-color: #fff;
	height: 174px;
	width: 180px;
}

/*===================================================================
# ideal
===================================================================*/

.ideal {
	background: #036EB8;
	padding-top: 94px;
}

.ideal__title {
	color: #FFFFFF;
	display: flex;
}

.ideal__title--en {
	font-size: 81px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 33.21px;
}

.ideal__title--jp {
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 29.4px;
	margin-left: 28px;
}

.ideal__message1 {
	color: #FFF;
	font-size: 25px;
	letter-spacing: 2.5px;
	line-height: 42px;
	margin-top: 36px;
}

.ideal__box-wrap {
	display: flex;
	gap: 75px;
	justify-content: center;
	margin-top: 50px;
}

.ideal__box {
	background: #FFF;
	box-shadow: 10px 10px 30px 0px rgba(0, 0, 0, 0.3);
	flex-shrink: 0;
	height: auto;
	max-width: 443px; /* 白枠のメッセージ */
	padding: 49px 38px 40px;
}

.ideal__box-title {
	color: #1D2088;
	font-size: 29px;
	font-weight: 900;
	letter-spacing: 7.54px;
	line-height: 47px;
}

.ideal__box-text {
	color: #1D2088;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-top: 26px;
	padding: 0 7px;
}

.ideal__lower-section { /* 矢印のあるパート全体 */
}

.ideal__power-batsu {
	left: 50%;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
}

.ideal__before-part {
	opacity: 1;
}

.ideal__message2 {
	color: #FFF;
	font-size: 30px;
	font-weight: 500;
	letter-spacing: 11px;
	margin-top: 124px;
	text-align: center;
}

.ideal__power {
	height: 777px; /* 「個の力 組織の力」*/
	position: relative;
}

.ideal__power-text {
	color: #FFF;
	font-size: 50px;
	font-style: normal;
	font-weight: 500;
	left: 50%;
	letter-spacing: 20px;
	position: absolute;
	top: 50%;
}

.ideal__power-text--left {
	transform: translate(calc(-50% - 160px), -50%);
}

.ideal__power-text--right {
	transform: translate(calc(-50% + 216px), -50%);
}

.ideal__arrow-wrap {
	left: 50%;
	position: absolute; /* 矢印の位置 共通 */
	top: 50%;
}

.ideal__arrow-wrap--upright {
	transform: translate(calc(-50% + 32px), calc(-50% - 32px)); /* 右上 */
}

.ideal__arrow-wrap--lowright {
	transform: translate(calc(-50% + 32px), calc(-50% + 32px)); /* 右下 */
}

.ideal__arrow-wrap--lowleft {
	transform: translate(calc(-50% - 32px), calc(-50% + 32px)); /* 左下 */
}

.ideal__arrow-wrap--upleft {
	transform: translate(calc(-50% - 32px), calc(-50% - 32px)); /* 左上 */
}

.ideal__arrow {
	border-top: 3px solid #fff;
	height: 0;
	position: absolute;
	width: 106px; /* 矢印 共通 */
}

.ideal__arrow::before {
	background-color: #fff;
	content: "";
	height: 3px;
	position: absolute;
	transform: rotate(-135deg); /* 水平に配置 */
	width: 50px;
}

.ideal__arrow::after {
	background-color: #fff;
	content: "";
	height: 50px;
	position: absolute;
	transform: rotate(45deg); /* 垂直に回転 */
	width: 3px;
}

.ideal__arrow-animate {
	animation: stretchLine 2s forwards; /* 2秒で矢印が伸びる */ /* 矢印が伸びるアニメーション */
}

.ideal__arrow--upright {
	left: 0;
	top: 0;
	transform: rotate(-45deg); /* 45度傾ける */ /* 矢印 右上 */
	transform-origin: bottom left; /* 左下を支点にして末端を固定 */
}

.ideal__arrow--upright::before {
	left: 100%; /* 斜め線の終点に配置 */
	top: -3px; /* 水平方向で斜め線の先端に合うように調整 */
	transform-origin: left center; /* 左側を支点にして配置 */
}

.ideal__arrow--upright::after {
	left: 100%; /* 斜め線の終点に配置 */
	top: -3px; /* 垂直方向で斜め線の先端に合うように調整 */
	transform-origin: left top; /* 左上を支点にして配置 */
}

.ideal__arrow--lowright {
	left: 0;
	top: 0;
	transform: rotate(45deg); /* 矢印 右下 */
	transform-origin: top left; /* 左上を支点にして末端を固定 */
}

.ideal__arrow--lowright::before {
	left: 100%;
	top: -3px;
	transform-origin: left center;
}

.ideal__arrow--lowright::after {
	left: 100%;
	top: -3px;
	transform-origin: left top;
}

.ideal__arrow--lowleft {
	right: 0;
	top: 0;
	transform: rotate(-45deg); /* 矢印 左下 */
	transform-origin: top right; /* 右上を支点にして末端を固定 */
}

.ideal__arrow--lowleft::before {
	right: 100%;
	top: -3px;
	transform-origin: right center;
}

.ideal__arrow--lowleft::after {
	bottom: 0px;
	right: 100%;
	transform-origin: right bottom;
}

.ideal__arrow--upleft {
	right: 0;
	top: 0;
	transform: rotate(45deg); /* 矢印 左上 */
	transform-origin: bottom right; /* 右下を支点にして末端を固定 */
}

.ideal__arrow--upleft::before {
	right: 100%;
	top: -3px;
	transform-origin: right center;
}

.ideal__arrow--upleft::after {
	bottom: 0px;
	right: 100%;
	transform-origin: right bottom;
}

.ideal__after-part {
	display: none;
	opacity: 0;
	padding-top: 153px; /* 後から表示されるパート PC用*/
}

.ideal__after-part--sp {
	display: none;
	padding-top: 153px; /* 後から表示されるパート SP用*/
}

.ideal__after-part-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 1190px;
}

.ideal__max {
	display: flex;
	gap: 237px;
	justify-content: space-between;
	margin-left: auto; /* 最大化 リストグループ */
	margin-right: auto;
	position: relative;
}

.ideal__max-contents {
	width: 50%; /* ３つずつのリスト */
}

.ideal__max-contents--right {
	margin-left: 49px; /* 見た目のバランス取る処置 */
}

.ideal__max-contents {
	width: 50%; /* ３つずつのリスト SP用*/
}

.ideal__max-contents--left--sp {
	opacity: 0;
	transform: translateY(20px); /* 少し下に配置 */
}

.ideal__max-contents--right--sp {
	margin-left: 49px; /* 見た目のバランス取る処置 */
	opacity: 0;
	transform: translateY(20px); /* 少し下に配置 */
}

.ideal__max-content {
	margin-bottom: 100px; /* 各項目 */
}

.ideal__max-content:nth-of-type(3),
.ideal__max-content:last-of-type {
	margin-bottom: 0;
}

.ideal__max-content-title-wrap {
	align-items: center;
	display: flex;
	gap: 18px;
}

.ideal__max-content-rectangle {
	background: #1D2088;
	height: 29px;
	width: 29px; /* タイトル 左の四角 */
}

.ideal__max-content-title {
	color: #FFF; /* 最大化 タイトル */
	font-size: 34px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 13.6px;
}

.ideal__max-content-text {
	color: #FFF; /* 最大化 テキスト */
	font-size: 23px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.3px;
	margin-left: 47px;
	margin-top: 7px;
}

/*===================================================================
# idea
===================================================================*/

.idea {
	background: url(../../assets/img/idea_bg.png) center center/cover no-repeat;
	padding-bottom: 181px;
	padding-top: 92px;
}

.idea__upper-title {
	color: #1D2088;
	display: flex;
	overflow: hidden;
}

.idea__upper-title--en {
	font-size: 81px;
	font-weight: 900;
	letter-spacing: 33.21px;
}

.idea__upper-title--jp {
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 29.4px;
	margin-right: 35px;
}

.idea__upper-message {
	color: #1D2088;
	font-size: 25px;
	font-weight: 500;
	letter-spacing: 2.5px;
	line-height: 42px; /* 168% */
	margin-top: 36px;
}

.idea__box-wrap {
	display: flex;
	gap: 75px;
	justify-content: center;
	margin-top: 49px;
}

.idea__box {
	background: #FFF;
	box-shadow: 10px 10px 30px 0px rgba(0, 0, 0, 0.3);
	flex-shrink: 0;
	height: auto;
	max-width: 442px;
	padding: 49px 39px 99px;
}

.idea__box-title {
	color: #1D2088;
	font-size: 29px;
	font-weight: 900;
	letter-spacing: 11.6px;
	line-height: 47px;
}

.idea__box-text {
	color: #1D2088;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-top: 26px;
}

.idea__lower {
	margin-top: 205px; /* 下部（グループ） */
	position: relative;
}

.idea__lower-title {
	color: #1D2088;
	font-size: 82px;
	font-weight: 900;
	height: auto;
	left: -332px;
	letter-spacing: 33.62px;
	position: absolute;
	rotate: 90deg;
	text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
	top: 257px;
	width: 950px;
	z-index: 0;
}

.idea__lower-title--second {
	display: block;
	text-align: right;
}

.idea__lower-contents {
	margin-left: 366px;
	z-index: 1;
}

.idea__lower-content {
	display: flex; /* グループの紹介 */
	gap: 37px;
	margin-bottom: 35px;
}

.idea__lower-content:last-of-type {
	margin-bottom: 0;
}

.idea__lower-content-img {
	background-color: #fff;
	box-shadow: 10px 10px 18px 0px rgba(0, 0, 0, 0.18);
	max-height: 210px;
	max-width: 210px;
}

.idea__lower-content-img img {
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
	height: auto;
	width: 100%;
}

.idea__lower-content-title {
	color: #1D2088;
	font-size: 25px;
	font-weight: 700;
	letter-spacing: 2.5px;
	line-height: 42px; /* 168% */
	margin-top: 22px;
	text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
}

.idea__lower-content-text {
	color: #1D2088;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-top: 8px;
	text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
}

/*===================================================================
# REALIZE
===================================================================*/

.realize {
	padding-bottom: 91px;
	padding-top: 90px;
}

.realize__title {
	color: #1D2088;
	font-size: 81px;
	font-weight: 900;
	letter-spacing: 33.21px;
	margin-bottom: 33px;
	text-align: center;
}

.realize__text1 {
	color: #1D2088;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 29.4px;
	margin-bottom: 39px;
	text-align: center;
}

.realize__text2 {
	color: #1D2088;
	font-size: 25px;
	font-weight: 500;
	letter-spacing: 2.4px;
	line-height: 42px; /* 168% */
	margin: 0 auto 65px;
}

.realize__circle {
	height: 611px;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
	width: 611px;
}

.realize__circle-ring {
	background: conic-gradient(#00A0E9 0deg, #0054A7 90deg, #161573 180deg, #8FD3F5 266.4deg, #00A0E9 360deg);
	border-radius: 50%;
	height: 525px;
	left: 50%;
	position: absolute; /* 大きな円 */
	top: 50%;
	translate: -50% -50%;
	width: 525px;
	z-index: 1;
}

.realize__circle-ring::after {
	background: #fff;
	border-radius: 50%;
	bottom: 4px;
	content: "";
	left: 4px;
	position: absolute;
	right: 4px;
	top: 4px;
}

.realize__logo {
	height: 89px;
	left: 50%;
	position: absolute; /* EMMAのロゴ */
	top: 234px;
	translate: -50%;
	width: 288px;
	z-index: 2;
}

.realize__circle-text {
	color: #1D2088; /* バックオフィス業務 */
	font-size: 25px;
	font-weight: 700;
	left: 50%;
	letter-spacing: 2.5px;
	line-height: 42px; /* 168% */
	position: absolute;
	top: 350px;
	translate: -50%;
	z-index: 2;
}

.realize__circle-work {
	align-items: center;
	border-radius: 50%;
	color: #FFF;
	display: flex;
	font-family: Inter;
	font-size: 24px;
	height: 86px;
	justify-content: center;
	letter-spacing: 4.8px;
	position: absolute; /* 業務の小さな円 */
	transform: translate(-50%, -50%);
	width: 86px;
	z-index: 2;
}

.realize__circle-work--1 {
	background-color: #00A0E9; /* 各業務の背景色を指定 */
}

.realize__circle-work--2 {
	background-color: #007BC7;
	letter-spacing: 4.4px;
	line-height: 25px; /* 113.636% */
}

.realize__circle-work--3 {
	background-color: #0054A7;
	letter-spacing: 4.4px;
	line-height: 25px; /* 113.636% */
}

.realize__circle-work--4 {
	background-color: #0B318F;
	letter-spacing: 4.4px;
	line-height: 25px; /* 113.636% */
}

.realize__circle-work--5 {
	background-color: #161573;
}

.realize__circle-work--6 {
	background-color: #0068B7;
}

.realize__circle-work--7 {
	background-color: #0086D1;
}

.realize__circle-work--8 {
	background-color: #8FD3F5;
}

.realize__circle-work--9 {
	background-color: #37BEF0;
}

.realize__boxes {
	display: flex; /* 下のボックス */
	gap: 48px;
	margin-top: 63px;
}

.realize__box {
	background: url(../../assets/img/rectangle.png) center center/cover no-repeat;
	box-shadow: 10px 10px 18px 0px rgba(0, 0, 0, 0.18);
	height: 341px;
	padding: 38px 39px 38px;
	width: calc(100% - 32px);
}

.realize__box-title-wrap {
	position: relative;
}

.realize__box-title {
	color: #1D2088;
	font-size: 25px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2.5px;
	line-height: 42px; /* 168% */
}

.realize__box-line,
.realize__box-rectangle {
	background-color: #1D2088;
	bottom: 4px;
	content: "";
	position: absolute;
}

.realize__box-line {
	height: 1px;
	left: 0;
	width: 167px;
}

.realize__box-rectangle {
	height: 18px;
	left: 149px;
	width: 18px;
}

.realize__box-text {
	color: #1D2088;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-top: 8px;
}

.realize__box-img {
	margin-left: auto;
	margin-right: auto;
}

.realize__box-img--1 {
	height: 110px;
	margin-top: -4px;
	width: 91px; /* 逆方向に歩いている男女の画像 */
}

.realize__box-img--2 {
	height: 81px;
	margin-top: 11px;
	width: 98px; /* 拡声器の画像 */
}

.realize__box-img--3 {
	height: 58px;
	margin-top: 24px;
	width: 119px; /* SDGsのロゴ画像 */
}

.realize__line {
	display: flex;
	margin: 112px auto 0;
	max-width: 1280px; /* 次のセクションとの区切りのグラデーション */
	width: 100%;
}

.realize__line-rectangle {
	background-color: #036EB8;
	height: 94px;
	margin-left: 212px;
	width: 94px;
}

.realize__line-gradation {
	background: linear-gradient(90deg, rgba(3, 110, 184, 0) 0%, #036EB8 68.5%);
	flex-grow: 1;
	height: 94px;
}

/*===================================================================
# message
===================================================================*/

.message {
	padding-bottom: 68px;
}

.message__title {
	color: #1D2088;
	font-weight: 500;
}

.message__title--en {
	font-size: 70px;
	letter-spacing: 28.7px;
}

.message__title--jp {
	font-size: 42px;
	letter-spacing: 29.4px;
}

.message__contents {
	display: flex;
	gap: 54px;
	justify-content: center;
	margin-top: 72px;
}

.message__content {
	max-width: 544px;
}

.message__text {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 1.5px;
	line-height: 40px; /* 200% */
}

.message__text--strong {
	font-weight: 700;
}

.message__name {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 40px; /* 200% */
	margin-top: 7px;
	text-align: right;
}

.message__separator {
	margin: 142px auto 0;
	max-width: 1190px; /* 次のセクションとの区切り */
	position: relative;
}

.message__separator-rectangle {
	background-color: #1D2088;
	height: 18px;
	left: 0;
	position: absolute;
	top: -9px;
	width: 18px;
}

.message__separator-line {
	background: #1D2088;
	height: 1px;
	width: 100%;
}

/*===================================================================
# profile
===================================================================*/

.profile {
	padding-bottom: 88px;
}

.profile__title {
	color: #1D2088;
	font-size: 42px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 29.4px;
}

.profile__contents {
	align-items: center;
	display: flex;
	gap: 100px;
	margin: 70px auto;
}

.profile__content-img {
	height: 163px;
	width: 173px; /* EMMA ロゴ */
}

.profile__item {
	color: #1D2088;
	display: flex;
	font-family: Onest;
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	gap: 56px;
	letter-spacing: 1.6px;
	line-height: 1;
}

.profile__item-margin {
	line-height: 1.4; /* 事業内容の余白調整 */
	margin-bottom: 10px;
}

.profile__item-left {
	display: block;
	position: relative;
	text-align: justify;
	width: 112px;
}

.profile__item-left::after {
	content: "";
	display: inline-block;
	height: 0;
	width: 100%;
}

.profile__item-right {
	display: block;
}

/*===================================================================
# recruit
===================================================================*/

.recruit {
	background: #036EB8;
	color: #FFFFFF;
	overflow: hidden;
	padding-bottom: 90px;
	padding-top: 91px;
}

.recruit__title--en {
	font-size: 81px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 33.21px;
}

.recruit__title--jp {
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 29.4px;
	margin-left: 28px;
}

.recruit__details {
	margin: 75px auto 0;
	max-width: 850px;
}

.recruit__summary {
	cursor: pointer;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: 17.22px;
	list-style: none;
	position: relative;
}

.recruit__summary::before,
.recruit__summary::after {
	background-color: #fff;
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.4s ease;
}

.recruit__summary::before {
	height: 4px;
	right: 0;
	width: 40px; /* 横棒 */
}

.recruit__summary::after {
	height: 40px;
	right: 18px;
	width: 4px; /* 縦棒 */
}

.recruit__summary.active::after {
	transform: translateY(-50%) rotate(90deg); /* アクティブ時は縦線を横棒に重ねる */
}

.recruit__summary::marker {
	display: none;
}

.recruit__contents-wrap {
	margin-top: 58px;
}

.recruit__contents {
	margin-top: 57px;
}

.recruit__content {
	display: flex;
	gap: 80px;
}

.recruit__content--job {
	align-items: center; /* 職種のみタイトルと縦中央揃え */
}

.recruit__content-title {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 8.2px;
	text-align: right; /* 要項内の各タイトル */
	white-space: nowrap;
	width: 210px;
}

.recruit__content-text {
	font-weight: 500; /* 各タイトルに対する詳細 */
	line-height: 40px; /* 250% */
	max-width: 560px;
}

.recruit__content-text--job {
	font-size: 20px; /* 職種のみ20px */
}

.recruit__line {
	background-color: #fff;
	height: 1px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 36px;
	max-width: 850px;
}

.js-details[open] .recruit__contents-wrap {
	height: auto;
}

summary::-webkit-details-marker {
	display: none; /* デフォルトの三角形アイコンを非表示にする */
}

/*===================================================================
# group
===================================================================*/

.group {
	padding-bottom: 72px;
	padding-top: 90px;
}

.group__inner {
	margin: 0 auto;
	max-width: 1190px;
}

.group__title {
	color: #1D2088;
	font-size: 70px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 28.7px;
	margin-left: 56px;
}

.group__contents {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	row-gap: 50px;
	justify-content: center;
}

.group__content {
	padding-bottom: 17px;
	width: 50%;
}

.group__content-img {
	height: 210px;
	margin: 10px auto 0;
	width: 210px;
}

.group__content-name {
	color: #1D2088; /* 企業名 */
	font-size: 25px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-align: center;
}

.group__profile {
	margin: 15px auto 0;
	max-width: 422px;
}

.group__profile-items {
	color: #1D2088;
	display: flex;
	font-style: normal;
	font-weight: 500;
	gap: 12px;
	letter-spacing: 1.6px;
	line-height: 22px;
	text-align: justify;
}

.group__profile-item--left {
	position: relative;
	width: 93px;
}

.group__profile-item--left::after {
	content: "";
	display: inline-block;
	height: 0;
	width: 100%;
}

.group__profile-item--right {
	width: calc(100% - 105px);
}

.group__content-detail {
	color: #1D2088;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 29px; /* 181.25% */
	margin-left: auto;
	margin-right: auto;
	margin-top: 15px;
	max-width: 422px;
	text-align: justify;
}

.group__content {
	&.autenticool {
		margin-top: 4rem;
			@media screen and (max-width: 767px) {
				margin-top: 1rem;
			}
		.group__content-img {
			height: 145px;
			margin: 10px auto 40px;
			width: 145px;
			@media screen and (max-width: 767px) {
			height: 90px;
			margin: 8px auto 20px;
			width: 90px;
			}
		}
	}
}

.group__separator {
	position: relative; /* 次のセクションとの区切り */
}

.group__separator-rectangle {
	background-color: #1D2088;
	height: 18px;
	left: 0;
	position: absolute; /* 横区切り線を横断する四角 */
	top: 39rem;
	translate: 0 -50%;
	width: 18px;
}

.group__separator-horizontal {
	background: #1D2088;
	height: 1px;
	left: 0;
	position: absolute; /* 横の区切り線 */
	top: 39rem;
	translate: 0 -50%;
	width: 100%;
	@media screen and (min-width: 768px) and (max-width: 1023px) {
		/* top:42rem; */
		display:none;

	}
}
.group__separator-horizontal2 {
		background: #1D2088;
		height: 1px;
		left: 0;
		position: absolute; /* 横の区切り線 */
		translate: 0 -50%;
		width: 100%;
		top: 78rem;
		@media screen and (min-width: 768px) and (max-width: 1023px) {
		/* top:calc(84rem - 7px); */
		display:none;
	}
	}

.group__separator-vertical {
    background: #1D2088;
    height: 75rem;
    left: 50%;
    position: absolute;
    top: 50%;
    translate: -50% -50%;
    width: 1px;
    margin-top: calc(-13rem - 6px);
}

.group__separator-wrap--sp {
	display: none;
}

.group__separator--sp {
	position: relative; /* sp 次のセクションとの区切り */
}

.group__separator-rectangle--sp {
	background-color: #1D2088;
	height: 11px;
	position: absolute; /* sp バーの線上を上下する四角 */
	right: 3px;
	top: -4px;
	width: 11px;
}

.group__separator-vertical--sp {
	background: #1D2088;
	height: 100%;
	position: absolute; /* sp 縦バー */
	right: 8px;
	top: -4px;
	width: 1px;
}

/*===================================================================
# Contact
===================================================================*/

.contact {
	background-color: #1D2088;
	padding-bottom: 100px;
	padding-top: 100px;
}

.contact__inner {
	background-color: #fff;
	box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
	cursor: default;
	margin-left: auto;
	margin-right: auto;
	max-width: 910px;
	padding: 90px 80px 85px;
	position: relative;
}

.contact__title {
	color: #1D2088;
	font-size: 81px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 32.4px;
}

.contact__message {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 42px; /* 210% */
	margin-top: 19px;
}

.contact__policy-link {
	cursor: pointer;
	position: relative;
}

.contact__policy-link::after {
	background-color: #1D2088;
	bottom: 2px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	width: 100%;
}

.contact__policy {
	margin-top: 44px;
}

.contact__policy-title {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 32px; /* 160% */
	margin-bottom: 24px;
}

.contact__policy-item {
	margin-bottom: 32px;
}

.contact__policy-item:last-of-type {
	margin-bottom: 0;
}

.contact__policy-main-text,
.contact__policy-sub-text {
	color: #1D2088;
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 1.8px;
	line-height: 32px; /* 177.778% */
	margin-left: 30px;
}

.contact__policy-main-text {
	position: relative;
}

.contact__policy-main-text::before {
	color: #036EB8;
	content: "●";
	font-size: 18px;
	font-style: normal;
	font-weight: 700;
	left: -29px;
	letter-spacing: 1.8px;
	line-height: 32px; /* 177.778% */
	position: absolute;
	top: 0;
}

.contact__policy-sub-text--small { /* sp時のフォントサイズ */
}

.contact__policy-signature {
	color: #1D2088; /* ポリシーの署名 */
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 1.8px;
	line-height: 32px; /* 177.778% */
	margin-top: 13px;
	text-align: right;
}

.contact__container {
	margin-top: 60px; /* フォームを囲むコンテナ */
}

.contact__modal {
	cursor: pointer;
	height: 100%;
	left: 0;
	opacity: 0; /* モーダルのベーススタイル */
	overflow: scroll;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: opacity 0.3s ease;
	width: 100%;
	z-index: 1000;
}

.contact__modal.active {
	opacity: 1;
	pointer-events: all; /* 表示時はクリック可能 */
}

.contact__modal-content {
	height: 100%;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.contact__modal-close {
	background: url(../../assets/img/contact_batsu.svg) center center/contain no-repeat;
	background-color: #1D2088;
	border-radius: 20px;
	cursor: pointer;
	height: 66px;
	position: absolute; /* 閉じる バツボタン */
	right: -85px;
	top: -14px;
	width: 66px;
}

.contact__scroll-control {
	overflow: hidden; /* モーダル表示時にサイト自体のスクロールをコントロールする */
}

.contact__form-item {
	align-items: center;
	display: flex; /* ラベルとインプットボックスの外枠 */
	gap: 45px;
	margin-bottom: 50px;
}

.contact__form-item:nth-of-type(6) {
	margin-bottom: 0;
}

.contact__form-label {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 2px;
	text-align: right;
	width: 26.6666666667%; /* インプットボックスのラベル */
}

.contact__required {
	color: #ED6A02; /* 必須 */
	font-weight: 700;
}

.contact__form-input {
	background-color: #FFF;
	border: 2px solid #1D2088;
	color: rgba(29, 32, 136, 0.5);
	font-size: 20px;
	font-weight: 900;
	height: 66px;
	letter-spacing: 2px;
	padding-left: 25px;
	width: 67.3333333333%; /* インプットボックス */
}

.contact__form-input:focus {
	border-color: #ED6A02;
	outline: none;
}

.contact__form-textarea {
	padding-top: 17px;
}

.contact__form-input::-moz-placeholder,
.contact__form-textarea::-moz-placeholder {
	color: rgba(29, 32, 136, 0.5);
	font-size: 20px;
	font-weight: 900;
	letter-spacing: 2px;
}

.contact__form-input::placeholder,
.contact__form-textarea::placeholder {
	color: rgba(29, 32, 136, 0.5);
	font-size: 20px;
	font-weight: 900;
	letter-spacing: 2px;
}

.contact__btn {
	align-items: center;
	background: #036EB8;
	border-radius: 50px;
	box-shadow: 4px 4px 9px 0px rgba(0, 0, 0, 0.25);
	color: #FFF;
	display: flex;
	font-size: 28px;
	font-style: normal;
	font-weight: 900;
	height: 101px;
	justify-content: center;
	letter-spacing: 2.8px;
	margin: 0 auto; /* 送信ボタン */
	margin-top: 93px;
	transition: all 0.3s;
	width: 306px;
}

.contact__btn:hover {
	background-color: #ED6A02;
}

.contact__btn:focus {
	outline: 2px solid #ED6A02;
}

/*===================================================================
# PRIVACY POLICY
===================================================================*/

.policy {
	padding-bottom: 88px;
	padding-top: 231px;
}

.policy__title {
	color: #1D2088;
	font-style: normal;
}

.policy__title--en {
	font-size: 81px;
	font-weight: 900;
	letter-spacing: 33.21px;
}

.policy__title--jp {
	font-size: 33px;
	font-weight: 500;
	letter-spacing: 23.1px;
	margin-left: 111px;
}

.policy__sub-title {
	color: #1D2088;
	font-size: 22px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: 9.02px;
	margin-left: auto;
	margin-right: auto;
	max-width: 850px;
	padding-top: 73px;
}

.policy__separator {
	background-color: #1D2088;
	height: 1px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 58px;
	max-width: 850px;
	width: 100%;
}

.policy__message {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px; /* 200% */
	margin-left: auto;
	margin-right: auto;
	margin-top: 53px;
	max-width: 815px;
}

.policy__lists {
	margin-left: auto;
	margin-right: auto;
	margin-top: 32px;
	max-width: 815px;
}

.policy__list {
	display: flex;
	margin-bottom: 32px;
	margin-left: 45px;
}

.policy__list:last-of-type {
	margin-bottom: 0;
}

.policy__list-symbol {
	color: #1D2088; /* 条項の記号 */
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px; /* 200% */
}

.policy__list-text {
	color: #1D2088;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px; /* 200% */
}

.policy__signature {
	color: #1D2088; /* 署名 */
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px; /* 200% */
	margin-left: auto;
	margin-right: auto;
	margin-top: 32px;
	max-width: 850px;
	text-align: right;
}

/*===================================================================
# レスポンシブ対応 表示・非表示
===================================================================*/

.show-sp {
	display: none; /* sp時に表示 */
}

.show-pc {
	display: block; /* pc時に表示 */
}

.br-sp {
	display: none; /* sp時は改行 */
}

.br-pc {
	display: block; /* pc時は改行 */
}

.br-tab {
	display: none; /* tab時は改行 */
}

@media screen and (min-width: 768px) and (max-width: 1023px) {

.header__inner {
	margin-left: 20px;
	margin-right: 20px;
}

.header__list {
	margin-right: 20px;
}

.header__list:nth-of-type(4) {
	margin-right: 20px;
}

.inner {
	margin-left: 20px;
	margin-right: 20px;
}

.promise__lower-title {
	font-size: 42px;
}

.promise__lower-message {
	text-align: left;
}

.ideal__box-wrap {
	gap: 25px;
}

.ideal__box {
	max-width: 330px;
}

.ideal__lower-section {
	margin-left: 20px;
	margin-right: 20px;
}

.ideal__message2 {
	text-align: left;
}

.ideal__after-part {
	padding-top: 120px;
}

.ideal__max {
	gap: 50px;
}

.ideal__max-content-rectangle {
	height: 20px;
	width: 20px;
}

.ideal__max-content-title {
	font-size: 26px;
}

.idea {
	padding-bottom: 740px;
}

.idea__box-wrap {
	gap: 25px;
}

.idea__box {
	max-width: 330px;
}

.idea__lower {
	margin-top: 50px;
}

.idea__lower-title {
	margin-left: 260px;
	position: sticky;
	top: 0;
	transform-origin: left top;
}

.idea__lower-contents {
	margin-left: 30px;
	margin-top: 725px;
}

.realize__text1 {
	font-size: 32px;
}

.realize__text2 {
	font-size: 22px;
}

.realize__boxes {
	gap: 20px;
}

.realize__box {
	height: auto;
}

.message__title--jp {
	display: block;
}

.message__contents {
	align-items: center;
	flex-direction: column;
	gap: 0;
}

.message__separator {
	margin-left: 20px;
	margin-right: 20px;
}

.recruit__title--jp {
	display: block;
}

.group__inner {
	margin-left: 20px;
	margin-right: 20px;
}

.group__contents {
	justify-content: space-between;
}

.group__content {
	width: calc(50% - 40px);
}

.group__content:nth-of-type(odd) {
	margin-right: 40px;
}

.br-tab {
	display: block;
}

}

@media screen and (min-width: 1024px) and (max-width: 1189px) {

.header__inner {
	margin-left: 30px;
	margin-right: 30px;
}

.inner {
	margin-left: 30px;
	margin-right: 30px;
}

.promise__lower-message {
	font-size: 22px;
}

.ideal__lower-section {
	margin-left: 30px;
	margin-right: 30px;
}

.ideal__message2 {
	font-size: 22px;
}

.ideal__max {
	gap: 150px;
}

.idea__box {
	padding-left: 30px;
	padding-right: 30px;
}

.realize__box {
	height: auto;
}

.message__separator {
	margin-left: 30px;
	margin-right: 30px;
}

.group__inner {
	margin-left: 30px;
	margin-right: 30px;
}

}

@media screen and (max-width: 767px) {

body {
	line-height: 1.3;
}

.header {
	height: 80px;
	padding-bottom: 10px;
	padding-top: 10px;
}

.header__inner {
	margin-left: 20px;
	margin-right: 20px;
}

.header__contents {
	align-items: center;
}

.header__logo {
	height: 60px;
	width: 64px;
}

.header__nav {
	display: none;
}

.footer {
	padding-bottom: 12px;
	padding-top: 9px;
}

.footer__lists {
	gap: 35px;
}

.footer__link {
	font-size: 12px;
	letter-spacing: 3.28px;
}

.footer__link--office::after {
	height: 12px;
	right: -16px;
}

.footer__text {
	font-size: 11px;
	letter-spacing: 2px;
	line-height: 13px;
	margin-top: 0px;
}

.inner {
	margin-left: 20px;
	margin-right: 20px;
}

.drawer {
	display: block;
}

.to-top {
	bottom: 20px;
	height: 30px;
	right: 20px;
	width: 30px;
}

.to-top__arrow {
	border-left: 3px solid #fff;
	border-top: 3px solid #fff;
	height: 12px;
	top: 12px;
	width: 12px;
}

.top {
	padding-bottom: 77px;
	padding-top: 152px;
}

.top__message {
	font-size: 40px;
	letter-spacing: 28px;
	line-height: 2.1;
}

.top__message--and {
	margin-left: 26px;
}

.top__message--idea {
	letter-spacing: 45px;
	margin-left: 43px;
}

.top__info {
	font-size: 12px;
	letter-spacing: 1.2px;
	margin-left: 49px;
	margin-top: 66px;
}

.top__scroll-down {
	font-size: 12px;
	letter-spacing: 1.2px;
	right: -11px;
	top: 280px;
}

.top__scroll-rectangle {
	height: 10px;
	right: 23px;
	top: 335px;
	width: 10px;
}

.top__scroll-bar {
	height: 140px;
	right: 28.5px;
	top: 335px;
}

.promise {
	padding-top: 54px;
}

.promise__upper-title {
	font-size: 41px;
	letter-spacing: 15px;
	line-height: 1.3;
}

.promise__upper-message-jp {
	font-size: 13px;
	letter-spacing: 1.3px;
	line-height: 22px;
	margin-top: 26px;
	width: 80%;
}

.promise__upper-message-en {
	font-size: 10px;
	letter-spacing: 0.8px;
	line-height: 15px;
	margin-top: 24px;
}

.promise__upper-img {
	height: 301px;
	top: -20px;
	width: 301px;
}

.promise__lower {
	margin-top: 95px;
}

.promise__lower-title-wrap {
	height: 89px;
}

.promise__lower-title {
	font-size: 24px;
	letter-spacing: 7px;
	line-height: 89px;
}

.promise__lower-message {
	font-size: 13px;
	letter-spacing: 1.3px;
	line-height: 20px;
	margin-top: 24px;
}

.promise__lower-group {
	height: 200px;
	margin-bottom: 68px;
	margin-top: 62px;
	padding-left: 20px;
	padding-right: 20px;
	width: 270px;
}

.promise__lower-ring {
	height: 210px;
	width: 280px;
}

.promise__small-rectangle {
	height: 8px;
	width: 8px;
}

.promise__lower-img--emma {
	height: 88px;
	width: 96px;
}

.promise__lower-img--takahashi,
.promise__lower-img--yumanite,
.promise__lower-img--machizukuri,
.promise__lower-img--facilities {
	height: 89px;
	width: 89px;
}

.promise__lower-img--takahashi {
	top: -38px;
}

.promise__lower-img--yumanite {
	right: -30px;
}

.promise__lower-img--machizukuri {
	bottom: -49px;
}

.promise__lower-img--facilities {
	left: -30px;
}

.ideal {
	padding-top: 51px;
}

.ideal__title {
	flex-direction: column;
	gap: 2px;
}

.ideal__title--en {
	font-size: 43px;
	letter-spacing: 17.63px;
}

.ideal__title--jp {
	font-size: 22px;
	letter-spacing: 15.4px;
	margin-left: 0;
	margin-top: 25px;
}

.ideal__message1 {
	font-size: 13px;
	letter-spacing: 1.3px;
	line-height: 22px;
	margin-top: 20px;
}

.ideal__box-wrap {
	flex-direction: column;
	gap: 40px;
	margin-top: 25px;
}

.ideal__box {
	height: auto;
	margin-left: auto;
	margin-right: auto;
	padding: 27px 24px 25px;
	width: 77.6119402985%;
}

.ideal__box-title {
	font-size: 15px;
	letter-spacing: 6px;
	line-height: 25px;
}

.ideal__box-text {
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 15.49px;
	margin-top: 15px;
	padding: 0;
}

.ideal__lower-section {
	margin-left: 10px;
	margin-right: 10px;
}

.ideal__power-batsu {
	height: 23px;
	top: 104px;
	translate: -50%;
	width: 23px;
}

.ideal__message2 {
	font-size: 15px;
	letter-spacing: 3px;
	line-height: 26px;
	margin-top: 137px;
}

.ideal__power {
	height: 547px;
}

.ideal__power-text {
	font-size: 22px;
	letter-spacing: 8px;
}

.ideal__power-text--left {
	top: 102px;
	transform: translate(calc(-50% - 73px));
}

.ideal__power-text--right {
	top: 102px;
	transform: translate(calc(-50% + 92px));
}

.ideal__arrow-wrap--upright {
	top: 95px;
	transform: translate(calc(-50% + 20px));
}

.ideal__arrow-wrap--lowright {
	top: 132px;
	transform: translate(calc(-50% + 20px));
}

.ideal__arrow-wrap--lowleft {
	top: 132px;
	transform: translate(calc(-50% - 20px));
}

.ideal__arrow-wrap--upleft {
	top: 95px;
	transform: translate(calc(-50% - 20px));
}

.ideal__arrow {
	opacity: 1;
	width: 39px;
}

.ideal__arrow::before {
	width: 20px;
}

.ideal__arrow::after {
	height: 20px;
}

.ideal__after-part {
	padding-top: 76px;
}

.ideal__after-part--sp {
	display: block;
	padding-top: 56px;
}

.ideal__max {
	gap: 0;
}

.ideal__max-contents--left--sp {
	width: 50%;
}

.ideal__max-contents--right--sp {
	margin-left: auto;
	margin-right: 0;
	margin-top: 158px;
	width: 42.6666666667%;
}

.ideal__max-content {
	margin-bottom: 20px;
}

.ideal__max-content-title-wrap {
	gap: 6px;
}

.ideal__max-content-rectangle {
	height: 15px;
	width: 15px;
}

.ideal__max-content-title {
	font-size: 15px;
	letter-spacing: 4px;
}

.ideal__max-content-text {
	font-size: 13px;
	letter-spacing: 1.3px;
	margin-left: 20px;
}

.idea {
	padding-bottom: 220px;
	padding-top: 52px;
}

.idea__upper-title--en {
	font-size: 43px;
	letter-spacing: 17.63px;
	margin-bottom: 30px;
}

.idea__upper-title--jp {
	font-size: 22px;
	letter-spacing: 15px;
	margin-right: 0;
}

.idea__upper-message {
	font-size: 13px;
	letter-spacing: 1.3px;
	line-height: 22px;
	margin-top: 20px;
}

.idea__box-wrap {
	flex-direction: column;
	gap: 40px;
	margin-top: 26px;
}

.idea__box {
	display: flex;
	flex-direction: column;
	height: 240px;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	padding: 0 25px;
	width: 71.6417910448%;
}

.idea__box-title {
	font-size: 15px;
	letter-spacing: 6px;
	line-height: 25px;
}

.idea__box-text {
	font-size: 11px;
	letter-spacing: 1.1px;
	line-height: 15.49px;
	margin-top: 14px;
}

.idea__lower {
	margin-top: 55px;
	width: 100%;
}

.idea__lower-title {
	font-size: 34px;
	letter-spacing: 13.94px;
	line-height: 46px;
	margin-left: 128px;
	position: sticky;
	top: calc(50% - 143px);
	transform-origin: left top;
	width: 310px;
}

.idea__lower-title--second {
	text-align: center;
}

.idea__lower-contents {
	margin-left: 0;
	margin-top: 361px;
}

.idea__lower-content {
	gap: 22px;
}

.idea__lower-content-img {
	height: 112px;
	width: 112px;
}

.idea__lower-content-title {
	font-size: 15px;
	letter-spacing: 1.5px;
	line-height: 19px;
	margin-top: 0;
}

.idea__lower-content-text {
	font-size: 12px;
	letter-spacing: 1.1px;
	line-height: 17px;
}

.realize {
	padding-bottom: 41px;
}

.realize__title {
	font-size: 29px;
	letter-spacing: 6px;
}

.realize__text1 {
	font-size: 20px;
	letter-spacing: 5px;
}

.realize__text2 {
	font-size: 13px;
	letter-spacing: 1.3px;
	line-height: 22px;
	margin-bottom: 30px;
}

.realize__circle {
	height: 285px;
	width: 285px;
}

.realize__circle-ring {
	height: 225px;
	left: 49%;
	width: 225px;
}

.realize__circle-ring::after {
	bottom: 2px;
	left: 2px;
	right: 2px;
	top: 2px;
}

.realize__logo {
	height: 47px;
	top: 107px;
	width: 155px;
}

.realize__circle-text {
	font-size: 13px;
	letter-spacing: 1.335px;
	line-height: 22px;
	top: 168px;
}

.realize__circle-work {
	font-size: 12px;
	height: 46px;
	letter-spacing: 2.35px;
	line-height: 13px;
	width: 46px;
}

.realize__boxes {
	flex-direction: column;
	gap: 31px;
	margin-top: 46px;
}

.realize__box {
	height: 221px;
	margin-left: auto;
	margin-right: auto;
	padding: 23px 20px 0;
	width: 221px;
}

.realize__box-title {
	font-size: 16px;
	letter-spacing: 4.6px;
	line-height: 27px;
}

.realize__box-line {
	width: 108px;
}

.realize__box-rectangle {
	height: 12px;
	left: 96px;
	width: 12px;
}

.realize__box-text {
	font-size: 12px;
	letter-spacing: 1.1px;
	line-height: 18px;
	margin-top: 5px;
}

.realize__box-img--1 {
	height: 71px;
	margin-top: 5px;
	width: 59px;
}

.realize__box-img--2 {
	height: 53px;
	margin-top: 10px;
	width: 64px;
}

.realize__box-img--3 {
	height: 38px;
	margin-top: 5px;
	width: 77px;
}

.realize__line {
	margin-top: 98px;
}

.realize__line-rectangle {
	height: 47px;
	margin-left: 72px;
	width: 47px;
}

.realize__line-gradation {
	height: 47px;
}

.message {
	padding-bottom: 43px;
}

.message__title--en {
	font-size: 37px;
	letter-spacing: 15.17px;
}

.message__title--jp {
	display: block;
	font-size: 23px;
	letter-spacing: 16.1px;
	margin-top: 27px;
}

.message__contents {
	flex-direction: column;
	gap: 0;
	margin-left: 25px;
	margin-right: 10px;
	margin-top: 39px;
}

.message__text {
	font-size: 12px;
	letter-spacing: 1.1px;
	line-height: 21px;
}

.message__name {
	font-size: 12px;
}

.message__separator {
	margin-top: 35px;
}

.message__separator-rectangle {
	height: 8px;
	margin-left: 20px;
	top: -3.5px;
	width: 8px;
}

.message__separator-line {
	margin-left: 20px;
	width: calc(100% - 20px);
}

.profile {
	padding-bottom: 40px;
}

.profile__title {
	font-size: 23px;
	letter-spacing: 16.1px;
	margin-left: 20px;
}

.profile__contents {
	flex-direction: column;
	gap: 32px;
	margin-bottom: 0;
	margin-top: 36px;
}

.profile__content-img {
	height: 87px;
	width: 92px;
}

.profile__item {
	font-size: 11px;
	gap: 28px;
}

.profile__item-left {
	width: 80px;
	-moz-text-align-last: justify;
	text-align-last: justify;
}

.profile__item-right {
	flex: 1;
}

.recruit {
	padding-bottom: 98px;
}

.recruit {
	padding-top: 51px;
}

.recruit__title--en {
	font-size: 43px;
	letter-spacing: 15.5px;
}

.recruit__title--jp {
	display: block;
	font-size: 22px;
	letter-spacing: 15.4px;
	margin-left: 0;
	margin-top: 20px;
}

.recruit__details {
	margin-top: 38px;
	max-width: 100%;
}

.recruit__summary {
	font-size: 18px;
	letter-spacing: 7.46px;
}

.recruit__summary::before,
.recruit__summary::after {
	top: 24%;
}

.recruit__summary::before {
	height: 3px;
	right: 0;
	width: 30px;
}

.recruit__summary::after {
	height: 30px;
	right: 13.5px;
	width: 3px;
}

.recruit__contents-wrap {
	margin-top: 26px;
}

.recruit__contents {
	margin-top: 25px;
}

.recruit__content {
	gap: 15px;
}

.recruit__content-title {
	font-size: 11px;
	letter-spacing: 4.1px;
	line-height: 21px;
	width: 120px;
}

.recruit__content-text {
	flex: 1;
	font-size: 11px;
	letter-spacing: 1px;
	line-height: 21px;
}

.recruit__content-text--job {
	font-size: 11px;
}

.recruit__line {
	margin-top: 19px;
}

.group {
	padding-bottom: 41px;
	padding-top: 51px;
}

.group__inner {
	margin-left: 20px;
	margin-right: 20px;
}

.group__title {
	font-size: 37px;
	letter-spacing: 15.329px;
	margin-left: 10px;
}

.group__contents {
	flex-direction: column;
	row-gap: 4px;
}

.group__content {
	margin-left: auto;
	margin-right: auto;
	width: 77.6119402985%;
}

.group__content-img {
	height: 112px;
	margin-top: 8px;
	width: 112px;
}

.group__content-name {
	font-size: 13px;
	letter-spacing: 1.4px;
}

.group__profile {
	margin-top: 8px;
}

.group__profile-items {
	line-height: 17px;
}

.group__profile-item--left {
	font-size: 12px;
	width: 70px;
}

.group__profile-item--right {
	flex: 1;
	font-size: 12px;
	width: auto;
}

.group__content-detail {
	font-size: 12px;
	letter-spacing: 0.9px;
	line-height: 15px;
	margin-top: 13px;
}

.group__separator-wrap {
	display: none;
}

.group__separator-wrap--sp {
	display: block;
}

.contact {
	padding-bottom: 50px;
	padding-top: 50px;
}

.contact__inner {
	margin-left: 20px;
	margin-right: 20px;
	padding: 36px 26px 30px;
}

.contact__title {
	font-size: 32px;
	letter-spacing: 12.8px;
}

.contact__message {
	font-size: 12px;
	letter-spacing: 1.1px;
	line-height: 21px;
}

.contact__policy {
	margin-top: 23px;
}

.contact__policy-title {
	font-size: 14px;
	letter-spacing: 1.4px;
	line-height: 32px;
}

.contact__policy-item {
	margin-bottom: 15px;
}

.contact__policy-main-text,
.contact__policy-sub-text {
	font-size: 12px;
	letter-spacing: 0.9px;
	line-height: 18px;
	margin-left: 14px;
}

.contact__policy-main-text::before {
	font-size: 10px;
	left: -14px;
	top: -8px;
}

.contact__policy-sub-text--small {
	font-size: 10px;
	margin-left: 0;
	margin-top: 2px;
}

.contact__policy-sub-text--small:last-of-type {
	margin-top: 0;
}

.contact__policy-signature {
	font-size: 12px;
	letter-spacing: 0.9px;
	line-height: 15px;
	margin-top: 23px;
}

.contact__container {
	margin-top: 50px;
}

.contact__modal-close {
	height: 33px;
	right: -7px;
	top: -39px;
	width: 33px;
}

.contact__form-item {
	flex-direction: column;
	gap: 2px;
	margin-bottom: 18px;
}

.contact__form-label {
	font-size: 13px;
	letter-spacing: 1.3px;
	max-width: 500px;
	min-width: 267px;
	text-align: left;
	width: 100%;
}

.contact__form-input {
	font-size: 13px;
	height: 34px;
	letter-spacing: 1.3px;
	max-width: 500px;
	min-width: 267px;
	width: 100%;
}

.contact__form-textarea {
	padding-top: 9px;
}

.contact__form-input::-moz-placeholder,
.contact__form-textarea::-moz-placeholder {
	font-size: 13px;
	letter-spacing: 1.3px;
}

.contact__form-input::placeholder,
.contact__form-textarea::placeholder {
	font-size: 13px;
	letter-spacing: 1.3px;
}

.contact__btn {
	font-size: 14px;
	height: 52px;
	letter-spacing: 1.437px;
	margin-top: 37px;
	width: 157px;
}

.policy {
	padding-bottom: 32px;
	padding-top: 123px;
}

.policy__title--en {
	font-size: 43px;
	letter-spacing: 17.63px;
}

.policy__title--jp {
	display: block;
	font-size: 22px;
	letter-spacing: 15.4px;
	margin-left: 0;
	margin-top: 19px;
}

.policy__sub-title {
	font-size: 12px;
	letter-spacing: 4.51px;
	margin-left: 10px;
	padding-top: 26px;
}

.policy__separator {
	margin-top: 14px;
}

.policy__message {
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 17px;
	margin-top: 32px;
}

.policy__lists {
	margin-top: 13px;
}

.policy__list {
	margin-bottom: 14px;
	margin-left: 10px;
}

.policy__list-symbol {
	font-size: 12px;
	letter-spacing: 4.1px;
	line-height: 21px;
}

.policy__list-text {
	font-size: 12px;
	line-height: 21px;
}

.policy__signature {
	font-size: 12px;
	letter-spacing: 1px;
	line-height: 17px;
	margin-top: 14px;
}

.show-sp {
	display: block;
}

.show-pc {
	display: none;
}

.br-sp {
	display: block;
}

.br-pc {
	display: none;
}

}

@keyframes fadeIn {

from {
	opacity: 0;
	transform: scale(0.95);
}

to {
	opacity: 1;
	transform: scale(1);
}

}

@keyframes shine {

0% {
	background-position: 100% 0%;
}

/* 文字をキラッとさせるキーフレーム */

100% {
	background-position: 0% 0%;
}

}

@keyframes stretchLine {

from {
	width: 106px; /* 初期の斜辺の長さ */
}

/* 矢印が伸びるアニメーションの定義 */

to {
	width: 424px; /* 斜辺の長さを2倍にする */
}

}

