@charset "utf-8";

/* ヘッダー
-------------------------------------*/
header {
	width: 100%;
	background-color: var(--white);
	position: -webkit-sticky;
	position: sticky;
	top: 0;
    left: 0;
	z-index: 10;
}

header .head-area {
	max-width: 1200px; min-height: 80px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.head-logo a:hover,.head-logo a:hover img {opacity: 1;}
.head-logo a {
	position: absolute;
    top: 0; left: 0;
	margin-top: 1rem; margin-left: 1rem;
	transition: margin .3s ease;
}
.head-logo img {
	width: clamp(42px,12vw,134px);
	filter: drop-shadow(6px -2px 0 var(--white)) drop-shadow(-6px -2px 0 var(--white)) drop-shadow(0px 6px 0 var(--white)) drop-shadow(0px -4px 0 var(--white));
	transition: width .3s ease;
}
.head-logo span {
	margin-left: clamp(100px,18vw,160px);
	transition: margin .3s ease;
}

header.scrolled .head-logo a {margin-top: .5rem;}
header.scrolled .head-logo img {width: clamp(42px, 12vw, 64px);}
header.scrolled .head-logo span {margin-left: 100px;}

header .head-nav {
	display: flex;
	justify-content: center;
	align-items: center;
}

.nav-area {padding: 0 1rem;}

.nav-area ul {
	display: flex; justify-content: center; gap: 1rem;
	font-size: clamp(16px, 2vw, 18px); font-weight: 700;
}

.nav-area ul li {
	padding: 0 .5rem;
}
.nav-area ul li a {transition: color .3s ease;}
.nav-area ul li a:hover {
	opacity: 1;
	color: var(--sub-color_01);
}

/* ハンバーガーボタン */
.hamburger {display: none;}
#mobile-nav {display: none;}

/* オーバーレイ */
.overlay {display: none;}

/* 下層ヘッダー */
header.sub-head .head-logo {
	display: flex; align-items: center;
}
header.sub-head .head-logo a {
	position: initial;
	margin-top: .5rem; margin-bottom: .5rem;
}
header.sub-head .head-logo img {
	width: clamp(42px, 12vw, 64px);
    filter: none;
}
header.sub-head .head-logo span {
	margin-left: clamp(.5rem, 1.5vw, 1rem);
}


@media screen and (max-width: 960px) {
	
	header .head-nav {padding-bottom: 1rem;}
	
	#mobile-nav {display: block;}
	#desktop-nav {display: none;}
	
	/* ▼ここから：モバイルナビをフェードイン表示に変更 */
	.nav-area {
		position: fixed;
		left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
		width: 100%;
		padding: 4rem;
		/* top は JS 側で updateMobileNavPosition() が設定 */

		/* フェード用設定 */
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.6s ease-out, visibility 0.6s ease-out;

		z-index: 9;
		
		background-color: var(--white);
        width: 80%;
        margin: 6rem auto;
		box-shadow: 0 0 30px rgba(255, 255, 255, 0.6);
		
	}
	.nav-area.is-open {
		opacity: 1;
		visibility: visible;
	}
	/* ▲ここまでフェード用 ------------------------- */
		
	.nav-area ul {
        display: block;
        
    }
	
	.nav-area ul li {
		/*border-bottom: 1px solid var(--white);*/
		text-align: center;
		padding: .5rem 1rem;
	}
		
	.nav-area ul li:last-of-type {border-bottom: none;}
	
	.nav-area ul li a {color: var(--main-color); width: 100%; padding: .5rem 0;}
	
	/* ハンバーガーボタン */
	.hamburger {
		display: block;
		position: absolute;
		right: 2%;
		top: 50%;
		transform: translateY(-50%);
		background-color: var(--main-color);
		cursor: pointer;
		width: 50px;
		height: 50px;
	}
	
	.hamburger span {
		display: inline-block;
		transition: all .4s;
		position: absolute;
	}
	
	.hamburger span:nth-of-type(1),.hamburger span:nth-of-type(3) {
		height: 2px;
		background-color: var(--white);
		width: 62%;
		left: 10px;
	}
	
	.hamburger span:nth-of-type(1) {
		top:13px;	
	}

	.hamburger span:nth-of-type(2) {
		top:19px;
		left:11px;
		font-size:0.6rem;
		text-transform: uppercase;
		color: var(--white);
	}

	.hamburger span:nth-of-type(3) {
		top:36px;
	}

	/*activeクラスが付与されると線が回転して×になり、Menu表記をしている2つ目の要素が透過して消える*/
	.hamburger.active span:nth-of-type(1) {
		top: 18px;
		left: 18px;
		transform: translateY(6px) rotate(-45deg);
		width: 30%;
	}

	.hamburger.active span:nth-of-type(2) {
		opacity: 0;
	}

	.hamburger.active span:nth-of-type(3){
		top: 30px;
		left: 18px;
		transform: translateY(-6px) rotate(45deg);
		width: 30%;
	}
	
	/* オーバーレイ */
	.overlay {
		display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(31, 41, 55, 0.5);
		backdrop-filter: blur(4px);
		-webkit-backdrop-filter: blur(4px);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
		z-index: 8;
    }
	.overlay.active {
		opacity: 1;
		visibility: visible;
    }
	body.menu-open {overflow: hidden;}
}

@media screen and (max-width: 560px) {
	.head-logo {display: flex; align-items: center;}
	.head-logo a {
		position: initial;
		margin-top: .5rem; margin-bottom: .5rem;
	}
	.head-logo img {filter: none;}
	.head-logo span,
	header.scrolled .head-logo span {margin-left: clamp(.5rem, 1.5vw, 1rem);}
	
}

/* フッター
-------------------------------------*/
footer {
	padding: 1rem 1rem;
	background-color: var(--white);
	color: var(--black);
}

.foot-logo {max-width: clamp(106px,20vw,150px);}

footer table :is(th,td) {padding: .25rem .5rem;}
footer table th {width: 24%; white-space: nowrap;}

.foot-nav ul {
    display: flex; justify-content: center; align-items: center;
    flex-wrap: wrap;
}
.foot-nav ul li {
    margin: .25rem 0; padding: 0 1rem;
    position: relative;
}
.foot-nav ul li::after {
    content: "";
    position: absolute; 
	right: 0; top: 50%; transform: translateY(-50%);
    width: 1px; height: 1.25em;
    background-color: currentColor;
    opacity: var(--show-after, 1);
    transition: opacity 0.2s ease;
}
.foot-nav ul li:last-of-type::after {display: none;}

.copyright {font-size: 14px;text-align: center;margin: 0;}


/* トップページ
-------------------------------------*/
/* FV */
.fv {
    text-align: center;
    position: relative;
	max-width: 1300px;
    margin: 0 auto;
    padding: 0 clamp(1rem,3.5vw,3.125rem);
}
.fv h1 {
	position: absolute; z-index: 1;
	left: clamp(.5rem,calc(( -46.5rem + 100vw ) / 14),3.125rem);
	top: 50%; transform: translateY(-50%);
    margin: 0;
	line-height: 2.1em;
}
.fv h1 > span > span {padding: 0; background-color: transparent;}
.fv h1.text-bg-clone > span {
	background-color: var(--main-color);
    color: var(--white); 
}
.fv h1.text-bg-clone > span:last-of-type {
	position: relative; left: 9%;
}
.fv ul {
	max-width: 1100px;
    margin-left: auto; margin-right: 0;
}

/* FV下部 */
[class*="top-ab-"] {
	position: absolute; z-index: 1;
}
.top-ab-01 {max-width: clamp(180px,32vw,432px); right: 0; top: -4%;}
.top-ab-02 {max-width: clamp(160px,26vw,406px); left: 0; top: 68%; transform: translateY(-50%);}
.top-ab-03 {max-width: clamp(210px,30vw,416px); right: 0; bottom: 0;}

/* 会社概要 */
#about::before {
	content: "";
	position: absolute;
    left: 0; top: calc(-1 * min(clamp(1.25rem, 18vw, 18.25rem), max(80px, 290px)));
	width: 100%; height: clamp(120px,30vw,400px);
	background: url("../images/top/about-top-bg.png") no-repeat left top / contain;
}

