@charset "UTF-8";

/* ▼ 編集可能エリア */
:root{
	/* 基本情報 ---------------------------------------*/
	/* font-family */
	--font-jp: "Zen Old Mincho", serif;
	--font-en:  "Adobe Garamond Pro", "Adobe Garamond", "Garamond", "EB Garamond", serif;
	/* 基本カラー */
	--bg:#fff;
	--sub:#fff;
	--accent:#c6487f;
	--text:#202020;
	--text-deco:linear-gradient(86deg, rgba(198, 72, 127, 0.3) 0%, rgba(198, 72, 127, 0.15) 50%, rgba(198, 72, 127, 0.3) 100%);
	--shadow: rgba(4, 0, 0, 0.2);

	/* fixedボタンなど ---------------------------------------*/
	/* 上部固定ボタン、最後部の問い合わせボタン背景色 */
	--bg-fixedcontact:rgba(198, 72, 127, 0.9);
	/* 下部固定ボタンリスト背景色 */
	--bg-fixedbtn:rgba(255, 230, 240, 0.46);
	/* 下部固定ボタンリスト枠線 */
	--border-fixedbtn:calc(1 * var(--base)) solid rgba(198, 72, 127, 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_02.webp') no-repeat top / cover;

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

	/* story ---------------------------------------*/
	/* ストーリー背景色 */
	--bg-story-color:#dedede;
	/* ストーリー背景画像 */
	--bg-story-01:url('../img/bg_story_01.webp') no-repeat top calc(360 * var(--base)) right / 100%;
	--bg-story-02:url('../img/bg_story_02.webp') no-repeat top calc(30 * var(--base)) right / 100%;
	--bg-story-03:url('../img/bg_story_03.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%;
}
/* ▲ 編集可能エリア */

/* service visual image ---------------------------------------*/
.service-visual {
	margin-top: calc(16 * var(--base));
	text-align: center;
}
.service-visual img {
	width: calc(160 * var(--base));
	height: auto;
	border-radius: calc(4 * var(--base));
	box-shadow: 0 calc(4 * var(--base)) calc(16 * var(--base)) rgba(0,0,0,0.3);
}

/* 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 {
	    margin-bottom: calc(24 * var(--base));
}

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

.section-title b {
	display: block;
	font-size: calc(26 * var(--base));
	font-weight: 500;
	font-style: normal;
}

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

.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: normal;
	line-height: calc(64 / 52);
}


/* kv ---------------------------------------*/
/* 変更後 */
.kv {
    position: relative;
    padding: calc(90 * var(--base)) calc(20 * var(--base)) 0;
}
.kv-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    pointer-events: none;
}
.kv > *:not(.kv-video) {
    position: relative;
    z-index: 2;
}

/* 変更後 */
.kv-name { 
    margin-bottom: calc(16 * var(--base));
}

/* 変更後 */
.kv-name b { 
    display: block;
    font-size: calc(62 * var(--base));
    font-weight: 300;
    font-style: normal;
    line-height: 1.15;
    letter-spacing: 0.22em;
    color: var(--accent);
    text-shadow: 0 2px calc(12 * var(--base)) var(--shadow);
}

.kv-name span { 
    display: block;
    margin: 0;
    font-size: calc(62 * var(--base));
    font-weight: 300;
    font-style: normal;
    line-height: 1.15;
    letter-spacing: 0.22em;
    color: var(--text);
    text-shadow: none;
}

.kv-title { 
    margin-top: calc(100 * var(--base));
	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(16 * var(--base));
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    letter-spacing: 0.1em;
    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 {
	display: block !important;
	font-size: calc(30 * var(--base));
	font-weight: 400;
	font-style: normal;
	line-height: 1.4;
	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(18 * var(--base));
    font-weight: 400;
    line-height: calc(64 / 40);
    letter-spacing: 0.05em;
    color: #fff;
    text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}


/* introduction ---------------------------------------*/
.introduction {
	position: relative;
	padding: calc(170 * var(--base)) calc(28 * var(--base)) 0;
	color: #fff;
}

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

.introduction-title {
	margin-bottom: calc(18 * var(--base));
	font-size: calc(16 * var(--base));
	font-weight: 400;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0.1em;
	color: var(--accent);
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.introduction-heading {
	margin-bottom: calc(18 * var(--base));
	font-size: calc(28 * var(--base));
	font-weight: 500;
	font-style: normal;
	line-height: 1.25;
	letter-spacing: 0.08em;
	background: linear-gradient(90deg, var(--accent), #fff, var(--accent));
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: heading-gradation 4s linear infinite;
}

@keyframes heading-gradation {
	0% { background-position: 0% center; }
	100% { background-position: 200% center; }
}

.introduction-text {
	font-size: calc(12 * var(--base));
	font-weight: 500;
	line-height: calc(34 / 24);
	letter-spacing: 0.03em;
	text-shadow: 0 0 calc(18 * var(--base)) var(--shadow);
}

.introduction-text p + p {
	margin-top: calc(13 * var(--base));
}


/* 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: var(--accent);
	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: 400;
	font-style: normal;
	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: 400;
	font-style: normal;
	line-height: 1.1;
	letter-spacing: 0.035em;
	color: #fff;
}

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


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

.profile-deco {
	font-family: var(--font-en);
	position: absolute;
	top: calc(12 * var(--base));
	right: calc(-10 * var(--base));
	z-index: -1;
	font-size: calc(80 * var(--base));
	font-weight: 300;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
	background: linear-gradient(90deg, var(--accent), #fff, var(--accent));
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: heading-gradation 6s linear infinite;
}

.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(4 * var(--base)) 0 0 0;
	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: 400;
	font-style: normal;
	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 {
	font-family: var(--font-en);
	position: absolute;
	font-size: calc(80 * var(--base));
	font-weight: 300;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
	/* ベタ塗りの場合 */
	/* color: var(--text-deco); */
	/* グラデーションの場合 */
	background: var(--text-deco);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.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-lead {
	margin-bottom: calc(20 * var(--base));
}

.service-bg-01 .inner,
.service-list-section .inner {
	margin-left: calc(45 * var(--base));
}

/* 事業内容：テキスト左揃え・左パディングリセット */
.service-bg-01 .section-text,
.service-bg-01 .service-lead {
	text-align: left;
	padding-left: 0;
}

/* 事業内容：見出しサイズ縮小 */
.service-bg-01 .service-list-title {
	font-size: calc(16 * var(--base));
}

/* 提供できること：How I Can Help を少し下げる */
.service-list-section .section-title {
	margin-top: calc(30 * var(--base));
}

/* MUSAスピリチュアルヒーリングサロン 代表：文字小さめ */
.profile-list-01 .profile-textlist > li:last-child {
	font-size: calc(12 * var(--base));
}

.service-list {
    padding-left: 0;
	margin-left: 0;
}

.service-list > li {
    display: block;
	padding-left: 0;
}

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

.service-list-image {
	    width: calc(70 * var(--base));
    margin-bottom: calc(8 * var(--base));
}

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

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

.service-list-title {
    font-size: calc(20 * var(--base));
    font-weight: 400;
    margin-bottom: calc(8 * var(--base));
    color: var(--accent);
	padding-left: 0;
}

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

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

.service-textlist > li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: calc(10 * var(--base));
	height: calc(1 * var(--base));
	background: var(--accent);
	border-radius: 1px;
}

.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: 500;
	font-style: normal;
	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: 400;
	font-style: normal;
	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: 300;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
	background: linear-gradient(90deg, var(--accent), #fff, var(--accent));
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: heading-gradation 6s linear infinite;
}

.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: normal;
	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: normal;
	line-height: calc(44 / 28);
	letter-spacing: 0.035em;
}

.voice-info-name {
	font-size: calc(22 * var(--base));
	font-weight: 700;
	font-style: normal;
	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-bg-03 {background: var(--bg-story-03);}

.story-deco {
	font-family: var(--font-en);
	position: absolute;
	top: calc(20 * var(--base));
	left: calc(-10 * var(--base));
	font-size: calc(80 * var(--base));
	font-weight: 300;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0;
	/* ベタ塗りの場合 */
	/* color: var(--text-deco); */
	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: normal;
}

.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: normal;
}

.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 {
	font-family: var(--font-en);
	position: absolute;
	top: calc(24 * var(--base));
	right: 0;
	font-size: calc(110 * var(--base));
	font-weight: 300;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
	/* ベタ塗りの場合 */
	/* color: var(--text-deco); */
	/* グラデーションの場合 */
	background: var(--text-deco);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.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: normal;
	line-height: 1.4;
	text-align: center;
	color: #fff;
	letter-spacing: 0.12em;
}

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

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

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


/* 下記追加 */

/* ロゴサイズ修正 */
.swipefixedlogo img {
    width: calc(134 * var(--base));
    height: auto;
}


/* 変更後 */
.swipefixedtab-list b {
    margin-bottom: 0 !important;
    font-weight: 300 !important;
}
.swipefixedtab-list strong {
    font-style: normal !important;
    letter-spacing: 0.05em !important;
    font-weight: 300 !important;
}
.swipetab-list b {
    margin-bottom: calc(2 * var(--base));
}

.swipefixedtab-list b {
    margin-bottom: 0 !important;
    line-height: 1 !important;
}

.swipefixedtab-list strong {
	line-height: 1 !important;
    font-style: normal !important;
    letter-spacing: 0.05em !important;
}

.swipefixedtab-list b {
    margin-bottom: calc(2 * var(--base)) !important;
}

/* service内のsection-textだけpadding-leftをリセット */
.service-list .section-text {
    padding-left: 0;
}

/* deco テキスト 細め調整 */
.profile-deco {
    font-weight: 100;
}
.service-deco {
    font-weight: 100;
}

/* ナビラベル（非アクティブ）グラデーション */
.swipefixedtab-list > li b,
.swipefixedtab-list > li strong {
	background: linear-gradient(180deg, var(--accent), #fff, var(--accent));
	background-size: auto 200%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent !important;
	animation: nav-gradation 4s linear infinite;
}

@keyframes nav-gradation {
	0% { background-position: center 0%; }
	100% { background-position: center 200%; }
}

/* タブサイズ：数字削除＋2mm小 */
.swipefixedtab-list > li {
	min-height: calc(90 * var(--base)) !important;
	padding-top: calc(8 * var(--base)) !important;
	padding-bottom: calc(8 * var(--base)) !important;
}
.swipefixedtab-list > li strong {
	font-size: calc(18 * var(--base)) !important;
}

/* アクティブタブ：背景マゼンタ・文字白 */
.swipefixedtab-list > li.is-active {
	background: var(--accent) !important;
	border-color: var(--accent) !important;
}

.swipefixedtab-list > li.is-active b,
.swipefixedtab-list > li.is-active strong {
	background: none !important;
	-webkit-background-clip: unset !important;
	background-clip: unset !important;
	-webkit-text-fill-color: #fff !important;
	color: #fff !important;
	animation: none !important;
}

/* Goalページ：左余白・左揃え */
.other-bg-01 .inner {
	margin-left: calc(45 * var(--base));
}

.other-bg-01 .section-lead,
.other-bg-01 .section-text {
	text-align: left;
	padding-left: 0;
}

/* SNSページ */
.sns-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sns-list > li {
	display: flex;
	align-items: baseline;
	gap: calc(12 * var(--base));
	padding: calc(10 * var(--base)) 0;
}

.sns-list > li:first-child {
}

.sns-list > li a {
	display: flex;
	align-items: baseline;
	gap: calc(12 * var(--base));
	text-decoration: none;
	color: inherit;
	width: 100%;
}

.sns-label {
	flex-shrink: 0;
	min-width: calc(80 * var(--base));
	font-size: calc(12 * var(--base));
	font-weight: 700;
	color: var(--accent);
	letter-spacing: 0.05em;
}

.sns-text {
	font-size: calc(13 * var(--base));
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.03em;
}

.sns-note {
	font-size: calc(11 * var(--base));
	color: #888;
}

/* ミッションストーリー（覚醒・使命ページ）左揃え */
.story-mission .story-title,
.story-mission .story-subtitle,
.story-mission .section-text {
	text-align: left;
	padding-left: 0;
}

/* 子どもエピソード見出し・本文 */
.story-ep-title {
	font-size: calc(16 * var(--base));
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: calc(8 * var(--base));
}

.story-ep-text {
	font-size: calc(13 * var(--base));
	line-height: calc(36 / 26);
	letter-spacing: 0.03em;
}

/* contact wrapper */
.contact {
	position: relative;
	z-index: 1;
}
.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%;
}
.contactsimulation-wrapper {
	display: flex;
	width: 100%;
	height: 100%;
}
.contactsimulation-block {
	display: none;
	width: 100%;
	height: 100%;
	padding: 0 calc(12 * var(--base));
	flex: 1;
}
.contactsimulation-block.is-current {
	display: flex;
}
.contactsimulation-block-inner {
	margin: 0 auto;
	max-height: fit-content;
	width: 100%;
	height: 100%;
	overflow: auto;
	display: flex;
	flex-direction: column;
}
.contactsimulation-block-btnlist {
	margin-top: auto;
	padding-top: calc(30 * var(--base));
}
.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 > 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 > 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;
}
.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-line,
.contactsimulation-block-list .icon-instagram,
.contactsimulation-block-list .icon-calendar {
	margin: 0 auto calc(2 * var(--base));
}
.contactsimulation-block-list > li.item-large .icon-calendar {
	margin: 0 calc(12 * var(--base)) 0 0;
}
@media screen and (min-width: 768px) {
	.contactsimulation-block-list > li:hover { opacity: 0.7; }
}

/* contactsimulation form / btn */
.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 {
	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-submit { background: var(--accent); color: #fff; }
.contactbtn-off { opacity: 0.3; pointer-events: none; }
.contactbtn:hover { opacity: 0.7; }
.form-text {
	-webkit-appearance: none;
	appearance: none;
	outline: none;
	font-size: 16px;
	width: 100%;
	border: calc(1 * var(--base)) solid rgba(0,0,0,0.2);
	background: #fff;
	border-radius: calc(4 * var(--base));
	padding: calc(6 * var(--base)) calc(10 * var(--base));
}
.submit-error {
	position: absolute;
	bottom: calc(110 * var(--base));
	left: calc(12 * var(--base));
	font-size: calc(10 * var(--base));
	color: #dc3232;
}

/* PC表示：左右余白を黒に、右側にFV画像を薄く */
@media (min-width: 500px) {
	.wrapper {
		background-color: #000 !important;
		background-image: linear-gradient(
			to right,
			transparent calc(50% - max(calc(195/700*100dvh), 195px)),
			#fff calc(50% - max(calc(195/700*100dvh), 195px)),
			#fff calc(50% + max(calc(195/700*100dvh), 195px)),
			transparent calc(50% + max(calc(195/700*100dvh), 195px))
		) !important;
		background-size: auto !important;
	}
	/* 右側FV画像 */
	.wrapper::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		width: calc(50% - max(calc(195/700*100dvh), 195px));
		height: 100%;
		background: url('../img/kv_bg.webp') no-repeat center / cover;
		opacity: 0.12;
		pointer-events: none;
		z-index: 0;
	}
}
