@charset "UTF-8";

/* ========================================
   フォント定義 - 最適化版
   ======================================== */
/* Montserrat Font - 使用頻度順に最適化 */
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-regular.woff2') format('woff2'),
         url('../fonts/montserrat-regular.woff') format('woff'),
         url('../fonts/montserrat-regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-medium.woff2') format('woff2'),
         url('../fonts/montserrat-medium.woff') format('woff'),
         url('../fonts/montserrat-medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-bold.woff2') format('woff2'),
         url('../fonts/montserrat-bold.woff') format('woff'),
         url('../fonts/montserrat-bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Zen Kaku Gothic New Font - 使用頻度順に最適化 */
@font-face {
    font-family: 'Zen Kaku Gothic New';
    src: url('../fonts/zen-kaku-gothic-new-bold.woff2') format('woff2'),
         url('../fonts/zen-kaku-gothic-new-bold.woff') format('woff'),
         url('../fonts/zen-kaku-gothic-new-bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Zen Kaku Gothic New';
    src: url('../fonts/zen-kaku-gothic-new-regular.woff2') format('woff2'),
         url('../fonts/zen-kaku-gothic-new-regular.woff') format('woff'),
         url('../fonts/zen-kaku-gothic-new-regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Zen Kaku Gothic New';
    src: url('../fonts/zen-kaku-gothic-new-medium.woff2') format('woff2'),
         url('../fonts/zen-kaku-gothic-new-medium.woff') format('woff'),
         url('../fonts/zen-kaku-gothic-new-medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* YakuHanJP Font */
@font-face {
    font-family: 'YakuHanJP';
    src: url('../fonts/yakuhanjp-regular.woff2') format('woff2'),
         url('../fonts/yakuhanjp-regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'YakuHanJP';
    src: url('../fonts/yakuhanjp-medium.woff2') format('woff2'),
         url('../fonts/yakuhanjp-medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
/* @font-face {
    font-family: 'YakuHanJP';
    src: url('../fonts/yakuhanjp-bold.woff2') format('woff2'),
         url('../fonts/yakuhanjp-bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
} */

/* ========================================
   メールアドレスのスパム対策
   ======================================== */
/* JavaScriptが有効な場合はプレースホルダーを隠す */
.js-email-placeholder {
	display: inline;
}

.js .js-email-placeholder {
	display: none;
}

/* noscriptの内容を通常は隠す（JavaScriptが有効な場合） */
noscript {
	display: none;
}

/* JavaScriptが無効な場合のみnoscriptを表示 */
.no-js noscript {
	display: inline;
}

/* ========================================
   サイト全体の基本設定
   ======================================== */
:root {
	--color_black: #363636;
	--color_grey01: #F3F5F5;
	--color_grey02: #C4C5C7;
	--color_white: #FFFFFF;
	--color01: #3FBFD6;
	--color02: #CCEEF5;
	--color03: #FDD425;
	--color04: #FFF9D9;
	--color05: #E88734;

	--fw_normal: 400;
	--fw_medium: 500;
	--fw_bold: 700;
	--content_w_sm: 460px;
	--content_w_md: 768px;
	--content_w_lg: 1300px;
	/* サイズ */
	--size-half: calc(var(--size1) * 0.5);
	--size1: 6.67vw;
	--size2: calc(var(--size1) * 2);
	--size3: calc(var(--size1) * 3);
	--size4: calc(var(--size1) * 4);

	--header_height: 80px;
	--footer_height: 60px;

	/* 余白 */
	--space1: min(2.6vw, 16px);
	--space2: min(2.8vw, 20px);
	--space3: min(3.2vw, 30px);
	--space4: min(3.8vw, 40px);
	--space5: min(4.8vw, 60px);
	--space6: min(6.2vw, 80px);
	--space7: min(8.2vw, 100px);
	--space8: min(9.2vw, 120px);
	--space9: min(10.2vw, 160px);

	/* border-radius */
	--radius-min: min(1.2vw, 8px);
	--radius1: min(3.2vw, 30px);
	--radius2: min(3.8vw, 48px);
	--radius3: min(7.7vw, 100px);
	--radius4: min(10.2vw, 200px);

	/* ドロップシャドウ */
	--shadow1_color: rgba(0, 0, 0, 0.16);
	--shadow2_color: rgba(63,191,214,0.08);
	--drop-shadow1: 0 3px 6px var(--shadow1_color);
	--drop-shadow2: 0 0 10px 0 var(--shadow2_color);
	--drop-shadow3: 0 2px 8px var(--shadow2_color);

	/* transition: */
	--transition_primary: 0.3s ease;
	--transition_secondary: 0.6s ease;

	/* font-size */
	--fs10: 10px;
	--fs11: 11px;
	--fs12: 12px;
	--fs15: clamp(14px, 14 / 768 * 100vw, 15px);
	--fs16: clamp(15px, 15 / 768 * 100vw, 16px);
	--fs18: clamp(16px, 16 / 768 * 100vw, 18px);
	--fs20: clamp(16px, 16px + (20 - 16) * (100vw - 320px) / (1920 - 320), 20px);
	--fs24: clamp(18px, 18px + (24 - 18) * (100vw - 320px) / (1920 - 320), 24px);
	--fs28: clamp(20px, 20px + (28 - 20) * (100vw - 320px) / (1920 - 320), 28px);
	--fs32: clamp(22px, 22px + (32 - 22) * (100vw - 320px) / (1920 - 320), 32px);
	--fs36: clamp(24px, 24px + (36 - 24) * (100vw - 320px) / (1920 - 320), 36px);
	--fs48: clamp(28px, 28px + (48 - 28) * (100vw - 320px) / (1920 - 320), 48px);
	--fs50: clamp(30px, 30px + (50 - 30) * (100vw - 320px) / (1920 - 320), 50px);
	--fs52: clamp(32px, 32px + (52 - 32) * (100vw - 320px) / (1920 - 320), 52px);
	--fs60: clamp(36px, 36px + (60 - 36) * (100vw - 320px) / (1920 - 320), 60px);
	--fs72: clamp(42px, 42px + (72 - 42) * (100vw - 320px) / (1920 - 320), 72px);
	--fs152: clamp(80px, 80px + (152 - 80) * (100vw - 320px) / (1920 - 320), 152px);
}

* {box-sizing: border-box;}

html {
	/* scroll-behavior: smooth; */ /* JavaScriptで制御するため無効化 */
	scroll-snap-type: y mandatory;
	scroll-padding-top: var(--header_height);
}

body {
	font-family: 'YakuHanJP', "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	width: 100%;
	font-size: 15px;
	line-height: 2.0;
	font-feature-settings: "palt";
	margin: 0 auto;
	font-weight: var(--fw_normal);
	color: var(--color_black);
	background-color: var(--color_white);
	overflow-x: hidden;
}

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

ol, ul, li {list-style-type: none;}

a {color: var(--color_black); display: inline-block; text-decoration: none;}

button {font-family: inherit; border: none; font-weight: var(--fw_bold);}



/* レスポンシブ用の基本設定 */
.sp-only {display: none;}
.sp-xs-only {display: none;}

/* スマートフォン用 */
@media screen and (max-width: 768px) {
	.sp-only {display: block;}
	.pc-only {display: none;}
}

@media screen and (max-width: 480px) {
	.sp-xs-only {display: block;}
	.pc-xs-only {display: none;}
}

/* 英字フォント */
.en {
	font-family: "Montserrat";
	font-weight: var(--fw_normal);
}


/* 共通フレーム基本設定 */
.main-block {
	padding-top: var(--header_height);
	/* overflow-x: hidden; */
}

/* #Top .main-block {
	opacity: 0;
}

#Top.appear .main-block {
	opacity: 1;
} */

.wrapper {
	margin: var(--space9) auto;
	border-radius: var(--radius3) var(--radius3) 0 0;
}

:not(#Top) .wrapper {
	padding-bottom: 0;
}


.wrapper::after {
	content: "";
	display: block;
	width: 100%;
	height: var(--radius3);
	position: absolute;
	bottom: calc(var(--radius3) * -1);
	z-index: -1;
}

.wrapper.bg_color01 {
	background-color: var(--color01);
}
.wrapper.bg_color02 {
	background-color: var(--color02);
}
.wrapper.bg_color04 {
	background-color: var(--color03);
}
.wrapper.bg_color04 {
	background-color: var(--color04);
}
.wrapper.bg_color_grey01 {
	background-color: var(--color_grey01);
}
.wrapper.bg_color_white {
	background-color: var(--color_white);
}

.wrapper.bg_color01::after {
	background-color: var(--color01);
}
.wrapper.bg_color02::after {
	background-color: var(--color02);
}
.wrapper.bg_color04::after {
	background-color: var(--color04);
}
.wrapper.bg_color_grey01::after {
	background-color: var(--color_grey01);
}
.wrapper.bg_color_white::after {
	background-color: var(--color_white);
}

.container {
	width: min(100% - var(--size2), var(--content_w_lg));
	max-width: 100%;
	margin: 0 auto;
}

.border-none {border: none;}

/* 最大幅 */
.max-w_s {max-width: 624px;}
.max-w_m {max-width: 800px;}
.max-w_l {max-width: 1000px;}

/* 比率 */
.aspect-1-1 {aspect-ratio: 1 / 1;}
.aspect-1-2 {aspect-ratio: 1 / 2;}
.aspect-2-1 {aspect-ratio: 2 / 1;}
.aspect-2-3 {aspect-ratio: 2 / 3;}
.aspect-3-2 {aspect-ratio: 3 / 2;}
.aspect-3-4 {aspect-ratio: 3 / 4;}
.aspect-4-5 {aspect-ratio: 4 / 5;}
.aspect-5-4 {aspect-ratio: 5 / 4;}
.aspect-4-3 {aspect-ratio: 4 / 3;}
.aspect-9-16 {aspect-ratio: 9 / 16;}
.aspect-16-9 {aspect-ratio: 16 / 9;}

/* 余白 */
.space-section01 {
	padding-block: var(--space9);
}

.no-gap {gap: 0;}

/* マージン 左右対称 */
.mi-auto {margin-inline: auto;}

/* マージン 左右 */
.ml00 {margin-left: 0;}
.ml01 {margin-left: var(--space1);}
.ml02 {margin-left: var(--space2);}
.ml03 {margin-left: var(--space3);}
.ml04 {margin-left: var(--space4);}
.ml05 {margin-left: var(--space5);}
.ml06 {margin-left: var(--space6);}
.ml07 {margin-left: var(--space7);}
.ml08 {margin-left: var(--space8);}
.ml09 {margin-left: var(--space9);}

.ml00 {margin-left: 0;}
.mr01 {margin-right: var(--space1);}
.mr02 {margin-right: var(--space2);}
.mr03 {margin-right: var(--space3);}
.mr04 {margin-right: var(--space4);}
.mr05 {margin-right: var(--space5);}
.mr06 {margin-right: var(--space6);}
.mr07 {margin-right: var(--space7);}
.mr08 {margin-right: var(--space8);}
.mr09 {margin-right: var(--space9);}

/* マージン 上 */
.mt00 {margin-top: 0;}
.mt01-half {margin-top: calc(var(--space1) / 2);}
.mt01 {margin-top: var(--space1);}
.mt02 {margin-top: var(--space2);}
.mt03 {margin-top: var(--space3);}
.mt04 {margin-top: var(--space4);}
.mt05 {margin-top: var(--space5);}
.mt06 {margin-top: var(--space6);}
.mt07 {margin-top: var(--space7);}
.mt08 {margin-top: var(--space8);}
.mt09 {margin-top: var(--space9);}

/* マージン 下 */
.mb00 {margin-bottom: 0;}
.mb01 {margin-bottom: var(--space1);}
.mb02 {margin-bottom: var(--space2);}
.mb03 {margin-bottom: var(--space3);}
.mb04 {margin-bottom: var(--space4);}
.mb05 {margin-bottom: var(--space5);}
.mb06 {margin-bottom: var(--space6);}
.mb07 {margin-bottom: var(--space7);}
.mb08 {margin-bottom: var(--space8);}
.mb09 {margin-bottom: var(--space9);}

/* パディング 上 */
.pt01 {padding-top: var(--space1);}
.pt02 {padding-top: var(--space2);}
.pt03 {padding-top: var(--space3);}
.pt04 {padding-top: var(--space4);}
.pt05 {padding-top: var(--space5);}
.pt06 {padding-top: var(--space6);}
.pt07 {padding-top: var(--space7);}
.pt08 {padding-top: var(--space8);}
.pt09 {padding-top: var(--space9);}

/* パディング 下 */
.pb00 {padding-bottom: 0;}
.pb01 {padding-bottom: var(--space1);}
.pb02 {padding-bottom: var(--space2);}
.pb03 {padding-bottom: var(--space3);}
.pb04 {padding-bottom: var(--space4);}
.pb05 {padding-bottom: var(--space5);}
.pb06 {padding-bottom: var(--space6);}
.pb07 {padding-bottom: var(--space7);}
.pb08 {padding-bottom: var(--space8);}
.pb09 {padding-bottom: var(--space9);}


/* 行間 */
.lh10 {line-height: 1.0;}
.lh12 {line-height: 1.2;}
.lh15 {line-height: 1.5;}
.lh18 {line-height: 1.8;}
.lh20 {line-height: 2.0;}

/* 角丸 */
.radius-img {
	border-radius: var(--radius2);
	overflow: hidden;
}

/* 文字揃え */
.text-center {text-align: center;}
.text-left {text-align: left;}
.text-justify {text-align: justify;}
.text-right {text-align: right;}

/* フォントサイズ */
.fs10 {font-size: var(--fs10);}
.fs11 {font-size: var(--fs11);}
.fs12 {font-size: var(--fs12);}
.fs15 {font-size: var(--fs15);}
.fs16 {font-size: var(--fs16);}
.fs18 {font-size: var(--fs18);}
.fs20 {font-size: var(--fs20);}
.fs24 {font-size: var(--fs24);}
.fs28 {font-size: var(--fs28);}
.fs32 {font-size: var(--fs32);}
.fs36 {font-size: var(--fs36);}
.fs48 {font-size: var(--fs48);}
.fs50 {font-size: var(--fs50);}
.fs52 {font-size: var(--fs52);}
.fs60 {font-size: var(--fs60);}
.fs72 {font-size: var(--fs72);}
.fs152 {font-size: var(--fs152);}

@media screen and (max-width: 768px) {
	.fs10 {font-size: 10px;}
	.fs11 {font-size: 10px;}
	.fs12 {font-size: 12px;}
	.fs15 {font-size: 14px;}
	.fs16 {font-size: 15px;}
	.fs18 {font-size: 16px;}
	.fs20 {font-size: 16px;}
	.fs24 {font-size: 18px;}
	.fs28 {font-size: 19px;}
	.fs32 {font-size: 20px;}
	.fs36 {font-size: 22px;}
	.fs48 {font-size: 24px;}
	.fs50 {font-size: 25px;}
	.fs52 {font-size: 26px;}
	.fs60 {font-size: 28px;}
	.fs72 {font-size: 36px;}
	.fs152 {font-size: 40px;}
}

/* 文字間 */
.letter-sp_s {letter-spacing: 0.05em;}
.letter-sp_m {letter-spacing: 0.1em;}

/* 太さ */
.fw_normal {font-weight: var(--fw_normal);}
.fw_medium {font-weight: var(--fw_medium);}
.fw_bold {font-weight: var(--fw_bold);}

/* 色 */
.color01 {color: var(--color01);}
.color02 {color: var(--color02);}
.color03 {color: var(--color03);}
.color04 {color: var(--color04);}
.color05 {color: var(--color05);}
.color_white {color: var(--color_white);}

/* 背景色 */
.bg_color01 {background-color: var(--color01);}
.bg_color02 {background-color: var(--color02);}
.bg_color03 {background-color: var(--color03);}
.bg_color04 {background-color: var(--color04);}
.bg_color05 {background-color: var(--color05);}
.bg_color_white {background-color: var(--color_white);}
.bg_color_grey01 {background-color: var(--color_grey01);}

/* 黄色いマーカー */
.marker-text {
	display: inline;
	background-image: linear-gradient(to bottom, transparent 0, transparent 60%, var(--color03) 60%, var(--color03) 90%, transparent 90%, transparent 100%);
	background-size: 100% 100%;
	background-position: 0 0;
	background-repeat: no-repeat;
	padding: 0 2px;
}

/* 水色のチェックマーク */
.check-mark01 {
	display: inline-block;
	width: 1em;
	height: 1em;
	background-image: url(../img/common/checkmark_color01.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* インデント */
.indent01 {text-indent: -1em; padding-left: 1em;}

/* リスト */
.bullet-list li {
	display: flex;
}
.bullet-list li::before {
	content: "・";
	margin-right: 0.5em;
	/* display: inline-block;
	width: 1em;
	height: 1em; */
}

/* ヘッダー設定 */
#header-block {
	position: fixed;
	top: 0;
	background-color: var(--color_white);
	width: 100%;
	z-index: 999;
	height: var(--header_height);
	transition: var(--transition_secondary);
	-webkit-transition: var(--transition_secondary);
	-moz-transition: var(--transition_secondary);
	-ms-transition: var(--transition_secondary);
	-o-transition: var(--transition_secondary);
}

#header-block .header__container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	margin: 0 auto;
}

#header-block .header__logo {
	width: 20%;
	max-width: 240px;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-left: calc(var(--header_height) / 4);
}

#header-block .header__logo #home_link img {
	display: block;
	object-fit: contain;
	height: calc(var(--header_height) - 10px);
}


#header-block .nav-unit {
	width: 80%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

#header-block .header__nav {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

#header-block .header__nav > ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
}

#header-block .header__nav > ul > li {
	padding: 0 10px;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
	position: relative;
}

#header-block .header__nav > ul > li > a {
	color: var(--color_black);
	letter-spacing: 0.05em;
	text-decoration: none;
	text-align: center;
	height: var(--header_height);
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
}

#header-block .header__nav > ul > li > a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--color01);
	transform-origin: left top;
	transform: scale(0, 1);
	-webkit-transform: scale(0, 1);
	-moz-transform: scale(0, 1);
	-ms-transform: scale(0, 1);
	-o-transform: scale(0, 1);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

#header-block .header__nav > ul > li:hover > a::after {
	transform: scale(1, 1);
	-webkit-transform: scale(1, 1);
	-moz-transform: scale(1, 1);
	-ms-transform: scale(1, 1);
	-o-transform: scale(1, 1);
}

#header-block .header__nav > ul > li > .nav-child {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	top: 100%;
	left: 10px;
	width: calc(100% - 20px);
	color: var(--color_black);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
	transition-timing-function: ease;
}

#header-block .header__nav > ul > li:hover > .nav-child {
	visibility: visible;
	opacity: 1;
}

