@charset "Shift_JIS";

/* **********************************************************************
 *
 *       Title:   sp_master.css
 *
 ********************************************************************** */

:root {
	/* フォントサイズを変更する場合はこちら */
	--title1: 2.4rem; /* var(--title1) */
	--title2: 1.6rem; /* var(--title2) */
	--text1: 2.8rem; /* var(--text1) */
	--text2: 1.6rem; /* var(--text2) */
	--text3: 1.4rem; /* var(--text3) */
	--caption1: 1.4rem; /* var(--caption1) */
	--caption2: 1.2rem; /* var(--caption2) */
	--number1: 2.8rem; /* var(--number1) */
	--number2: 1.4rem; /* var(--number2) */
	--number3: 1.2rem; /* var(--number3) */
	/* ベースカラーを変更する場合はこちら */
	--brand_primary: #D43F3F; /* var(--brand_primary) */
	--brand_secondary: #E3EBF3; /* var(--brand_secondary) */
	--text_primary: #4B4B4B; /* var(--text_primary) */
	--text_secondary: #767676; /* var(--text_secondary) */
	--text_inversion: #fff; /* var(--text_inversion) */
	--text_plus: #128824; /* var(--text_plus) */
	--text_minus: #9D4F4F; /* var(--text_minus) */
	--text_error: #B20000; /* var(--text_error) */
	--text_placeholder: #767676; /* var(--text_placeholder) */
	--background_primary: #fff; /* var(--background_primary) */
	--background_secondary: #F8F8F8; /* var(--background_secondary) */
	--background_tertiary: #FEEBEB; /* var(--background_tertiary) */
	--background_error: #FEF6F6; /* var(--background_error) */
	--shadow_primary: #D43F3F; /* var(--shadow_primary) */
	--line_primary: #DEDEDE; /* var(--line_primary) */
	--line_secondary: #888888; /* var(--line_secondary) */
	--background: #F7E9E5; /* var(--background) */
	--gradation_background: linear-gradient(45deg, #FAF5F5, #F9EEEC 50%, #F7E9E5 100%); /* var(--gradation_background) */
	--contents_toshin: #E34E78; /* var(--contents_toshin) */
	--contents_world: #61B36E; /* var(--contents_world) */
	--contents_light: #46ADBD; /* var(--contents_light) */
	--contents_microscope: #956F29; /* var(--contents_microscope) */
	--contents_crossover: #956f29; /* var(--contents_crossover) */
	--contents_new: #FFA51D; /* var(--contents_new) */
	/* コンテンツの幅を変更する場合はこちら */
	--contents_size: 90%; /* var(--contents_size) */
	--contents_modal_size: 90%; /* var(--contents_modal_size) */
}

/* 基本設定
======================================================= */

* {
	margin: 0;
	padding: 0;
}

html,
body {
    height: auto;
    margin: 0;
}

html { font-size: 62.5%; }

body {
	position: relative;
	font-size: var(--caption1);
	font-family: "fot-udkakugo-large-pr6n", sans-serif;
	font-weight: 500;
	color: var(--text_primary);
	line-height: 1.5;
	text-align: left;
	background: var(--background);
	-webkit-text-size-adjust: 100%;

	min-height: 100vh;
    display: flex;
    flex-direction: column;
}

a:link,
a:visited {
	text-decoration: underline;
	color: var(--brand_primary);
}
a:focus,
a:active {
	text-decoration: none;
	color: var(--brand_primary);
}

address,caption,cite,code,dfn,em,th,var {
	font-weight: normal;
	font-style: normal;
}

ul {
	margin: 5px 0 5px 10px;
	padding: 0 0 0 10px;
}

ol {
	margin: 5px 0 5px 15px;
	padding: 0 0 0 20px;
}

img {
	max-width: 100%;
	height: auto;
	line-height: 1;
	vertical-align: top;
	border: 0;
}

iframe {
	width: 100%;
	border: none;
}

/* header
======================================================= */

header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: var(--background);
	z-index: 9999;
}

header .inner_header {
	flex-shrink: 0;
	padding: 0 0 0 15px;
	display: flex;
	height: 80px;
	box-sizing: border-box;
}

/* logo */
header .logo {
	margin: 0;
	padding: 0;
	font-size: 1.4rem;
	font-weight: bold;
	line-height: 1;
}

header .logo a{
	display: block;
	color: var(--text_primary);
	text-decoration: none;
}

header .logo img{
	width: 41px;
	height: auto;
}

/* head_l */
header .head_l {
	display: flex;
	align-items: center;
}

header .head_l .name {
	display: none;
}

/* head_r */
header .head_r {
	display: flex;
	align-items: center;
	margin-left: auto;
	margin-right: 24px;
}

.transaction_btn {
    border: none;
    background: #fff;
    border: 2px solid var(--brand_primary);
    color: var(--text_primary);
    font-size: 1.2rem;
    font-weight: bold;
    padding: 3px 14px;
    box-sizing: border-box;
    border-radius: 50px;
    cursor: pointer;
	margin-right: 16px;
}

.transaction_btn:hover {
	cursor: pointer;
	opacity: .7;
}

.transaction_btn + .transaction_btn_ul {
	display: none;
	width: 128px;
	margin: 0 auto;
	padding: 0 12px;
	position: absolute;
	top: 52px;
	left: auto;
	right: 16px;
	z-index: 20;
	background: var(--background_primary);
	border: solid 2px var(--brand_primary);
	border-radius: 16px;
	overflow: auto;
	list-style: none;
}

.transaction_btn + .transaction_btn_ul a {
	color: var(--text_primary);
	text-decoration: none;
	font-size: 1.2rem;
	font-weight: bold;
	text-align: center;
	padding: 10px 0;
	display: block;
	min-height: 36px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.transaction_btn + .transaction_btn_ul a:hover {
	cursor: pointer;
	opacity: .7;
}

.transaction_btn + .transaction_btn_ul li + li {
	border-top: solid 1px var(--line_primary);
}

.head_news_btn {
	margin-right: 16px;
}

.head_news_btn a {
	display: inline-block;
}

.head_news_btn a:hover {
	cursor: pointer;
	opacity: .7;
}

/* SPIRAL経由のヘッダー */
header.type_spiral {
	padding: 16px 20px 0;
	background: #fff;
}

header.type_spiral .logo img {
	width: auto;
}

header.type_spiral .inner_header {
	justify-content: center;
	align-items: center;
	height: auto;
	min-height: 54px;
	margin-top: 17px;
	padding: 5px 0 10px;
	box-sizing: border-box;
}

.header_type_spiral_tit {
	font-size: var(--title1);
	font-weight: bold;
	text-align: center;
}

header.type_spiral ~ .wrapper,
body:has(header.type_spiral) .wrapper {
	margin-top: 133px;
}

.sp_trigger {
	position: relative;
	top: 0;
	right: 0;
	z-index: 20;
	width: 24px;
	height: 24px;
	text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
	box-sizing: border-box;
	padding: 0 5%;
	margin-left: auto;
}

/* メニューボタン下に文字がない場合の記述ここから */
.sp_trigger span {
	position: absolute;
	left: 0;
	right: 0;
	width: 16px;
	height: 2px;
	margin: 0 auto;
	background-color: var(--brand_primary);
	border-radius: 100px;
}
.sp_trigger, .sp_trigger span {
	display: inline-block;
	transition: all .3s;
	box-sizing: border-box;
}
.sp_trigger span:nth-of-type(1) {
	top: 5px;
}
.sp_trigger span:nth-of-type(2) {
	top: 11px;
}
.sp_trigger span:nth-of-type(3) {
	top: 17px;
}
.sp_trigger.active {
	background: var(--brand_primary);
}
.sp_trigger.active span {
	background-color: #fff;
}
.sp_trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(6px) rotate(-45deg);
	transform: translateY(6px) rotate(-45deg);
}
.sp_trigger.active span:nth-of-type(2) {
	opacity: 0;
}
.sp_trigger.active span:nth-of-type(3) {
	-webkit-transform: translateY(-6px) rotate(45deg);
	transform: translateY(-6px) rotate(45deg);
}
/* メニューボタン下に文字がない場合の記述ここまで */



/* nav
======================================================= */

.overlay { display: none;}
.overlay.active {
	display: block;
	background: #000;
	position: fixed;
	z-index: 998;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.4;
}

.overlay.active::after{
	content: "";
	position: absolute;
	left: 8px;
	top: 40px;
	mask-image: url(../img/common/ico_hamburgerclose.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--background_primary);
	width: 24px;
	height: 24px;
}


.pc_nav {
	display: none;
}

.sp_nav {
	position:fixed;
	z-index: 999;
    /*ナビのスタート位置と形状*/
	top:80px;
    bottom: 0;
    right: -120%;
	width: calc(100% - 40px);
    height: calc(100vh - 80px);/*ナビの高さ*/
	height: calc(100dvh - 80px);/*ナビの高さ*/
	background:#fff;
    /*動き*/
	transition: all 0.6s;
}

.sp_nav .inner_sp_nav {
	padding: 40px 44px;
}

.sp_nav.on {
	right: 0;
}

.sp_nav.limit.on {
	right: 0;
	height: 286px;
}


.sp_nav.on .inner_sp_nav {
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    /* width: calc(100% - 128px); */
	width: calc(100% - 40px);
    height: calc(100% - 80px);/*表示する高さ*/
	box-sizing: border-box;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.sp_nav .transaction_btn_ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.sp_nav .transaction_btn_ul li + li {
	margin-top: 16px;
}

.sp_nav .transaction_btn_ul a {
	display: block;
	background-color: var(--background_primary);
	border: solid 2px var(--brand_primary);
	color: var(--text_primary);
	text-decoration: none;
	border-radius: 100px;
	font-size: var(--text3);
	font-weight: bold;
	padding: 14px 30px;
	min-width: 128px;
	text-align: center;
}

.sp_nav .transaction_btn_ul a:hover {
	cursor: pointer;
	opacity: .7;
}

.global_nav ul {
	margin: 40px 0 0;
	padding: 0;
	list-style-type: none;
	font-size: var(--text3);
	font-weight: bold;
}
.global_nav ul li {
	margin: 0 21px 0 16px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--line_primary)
}
.global_nav ul li a {
	display: block;
	width: 100%;
	margin: 0;
	padding: 14px 0;
	text-align: left;
	text-decoration: none;
	color: var(--text_primary);
	background: var(--background_primary);
	box-sizing: border-box;
}
.global_nav ul li a:link,
.global_nav ul li a:visited,
.global_nav ul li a:active {
	color: var(--text_primary);
	text-decoration: none;
	position: relative;
}
.global_nav ul li a:hover {
	cursor: pointer;
	opacity: .7;
}
.global_nav ul li a::after{
	content: "";
	position: absolute;
	right: 0;
	top: calc(50% - 8px);
	mask-image: url(../img/common/ico_arw.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--brand_primary);
	width: 16px;
	height: 16px;
}

.global_nav ul li.inactive a {
	pointer-events: none;
}

.global_nav ul li.inactive a::after {
	background-color: var(--line_primary);
}

.global_nav ul li a.selected {
	padding-left: 16px;
}

.global_nav ul li a.selected:before {
	content: "";
	position: absolute;
	display: block;
	background-color: var(--brand_primary);
	width: 8px;
	height: 8px;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	border-radius: 50%;
}

