@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
	padding: 10.4rem 2rem 1.2rem;
	background: url(../img/index/main_bg.jpg) no-repeat center center / cover;
	height: 72.2rem;
	position: relative;
	z-index: 1;
	overflow: hidden;
}
.mainVisual .content {
	padding: 0 0.7rem;
	display: flex;
}
.mainVisual .textBox {
	margin-left: 2rem;
	width: 50.8%;
}
.mainVisual .textBox .title {
	margin-bottom: 9.4rem;
}
.mainVisual .textBox .imgtext {
	margin-bottom: 4.2rem;
	max-width: 55.4rem;
}
.mainVisual .textBox .notes {
	font-size: 1.2rem;
	color: #fff;
	letter-spacing: 0.048rem;
}
.mainVisual .photoBox {
	position: relative;
	z-index: 1;
}
.mainVisual .pho {
	margin: -1rem 0 0 -12rem;
	flex: 1;
	position: relative;
	z-index: 2;
}
.mainVisual .bg {
	position: absolute;
	bottom: 9rem;
	left: 50%;
	transform: translateX(-13%);
	width: 56.3rem;
	height: 25.8rem;
	mix-blend-mode: multiply;
	pointer-events: none;
}
.mainVisual .img img {
	position: relative;
	z-index: 2;
	width: 57.4rem;
}
@media all and (min-width: 897px) and (max-width: 1200px)  {
	.mainVisual .pho {
		margin: 2vw 0 0 -9.167vw;
	}
	.mainVisual .img img {
		width: 49rem;
	}
	.mainVisual .bg {
		bottom: 18rem;
		transform: translateX(-17%);
	}
}
#main .thin {
	font-weight: 400;
}
#main .problems {
	padding: 9.1rem 0 7.7rem;
	background-color: #000;
}
#main .problems .headLine01 {
	padding-bottom: 0;
	margin-bottom: 3.3rem;
	color: #fff;
	letter-spacing: 0.16rem;
}
#main .problems .headLine01 .sml {
	margin-bottom: 0.9rem;
	font-size: 1.8rem;
	letter-spacing: 0.09rem;
}
#main .problems .headLine01::after {
	display: none;
}
#main .problems .problemsList  {
	margin: -2rem 0.7rem 0;
}
#main .problems .problemsList li {
	padding: 1.2rem 0.5rem 1.4rem;
	margin: 2rem 2.4% 0 0;
	width: 23.2%;
	background-color: #F0F1F2;
	border-radius: 1.6rem;
}
#main .problems .problemsList li:nth-child(4n) {
	margin-right: 0;
}
#main .problems .problemsList .photo {
	margin: 0 auto;
	width: 19.2rem;
}
#main .problems .problemsList p {
	text-align: center;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.072rem;
}
#main .expect {
	padding: 10rem 0;
	background: #F0F0F0 url(../img/index/expect_bg.png) no-repeat center top / 100%;
}
#main .expect .topText {
	margin-bottom: 15.139vw;
	color: #fff;
	text-align: center;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.15rem;
}
#main .expect .photo {
	margin: 0 0.6rem;
}
#main .benefit {
	padding: 9.4rem 0 7.2rem;
	background-color: #fff;
}
#main .benefit .benefitList {
	margin: -2rem 0.7rem 0;
}
#main .benefit .benefitList li {
	margin: 2rem 3.6% 0 0;
	width: 22.3%;
}
#main .benefit .benefitList li:nth-child(4n) {
	margin-right: 0;
}
#main .benefit .benefitList .pho {
	margin-bottom: 2.5rem;
}
#main .benefit .benefitList p {
	text-align: center;
	font-size: 1.8rem;
	font-weight: 600;
	letter-spacing: 0.072rem;
	line-height: 1.67;
}
#main .key {
	padding: 9.7rem 0 4.7rem;
	background-color: #F7F8FA;
}
#main .key .content {
	padding: 0 2.5rem;
}
#main .key .headLine01 {
	margin-bottom: 5rem;
}
#main .key .headLine01::after {
	background-image: url(../img/index/line02.png);
}
#main .key .innerBox {
	margin-bottom: 8.3rem;
}
#main .key .innerBox:last-of-type {
	margin-bottom: 0;
}
#main .key .innerBox h3 {
	margin-bottom: 4.6rem;
	display: flex;
	align-items: center;
	font-size: 2.8rem;
	font-weight: 600;
	letter-spacing: 0.14rem;
}
#main .key .innerBox h3 img {
	position: relative;
	z-index: 2;
	width: 7.4rem;
}
#main .key .innerBox h3 span {
	margin-left: -2rem;
	padding: 0.7rem 1rem 0.7rem 4rem;
	flex: 1;
	display: block;
	background-color: #ABFB4F;
}
#main .key .innerBox .title {
	margin: 0 auto 4rem;
	width: 60.8rem;
	text-align: center;
}
#main .key .innerBox01 h3 {
	margin-bottom: 5rem;
}
#main .key .innerBox01 .title {
	margin-bottom: 1.7rem;
	padding-left: 3rem;
	width: 32.2rem;
}
#main .key .innerBox .text {
	margin-bottom: 1.5rem;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.09rem;
}
#main .key .innerBox .notes {
	text-align: right;
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
}
#main .service {
	padding: 10rem 0 9rem;
}
#main .service .headLine01::after {
	background-image: url(../img/index/line02.png);
}
#main .service .title {
	margin-bottom: 7.5rem;
	color: #3E55FF;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.18rem;
}
#main .service .pho {
	margin: 0 0.7rem;
}
#main .future {
	padding: 9.8rem 0 10rem;
	background-color: #F7F8FA;
}
#main .future .content {
	padding: 0 2.8rem;
}
#main .future .title {
	margin-bottom: 5.3rem;
	text-align: center;
	color: #3E55FF;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.8;
}
#main .future .imgBox {
	align-items: center;
}
#main .future .textBox {
	margin-top: -7rem;
	width: calc(100% - 43rem);
}
#main .future .textBox h3 {
	margin-bottom: 0.8rem;
	color: #3E55FF;
	font-size: 2.2rem;
	font-weight: 600;
	letter-spacing: 0.088rem;
	line-height: 1.63;
}
#main .future .textBox .text {
	font-size: 1.5rem;
	line-height: 1.8;
}
#main .future .photoBox {
	width: 37rem;
}
#main .future .photoBox .ttl {
	font-size: 1.4rem;
	line-height: 1.92;
}
#main .future .photoBox .pho {
	margin-bottom: 0.5rem;
}
#main .future .photoBox .subText {
	font-size: 1rem;
}
#main .future .imgBox01 {
	margin: -0.5rem 0 6.8rem;
	flex-direction: row-reverse;
}
#main .future .imgBox01 .textBox {
	margin-top: -4.5rem;
}
#main .future .imgBox01 .photoBox {
	margin-top: 1.8rem;
}
#main .future .photo {
	margin: 0 -0.2rem;
}
#main .request {
	padding: 9rem 0 15.7rem;
	background-color: #fff;
}
#main .request .text {
	margin-bottom: 6.7rem;
	text-align: center;
	letter-spacing: 0.064rem;
	line-height: 1.75;
}
#main .request .mailForm {
	margin: 0 auto;
	max-width: 92.5rem;
}
#main .request table {
	margin: 0 auto;
	width: 100%;
	border-collapse: collapse;
}
#main .request td,
#main .request th {
	padding: 1.2rem 0.8rem 1.2rem;
    font-size: 1.6rem;
    color: #333;
	text-align: left;
	vertical-align: top;
    word-break: break-all;
    border-bottom: 1px dashed #CCC;
    border-top: 1px dashed #CCC;
}
#main .request tr:first-child td,
#main .request tr:first-child th {
    border-top: 1px solid #CCC;
}
#main .request th {
	padding: 1.7rem 0 1.1rem 0.5rem;
	width: 32%;
    text-align: left;
    position: relative;
	font-weight: 400;
}
#main .request th .note {
    display: block;
    font-size: 1.2rem;
}
#main .request th .must {
	width: 3.5rem;
    position: absolute;
    top: 2rem;
    right: 1.6rem;
	box-sizing: border-box;
	display: inline-block;
	font-size: 1.28rem;
	text-align: center;
	color: #FFF;
	border-radius: 0.3rem;
    background: #B00000;
}
#main .request td .radioList {
    margin: 1.2rem 0 0.9rem;
}
#main .request td .radioList li {
    margin-right: 1.6rem;
}
#main .request td .radioList li span {
    font-size: 1.6rem;
}
#main .request td .checkUl {
    margin: 0.6rem 0 0.6rem 0.4rem;
}
#main .request td .checkUl li:not(:last-child) {
    margin-bottom: 0.5rem;
}
#main .request td select,
#main .request td textarea,
#main .request td input[type="tel"],
#main .request td input[type="email"],
#main .request td input[type="text"] {
    margin-left: 0.3rem;
    padding: 0 1rem;
    width: 89.4%;
    height: 3.4rem;
	color: #333;
	border-radius: 3px;
    border: 1px solid #CCC;
    background: #F0F1F2;
	box-sizing: border-box;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