.top-concept__ttl > span:first-of-type {
	position: relative; left: clamp(.5rem, 1.5vw, 1rem);
}

/* 業務内容 */
.service-slide :not(.ss-dots) li {
	display: flex!important;
	gap: 1rem;
	padding: 3.75rem .5rem 0;
}
.service-slide__left {
	flex: 1 1 auto;
	position: relative;
}
.service-slide__right {
	flex-basis: calc(100% / 2.6);
}
.service-slide__left h3 {
	--beveled-size: 10px;
	writing-mode: vertical-rl;
	background: linear-gradient(transparent 0, var(--sub-color_01) 0), linear-gradient(-45deg, transparent var(--beveled-size), var(--sub-color_01) var(--beveled-size)), linear-gradient(transparent 0, var(--sub-color_01) 0), linear-gradient(-225deg, transparent var(--beveled-size), var(--sub-color_01) var(--beveled-size));
    background-position: bottom left, bottom right, top right, top left;
	background-size: 50% 50%;
    background-repeat: no-repeat;
	position: absolute; left: 0; top: -3rem;
	font-size: clamp(30px, 4.25vw, 40px); color: var(--white);
	filter: drop-shadow(8px 10px 10px rgb(0 0 0 / .5));
	padding: clamp(2rem, 5vw, 3rem) clamp(1rem, 3vw, 2rem);
}
.service-slide__left h3::before,
.service-slide__left h3::after {
	content: "";
	position: absolute; z-index: -1;
	background-color: var(--sub-color_01);
}
.service-slide__left h3::before {
	width: 5px; height: 99.9%;
	left: 50%; top: 0; transform: translateX(-50%);
}
.service-slide__left h3::after {
	width: 99.9%; height: 5px;
	left: 0; top: 50%; transform: translateY(-50%);
}
.service-slide__right h4 {
	display: flex; align-items: center;
	border-bottom: 3px solid var(--white);
}
.service-slide__right h4 .point {
	font-size: clamp(32px, 5.5vw, 60px);
	margin-right: 1rem;
}