.other_procedure {
	margin-top: 40px;
}

.other_procedure_title {
	font-size: var(--caption1);
	font-weight: bold;
}

.other_procedure_title:hover {
	cursor: pointer;
	opacity: .7;
}

.other_procedure ul {
	margin: 16px 0 0;
	padding: 0;
	list-style-type: none;
	font-size: var(--caption1);
}

.other_procedure ul li {
	margin: 0 21px 0 16px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--line_primary)
}
.other_procedure ul li a {
	display: block;
	width: 100%;
	margin: 0;
	padding: 14px 0;
	text-align: left;
	text-decoration: none;
	color: var(--text_primary);
	background: var(--background_primary);
	box-sizing: border-box;
}

.other_procedure ul li a:link,
.other_procedure ul li a:visited,
.other_procedure ul li a:active {
	color: var(--text_primary);
	text-decoration: none;
	position: relative;
}
.other_procedure ul li a::before{
	content: "";
	position: absolute;
	right: 0;
	top: calc(50% - 8px);
	mask-image: url(../img/common/ico_arw.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--brand_primary);
	width: 16px;
	height: 16px;
}

.other_procedure ul li.inactive a {
	pointer-events: none;
}

.other_procedure ul li.inactive a::before{
	background-color: var(--line_primary);
}

.other_procedure ul li a:hover {
	cursor: pointer;
	opacity: .7;
}

.logout_btn {
	margin-top: 40px;
}

.logout_btn a {
	display: block;
	background-color: var(--background_primary);
	border: solid 2px var(--text_primary);
	color: var(--text_primary);
	text-decoration: none;
	border-radius: 100px;
	font-size: var(--text3);
	font-weight: bold;
	padding: 14px 30px;
	min-width: 128px;
	text-align: center;
}

.logout_btn a:hover {
	cursor: pointer;
	opacity: .7;
}

.limit_nav {
	background-color: var(--background_error);
	padding: 24px;
	color: var(--text_error);
	font-size: var(--caption1);
}

.limit_nav .title {
	font-size: var(--text3);
	font-weight: bold;
	margin-bottom: 16px;
}


/* レイアウト設定
======================================================= */

.wrapper {
	width: var(--contents_size);
	margin: 80px auto 120px;
	text-align: left;
	flex: 1 0 auto;
}

.wrapper .side {
	display: none;
}

/* お問い合わせ */
.contact .wrapper {
	padding-top: 30px;
}

/* 下層ナビゲーション
======================================================= */

/* 非表示要素 */
.sn_wrap,
.ln_wrap,
.cate_top {
	display: none;
}

/* サイドナビ */
.side ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.side ul.localnav {
	border-top: 1px solid #d9d9d9;
	margin: 0 0 30px;
	background: #fff;
}
.side ul.localnav > li {
	border-bottom: 1px solid #d9d9d9;
}
.side ul.localnav li a {
	display: block;
	margin: 0;
	padding: 14px 15px 13px;
	position: relative;
}
.side ul.localnav li a::before{
	content: "";
	position: absolute;
	right: 12px;
	top: calc(50% - 6px);
	mask-image: url(../img/ico_arw.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--brand_primary);
	width: 8px;
	height: 12px;
}
.side ul.localnav li a:link,
.side ul.localnav li a:visited {
	color: #333;
	text-decoration: none;
}
.side ul.localnav li.localselected a {
	background: var(--brand_secondary);
	font-weight: bold;
	color: var(--brand_primary);
	text-decoration: none;
}

/* pagetop
======================================================= */

.pagetop {
	position: fixed;
	z-index: 10;
	right: 3%;
	bottom: 0;
}

.pagetop a {
	display: block;
	width: 64px;
	padding-top: 64px;
	height: 0;
	text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
	color: var(--brand_primary);
	border: 1px solid var(--brand_primary);
	border-radius: 50%;
	background: var(--background_primary) url(../img/common/ico_arw_pagetop.svg) no-repeat 50% 50%;
	background-size: 24px auto;
}

/* footer
======================================================= */

footer {
	color: var(--text_primary);
}
footer .foot_in {
	margin: 0 40px;
	overflow: hidden;
}


footer .sp_cud {
	margin: 0 24.5px 16px;
	padding: 24px;
	background-color: var(--background_primary);
	border-radius: 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	display: none;
}

footer .sp_cud .img {
	flex-basis: 44px;
}

footer .sp_cud .txt {
	font-size: var(--caption2);
	flex-basis: calc(100% - 52px);

}


/* foot_info */
footer .foot_info {
	background-color: var(--background_primary);
	color: var(--text_primary);
	padding: 40px 0;
}
footer .foot_info .foot_in {
	padding: 0;
}

footer .foot_info .info_c {
	margin-top: 40px;
	font-size: var(--caption1);
}

footer .foot_info .info_c .company_name {
	font-size: var(--text3);
	font-weight: bold;
	margin-bottom: 8px;
}

footer .foot_info .info_r {
	display: none;
}

/* コピーライト */
footer small {
	display: block;
	font-size: var(--caption1);
	margin-top: 8px;
}


/* 下層共通設定
======================================================= */

.wrapper .block {
	margin: 0 0 24px;
	padding: 24px;
	border-radius: 16px;
	background: var(--background_primary);
}

.wrapper .inner_block {
	margin: 0 auto 24px;
}

.pagetitle {
	display: flex;
	justify-content: center;
	margin: 0 0 24px;
	font-size: var(--title1);
	font-weight: bold;
	/* text-align: center; */
}

.pagetitle.loading span {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-left: 8px;
}

.pagetitle.loading span img {
	animation: loader-rotate 1s linear infinite;
	transform-origin: center;
}

.pagetitle.center{
	justify-content: center;
}

@keyframes loader-rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.block-title {
	margin: 0 0 16px;
	font-size: var(--title2);
	font-weight: bold;
	position: relative;
}

.block-title._dynamic {
    padding-left: 18px;
}

.block-title._dynamic::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 8px;
    height: 100%;
    border-radius: 16px;
    background: var(--brand-color, var(--brand_primary));
}

.block-title .tooltip {
	margin-top: 0;
}

/* block-alink */

.block-alink {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--text3);
	font-weight: bold;
}

.block-alink li {
	margin: 0 0 16px;
}

.block-alink li:last-child {
	margin: 0;
}

.block-alink li a {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 2px 24px 2px 0;
	border-bottom: 1px solid var(--line_primary);
	box-sizing: border-box;
	color: var(--text_primary);
	text-decoration: none;
	background: url(../img/common/ico_down.svg) no-repeat right center;
	background-size: 24px auto;
	position: relative;
}

.block-alink li a:hover {
	cursor: pointer;
	opacity: .7;
}

.block-alink li._toshin a,
.block-alink li._world a,
.block-alink li._light a,
.block-alink li._microscope a,
.block-alink li._crossover a,
.block-alink li._new a {
	padding-left: 16px;
}

.block-alink li._toshin a::before,
.block-alink li._world a::before,
.block-alink li._light a::before,
.block-alink li._microscope a::before,
.block-alink li._crossover a::before,
.block-alink li._new a::before {
	content: '';
	position: absolute;
	top: calc(50% - 4px);
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 16px;
}

.block-alink li._toshin a::before {
	background: var(--contents_toshin);
}

.block-alink li._world a::before {
	background: var(--contents_world);
}

.block-alink li._light a::before {
	background: var(--contents_light);
}

.block-alink li._microscope a::before {
	background: var(--contents_microscope);
}

.block-alink li._crossover a::before {
	background: var(--contents_crossover);
}

.block-alink li._new a::before {
	background: var(--contents_new);
}

/* モーダル
======================================================= */

.modal-block {
	width: var(--contents_modal_size);
	margin: auto;
	padding: 40px 24px 40px;
	box-sizing: border-box;
	border-radius: 24px;
	background: var(--background_primary);
	position: relative;
}

.modal-block .modal-block_tit {
	margin: 0 0 24px;
	font-size: var(--title2);
	font-weight: bold;
	text-align: center;
}

.mfp-close {
	top: 12px !important;
	right: 12px !important;
	width: 24px !important;
	height: 24px !important;
}

.modal-block .modal-block_lead{
	font-size: var(--text3);
}

.modal-block ul.modal-block_list{
	font-size: var(--caption1);
}