#header-block .header__nav .nav-child > li > a {
	font-size: 14px;
	line-height: 1.5;
	color: var(--color_black);
	background-color: var(--color_white);
	text-decoration: none;
	padding: 15px 10px;
	width: 100%;
	position: relative;
	text-align: left;
	display: block;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

#header-block .header__nav .nav-child > li > a:hover {
	opacity: 0.7;
}

#header-block .header__nav .nav-btn {
	margin-left: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
}

#header-block .header__nav .nav-btn .nav-btn__link {
	color: var(--color_white);
	letter-spacing: 0.05em;
	text-decoration: none;
	text-align: center;
	width: var(--header_height);
	height: var(--header_height);
	padding: calc(var(--header_height) * 0.32) calc(var(--header_height) * 0.25);
	background-color: var(--color_black);
	transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	display: flex;
	justify-content: center;
	align-items: center;
}

#header-block .header__nav .nav-btn .nav-btn__link:hover {
	background-color: var(--color01);
}

#header-block .header__nav .nav-btn .nav-btn__link img {
	object-fit: contain;
}


/* フッター設定 */
#footer-block {
	background-color: var(--color_white);
}

#footer-block .footer__container {
	width: 100%;
	display: flex;
	gap: var(--space6);
	max-width: calc(var(--content_w_lg) + 2.6vw * 2);
	padding: 60px 2.6vw;
}

