@charset "UTF-8";

/* ▼ 編集可能エリア */
:root{
	/* 基本情報 ---------------------------------------*/
	/* font-family */
	--font-jp: "Noto Sans JP", sans-serif;
	--font-en: "Figtree", sans-serif;
	/* 基本カラー */
	--bg:#fff;
	--sub:#fff;
	--accent:#EAA13C;
	--text:#202020;
	--text-deco-01: rgba(233, 232, 70, 0.5);
  --text-deco-02: rgba(234, 161, 60, 0.5);
  --text-deco-03: ;  /* 未入力の場合は空欄 */
  --text-deco-base: rgba(242, 183, 133, 0.21);
	--shadow: rgba(4, 0, 0, 0.6);

	/* fixedボタンなど ---------------------------------------*/
	/* 上部固定ボタン、最後部の問い合わせボタン背景色 */
	--bg-fixedcontact:rgba(234, 161, 60, 0.9);
	/* 下部固定ボタンリスト背景色 */
	--bg-fixedbtn:rgba(255, 236, 219, 0.46);
	/* 下部固定ボタンリスト枠線 */
	--border-fixedbtn:calc(1 * var(--base)) solid rgba(231, 161, 60, 0.25);
	/* ページネーション色 */
	--pagination: #f2f2f2;

	/* kv ---------------------------------------*/
	/* kv背景画像 */
	--bg-kv:url('../img/kv_bg.webp');

	/* outline ---------------------------------------*/
	/* アウトライン背景色 */
	--bg-outline:rgba(0, 0, 0, 0.8);

	/* profile ---------------------------------------*/
	/* プロフィールリスト下線 */
	--line-profile-list-title:#323232;

	/* service ---------------------------------------*/
	/* サービス背景画像 */
	--bg-service-01:url('../img/bg_service_01.webp') no-repeat top left / 100%;
	--bg-service-02:url('../img/bg_service_02.webp') no-repeat top calc(370 * var(--base)) left / 100%;
	--bg-service-03:url('../img/bg_service_03.webp') no-repeat top calc(370 * var(--base)) left / 100%;

	/* voice ---------------------------------------*/
	/* お客様の声画像枠線 */
	--border-voice-image:none;

	/* story ---------------------------------------*/
	/* ストーリー背景色 */
	--bg-story-color:#dedede;
	/* ストーリー背景画像 */
	--bg-story-01:url('../img/bg_story_03.webp') no-repeat top calc(360 * var(--base)) right / 100%;
	--bg-story-02:url('../img/bg_story_04.webp') no-repeat top calc(30 * var(--base)) right / 100%;
	/* ストーリーサブタイトル線 */
	--line-story-subtitle:#202020;
	/* ストーリー写真枠線 */
	--border-story-image:none;

	/* other ---------------------------------------*/
	/* その他背景画像 */
	--bg-other-01:url('../img/bg_other_01.webp') no-repeat top calc(310 * var(--base)) right / 100%;
	--bg-contact-list-active:#E6982C;
	--border-contact-list-active:calc(3 * var(--base)) solid #CD7805;
}
/* ▲ 編集可能エリア */

/* common ---------------------------------------*/
.swipecontainer::before,
.swipecontainer::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: '';
	transition: all 0.5s ease;
}

.swipecontainer::before {
	z-index: -2;
	background: var(--bg-kv) no-repeat top center / 100%;
	opacity: 1;
}

.swipecontainer.is-close::before {
	opacity: 0;
}

.swipecontainer::after {
	z-index: -1;
	background: var(--bg-outline);
	opacity: 0;
}

.swipecontainer.is-setting::after {
	opacity: 1;
}

.section-title {
}

.section-title span {
	display: block;
	margin-bottom: calc(-6 * var(--base));
	font-size: calc(14 * var(--base));
	font-weight: 600;
	font-style: italic;
	line-height: 1;
}

.section-title b {
	display: block;
	font-size: calc(32 * var(--base));
	font-weight: 900;
	font-style: italic;
}

.section-text {
	font-size: calc(14 * var(--base));
	font-weight: 500;
	line-height: calc(44 / 28);
	letter-spacing: 0.1em;
}