.ss-nav {
	display: inline-block;
	position: relative;
}
.ss-dots {
	display: flex; justify-content: center;
}
.ss-dots li {
	width: 12px; height: 12px; aspect-ratio: 1 / 1;
	background-color: var(--white); border: 2px solid var(--main-color); border-radius: 50%;
	margin: 0 .5rem;
	cursor: pointer;
	transition: background-color .2s ease;
}
.ss-dots li:hover,
.ss-dots li.slick-active {
	background-color: var(--main-color);
}
.ss-dots li button {
	display: none; appearance: none; outline: none; padding: 0; border: none; background-color: transparent;
}
.ss-prev, .ss-next {
	width: 30px; height: 25px;
	background: no-repeat center / contain;
	bottom: auto; top: 50%;
    transform: translateY(-50%);
	cursor: pointer;
}
.ss-prev {background-image: url(../images/common/arrow-slide-l.svg); left: auto; right: 110%;}
.ss-next {background-image: url(../images/common/arrow-slide-r.svg); left: 110%; right: auto;}

/* 電気がお客様に届くまで */
.service-flow .step-point {
	--width: clamp(74px,13.5vw,114px);
	width: 100%; max-width: var(--width);
	position: absolute; left: 50%; transform: translateX(-50%);
    top: calc( var(--width) / -2);
    margin: 0;
	display: flex; flex-direction: column; justify-content: center;
}
.service-flow .step-arrow {
	max-width: clamp(24px,4vw,36px);
}
.service-flow .step-flow {
	display: inline-block;
	max-width: clamp(220px,36vw,320px);
	border-radius: 0 var(--rounded-5-10) var(--rounded-5-10) 0;
	left: 52%; transform: translateX(-50%);
}
.service-flow .step-flow-img {
	max-width: clamp(100px,16vw,150px);
	position: absolute;
	right: 93%; top: 50%; transform: translateY(-50%);
}
.service-flow .step-grid-3 > div > div {width: 200px;}
.service-flow .step-grid-3 > div:first-of-type::after,
.service-flow .step-grid-3 > div:last-of-type::before {
	content: "";
	display: block;
	width: 100%; height: 100%; aspect-ratio: 39 / 19;
	max-height: clamp(24px,4vw,36px);
	background: url("../images/top/step-arrow-side.svg") no-repeat center / contain;
}
.service-flow .step-grid-3 > div:last-of-type::before {
	transform: scale(-1, 1);
}