#footer-block .footer__nav {
	width: 100%;
}

#footer-block .footer__nav ul {
	display: grid;
	grid-template-columns: repeat(auto-fit
	, minmax(236px,1fr));
	gap: 32px 60px;
}

#footer-block .footer__nav > ul > li > .footer__nav-list-child {
	width: fit-content;
	display: flex;
	flex-direction: column;
	gap: 0.1em;
	margin-top: 1em;
}

#footer-block .footer__nav a {
	width: 100%;
	display: block;
	text-decoration: none;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
	position: relative;
}

#footer-block .footer__nav > ul > li > .footer__nav-list-child a {
	font-size: 14px;
}

#footer-block .footer__nav a::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	padding-top: 8px;
	background: linear-gradient(to right, var(--color_black), var(--color_black));
	background-size: 100% 1px;
	background-position: left bottom;
	background-repeat: no-repeat;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
}

#footer-block .footer__nav > ul > li > .footer__nav-list-child a::before {
	background: none;
}

#footer-block .footer__nav a::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	padding-top: 8px;
	background: linear-gradient(to right, var(--color01), var(--color01));
	background-size: 0 1px;
	background-position: left bottom;
	background-repeat: no-repeat;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
}

#footer-block .footer__nav a:hover::after {
	background: linear-gradient(to right, var(--color03), var(--color01));
	background-size: 100% 1px;
	background-position: left bottom;
	background-repeat: no-repeat;
}