.modal-block ul.modal-block_btn{
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.modal-block .wrap_scroll_area {
	margin: 20px 0;
	padding: 16px;
	border: solid 1px var(--line_primary);
	border-radius: 8px;
}

.modal-block .scroll_area {
	max-height: 400px;
	overflow: auto;
	padding-right: 10px;
}

.modal-block .scroll_area ul {
	margin: 12px 0 12px 10px;
}

.modal-block .scroll_area .emphasis {
	font-weight: bold;
	text-decoration: underline;
}

/* 汎用スタイル設定
======================================================= */

.fz_title1{font-size: var(--title1);}
.fz_title2{font-size: var(--title2);}
.fz_text1{font-size: var(--text1);}
.fz_text2{font-size: var(--text2);}
.fz_text3{font-size: var(--text3);}
.fz_caption1{font-size: var(--caption1);}
.fz_caption2{font-size: var(--caption2);}
.fz_number1{font-size: var(--number1);}
.fz_number2{font-size: var(--number2);}
.fz_number3{font-size: var(--number3);}

.fz_sp_title1{font-size: var(--title1);}
.fz_sp_title2{font-size: var(--title2);}
.fz_sp_text1{font-size: var(--text1);}
.fz_sp_text2{font-size: var(--text2);}
.fz_sp_text3{font-size: var(--text3);}
.fz_sp_caption1{font-size: var(--caption1);}
.fz_sp_caption2{font-size: var(--caption2);}
.fz_sp_number1{font-size: var(--number1);}
.fz_sp_number2{font-size: var(--number2);}
.fz_sp_number3{font-size: var(--number3);}

.color_brand_primary {color: var(--brand_primary);}
.color_brand_secondary {color: var(--brand_secondary);}
.color_text_primary {color: var(--text_primary);}
.color_text_secondary {color: var(--text_secondary);}
.color_text_inversion {color: var(--text_inversion);}
.color_text_plus {color: var(--text_plus);}
.color_text_minus {color: var(--text_minus);}
.color_text_error {color: var(--text_error);}
.color_text_placeholder {color: var(--text_placeholder);}

.td_none:link,
.td_none:visited {text-decoration: none;}
.td_none:hover {text-decoration: underline;}

table {
	width: 100%;
	padding: 0;
	border-collapse: collapse;
}

.tac {text-align: center !important;}
.tal {text-align: left !important;}
.tar {text-align: right !important;}

.sp_tac {text-align: center !important;}
.sp_tal {text-align: left !important;}
.sp_tar {text-align: right !important;}

.fw_normal {font-weight: normal!important;}
.fw_medium {font-weight: 500!important;}
.fw_bold {font-weight: bold!important;}

.lh_10 {line-height: 1!important;}
.lh_11 {line-height: 1.1!important;}
.lh_12 {line-height: 1.2!important;}
.lh_13 {line-height: 1.3!important;}
.lh_14 {line-height: 1.4!important;}
.lh_15 {line-height: 1.5!important;}
.lh_16 {line-height: 1.6!important;}
.lh_17 {line-height: 1.7!important;}
.lh_18 {line-height: 1.8!important;}
.lh_19 {line-height: 1.9!important;}
.lh_20 {line-height: 2!important;}

/* 余白 */
.mb0 {margin-bottom: 0;}
.mb5 {margin-bottom: 5px;}
.mb10 {margin-bottom: 10px;}
.mb15 {margin-bottom: 15px;}
.mb20 {margin-bottom: 20px;}
.mb25 {margin-bottom: 25px;}
.mb30 {margin-bottom: 30px;}
.mb35 {margin-bottom: 35px;}
.mb40 {margin-bottom: 40px;}
.mb45 {margin-bottom: 45px;}
.mb50 {margin-bottom: 50px;}
.mb60 {margin-bottom: 60px;}
.mb70 {margin-bottom: 70px;}
.mb80 {margin-bottom: 80px;}
.mb90 {margin-bottom: 90px;}
.mb100 {margin-bottom: 100px;}
.mb110 {margin-bottom: 110px;}
.mb120 {margin-bottom: 120px;}

.mt0 {margin-top: 0;}
.mt5 {margin-top: 5px;}
.mt10 {margin-top: 10px;}
.mt15 {margin-top: 15px;}
.mt20 {margin-top: 20px;}
.mt25 {margin-top: 25px;}
.mt30 {margin-top: 30px;}
.mt35 {margin-top: 35px;}
.mt40 {margin-top: 40px;}
.mt45 {margin-top: 45px;}
.mt50 {margin-top: 50px;}
.mt60 {margin-top: 60px;}
.mt70 {margin-top: 70px;}
.mt80 {margin-top: 80px;}
.mt90 {margin-top: 90px;}
.mt100 {margin-top: 100px;}
.mt110 {margin-top: 110px;}
.mt120 {margin-top: 120px;}

.ml0 {margin-left: 0;}
.ml5 {margin-left: 5px;}
.ml10 {margin-left: 10px;}
.ml15 {margin-left: 15px;}
.ml20 {margin-left: 20px;}
.ml25 {margin-left: 25px;}
.ml30 {margin-left: 30px;}
.ml35 {margin-left: 35px;}
.ml40 {margin-left: 40px;}
.ml45 {margin-left: 45px;}
.ml50 {margin-left: 50px;}
.ml60 {margin-left: 60px;}
.ml70 {margin-left: 70px;}
.ml80 {margin-left: 80px;}
.ml90 {margin-left: 90px;}
.ml100 {margin-left: 100px;}
.ml110 {margin-left: 110px;}
.ml120 {margin-left: 120px;}

.mr0 {margin-right: 0;}
.mr5 {margin-right: 5px;}
.mr10 {margin-right: 10px;}
.mr15 {margin-right: 15px;}
.mr20 {margin-right: 20px;}
.mr25 {margin-right: 25px;}
.mr30 {margin-right: 30px;}
.mr35 {margin-right: 35px;}
.mr40 {margin-right: 40px;}
.mr45 {margin-right: 45px;}
.mr50 {margin-right: 50px;}
.mr60 {margin-right: 60px;}
.mr70 {margin-right: 70px;}
.mr80 {margin-right: 80px;}
.mr90 {margin-right: 90px;}
.mr100 {margin-right: 100px;}
.mr110 {margin-right: 110px;}
.mr120 {margin-right: 120px;}

.pb0 {padding-bottom: 0;}
.pb5 {padding-bottom: 5px;}
.pb10 {padding-bottom: 10px;}
.pb15 {padding-bottom: 15px;}
.pb20 {padding-bottom: 20px;}
.pb25 {padding-bottom: 25px;}
.pb30 {padding-bottom: 30px;}
.pb35 {padding-bottom: 35px;}
.pb40 {padding-bottom: 40px;}
.pb45 {padding-bottom: 45px;}
.pb50 {padding-bottom: 50px;}
.pb60 {padding-bottom: 60px;}
.pb70 {padding-bottom: 70px;}
.pb80 {padding-bottom: 80px;}
.pb90 {padding-bottom: 90px;}
.pb100 {padding-bottom: 100px;}
.pb110 {padding-bottom: 110px;}
.pb120 {padding-bottom: 120px;}

.pt0 {padding-top: 0;}
.pt5 {padding-top: 5px;}
.pt10 {padding-top: 10px;}
.pt15 {padding-top: 15px;}
.pt20 {padding-top: 20px;}
.pt25 {padding-top: 25px;}
.pt30 {padding-top: 30px;}
.pt35 {padding-top: 35px;}
.pt40 {padding-top: 40px;}
.pt45 {padding-top: 45px;}
.pt50 {padding-top: 50px;}
.pt60 {padding-top: 60px;}
.pt70 {padding-top: 70px;}
.pt80 {padding-top: 80px;}
.pt90 {padding-top: 90px;}
.pt100 {padding-top: 100px;}
.pt110 {padding-top: 110px;}
.pt120 {padding-top: 120px;}

.pl0 {padding-left: 0;}
.pl5 {padding-left: 5px;}
.pl10 {padding-left: 10px;}
.pl15 {padding-left: 15px;}
.pl20 {padding-left: 20px;}
.pl25 {padding-left: 25px;}
.pl30 {padding-left: 30px;}
.pl35 {padding-left: 35px;}
.pl40 {padding-left: 40px;}
.pl45 {padding-left: 45px;}
.pl50 {padding-left: 50px;}
.pl60 {padding-left: 60px;}
.pl70 {padding-left: 70px;}
.pl80 {padding-left: 80px;}
.pl90 {padding-left: 90px;}
.pl100 {padding-left: 100px;}
.pl110 {padding-left: 110px;}
.pl120 {padding-left: 120px;}

.pr0 {padding-right: 0;}
.pr5 {padding-right: 5px;}
.pr10 {padding-right: 10px;}
.pr15 {padding-right: 15px;}
.pr20 {padding-right: 20px;}
.pr25 {padding-right: 25px;}
.pr30 {padding-right: 30px;}
.pr35 {padding-right: 35px;}
.pr40 {padding-right: 40px;}
.pr45 {padding-right: 45px;}
.pr50 {padding-right: 50px;}
.pr60 {padding-right: 60px;}
.pr70 {padding-right: 70px;}
.pr80 {padding-right: 80px;}
.pr90 {padding-right: 90px;}
.pr100 {padding-right: 100px;}
.pr110 {padding-right: 110px;}
.pr120 {padding-right: 120px;}

/* 余白 */
.mb_sp_0 {margin-bottom: 0;}
.mb_sp_5 {margin-bottom: 5px;}
.mb_sp_10 {margin-bottom: 10px;}
.mb_sp_15 {margin-bottom: 15px;}
.mb_sp_20 {margin-bottom: 20px;}
.mb_sp_25 {margin-bottom: 25px;}
.mb_sp_30 {margin-bottom: 30px;}
.mb_sp_35 {margin-bottom: 35px;}
.mb_sp_40 {margin-bottom: 40px;}
.mb_sp_45 {margin-bottom: 45px;}
.mb_sp_50 {margin-bottom: 50px;}
.mb_sp_60 {margin-bottom: 60px;}
.mb_sp_70 {margin-bottom: 70px;}
.mb_sp_80 {margin-bottom: 80px;}
.mb_sp_90 {margin-bottom: 90px;}
.mb_sp_100 {margin-bottom: 100px;}
.mb_sp_110 {margin-bottom: 110px;}
.mb_sp_120 {margin-bottom: 120px;}

.mt_sp_0 {margin-top: 0;}
.mt_sp_5 {margin-top: 5px;}
.mt_sp_10 {margin-top: 10px;}
.mt_sp_15 {margin-top: 15px;}
.mt_sp_20 {margin-top: 20px;}
.mt_sp_25 {margin-top: 25px;}
.mt_sp_30 {margin-top: 30px;}
.mt_sp_35 {margin-top: 35px;}
.mt_sp_40 {margin-top: 40px;}
.mt_sp_45 {margin-top: 45px;}
.mt_sp_50 {margin-top: 50px;}
.mt_sp_60 {margin-top: 60px;}
.mt_sp_70 {margin-top: 70px;}
.mt_sp_80 {margin-top: 80px;}
.mt_sp_90 {margin-top: 90px;}
.mt_sp_100 {margin-top: 100px;}
.mt_sp_110 {margin-top: 110px;}
.mt_sp_120 {margin-top: 120px;}

.ml_sp_0 {margin-left: 0;}
.ml_sp_5 {margin-left: 5px;}
.ml_sp_10 {margin-left: 10px;}
.ml_sp_15 {margin-left: 15px;}
.ml_sp_20 {margin-left: 20px;}
.ml_sp_25 {margin-left: 25px;}
.ml_sp_30 {margin-left: 30px;}
.ml_sp_35 {margin-left: 35px;}
.ml_sp_40 {margin-left: 40px;}
.ml_sp_45 {margin-left: 45px;}
.ml_sp_50 {margin-left: 50px;}
.ml_sp_60 {margin-left: 60px;}
.ml_sp_70 {margin-left: 70px;}
.ml_sp_80 {margin-left: 80px;}
.ml_sp_90 {margin-left: 90px;}
.ml_sp_100 {margin-left: 100px;}
.ml_sp_110 {margin-left: 110px;}
.ml_sp_120 {margin-left: 120px;}

.mr_sp_0 {margin-right: 0;}
.mr_sp_5 {margin-right: 5px;}
.mr_sp_10 {margin-right: 10px;}
.mr_sp_15 {margin-right: 15px;}
.mr_sp_20 {margin-right: 20px;}
.mr_sp_25 {margin-right: 25px;}
.mr_sp_30 {margin-right: 30px;}
.mr_sp_35 {margin-right: 35px;}
.mr_sp_40 {margin-right: 40px;}
.mr_sp_45 {margin-right: 45px;}
.mr_sp_50 {margin-right: 50px;}
.mr_sp_60 {margin-right: 60px;}
.mr_sp_70 {margin-right: 70px;}
.mr_sp_80 {margin-right: 80px;}
.mr_sp_90 {margin-right: 90px;}
.mr_sp_100 {margin-right: 100px;}
.mr_sp_110 {margin-right: 110px;}
.mr_sp_120 {margin-right: 120px;}

.pb_sp_0 {padding-bottom: 0;}
.pb_sp_5 {padding-bottom: 5px;}
.pb_sp_10 {padding-bottom: 10px;}
.pb_sp_15 {padding-bottom: 15px;}
.pb_sp_20 {padding-bottom: 20px;}
.pb_sp_25 {padding-bottom: 25px;}
.pb_sp_30 {padding-bottom: 30px;}
.pb_sp_35 {padding-bottom: 35px;}
.pb_sp_40 {padding-bottom: 40px;}
.pb_sp_45 {padding-bottom: 45px;}
.pb_sp_50 {padding-bottom: 50px;}
.pb_sp_60 {padding-bottom: 60px;}
.pb_sp_70 {padding-bottom: 70px;}
.pb_sp_80 {padding-bottom: 80px;}
.pb_sp_90 {padding-bottom: 90px;}
.pb_sp_100 {padding-bottom: 100px;}
.pb_sp_110 {padding-bottom: 110px;}
.pb_sp_120 {padding-bottom: 120px;}

.pt_sp_0 {padding-top: 0;}
.pt_sp_5 {padding-top: 5px;}
.pt_sp_10 {padding-top: 10px;}
.pt_sp_15 {padding-top: 15px;}
.pt_sp_20 {padding-top: 20px;}
.pt_sp_25 {padding-top: 25px;}
.pt_sp_30 {padding-top: 30px;}
.pt_sp_35 {padding-top: 35px;}
.pt_sp_40 {padding-top: 40px;}
.pt_sp_45 {padding-top: 45px;}
.pt_sp_50 {padding-top: 50px;}
.pt_sp_60 {padding-top: 60px;}
.pt_sp_70 {padding-top: 70px;}
.pt_sp_80 {padding-top: 80px;}
.pt_sp_90 {padding-top: 90px;}
.pt_sp_100 {padding-top: 100px;}
.pt_sp_110 {padding-top: 110px;}
.pt_sp_120 {padding-top: 120px;}

.pl_sp_0 {padding-left: 0;}
.pl_sp_5 {padding-left: 5px;}
.pl_sp_10 {padding-left: 10px;}
.pl_sp_15 {padding-left: 15px;}
.pl_sp_20 {padding-left: 20px;}
.pl_sp_25 {padding-left: 25px;}
.pl_sp_30 {padding-left: 30px;}
.pl_sp_35 {padding-left: 35px;}
.pl_sp_40 {padding-left: 40px;}
.pl_sp_45 {padding-left: 45px;}
.pl_sp_50 {padding-left: 50px;}
.pl_sp_60 {padding-left: 60px;}
.pl_sp_70 {padding-left: 70px;}
.pl_sp_80 {padding-left: 80px;}
.pl_sp_90 {padding-left: 90px;}
.pl_sp_100 {padding-left: 100px;}
.pl_sp_110 {padding-left: 110px;}
.pl_sp_120 {padding-left: 120px;}

.pr_sp_0 {padding-right: 0;}
.pr_sp_5 {padding-right: 5px;}
.pr_sp_10 {padding-right: 10px;}
.pr_sp_15 {padding-right: 15px;}
.pr_sp_20 {padding-right: 20px;}
.pr_sp_25 {padding-right: 25px;}
.pr_sp_30 {padding-right: 30px;}
.pr_sp_35 {padding-right: 35px;}
.pr_sp_40 {padding-right: 40px;}
.pr_sp_45 {padding-right: 45px;}
.pr_sp_50 {padding-right: 50px;}
.pr_sp_60 {padding-right: 60px;}
.pr_sp_70 {padding-right: 70px;}
.pr_sp_80 {padding-right: 80px;}
.pr_sp_90 {padding-right: 90px;}
.pr_sp_100 {padding-right: 100px;}
.pr_sp_110 {padding-right: 110px;}
.pr_sp_120 {padding-right: 120px;}

/* 非表示要素 */
.sp_none { display: none!important; }

/* float解除 */
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}
.clearfix:before {
  content: "";
  display: block;
  clear: both;
}
.clearfix {
  display: block;
}