/* 採用情報へ */
.recruit-bn {grid-template-columns: 2fr 3fr;}

@media screen and (max-width: 960px) {
	/* 業務内容 */
	.service-slide li {
		flex-direction: column;
	}
	.service-slide__left img {aspect-ratio: 71 / 72; object-fit: cover;}
	.service-slide__right img {display: none;}
	.service-slide__right .bg__main {
		display: flex; align-items: center;
	}
	.service-slide__right h4 {
		flex-direction: column;
		white-space: nowrap;
		border-bottom: none;
		width: 100%; max-width: 150px;
	}
	.service-slide__right h4.ttl-over {border-right: 3px solid var(--white); padding-right: 1rem;}
	.service-slide__right h4 .point {
		margin-right: 0;
	}
	.service-slide__right p {
		margin: .5rem 0 .5rem 1rem;
	}
	.service-slide__right p.text-over {border-left: 3px solid var(--white); padding-left: 1rem;}
	
	/* 電気がお客様に届くまで */
	.service-flow .step-grid-3 {flex-direction: row; flex-wrap: wrap; gap: clamp(.5rem,1.5vw,1rem);}
	.service-flow .step-grid-3 > div.fl-order-1 {flex: 0 0 100%;}
	.service-flow .step-grid-3 > div.fl-order-1 > div {width: 50%; margin: 0 auto clamp(4rem, 11vw, 6rem);}
	.service-flow .step-grid-3 > div.fl-order-2 {flex: 0 0 calc(50% - clamp(.25rem,.8vw,.5rem)); position: relative;}
	.service-flow .step-grid-3 > div > div {width: 100%;}
	.service-flow .step-grid-3 > div:first-of-type::after,
	.service-flow .step-grid-3 > div:last-of-type::before {
		position: absolute;
		left: 50%; bottom: 100%; transform: translateX(-50%) rotate(-45deg);
		margin: clamp(1.5rem,4vw,2rem) 0;
	}
	.service-flow .step-grid-3 > div:last-of-type::before {
		transform: translateX(-50%) rotate(45deg) scale(-1, 1);
	}
}

@media screen and (max-width: 768px) {
	/* FV */
	.fv ul img {aspect-ratio: 415 / 303; object-fit: cover;}
	
	/* FV下部 */
	.top-ab-01,.top-ab-03 {right: -2%;}
	.top-ab-02 {left: -2%;}
}

@media screen and (min-width: 421px) and (max-width: 768px) {
	/* 電気がお客様に届くまで */
	.service-flow .step-flow {
		left: clamp(36%,25vw,46%);
	}
}