#footer-block .footer__nav a:hover {
	font-weight: var(--fw_medium);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

#footer-block .footer__content {
	min-width: 400px;
}

#footer-block .footer__content .footer__logo {
	max-width: 120px;
	margin: 0 auto;
}

#footer-block .footer__content .company_service {
	letter-spacing: 0em;
}

#footer-block .footer__content .company_service:hover {
	text-decoration: none;
	transform: scale(1.02);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

#footer-block .footer__content .company-name {
	letter-spacing: 0.05em;
	padding-top: 40px;
}

#footer-block .footer__content address {
	font-style: normal;
}

#footer-block .footer_bottom-block {
	max-width: 100vw;
	/* margin-inline: calc(50% - 50vw); */
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: var(--color01);
	padding: 20px 2.6vw;
}

#footer-block .footer__sub-nav ul {
	display: flex;
	justify-content: center;
}

#footer-block .footer__sub-nav ul li:first-of-type {
	border-left: none;
}

#footer-block .footer__sub-nav ul li + li {
	padding-left: 16px;
}

#footer-block .footer__sub-nav a {
	font-size: 13px;
	line-height: 1.0;
	color: var(--color_white);
	text-decoration: none;
	display: block;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

#footer-block .footer__sub-nav a:hover {
	text-decoration: underline;
}

#footer-block .footer__copyrights {
	font-size: 13px;
	line-height: 1.5;
	color: var(--color_white);
	text-align: center;
}


/* フッターフローティングメニュー設定 */
#footer-floating-block {
	position: fixed;
	bottom: -1px;
	left: 0;
	z-index: 980;
	width: 100%;
	height: var(--footer_height);
	box-shadow: 0px -3px 10px 0px rgba(119, 127, 151, 0.3);
}

#footer-floating-block ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

#footer-floating-block ul li {
	width: 25%;
	height: var(--footer_height);
	border-left: 1px solid var(--color03);
}