/* 部分テンプレート設定
======================================================= */

blockquote {
	padding: 15px;
	border: 5px solid #f5f5f5;
}

.arw a, .blank a, .pdf a {
	display: inline-block;
	position: relative;
}

.arw a:before, .blank a:before, .pdf a:before{
	content:"";
	position: absolute;
	z-index: 1;
	right: 0;
}

.arw a {
	padding: 0 16px 0 0;
}
.arw a:before{
	top: calc(50% - 4px);
	mask-image: url(../img/ico_arw.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--primary);
	width: 8px;
	height: 12px;
}

.blank a {
	padding: 0 28px 0 0;
}
.blank a:before{
	top: calc(50% - 11px);
	mask-image: url(../img/common/ico_blank.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--brand_primary);
	width: 24px;
	height: 24px;
}

.blank.size_l {
	font-size: var(--text3);
}

.pdf a {
	padding: 0 20px 0 0;
}
.pdf a:before{
	mask-image: url(../img/ico_pdf.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--primary);
	top: calc( 50% - 6px);
	width: 12px;
	height: 14px;
}

.btn {
	font-size: var(--text3);
	font-weight: bold;
	text-align: center;
}

/* ベース */
.btn a,
.btn button,
.btn input[type="submit"],
.btn input[type="button"],
.btn input[type="reset"] {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: 247px;
	min-height: 53px;
	padding: 12px;
	border: 2px solid var(--brand_primary);
	box-sizing: border-box;
	border-radius: 50px;
	color: var(--text_inversion);
	text-decoration: none;
	background: var(--brand_primary);
	font-weight: bold;
}

/* inputボタンの高さを a と完全一致させる */
.btn input[type="button"],
.btn input[type="submit"],
.btn input[type="reset"] {
	appearance: none;
	-webkit-appearance: none;
	border-radius: 50px;
	line-height: 1;
	padding: 0;
	height: auto;
}

.btn a:hover,
.btn button:hover,
.btn input[type="submit"]:hover,
.btn input[type="button"]:hover,
.btn input[type="reset"]:hover {
	cursor: pointer;
	opacity: .7;
}

/* 白 */
.btn._white a,
.btn._white button,
.btn._white input[type="submit"],
.btn._white input[type="button"],
.btn._white input[type="reset"] {
	color: var(--text_primary);
	background: var(--background_primary);
}

/* 黒 */
.btn._black a,
.btn._black button,
.btn._black input[type="submit"],
.btn._black input[type="button"],
.btn._black input[type="reset"] {
	color: var(--text_primary);
	background: var(--background_primary);
	border: 2px solid var(--text_primary);
}

/* 非活性 */
.btn._inactive a,
.btn._inactive button,
.btn._inactive input[type="submit"],
.btn._inactive input[type="button"],
.btn._inactive input[type="reset"] {
	pointer-events: none;
	border-color: var(--line_primary);
	background: var(--line_primary);
	color: var(--text_secondary);
}

/* アップロード（a / button） */
.btn._upload a span,
.btn._upload button span {
	position: relative;
	padding-left: 28px;
}

.btn._upload a span::before,
.btn._upload button span::before {
	content: '';
	display: inline-block;
	position: absolute;
	mask-image: url(../img/common/ico_upload.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--text_primary);
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
}

.btn._inactive._upload a span::before,
.btn._inactive._upload button span::before {
	background-color: var(--text_secondary);
}

/* 小ボタン */
.btn._small {
	font-size: var(--caption1);
}

.btn._small a,
.btn._small button,
.btn._small input[type="submit"],
.btn._small input[type="button"],
.btn._small input[type="reset"] {
	width: auto;
	min-width: auto;
	min-height: 34px;
	padding: 6px 8px;
}

/* 閲覧済み */
.btn._small._done a,
.btn._small._done button,
.btn._small._done input[type="submit"],
.btn._small._done input[type="button"],
.btn._small._done input[type="reset"] {
	pointer-events: none;
	background-color: transparent;
	color: var(--text_primary);
	border: none;
	text-align: left;
	padding: 0;
}

/* 矢印（a / button） */
.btn._arrow a,
.btn._arrow button {
	position: relative;
	padding: 0 36px 0 16px;
}

.btn._arrow a::after,
.btn._arrow button::after {
	content: "";
	position: absolute;
	right: 12px;
	top: calc(50% - 8px);
	mask-image: url(../img/common/ico_arw.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: var(--text_inversion);
	width: 16px;
	height: 16px;
}

.btn._white._arrow a::after,
.btn._white._arrow button::after {
	background-color: var(--brand_primary);
}

.btn._inactive._arrow a::after,
.btn._inactive._arrow button::after {
	background-color: var(--text_secondary);
}

/* allwhite / allpink */
.btn._allwhite a,
.btn._allwhite button,
.btn._allwhite input[type="submit"],
.btn._allwhite input[type="button"],
.btn._allwhite input[type="reset"] {
	color: var(--text_primary);
	background: var(--background_primary);
	border: 2px solid var(--background_primary);
}

.btn._allwhite._arrow a::after,
.btn._allwhite._arrow button::after {
	background-color: var(--brand_primary);
}

.btn._allpink a,
.btn._allpink button,
.btn._allpink input[type="submit"],
.btn._allpink input[type="button"],
.btn._allpink input[type="reset"] {
	color: var(--text_primary);
	background: var(--background_tertiary);
	border: 2px solid var(--background_primary);
}

.btn._allpink._arrow a::after,
.btn._allpink._arrow button::after {
	background-color: var(--brand_primary);
}


/* =========================
   並び替えボタン
   ========================= */

.sort_select {
	position: relative;
	display: inline-block;
	font-size: var(--text3);
}

.sort_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 120px;
	padding: 2px 16px;
	box-sizing: border-box;
	border-radius: 999px;
	border: 2px solid var(--brand_primary);
	background: var(--background_primary);
	color: var(--text_primary);
	font-size: var(--caption1);
	font-weight: 700;
	cursor: pointer;
}

.sort_btn::after {
	content: "";
	width: 16px;
	height: 16px;
	mask-image: url("../img/common/ico_sort.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	background-color: var(--brand_primary); 
}

.sort_btn:not(:disabled):hover {
	opacity: .7;
}

.sort_select.is_open .sort_btn {
	background: var(--brand_primary);
	color: var(--text_inversion);
}

.sort_select.is_open .sort_btn::after {
	background-color: var(--background_primary); 
}

.sort_menu {
	position: absolute;
	top: calc(100% + 13px);
	left: 50%;
	transform: translateX(-50%);
	min-width: 124px;
	padding: 0;
	border-radius: 16px;
	background: var(--background_primary);
	box-shadow: 0 4px 12px rgba(238, 135, 111, 0.25);
	box-sizing: border-box;
	display: none;
	z-index: 10;
}

.sort_select.is_open .sort_menu {
	display: block;
}

.sort_menu_item {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border: none;
	background: transparent;
	color: var(--text_primary);
	font-size: var(--caption1);
	font-weight: bold;
	text-align: left;
	cursor: pointer;
	box-sizing: border-box;
	position: relative;
}

.sort_menu_item:first-child:after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 16px;
	right: 16px;
	height: 1px;
	background-color: var(--line_primary);
}

.sort_menu_item:hover {
	background: var(--background_secondary);
}

.sort_menu_item::before {
	content: "";
	width: 12px;
	height: 12px;
	mask-image: url("../img/common/ico_check_sort.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	background-color: transparent;
}

.sort_menu_item.is_active::before {
	background-color: var(--text_primary);
}

/* accordion_btn */
.accordion_btn {
	margin: 24px 0 0;
	font-size: 1.2rem;
	font-weight: bold;
	text-align: center;
}

.accordion_btn a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 37px;
	padding: 8px 36px 8px 16px;
	border-radius: 32px;
	color: var(--text_primary);
	text-decoration: none;
	background: var(--background_primary);
	position: relative;
	cursor: pointer;
}

.accordion_btn a:hover {
	cursor: pointer;
	opacity: .7;
}

.accordion_btn a::before {
	content: '\3059\3079\3066\898B\308B';
}

.accordion_btn a.active::before {
	content: '\9589\3058\308B';
}

.accordion_btn a::after {
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	right: 10px;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_arw.svg) no-repeat 0 0;
	background-size: 100% auto;
	rotate: 90deg;
}

.accordion_btn a.active::after {
	rotate: -90deg;
}