@media screen and (max-width: 560px) {
	/* FV */
	.fv h1 {top: 80%;}
	.fv ul img {aspect-ratio: 84 / 101;}
	
	/* FV下部 */
	[class*="top-ab-"] {display: none;}

	/* 業務内容 */
	#service {padding-left: 0; padding-right: 0;}

	.service-slide :not(.ss-dots) li {padding-left: 0; padding-right: 0; gap: 0;}
	.service-slide__left h3 {
		writing-mode: horizontal-tb; text-align: center;
		width: 100%;  max-width: 220px;
		padding: clamp(1rem, 3vw, 2rem) clamp(2rem, 5vw, 3rem); margin: 0;
		left: 50%; top: -2rem; transform: translateX(-50%);
	}
	.service-slide__left img {aspect-ratio: 9 / 11;}
	.service-slide__right .bg__main {
		display: block;
		min-height: 260px;
	}
	.service-slide__right h4 {
		flex-direction: row; justify-content: center;
		border-bottom: 3px solid var(--white);
		max-width: 100%;
	}
	.service-slide__right h4.ttl-over {border-right: none; padding-right: 0;}
	.service-slide__right h4 .point {margin-right: 1rem;}
	.service-slide__right p {margin: 1rem 0 0;}
	.service-slide__right p.text-over {border-left: none;}
}

@media screen and (max-width: 420px) {
	/* 電気がお客様に届くまで */
	.service-flow .step-flow {
		left: calc(1 * min(9rem, max(48%, min(40%, 4vw))));
	}
}

/* 採用情報ページ
-------------------------------------*/
/* FV */
.sub-fv {padding: 0 clamp(1rem, 4.5vw, 2rem);}

/* 先輩からの声 */
.faq-ttl {
	font-size: clamp(18px,2vw,20px);
	/*text-indent: -1.5em; padding-left: 1.5em;*/
	padding-bottom: clamp(.75rem, 2vw, 1rem);
	border-bottom: 1px solid var(--black);
	display: flex; align-items: center;
}
/*.faq-ttl::before {
	content: "Q";
	font-size: 1.6em; color: var(--main-color);
	margin-right: .25rem;
}*/
.faq-ttl span {
	font-size: 1.6em; color: var(--main-color);
	margin-right: .25rem;
}

/* 募集要項 */
#req .tbl-icon-sq__span :is(th,td) {padding: .1rem;}
#req .tbl-icon-sq__span th {
	font-size: 1em; vertical-align: top; font-weight: normal; white-space: nowrap;
	width: 30%;
}
#req .tbl-icon-sq__span.tbl-icon-sq__long th {width: 45%;}
#req .tbl-icon-sq__span th span {
	display: inline-block;
	width: calc(100% - 3rem);
	margin-right: 1rem;
}
#req .tbl-icon-sq__span th span::before {
	content: ""; display: inline-block;
	width: 14px; height: 14px; aspect-ratio: 1 / 1;
	background-color: var(--black);
	margin-right: .25rem;
}
#req .tbl-icon-sq__span th::after {
	content: "…";
}

@media screen and (max-width: 768px) {
	/* FV */
	.sub-fv .col-4 {padding-left: clamp(1rem, 3vw, 2rem); padding-right: clamp(1rem, 3vw, 2rem);}
	.sub-fv__slider {width: clamp(88%,76vw,90%); margin: 0 auto;}
	/*.sub-fv__slider .clip-10 { clip-path: none; }*/
	.sub-fv__slider .slick-prev::after,
	.sub-fv__slider .slick-next::after {
		width: 26px; height: 26px;
	}
	.sub-fv__slider .slick-prev {left: auto; right: 102%;}
	.sub-fv__slider .slick-next {left: 102%; right: auto;}
	.sub-fv .col-8 .width-box-540 {
		padding: 0 1rem clamp(.5rem, 1.5vw, 1rem);
	}
	.sub-fv .col-8 .flex:has(.width_168) {
		background-color: var(--white);
		padding: clamp(3rem, 7.25vw, 4rem) 1rem clamp(1.5rem, 3vw, 2rem);
		margin: 3rem calc(-1 * clamp(1rem, 3vw, 2rem)) -3rem;
	}
	
	/* 募集要項 */
	#req .tbl-icon-sq__span.table768 th,
	#req .tbl-icon-sq__span.tbl-icon-sq__long.table768 th,
	#req .tbl-icon-sq__span.table768 th span {width: 100%;}
	#req .tbl-icon-sq__span.table768 th::after {display: none;}
	#req .tbl-icon-sq__span.table768 td {
		padding-left: 1.25em; margin-bottom: .25rem;
		font-size: clamp(15px, 2vw, 16px);
	}
	#req .tbl-icon-sq__span.table768 tr:last-of-type td {
		margin-bottom: 0;
	}
}