#footer-floating-block ul li:first-of-type {
	border-left: none;
}

#footer-floating-block a {
	width: 100%;
	height: 100%;
	display: flex;
	gap: 4px;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	background-color: var(--color01);
	padding: 10px 10px;
	font-size: 12px;
	text-align: center;
	text-decoration: none;
	color: var(--color_white);
}

#footer-floating-block a figure {
	aspect-ratio: 1/1;
	max-width: 24px !important;
	min-width: 16px;
}

#footer-floating-block a span {
	letter-spacing: 0.05em;
}


/* 下層ページ設定 ////////////////////////////////////////////////// */

/* 下層ページでページタイトル下で使用するとき */
#page-title-block + .wrapper {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: var(--space5);
	background-color: var(--color_white);
	position: relative;
}

/* h1基本設定（下層ページタイトル） */
#page-title-block {
	padding: var(--space5) 0;
	position: relative;
}

#page-title-block::before{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: calc(var(--radius3) * -1);
	left: 0;
	z-index: -1;
	width: 100%;
	height: calc(100% + var(--radius3));
	background: url(../img/common/page-title-block_bg.webp) no-repeat center center / cover;
}

#page-title-block::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: calc(var(--radius3) * -1);
	left: 0;
	z-index: -1;
	width: 200%;
	height: 200%;
	background: linear-gradient(-40deg, var(--color01), var(--color02), var(--color04), var(--color01), var(--color02), var(--color04), var(--color01));
	background-size: 200% 100%;
	background-position: center center;
	background-repeat: no-repeat;
	mix-blend-mode: multiply;
	animation: page-title-block-bg-animation 1.5s ease forwards;
}

@keyframes page-title-block-bg-animation {
	0% {
		background-position: right bottom;
	}
	100% {
		background-position: left top;
		opacity: 0;
	}
}



/* h2基本設定(コンテンツタイトル) */
.cont-ttl .point-label {
	text-align: center;
	padding-inline: 0.2em;
	padding-bottom: 0.4em;
	position: relative;
}

.cont-ttl .point-label.text-left {
	text-align: left;
	padding-top: var(--space7)
}

.cont-ttl .point-label .point-text__en {
	display: inline-block;
	width:fit-content;
	line-height: 1;
	position: relative;
}

.cont-ttl .point-label.text-left .point-text__en::after {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 3px;
	position: absolute;
	top: 50%;
	margin-left: 0.2em;
	transform: translateY(-50%);
	background-color: var(--color05);
}

.cont-ttl .point-label .point-arrow {
	display: flex;
	width: 100%;
	height: clamp(2px, 0.8vw, 5px);
	position: relative;
	top: clamp(5px, 1.6vw, 10px);
}

.cont-ttl .point-label .point-arrow span {
	display: inline-block;
	height: clamp(2px, 0.44vw, 5px);
	background-color: var(--color05);
	border-radius: 2.5px;
}

.cont-ttl .point-label .point-arrow span:nth-of-type(1) {
	width: 70%;
	margin-right: 5%;
}

.cont-ttl .point-label .point-arrow span:nth-of-type(2) {
	width: 8%;
	position: absolute;
	left: 70%;
	top: 0px;
	width: 0.8em;
	height: clamp(2px, 0.46vw, 5px);
	background-color: var(--color05);
	border-radius: 2.5px;
	transform-origin: left center;
	transform: rotate(150deg);
}

.cont-ttl .point-label .point-arrow span:nth-of-type(3) {
	width: 25%;
}


.cont-ttl .cont-ttl--jp {
	line-height: 1.5;
	font-weight: var(--fw_bold);
	letter-spacing: 0.05em;
}

.cont-ttl .cont-ttl--en {
	font-size: clamp(13px,3vw,15px);
	line-height: 1.5;
	font-weight: var(--fw_bold);
	letter-spacing: 0.1em;
}



/* リンクボタン基本設定 */
.link-btn__unit-wrapper {
	display: flex;
	justify-content: center;
	gap: 3em;
}

.link-btn__unit-wrapper .link-btn {
	min-width: 100%;
	white-space: nowrap;
}

.link-btn__unit.align-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2em;
}
.link-btn__unit.align-right {
	display: flex;
	justify-content: flex-end;
}

.link-btn__unit.link-btn--mt01 {
	margin-top: var(--space7);
}

.link-btn__unit.link-btn--mt02 {
	margin-top: var(--space9);
}

.link-btn__unit .link-btn {
	display: inline-flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space2);
	font-weight: var(--fw_medium);
	line-height: 1.5;
	letter-spacing: 0.05em;
	text-decoration: none;
	color: var(--color_white);
	background-color: var(--color01);
	border: 2px solid var(--color01);
	margin: 0;
	padding: var(--space1) var(--space3);
	border-radius: 9999px;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

.link-btn__unit .link-btn--primary {
	font-size: clamp(15px, 16 / 768 * 100vw, 16px);
}

.link-btn__unit .link-btn:hover {
	background-color: var(--color_white);
	color: var(--color01);
	transform: scale(1.02) translateY(-2px);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
	box-shadow: 3px 3px 10px rgba(74, 166, 194, 0.3);
}

.link-btn__unit .link-btn--secondary {
	font-size: clamp(16px, 18 / 768 * 100vw, 18px);
	padding: var(--space1) var(--space6);
}

.link-btn__unit .arrow {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 1.2em;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

.link-btn__unit .link-btn:hover .arrow {
	transform: translateX(0.3em);
}

.link-btn__unit .arrow svg .cls-1,
.link-btn__unit .arrow svg .cls-2 {
	fill: none;
	stroke: #fff;
	stroke-width: 2px;
}

.link-btn__unit .link-btn:hover .cls-1,
.link-btn__unit .link-btn:hover .cls-2 {
	stroke: var(--color01);
}

.link-btn__unit .arrow svg .cls-1 {
	stroke-linecap: square;
	stroke-dasharray: 1 0;
}

/* ページ内リンク設定 */
.page-link-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 2em;
	align-items: center;
	margin-bottom: var(--space6);
}