.accordion_btn_next{
	position: relative;
	cursor: pointer;
}
.accordion_btn_next:hover {
	cursor: pointer;
	opacity: .7;
}
.accordion_btn_next::before,
.accordion_btn_next::after{
	content:"";
	position: absolute;
	z-index: 1;
	right: 0;
	top: calc( 50% - 16px );
	width: 32px;
	height: 32px;
	border-radius: 100%;
}
.accordion_btn_next::before{
	background: var(--background_tertiary);
}
.accordion_btn_next::after{
	z-index: 2;
	right: 8.5px;
	top: calc( 50% - 7.5px );
	width: 15px;
	height: 15px;
	mask-image: url(../img/common/ico_plus.svg);
	mask-repeat: no-repeat;
	mask-size: contain;
	background-color: #4B4B4B;
}
.accordion_btn_next.active::after{
	mask-image: url(../img/common/ico_minus.svg);
}

/* ボタン2列 */
.btn_col2 {
	display: flex;
    flex-direction: column-reverse;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}

/* 決定ボタン */
.submit_btn {
	border: none;
	background: var(--brand_primary);
	color: #fff;
	font-weight: bold;
	font-size: var(--text3);
	padding: 12px 17px;
	min-width: 280px;
	box-sizing: border-box;
	border-radius: 50px;
	cursor: pointer;
}

.btn_col2 .submit_btn,
.btn_col2 input[type="submit"].submit_btn {
	min-width: 258px;
}

.submit_btn:hover {
	cursor: pointer;
	opacity: .7;
}

/* 決定ボタン 非活性 */
.submit_btn:disabled, .submit_btn:disabled:hover {
	color: var(--text_secondary);
	background: var(--line_primary);
	cursor: default;
	opacity: 1;
}

/* 戻るボタン */
.return_btn {
	border: none;
	background: #fff;
	border: 2px solid var(--brand_primary);
	color: var(--text_primary);
	font-size: var(--text3);
	font-weight: bold;
	padding: 10px 17px;
	min-width: 258px;
	box-sizing: border-box;
	border-radius: 50px;
	cursor: pointer;
}

.return_btn:hover {
	cursor: pointer;
	opacity: .7;
}

/* お問い合わせエリア */
.contact_cards {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.contact_card {
	flex: 1;
	background: var(--background_secondary);
	border-radius: 8px;
	padding: 24px;
}

.contact_btn a {
    display: block;
	padding: 14px 22px 14px 44px;
	border-radius: 32px;
	border: 2px solid var(--brand_primary);
	background: var(--background_primary);
	color: var(--text_primary);
	text-decoration: none;
	font-weight: 700;
	font-size: var(--text3);
	position: relative;
	text-align: center;
	max-width: 177px;
	margin: 0 auto;
}

.contact_btn a::before {
	content: "";
	position: absolute;
	left: 16px; /* ボタンの左からの距離 */
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.contact_btn.mail_btn a::before {
	background-image: url("../img/common/ico_mail.svg");
}

.contact_btn.tel_btn a::before {
	background-image: url("../img/common/ico_tel.svg");
}

.contact_info {
	margin-top: 16px;
	font-size: var(--caption1);
	color: var(--text_primary);
	line-height: 1.6;
}

.contact_btn a:hover {
	cursor: pointer;
	opacity: .7;
}

/* 強調 */
strong.caution{
	color: var(--brand_primary);
}


/* 共通部品（※制作中）
======================================================= */

/* 見出し＋アコーディオン */
.title_accordion_btn .block-title {
	position: relative;
	cursor: pointer;
}

.title_accordion_btn .block-title:hover {
	cursor :pointer;
	opacity: .7;
}

.title_accordion_btn .block-title:after {
	content: '';
	display: block;
	position: absolute;
	width: 32px;
	height: 32px;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	background: url(../img/common/ico_circle_plus.svg) no-repeat right center;
	background-size: 32px auto;
}

.title_accordion_btn.active .block-title:after {
	background: url(../img/common/ico_circle_minus.svg) no-repeat right center;
	background-size: 32px auto;
}

.title_accordion_btn + .accordion_area {
	display: none;
}

/* フロー */
.block_formflow{
	margin: 0 0 24px;
}

.block_formflow ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 48px;
	margin: 0 auto;
    max-width: 360px;
	padding: 0;
	list-style-type: none;
	text-align: center;
	font-size: var(--caption2);
}

.block_formflow ul li{
	position: relative;
	width: 7.2rem;
}

.block_formflow ul li + li::before{
	content:"";
	position: absolute;
	z-index: 1;
	left: -48px;
	top: calc( 50% - 1px );
	width: 32px;
	height: 2px;
	border-radius: 2px;
	background: var(--line_primary);
}

.block_formflow ul li.done + li::before{
	background: var(--text_minus);
}

.block_formflow ul li.no_line::before {
	background: transparent!important;
}

.block_formflow ul li span{
	display: block;
}

.block_formflow ul li span.block_formflow_num{
	position: relative;
	z-index: 1;
	width: 3.2rem;
	height: 3.2rem;
	margin: 0 auto 4px;
	font-size: 1.4rem;
    line-height: 32px;
	box-sizing: border-box;
	color: var(--text_inversion);
	font-weight: bold;
}

.block_formflow ul li span.block_formflow_num::before{
	content:"";
	position: absolute;
	z-index: -1;
	left: 4px;
	top: 4px;
	width: calc( 100% - 8px );
	height: calc( 100% - 8px );
	background: #767676;
	border-radius: 100%;
}

.block_formflow ul li.active span.block_formflow_num::before{
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: var(--brand_primary);
}

.block_formflow ul li.done span.block_formflow_num::before{
	background: var(--text_minus);
}

/* フロー4STEPの場合 */
.block_formflow.block_formflow_4step ul {
	gap: 8px 16px;
}

.block_formflow.block_formflow_4step ul li + li::before {
	left: -15px;
	width: 16px;
}

/* ヘルプ表示（？アイコン） */
.tooltip {
	display: inline-block;
	vertical-align: middle;
	width: 24px;
	height: 24px;
	margin: 3px 0 0;
	background: url(../img/common/ico_question.svg) no-repeat 0 0;
	background-size: 20px auto;
	/* outline: none!important; */
}

.tooltip:hover {
	opacity: .7;
}

.btn .tooltip{
	margin-top: 0;
	height: auto;
}

/* ラジオボタン＋ラベル */
.radio_item {
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: var(--text3);
	font-weight: bold;
	color: var(--text_primary);
}

.radio_item li {
	padding: 10px 0 10px 10px;
	position: relative;
}

.radio_item .radio_input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.radio_item .radio_label {
	position: relative;
	padding-left: 34px;
	cursor: pointer;
}

.radio_item .radio_label:hover {
	opacity: .7;
}

.radio_item .radio_label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	border-radius: 50%;
	box-sizing: border-box;
	border: 2px solid var(--brand_primary);
	background: var(--background_primary);
}

.radio_item .radio_label::after {
	content: "";
	position: absolute;
	left: 1px;
	top: 50%;
	transform: translate(4px, -50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--brand_primary);
	opacity: 0;
}

.radio_item .radio_input:checked + .radio_label::after {
	opacity: 1;
}

.radio_item .radio_input:disabled + .radio_label {
	cursor: not-allowed;
	color: var(--text_secondary);
}

.radio_item .radio_input:disabled + .radio_label::before {
	border-color: var(--line_secondary);
	background: var(--line_primary);
}

.radio_item .radio_input:disabled:checked + .radio_label::after {
	background: var(--line_secondary);
	opacity: 1;
}

/* チェックボックス＋ラベル */
.checkbox_item {
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: var(--text3);
	font-weight: bold;
	color: var(--text_primary);
}

.checkbox_item li {
    padding: 10px 0 10px 10px;
}

.checkbox_item .check_input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.checkbox_item .check_label {
	position: relative;
	padding-left: 34px;
	cursor: pointer;
}

.checkbox_item .check_label:hover {
	cursor: pointer;
	opacity: .7;
}

.checkbox_item .check_label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	border-radius: 4px;
	box-sizing: border-box;
	border: 2px solid var(--brand_primary);
	background: var(--background_primary);
}

.checkbox_item .check_input:checked + .check_label::before {
	background: var(--brand_primary);
}

.checkbox_item .check_label::after {
	content: "";
	position: absolute;
	left: 9px;
	top: 50%;
	transform: translateY(-58%) rotate(45deg);
	width: 4px;
	height: 9px;
	border-right: 2px solid var(--text_inversion);
	border-bottom: 2px solid var(--text_inversion);
	opacity: 0;
}

.checkbox_item .check_input:checked + .check_label::after {
	opacity: 1;
}

.checkbox_item .check_input:disabled + .check_label {
	cursor: not-allowed;
}

.checkbox_item .check_input:disabled + .check_label::before {
	border-color: var(--line_secondary);
	background: var(--line_primary);
}


/* tab_btnlist */

.tab_btnlist {
	display: flex;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	font-size: var(--text3);
	font-weight: bold;
	text-align: center;
}

.tab_btnlist li {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 50%;
	height: 100%;
	padding: 14px;
	border: 2px solid var(--brand_primary);
	box-sizing: border-box;
	text-decoration: none;
	color: var(--brand_primary);
	background: var(--background_primary);
	cursor: pointer;
}

.tab_btnlist li:hover {
	opacity: .7;
}

.tab_btnlist li:nth-child(odd) {
	border-radius: 53px 0 0 53px;
}

.tab_btnlist li:nth-child(even) {
	border-radius: 0 53px 53px 0;
}

.tab_btnlist li.active {
	color: var(--background_primary);
	background: var(--brand_primary);
}

/* tab_contents */
.tab_contents .tab_content{
	display: none;
}

.tab_contents .tab_content.active{
	display: block;
}

/* =========================
   SP：金融機関検索パーツ（flex版）
   ========================= */

.bank_search_panel {
	display: none;
}

.bank_search_panel.is_active {
	display: block;
}

.bank_search {
	max-width :350px;
	margin: 0 auto 24px;
	background: var(--background_secondary);
	border-radius: 8px;
	box-sizing: border-box;
}

/* ─ タブ ─ */

.bank_search_tab {
	display: flex;
	gap: 8px;
	border-radius: 8px 8px 0 0;
	overflow: hidden;
}

.bank_search_tab_top {
	margin-bottom: 16px;
}

.bank_search_tab_bottom {
	margin-top: 24px;
}

.bank_search_tab button {
	flex: 1;
	border: none;
	background: var(--background_secondary);
	font-size: var(--text3);
	font-weight: 700;
	color: var(--text_primary);
	padding: 10px 4px;
	box-sizing: border-box;
	box-shadow: inset 0 -2px 0 var(--line_primary);
	cursor: pointer;
	white-space: nowrap;
}
.bank_search_tab button.is_active {
	background: var(--background_tertiary);
	color: var(--brand_primary);
	box-shadow: inset 0 -2px 0 var(--brand_primary);
}

/* ─ かな一覧（flex） ─ */

.bank_search_kana {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 10px;
}

/* ボタン・空マスの共通サイズ */
.kana_key,
.kana_key_placeholder {
	/* 5列レイアウトになるように幅を計算 */
	flex: 0 0 calc((100% - 16px * 4) / 5);
	max-width: calc((100% - 16px * 4) / 5);
	height: 40px;
	box-sizing: border-box;
}

/* かなボタン本体 */
.kana_key {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	border: 2px solid var(--text_primary);
	background: var(--background_secondary);
	font-size: var(--text2);
	font-weight: 700;
	color: var(--text_primary);
	cursor: pointer;
}