#main .request td textarea {
    padding: 1rem;
    height: 16.1rem;
    resize: vertical;
}
#main .request input[type="checkbox"] {
	display: none;
}
#main .request input[type="checkbox"] ~ span {
    padding-left: 2.3rem;
	line-height: 1.6;
	cursor: pointer;
	background: url("../img/common/check01.png") no-repeat left 0.5rem center / 1.4rem;
}
#main .request input[type="checkbox"]:checked ~ span {
    background-image: url("../img/common/check01_on.png");
}
#main .request .linkUl {
    margin: 7.6rem 0 3.2rem;
}
#main .request .linkUl li {
    font-size: 1.6rem;
    font-weight: 300;
}
#main .request .linkUl li:not(:last-child) {
    margin-bottom: 0.6rem;
}
#main .request .linkUl li a {
    padding: 0.2rem 2.7rem 0.2rem 0;
    color: #3E55FF;
	background: url(../img/common/icon03.png) no-repeat center right / 2rem;
}
#main .request .linkUl li a:hover {
	opacity: 0.7;
}
#main .request .submit {
	margin: 0 -1rem;
}
#main .request .submit input {
    padding: 2.1rem 1rem 2.2rem;
    width: 100%;
    color: #fff;
    border-radius: 0.6rem;
    background: #3E55FF;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 2.88rem;
    border: none;
    box-sizing: border-box;
    cursor: pointer;
    transition: .3s;
}
#main .request .errorTxt {
    text-align: left;
    color: #ff3d71;
    margin-top: 0.5rem;
}
#main .request .tr01 th {
	padding-top: 2.3rem;
}
#main .request .tr01 td {
	padding: 2rem 0.8rem 1.6rem;
}
#main .request .tr01 th .must {
	top: 2.5rem;
}
#main .request .consult-flex {
    display: flex;
    gap: 0.8%;
    width: 89.4%;
    margin-left: 0.3rem;
    align-items: center;
    position: relative;
}
#main .request .consult-flex input,
#main .request .consult-flex select {
    margin-left: 0 !important;
}
#main .request .consult-date,
#main .request .consult-time {
    width: 49%;
    min-width: 0;
    max-width: 100%;
    padding: 0 1rem;
    height: 3.4rem;
    color: #b0b0b0;
    border-radius: 3px;
    border: 1px solid #CCC;
    background: #F0F1F2;
    box-sizing: border-box;
}