@media screen and (max-width: 560px) {
	/* FV */
	.sub-fv {padding: 0;}
	.sub-fv__slider .slick-prev::after,
	.sub-fv__slider .slick-next::after {
		width: 16px; height: 16px;
	}
}


/* お問い合わせ
-------------------------------------*/
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select {
    height: 38px;
    padding: 6px 10px;
    background-color: var(--white);
    border: 1px solid var(--dark-gray);
    box-shadow: none;
    box-sizing: border-box;
    font-size: 16px;
	border-radius: 0;
}
input,textarea,select{margin-bottom: 0;}
textarea {
    min-height: 190px;
    padding-top: 6px;
    padding-bottom: 6px;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
.btn-form-top {
	width: 200px;
	height: 50px;
	border: none;
	border-radius: 100px;
	font-size: 1.2em;
	font-weight: bold;
	transition: all .3s;
	cursor: pointer;
	margin: .25rem .5rem;
}
input[type="submit"],.btn-form-top {
	background-color: var(--main-color);
	border: 1px solid var(--main-color);
	color: var(--white);
}
input[type="reset"],input[type="button"]{
	background-color: var(--deep-dark-gray);
	border: 1px solid var(--deep-dark-gray);
	color: var(--white);
}
input[type="submit"]:hover,.btn-form-top:hover {
	background-color: var(--white);
	color: var(--main-color);
}
input[type="reset"]:hover,input[type="button"]:hover {
	background-color: var(--white);
	color: var(--deep-dark-gray);
}
.btn-form-top {
	width: 240px;
    max-width: 100%;
	display: flex;
    justify-content: center;
    align-items: center;
	margin-left: auto;
	margin-right: auto;
}

.form-contact th {
	vertical-align: text-top;
	text-align: right;
	font-size: clamp(16px, 2vw, 18px);
	padding-right: 2rem;
	padding-top: 2rem;
	width: 25%;
}
.form-mult input {margin-bottom: .5rem;}

.form-input__name {max-width: 200px;}
.form-input__age {max-width: 60px;margin-right: .5rem;}
.form-input__wide {width: 100%;}

/* SEO用 */
fieldset {
	padding: 0;
	border: none;
}
.visually-hidden {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* 確認画面 */
/* PHP工房フォーム使用時
max-width:572px の
form input[type="submit"], form input[type="reset"], form input[type="button"]
だけは向こうでコメントアウト文にしてください */
#formWrap {
	width: 100%!important;
	max-width: 900px;
}
.tbl-form-confirm :is(th,td) {
	border: 1px solid var(--gray);
}
.tbl-form-confirm th {
	font-weight: normal;
    background: #efefef;
    text-align: left;
}
.tbl-form-confirm td {
	background-color: var(--white);
}

@media screen and (max-width: 960px) {
	.tbl-form.table960 th {text-align: left; padding-top: 0;}
	.tbl-form.table960 input:not(.input-post-code):not(.input-number):not([type="radio"]):not([type="checkbox"]),
	.tbl-form.table960 textarea {width: 100%;}
	.tbl-form.table960 input {margin: 0;}
	.tbl-form.table960 .form-mult input {margin-bottom: .5rem;}
	
	/* 確認画面 */
	.tbl-form-confirm.table960 :is(th,td) {padding: 1rem .5rem;}
	.tbl-form-confirm.table960 th {border-bottom: none;}
	.tbl-form-confirm.table960 tr:not(:first-of-type) th {border-top: none;}
}
@media screen and (max-width: 768px) {
	.tbl-form.table768 th {text-align: left; padding-top: 0;}
	.tbl-form.table768 input:not(.input-post-code):not(.input-number):not([type="radio"]):not([type="checkbox"]),
	.tbl-form.table768 textarea {width: 100%;}
	.tbl-form.table768 input {margin: 0;}
	.tbl-form.table768 .form-mult input {margin-bottom: .5rem;}
	
	/* 確認画面 */
	.tbl-form-confirm.table768 :is(th,td) {padding: 1rem .5rem;}
	.tbl-form-confirm.table768 th {border-bottom: none;}
	.tbl-form-confirm.table768 tr:not(:first-of-type) th {border-top: none;}
}
@media screen and (max-width: 560px) {
	.tbl-form.table560 th {text-align: left; padding-top: 0;}
	.tbl-form.table560 input:not(.input-post-code):not(.input-number):not([type="radio"]):not([type="checkbox"]),
	.tbl-form.table560 textarea {width: 100%;}
	.tbl-form.table560 input {margin: 0;}
	.tbl-form.table560 .form-mult input {margin-bottom: .5rem;}
	
	/* 確認画面 */
	.tbl-form-confirm.table560 :is(th,td) {padding: 1rem .5rem;}
	.tbl-form-confirm.table560 th {border-bottom: none;}
	.tbl-form-confirm.table560 tr:not(:first-of-type) th {border-top: none;}
}



/* その他
-------------------------------------*/
/* ページトップへ戻るボタン */
#page-top {
	position: fixed;
	right: 15px;
	bottom: -70px;
	z-index: 4;
	transition: bottom 0.3s ease-in-out;
}