.kana_key:hover {
	opacity: .7;
}

/* 空マス用（スペースだけ確保・見た目なし） */
.kana_key_placeholder {
	display: block;
	border: none;
	background: transparent;
}

/* アクティブ状態・無効状態 */

.kana_key_active {
	border-color: var(--text_primary);
	background: var(--brand_primary);
	color: var(--text_inversion);
}

.kana_key_disabled {
	border-color: var(--line_primary);
	background: var(--background_secondary);
	color: var(--line_primary);
	cursor: default;
}

.kana_key_none {
	border-color: var(--line_primary);
	background: var(--background_primary);
	color: var(--line_primary);
	cursor: default;
}

/* ─ コード検索エリア ─ */

.bank_search_panel_code {
	margin-top: 8px;
}

.bank_search_code {
	margin: 16px 16px 0;
}

.bank_search_input {
	margin-bottom: 16px;
}

.bank_search_input input {
	width: 100%;
	border-radius: 4px;
	border: 1px solid var(--line_secondary);
	padding: 10px;
	font-size: var(--text3);
	box-sizing: border-box;
}

/* 下の検索ボタン（汎用 .btn 流用） */

.bank_search_btn {
	text-align: center;
}

.bank_search_btn a {
	width: 100%;
}

/* pagetab */

.pagetab {
	display: flex;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	font-size: var(--text3);
	font-weight: bold;
	text-align: center;
}

.pagetab li {
	width: 50%;
}

.pagetab li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 14px;
	box-sizing: border-box;
	text-decoration: none;
	/* [DEB-2025-001]2026.03.10 FST START */
	border: 2px solid var(--text_primary);
	color: var(--text_primary);
	/* [DEB-2025-001]2026.03.10 FST END */
	background: var(--background_primary);
}

.pagetab li a:hover {
	opacity: .7;
}

.pagetab li:nth-child(odd) a {
	border-radius: 53px 0 0 53px;
}

.pagetab li:nth-child(even) a {
	border-radius: 0 53px 53px 0;
}

.pagetab li a.active {
	color: var(--background_primary);
	/* [DEB-2025-001]2026.03.10 FST START */
	background: var(--text_primary);
	/* [DEB-2025-001]2026.03.10 FST END */
}

/* block-plan */

.block-plan .block-plan_col + .block-plan_col {
	margin: 8px 0 0;
}

.block-plan .block-plan_tit {
	margin: 0 0 4px;
	font-size: var(--caption1);
	font-weight: bold;
}

.block-plan .block-plan_num1 {
	font-size: var(--number1);
	font-weight: bold;
	line-height: 1;
	/* letter-spacing: -.04em; */
	letter-spacing: -.01em;
	word-break: break-all;
}

.block-plan .block-plan_num2 {
	padding: 0 0 0 16px;
	font-size: var(--text3);
	font-weight: bold;
	position: relative;
	word-break: break-all;
}

.block-plan .block-plan_num2._plus {
	color: var(--text_plus);
}

.block-plan .block-plan_num2._minus {
	color: var(--text_minus);
}

