@charset "UTF-8";
* {
	margin: 0;
	padding: 0;
	line-height: 1;
	font-family: "Noto Sans", sans-serif;

}




img {
	width: 100%;
}

a {
	color: #000;
	text-decoration: none;
}

a:hover {
	cursor: pointer;
}

ul {
	list-style: none;
}

.jost {
	font-family: "Jost", sans-serif;
	font-style: italic;
	font-weight: 500;
}

.header {
	width: 100%;
}

.header_inner {
	width: 96%;
	box-sizing: border-box;
	padding: 1.333vw 1.667vw;
	background-color: #fff;

	display: flex;
	align-items: center;
	justify-content: space-between;

	position: fixed;
	top: 1.667vw;
	left: 50%;
	transform: translateX(-50%) translateY(0);
	z-index: 999;

	transition: transform 0.4s ease;
}

.is-hidden {
	transform: translateX(-50%) translateY(-140%);
}

.header_logo img {
	max-width: 13.333vw;
	height: auto;
	display: block;
}

.header_nav ul {
	display: flex;
	align-items: center;
	font-size: clamp(13px, 1.25vw, 18px);

}

.header_nav li a {
	margin-right: 2vw;
	color: #000;
}

.header_nav li a:hover {
	color: #219e8b;
}

.header_nav li:last-child {
	margin-right: 0;
}

.header_nav li:nth-last-child(2) {
	margin-right: 3.333vw;
}

.header_nav li:last-child {
	margin-right: 0;
}


.com_btn_pc a {
	display: inline-flex;
	align-items: center;
	gap: 0.667vw;

	padding: 0.833vw 1.667vw;
	background: #fff;
	font-size: clamp(15px, 1.25vw, 18px);

	line-height: 1;
	text-decoration: none;
	color: #006f9d;
	font-weight: 500;

	border: 1.5px solid transparent;
	border-radius: 833.25vw;


	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, #219e8b, #006f9d) border-box;
}

.com_btn_pc li:hover {
	color: #FFF !important;
}

.com_btn_pc a:hover {
	color: #FFF !important;
	background:

		linear-gradient(90deg, #219e8b, #006f9d);
}



.com_btn_pc a:hover img {
	filter: brightness(0) invert(1);
}

.com_btn_pc img {
	width: 1.583vw;
	height: auto;
	display: block;
}



.fv_slider {
	position: relative;
	width: 100%;

	min-height: 57.5vw;
	overflow: hidden;
}


.fv_slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.8s ease;
}

.fv_slide.is-active {
	opacity: 1;
	z-index: 1;
}

.fv_slide img {
	width: 100%;
	height: 100%;
	overflow: hidden;
	object-fit: cover;
	clip-path: polygon(0 0,
			100% 0,
			100% 80%,
			0% 100%);
}


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


.fv {
	position: relative;
}