/* クリアボタン用（input直後） */
#main .request .consult-clear {
    /* 変更点：絶対配置に */
    position: absolute;
    right: 21rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-block;
    color: #bbb;
    font-size: 2rem;
    font-weight: 100;
    cursor: pointer;
    user-select: none;
    line-height: 1;
    z-index: 2;
    background: none;
    border: none;
    padding: 0;
    transition: color .2s;
}
#main .request .consult-clear:hover,
#main .request .consult-clear:focus {
    color: #333;
}

#main .request .consult-label {
    display: block;
    margin-bottom: 0.6rem;
    font-size: 1.4rem;
    font-weight: 400;
    color: #333;
    letter-spacing: 0.06em;
    text-align: left;
    margin-left: 0.3rem;
}
#main .request .consult-flex:last-child {
    margin-bottom: 0.55rem;
}
#main .request .consult-time:invalid {
    color: #bbb;
}
#main .request .consult-time {
    color: #333;
}
#main .request .consult-date::placeholder {
    color: #bbb;
    opacity: 1;
}

@media all and (min-width: 897px) {
	#main .request .submit input:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 896px) {
	.mainVisual {
		padding: 3.5rem 2.3rem 1.2rem;
		background-image: url(../img/index/main_bg_sp.jpg);
		height: fit-content;
		min-height: 159.487vw;
	}
	.mainVisual .content {
		padding: 0 0.7rem;
		display: block;
	}
	.mainVisual .textBox {
		margin-left: 0;
		width: auto;
	}
	.mainVisual .textBox .title {
		margin-bottom: 3rem;
	}
	.mainVisual .textBox .title img {
		width: 100%;
	}
	.mainVisual .textBox .imgtext {
		margin: 0 1.3rem;
		max-width: 100%;
	}
	.mainVisual .textBox .imgtext img {
		width: 100%;
	}
	.mainVisual .pho {
		margin: -0.8rem 0 0;
	}
	.mainVisual .bg {
		bottom: -5rem;
		left: 50%;
		transform: translateX(-32%);
		width: 30rem;
		height: 28.8rem;
	}
	.mainVisual .img {
		margin-right: -10.5rem;
		text-align: center;
	}
	.mainVisual .img img {
		width: 31.4rem;
	}
	.mainVisual .notes {
		font-size: 0.8rem;
		font-weight: 600;
		color: #fff;
		position: absolute;
		right: 1rem;
		bottom: 0.5rem;
	}
	#main .problems {
		padding: 6.3rem 0 7.7rem;
	}
	#main .problems .headLine01 {
		margin-bottom: 2.9rem;
		text-align: center;
		font-size: 1.8rem;
		letter-spacing: 0.072rem;
	}
	#main .problems .headLine01 .sml {
		margin-bottom: 0.7rem;
		font-size: 1.5rem;
		letter-spacing: 0.06rem;
	}
	#main .problems .problemsList  {
		margin: -1.9rem 0 0;
		justify-content: space-between;
	}
	#main .problems .problemsList li {
		padding: 0.6rem 0.5rem 1rem;
		margin: 1.9rem 4.6% 0 0 !important;
		width: 47.7%;
		min-height: 15rem;
		border-radius: 0.6rem;
	}
	#main .problems .problemsList li:nth-child(2n) {
		margin-right: 0 !important;
	}
	#main .problems .problemsList .photo {
		width: 12.2rem;
	}
	#main .problems .problemsList p {
		font-size: 1.4rem;
		font-weight: 400;
		letter-spacing: 0;
	}
	#main .expect {
		padding: 11.538vw 0 4rem;
		background-image: url(../img/index/expect_bg_sp.png);
	}
	#main .expect .headLine01 {
		font-feature-settings: "palt";
	}
	#main .expect .topText {
		margin-bottom: 23.077vw;
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.1rem;
	}
	#main .expect .photo {
		margin: 0 -1rem;
	}
	#main .expect .photo img {
		width: 100%;
	}
	#main .benefit {
		padding: 5.5rem 0 5rem;
	}
	#main .benefit .benefitList {
		margin: -4.6rem 0 0;
		justify-content: space-between;
	}
	#main .benefit .benefitList li {
		margin: 3.6rem 4% 0 0 !important;
		width: 47.2%;
	}
	#main .benefit .benefitList li:nth-child(2n) {
		margin-right: 0 !important;
	}
	#main .benefit .benefitList .pho {
		margin-bottom: 1.4rem;
	}
	#main .benefit .benefitList .pho img {
		width: 100%;
	}
	#main .benefit .benefitList p {
		font-size: 1.4rem;
		letter-spacing: 0;
		line-height: 1.78;
	}
	#main .key {
		padding: 5.4rem 0 6.7rem;
	}
	#main .key .content {
		padding: 0 2rem;
	}
	#main .key .headLine01 {
		margin-bottom: 5rem;
	}
	#main .key .headLine01 .txt::after {
		background-image: url(../img/index/line02_sp.png);
	}
	#main .key .innerBox {
		margin-bottom: 5rem;
	}
	#main .key .innerBox h3 {
		margin-bottom: 1.5rem;
		font-size: 2rem;
		letter-spacing: 0.1rem;
	}
	#main .key .innerBox h3 img {
		width: 4.8rem;
	}
	#main .key .innerBox h3 span {
		padding: 0.5rem 1rem 0.3rem 3.3rem;
	}
	#main .key .innerBox .title {
		margin: 0 auto 2.8rem;
		width: fit-content;
	}
	#main .key .innerBox .photo {
		margin: 0 auto;
		width: 29.1rem;
	}
	#main .key .innerBox .photo img {
		width: 100%;
	}
	#main .key .innerBox01 h3 {
		margin-bottom: 1.7rem;
	}
	#main .key .innerBox01 .title {
		margin-bottom: 1.7rem;
		padding-left: 0;
		width: fit-content;
	}
	#main .key .innerBox .sub {
		padding-bottom: 2.3rem;
		margin: 0 -2rem 1.4rem 0;
		overflow-x: scroll;
	}
	.simpleBar ::-webkit-scrollbar {
		display: none !important;
	}
	.simplebar-track {
		right: 2rem;
		background-color: #D9D9D9;
		border-radius: 1.6rem;
	}
	.simplebar-track.simplebar-horizontal {
		height: 0.8rem;
	}
	.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
		top: 0;
	}
	.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
		left: 0;
		right: 0;
		opacity: 1;
	}
	.simplebar-scrollbar:before {
		background-color: #999;
	}
	#main .key .innerBox01 .photo {
		margin: 0 auto;
		width: 52.4rem;
	}
	#main .key .innerBox .text {
		margin-bottom: 0.2rem;
		font-size: 1.5rem;
		line-height: 2.1;
		letter-spacing: 0;
	}
	#main .key .innerBox .notes {
		font-size: 1.2rem;
		letter-spacing: 0;
	}
	#main .service {
		padding: 6.3rem 0 6.3rem;
	}
	#main .service .headLine01 {
		margin-bottom: 2.4rem;
	}
	#main .service .title {
		margin-bottom: 1.7rem;
		text-align: left;
		font-size: 1.5rem;
		letter-spacing: 0;
	}
	#main .service .pho {
		margin: 0 -0.1rem;
		text-align: center;
	}
	#main .future {
		padding: 6rem 0 6.3rem;
	}
	#main .future .content {
		padding: 0 2rem;
	}
	#main .future .headLine01 {
		margin-bottom: 3.3rem;
	}
	#main .future .title {
		margin-bottom: 3.1rem;
		text-align: left;
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0;
	}
	#main .future .imgBox {
		margin-bottom: 2rem;
		display: block;
	}
	#main .future .textBox {
		margin-top: 0;
		width: auto;
	}
	#main .future .textBox h3 {
		margin-bottom: 0;
		font-size: 1.6rem;
		letter-spacing: 0;
		line-height: 2.25;
	}
	#main .future .textBox .text {
		margin-bottom: 4rem;
	}
	#main .future .photoBox {
		margin: 0 -0.4rem;
		width: auto;
	}
	#main .future .photoBox img {
		width: 100%;
	}
	#main .future .photoBox .pho {
		margin-bottom: 0.5rem;
	}
	#main .future .imgBox01 {
		margin: 0;
	}
	#main .future .imgBox01 .textBox {
		margin-top: 0;
	}
	#main .future .imgBox01 .textBox .text {
		margin-bottom: 3.4rem;
	}
	#main .future .imgBox01 .photoBox {
		margin-bottom: 4.1rem;
	}
	#main .future .photo {
		margin: 0 auto 3rem;
		width: 31.4rem;
	}
	#main .future .photo img {
		width: 100%;
	}
	#main .future .text {
		font-size: 1.5rem;
		line-height: 1.8;
	}
	#main .request {
		padding: 6.3rem 0 9.3rem;
	}
	#main .request .headLine01 {
		margin-bottom: 6rem;
	}
	#main .request .headLine01 .txt {
		padding-left: 2rem;
	}
	#main .request .headLine01 .txt::after {
		background-image: url(../img/index/line05_sp.png);
		height: 13.1rem;
	}
	#main .request .headLine01 .sub {
		margin-top: 3rem;
		display: block;
		font-size: 1.5rem;
		font-weight: 400;
		letter-spacing: 0;
		line-height: 1.66;
	}
	#main .request td,
	#main .request th {
		padding: 0 0 1.2rem;
		display: block;
		width: 100% !important;
		font-size: 1.5rem;
		border-bottom: 1px solid #CCC;
		border-top: 0;
	}
	#main .request th {
		padding: 1.2rem 0 0.5rem 0;
		width: 32%;
		text-align: left;
		position: relative;
		font-weight: 400;
		letter-spacing: 0.06em;
		border-bottom: 0 !important;
	}
	#main .request tr:first-child td {
		border-top: 0;
	}
	#main .request th .note {
		display: block;
		font-size: 1.2rem;
	}
	#main .request th .must {
		margin-left: 1rem;
		width: 3.5rem;
		position: static;
		letter-spacing: 0;
	}
	#main .request td .radioList {
		margin: 1.2rem 0 0.9rem;
	}
	#main .request td .radioList li {
		margin-right: 1.6rem;
	}
	#main .request td .radioList li span {
		font-size: 1.6rem;
	}
	#main .request td .checkUl {
		margin: 1rem 0 0.6rem 0;
	}
	#main .request td .checkUl li:not(:last-child) {
		margin-bottom: 0.2rem;
	}
	#main .request td select,
	#main .request td textarea,
	#main .request td input[type="tel"],
	#main .request td input[type="email"],
	#main .request td input[type="text"] {
		margin-left: 0;
		width: 100%;
		height: 3rem;
	}
	#main .request td textarea {
		height: 14.2rem;
	}
	#main .request input[type="checkbox"] ~ span {
		letter-spacing: 0.05em;
		background-size: 1.55rem;
		background-position: left 0.1rem center;
	}
	#main .request .linkUl {
		margin: 5.2rem 1.5rem 3.2rem;
	}
	#main .request .linkUl li {
		font-size: 1.5rem;
		font-weight: 300;
	}
	#main .request .linkUl li:not(:last-child) {
		margin-bottom: 0.4rem;
	}
	#main .request .linkUl li a {
		padding: 0.2rem 2.2rem 0.2rem 0;
		font-size: 1.4rem;
		background-size: 1.5rem;
	}
	#main .request .submit {
		margin: 0 auto;
		width: 34.8rem;
	}
	#main .request .submit input {
		padding: 1.6rem 1rem 1.5rem;
		border-radius: 0.6rem;
		font-size: 1.6rem;
		line-height: 2.88rem;
	}
	#main .request .errorTxt {
		text-align: left;
		color: #ff3d71;
		margin-top: 0.5rem;
	}
	#main .request .tr01 th {
		padding-top: 1.2rem;
	}
	#main .request .tr01 td {
		padding: 0 0 1.3rem;
	}
	#main .request .consult-flex {
        flex-direction: column;
        gap: 0.6rem;
        width: 100%;
        margin-left: 0;
        align-items: stretch;
        position: relative;
    }
    #main .request .consult-date,
    #main .request .consult-time {
        width: 100%;
        margin-left: 0;
        height: 3rem;
    }
    #main .request .consult-label {
        margin-top: 1.2rem;
        margin-left: 0;
    }
    /* スマホ時も右端・中央に重ねる（left→rightに統一！） */
    #main .request .consult-clear {
        right: 1.2rem;
        top: 1.5rem;
        left: auto;
        transform: translateY(-50%);
    }
}