.page-link-unit {
	display: block;
	background: var(--color_white);
	border-bottom: 2px solid var(--color01);
	letter-spacing: 0.05em;
	white-space: nowrap;
  }

.page-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5em;
	padding: 0.2em 0.2em;
	cursor: pointer;
	font-size: var(--fs15);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

.page-link:hover {
	background-color: var(--color02);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

.page-link .arrow-down {
	width: 0.9em;
	padding-top: 0.1em;
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

.page-link:hover .arrow-down {
	transform: translateY(0.2em);
}

.page-link .arrow-down svg .cls-1,
.page-link .arrow-down svg .cls-2 {
	fill: none;
	stroke: var(--color01);
	stroke-width: 2px;
}

.page-link .arrow-down svg .cls-1 {
	stroke-linecap: square;
	stroke-dasharray: 1 0;
}

/* 外部リンク */
.external-link {
	font-weight: var(--fw_medium);
	text-decoration: underline;
}

.external-link:hover {
	color: var(--color01);
	transition: var(--transition_primary);
	-webkit-transition: var(--transition_primary);
	-moz-transition: var(--transition_primary);
	-ms-transition: var(--transition_primary);
	-o-transition: var(--transition_primary);
}

/* パンクズリスト設定 */
.breadcrumbs-block {
	font-size: 13px;
	padding: 0 calc(var(--radius3) * 0.5) var(--space5);
	position: relative;
	z-index: 1;
}

.breadcrumbs-block ol {
	display: flex;
	flex-wrap: wrap;
}

.breadcrumbs-block ol li {
	position: relative;
}

.breadcrumbs-block ol li:last-of-type {
	padding-right: 0;
}

.breadcrumbs-block ol li::after {
	content: "/";
	color: var(--color01);
	padding-inline: 0.5em;
}

.breadcrumbs-block ol li:last-of-type::after {
	content: none;
}

.breadcrumbs-block a {
	text-decoration: none;
}

.breadcrumbs-block a:hover {
	color: var(--color01);
	text-decoration: underline;
}

/* ハンバーガーメニュー設定 start------------- */

	/*** ハンバーガーボタン ***/
	.nav-burger-unit {
		display: none;
	}

	.nav-burger-unit .open-btn {
		position: relative;
		z-index: 9999;
		top: 0;
		right: 0;
		cursor: pointer;
		width: var(--header_height);
		height: var(--header_height);
	}

	/* 展開時のハンバーガーボタン */
	.nav-burger-unit .open-btn.active {
		/* position: fixed; */
		z-index: 9999;
		top: 0;
		right: 0;
		width: var(--header_height);
		height: var(--header_height);
		background-color: var(--color_white);
		transition: var(--transition_primary);
		-webkit-transition: var(--transition_primary);
		-moz-transition: var(--transition_primary);
		-ms-transition: var(--transition_primary);
		-o-transition: var(--transition_primary);
		animation: background-color 0.2s 0.3s ease-in-out forwards;
	}

	/* ×に変化 */
	.nav-burger-unit .open-btn span {
		--humburger-line-width: 2px;
		width: calc(var(--header_height) * 0.4);
		display: inline-block;
		position: absolute;
		right: calc(var(--header_height) * 0.3);
		height: var(--humburger-line-width);
		border-radius: 0;
		background-color: var(--color_black);
		transition: var(--transition_primary);
		-webkit-transition: var(--transition_primary);
		-moz-transition: var(--transition_primary);
		-ms-transition: var(--transition_primary);
		-o-transition: var(--transition_primary);
	}

	.nav-burger-unit .open-btn span:nth-of-type(1) {
		top:calc(var(--header_height) * 0.35);
		transform-origin: right top;
	}

	.nav-burger-unit .open-btn span:nth-of-type(2) {
		top:calc(var(--header_height) * 0.5 - var(--humburger-line-width) / 2);
	}

	.nav-burger-unit .open-btn span:nth-of-type(3) {
		bottom: calc(var(--header_height) * 0.35);
		transform-origin: right bottom
	}


	@keyframes background-color {
		0% {
			background-color: var(--color_white);
		}
		50% {
			background-color: var(--color_grey01);
		}
		100% {
			background-color: transparent;
		}
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(1) {
		top: 20px;
		top:calc(var(--header_height) * 0.3);
		width: calc(var(--header_height) * 0.4);
		transform: translateY(6px) rotate(-37deg);
		-webkit-transform: translateY(6px) rotate(-37deg);
		-moz-transform: translateY(6px) rotate(-37deg);
		-ms-transform: translateY(6px) rotate(-37deg);
		-o-transform: translateY(6px) rotate(-37deg);
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(2) {
		opacity: 0;
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(3){
		bottom: 20px;
		bottom:calc(var(--header_height) * 0.3);
		width: calc(var(--header_height) * 0.4);
		transform: translateY(-6px) rotate(37deg);
		-webkit-transform: translateY(-6px) rotate(37deg);
		-moz-transform: translateY(-6px) rotate(37deg);
		-ms-transform: translateY(-6px) rotate(37deg);
		-o-transform: translateY(-6px) rotate(37deg);
	}

	/*** ハンバーガーメニュー ***/
	.header__nav-burger {
		position: fixed;
		z-index: 999;
		top: 0;
		right: -200%;
		width: 100%;
		max-width: var(--content_w_sm);
		height: 100vh;
		background: var(--color_grey01);
		transition: var(--transition_secondary);
		-webkit-transition: var(--transition_secondary);
		-moz-transition: var(--transition_secondary);
		-ms-transition: var(--transition_secondary);
		-o-transition: var(--transition_secondary);
	}

	.header__nav-burger.panel-active {
		right: 0;
	}



	/* ナビゲーションの縦スクロール */
	.header__nav-burger.panel-active .nav-burger__inner {
		position: fixed;
		z-index: 999;
		width: 100%;
		max-width: var(--content_w_sm);
		height: 100vh;
		height: 100dvh;
		margin: 0 auto;
		overflow: auto;
	}

	/* メニューが開いているときのbodyスクロール防止 */
	body.menu-open {
		/* overflow: hidden; */
		/* -webkit-overflow-scrolling: touch; */
		/* padding: 20px 0; */
	}

	/* ナビゲーション内のロゴ */
	.header__nav-burger .nav-burger__logo {
		width: 50%;
		margin-top: 20px;
		margin-inline: auto;
	}


	/* ナビゲーション */
	.nav-burger__list > ul {
		margin: 20px auto;
		width: 90%;
	}

	/* アナログ写真風 白枠と影が付いた装飾を画像に付ける */
	.figure-portrait {
		padding: max(6px, 2vw);
		background-color: var(--color_white);
		box-shadow: var(--drop-shadow1);
	}

	.half {
		padding: max(6px, 1vw);
	}
	
	.figure-portrait .figure-inner {
		width: 100%;
		height: 100%;
		overflow: hidden;
	}
	
	.figure-portrait .figure-inner img {
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	/* 長方形画像 */
	.figure-rectangle {
		width: 100%;
		height: 100%;
		overflow: hidden;
	}
	
	.figure-rectangle img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* ホバーしたらグレースケールになる画像 */
	a:has(.hover-greyscale) {
		overflow: visible;
		transition: var(--transition_primary);
	}

	a:has(.hover-greyscale):hover {
		transform: translateY(-10px);
		transition: var(--transition_primary);
	}

	.hover-greyscale {
		overflow: hidden;
		transition: var(--transition_primary);
	}

	a:has(.hover-greyscale):hover .hover-greyscale {
		border-radius: var(--radius1);
		transition: var(--transition_primary);
	}

	.hover-greyscale img {
		filter: grayscale(0) brightness(1);
		transform: scale(1);
		transition: var(--transition_primary);
	}

	a:has(.hover-greyscale):hover img {
		transform: scale(1.1);
		filter: grayscale(1) brightness(0.8);
		transition: var(--transition_primary);
	}

	/* リストのレイアウト設定 */
	.nav-burger__list > ul > li {
		list-style: none;
		text-align: center;
		border-bottom: solid 1px var(--color_grey02);
	}

	.nav-burger__link {
		width: 100%;
		padding: 20px 35px 20px 5px;
		position: relative;
		z-index: +1;
		cursor: pointer;
		transition: .35s;
		font-size: 17px;
		line-height: 1.5;
		font-weight: 500;
		letter-spacing: 0.05em;
		text-align: left;
		-webkit-transition: .35s;
		-moz-transition: .35s;
		-ms-transition: .35s;
		-o-transition: .35s;
	}

	.nav-burger__link.open {
		width: 100%;
	}

	.nav-burger__link > a {
		display: block;
		text-decoration: none;
		color: var(--color_black);
	}

	.nav-burger__link .add-mark {
		position: absolute;
		top: 50%;
		right: 5px;
		width: 16px;
		height: 16px;
		margin-top: -10px;
	}

	.add-mark:before, .add-mark:after {
		position: absolute;
		content: "";
		margin: auto;
		vertical-align: middle;
	}

	.add-mark:before {
		border-top: 2px solid var(--color_black);
		width: 14px;
		height: 0;
		top: 6px;
		bottom: 0;
		right: 0;
	}

	.add-mark:after {
		border-left: 2px solid var(--color_black);
		width: 0;
		height: 14px;
		top: 6px;
		bottom: 0;
		left: 8px;
		transition: .3s;
		-webkit-transition: .3s;
		-moz-transition: .3s;
		-ms-transition: .3s;
		-o-transition: .3s;
	}

	.nav-burger__link.open .add-mark:after {
		height: 0;
	}

	.nav-burger__link-child {
		display: none;
		padding: 0 8px 20px 8px;
	}

	.nav-burger__link-child a {
		text-align: left;
		display: block;
		font-size: 15px;
		letter-spacing: 0.05em;
		margin-bottom: 10px;
		position: relative;
		padding: 0 1em 0 1em;
		color: var(--color_black);
		text-decoration: none;
		width: 16em;
		/* max-width: fit-content; */
	}

	.nav-burger__link-child a::after {
		content: "";
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%) rotate(45deg);
		-webkit-transform: translateY(-50%) rotate(45deg);
		-moz-transform: translateY(-50%) rotate(45deg);
		-ms-transform: translateY(-50%) rotate(45deg);
		-o-transform: translateY(-50%) rotate(45deg);
		width: 0.5em;
		height: 0.5em;
		border: 1px solid currentColor;
		border-left: none;
		border-bottom: none;
	}

	.nav-burger__link-child li:last-of-type a {
		margin-bottom: 0;
	}
	/*** ハンバーガーメニュー-end ***/

/* ハンバーガーメニュー設定 end------------- */

/* お問い合わせページ以外でreCAPTCHAバッジを非表示 */
body:not(#Contact) .grecaptcha-badge {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    z-index: -999 !important;
    display: none !important;
}

/* お問い合わせブロック */
#Top .contact-block.wrapper.js-inview,
:not(#Top) .contact-block.wrapper {
	background: url(../img/common/contact_bg.webp) no-repeat center / 120%;
	filter: hue-rotate(60deg) brightness(1.2);
	padding: var(--space6) calc(var(--space6) * 1.2);
	margin-bottom: 0;
	border-radius: revert;
	opacity: 0;
	transition: ease-in-out 1s;
	-webkit-transition: ease-in-out 1s;
	-moz-transition: ease-in 1s;
	-ms-transition: ease-in 1s;	
	-o-transition: ease-in 1s;
}

#Top .contact-block.wrapper.js-inview.is-show {
	background: url(../img/common/contact_bg.webp) no-repeat center / cover;
	filter: hue-rotate(0) brightness(1);
	opacity: 1;
}

:not(#Top) .contact-block.wrapper {
	background: url(../img/common/contact_bg.webp) no-repeat center / cover;
	filter: hue-rotate(0) brightness(1);
	opacity: 1;
	margin-top: 0;
}

.contact-block.wrapper::after {
	display: none;
}

.contact-block .container {
	background-color: var(--color_white);
	padding: var(--space2) var(--space4);
	border-radius: var(--radius1);
	margin: revert;
	width: min(100% - var(--size2), var(--content_w_lg));
	margin-inline: auto;
}

.contact-block .contact-content__text {
	width: fit-content;
	margin-inline: auto;
	text-align: justify;
}

.contact-block .link-btn__unit {
	margin-top: var(--space4);
}

.contact-block .link-btn__unit .link-btn {
	width: clamp(200px, 40%, 24em);
}

#merit-block.wrapper::after {
	display: none;
}


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

	.nav-unit {
		display: none;
	}

	.nav-burger-unit {
		display: block;
	}


	/* ヘッダー設定 */
	:root {
		--header_height: 60px;
	}

	main {
		padding-top: var(--header_height);
	}

	#header-block {
		height: var(--header_height);
	}

	#header-block .header__logo {
		width: calc(100% - var(--header_height));
		/* max-width: 80px; */
	}


/* ハンバーガー設定 start------------- */
	#header-block .header__nav > ul {
		display: none;
	}

	/* ×に変化 */
	.nav-burger-unit .open-btn span {
		right: 16.5px;
	}

	.nav-burger-unit .open-btn span:nth-of-type(1) {
		top:20px;
	}

	.nav-burger-unit .open-btn span:nth-of-type(2) {
		top:29px;
	}

	.nav-burger-unit .open-btn span:nth-of-type(3) {
		bottom: 20px;
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(1) {
		top: 16px;
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(2) {
		opacity: 0;
	}

	.nav-burger-unit .open-btn.active span:nth-of-type(3){
		bottom: 16px;
	}
	/* ハンバーガー end */

	/* フッター設定 */
	/* #footer-block .footer__container {
		flex-direction: column;
		gap: 40px;
	} */

}

/* レイアウト */
.col-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space4) var(--space6);
}

