@charset "UTF-8";

/* =========================
   リセット・共通
========================= */
* {
	margin: 0;
	padding: 0;
	line-height: 1;
	font-family: m-plus-1p, sans-serif;
}
body:not(.home):not(.front-page) {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

body:not(.home):not(.front-page) main {
  flex: 1;
}
.page_content{width:80%;margin:0 auto;}
.page_title{text-align:center;width:80%;margin:40px auto;}

img {
	width: 100%;
	vertical-align: bottom;
}

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

a:hover {
	cursor: pointer;
	opacity: .8;
}

ul {
	list-style: none;
	
}

.ryo {
	font-family: ryo-gothic-plusn, sans-serif;
}

.en {
	font-family: amatic-sc, sans-serif;
	font-weight: 400;
}

.yakumono.left {
	margin-left: -0.2em;
}

.yakumono.right {
	margin-right: -0.2em;
}

/* =========================
   PC NAV
========================= */
.pc_nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	padding-top: 2.083vw;
	padding-bottom: 1.667vw;
	background: #fff;
	border-bottom: 1px solid #e8e8e8;
}

.header_inner {
	max-width: 81.833vw;
	margin: 0 auto;
	height: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding-bottom: 1.5vw;
}

/* ===== LOGO ===== */
.header_logo a {
	display: block;
}

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

/* ===== NAV ===== */
.header_nav {
	display: flex;
	align-items: flex-end;
}

.nav_list {
	list-style: none;
	display: flex;
	align-items: flex-end;
}

.nav_list li {
	padding-right: 1.583vw;
}

.nav_list li:last-child {
	padding-right: 0;
}

.nav_list a {
	display: flex;
	align-items: flex-end;
	font-size: clamp(13px, 1.5vw, 18px);
	color: #1a1a1a;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease;
	line-height: 1;
}

.nav_list a:hover,
.nav_list img:hover {
	opacity: 0.6;
}

.nav_list img {
	width: 2.167vw;
	height: 2.167vw;
	display: block;
}

main {
	margin-top: 11vw;
}

/* =========================
   MV スライダー
========================= */
.mv_box {
    position: relative;
}
.mv_slider {
	position: relative;
	width: 100%;
	aspect-ratio: 1200 / 673;
	overflow: hidden;
}

.mv_slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	filter: blur(10px);
}

/* 白レイヤー */
.mv_slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	opacity: 0;
	pointer-events: none;
}

/* アニメーション */
.mv_slide.is-active {
	animation: mvSoft 8s ease-in-out forwards;
	z-index: 2;
}

.mv_slide.is-active::after {
	animation: mvWhite 8s ease-in-out forwards;
}

@keyframes mvSoft {
	0% {
		opacity: 0;
		filter: blur(14px);
	}

	10% {
		opacity: 0.6;
		filter: blur(6px);
	}

	25% {
		opacity: 1;
		filter: blur(0);
	}

	70% {
		opacity: 1;
		filter: blur(0);
	}


	82% {
		opacity: 0.8;
		filter: blur(2px);
	}

	90% {
		opacity: 0.4;
		filter: blur(6px);
	}

	100% {
		opacity: 0;
		filter: blur(12px);
	}
}

@keyframes mvWhite {
	0% { opacity: 0.7; }

	20% { opacity: 0; }

	70% { opacity: 0; }

	80% { opacity: 0.1; }

	90% { opacity: 0.4; }

	100% { opacity: 1; }
}

.mv_slide img {
	width: 100%;
	display: block;
}

.mv_text {
	position: absolute;
	z-index: 999;
	top: 25vw;
	left: 50%;
	transform: translateX(calc(-50% - 18px));
	width: 100%;
	max-width: 76.667vw;
}

.mv_text img {
	width: 100%;
	max-width: 43.75vw;
}

.mv_tree {
	position: absolute;
	z-index: 888;
	top: 14vw;
	right: 0;
}

.mv_tree img {
	width: clamp(278px, 54.667vw, 720px);
	height: auto;
}