#page-top.show {
    bottom: 20px; /* 表示時の位置 */
}

#page-top a {
	display: block;
	width: 50px;
	font-weight: bold;
	background-color: var(--sub-color_01);
	color: var(--white);
	text-align: center;
	padding: 15px 5px;
	transition: background-color 0.3s;
}


.tab-ttl{
	background-color: var(--main-color);
	border-radius: 15px 15px 0 0;
	padding: 1rem 2rem;
	max-width: 250px;
	/*margin: 0 auto;*/
}

.tab-ttl h2{
	margin: 0 auto;
    line-height: 1.0;
	color: var(--white);
}

.table_design01 {
  border-collapse: collapse;
  width: 100%;
  max-width: 560px;
  font-size: 16px;	
  vertical-align: top;
}
.table_design01 th, .table_design01 td {
  padding: 0.1em 1em;
}
.table_design01 th {
    font-weight: normal;
    font-size: 16px;
    text-align: left;
    width: 25%;
    min-width: 4em;
    padding-right: 1em;
    position: relative;
}



.table_design01 th::before {
  content: '■';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.table_design01 th::after {
  content: '…';
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.table_design02 {
  border-collapse: collapse;
  width: 100%;
  max-width: 560px;
  font-size: 16px;	
}
.table_design02 th, .table_design02 td {
  padding: 0.1em 1em;
}
.table_design02 th {
    font-weight: normal;
    font-size: 16px;
    text-align: left;
    width: 40%;
    min-width: 4em;
    padding-right: 1em;
    position: relative;
}

.table_design02 th::before {
  content: '■';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.table_design02 th::after {
  content: '…';
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}


@media screen and (max-width: 768px) {
  .table_design01,
  .table_design01 tbody,
  .table_design01 tr,
  .table_design01 th,
  .table_design01 td {
    display: block;
    width: 100%;
  }

  .table_design01 tr {
    margin-bottom: .5rem;
  }
	.table_design01 tr:last-of-type {margin-bottom: 0;}

  .table_design01 th {
    width: 100%;
    padding-right: 0;
  }

  .table_design01 th::after {
    content: '';  /* 「…」を消したい場合 */
  }
	
.table_design02,
  .table_design02 tbody,
  .table_design02 tr,
  .table_design02 th,
  .table_design02 td {
    display: block;
    width: 100%;
  }

  .table_design02 tr {
    margin-bottom: .5rem;  /* 行と行の間に余白 */
  }
	.table_design02 tr:last-of-type {margin-bottom: 0;}

  .table_design02 th {
    width: 100%;
    padding-right: 0;
  }

  .table_design02 th::after {
    content: '';  /* 「…」を消したい場合 */
  }	
}