.col-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space4) var(--space5);
}

.sp_xs-only {
	display: none;
}


/* スマートフォン用 */
@media screen and (max-width: 768px) {

	body {
		font-size: 14px;
		line-height: 1.8;
	}


	/* 共通フレーム基本設定 */
	/* .wrapper {
		margin: 80px auto;
	} */

	.link-btn__unit-wrapper {
		flex-direction: column;
		gap: 0;
	}

	.link-btn__unit-wrapper .link-btn {
		min-width: revert;
	}

	/* フッター設定 */
	/* フッター設定 */
	#footer-block {
		padding-bottom: var(--footer_height);
	}

	#footer-block .footer__nav {
		display: none;
	}

	#footer-block .footer__content {
		margin: 0 auto;
		display: flex;
		gap: var(--space6);
	}

	#footer-block .footer__content .company-name {
		font-size: 20px;
	}

	#footer-block .footer__content address {
		font-size: 16px;
	}

	#footer-block .footer__sub-nav a {
		font-size: 14px;
		color: var(--color_black);
	}

	#footer-block .footer__copyrights {
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		font-size: 10px;
		padding: 0.5em 0;
		background-color: var(--color01);
	}

	#footer-block .footer__content .company-name {
		padding-top: 0;
	}

	#footer-block .footer__content-sub-title {
		font-size: 16px;
	}

	#footer-block .footer__sub-nav {
		padding-inline: var(--size1);
		margin-inline: auto;
	}

	/* パンクズリスト設定 */
	.breadcrumbs-block {
		font-size: 12px;
		padding-bottom: 3em;
	}

	.breadcrumbs-block ol {
		width: 90%;
		margin: 0 auto;
	}

	.breadcrumbs-block ol li::after {
		width: 0.4em;
		height: 0.4em;
	}

	/* レイアウト */
	.col-2 {
		grid-template-columns: 1fr;
	}

	.col-3 {
		grid-template-columns: 1fr 1fr;
	}

	.contact-block .container {
		width: 100%;
	}

	/* フッター下部ブロックのスマホ対応 */
	#footer-block .footer__container {
		padding: 30px 20px;
	}

	#footer-block .footer_bottom-block {
		flex-direction: column;
		/* align-items: flex-start; */
		gap: 20px;
		background-color: transparent;
		padding: 0;
		text-align: left;
	}

	#footer-block .footer__content .company_service {
		font-size: 24px;
	}


}