.block-plan .block-plan_num2._plus::before {
	content: '';
	position: absolute;
	/* top: calc(50% - 8px); */
	top: calc(.8em - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_plus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-plan .block-plan_num2._minus::before {
	content: '';
	position: absolute;
	/* top: calc(50% - 8px); */
	top: calc(.8em - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_minus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

/* block-planbtn */

.block-planbtn {
	margin: 16px 0 0;
	font-size: 1.4rem;
	font-weight: bold;
	text-align: right;
}

.block-planbtn a {
	display: inline-block;
	vertical-align: middle;
	padding: 8px 36px 8px 16px;
	border-radius: 32px;
	color: var(--text_primary);
	text-decoration: none;
	background: var(--background_tertiary) url(../img/common/ico_arw.svg) no-repeat right 16px center;
	background-size: 16px auto;
}

.block-planbtn a:hover {
	opacity: .7;
}

/* block-nisa */

.block-nisa .block-nisa_col {
	margin: 0 0 24px;
}

.block-nisa .block-nisa_col:last-child {
	margin: 0;
}

.block-nisa .block-nisa_col .block-nisa_title {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 16px;
}

.block-nisa .block-nisa_col .block-nisa_title dt {
	font-size: var(--caption1);
}

.block-nisa .block-nisa_col .block-nisa_title dt strong {
	font-size: var(--text3);
	font-weight: bold;
	color: var(--brand_primary);
}

.block-nisa .block-nisa_col .block-nisa_title dd {
	padding: 5px;
	border-radius: 16px;
	font-size: var(--caption2);
	line-height: 1;
	background: var(--background_secondary);
}

.block-nisa .block-nisa_col .block-nisa_graph {
	margin: 0 0 12px;
	text-align: center;
}

.progress-container {
	position: relative;
	height: 16px;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 15px;
	border: 1px solid #D43F3F;
}
.progress-used {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	background-color: #D43F3F;
}
.progress-scheduled {
	position: absolute;
	height: 100%;
	background-color: #FEEBEB;
}
.progress-available {
	position: absolute;
	height: 100%;
	background-color: #F8F8F8;
}
.progress-unused {
	position: absolute;
	height: 100%;
	background-color: white;
}
.divider {
	position: absolute;
	top: 0;
	width: 1px;
	height: 100%;
	background-color: #D43F3F;
	z-index: 10;
}

.block-nisa .block-nisa_col .block-nisa_detail {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 8px 0 0;
	font-size: var(--caption2);
}

.block-nisa .block-nisa_col .block-nisa_detail dt {
	padding: 0 0 0 13px;
	position: relative;
	flex: 0 0 130px;
}

.block-nisa .block-nisa_col .block-nisa_detail dt::before {
	content: '';
	position: absolute;
	top: calc(50% - 4px);
	left: 0;
	width: 8px;
	height: 8px;
	border: 1px solid var(--brand_primary);
	box-sizing: border-box;
	border-radius: 16px;
	background: var(--brand_primary);
}

.block-nisa .block-nisa_col .block-nisa_detail._pink dt::before {
	background: var(--background_tertiary);
}
.block-nisa .block-nisa_col .block-nisa_detail._white dt::before {
	background: #fff;
}

.block-nisa .block-nisa_col .block-nisa_detail dd {
	font-size: var(--number3);
	font-weight: bold;
	letter-spacing: -.04em;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

/* block-price */

.block-price {
	padding: 16px 24px;
	border-radius: 8px;
	background: var(--background_secondary);
}

.block-price dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	font-size: var(--text3);
}

.block-price dl + dl {
	margin: 8px 0 0;
}

.block-price dl dt{
	flex: 0 0 112px;
}

.block-price dl dd {
	font-weight: bold;
	letter-spacing: -.04em;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

/* block-transaction */

.block-transaction {
	padding: 0 16px;
}

.block-transaction .block-transaction_txt {
	margin: 0 0 16px;
}

/* block-comment */

.block-comment {
	padding: 24px;
	border-radius: 8px;
	background: var(--background_secondary);
}

.block-comment .block-comment_tit {
	margin: 0 0 16px;
	font-size: var(--text3);
	font-weight: bold;
}

/* block-planprice */

.block-planprice {
	margin: 16px 0 0 0;
	padding: 16px;
	border-radius: 8px;
	background: var(--background_secondary);
}

.block-planprice .block-planprice_col {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 8px;
	box-sizing: border-box;
	font-size: var(--caption1);
}

.block-planprice .block-planprice_col:last-child {
	margin: 0;
}

.block-planprice .block-planprice_col dt{
	flex: 0 0 82px;
}

.block-planprice .block-planprice_col dd {
	font-weight: bold;
	letter-spacing: -.04em;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

.block-planprice .block-planprice_num {
	display: inline-block;
	font-size: var(--caption2);
}

.block-planprice .block-planprice_col dt {
	display: flex;
	align-items: center;
}

.block-planprice .block-planprice_col dt .tooltip {
	transform: translateY(1px);
}

/* block-planprice type02 */

.block-planprice.type02 {
	padding: 0;
	background: none;
}

/* block-planprice type03 */

.block-planprice.type03 {
	padding: 0;
	background: none;
	color: var(--text_secondary);
}

.block-planprice.type03 dt {
	font-size: var(--caption2);
}

.block-planprice.type03 dd {
	font-size: var(--caption1);
	font-weight: normal;
}

.block-planprice.spacer {
	margin-top: 16px;
	padding-top: 16px;
	border-radius: 0;
	border-top: 1px solid var(--line_primary);
}

.block-planprice .block-plan_num3 {
	padding: 0 0 0 16px;
	font-size: var(--number3);
	font-weight: bold!important;
	position: relative;
	word-break: break-all;
}

.block-planprice .block-plan_num3._plus {
	color: var(--text_plus);
}

.block-planprice .block-plan_num3._minus {
	color: var(--text_minus);
}

.block-planprice .block-plan_num3._plus::before {
	content: '';
	position: absolute;
	/* top: calc(50% - 8px); */
	top: calc(.8em - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_plus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-planprice .block-plan_num3._minus::before {
	content: '';
	position: absolute;
	/* top: calc(50% - 8px); */
	top: calc(.8em - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_minus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-planprice-caution {
	margin-top: 8px;
	font-size: var(--caption2);
	color: var(--text_secondary);
	text-align: right;
}

/* tooltip */
.tooltip {
	display: inline-block;
	vertical-align: middle;
	width: 24px;
	height: 24px;
	margin: 3px 0 0;
	background: url(../img/common/ico_question.svg) no-repeat 0 0;
	background-size: 20px auto;
}

.tooltip:hover {
	opacity: .7;
}

.btn .tooltip{
	margin-top: 0;
	height: auto;
}

/* block-balance */

.block-balance .block-balance_year {
	width: 30%;
}

.block-balance .block-balance_detail {
	width: 70%;
}

.block-balance .block-balance_detail dl {
	display: flex;
	justify-content: space-between;
}

.block-balance .block-balance_detail dl dt{
	flex: 0 0 112px;
}

.block-balance .block-balance_detail dl dd {
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

.block-balance .block-balance_col {
	display: flex;
	font-size: var(--caption2);
}

.block-balance .block-balance_col._title {
	margin: 0 0 8px;
	padding: 0;
	border-top: none;
	font-weight: bold;
}

.block-balance > .block-balance_col:nth-child(n + 7) {
	display: none;
}

.block-balance.active > .block-balance_col {
	display: flex;
}

.block-balance .block-balance_col + .block-balance_col {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--line_primary);
}

.block-balance .block-balance_col._title + .block-balance_col {
	padding-top: 0;
	border-top: none;
}

.block-balance .block-balance_col .block-balance_year {
	font-size: var(--caption1);
	font-weight: bold;
}

.block-balance .block-balance_col._title .block-balance_year,
.block-balance .block-balance_col._title .block-balance_detail {
	font-size: var(--caption1);
}

.block-balance .block-balance_col .block-balance_detail dl + dl {
	margin: 12px 0 0;
}

/* block-sell */

.block-sell {
	padding: 16px;
	border-radius: 8px;
	font-size: var(--text3);
	background: var(--background_secondary);
}

.block-sell + .block-sell {
	margin: 24px 0 0;
}

.block-sell .block-sell_title {
	display: inline-block;
	margin: 0 0 16px;
	padding: 4px 16px;
	border-radius: 32px;
	font-weight: bold;
	background: var(--background_primary);
}

.block-sell .block-sell_title .tooltip {
	margin: -3px 0 0 4px;
	background-size: 100% auto;
}

.block-sell .block-sell_detail {
	display: flex;
	align-content: center;
}

.block-sell .block-sell_detail + .block-sell_detail {
	margin: 8px 0 0;
}

.block-sell .block-sell_detail dt {
	flex: 0 0 62px;
}

.block-sell .block-sell_detail dd {
	font-weight: bold;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

.block-sell .block-sell_num {
	padding: 0 0 0 16px;
	font-weight: bold;
	position: relative;
	word-break: break-all;
	display: inline-block;
}

.block-sell .block-sell_num._plus {
	color: var(--text_plus);
}

.block-sell .block-sell_num._minus {
	color: var(--text_minus);
}

.block-sell .block-sell_num._plus::before {
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_plus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-sell .block-sell_num._minus::before {
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_minus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-sell .block-sell_btn {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.block-sell .block-sell_btn li {
	margin: 0 0 8px;
}

.block-sell .block-sell_btn li:last-child {
	margin: 0;
}

.block-sell .block-sell_btn li a{
	width: 160px;
	padding: 8px;
}

/* block-sell_accordion */
.block-sell_accordion{
	margin: 16px 0 0;
	padding: 4px 0;
}

.block-sell_accordion .block-sell_accordion_tit{
	position: relative;
}

.block-sell_accordion .block-sell_accordion_detail{
	display: none;
}

.block-sell_accordion .block-sell_accordion_detail_tit{
	font-size: var(--caption1);
	margin: 16px 0 0;
}

.block-sell_accordion .block-sell_accordion_price{
	margin: 8px 0 0;
	padding: 24px;
	background: #fff;
	border-radius: 8px;
}

.block-sell_accordion .block-sell_accordion_price dl{
	display: flex;
	align-content: center;
}

.block-sell_accordion .block-sell_accordion_price dl + dl{
	margin: 8px 0 0;
}

.block-sell_accordion .block-sell_accordion_price dl dt {
	flex: 0 0 60px;
}

.block-sell_accordion .block-sell_accordion_price dl dd{
	font-weight: bold;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}


/* block-sell-accept */
.block-sell-accept h2{
	font-size: var(--title2);
	line-height: 1.5;
	font-weight: bold;
	margin: 0 0 16px;
}

.block-sell-accept .block-sell-accept_detail{
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin: 24px 0 0;
}

.block-sell-accept .block-sell-accept_detail:not(.active) + .accordion_btn span.close,
.block-sell-accept .block-sell-accept_detail.active + .accordion_btn span.open{
	display: none;
}

.block-sell-accept .block-sell-accept_list{
	width: 100%;
	padding: 0 16px 16px;
	box-sizing: border-box;
	border-radius: 8px;
	background: var(--background_secondary);
}

.block-sell-accept .block-sell-accept_detail:not(.active) .block-sell-accept_list:nth-of-type(n+3){
	display: none;
}

.block-sell-accept .block-sell-accept_list dl{
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.block-sell-accept .block-sell-accept_list dl + dl{
	border-top: 1px solid var(--line_primary);
}

.block-sell-accept .block-sell-accept_list dl dt,
.block-sell-accept .block-sell-accept_list dl dd{
	padding: 16px 0;
}

.block-sell-accept .block-sell-accept_list dl dt{
	flex: 0 0 60px;
}

.block-sell-accept .block-sell-accept_list dl dd{
	font-weight: bold;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

.block-sell-accept .block-sell-accept_list_foot{
	margin: 8px 0 0;
	text-align: right;
}

.block-sell-accept .accordion_btn a:not(.active)::before {
	content: '\3082\3063\3068\898B\308B';
}


/* block-sell-acceptbtn */
.block-sell-acceptbtn {
	font-size: var(--caption1);
	font-weight: bold;
	text-align: right;
}

.block-sell-acceptbtn a {
	display: inline-block;
	vertical-align: middle;
	padding: 8px 36px 8px 16px;
	border-radius: 32px;
	color: var(--text_primary);
	text-decoration: none;
	background: var(--background_primary) url(../img/common/ico_arw.svg) no-repeat right 16px center;
	background-size: 16px auto;
}

.block-sell-acceptbtn a:hover {
	opacity: .7;
}

/* block-sell-accepttxt */
.block-sell-accepttxt{
	padding: 8px 0;
}

/* block-sell-note */
.block-sell-note h2{
	font-size: var(--caption1);
	margin: 0 0 16px;
}

.block-sell-note ul{
	font-size: var(--caption1);
	display: flex;
	flex-direction: column;
	gap: 16px;
}


/* block-formflow */
.block-formflow{
	margin: 0 0 40px;
}

.block-formflow ul{
	display: flex;
	justify-content: center;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style-type: none;
	text-align: center;
	font-size: var(--caption2);
}

.block-formflow ul li{
	position: relative;
	width: 8.2rem;
}

.block-formflow ul li + li::before{
	content:"";
	position: absolute;
	z-index: 1;
	left: -16px;
	top: calc( 50% - 1px );
	width: 16px;
	height: 2px;
	border-radius: 2px;
	background: var(--line_primary);
}

.block-formflow ul li.done + li::before{
	background: var(--text_minus);
}

.block-formflow ul li span{
	display: block;
}

.block-formflow ul li span.block-formflow_num{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1;
	width: 3.2rem;
	height: 3.2rem;
	margin: 0 auto 4px;
	box-sizing: border-box;
	font-size: var(--number2);
	color: var(--text_inversion);
	line-height: 1;
	font-weight: bold;
}

.block-formflow ul li span.block-formflow_num::before{
	content:"";
	position: absolute;
	z-index: -1;
	left: 4px;
	top: 4px;
	width: calc( 100% - 8px );
	height: calc( 100% - 8px );
	background: #767676;
	border-radius: 100%;
}

.block-formflow ul li.active span.block-formflow_num::before{
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: var(--brand_primary);
}

.block-formflow ul li.done span.block-formflow_num::before{
	background: var(--text_minus);
}


/* block-sell-entry */
.block-sell-entry .block-sell-entry_col{
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0 0 8px;
}

.block-sell-entry .block-sell-entry_col h3.block-sell-entry_tit{
	font-size: var(--text3);
}

.block-sell-entry .block-sell-entry_col .block-sell-entry_num{
	font-size: var(--number1);
	font-weight: bold;
	line-height: 1.2;
	letter-spacing: -0.04em;
	word-break: break-all;
}

.block-sell-entry .block-sell-entry_col .block-sell-entry_caption{
	font-size: var(--caption1);
}

.block-sell-entry h2.block-title{
	margin-bottom: 24px;
}

.block-sell-entry .block-sell-entry_list + h2.block-title{
	margin-top: 32px;
}


/* block-sell-entry_list */
.block-sell-entry_list{
	padding: 8px 24px;
	box-sizing: border-box;
	border-radius: 8px;
	background: var(--background_secondary);
}

.block-sell-entry_list dl{
	display: flex;
	align-items: center;
}

.block-sell-entry_list dl + dl{
	border-top: 1px solid var(--line_primary);
}

.block-sell-entry_list dl dt,
.block-sell-entry_list dl dd{
	padding: 16px 0;
	text-align: right;
}

.block-sell-entry_list dl dt{
	width: 80px;
	margin: 0 8px 0 0;
	font-size: var(--text3);
}

.block-sell-entry_list dl dd{
	width: calc( 100% - 88px );
	font-size: var(--number2);
	font-weight: bold;
	word-break: break-all;
	margin: 0 0 0 auto;
	text-align: right;
}

.block-sell-entry_list .block-sell_num {
	display: inline-block;
	padding: 0 0 0 16px;
	font-weight: bold;
	position: relative;
}

.block-sell-entry_list .block-sell_num._plus {
	color: var(--text_plus);
}

.block-sell-entry_list .block-sell_num._minus {
	color: var(--text_minus);
}

.block-sell-entry_list .block-sell_num._plus::before {
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_plus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-sell-entry_list .block-sell_num._minus::before {
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	left: 0;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_minus.svg) no-repeat 0 center;
	background-size: 100% auto;
}

.block-sell-entry_list table{
	font-size: var(--caption1);
}

.block-sell-entry_list table thead th{
	font-weight: bold;
	padding: 0 0 2px;
}

.block-sell-entry_list table thead th:nth-child(1){
	width: 80px;
}
.block-sell-entry_list table thead th:nth-child(3){
	width: 54px;
}

.block-sell-entry_list table tbody th,
.block-sell-entry_list table tbody td{
	padding: 6px 0;
	word-break: break-all;
}

/* block-sell-entry_caution */
.block-sell-entry_caution{
	color: var(--text_error);
	border: 1px solid var(--text_error);
	margin: 16px 0 0;
	padding: 24px;
	border-radius: 8px;
}

/* block-sell-entry_form */
.block-sell-entry_form{
	margin: 24px 0 0;
}

.block-sell-entry_form h3{
	font-size: var(--text3);
	margin: 0 0 16px;
}

.block-sell-entry_form h3 .tooltip,
.fz_text3 > .tooltip {margin-top: 1px;}

/* contactform */
.contactform fieldset{
	border: 0;
	margin: 0;
	padding: 16px 0;
}
.contactform fieldset.contactform_1row{
	display: flex;
	align-items: center;
}

.contactform fieldset + fieldset{
	border-top: 1px solid var(--line_primary);
}

.contactform fieldset legend{
	display: contents;
}

.contactform fieldset legend span{
	display: flex;
	align-items: center;
}

.contactform fieldset.contactform_1row legend span{
	width: 35%;
}

.contactform fieldset legend span .tooltip {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-top: 0;
	margin-left: 4px;
	background-size: 100% auto;
}

.contactform fieldset .inputarea{
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 8px 0 0;
}

.contactform fieldset.contactform_1row .inputarea{
	width: calc( 65% - 4px );
	padding: 0 0 0 4px;
}

.contactform fieldset .inputarea_group{
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.contactform fieldset .inputarea .inputted{
	font-weight: bold;
	text-align: right;
	word-break: break-all;
}

.contactform fieldset .inputarea label.radio{
	position: relative;
	display: table;
	padding: 10px 0 10px 44px;
	font-weight: bold;
	cursor: pointer;
}

.contactform fieldset .inputarea input[type="radio"] {
  position: absolute;
  left: 12px;
  top: calc( 50% - 10px );
  width: 20px;
  height: 20px;
  margin: 0 12px 0 0;
  border: 2px solid var(--brand_primary);
  border-radius: 50%;
  vertical-align: -4px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.contactform fieldset .inputarea input[type="radio"]:checked::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand_primary);
}

.contactform fieldset .inputarea input[type="radio"]:disabled {
	border-color: var(--line_secondary);
}
.contactform fieldset .inputarea input[type="radio"]:disabled:checked::before {
	background-color: var(--line_secondary);
}

.contactform fieldset .inputarea input[type="text"],
.contactform fieldset .inputarea input[type="tel"],
.contactform fieldset .inputarea input[type="password"],
.contactform fieldset .inputarea input[type="email"],
.contactform fieldset .inputarea select{
	border: 1px solid var(--text_secondary);
	padding: 15px;
	border-radius: 8px;
	box-sizing: border-box;
	font-size: var(--caption1);
	-webkit-appearance: none;
	appearance: none;         /* Chrome, Safari */
	-webkit-appearance: none; /* Safari/Chrome */
	-moz-appearance: none;    /* Firefox */
}

.contactform fieldset .inputarea input[type="text"],
.contactform fieldset .inputarea input[type="tel"],
.contactform fieldset .inputarea input[type="password"],
.contactform fieldset .inputarea input[type="email"] {
	width: 100%;
}

.contactform fieldset .inputarea select{
	padding-right: 30px;
	color: var(--text_primary);
	background: #fff;
}

.contactform fieldset .inputarea .select_wrapper{
	position: relative;
  width: max-content;
}

.contactform fieldset .inputarea .select_wrapper::before{
	content: '';
	position: absolute;
	top: calc(50% - 8px);
	right: 10px;
	width: 16px;
	height: 16px;
	background: url(../img/common/ico_arw.svg) no-repeat 0 0;
	background-size: 100% auto;
	rotate: 90deg;
}

.contactform fieldset .inputarea .select_wrapper:has(select:disabled)::before {
	/* display: none; */
	filter: grayscale(1);
}

.contactform fieldset .inputarea input[type="text"].error,
.contactform fieldset .inputarea input[type="tel"].error,
.contactform fieldset .inputarea input[type="password"].error,
.contactform fieldset .inputarea input[type="email"].error,
.contactform fieldset .inputarea select.error{
	border-color: var(--text_error);
}

.contactform fieldset .inputarea input[type="text"]:disabled,
.contactform fieldset .inputarea select:disabled{
	-webkit-text-fill-color: var(--text_secondary); /* Chrome/Safari */
	-moz-text-fill-color: var(--text_secondary);    /* Firefox */
	color: var(--text_secondary);
	border: 1px solid var(--text_secondary);
	background: var(--line_primary);
	opacity: 1;
}

.contactform fieldset .inputarea input.tel {
	width: 68px;
}

.contactform fieldset:not(.contactform_1row) .inputarea .inputarea_group_flex{
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.contactform fieldset .inputarea .inputarea_group_flex .input_wrapper{
	display: flex;
	align-items: center;
	gap: 8px;
}

.contactform fieldset .inputarea .inputarea_group > .error{
	color: var(--text_error);
}

.contactform fieldset .inputarea .inputarea_group > .caption{
	font-size: var(--caption1);
}

.contactform select[name="partial_amount_type"]{
	width: 120px;
}
.contactform input[name="partial_amount"]{
	width: 235px;
}

.contactform .error_txt {
	font-size: var(--caption1);
	color: var(--text_error);
}

/* 取引暗証番号 */

.password_form {
	width: 100%;
	max-width: 257px;
	margin-left: auto;
	margin-right: auto;
}

.password_form input[type="password"] {
	width: 100%;
	padding: 16px;
	box-sizing: border-box;
	border-radius: 8px;
	font-size: var(--text3);
	border: 1px solid var(--line_secondary);
}

.password_form input[type="password"].error {
	border-color: var(--text_error);
}

/* block-sell-entry_flow */
.block-sell-entry_flow{
	margin: 24px 0 0;
}

.block-sell-entry_flow .block-sell-entry_flow_group{
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 24px 0 0;
}

.block-sell-entry_flow .block-sell-entry_flow_item{
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 8px;
	background: var(--background_secondary);
	border-radius: 8px;
	padding: 16px 24px;
	font-size: var(--caption1);
	font-weight: bold;
}

.block-sell-entry_flow .block-sell-entry_flow_item._caution{
	background: var(--background_tertiary);
}

.block-sell-entry_flow .block-sell-entry_flow_item .date{
	width: 200px;
	padding: 4px;
	box-sizing: border-box;
	text-align: center;
	background: #fff;
	border-radius: 15px;
}

.block-sell-entry_flow .block-sell-entry_flow_arrow{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 40px;
	background: url(../img/common/ico_arw_flow.svg) 50% 50% no-repeat;
}

.block-sell-entry_flow .block-sell-entry_flow_arrow > *{
	flex: 1;
}

.block-sell-entry_flow .block-sell-entry_flow_arrow > *:first-child{
	text-align: right;
}

.block-sell-entry_flow .block-sell-entry_flow_arrow > * > p{
	display: inline-block;
	text-align: left;
}

.block-sell-entry_flow .block-sell-entry_flow_txt{
	margin: 16px 0 0;
}


/* block-sell-entry_formbtn */
.block-sell-entry_formbtn{
	margin: 24px 0 0;
	text-align: center;
}

.block-sell-entry_formbtn input.btn {
    border: none;
    background: var(--brand_primary);
    color: #fff;
    font-size: var(--text3);
    padding: 16px 84px;
    border-radius: 50px;
    cursor: pointer;
    transition: opacity .2s;
}

.block-sell-entry_formbtn input.btn:hover {
    opacity: .6;
    transition: opacity .2s;
}

.block-sell-entry_formbtn input.btn:disabled,
.block-sell-entry_formbtn input.btn:disabled:hover{
  color: var(--text_secondary);
	background: var(--line_primary);
	cursor: default;
	opacity: 1;
}


/* block-sell-entry_note */
.block-sell-entry_note h2{
	font-size: var(--caption1);
	margin: 0 0 16px;
}

.block-sell-entry_note ul{
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* block-sell-entry_pin */
.block-sell-entry_pin,
.block_sell_entry_pin{
	margin: 24px 0 0;
}

.block-sell-entry_pin h3,
.block_sell_entry_pin h3{
	font-size: var(--text3);
	margin: 0 0 16px;
}

.block-sell-entry_pin h3 .tooltip,
.block_sell_entry_pin h3 .tooltip{
	margin: -3px 0 0 4px;
	background-size: 100% auto;
}

.block-sell-entry_pin .inputarea input,
.block_sell_entry_pin .inputarea input{
	width: 100%;
	border: 1px solid var(--text_secondary);
	padding: 15px;
	border-radius: 8px;
	box-sizing: border-box;
	font-size: var(--text3);
}

.block-sell-entry_pin .inputarea input.error,
.block_sell_entry_pin .inputarea input.error{
	border-color: var(--text_error);
}

.block-sell-entry_pin .inputarea input + .error,
.block_sell_entry_pin .inputarea input + .error{
	margin-top: 10px;
	color: var(--text_error);
}

/* block-sell-entry_conrifmbtn */
.block-sell-entry_conrifmbtn{
	margin: 24px 0 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.block-sell-entry_conrifmbtn input.btn {
  border: none;
  background: var(--brand_primary);
  color: #fff;
  font-size: var(--text3);
  line-height: 1.5;
  padding: 16px 17px;
  min-width: 258px;
  box-sizing: border-box;
  border-radius: 50px;
  cursor: pointer;
  transition: opacity .2s;
}

.block-sell-entry_conrifmbtn input.btn:hover {
  opacity: .6;
  transition: opacity .2s;
}

.block-sell-entry_conrifmbtn input.btn:disabled,
.block-sell-entry_conrifmbtn input.btn:disabled:hover{
  color: var(--text_secondary);
	background: var(--line_primary);
	cursor: default;
	opacity: 1;
}

.block-sell-entry_conrifmbtn input.return {
  border: none;
  background: #fff;
  border: 2px solid var(--brand_primary);
  color: var(--text_primary);
  font-size: var(--text3);
  font-weight: bold;
  line-height: 1.5;
  padding: 14.5px 17px;
  min-width: 258px;
  box-sizing: border-box;
  border-radius: 50px;
  cursor: pointer;
  transition: opacity .2s;
}

.block-sell-entry_conrifmbtn input.return:hover {
  opacity: .6;
  transition: opacity .2s;
}

/* block-sell-entry_fin */
.block-sell-entry_fin .btn{
	margin: 24px 0 0;
}

/* 表組 横幅均一 */
table.sp_layout_fixed{
	table-layout: fixed;
}
table.sp_layout_fixed th,
table.sp_layout_fixed td{
	width: auto!important;
}

/* アクセシビリティ対応 */

a:focus-visible,
a.tooltip:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

.btn a:focus-visible,
.btn button:focus-visible,
.btn input[type="submit"]:focus-visible,
.btn input[type="button"]:focus-visible,
.btn input[type="reset"]:focus-visible {
	outline: 2px solid var(--brand_secondary);
}

.btn._white a:focus-visible,
.btn._white button:focus-visible,
.btn._white input[type="submit"]:focus-visible,
.btn._white input[type="button"]:focus-visible,
.btn._white input[type="reset"]:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

.return_btn:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

.btn._black a:focus-visible,
.btn._black button:focus-visible,
.btn._black input[type="submit"]:focus-visible,
.btn._black input[type="button"]:focus-visible,
.btn._black input[type="reset"]:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

.sort_btn:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

.radio_item .radio_input:focus-visible + .radio_label::before {
	outline: 2px solid var(--brand_secondary);
}

.checkbox_item .check_input:focus-visible + .check_label::before {
	outline: 2px solid var(--brand_secondary);
}

.block-sell-entry_conrifmbtn input.btn:focus-visible {
	outline: 2px solid var(--brand_secondary);
}

.block-sell-entry_conrifmbtn input.return:focus-visible {
	outline: 1px dotted var(--brand_secondary);
}

/* [DEB-2025-001]2026.03.10 FST START */
.transaction_btn_header {
    border: none;
    background: var(--brand_primary);
    border: 2px solid var(--brand_primary);
    color: var(--text_inversion);
    font-size: 1.2rem;
    font-weight: bold;
    padding: 3px 14px;
    box-sizing: border-box;
    border-radius: 50px;
    cursor: pointer;
	margin-right: 16px;
}

.transaction_btn_header:hover {
	cursor: pointer;
	opacity: .7;
}
 
.transaction_btn_header + .transaction_btn_ul_header {
	display: none;
	width: 128px;
	margin: 0 auto;
	padding: 0 12px;
	position: absolute;
	top: 52px;
	left: auto;
	right: 16px;
	z-index: 20;
	background: var(--background_primary);
	border: solid 2px var(--brand_primary);
	border-radius: 16px;
	overflow: auto;
	list-style: none;
}
 
.transaction_btn_header + .transaction_btn_ul_header a {
	color: var(--text_primary);
	text-decoration: none;
	font-size: 1.2rem;
	font-weight: bold;
	text-align: center;
	padding: 10px 0;
	display: block;
	min-height: 36px;
	display: flex;
	justify-content: center;
	align-items: center;
}
 
.transaction_btn_header + .transaction_btn_ul_header a:hover {
	cursor: pointer;
	opacity: .7;
}
 
.transaction_btn_header + .transaction_btn_ul_header li + li {
	border-top: solid 1px var(--line_primary);
}

.sp_nav .transaction_btn_ul_header {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.sp_nav .transaction_btn_ul_header li + li {
	margin-top: 16px;
}

.sp_nav .transaction_btn_ul_header a {
	display: block;
	background-color: var(--brand_primary);
	border: solid 2px var(--brand_primary);
	color: var(--text_inversion);
	text-decoration: none;
	border-radius: 100px;
	font-size: var(--text3);
	font-weight: bold;
	padding: 14px 30px;
	min-width: 128px;
	text-align: center;
}

.sp_nav .transaction_btn_ul_header a:hover {
	cursor: pointer;
	opacity: .7;
}
/* [DEB-2025-001]2026.03.10 FST END */