.section-lead {
	margin-top: calc(20 * var(--base));
	margin-bottom: calc(20 * var(--base));
	font-size: calc(26 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: calc(64 / 52);
}


/* kv ---------------------------------------*/
.kv { 
	position: relative;
	padding: calc(90 * var(--base)) calc(10 * var(--base)) 0;
}

.kv-name { 
	margin-bottom: calc(100 * var(--base));
}

.kv-name b { 
	display: block;
	font-size: calc(79 * var(--base));
	font-weight: 600;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #fff;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.kv-name span { 
	display: block;
	margin: calc(-10 * var(--base)) auto 0 calc(110 * var(--base));
	font-size: calc(40 * var(--base));
	font-weight: 600;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: #fff;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.kv-title { 
	margin-bottom: calc(16 * var(--base));
	padding: 0 calc(10 * var(--base));
}

.kv-title small { 
	display: block;
	margin-bottom: calc(4 * var(--base));
	font-size: calc(18 * var(--base));
	font-weight: 600;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0.035em;
	color: #fff;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.kv-title b { 
	display: block;
	padding: calc(18 * var(--base));
	margin: calc(-18 * var(--base));
	font-size: 0;
}

.kv-title b > span { 
	font-size: calc(30 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: #fff;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.kv-text { 
	padding: 0 calc(10 * var(--base));
	font-size: calc(20 * var(--base));
	font-weight: 700;
	line-height: calc(64 / 40);
	letter-spacing: 0.035em;
	color: #fff;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}


/* outline ---------------------------------------*/
.outline {
	position: relative;
	padding: calc(100 * var(--base)) 0 0;
	transition: all 0.6s ease;
}

.outline-inner {
	max-width: calc(340 * var(--base));
	width: 100%;
	margin: 0 auto;
}

.outline-title {
	font-size: 0;
	text-indent: -9999px;
	opacity: 0;
}

.outline-list {
	width: fit-content;
}

.outline-list > li {
	display: flex;
	align-items: flex-end;
	position: relative;
	padding: calc(14 * var(--base)) calc(30 * var(--base)) calc(14 * var(--base)) 0;
	border-bottom: calc(1 * var(--base)) solid var(--sub);
	cursor: pointer;
}

.outline-list > li::after {
	position: absolute;
	top: 60%;
	right: calc(8 * var(--base));
	transform: translateY(-50%);
	z-index: 1;
	width: calc(10 * var(--base));
	height: calc(7 * var(--base));
	background: #fff;
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	content: '';
	animation: move-down 1.5s ease-out infinite;
}

@keyframes move-down {
	0% {
		opacity: 0;
		transform: translateY(calc(-50% - 3px));
	}
	20% {
		opacity: 1;
	}
	80% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: translateY(calc(-50% + 3px));
	}
}

.outline-list > li:nth-of-type(2)::after {animation-delay: 0.05s;}
.outline-list > li:nth-of-type(3)::after {animation-delay: 0.1s;}
.outline-list > li:nth-of-type(4)::after {animation-delay: 0.15s;}


.outline-list > li b {
	display: block;
	width: calc(50 * var(--base));
	font-size: calc(24 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1.1;
	letter-spacing: 0.035em;
	color: #fff;
}

.outline-list > li strong {
	display: block;
	width: calc(133 * var(--base));
	font-size: calc(31 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1.1;
	letter-spacing: 0.035em;
	color: #fff;
}

.outline-list > li span {
	display: block;
	font-size: calc(18 * var(--base));
	font-weight: 900;
	font-style: italic;
	line-height: 1.1;
	letter-spacing: 0.035em;
	color: #fff;
}


/* profile ---------------------------------------*/
.profile {
	position: relative;
	padding: calc(55 * var(--base)) 0 0;
}

.profile-deco {
	position: absolute;
	top: calc(12 * var(--base));
	right: calc(-10 * var(--base));
	z-index: -1;
	font-size: calc(80 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.profile-block {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: calc(20 * var(--base));
	margin-bottom: calc(14 * var(--base));
}

.profile-block-image {
	width: calc(135 * var(--base));
	border-radius: calc(10 * var(--base));
	overflow: hidden;
}

.profile-block-image img {
	width: 100%;
}

.profile-block-title {

}

.profile-block-title b {
	display: block;
	font-size: calc(28 * var(--base));
	font-weight: 700;
	letter-spacing: 0.1em;
}

.profile-block-title small {
	display: block;
	margin-top: calc(2 * var(--base));
	font-size: calc(10 * var(--base));
	font-weight: 800;
	line-height: 1.4;
	text-align: center;
	letter-spacing: 0.1em;
}

.profile-textlist {
	margin: calc(20 * var(--base)) 0 0 auto;
	width: fit-content;
}

.profile-textlist > li {
	position: relative;
	font-size: calc(14 * var(--base));
	font-weight: 600;
	line-height: calc(44 / 28);
	letter-spacing: 0.1em;
	padding-left: calc(14 * var(--base));
}

.profile-textlist > li::before {
	position: absolute;
	top: 0;
	left: calc(2 * var(--base));
	font-size: calc(14 * var(--base));
	content: '・';
}

.profile-title-vertical {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: calc(4 * var(--base));
	position: absolute;
	top: calc(96 * var(--base));
	right: calc(30 * var(--base));
}

.profile-title-vertical b {
	display: block;
	font-size: calc(28 * var(--base));
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.18em;
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
}

.profile-title-vertical small {
	display: block;
	margin-top: calc(2 * var(--base));
	font-size: calc(12 * var(--base));
	font-weight: 400;
	font-style: italic;
	text-align: center;
	line-height: 1;
	letter-spacing: 0.05em;
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	text-orientation: sideways;
}

.profile-list {
	margin: calc(36 * var(--base)) auto 0;
	width: calc(290 * var(--base));
}

.profile-list.profile-list-01 {
	margin: calc(22 * var(--base)) auto 0;
	width: calc(320 * var(--base));
}

.profile-list > li {width: fit-content;}
.profile-list.profile-list-01 > li {width: 100%;}

.profile-list > li + li {
	margin-top: calc(36 * var(--base));
}

.profile-list > li:nth-of-type(even) {
	margin-left: calc(30 * var(--base));
}

.profile-list-title {
	display: flex;
	align-items: baseline;
	gap: calc(20 * var(--base));
	padding-bottom: calc(8 * var(--base));
	border-bottom: calc(1 * var(--base)) solid var(--line-profile-list-title);
	margin-bottom: calc(10 * var(--base));
	min-width: calc(190 * var(--base));
	width: fit-content;
}

.profile-list-title b {
	display: block;
	font-size: calc(24 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1.1;
	letter-spacing: 0;
}

.profile-list-title span {
	display: block;
	font-size: calc(10 * var(--base));
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0;
}

.profile-list-text {
	font-size: calc(12 * var(--base));
	font-weight: 700;
	line-height: calc(38 / 24);
}

.profile-image {
	position: absolute;
	bottom: calc(100% - calc(620 * var(--base)));
	right: calc(30 * var(--base));
}
.profile-image img {
	width: 100%;
}

.profile-image-01 {width: calc(109 * var(--base));}
.profile-image-02 {width: calc(111 * var(--base));}
.profile-image-03 {width: calc(160 * var(--base));}



/* service ---------------------------------------*/
.service {
	position: relative;
	padding: calc(78 * var(--base)) 0 0;
}

.service-bg-01 {background: var(--bg-service-01);}
.service-bg-02 {background: var(--bg-service-02);}
.service-bg-03 {background: var(--bg-service-03);}

.service-deco {
	position: absolute;
	font-size: calc(80 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.service-deco-01 {
	top: calc(576 * var(--base));
	left: calc(-14 * var(--base));
}

.service-deco-02 {
	top: calc(20 * var(--base));
	left: calc(-14 * var(--base));
}

.service-list {
	margin-top: calc(10 * var(--base));
}

.service-list > li {
	display: flex;
	gap: calc(10 * var(--base));
}

.service-list > li + li {
	margin-top: calc(40 * var(--base));
}

.service-list-image {
	width: calc(90 * var(--base));
}

.service-list-image img {
	width: 100%;
}

.service-list-summary {
	flex: 1;
}

.service-list-title {
	font-size: calc(24 * var(--base));
	font-weight: 900;
	font-style: italic;
}

.service-textlist {
	padding-left: calc(40 * var(--base));
	margin-top: calc(30 * var(--base));
}

.service-textlist > li {
	font-size: calc(14 * var(--base));
	font-weight: 700;
	line-height: calc(36 / 28);
	letter-spacing: 0.035em;
}

.service-textlist > li + li {
	margin-top: calc(12 * var(--base));
}

.service-title {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: calc(2 * var(--base)) calc(10 * var(--base));
	margin-bottom: calc(30 * var(--base));
}

.service-title span {
	display: block;
	font-size: calc(24 * var(--base));
	font-weight: 900;
	font-style: italic;
	line-height: 1.1;
}

.service-title small {
	display: block;
	padding: 0 calc(6 * var(--base));
	margin-bottom: calc(-5 * var(--base));
	font-size: calc(12 * var(--base));
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: 0.025em;
	border: calc(1 * var(--base)) solid var(--accent);
	border-radius: calc(2.5 * var(--base));
}

.service-title b {
	display: block;
	width: 100%;
	font-size: calc(22 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: calc(55 / 44);
	letter-spacing: 0.035em;
}

.service-image {margin: 0 auto;}
.service-image img {width: 100%;}
.service-image-01 {width: calc(200 * var(--base));}
.service-image-02 {width: calc(309 * var(--base));}
.service-image-03 {width: calc(318 * var(--base));}


/* voice ---------------------------------------*/
.voice {
	position: relative;
	padding: calc(78 * var(--base)) 0 0;
}

.voice-deco {
	position: absolute;
	top: calc(580 * var(--base));
	left: calc(-10 * var(--base));
	font-size: calc(80 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.voice-block {
	margin: calc(40 * var(--base)) auto calc(30 * var(--base));
	width: calc(300 * var(--base));
}

.voice-title {
	margin-bottom: calc(16 * var(--base));
	font-size: calc(26 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: calc(64 / 52);
	letter-spacing: 0.035em;
}

.voice-text {
	font-size: calc(18 * var(--base));
	font-weight: 500;
	line-height: calc(52 / 36);
}

.voice-info {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: calc(10 * var(--base));
	margin: 0 auto;
	width: calc(300 * var(--base));
}

.voice-info-summary {
	flex: 1;
}

.voice-info-title {
	font-size: calc(14 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: calc(44 / 28);
	letter-spacing: 0.035em;
}

.voice-info-name {
	font-size: calc(22 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: calc(64 / 44);
	letter-spacing: 0.035em;
}

.voice-info-name small {
	font-size: calc(14 * var(--base));
	font-weight: 700;
	margin-left: calc(10 * var(--base));
}

.voice-info-image {
	flex-shrink: 0;
	width: calc(126 * var(--base));
	border: var(--border-voice-image);
	border-radius: 50%;
	overflow: hidden;
}

.voice-info-image img {
	width: 100%;
}


/* story ---------------------------------------*/
.story {
	position: relative;
	padding: calc(110 * var(--base)) 0 0;
	background-color: var(--bg-story-color);
}

.story-bg-01 {background: var(--bg-story-01);}
.story-bg-02 {background: var(--bg-story-02);}

.story-deco {
	position: absolute;
	top: calc(20 * var(--base));
	left: calc(-10 * var(--base));
	font-size: calc(80 * var(--base));
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.47);
}

.story-title {
	margin-bottom: calc(4 * var(--base));
	font-size: calc(26 * var(--base));
	font-weight: 700;
	font-style: italic;
}

.story-subtitle {
	display: flex;
	align-items: center;
	gap: calc(10 * var(--base));
	margin-bottom: calc(20 * var(--base));
	width: calc(320 * var(--base));;
}

.story-subtitle b {
	display: block;
	width: fit-content;
	font-size: calc(18 * var(--base));
	font-weight: 700;
	font-style: italic;
}

.story-subtitle span {
	flex: 1;
	margin-top: calc(2 * var(--base));
	height: calc(1 * var(--base));
	background: var(--line-story-subtitle);
}

.story-image {
	margin-top: calc(16 * var(--base));
}

.story-image-small {
	width: calc(177 * var(--base));
}

.story-image-middle {
	width: calc(259 * var(--base));
}

.story-image-large {
	width: 100%;
}

.story-image-left {
	margin-inline: 0 auto;
}

.story-image-center {
	margin-inline: auto;
}

.story-image-right {
	margin-inline: auto 0;
}

.story-image-inner {
	border: var(--border-story-image);
	border-radius: calc(5 * var(--base));
	overflow: hidden;
}

.story-image img {
	width: 100%;
}

.story-image span {
	display: block;
	margin-top: calc(4 * var(--base));
	font-size: calc(12 * var(--base));
	font-weight: 500;
	text-align: center;
}

/* other ---------------------------------------*/
.other {
	position: relative;
	padding: calc(70 * var(--base)) 0 0;
}
.other-bg-01 {background: var(--bg-other-01);}

.other-deco {
	position: absolute;
	top: calc(24 * var(--base));
	right: 0;
	font-size: calc(80 * var(--base));
	font-weight: 800;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.other-title {
	margin-bottom: calc(30 * var(--base));
}

.contact-list {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: calc(50 * var(--base));
}

.contact-list > li {
	width: calc(217 * var(--base));
	margin: 0 auto;
}

.contact-list-text {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	margin-bottom: calc(30 * var(--base));
	height: calc(82 * var(--base));
	font-size: calc(18 * var(--base));
	font-weight: 500;
	text-align: center;
}

.contact-list-text::after {
	position: absolute;
	bottom: calc(-16 * var(--base));
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	width: calc(12 * var(--base));
	height: calc(8 * var(--base));
	background: var(--text);
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	content: '';
	animation: contact-move-down 1.5s ease-out infinite;
}

@keyframes contact-move-down {
	0% {
		opacity: 0;
		transform: translate(-50%, -3px);
	}
	20% {
		opacity: 1;
	}
	80% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: translate(-50%, 3px);
	}
}

.contact-list > li:nth-of-type(2) .contact-list-text::after {animation-delay: 0.05s;}

.contact-list > li a {	
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: calc(4 * var(--base));
	margin: 0 auto;
	width: calc(124 * var(--base));
	height: calc(80 * var(--base));
	background: var(--bg-fixedcontact);
	border-radius: calc(4 * var(--base));
}

.contact-list > li a img {
	display: block;
}

.contact-list > li:first-of-type a img {width: calc(34 * var(--base));}
.contact-list > li:nth-of-type(2) a img {width: calc(26 * var(--base));}

.contact-list > li a b,
.contact-list > li a small,
.contact-list > li a span {
	font-style: italic;
	line-height: 1.1;
	text-align: center;
	color: #fff;
}

.contact-list > li a b {
	font-weight: 700;
	font-size: calc(24 * var(--base));
}

.contact-list > li a small {
	font-weight: 900;
	font-size: calc(17 * var(--base));
}

.contact-list > li a span {
	font-weight: 900;
	font-size: calc(17 * var(--base));
}


/* contact form---------------------------------------*/
.contact { 
	position: relative;
	z-index: 1;
}

.contact-title {
	position: relative;
	width: fit-content;
	font-size: calc(18 * var(--base));
	font-weight: 500;
	font-style: italic;
	line-height: 1.5;
	padding-right: calc(24 * var(--base));
}

.contact-title::after {
	position: absolute;
	top: 40%;
	right: 0;
	transform: translateY(-50%);
	z-index: 1;
	width: calc(10 * var(--base));
	height: calc(6 * var(--base));
	background: var(--text);
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	content: '';
	animation: contact-move-down 1.5s ease-out infinite;
}

.contact-wrapper{
	position: relative;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 65dvh;
	pointer-events: unset;
}

.contact-wrapper.is-off {
	pointer-events: none;
}


/* contactsimulation */
.contactsimulation {
	position: relative;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	overflow: hidden;
}

.contactsimulation form {
	width: 100%;
	height: 100%;
}

#sendForm.is-sending {
  pointer-events: none;
}

#sendForm.is-sending .contactsimulation-wrapper {
  opacity: 0.4;
}

/* スピナー */
#sendForm.is-sending::after {
  content: '';
  position: absolute;
  top: 32%;
  left: 50%;
  translate: -50% -50%;
  width: calc(40 * var(--base));
  height: calc(40 * var(--base));
  border: calc(3 * var(--base)) solid #ccc;
  border-top-color: var(--text);
  border-radius: 50%;
  animation: sending-spin 0.8s linear infinite;
  z-index: 11;
}

@keyframes sending-spin {
  to { rotate: 360deg; }
}

.contactsimulation-wrapper {
	display: flex;
	width: 100%;
	height: 100%;
}

.contactsimulation-wrapper.is-active {
	width: 200%;
}

.contactsimulation-block { 
	display: none;
	width: 100%;
	height: 100%;
	padding: 0 calc(12 * var(--base));
	flex: 1;
}

.contactsimulation-block.is-current { 
	display: flex;
}

.contactsimulation-block.is-current#step03 { 
	position: relative;
	height: fit-content;
}

.contactsimulation-block-inner {
	margin: 0 auto;
	max-height: fit-content;
	width: 100%;
	height: 100%;
	overflow: auto;
}

.contactsimulation-block-title { 
	margin-bottom: calc(16 * var(--base));
	font-size: calc(17 * var(--base));
	font-weight: 700;
	font-style: italic;
	text-align: center;
	letter-spacing: 0.1em;
}

.contactsimulation-block-list { 
	display: flex;
	flex-wrap: wrap;
	gap: calc(12 * var(--base));
	margin-top: calc(6 * var(--base));
}

.contactsimulation-block-list + .contactsimulation-block-list { 
	margin-top: calc(12 * var(--base));
}

.contactsimulation-block-list > li { 
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: calc(50% - calc(6 * var(--base)));
	background: var(--bg-fixedcontact);
	border-radius: calc(4 * var(--base));
	box-shadow: 0px 0px 8px 0px rgba(51, 51, 51, 0.15);
	cursor: pointer;
	transition: all .25s ease;
}

.contactsimulation-block-list.col-3 > li {
	height: 17dvh;
}

.contactsimulation-block-list > li p { 
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	padding: calc(12 * var(--base));
	font-size: calc(15 * var(--base));
	letter-spacing: 0.1em;
	text-align: center;
	line-height: 1.2;
	color: #fff;
	transition: all .25s ease;
}

.contactsimulation-block-list.js-anyselect > li p { 
	padding: calc(20 * var(--base)) calc(12 * var(--base));
}

.contactsimulation-block-list > li p::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: calc(4 * var(--base)) solid rgba(255, 255, 255, 0);
	border-radius: calc(4 * var(--base));
	box-sizing: border-box;
	transition: all .25s ease;
}

.contactsimulation-block-list > li p .icon-arrow-right {
	position: absolute;
	bottom: calc(10 * var(--base));
	right: calc(10 * var(--base));
	z-index: 1;
	animation: contact-move-right 1.6s ease-out infinite;
}

@keyframes contact-move-right {
	0% {
		opacity: 0;
		transform: translateX(-10px);
	}
	20% {opacity: 1;}
	80% {opacity: 1;}
	100% {
		opacity: 0;
		transform: translateX(0);
	}
}

.contactsimulation-block-list.js-anyselect > li.is-active { background: var(--bg-contact-list-active);}
.contactsimulation-block-list.js-anyselect > li.is-active p::after {border: var(--border-contact-list-active);}

@media screen and (min-width: 768px) {
	.contactsimulation-block-list > li:hover,
	.contactsimulation-block-list.js-anyselect > li:hover,
	.contactsimulation-block-list.js-anyselect > li.is-active:hover { 
		opacity: 0.7;
	}
}

.contactsimulation-block-list > li.item-large {
	width: 100%;
}

.contactsimulation-block-list > li.item-large p { 
	flex-direction: row;
	padding: calc(26 * var(--base)) calc(12 * var(--base));
	font-size: calc(17 * var(--base));
}

.contactsimulation-block-list > li a {
	width: 100%;
	height: 100%;
}

.contactsimulation-block-list > li a[target="_blank"] {
	position: relative;
	z-index: 1;
}

@media screen and (max-width: 767px) {
	.contactsimulation-block-list > li a[target="_blank"]:hover {opacity: 1;}
}

.contactsimulation-block-list > li a[target="_blank"]::after {
	position: absolute;
	bottom: calc(6 * var(--base));
	right: calc(4 * var(--base));
	z-index: 1;
	width: calc(12 * var(--base));
	height: calc(12 * var(--base));
	background: url('/assets/img/common/icon_external.svg') no-repeat;
	background-size: contain;
	content: '';
}

.contactsimulation-block-list .icon-mail {margin: 0 calc(12 * var(--base)) 0 0;}
.contactsimulation-block-list .icon-line,
.contactsimulation-block-list .icon-facebook,
.contactsimulation-block-list .icon-instagram,
.contactsimulation-block-list .icon-calendar {
	margin: 0 auto calc(2 * var(--base));
}

.contactsimulation-block-btnlist {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: calc(30 * var(--base));
}

.contactsimulation-block-input {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: calc(10 * var(--base));
}

.contactsimulation-block-inputlist {
}

.contactsimulation-block-inputlist dt {
	font-size: calc(15 * var(--base));
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.1em;	
}

.contactsimulation-block-inputlist dt small {
	font-size: calc(12 * var(--base));
	font-weight: 700;
	color: var(--accent);
}

.contactsimulation-block-inputlist dd {
	position: relative;
	margin-top: calc(4 * var(--base));
}

.contactsimulation-block-inputlist label {
	position: absolute;
	top: calc(100% + calc(2 * var(--base)));
	left: 0;
	font-size: calc(12 * var(--base));
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0.1em;	
	color: #dc3232;
}

.contactsimulation-block-inputlist dd + dt {
	margin-top: calc(24 * var(--base));
}

.contactsimulation-thanks {
	padding: calc(60 * var(--base)) calc(20 * var(--base));
}

.contactsimulation-thanks-text {
	font-size: calc(18 * var(--base));
	line-height: 2;
	letter-spacing: 0.1em;
	text-align: center;
}


/* contactbtn ---------------------------------------*/
.contactbtn {
	display: inline-block;
	position: relative;
	width: calc(100 * var(--base));
	height: calc(50 * var(--base));
	border-radius: calc(4 * var(--base));
	font-size: calc(15 * var(--base));
	text-align: center;
	line-height: calc(46 * var(--base));
	background: #fff;
	transition: all .25s ease;
	cursor: pointer;
}

.contactbtn-next {
	background: var(--text);
	color: #fff;
}

.contactbtn:hover { 
	opacity: 0.7;
}

.contactbtn-submit {
	background: var(--text);
	color: #fff;
}

.contactbtn-off {
	opacity: 0.3;
	pointer-events: none;
}

.contactbtn-submit-off {
	opacity: 0.3;
	pointer-events: none;
}


/* form ---------------------------------------*/
.form-text {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	outline: none;
	font-size: 16px;
	font-weight: 400;
	width: 100%;
	border: calc(1 * var(--base)) solid rgba(64, 81, 59, 0.22);
	background: #fff;
	border-radius: calc(4 * var(--base));
	padding: calc(6 * var(--base)) calc(10 * var(--base));
}

.submit{
	text-align: center;
}

.submit-error {
	position: absolute;
	bottom: calc(110 * var(--base));
	left: calc(12 * var(--base));
	font-size: calc(10 * var(--base));
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0.1em;	
	color: #dc3232;
	text-shadow: 0 0 6px rgba(255, 255, 255, 0.5), 0 0 6px rgba(255, 255, 255, 0.5);
}

@media screen and (min-width: 500px) {
	.form-text {
		font-size: calc(16 * var(--base));
	}
}