.fv_content {
	position: absolute;
	bottom: 20%;
	left: 3.333vw;
	z-index: 100;

	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.fv_lead img {
	box-sizing:border-box;
	width: 45vw;
	background-color: #FFF;
	padding: 0.833vw 0.5vw;
	margin-bottom: 2.917vw;
}

.fv_catch {
	font-weight: 700;
	display: inline-block;
	font-size: clamp(23px, 2.667vw, 32px);
	color: #FFF;
	background-color: #2D2D2D;
	padding: 0.583vw 1vw;
	margin-bottom: 0.833vw;
}

.strengths {
	width: 85%;
	/*max-width: 100vw;*/
	margin: 0 auto;
}

.strengths_header {
	padding-top: 1.833vw;
	padding-bottom: 4vw;
	text-align: right;
	margin-right: -2.5vw;
}

.strengths_title {
	color: #fff131;
	font-size: 10vw;
	font-size: clamp(60px, 10vw, 120px);
}

.strengths_box .strengths_item_box {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	margin-bottom: 6.667vw;
}

.strengths_item_box:nth-child(2) {
	flex-direction: row;
}

.strengths_item_img {
	width: 43%;
	/*max-width: 36.667vw;*/
}

.strengths_item_text {
	width: 53%;
	/*max-width: 41.667vw;*/

}

.strengths_item_text span {
	font-family: "Jost", sans-serif;
	font-style: italic;
	font-weight: 500;
	font-size: clamp(70px, 10vw, 120px);
	margin-right: 2.083vw;
}

.strengths_item_box:nth-child(1) .strengths_item_text span {
	color: #219e8b;
}

.strengths_item_box:nth-child(2) .strengths_item_text span {
	color: #006f9d;
}

.strengths_item_box:nth-child(3) .strengths_item_text span {
	color: #16993f;
}


.strengths_item_text h3 {
	font-weight: bold;
	font-size: clamp(24px, 2.833vw, 34px);
	margin-bottom: 4.167vw;
}

.strengths_item_text p {

	font-size: clamp(14px, 1.5vw, 18px);
	line-height: 1.9;
	letter-spacing: 0.02rem;
	text-align: justify;
}


.details {
	margin-bottom: 9.167vw;
	display: flex;
	flex-direction: column;
	position: relative;
}

.details::after {
	position: absolute;
	content: "";
	clip-path: polygon(100% 0, 0 0, 100% 100%);

	background-color: #fff131;
	width: 100%;
	height: 4%;
	bottom: 0;
	right: 0;
	z-index: -1;
}

.details_header {
	display: flex;
	align-items: flex-end;
}

.details_title {
	font-size: clamp(60px, 10vw, 120px);
	color: #219e8b;
	margin-right: 3.333vw;
}

.details_header p {
	font-weight: 700;
	font-size: clamp(18px, 2vw, 24px);
}

.details_01,
.details_02,
.details_03 {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 20% 0 15%;
	clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
}

.details_01,
.details_02 {
	padding-bottom: 25%;
}

.details_02,
.details_03 {
	margin-top: -20%;
}

.details_01,
.details_03 {
	background: linear-gradient(to right, #219e8b, #006f9d);
}

.details_02 {
	background-image: 
  url("../img/details_bg.png") ;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
}

@supports (-webkit-touch-callout: none) {
	.details_02 {
		background-attachment: scroll;
	}
}


.details_item {
	width: 85%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;

}

.details_01 .details_item,
.details_03 .details_item {}

.details_02 .details_item {
	flex-direction: row-reverse;
}

.details_img {
	width: 44%;

}

.details_text {
	width: 50%;
}

.details_img {
	position: relative;
}

.details_img img {
	width: 80%;
}

.details_img_b {
	text-align: right;
}

.details_img_02 img {
	position: relative;
	top: 3.667vw;
	left: 7.083vw;
}

.details_img_04 img {
	position: relative;
	top: 3.667vw;
	right: 7.083vw;
}

.details_text h3 {
	border-left: 10px solid #FFF;
	padding-left: 0.5em;
	font-weight: 700;
	color: #FFF;
	font-size: clamp(28px, 3.3vw, 40px);
	margin-bottom: 2.5vw;
}

.details_text {
	display: flex;
	flex-direction: column;
}

.details_text h4 {
	font-weight: 700;
	display: inline-block;
	width: fit-content;

	font-size: clamp(18px, 1.3vw, 24px);
	color: #FFF;
	background-color: #2D2D2D;
	padding: 0.333vw 0.5vw;
	margin-bottom: 0.833vw;
}

.details_02 .details_text h4 {
	background-color: #fff131;
	color: #000;
}

.details_text p {
	text-align: justify;
	color: #FFF;
	margin-top: 3.333vw;
	font-size: clamp(14px, 1.5vw, 18px);
	line-height: 1.9;
}


.flow {
	display: flex;
	flex-direction: column;

}


.flow_header {
	text-align: center;
	margin-bottom: 9.167vw;
}

.flow_title {
	font-size: clamp(60px, 10vw, 120px);
	color: #219e8b;
	margin-bottom: 3.333vw;
}

.flow_header p {
	font-weight: 700;
	font-size: clamp(18px, 2vw, 24px);
}

.flow_slider {
	width: 100%;
	margin: 0 auto;
}

.flow_slide_view {
	overflow-x: hidden;
}

.flow_slide_box {
	width: 90%;
	margin: 0 auto;
	display: flex;
	transition: transform 0.4s ease;
	touch-action: pan-y;
}


/* ===== PC（3.6枚表示） ===== */
.flow_slide_item {
	position: relative;
	flex: 0 0 calc(100% / 3.6);
	box-sizing: border-box;
	padding: 2.5vw;
	background-color: #DCDCDC;
	text-align: center;
	margin-right: 5vw;
	border-radius: 0.667vw;
}

.flow_slide_item::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -3.5vw;
	width: 17px;
	height: 20px;
	background-color: #006f9d;
	transform: translateY(-50%);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* ===== 769px以下（2.5枚表示） ===== */
@media (max-width: 769px) {
	.flow_slide_item {
		flex: 0 0 calc(100% / 2.5);
		padding: 3vw;
		margin-right: 5vw;
		border-radius: 1vw;
	}

	.flow_slide_item::after {
		right: -4vw;
	}
}

/* ===== スマホ（1.25枚表示） ===== */
@media (max-width: 480px) {
	.flow_slide_item {
		flex: 0 0 calc(100% / 1.5);
		padding: 4vw;
		margin-right: 9vw;
		border-radius: 2vw;
	}

	.flow_slide_item::after {
		right: -7vw;
	}

	.flow_slide_item:first-child {
		margin-left: 14%;
	}
}


.flow_slide_item:last-child {
	margin-right: 0;
}

.flow_slide_item:last-child::after {
	display: none;
}


.flow_text {
	font-weight: 700;
	margin-top: 2.5vw;
	line-height: 1.8;
	font-size: clamp(18px, 1.667vw, 20px);
}

.flow_num {
	font-family: "Jost", sans-serif;
	color: #219e8b;
	font-size: clamp(54px, 5vw, 60px);
	font-weight: 500;
	margin-bottom: 2.5vw;
}


.flow_controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 90%;
	margin: 60px auto 0;
}

.flow_arrow {
	position: relative;
	width: 62px;
	height: 62px;
	background: none;
	border: none;
	cursor: pointer;

	/* flex を殺す */
	display: block;
}

/* 完全に重ねる */
.flow_arrow img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

.flow_arrow .hover {
	opacity: 0;
}

.flow_arrow:hover .normal {
	opacity: 0;
}

.flow_arrow:hover .hover {
	opacity: 1;
}


.flow_progress {
	width: 100%;
	max-width: 41.667vw;
	height: 0.667vw;
	background: #d1d1d1;
	border-radius: 833.25vw;
}

.flow_progress_bar {
	width: 0%;
	height: 100%;
	background: #219e8b;
	border-radius: 833.25vw;
}

.parall {
	margin-top: 15%;
}

.insta_btn_bg {

	padding: 10% 0 11%;
	
	background-image: image-set(
  url("../img/insta_bg.webp") type("image/webp"),
  url("../img/insta_bg.png") type("image/png")
);
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-repeat: no-repeat;
	position: relative;
	margin-bottom: 6.25vw;
}

.recruit {
	
		background-image: image-set(
  url("../img/recruitment.webp") type("image/webp"),
  url("../img/recruitment.png") type("image/png")
);
	background-position: top;
	margin-bottom: 0;
}

@supports (-webkit-touch-callout: none) {

	.insta_btn_bg,
	.recruit {
		background-attachment: scroll;
	}
}

.insta_btn {
	display: flex;
	flex-direction: column;
}

.insta_btn_header {
	text-align: center;
}

.insta_btn_title {
	font-size: clamp(60px, 10vw, 120px);
	color: #FFF;
	margin-bottom: 2.5vw;
}

.insta_btn_header p {
	color: #FFF;
	font-weight: 700;
	font-size: clamp(16px, 1.5vw, 18px);
	line-height: 1.9;
	margin-bottom: 4.167vw;
}

.insta_btn a {
	display: block;
	margin: 0 auto;
	box-sizing: border-box;
	width: 100%;
	max-width: 350px;

	padding: 1.5vw 0;


	font-size: 15px;
	line-height: 1;
	text-decoration: none;
	color: #000;
	font-weight: 500;

	border: 1.5px solid transparent;
	border-radius: 833.25vw;


	background: #FFF;

}

.insta_btn a:hover {
	color: #FFF;
	background: linear-gradient(90deg, #219e8b, #006f9d) padding-box,
		linear-gradient(#fff, #fff) border-box;


}


.company {
	display: flex;
	flex-direction: column;
	margin-bottom: 10.833vw;

}

.company_header {

		background-image: image-set(
  url("../img/company.webp") type("image/webp"),
  url("../img/company.png") type("image/png")
);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	width: 85%;
	margin: 0 auto 110px;
	padding-top: 12.5vw;
	padding-bottom: 8.333vw;
	text-align: center;
}

.company_title {
	font-size: clamp(60px, 10vw, 120px);
	color: #FFF;
	margin-bottom: 1.5vw;
}

.company_header p {
	font-weight: 700;
	color: #FFF;
	font-size: clamp(18px, 2vw, 24px);
}

.company_text {
	position: relative;
	width: 35vw;
	margin: 0 auto;
	text-align: center;

	margin-bottom: 8.333vw;
}

.company_text h3 {
	display: inline-block;
	font-weight: 700;
	color: #219e8b;
	font-size: clamp(20px, 2vw, 24px);
	line-height: 1.6;
	padding-bottom: 3.75vw;
	border-bottom: 2px solid #219e8b;
	margin-bottom: 3.75vw;
}

.company_text p {
	font-size: clamp(14px, 1.5vw, 18px);
	line-height: 2;
}

.company_img {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.company_img picture {
	position: absolute;
	width: calc(16.667vw + 4vw);
	max-width: 240px;
	min-width: 16.667vw;
}

.com_01 {
	left: calc(-13.333vw - 18vw);
	top: 0;
}

.com_02 {
	right: calc(-13.333vw - 18vw);
	top: 0;
}

.com_03 {
	left: calc(-6.667vw - 14vw);
	top: 24.583vw;
}

.com_04 {
	right: calc(-6.667vw - 14vw);
	top: 24.583vw;
}


.overview {
	display: flex;
	flex-direction: column;
	padding: 8.333vw 0;
	background:
		linear-gradient(90deg, #219e8b, #006f9d);
}

.overview_itembox {
	max-width: 70vw;
	margin: 0 auto;
	background-color: #FFF;
	padding: 7.083vw 6.667vw;
	border-radius: 0.667vw;
}

.overview_itembox h3 {
	font-size: clamp(15px, 1.25vw, 18px);
	font-weight: 700;
	text-align: center;
	margin-bottom: 5.833vw;
}

.overview_itembox dt,
.overview_itembox dd {
	text-box-trim: trim-both;
	padding: 1.833vw 0;
	text-align: left;
}

.overview_itembox dl {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	justify-content: space-between;
}

.overview_itembox dt {
	font-size: clamp(14px, 1.3vw, 16px);
	width: 20%;
	max-width: 16.25vw;
	border-bottom: 1px solid #219e8b;
	line-height: 2;
	font-weight: 100;
	padding-left: 2em;
}

.overview_itembox dt:last-of-type {
	border-bottom: none;
}



.overview_itembox dd {
	font-size: clamp(14px, 1.3vw, 16px);
	box-sizing: border-box;
	width: 70%;
	max-width: 51.25vw;
	border-bottom: 1px solid #006f9d;
	padding-left: 2em;
	line-height: 2;
}

.overview_itembox dd:last-of-type {
	border-bottom: none;
}

.map_wrap {
	width: 100%;
	height: 33.333vw;
	overflow: hidden;
	position: relative;
}

.map_wrap iframe {
	width: 100%;
	height: calc(100% + 33.333vw);
	margin-top: calc(-33.333vw / 2);
	border: none;
	filter: grayscale(100%);
	transition: 0.3s ease-in-out;
}

.credo {
	display: flex;
	flex-direction: column;

}

.credo_item_box {
	width: 85%;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

.credo_text_box {
	max-width: 48.333vw;

}


.credo_header {
	display: flex;
	align-items: flex-end;
	margin-bottom: 5.417vw;
}

.credo_title {
	margin-right: 3.333vw;
	font-size: clamp(60px, 10vw, 120px);
	color: #219e8b;

}

.credo_header p {
	font-weight: 700;
	font-size: clamp(18px, 2vw, 24px);
	padding-bottom: 0.9em;
}

.credo_text {
	max-width: 85%;
	margin-right: 0;
	margin-left: auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	margin-right: 5%;
}

.credo_text p {
	text-align: justify;
	line-height: 2;
	font-size: clamp(14px, 1.5vw, 18px);
	margin-bottom: 5.417vw;
}

.credo_text a {
	color: #219e8b;
	font-weight: 600;
	letter-spacing: 0.083vw;
	font-size: 1.25vw;
	font-size: 15px;

}

.credo_link a{
	display: flex;
	align-items: center;
	    justify-content: space-between;

	padding-bottom: 0.667vw;
}
.credo_arrow_wrap {
	position: relative;
	display: inline-block;
	width: 40px;   /* サイズは適宜 */
	height: 40px;
	margin-left: 40px;
}

.credo_arrow {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

.credo_arrow.hover {
	opacity: 0;
}

/* hover 切替 */
.credo_link a:hover .credo_arrow.normal {
	opacity: 0;
}

.credo_link a:hover .credo_arrow.hover {
	opacity: 1;
}

.credo_sp_link {
			width: 100%;
		}
.credo_sp_link img{
			max-width: 40px;
		}

.credo_border {
	width: 100%;
	height: 2px;
	background:
		linear-gradient(90deg, #219e8b, #006f9d);
}



.flow_arrow img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}

.flow_arrow .hover {
	opacity: 0;
}

.flow_arrow:hover .normal {
	opacity: 0;
}

.flow_arrow:hover .hover {
	opacity: 1;
}


.credo_img {
	max-width: 36.667vw;
}

.instagram_post {
	padding:10vw 0;
	background-color: #F2F2F2;
	display:flex;
	    justify-content: center;
    flex-direction: column;
    align-items: center;
}

.insta_dummy{width:85%;margin:0 auto;}
.instagram_icon_box {
	margin-top:5%;
  position: relative;
  width: 30px;
  height: 30px;
}

.instagram_icon_box a {
  display: block;
  width: 100%;
  height: 100%;
}

.instagram_icon_box img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .3s;
}

/* 初期状態 */
.instagram_icon_box .hover {
  opacity: 0;
}

/* hover時 */
.instagram_icon_box a:hover .normal {
  opacity: 0;
}

.instagram_icon_box a:hover .hover {
  opacity: 1;
}



.footer_box {
	width: 90%;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	padding-top: 5.833vw;
	padding-bottom: 5vw;

}

.f_company {
	width: 51.5%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.f_company img {
	max-width: 19.167vw;
	margin-bottom: 2.5vw;
}

.f_company p {
	font-size: 16px;
	padding-bottom: 5vw;
}

.footer_border {
	width: 100%;
	height: 2px;
	background:
		linear-gradient(90deg, #219e8b, #006f9d);
}

.footer_nav ul {
	margin-top: 1.667vw;
	display: flex;
	justify-content: space-between;
	font-size: 15px;
}

.footer_nav a {
	color: #000;
}

.footer_nav a:hover {
	color: #219e8b;
}

.f_contact {
	width: 40%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.f_contact p {
	font-weight: 700;
	text-align: center;
	line-height: 1.5;
	background-color: #F2F2F2;
	padding: 1.667vw 2.5vw;
	margin-bottom: 1.667vw;
	font-size: 1.75vw;
	font-size: clamp(18px, 1.75vw, 21px);
}

.footer_contact {

	padding-bottom: 1vw;
}

.footer_contact a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: 500;
	font-size: 15px;
}

.footer_mailicon {
	max-width: 19px;
	margin-right: 1em;
}

.footer_arrow_wrap {
	position: relative;
	display: inline-block;
	width: 40px;
	/* max-width の代替 */
	height: 40px;
	margin-left: auto;
	/* 元の意図を継承 */
}

/* a hover で色変換 */
.footer_contact a:hover .footer_mailicon {
	filter: brightness(0) saturate(100%) invert(39%) sepia(86%) saturate(406%) hue-rotate(124deg) brightness(92%) contrast(92%);
}

.footer_arrow {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	margin: 0;
	/* ここ重要：autoを無効化 */
	pointer-events: none;
}

.footer_arrow.hover {
	opacity: 0;
}

.footer_contact a:hover .footer_arrow.normal {
	opacity: 0;
}

.footer_contact a:hover .footer_arrow.hover {
	opacity: 1;
}


.copy {
	text-align: center;
	color: #FFF;

	font-weight: 500;
	background:
		linear-gradient(90deg, #219e8b, #006f9d);

	font-size: 11px;
	padding: 20px 0;
}

.pc_only {
	display: block;
}

.sp_only {
	display: none;
}

.tb_only {
	display: none;
}

.sp_br {
	display: none;
}

.pc_details {
	display: block
}

@media (max-width: 945px) {

	.pc_details {
		display: none
	}

	.tb_only {
		display: flex;
		flex-direction: column;

	}


	@media (max-width: 769px) {



		.details_h4 {
			margin-bottom: 1.7vw !important;
		}

		.com_03 {
			left: calc(-6.667vw - 18vw);
		}

		.com_04 {
			right: calc(-6.667vw - 18vw);
		}












	}

	@media (max-width: 720px) {
		.company_text {
			position: relative;
			width: 45vw;
		}

		.com_01 {
			left: calc(-13.333vw - 11vw);
		}

		.com_02 {
			right: calc(-13.333vw - 11vw);
			top: 20%;
		}

		.com_03 {
			top: 50%;
		}

		.com_04 {
			top: 70%;
		}

		.overview_itembox dt {
			width: 16%;
			padding-left: 1em;
		}

		.overview_itembox dd {
			width: 75%;
			max-width: none;
			padding-left: 1em;
		}

		.insta_btn_bg {

			background-position: center 40%;
		}

		.f_company p {
			font-size: 15px;
		}

		.footer_nav ul {
			font-size: 13px;
		}
	}



	@media (max-width: 675px) {
		.pc_only {
			display: none!important;
		}

		.sp_only {
			display: block;
		}

		.tb_only {
			margin-bottom: 20px;
		}

		.header_inner {
			display: none;
		}


		.fv_slider {
			min-height: min(134vw, 650px);
		}

		.fv_slide img {
			
			clip-path: polygon(0 0, 100% 0, 100% 90%, 0% 100%);
		}

		.fv_slide_01 img{
  object-position: 74% center;
}

.fv_slide_02 img{
object-position: 50% calc(50% - 45px);
}

.fv_slide_03 img{
  object-position: 28% center;
}
		
		.fv_slide_04 img{
  object-position: 45% center;
}
		
		.fv_content {
			left:5vw;
			bottom: 30%;
		}

		.fv_lead img {
			width:60vw;
			min-width: 270px;
			margin-bottom: 10.5vw;
		}

		.fv_catch {
			padding: 6px 10px;
			margin-bottom: 10px;
		}

		.strengths_box .strengths_item_box,
		.strengths_item_box:nth-child(2) {
			display: flex;
			flex-direction: column-reverse;
			justify-content: space-between;
			margin-bottom: 6.667vw;
		}

		.strengths_item_text,
		.strengths_item_img {
			max-width: none;
			width: 100%;
		}

		.strengths_item_text {
			margin-bottom: 30px;
		}

		.strengths_item_box:last-child {
			margin-bottom: 60px;
		}

		.details {
			margin-bottom: 70px;
		}

		.details_01,
		.details_02,
		.details_03 {
			clip-path: polygon(0 3%, 100% 0, 100% 96%, 0 100%);
		}

		.details::after {
			clip-path: polygon(100% 0, 0 65%, 100% 100%);
		}


		.details_text,
		.details_img,
		.details_img img {
			width: 100%;
		}

		.details_text h3 {
			border-left: 6px solid #FFF;
			margin-bottom: 20px;
		}

		.details_text h4 {
			padding: 4px 6px;
		}

		.details_text {
			margin-bottom: 20px;
		}

		.details_text p {
			margin-top: 30px;
			margin-bottom: 20px;
		}

		.flow_header {
			margin-bottom: 50px;
		}

		.flow_slide_item {
			padding: 25px 30px;
		}

		.flow_slide_item img {
			max-width: 150px;
		}

		.flow_text {
			margin-top: 20px;
		}

		.flow_arrow {
			width: 40px;
			height: 40px;
		}

		.flow_progress {
			max-width: 50%;
			height: 4px;
		}

		.parall {
			margin-top: 95px;
		}

		.insta_btn_bg {
			padding: 100px 0;

			
				background-image: image-set(
  url("../img/sp_insta_bg.webp") type("image/webp"),
  url("../img/sp_insta_bg.png") type("image/png")
);
		}

		.insta_btn_title {
			margin-bottom: 45px;
		}

		.insta_btn_header p {
			margin-bottom: 64px;
		}

		.insta_btn a {
			padding: 17px 0;
			max-width: 280px;
		}

		.company {
			margin-bottom: 70px;
		}

		.company_header {
			width: 90%;
			
				background-image: image-set(
  url("../img/sp_com_bg.webp") type("image/webp"),
  url("../img/sp_com_bg.png") type("image/png")
);
			padding-top: 60px;
			padding-bottom: 45px;
			margin-bottom: 55px;
		}

		.company_title {
			margin-bottom: 16px;
		}

		.company_text h3 {
			padding-right: 2em;
			padding-left: 2em;
			margin-bottom: 40px;
		}

		.company_text {
			width: 85%;
		}


		.company_img {
			position: static;
			margin-top: 45px;
			pointer-events: auto;
		}

		.company_img picture {
			position: static;
			width: 100%;
			max-width: none;
		}

		.company_img {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 1vw;
		}

		.company_text {
			margin-bottom: 60px;
		}

		.overview {
			padding-top: 60px;
			padding-bottom: 60px;
		}

		.overview_itembox {
			border-radius: 6px;
			padding: 60px 20px;
		}

		.overview_itembox dl {
			display: block;
		}

		.overview_itembox dt,
		.overview_itembox dd {
			max-width: none;
			width: 100%;

			padding: 4.267vw 0;

		}

		.overview_itembox dt:last-of-type {
			border-bottom: 1px solid #219e8b;
		}



		.map_wrap {
			height: 80vw;
		}

		.map_wrap iframe {
			width: 100%;
			height: calc(100% + 80vw);
			margin-top: calc(-80vw / 2);
		}



		.credo_item_box {
			flex-direction: column;
		}

		.credo_img,
		.credo_text_box,
		.credo_text {
			max-width: none;
		}

		.credo_header {
			margin-bottom: 42px;
		}

		.credo_img {
			margin-bottom: 30px;
		}

		.credo_text {
			margin-right: 0;
			align-items: flex-start;
		}

		.credo_sp_link {
			width: 100%;
		}

		.credo_link {
			padding-bottom: 8px;
			justify-content: space-between;
		}

		.credo_link img {
			margin-right: 0;
		}

		.recruit {
		
				background-image: image-set(
  url("../img/sp_rec_bg.webp") type("image/webp"),
  url("../img/sp_rec_bg.png") type("image/png")
);
			background-size: auto 100%;

		}

		.footer_box {
			flex-direction: column;
			align-items: center;

		}

		.f_company,
		.f_contact {
			width: 100%;
		}

		.f_company {
			align-items: center;
			text-align: center;
		}

		.f_company p {

			line-height: 1.8;
		}

		.f_company img {
			max-width: 190px;

		}

		.footer_nav ul {
			width: 80%;
			margin: 0 auto;
			margin-top: 30px;
			margin-bottom: 45px;
			display: flex;
			justify-content: space-around;
			flex-wrap: wrap;
		}

		.footer_nav li {
			margin-bottom: 25px;
			margin-left: 20px;
			margin-right: 20px;
		}

		.f_contact p {
			margin-bottom: 25px;
		}

		.footer_contact {
			padding-bottom: 10px;
		}
	}

	.sp_header {
		position: fixed;
		z-index: 999;
		width: 90%;
		top: 15px;
		left: 50%;
		transform: translateX(-50%);
		background-color: #FFF;
	}

	.sp_header .header_logo img {
		width: 150px;
		max-width: none;
		padding: 13px 0 16.5px 12px;
	}

	/* SPヘッダー 初期状態 */
	.sp_header {
		transition: transform 0.4s ease;
	}

	/* SPヘッダー 非表示 */
	.sp_header.is-hidden {
		transform: translateX(-50%) translateY(-140%);
	}

	/* ハンバーガーボタン 初期状態 */
	.menu-button {
		transition: transform 0.4s ease;
	}

	/* ハンバーガーボタン 非表示 */
	.menu-button.is-hidden {
		transform: translateY(-180%);
	}



	/*-------------------------------
 
ハンバーガーメニューここから
 
-------------------------------*/

	/* ハンバーガーボタン */
	.menu-button {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		row-gap: 1.25vw;
		cursor: pointer;
		position: fixed;
		top: 26.25px;
		right: 7%;
		z-index: 1001;
		width: 35px;
		height: 35px;
		background: #FFF;
		border-radius: 2px;
		border: 1px solid #219e8b;
	}

	/* ハンバーガーの線 */
	.menu-button__line,
	.menu-button::before,
	.menu-button::after {
		content: "";
		width: 16px;
		height: 2px;
		background-color: #006f9d;
		transition: transform 0.6s, opacity 0.6s;
	}

	/* ハンバーガーの線の位置調整 */
	.menu-button::before,
	.menu-button::after {
		position: absolute;
	}

	.menu-button::before {
		transform: translateY(-5.5px);
	}

	.menu-button::after {
		transform: translateY(5.5px);
	}

	/* 真ん中のライン */
	.menu-button__line {
		position: relative;
		display: block;
		width: 16px;
		height: 2px;
		background: #006f9d;
		transition: opacity 0.6s;
	}

	/* メニューが開いているとき */
	.menu-toggle:checked + .menu-button .menu-button__line {
		opacity: 0;
		visibility: hidden;
	}

	.menu-toggle:checked + .menu-button::before {
		transform: translateY(0) rotate(45deg);
	}

	.menu-toggle:checked + .menu-button::after {
		transform: translateY(0) rotate(-45deg);
	}

	/* メニューの背景（オーバーレイ） */
	.menu-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: #FFF;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.6s;
		z-index: 1000;
	}

	.menu-toggle:checked ~ .menu-overlay {
		opacity: 0;
		pointer-events: auto;
	}

	/* メニュー本体（左右中央・上から出る） */
	.menu {
		position: fixed;
		top: 0;
		left: 50%;
		width: 90%;
		height: 80%;
		transform: translate(-50%, -100%);
		background-color: rgba(255, 255, 255, 1);

		transition: transform 0.6s;
		z-index: 1000;
	}

	/* メニュー表示時 */
	.menu-toggle:checked ~ .menu {
		transform: translate(-50%, 16%);
	}

	/* メニューリスト */
	.menu-list {
		width: 80%;
		margin: 20% auto 0;
		padding: 0;
		list-style: none;
	}

	.menu-list li {
		font-size: clamp(16px, 4vw, 20px);
		position: relative;
		padding: 25px 0;
		text-align: center;
		font-weight: 500;
	}

	.menu-list li::before,
	.menu-list li::after {
		content: "";
		position: absolute;
		left: 0;
		width: 100%;
		height: 1.5px;
		background: linear-gradient(90deg, #219e8b, #006f9d);
	}

	.menu-list li::before {
		top: 0;
	}

	.menu-list li::after {
		bottom: -1.5px;
	}

	.menu-list li:last-child::after {
		content: none;
	}

	.menu-list li a {
		color: #000;
		font-weight: bold;
		display: inline-block;
		width: 100%;
	}

	.menu-list li a:hover {
		color: #2980a0;
	}

	.com_btn_sp a {
		display: inline-flex;
		align-items: center;
		gap: 0.667vw;
		padding: 13px 0;
		background-color: #fff;
		font-size: clamp(15px, 1.25vw, 18px);
		line-height: 1;
		text-decoration: none;
		color: #006f9d;
		font-weight: 500;
		border: 1.5px solid transparent;
		border-radius: 833.25vw;
		background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, #219e8b, #006f9d) border-box;
	}

	.com_btn_sp img {
		width: 23px;
	}

	/* オンラインボタン */
	.menu_online {
		text-align: center;
		max-width: 224px;
		margin: 30px auto;
	}

	.menu_online a {
		position: relative;
		display: inline-block;
	}

	.menu_online img {
		display: block;
		width: 100%;
		transition: 0.3s;
	}

	.menu_online .img-hover {
		position: absolute;
		top: 0;
		left: 0;
		opacity: 0;
		pointer-events: none;
	}

	.menu_online:hover .img-default {
		opacity: 0;
	}

	.menu_online:hover .img-hover {
		opacity: 1;
	}






}

/*-------------------------------
 クレド
-------------------------------*/
.span_g{color:#219e8b;}
.span_b{color:#006f9d;}
/* 親は高さを自動、比率でも固定でもOK */
.credo_page_header {
	position: relative;
	width: 100%;
	overflow: hidden;
	z-index: 1;
}

/* 画像は親いっぱいに広がる */
.credo_page_header img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;

	/* 下の斜めカット */
	clip-path: polygon(0 0, 100% 0, 100% 80%, 0% 100%);
}

.credo_header_title {
	color: #FFF;

	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);

	display: flex;
	flex-direction: column;
	align-items: center;
}


.credo_header_title h2 {
	font-size: clamp(60px, 10vw, 120px);

	margin-bottom: 1.25vw;
}

.credo_header_title p {
	font-weight: 700;
	font-size: clamp(18px, 2vw, 24px);
}

.philosophy {
	position: relative;
	margin-top: -10%;
	padding-top: 10%;
	padding-bottom: 13.75vw;

	/* アンチエイリアス対策 */
	background-color: #f2f2f2;
	background-image: repeating-linear-gradient(315deg,
			rgba(255, 255, 255, 0.5) 0,
			rgba(255, 255, 255, 0.5) 5px,
			transparent 5px,
			transparent 13px);
	clip-path: polygon(0 0,
			100% 0,
			100% 90%,
			0 100%);
}
.philosophy_bg{position: relative;width:100%;}
.philosophy_bg::after{
	content:"";
	position:absolute;
	right:0;
	bottom:0;
	width: 100%;
	height:50vw;
	background:#219e8b;
	z-index:-3;
clip-path: polygon(
    0 0,      /* 左上 */
    100% 0,   /* 右上 */
    100% 100%, /* 右下（右側長い） */
    0 75%     /* 左下（左側短い） */
);
}

.philosophy_box {
	padding-top: 4.167vw;
	padding-bottom: 5vw;
	width: 85%;
	margin: 0 auto;
}

.philosophy_title {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: flex-end;

	margin-bottom: 5.417vw;
}

.philosophy_title h2 {
	color: #219e8b;
	font-size: clamp(60px, 8.3vw, 100px);


}

.philosophy_title h3 {
	font-size: clamp(18px, 2.6vw, 32px);
	font-weight: 700;
	color: #219e8b;
	background-color: #fff131;
	padding: 0.667vw 3.333vw;

}

.philosophy_item {
	display: flex;
	justify-content: space-between;
}

.philosophy_text {
	width: 57%;
}

.philosophy_img {
	width: 40%;
}

.philosophy_text h4 {
	font-weight: bold;
	line-height: 2;
	font-size: clamp(28px, 2.8vw, 34px);


}

.philosophy_text p {
	margin-top: 5vw;

	font-size: clamp(14px, 1.5vw, 18px);
	line-height: 1.5;
}

.rinen_3 {
	width: 85%;
	margin: 0 auto;
}

.rinen_3 h2 {
	font-size: clamp(18px, 2.6vw, 32px);
	color: #219e8b;
	width: 100%;
	text-align: center;
	background-color: #fff131;
	padding: 0.667vw 0;
	margin-bottom: 4.167vw;
}

.rinen_3 span {
	display: inline-block;
	transform: scaleY(1.2);

}

.rinen_item_box {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4.167vw;
}

.rinen_item img {
	margin-bottom: 2.25vw;
}

.rinen_item p {
	text-align: center;
	font-weight: 700;
	line-height: 1.5;
	;
	font-size: clamp(20px, 2vw, 23px);
	margin-bottom: 2.917vw;
}

.vision_box {
	width: 85%;
	margin: 0 auto;
}

.vision_title {
	padding-top: 6.667vw;
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: clamp(18px, 2.6vw, 32px);
}

.vision_title h2 {
	color: #219e8b;
	font-size: clamp(60px, 8.3vw, 100px);

	margin-bottom: 40px
}

.vision_title h3 {
	font-weight: 700;
	color: #219e8b;
	background-color: #fff131;
	padding: 0.667vw 3.333vw;
	margin-bottom: 70px
}

.vision_intro p {
	text-align: center;
	font-weight: 700;
	font-size: clamp(20px, 2.6vw, 32px);
	line-height: 2;

	margin-bottom: 5.833vw;
}

.vision_item {
	display: flex;
	justify-content: space-between;
	margin-bottom: 4.167vw;
}

.vision_img {
	width: 50%;
}

.vision_text {
	width: 45%;
}

.vision_text p {
	font-size: clamp(14px, 1.5vw, 18px);
	line-height: 2;
}

.guide_box {
	padding-top: 20.833vw;
	padding-bottom: 9.167vw;
	background: linear-gradient(to right, #219e8b, #006f9d);
	display: flex;
	flex-direction: column;
	align-items: center;
	clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%);
}


.guide_title {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: flex-end;
	width: 90%;
	margin-bottom: 5.417vw;
}

.guide_title h2 {
	color: #FFF;
	font-size: clamp(60px, 8.3vw, 100px);

}

.guide_title h3 {
	font-weight: 700;
	color: #000;
	background-color: #fff131;
	padding: 0.667vw 3.333vw;

}

.guide_item_box {
	width: 85%;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.333vw;
}

.guide_item {
	background: #FFF;
	padding: 5% 35px 50px;
	box-sizing: border-box;
	border-radius: 1.667vw;
}


.guide_item h4 {

	text-align: center;
	font-weight: 700;
	font-size: clamp(16px, 2vw, 24px);
	padding: 2.083vw 0 2.5vw;
}

.guide_item_border {


	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, #219e8b, #006f9d);
}

.guide_item p {
	margin-top: 35px;
	font-size: 18px;
	line-height: 1.5;
}

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


	.credo_page_header img {
		min-height: 265px;
		object-position: 40% center;
		/* 重要部分を中央寄せ */
		clip-path: polygon(0 0, 100% 0, 100% 90%, 0% 100%);
	}

	.philosophy_title {
		flex-direction: column;
		align-items: flex-start;
	}

	.philosophy_title h2 {
		margin-left: auto;
		margin-bottom: 60px;
	}

	.philosophy_title h3 {
		padding: 6px 30px;
	}

	.philosophy_item {
		flex-direction: column;
	}

	.philosophy_text,
	.philosophy_img {
		width: 100%;
	}

	.philosophy_text h4,
	.philosophy_img {
		margin-bottom: 35px;
	}

	.philosophy_box p {
		font-size: 14px;
		line-height: 2;
		margin-bottom: 50px;
	}

	.rinen_3 h2 {
		margin-bottom: 40px;
		padding: 6px 0;
	}

	.philosophy {
		padding-bottom: 120px;
		clip-path: polygon(0 0, 100% 0, 100% 97%, 0 100%);
	}
	.vision_title{
		padding-top:45px;
	}
	.vision_item {
		flex-direction: column;
	}

	.vision_img,
	.vision_text {
		width: 100%;
	}

	.vision_img {
		margin-bottom: 40px;
	}

	.vision_title h3{
		margin-bottom:35px;
	}

	.guide_box {
		padding-top: 80px;
		padding-bottom: 80px;
		clip-path: polygon(0 2%, 100% 0, 100% 100%, 0 100%);
	}
	.guide_title{
		flex-direction: column;
	}
	
	.guide_title h3 {
		margin-top:35px;
		margin-right:auto;
		margin-bottom:45px;
			padding: 6px 30px;
	}

	.guide_item {
		padding: 5% 20px 50px;
	}

	.guide_item h4 {
		font-size: 20px;
		line-height: 1.6;
	}

	.rinen_item_box {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.guide_item_box {
		grid-template-columns: 1fr;
		/* 1列 */
		gap: 25px;
	}
}
.contact_main{
    margin-top: -10%;
    padding-top: 10%;
    padding-bottom: 13.75vw;
    background-color: #f2f2f2;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.contact_main_icon{
	display:flex;
	flex-direction:column;
	align-items:center;
}

.contact_main_icon img{
	width:52px;
	margin-top:2%;
	margin-bottom:50px;
}

.contact_main_icon p{
	font-weight:700;
	font-size:clamp(14px,1.5vw,18px);
	text-align:center;
	line-height:1.8;
	    margin-bottom: 8vw;
}
.rec_form_link{
	max-width:20vw;
	min-width:330px;
	margin:0 auto;
	    margin-bottom: 8vw;
}
.rec_form_link a{
	font-weight:600;
	
}

.rec_form_link a:hover{
	color:#219e8b;
}
.saiyo_link{margin-bottom:1.2em;}
.saiyo_link a{color:#219e8b; text-decoration:underline;line-height:1.6;}
.saiyo_link a:hover{
	opacity:.6;
}





.thanks_wrap{
	width:95%;
	margin:0 auto;
	padding:8vw 0;
	text-align:center;
}

.thanks_wrap h3{margin-bottom:2vw;}

.thanks_wrap p{margin-bottom:2vw;line-height:1.8;}
.con_top_btn{margin-top:5vw;}
.con_top_btn a{
	display:block;
	font-weight:700;
		background: #FFF;
		color: #000;
		border: 2px solid #006f9d;
		max-width: 320px;
		width:60%;
	margin:0 auto;
		border-radius:999px;
		padding: 18px 40px;
	}

	.con_top_btn a:hover {
		background: linear-gradient(90deg, #219e8b, #006f9d) padding-box, linear-gradient(90deg, #219e8b, #006f9d) border-box;
		border: 1px solid #219e8b;
		color: #FFF;
		opacity: 1;
	}

@media screen and (max-width: 768px) {
	.thanks_wrap h3{margin-bottom:10vw;}
	.con_top_btn{margin-top:15vw;margin-bottom:8vw;}
}

	/*-------------------------------
 
コンタクトフォーム（フォームプラグイン外）
 
-------------------------------*/

	.contact_box {
	
	
	}

	.contact_intro {
		width: 90%;
		max-width: 83.333vw;
		margin: 0 auto;
		padding-bottom: 2.917vw;

		text-align: center;
	}

	.contact_text {
		position: relative;
		z-index: 1;
		text-align: center;
		border-bottom: 1px solid #FFF;
	}

	.contact_text p {
		color: #FFF;
		font-weight: 400;
		font-size: clamp(14px, 1.6vw, 16px);
		line-height: 2;
		padding-bottom: 3.333vw;
	}

	.con_tel {
		padding-top: 3.333vw;
		text-align: center;
		color: #FFF;
	}

	.con_tel img {
		max-width: 23.75vw;
	}

	.con_time_intro {
		margin-top: 2.333vw;
		margin-bottom: 1.417vw;
		font-size: clamp(14px, 1.6vw, 16px);
	}

	.con_time {
		font-weight: 700;
		font-size: clamp(14px, 1.6vw, 16px);
	}

	.contact_inner {
		width: 87%;
		max-width: 1000px;
		margin: 0 auto;
		background-color: #FFF;
		border-radius: 20px;
			border: 2px solid #006f9d;
	}

	/*-------------------------------
 
コンタクトフォーム（フォームレイアウト）
 
-------------------------------*/

	.ly_form * {
		font-size: 16px;
		
		border-style: solid;
		border-width: 0;
		box-sizing: border-box;
		min-inline-size: 0;

	}

	:where(button, input, textarea, optgroup, select) {
		appearance: none;
		background-color: transparent;
		border-radius: unset;
		color: inherit;
		font: inherit;
		letter-spacing: inherit;
		vertical-align: middle;
	}

	:where(textarea) {
		field-sizing: content;
		resize: block;
	}

	:where(button, [type="button"], [type="submit"], [type="reset"]) {
		text-align: center;
		user-select: none;
		touch-action: manipulation;
	}

	/* フォーカス時はオリジナルのアウトラインを適用 */
	:where(button, input, textarea, select):focus-visible {
		outline: 2px solid #005FCC;
		outline-offset: -2px;
	}

	:where(button,
		input[type=button],
		input[type=submit],
		input[type=reset])[disabled] {
		cursor: not-allowed;
	}

	/* レイアウト */
	.ly_form {}

	.bl_form,
	.bl_formConfirm,
	.bl_formThanks {
		padding-block: 4.125rem;
    padding-inline: 1.5rem;
	}

	.bl_form_group:not(:first-of-type),
	.bl_formConfirm_txt + .bl_form_group {
		margin-block-start: .5em;
		margin-bottom: .8em;
	}

	.bl_form_group fieldset {
		display: contents;
	}

	.bl_form_control {
		margin-block-start: 0.5em;
	}

	/* 項目名 */
	.bl_form_label {
		color: #000;
		display: flex;
		margin-bottom: 1em;
		align-items:end;
	}

	/* 必須ラベル */
	.bl_form_required {
		color: #000;
		display: inline-block;
		font-weight: 700;
		padding-block: 0.1em;
		padding-inline: 0.2em;
	}

.wpcf7-not-valid-tip{padding:10px 0;}

	/* 入力欄、セレクトボックス */
	.bl_form :is(input[type=text], input[type=email], input[type=tel], textarea, select) {
		background-color: #F4F4F4;
		padding: 12px 10px;
		line-height:1.5;
	}

	.bl_form :is(input[type=text], input[type=email], input[type=tel], textarea) {
		inline-size: 100%;
	}

	.bl_form :is(input[type=text], input[type=email], input[type=tel], textarea)::placeholder {
		color: #C5C5C5;
	}

	.bl_form textarea {
		height: 180px;
	}

	/* ラジオボタン、チェックボックス */
	.bl_form .wpcf7-list-item {
		margin: unset;
		margin-bottom: .8em;
	}

	.bl_form_radio,
	.bl_form_checkbox {
		display: inline-grid;
		gap: 0.5em 2em;
	}

	.yuubin {
		display: inline-flex;
		align-items: center;
	}

	.yuubin p {
		margin-right: 1em;
	}

	.yuubin :is(input[type=text], input[type=email], input[type=tel], textarea) {
		width: 8em;
	}

/* =========================
   オリジナルラジオ・チェックボックス共通
========================= */
.bl_form :is(input[type=radio], input[type=checkbox]) {
    appearance: none;
    background-color: #FFF;
    block-size: 18px;
    inline-size: 18px;
    border: 2px solid #DDD;
    margin-block-end: 3px;
    position: relative;
    left: -8px;
    cursor: pointer;
}

/* =========================
   ラジオは丸
========================= */
.bl_form input[type=radio]{
    border-radius: 50%;
}

/* =========================
   newsletterのcheckboxも丸にする
========================= */
.bl_newsletter_group input[type=checkbox]{
    border-radius: 50%;
}

/* =========================
   フォーカス時
========================= */
.bl_form label:has(:where(input[type=radio], input[type=checkbox]):focus-visible) {
    outline: 2px solid #005FCC;
    outline-offset: 2px;
}

/* =========================
   checked共通（位置定義）
========================= */
.bl_form :where(input[type=radio], input[type=checkbox]):checked::before {
    content: "";
    position: absolute;
    inset-block-start: 2px;
    inset-inline-start: 2px;
}

/* =========================
   通常ラジオの中身（丸ポチ）
========================= */
.bl_form input[type=radio]:checked::before {
    background-color: #37952F;
    block-size: 10px;
    inline-size: 10px;
    border-radius: 50%;
}

/* =========================
   通常チェックボックス（レ点）
========================= */
.bl_form input[type=checkbox]:checked::before {
    block-size: 6px;
    inline-size: 10px;
    border-block-end: 3px solid #37952F;
    border-inline-start: 3px solid #37952F;
    rotate: -50deg;
}

/* =========================
   newsletter専用（丸ポチ表示に上書き）
========================= */
.bl_newsletter_group input[type=checkbox]:checked::before {
    block-size: 10px;
    inline-size: 10px;
    background-color: #37952F;
    border-radius: 50%;
    rotate: 0deg;
    border: none;
}

/* =========================
   同意ブロック
========================= */
.bl_form_consent {
    text-align: center;
    margin-top: 30px;
}


	/* バリデーションメッセージ */
	/* .wpcf7-not-valid-tip{} */
	/* 確認・戻る・送信ボタン */
	.bl_form_btn {
		display: flex;
		gap: 2em;
		justify-content: center;
		margin-block-start: 2.5rem;
	}

	/* 確認ボタン非活性時 */
	.bl_form_confirm[disabled] {
		background-color: #CCC;
	}

	/* 確認・送信ボタン */
	.bl_form_confirm,
	.bl_form_submit {
		background: #FFF;
		color: #000;
		border: 1px solid #006f9d;
		max-width: 320px;
		width:45%;
		border-radius:999px;
		padding: 18px 40px;
	}

.bl_form_confirm{width:100%;}

	.bl_form_confirm:hover,
	.bl_form_submit:hover {
		background: linear-gradient(90deg, #219e8b, #006f9d) padding-box, linear-gradient(90deg, #219e8b, #006f9d) border-box;
		border: 1px solid #219e8b;
		color: #FFF;
		opacity: 1;
	}


	/* 戻るボタン */
	.bl_form_back {
		background-color: #B0B0B0;
		color: #FFF;
		width:45%;
		max-width: 320px;
		border-radius: 40px;
		padding: 18px 0;
	}

	.bl_form_back:hover {
		opacity: .5;
	}

	/* 確認画面とメッセージ、スピナーを非表示 */
	.bl_formConfirm,
	.wpcf7-response-output,
	.bl_formConfirm .wpcf7-spinner {
		display: none;
	}

	/* 送信完了画面 */
	.bl_formThanks_ttl,
	.bl_formThanks_txt {
		text-align: center;
	}

	.bl_formThanks_ttl {
		font-size: 24px;
		font-weight: 700;
	}

	.bl_confirm_message {
		line-height: 1.6;
		 white-space: pre-wrap;
	}

	.bl_formThanks_txt {
		margin-block-start: 1em;
	}

	.porcy_box {
		width: 100%;
		margin: 40px 0;
		border-top: 2px solid #000;
		padding-top: 40px;
	}

	.contact__privacy {
		max-width: 100%;
		max-height: 250px;
		margin: 0 auto;
		border: 2px solid #F4F4F4;
		border-right-width: 1px;
		padding: 1em 1.3em;
		font-weight: 300;
		background-color: #FFF;
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: #231815 #c7c7c7;
	}

	.contact__privacy {
		text-align: left;
		font-weight: 400;
		line-height: 1.4;
		margin-bottom: 1em;
		font-size: clamp(14px, 1.6vw, 16px);
	}

	.contact__privacy p {
		line-height: 2;
		font-size: clamp(14px, 1.6vw, 16px);
	}

	.contact__privacy h3 {
		font-size: clamp(14px, 1.6vw, 16px);
		font-weight: 400;
		margin-bottom: 10px;
	}

	.contact__privacy::-webkit-scrollbar {
		width: 10px;
	}

	.contact__privacy::-webkit-scrollbar-track {
		background-color: #c7c7c7;
	}

	.contact__privacy::-webkit-scrollbar-thumb {
		background-color: #231815;

	}

	.bl_formConfirm_txt {
		text-align: center;
		margin-bottom: 2em;
	}

	@media (min-width: 768px) {

		.bl_form_group {
			font-size: clamp(14px, 1.6vw, 16px);
			align-items: start;
			display: grid;
			gap: 3%;
			grid-template-columns: 31% 1fr;
		}

		.bl_form_label {
			font-weight:600;
			margin-block-start: 0.5em;
		}

		.bl_form_radio,
		.bl_form_checkbox {
			grid-auto-flow: column;
		}
		

	

	.bl_con_check span::before {
		content: none;
		/* ::beforeを無効にする */
	}

	.bl_con_check span::after {
		content: none;
		/* ::beforeを無効にする */
	}

}
@media (max-width: 768px) {
			.bl_form,
	.bl_formConfirm,
	.bl_formThanks {
		padding-block: 2.125rem;
    padding-inline: 1.5rem;
	}

	
}