@media screen and (max-width: 600px) {
	.link-btn__unit-wrapper .link-btn {
		width: 80%;
	}

	.link-btn__unit .link-btn {
		width: auto;
		min-width: 80%;
	}

	#footer-block .footer__content {
		flex-direction: column;
		gap: var(--space4);
	}

	#footer-block .footer__content .company_service {
		font-size: 20px;
	}
}

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

	.contact-block.wrapper {
		padding: var(--space4) var(--size1);
	}

	.contact-block .contact-content__text {
		font-size: 14px;
	}

	#page-title-block .container::after {
		display: none;
	}

	#footer-block .footer__container {
		padding: 20px var(--size1);
	}

	#footer-block .footer__content {
		text-align: left;
		min-width: 100%;
	}

	#footer-block .footer__content .company-name {
		padding-top: 10px;
		font-size: 18px;
	}

	#footer-block .footer_bottom-block {
		flex-direction: column;
		align-items: center;
		gap: 1em;
		background-color: transparent;
		padding: 0;
		text-align: center;
	}

	#footer-block .footer__content address {
		font-size: 16px;
		line-height: 1.5;
	}

	#footer-block .footer__copyrights {
		display: block;
		width: 100%;
		margin-inline: calc(50% - 50vw);
		background-color: var(--color01);
		padding: 0.4em var(--size1);
	}

	.sp_xs-only {
		display: block;
	}

	.col-3 {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 340px) {
	#footer-floating-block .fs14.fw_medium {
		display: none;
	}
}