/* =========================
   ABOUT
========================= */
.about_bg {
	background: linear-gradient(to bottom, #fef8ef 68%, #f5ba63 100%);
	padding-top: 13.333vw;
	padding-bottom: 5vw;
}

.about {
	width: 80%;
	max-width: 1000px;
	margin-inline: auto;
	position: relative;
}

.about_intro {
	max-width: 38.333vw;
	padding-bottom: 5.5vw;
	position: relative;
}

.about_intro h3 {
	font-weight: 500;
	color: #3e3a39;
	line-height: 2;
	letter-spacing: 0.04em;
	font-size: clamp(30px, 3.3vw, 40px);
	margin-bottom: 4.167vw;
}

.yutaka {
	color: #f5ba63;
}

.about_intro p {
	text-align: justify;
	line-height: 2;
	font-size: clamp(12.5px, 1.5vw, 18px);
	letter-spacing: 0.04em;
}

.about_img_01 {
	position: absolute;
	left: calc(38.333vw + 4vw);
	top: 50%;
	width: 36.917vw;
}

.about_img_01 img {
	width: clamp(32.917vw, 41.4vw, 620px);
	height: auto;
}

.about_img_02 {
	margin-left: 15vw;
}

.about_img_02 img {
	width: clamp(30.083vw, 32.083vw, 560px);
	height: auto;
}

/* =========================
   SERVICES
========================= */
.services {
	background-color: #f5ba63;
	padding-top: 5vw;
	padding-bottom: 5vw;
}

.services_title {
	text-align: center;
	color: #599025;
	padding-bottom: 4vw;
}

.services_title h3 {
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
}

.services_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

/* =========================
   SERVICE SLIDER
========================= */
.service_slider {
	position: relative;
	width: 100%;
	user-select: none;
}

.service_slider_mask {
	overflow: hidden;

}

.service_slider_view {
	width: 100%;
}

.service_slider_track {
	display: flex;
	align-items: stretch;
	gap: 3.333vw;
	will-change: transform;
	cursor: grab;
	padding-bottom: 1.667vw;
}

.service_slider_track.is-grabbing {
	cursor: grabbing;
}

/* SLIDE OUTER */
.service_slide_outer {
	max-width: 1000px;
	position: relative;
	flex: 0 0 calc(100% - 25%);
	transform: scale(0.88);
	transform-origin: center center;
	transition: transform 0.35s ease;
	will-change: transform;
	backface-visibility: hidden;
	display: flex;
}

.service_slide_outer.active {
	transform: scale(1);
}

/* CARD */
.service_slide {
	position: relative;
	box-sizing: border-box;
	background: #fef8ef;
	border: 3px solid #ef940e;
	border-radius: 10px;
	padding: 4vw 4.6vw 2.667vw;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	flex: 1;
}

.service_top {
	flex: 0 0 auto;
}

.service_middle {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
}

.service_bottom {
	flex: 0 0 auto;
}

.service_slide::after {
	content: "";
	position: absolute;
	inset: 0;
	transform: translate(12px, 12px);
	z-index: -1;
	border-radius: 1.667vw;
	background: repeating-linear-gradient(-45deg, #ffffff 0, #ffffff 2px, transparent 2px, transparent 7px);
	opacity: 0.6;
}

/* TOP SECTION */
.service_top {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 2.333vw;
}

.service_content,
.service_content_02 {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	max-width: 58%;
	margin-right: .8vw;
}

.service_content_02 {
	max-width: 64.5%;
}

.service_mainimg {
	max-width: 35%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 5vw;
}

.service_name h4 {
	font-weight: 500;
	letter-spacing: 0.08em;
	margin-bottom: 0.8em;
	font-size: clamp(14px, 1.6vw, 20px);
}

.service_name h3 {
	font-weight: 500;
	margin-bottom: 0.8em;
	font-size: clamp(22px, 2.6vw, 32px);
}

.service_content p {
	text-align: justify;
	font-size: clamp(13px, 1.3vw, 16px);
	line-height: 1.8;
	letter-spacing: -0.027em;
}

/* 画像は親にフィット */
.service_top img,
.service_mainimg img,
.service_subimg img {
	width: 100%;
	max-width: 100%;
	height: auto;
	display: block;
}


/* =========================
   MIDDLE & BOTTOM
========================= */
.service_middle {
	display: flex;
	align-items: center;
	padding: 1.25vw 3vw;
	border: 1px solid #f5ba63;
}

.service_data {
	color: #f5ba63;
	font-weight: 700;
	margin-right: 3vw;
	font-size: clamp(18px, 2vw, 24px);
}

.service_list ul {
	display: grid;
	grid-template-columns: max-content max-content;
	gap: 0.667vw 1vw;
	font-size: clamp(13px, 1.3vw, 16px);
	line-height: 1.6;
}

.service_list_01 p {
	line-height: 1.6;
	font-size: clamp(13px, 1.3vw, 16px);
}

.service_list_01 ul {
	display: grid;
}

.list_02 {
	display: grid;
	gap: .02vw 2vw;
	grid-template-columns: max-content max-content;
}

.service_list_01 li {
	line-height: 1.6;
	white-space: nowrap;
	font-size: clamp(13px, 1.3vw, 16px);
}

.service_underline {
	width: 100%;
	border-bottom: 0.25px solid #000;
	padding-top: 0.2vw;
	margin-bottom: 0.8vw;
}

.service_subimg {
	display: flex;
	justify-content: space-between;
	gap: 1.458vw;
	margin-top: 2vw;
}

/* =========================
   NAV & INDICATOR
========================= */
.service_slider_nav {
	width: min(85vw, 500px);
	margin: 60px auto 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* 矢印 */
.service_arrow img {
	width: clamp(32px, 9vw, 50px);
	display: block;
}

.service_arrow{background: none;
	border: none;
	padding: 0;
	margin: 0;
	cursor: pointer;

	appearance: none;
	-webkit-appearance: none;}

/* インジケーター全体 */
.service_indicator {
	width: clamp(140px, 55.467vw, 300px);
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* 線 */
.indicator_line {
	width: clamp(30px, 16vw, 80px);
	height: 2px;
	background: #fff;
	transition: 0.3s;
}

.indicator_line.active {
	background: #599025;
}

.service_info_bg {
	width: 100%;
	height: 8vw;
	background: #f5ba63;
	margin-top: -0.8vw;
	border-bottom-left-radius: 90% 100px;
	border-bottom-right-radius: 90% 100px;
}

/* =========================
   COMPANY
========================= */
#company {
	padding-top: 11.667vw;
	margin-bottom: 8.333vw;
	position: relative;
}

.company_box {
	width: 80%;
	max-width: 960px;
	margin: 0 auto;
	padding-bottom: min(60px, 50% * 0.437);
}

.company_title {
	color: #599025;
	margin-bottom: 1.333vw;
}

.company_title h3 {
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
}

.company_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

.company_item {
	display: flex;
}

.company_info {
	width: 100%;
	max-width: 35.417vw;
	margin-top: 3.75vw;
}

.company_info_img {
	position: absolute;
	    bottom: -2em;
	left: 0;
	width: 50%;
	max-width: 50vw;
	aspect-ratio: 600 / 262.4;
}

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

.company_history {
	width: 100%;
	margin-left: 6%;
}

.info_list {
	position: relative;
	display: grid;
	grid-template-columns: 6em 1fr;
	width: 100%;
}

.info_list dt,
.info_list dd {
	line-height: 1.8;
	padding: 1.167vw 0;
	margin: 0;
	border-bottom: 1px solid #ddd;
}

.info_list dt {
	font-size: clamp(13px, 1.5vw, 18px);
}

.info_list dd {
	font-size: clamp(13px, 1.3vw, 16px);
}

.info_list dt:last-of-type,
.info_list dd:last-of-type {
	border-bottom: none;
}

.company_history h4 {
	color: #ef940e;
	font-size: clamp(36px, 5.3vw, 64px);
}

.timeline {
	position: relative;
	padding-left: 1.833vw;
	padding-bottom: 2.5vw;
	list-style: none;
}

.timeline_item {
	position: relative;
	padding: 2.5vw 0;
	display: flex;
	gap: 1.333vw;
	align-items: flex-start;
}

.timeline_item::before,
.timeline_item::after {
	content: "";
	position: absolute;
	left: -1.6vw;
	width: 1px;
	background: #231815;
}

.timeline_item::before {
	top: 0;
	height: calc(2.5vw + 1em);
}

.timeline_item::after {
	top: calc(2.5vw + 1em);
	bottom: 0;
}

.timeline_item:first-child::before {
	display: none;
}

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

.timeline_marker {
	position: absolute;
	left: -1.5vw;
	top: calc(2.5vw + .9em);
	width: .5em;
	height: .5em;
	background: #fff;
	border: 0.75px solid #231815;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
}

.timeline_item.active .timeline_marker {
	background: #f39a1f;
	border-color: #231815;
}

.timeline_item p {
	margin: 0;
	line-height: 2;
	font-size: clamp(13px, 1.3vw, 16px);
}

.history_bottom_img {
	max-width: 28.417vw;
	margin-left: auto;
	margin-right: -6.667vw;
}

.history_top_img img {
	position: absolute;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.history_01 {
	max-width: 20.833vw;
	top: 16.667vw;
	right: 2.083vw;
}

.history_02 {
	max-width: 16.25vw;
	top: 38.333vw;
	right: 2.083vw;
}

/* =========================
   SHOP INFO
========================= */
.shop_info_box_top {
	width: 100%;
	height: 7.083vw;
	background: #fef8ef;
	margin-bottom: -0.25vw;
	border-top-left-radius: 90% 100px;
	border-top-right-radius: 90% 100px;
}

.shop_info_box_bg {
	background: #fef8ef;
	padding-top: 4.167vw;
}

.shop_info_box {
	width: 80%;
	max-width: 1000px;
	margin: 0 auto;
}

.shop_info_title {
	text-align: center;
	color: #ef940e;
	padding-bottom: 6.333vw;
}

.shop_info_title h3 {
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
}

.shop_info_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

.shop_info_intro {
	display: flex;
	justify-content: space-between;
	position: relative;
	margin-bottom: 3.333vw;
}

.shop_info_text {
	max-width: min(55%, 34vw);
	padding-top: 2.167vw;
	padding-bottom: 15vw;
	margin-right: 2vw;
}

.shop_info_img {
	max-width: min(495px, 41.333vw);
}

.shop_info_img img {
	max-width: 41.333vw;
	height: auto;
}

.shop_text {
	margin-bottom: 4vw;
}

.shop_text p,
.shop_data p {
	text-align: justify;
	font-size: clamp(13px, 1.3vw, 16px);
	line-height: 2;
	letter-spacing: 0.03em;
}

.shop_data {
	padding: 1.917vw 2.75vw;
	background-color: #FFF;
	border: 1px solid #ef940e;
}

.shop_data h4 {
	color: #f5ba63;
	font-weight: 700;
	margin-bottom: 1.5vw;
	font-size: clamp(18px, 2vw, 24px);
}

.shop_info_img_02 {
	position: absolute;
	bottom: -2.5vw;
	right: 0;
}

.shop_info_img_02 img {
	max-width: min(750px, 54vw);
	height: auto;
}

/* =========================
   RECOMMEND
========================= */
.recommend_title {
	color: #599025;
	margin-bottom: 3.333vw;
}

.recommend_title h3 {
	font-size: clamp(46px, 5.3vw, 64px);
	margin-bottom: 1.667vw;
}

.recommend_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

.recommend_item_box {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	row-gap: 3.333vw;
	column-gap: .5vw;
	padding-bottom: 10.417vw;
}

.recommend_item:nth-child(odd) {
	justify-self: start;
}

.recommend_item:nth-child(even) {
	justify-self: end;
}

.recommend_item {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.recommend_item_img {
	max-width: 18.917vw;
	height: auto;
}

.reco_text {
	max-width: 19vw;
	margin-left: 1.5vw;
}

.reco_text h4 {
	font-weight: 700;
	margin-bottom: 1.5vw;
	letter-spacing: -0.03em;
	font-size: clamp(18px, 2vw, 24px);
}

.reco_text p {
	width: 90%;
	text-align: justify;
	font-size: clamp(13px, 1.3vw, 16px);
	line-height: 1.5;
	letter-spacing: -0.05em;
}

/* =========================
   MAP
========================= */
.map {
	margin: auto;
	margin-bottom: 3.833vw;
}

.map iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 1200 / 430;
	border: 0;
}

/* ==============================
   アンケートスライダー
============================== */
.survey_bg {
	background-color: #eaf1e4;
	padding-top: 7.917vw;
	padding-bottom: 7.167vw;
}

.survey_box {
	width: 80%;
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.survey_text {
	max-width: 32.5vw;
}

.survey_text h3 {
	color: #599025;
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
}

.survey_text h4 {
	color: #599025;
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
	margin-bottom: 1em;
}

.survey_text p {
	width: 90%;
	text-align: justify;
	font-size: clamp(13px, 1.3vw, 16px);
	line-height: 2;
	letter-spacing: 0.03em;
}

.survey_kome {
	font-size: 95%;
	margin: 4.167vw 0;
	display: block;
}

.survey_slide {
	max-width: 38.583vw;
	
	margin-left: 5.833vw;
}

.survey_view {
	overflow: hidden;
}

.survey_track {
	display: flex;
	transition: transform 0.5s cubic-bezier(.22, .61, .36, 1);
}

.survey_item {
	min-width: 100%;
}

.survey_item img {
	width: 100%;
	height: auto;
	display: block;
}

.survey_nav {
	width: 40vw;
	margin: 24px auto;

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

/* ボタン完全リセット */
.survey_arrow {
	background: none;
	border: none;
	cursor: pointer;
	padding: clamp(4px, 0.667vw, 8px);

	appearance: none;
	-webkit-appearance: none;

	display: flex;
	align-items: center;
	justify-content: center;
}

.survey_arrow img {
	width: clamp(36px, 5vw, 46px);
}

.survey_indicator {
	width: clamp(140px, 50vw, 480px);
	display: flex;
	justify-content: space-between;
}

/* インジケーター */
.survey_indicator {
	display: flex;
	gap:2vw;
	justify-content: center;
}

/* ライン */
.survey_line {
	display: block;
	width: clamp(36px, 6vw, 56px);
	height: 2px;
	background: #b5b5b6;
	cursor: pointer;
	transition: background 0.3s;
}

.survey_line.active {
	background: #ef940e;
}

/* =========================
   RECRUIT
========================= */
.recruit_box {
	padding-top: 10vw;
	padding-bottom: 7.5vw;
	width: 80%;
	max-width: 960px;
	margin: 0 auto;
}

.recruit_title {
	text-align: center;
	color: #ef940e;
	padding-bottom: 6.333vw;
}

.recruit_title h3 {
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
	font-variant: small-caps;
	letter-spacing: 0.05em;
}

.recruit_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

.recruit_item_box {
	display: flex;
	justify-content: space-between;
	gap: 3.333vw;
	align-items: stretch;
}

.recruit_item:first-child {
	flex: 0 0 auto;
	width: 42%;
	display: flex;
	flex-direction: column;
}

.recruit_item:last-child {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}

.recruit_item h4 {
	display: inline-block;
	align-self: center;
	color: #fff;
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 500;
	padding: 0.833vw 6.25vw;
	border-radius: 4.167vw;
	margin-bottom: 1.5em;
}

.recruit_item:first-child h4 {
	background-color: #599025;
	padding: 0.833vw 6.25vw;
}

.recruit_item:last-child h4.part {
	background-color: #ef940e;
	padding: 0.833vw 3.167vw;
}

.recruit_overview_01 {
	flex: 1;
	background-color: #efefef;
	border-radius: 1.25vw;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3.333vw 2.5vw;
	color: #888;
	font-size: clamp(13px, 1.3vw, 16px);
}

.recruit_overview_02 {
	flex: 1;
}

.recruit_overview_02 .info_list dt {
	font-size: clamp(13px, 1.3vw, 16px);
	display: flex;
	align-items: center;
}

.info_list dd {
	font-size: clamp(13px, 1.3vw, 16px);
}

.teate {
	font-size: 85%;
}

.job-list {
	list-style: none;
	padding-left: 1em;
}

.job-list li {
	text-align: justify;
	text-indent: -1em;
	line-height: 1.8;
}

.job-list li:not(.job_kome)::before {
	content: "・";
}

.job-list_02 {
	list-style: none;
	padding-left: 1em;
}

.job-list_02 li {
	text-align: justify;
	text-indent: -1em;
	line-height: 1.8;
}

.job-list_02 li::before {
	content: "・";
}

/* リンクボタン */
.recruit_box > a {
	display: block;
	width: fit-content;
	margin: 60px auto 0;
	padding: 2.333vw 3.75vw;
	border: 2px solid #ef940e;
	border-radius: 4.167vw;
	color: #ef940e;
	font-size: clamp(15px, 1.5vw, 18px);
	text-decoration: none;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}

.recruit_box > a:hover {
	background: #ef940e;
	color: #fff;
}

/* =========================
   CONTACT FORM
========================= */
.contactform_bg {
	background-color: #fef8ef;
	padding-top: 10vw;
	padding-bottom: 7.5vw;
	margin-bottom: 5.417vw;
}

.contactform_box {
	width: 80%;
	max-width: 960px;
	margin: 0 auto;
}

.contact_title {
	text-align: center;
	color: #ef940e;
	padding-bottom: 6.333vw;
}

.contact_title h3 {
	font-size: clamp(46px, 7vw, 84px);
	margin-bottom: 1.667vw;
	font-variant: small-caps;
	letter-spacing: 0.05em;
}

.contact_title h4 {
	font-weight: 500;
	font-size: clamp(24px, 2.8vw, 34px);
}

/* ダミー要素 */
.dummy {
	padding: 25vw 0;
	background-color: #FFF;
	border: 1px solid #ef940e;
	border-radius: 1.667vw;
}

/* =========================
   FOOTER
========================= */
.footer_bg {
	background-color: #f5ba63;
	padding-top: 5vw;
	padding-bottom: 4.167vw;
}

.footer_box {
	width: 80%;
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.footer_left {
	width: 57%;
}

.company_add_box {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 3.333vw;
}

.kimamori_logo {
	width: 100%;
	max-width: 18.333vw;
	margin-right: 2em;
}

.kimamori_logo img {
	display: block;
}
.company_add{width:100%;}
.company_add p {
	line-height: 1.5;
	font-size: clamp(12.5px, 1.5vw, 18px);
	letter-spacing: 0.04em;
}

.company_add p:last-child {
	margin-bottom: calc(-0.25em);
}

.footer_right {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.083vw;
	justify-items: center;
	align-items: center;
}

.footer_right a img {
	max-width: 14.667vw;
	width: 100%;
	transition: opacity 0.3s;
}

.footer_right a img:hover {
	opacity: 0.6;
}

.copy{font-size:clamp(12px,1.2vw,14px);}

:root {
	--fs-adjust: 0px;
}

/* ===== フォント調整用 ===== */
.about_intro h3 {
	font-size: calc(clamp(30px, 3.3vw, 40px) + var(--fs-adjust));
}

.about_intro p {
	font-size: calc(clamp(12.5px, 1.5vw, 18px) + var(--fs-adjust));
}

.services_title h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.services_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.service_name h3 {
	font-size: calc(clamp(22px, 2.6vw, 32px) + var(--fs-adjust));
}

.service_name h4 {
	font-size: calc(clamp(14px, 1.6vw, 20px) + var(--fs-adjust));
}

.service_content p {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.service_data {
	font-size: calc(clamp(18px, 2vw, 24px) + var(--fs-adjust));
}

.service_list ul,
.service_list_01 p,
.service_list_01 li {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.company_title h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.company_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.company_history h4 {
	font-size: calc(clamp(36px, 5.3vw, 64px) + var(--fs-adjust));
}

.info_list dt {
	font-size: calc(clamp(13px, 1.5vw, 18px) + var(--fs-adjust));
}

.info_list dd {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.timeline_item p {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.shop_info_title h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.shop_info_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.shop_text p,
.shop_data p {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.shop_data h4 {
	font-size: calc(clamp(18px, 2vw, 24px) + var(--fs-adjust));
}

.recommend_title h3 {
	font-size: calc(clamp(46px, 5.3vw, 64px) + var(--fs-adjust));
}

.recommend_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.reco_text h4 {
	font-size: calc(clamp(18px, 2vw, 24px) + var(--fs-adjust));
}

.reco_text p {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.survey_text h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.survey_text h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.survey_text p {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.recruit_title h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.recruit_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.recruit_item h4 {
	font-size: calc(clamp(18px, 2vw, 24px) + var(--fs-adjust));
}

.recruit_overview_01 {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.recruit_overview_02 .info_list dt,
.info_list dd {
	font-size: calc(clamp(13px, 1.3vw, 16px) + var(--fs-adjust));
}

.recruit_box > a {
	font-size: calc(clamp(15px, 1.5vw, 18px) + var(--fs-adjust));
}

.contact_title h3 {
	font-size: calc(clamp(46px, 7vw, 84px) + var(--fs-adjust));
}

.contact_title h4 {
	font-size: calc(clamp(24px, 2.8vw, 34px) + var(--fs-adjust));
}

.company_add p {
	font-size: calc(clamp(12.5px, 1.5vw, 18px) + var(--fs-adjust));
}

@media (min-width: 1300px) {
	:root {
		--fs-adjust: 3px;
	}

	.about,
	.company_box,
	.service_slide_outer,
	.shop_info_box,
	.survey_box,
	.recruit_box,
	.contactform_box,
	.footer_box {
		max-width: 1300px;
	}

	.about,
	.company_box,
	.shop_info_box,
	.survey_box,
	.recruit_box,
	.contactform_box,
	.footer_box {
		width: 90%;
	}
}

@media (max-width: 1299px) {
	:root {
		--fs-adjust: 0px;
	}
}
.sp_brr {
	display: none;
}

.tb_br {
	display: none;
}

@media screen and (max-width: 850px) {
	.tb_br {
		display: block;
	}

	.header_inner {
		max-width: 90%;
	}

	.about,
	.company_box,
	.shop_info_box,
	.survey_box,
	.recruit_box,
	.contactform_box,
	.footer_box {
		width: 90%;
	}

	.about_intro {
		max-width: 45vw;
	}

	.about_img_01 {
		left: calc(45vw + 4vw);
	}

	.service_slider_nav {
		margin: 55px auto 0;
	}

	.company_box {
		padding-bottom: min(40px, 50% * 0.437);
	}

	.history_bottom_img {
		max-width: 32vw;
		margin-left: auto;
		margin-right: -0.7vw;
	}

	.shop_info_box_bg {
		padding-top: 30px;
	}

	.shop_info_text {
		max-width: min(59%, 45vw);
		padding-bottom: 10vw;
	}

	.reco_text {
		max-width: 25vw;
	}

	.survey_text {
		max-width: 43vw;
	}

	.survey_text p {
		width: 95%;
	}

	.survey_slide {
		max-width: 43vw;
	}
}

@media screen and (max-width: 751px) {
	.company_box {
		padding-bottom: min(60px, 84% * 0.437);
	}
}

.pc_only {
	display: block;
}

.sp_br {
	display: none;
}

.sp_only {
	display: none;
}

@media screen and (max-width: 700px) {
	:root {
		--fs-adjust: 4px;
	}

	.pc_only {
		display: none;
	}

	.sp_br {
		display: block;
	}
	
	.sp_brr {
		display: block;
	}

	.sp_only {
		display: block;
	}

	.header_logo img {
		max-width: 160px;
	}
	.mv_tree {}
	.about_intro h3 {
		line-height: 1.5;
	}

	.about_intro {
		max-width: none;
		width: 100%;
	}

	.about_img_01 {
		width: 100%;
		position: relative;
		left: 0;
	}

	.about_img_01 img {
		width: 100%;
		margin-top: 30px;
	}

	.about_img_02 img {
		width: 100%;
	}
	.services{padding-top:16vw;padding-bottom: 8vw;}
	.services_title{padding-bottom:9vw;}
	.service_slider {
		width: 95%;
		margin: 0 auto;
	}

	.service_slider_track {
		gap: 4vw;
	}

	.service_slide_outer {
		flex: 0 0 95%;
		max-width: 95%;
		margin: 0 auto;
		transform: scale(1);
	}

	.service_content,
	.service_content_02 {
		max-width: none;
		width: 95%;
		margin-right: 0;
	}

	.service_slide {
		padding: 30px 9px 23px;
	}

	.service_mainimg {
		max-width: none;
	}

	.service_top {
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
	}

	.service_content {
		display: contents;
	}

	.service_name {
		order: 1;
		padding: 0 .7em;
	}

	.service_mainimg {
		order: 2;
		margin-bottom: 10px;
	}

	.service_content p {
		order: 3;
		padding: 0 .7em;
		margin-top:28px;
		margin-bottom: 21px;
	}

	.service_top {
		margin-bottom: 0;
	}

	.sp_only .service_content {
		display: block;
	}

	.sp_only .service_name,
	.sp_only .service_mainimg,
	.sp_only .service_content p {
		order: initial;
	}

	.service_middle {
		box-sizing: border-box;
		width: 95%;
		margin: 0 auto;
		flex-direction: column;
		align-items: flex-start;
		flex: none;
		margin-bottom:5px;
	}

	.service_list ul {
		display: flex;
		flex-direction: column;
	}

	.service_list ul li:nth-child(1) {
		order: 1;
	}

	.service_list ul li:nth-child(2) {
		order: 3;
	}

	.service_list ul li:nth-child(3) {
		order: 2;
	}

	.service_list ul li:nth-child(4) {
		order: 4;
	}
	
	.service_slide::after {
	
	transform: translate(8px, 8px);
	border-radius: 10px;
	background: repeating-linear-gradient(-45deg, #ffffff 0, #ffffff 2px, transparent 2px, transparent 7px);
	opacity: 0.6;
}

	.service_subimg {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
		justify-items: center;
		margin-top: 20px;
	}

	.service_subimg picture:nth-child(3) {
		grid-column: 1 / -1;
		justify-self: center;
		width: 50%;
	}

	.service_data {
		margin-bottom: 15px;
	}

	.service_list li {
		margin-bottom: 10px;
	}

	.sp_service_mainimg {
		width: 50%;
		margin: 0 auto;
	}

	.sp_slide {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
		height: 100%;
	}

	.sp_service_top {
		width: 95%;
	}

	.service_underline {
		margin-bottom: 12px;
		padding-top: 10px;
	}

	.service_list_01 li {
		white-space: normal;
	}
	#company {padding-top:18.6vw;}
	.company_title {margin-bottom:8vw;}
	.company_title h3{margin-bottom:4.6vw;}
	.company_item {
		display: block;
	}
.recruit_overview_02 .info_list dt:last-of-type,.recruit_overview_02 .info_list dd:last-of-type {
   border-bottom: 1px solid #ddd;
}
	.company_info {
		max-width: none;
		width: 100%;
	}

	.sp_company_info_img {
		margin-right: -6%;
		margin-top: 3%;
		margin-bottom: 30px;
	}

	.company_history {
		margin-left: 0;
	}

	.timeline_item {
		gap: 5.333vw;
		padding-left: 1em;
	}

	.timeline_marker {
		width: 10px;
		height: 10px;
	}

	.history_bottom_img {
		max-width: none;
		width: 75%;
		margin: 0 auto;
	}

	.shop_info_intro {
		flex-direction: column;
	}

	.shop_info_text {
		max-width: none;
		order: 2;
		padding-bottom: 0;
	}

	.shop_info_img {
		max-width: none;
		order: 1;
	}

	.shop_info_img img {
		max-width: none;
	}

	.shop_info_img_02 {
		position: relative;
		bottom: auto;
		right: auto;
		order: 3;
	}

	.shop_info_img_02 img {
		max-width: none;
		margin: 30px 0;
	}

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

	.recommend_item {
		display: flex;
		align-items: center;
		gap: 4%;
	}

	.recommend_item_img {
		max-width: none;
		flex: 0 0 42%;
	}

	.recommend_item_img img {
		width: 100%;
		max-width: 100%;
		height: auto;
		display: block;
	}

	.reco_text {
		flex: 1;
		width: auto;
		max-width: none;
	}

	.reco_text p {
		width: 100%;
	}

	.map iframe {
		aspect-ratio: 1 / 1;
		height: auto;
	}

	.survey_box {
		flex-direction: column;
		align-items: stretch;
	}

	.survey_text {

		max-width: none;
		width: 100%;
	}

	.survey_text h3 {
		margin-bottom: 10px;
	}

	.survey_text h4 {
		margin-bottom: 15px;
	}

	.survey_text p {
		width: 100%;
	}

	.survey_slide {

		margin-left: 0;
		max-width: none;
		width: 100%;
		margin-top: 20px;
	}

	.survey_img {
		width: 80%;
		margin: 0 auto;

	}

	.survey_nav {    width: 90vw;
    margin: 45px auto;}
	.survey_arrow img{width:55px;}
	.recruit_box {
		width: 80%;
	}
	.survey_indicator{    justify-content: space-between;}
	.survey_line{width:13vw;}
	.recruit_item_box {
		flex-direction: column;
	}

	.recruit_item:first-child {
		width: 100%;
	}

	.recruit_item_box {
		gap: 10vw;
	}

	.info_list {
		grid-template-columns: 8em 1fr;
	}

	.recruit_overview_01 {
		padding: 20vw 2.5vw;
	}

	.recruit_item:first-child h4 {
		width: 60%;
		text-align: center;
		padding: 2.5vw;
	}

	.recruit_item:last-child h4.part {
		width: 60%;
		text-align: center;
		padding: 2.5vw;

	}

	.recruit_box {
		padding-top: 14vw;
		padding-bottom: 17vw;
	}

	.footer_box {
		flex-direction: column;

	}

	.footer_left {
		max-width: none;
		align-items: center;
	}

	.company_add_box {
		flex-direction: column;
		align-items: center;
	}

	.kimamori_logo {
		max-width: 30vw;
		margin-bottom: 3vw;
	}

	.footer_right {
		gap: 3vw;
		margin: 4vw 0;
	}

	.footer_right a img {
		max-width: none;
	}

	.company_add p {
		text-align: center;
	}

	.copy {
		text-align: center;
	}



}


@media screen and (max-width: 496px) {
	:root {
		--fs-adjust: 0px;
	}

	.sp_br {
		display: none;
	}

	.sp_brr {
		display: block;
	}

	.about,
	.company_box,
	.shop_info_box,
	.survey_box,
	.recruit_box,
	.contactform_box,
	.footer_box {
		width: 80%;
	}

	.header_logo img {
		max-width: 100px;
	}
	.pc_nav{padding:3vw 0;}
	.header_inner {
		max-width:none;
		justify-content: center;
	}

	.mv_slider {
		aspect-ratio: auto;
		height: auto;
	}

	.mv_slide.is-active {
		position: relative;
	}

	.mv_slide {
		height: auto;
	}

	.mv_slide img {
		width: 100%;
		height: auto;
		object-fit: contain;
	}

	.mv_text img {
		max-width: 330px;
	}

	.mv_text {
		        max-width: 330px;
		top:54vw;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
    
	}

	.mv_tree {
		top: 78vw;

	}

	.mv_tree img {
		width: 270px;
	}

	.about_bg {
		padding-top: 27vw;
	}
	.about_intro h3{margin-bottom:5.4vw}
	.service_name h4 {
		letter-spacing: -0.01em;
	}

	.service_list_01 li span {
		font-size: 88%;
	}
	
	.service_indicator{width:220px;}
	.service_arrow img{width:50px;}.indicator_line{width:50px;}
	.service_underline {
		margin-bottom: 6px;
		padding-top: 5px;
	}

	.info_list {
		grid-template-columns: 5em 1fr;
	}

	.company_box {
		padding-bottom: 0;
	}

	#company {
		margin-bottom: 62.5px;
	}

	.sp_company_info_img {
		margin-right: -13%
	}

	.timeline_item p {
		font-size: 12px;
	}

	.timeline_item {
		gap: 3vw;
		padding: 3.4vw 0;
		padding-left: .5em;
	}

	.recommend_title {
		margin-bottom: 28px;
	}

	.recommend_title h3 {
		text-align: center;
	}

	.recommend_title h4 {
		text-align: center;
	}

	.recommend_item_box {
		row-gap: 10vw;
		padding-bottom: 19vw;
	}

	.recommend_item {
		flex-direction: column;
	}

	.recommend_item_img {
		margin-bottom: 12px;
	}

	.reco_text h4 {
		text-align: center;
	}

	.reco_text {
		margin-left: 0;
	}

	.reco_text p {
		letter-spacing: 1.8px;
		line-height: 1.7;
	}

	.map {
		margin-bottom: 35px;
	}

	.shop_text p {
		letter-spacing: -0.03em;
	}

	.survey_text h3 {
		text-align: center;
	}

	.survey_text h4 {
		text-align: center;
	}

	.survey_nav {
		width: 80vw;}
	
	.survey_arrow img {
		width: 50px;
	}

	.survey_line {
		width: 50px;
	}

	.survey_indicator {
		width:220px;
		gap: 2vw;
	justify-content: space-around
	}

	.recruit_item:first-child h4 {
		width: 65%;
	}

	.recruit_item:last-child h4.part {
		width: 65%;
	}

	.recruit_overview_02 .info_list dt,
	.info_list dd {
		font-size: calc(clamp(12px, 1.3vw, 16px) + var(--fs-adjust));
	}

	.kimamori_logo {
		max-width: 160px;
		margin:0 auto;
		margin-bottom:3vw;
	}

	.copy {
		font-size: 12px;
	}

}
@media screen and (max-width: 435px) {
    .about_bg {
        padding-top: 41vw;
    }
}
@media screen and (max-width: 391px) {
    .about_bg {
        padding-top: 53vw;
    }
}
/*-------------------------------
 
ハンバーガーメニューここから
 
-------------------------------*/
/* ハンバーガーボタン */
.menu-button {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	row-gap: 1.25vw;
	cursor: pointer;
	position: fixed;
	top: 3.5vw;
	right: 5vw;
	z-index: 1001;
	width:  38px;
	height: 38px;

	background-color: #ef940e;
	border-radius: 50%;
}

/* ハンバーガーの線 */
.menu-button__line,
.menu-button::before,
.menu-button::after {
	content: "";
	width: 14px;
	/* 線の長さを調整 */
	height: 1.5px;
	background-color: #FFF;
	/* 線の色 */
	border-radius:999px;
	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-toggle:checked + .menu-button .menu-button__line {
	opacity: 0;
}

/* 真ん中のライン（実体）の初期状態 */
.menu-button__line {
	position: relative;
	display: block;
	
	background: #fff;
	transition: opacity 0.6s;
}
.menu-toggle:checked + .menu-button{
	background: #fff;
}

/* チェック時は完全に消す */
.menu-toggle:checked + .menu-button .menu-button__line {
	opacity: 0;
	visibility: hidden;
}

.menu-toggle:checked + .menu-button::before {
	transform: translateY(0) rotate(45deg);
	background: #ef940e;
	/* 上の線が45度回転 */
}

.menu-toggle:checked + .menu-button::after {
	transform: translateY(0) rotate(-45deg);
	background: #ef940e;
	/* 下の線が-45度回転 */
}

/* メニューの背景 */
.menu-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #ef940e;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.6s;
	z-index: 1000;
	/* ボタンの下 */
}

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

.menu {
	position: fixed;
	top: 0;
	height: 100%;
	right: -0.833vw;
	/* 初期状態で画面外 */
	transform: translateX(100%);
	width: 100%;
	background-color: #ef940e;
/*	background-color: rgba(255, 255, 255, 0.8);*/
	padding: 1.667vw;
	transition: transform 0.6s;
	z-index: 1000;
}

.menu-toggle:checked ~ .menu {
	transform: translateX(0);
}

.menu-list {
	width: 75%;
	margin: 20% auto 0;
	padding: 0;
	list-style: none;
}

.menu-list li {
	font-size: clamp(20px, 5vw, 23px);
	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: 1px;
	background-color:#FFF;
	/*
	background: linear-gradient(to left, #EF98B8, #F5BA29);*/
}

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

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

.menu-list li a {
	font-weight:400;
	color: #FFF;
	display: inline-block;
	width: 100%;
	padding: 0;
}


.menu_online {
	text-align: center;
	max-width: 224px;
	margin: 30px auto;
}

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

}

.menu_online img {
	 filter: brightness(0) invert(1);
	display: block;
	width: 34px;
	transition: .3s;
}


.go_top{
	position:fixed;
	z-index:99999;
	bottom:20vw;
	right:5vw;
	
}

.go_top img{width:50px;height:50px;}
html {
    scroll-behavior: smooth;
}

:target {
    scroll-margin-top: 12vw; /* .pc_navの高さに合わせて調整 */
}

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

	.contact_box {
	
	
	}

	.contact_intro {
		width:100%;
		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 {
		max-width:1000px;
		margin: 0 auto;
		background-color: #FFF;
		border-radius: 20px;
			border: 2px solid #ef940e;
	}

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

	.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: 2.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: #ef940e;
		display: inline-block;
		font-weight: 400;
		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: #ef940e;
    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 #ef940e;
    border-inline-start: 3px solid #ef940e;
    rotate: -50deg;
}

.wpcf7-list-item{display:block;}

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


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

/* =========================
  ボタン1個（確認画面前）
========================= */
.bl_form_btn > *:only-child {
  flex: 0 0 45%;
  margin-inline: auto;
}

/* =========================
  ボタン2個（確認画面）
========================= */
.bl_form_btn > *:not(:only-child) {
  flex: 1;
}

/* =========================
  共通ボタン
========================= */
.bl_form_confirm,
.bl_form_submit,
.bl_form_back {
  border-radius: 999px;
  padding: 18px 20px;
  text-align: center;
  cursor: pointer;
}

/* 確認・送信 */
.bl_form_confirm,
.bl_form_submit {
  background: #FFF;
  border: 1px solid #ef940e;
  color: #000;
}

/* 戻る */
.bl_form_back {
  background: #B0B0B0;
  color: #FFF;
}

/* hover */
.bl_form_confirm:hover,
.bl_form_submit:hover {
  background: #ef940e;
  color: #FFF;
}

.bl_form_back:hover {
  opacity: .5;
}

/* disabled */
.bl_form_confirm[disabled] {
  background: #CCC;
  cursor: not-allowed;
}

/* =========================
  スマホ
========================= */
@media (max-width: 768px) {
  .bl_form_btn {
    flex-direction: column;
  }

  .bl_form_btn > * {
    flex: none;
    width: 100%;
	  max-width:335px;
  }
}

	/* 確認画面とメッセージ、スピナーを非表示 */
	.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: #ef940e #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 {
		font-weight: 100;
		line-height: 2;
		font-size: clamp(14px, 1.6vw, 16px);
		margin-bottom: 10px;
	}

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

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

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

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

	}

	.bl_formConfirm_txt {
		text-align: center;
		margin-bottom: 2em;
	}
.bl_formConfirm.bl_form_label{font-weight:500;}
.bl_confirm_contact_type{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:400;
			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) {
	.ly_form *{font-size:13px;}
			.bl_form,
	.bl_formConfirm,
	.bl_formThanks {
		padding-block: 2.125rem;
    padding-inline: 1.5rem;
	}

	
}.page_content{margin-bottom:8vw;}
.page_content p{line-height:1.6}
.go_home a{
	text-align:center;
	display:block;
	font-weight:700;
		background: #FFF;
		color: #000;
		border: 2px solid #f5ba63;
		max-width: 320px;
		width:60%;
	margin:0 auto;
		border-radius:999px;
		padding: 18px 40px;
	}

	.go_home a:hover {
		background: #f5ba63;
		border: 1px solid #f5ba63;
		color: #FFF;
		opacity: 1;
	}